403Webshell
Server IP : 35.80.110.71  /  Your IP : 216.73.216.52
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/css_parser/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/css_parser/__pycache__/serialize.cpython-312.pyc
�

��3e����ddlmZmZmZmZddlmZddlZddlZddl	m
Z
	ddgZdZd	Z
ddlZejdd
k\reZneZd�Zd�Zej*d
e�Gd�de�ZGd�de�ZGd�de�Zy)�)�unicode_literals�division�absolute_import�print_function�)�helperN)�	normalize�
CSSSerializer�Preferences�restructuredtextz$Id$�c�<�t|t�r|St|�S�N)�
isinstance�list)�ps �6/usr/lib/python3/dist-packages/css_parser/serialize.py�as_listrs���!�T������7�N�c
��|j|j|j}dj|D�cgc]3}dt	tt
|���ddj�z��5c}�|jfScc}w)u�
    Escapes characters not allowed in the current encoding the CSS way
    with a backslash followed by a uppercase hex code point

    E.g. the german umlaut 'ä' is escaped as \E4
    �z\%s �N)�object�start�end�join�str�hex�ord�upper)�e�s�xs   r�
_escapecssr$sv��	
����������A�
�7�7�&'�)�!"��c�#�c�!�f�+�.�q�r�2��U�W��)�*�+,�5�5�1�1��)s�8A>�	escapecssc�.�eZdZdZd�Zd�Zd�Zd�Zd�Zy)ra�Control output of CSSSerializer.

    defaultAtKeyword = True
        Should the literal @keyword from src CSS be used or the default
        form, e.g. if ``True``: ``@import`` else: ``@i\mport``
    defaultPropertyName = True
        Should the normalized propertyname be used or the one given in
        the src file, e.g. if ``True``: ``color`` else: ``c\olor``

        Only used if ``keepAllProperties==False``.

    defaultPropertyPriority = True
        Should the normalized or literal priority be used, e.g. ``!important``
        or ``!Im\portant``

    formatUnknownAtRules = True
        If False, tokens of unknown atrules will just be concatenated as
        they were saved by the parser.

    importHrefFormat = None
        Uses hreftype if ``None`` or format ``"URI"`` if ``'string'`` or
        format ``url(URI)`` if ``'uri'``
    indent = 4 * ' '
        Indentation of e.g Properties inside a CSSStyleDeclaration
    indentClosingBrace = True
        Defines if closing brace of block is indented to match indentation
        of the block (default) oder match indentation of selector.
    indentSpecificities = False (**EXPERIMENTAL**)
        Indent rules with subset of Selectors and higher Specitivity

    keepAllProperties = True
        If ``True`` all properties set in the original CSSStylesheet
        are kept meaning even properties set twice with the exact same
        same name are kept!
    keepComments = True
        If ``False`` removes all CSSComments
    keepEmptyRules = False
        defines if empty rules like e.g. ``a {}`` are kept in the resulting
        serialized sheet
    keepUnknownAtRules = True
        defines if unknown @rules like e.g. ``@three-dee {}`` are kept in the
        serialized sheet
    keepUsedNamespaceRulesOnly = False
        if True only namespace rules which are actually used are kept

    lineNumbers = False
        Only used if a complete CSSStyleSheet is serialized.
    lineSeparator = u'\\n'
        How to end a line. This may be set to e.g. u'' for serializing of
        CSSStyleDeclarations usable in HTML style attribute.
    linesAfterRules = 0 * lineSeparator
        Adds blank lines after every rule.
    listItemSpacer = u' '
        string which is used in ``css.SelectorList``, ``css.CSSValue`` and
        ``stylesheets.MediaList`` after the comma.

    minimizeColorHash = True
        defines if colorhash should be minimized from full size to shorthand
        e.g minimize #FFFFFF to #FFF
    normalizedVarNames = True
        defines if variable names should be serialized normalized (they are
        used as being normalized anyway)
    omitLastSemicolon = True
        If ``True`` omits ; after last property of CSSStyleDeclaration
    omitLeadingZero = False
        defines if values between -1 and 1 should omit the 0, like ``.5px``
    paranthesisSpacer = u' '
        string which is used before an opening paranthesis like in a
        ``css.CSSMediaRule`` or ``css.CSSStyleRule``
    propertyNameSpacer = u' '
        string which is used after a Property name colon
    resolveVariables = True
        if ``True`` all variable references are tried to resolved and
        all CSSVariablesRules are removed from the output.
        Any variable reference not resolvable is simply kept untouched.
    selectorCombinatorSpacer = u' '
        string which is used before and after a Selector combinator like +, > or ~.
        CSSOM defines a single space for this which is also the default in css_parser.
    spacer = u' '
        general spacer, used e.g. by CSSUnknownRule

    validOnly = False
        if True only valid (Properties) are output

        A Property is valid if it is a known Property with a valid value.
    c��|j�t|j��D]\}}|s�	|j||��y)z2Always use named instead of positional parameters.N)�useDefaultsr�items�__setattr__)�self�initials�key�values    r�__init__zPreferences.__init__�s@������!�(�.�.�"2�3�	-�J�C���� � ��e�,�	-rc��d|jj�ddj|jD�cgc]}d|�d|j	|�����c}��d�Scc}w)Nzcss_parser.css.�(z, z
    �=�))�	__class__�__name__r�__dict__�__getattribute__�r+rs  r�__repr__zPreferences.__repr__�sV�����'�'����KO�=�=�4Z�FG�Q��(=�(=�a�(@�A�4Z�*[�\�	\��4Zs�Ac���d|jjdj|jD�cgc]}|�d|j	|�����c}�t|�fzScc}w)Nz$<css_parser.css.%s object %s at 0x%x� r2)r4r5rr6r7�idr8s  r�__str__zPreferences.__str__�sh��5����'�'����EI�]�]�3T�@A�q�$�"7�"7��":�;�3T�*U�VX�Y]�V^�9`�`�	`��3Ts�A!c��d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_	d|_
d|_d|_d|_
d|_d|jz|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_y)z4Reset all preference options to their default value.TNz    F�
rr;)�defaultAtKeyword�defaultPropertyName�defaultPropertyPriority�formatUnknownAtRules�importHrefFormat�indent�indentClosingBrace�indentSpecificities�keepAllProperties�keepComments�keepEmptyRules�keepUnknownAtRules�keepUsedNamespaceRulesOnly�lineNumbers�
lineSeparator�linesAfterRules�listItemSpacer�minimizeColorHash�normalizedVarNames�omitLastSemicolon�omitLeadingZero�paranthesisSpacer�propertyNameSpacer�resolveVariables�selectorCombinatorSpacer�spacer�	validOnly�r+s rr(zPreferences.useDefaults�s��� $���#'�� �'+��$�$(��!� $������"&���#(�� �!%��� ���#���"&���*/��'� ���!��� �4�#5�#5�5���!���!%���"&���!%���$���!$���"%��� $���(+��%������rc���d|_d|_d|_d|_d|_d|_d|_d|_d|_d|_	d|_
d|_d|_d|_
d|_d|_d|_y)z�Set options resulting in a minified stylesheet.

        You may want to set preferences with this convenience method
        and override specific settings you want adjusted afterwards.
        �stringrFTN)rDrErIrJrKrLrMrNrPrQrSrTrUrVrXrYrZr[s r�useMinifiedzPreferences.useMinified�s���!)������!���#���"'���*.��'� ������ ���!%���!%���#���!#���"$���(*��%������rN)	r5�
__module__�__qualname__�__doc__r/r9r=r(r^�rrrr*s$��U�n-�\�
`�
�<rc�.�eZdZdZd�Zdd�Zdd�Zd	d�Zy)
�OutzHA simple class which makes appended items available as a combined stringc� �||_g|_yr)�ser�out)r+rfs  rr/zOut.__init__�s�������rNc�v�|jr-|jdj|�s|jd=yyy)N���)rg�strip)r+�spaces  r�_remove_last_if_SzOut._remove_last_if_S�s0���8�8�D�H�H�R�L�.�.�u�5������6�8rc�n	�|jjj}|s|dv�r�d|k(r.|jjjr
|j}n�yd|k(r|syd|k(r|rd}n�d|k(r+|�ytj|�}|s�|j�n�d|k(rtj|�}n�d|k(r|jj|�}nt|d	�r
|j}nft|d
�r
|j}nM|dvr|s|j�n6||jjjk(r|s|jd�|s%|d
k(rm|jjjrM|jj|jj!||jj"dz��n<|j%d�r|j�|jj|�|r |dvr|jjd�y|dvrt|jj'd|jjj(�|jj|jjj(�yd|k(r|s|jjd�yd|k(r:|jj|jjj*�yd|k(r:|jj|jjj,�yd|k(rt|jj'd|jjj.�|jj|jjj�yd|k(sd|k(r:|jj|jjj�y|dvr�|r�|dk7r�|jj|jjj�|dk7ri|jjjsH|jr;|jdj%d�s|jjd�yyyyyyyyy)a�Appends val. Adds a single S after each token except as follows:

        - typ COMMENT
            uses cssText depending on self.ser.prefs.keepComments
        - typ "Property", css_parser.css.CSSRule.UNKNOWN_RULE
            uses cssText
        - typ STRING
            escapes helper.string
        - typ S
            ignored except ``keepS=True``
        - typ URI
            calls helper.uri
        - val ``{``
            adds LF after
        - val ``;``, typ 'styletext'
            removes S before and adds LF after
        - val ``, :``
            removes S before
        - val ``+ > ~``
            encloses in prefs.selectorCombinatorSpacer
        - some other vals
            add ``*spacer`` except ``space=False``
        )�STRING�URI�COMMENTN�Sr;rnro�HASH�cssText�	mediaTextz+>~,:{;)]/=}z 	�}r�-+*/z+>~rir3�,�:�{�;�	styletextz}[]()/=�FUNCTION)rf�prefsrYrIrsrr]rl�uri�_hash�hasattrrtrNrFrg�append�_indentblock�_level�endswith�insertrXrPrVrU)r+�val�type_rk�keepSrE�alwaysS�	prefspaces        rr�z
Out.append�sV��0�H�H�N�N�)�)�	��%�,�,��E�!��8�8�>�>�.�.��+�+�C�����e�����%����U�"��;���m�m�C�(�� ��*�*�,��%���j�j��o���5���h�h�n�n�S�)����i�(��k�k����k�*��m�m����&�w��&�&�(�������4�4�4�W��&�&�u�-��#��*������)J�)J��������� 5� 5�c�4�8�8�?�?�1�;L� M�N��<�<��$��*�*�,�������$��3�&�=�������$����������D�H�H�N�N�$K�$K�L����������� G� G�H����E�������$�������������� =� =�>�������������� A� A�B����������D�H�H�N�N�$D�$D�E����������� <� <�=����{�e�3����������� <� <�=��I�%�%�E�Z�4G����������� 5� 5�6��H�$�T�X�X�^�^�-B�-B��8�8�D�H�H�R�L�$9�$9�#�$>��H�H�O�O�C�(�%?�8�.C�$�5H�%�%�C-rc��|s|j�|r|jj|�|j|j�S)z!returns all items joined by delim)rlrgr�r)r+�delimrr�s    rr.z	Out.value6s7����"�"�$���H�H�O�O�C� ��z�z�$�(�(�#�#rr)NTFFF)rNF)r5r_r`rar/rlr�r.rbrrrdrd�s��R���
^)�@$rrdc��eZdZdZd'd�Zd�Zd�Zd�Zd�Zd'd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd(d�Zd�Zd�Zd)d�Zd�Zd'd�Z d)d �Z!d)d!�Z"d)d"�Z#d)d#�Z$d)d$�Z%d%�Z&d&�Z'y)*r
z�Serialize a CSSStylesheet and its parts.

    To use your own serializing method the easiest is to subclass CSS
    Serializer and overwrite the methods you like to customize.
    Nc�T�|s
t�}||_d|_g|_d|_y)zC
        :param prefs:
            instance of Preferences
        rN)rr}r��
_selectors�_selectorlevel)r+r}s  rr/zCSSSerializer.__init__Fs-��
��M�E���
���������rc�^�|jjr|jS|jS)z6returns default or source atkeyword depending on prefs)r}r@�	atkeyword�_keyword�r+�rules  r�
_atkeywordzCSSSerializer._atkeywordTs#���:�:�&�&��>�>�!��=�=� rc�"�|jjs|S|jjj|j|jj�D�cgc]!}|r||jjz�|����#c}�Scc}w)z�
        indent a block like a CSSStyleDeclaration to the given level
        which may be higher than self._level (e.g. for CSSStyleDeclaration)
        )r}rNr�splitrE)r+�text�level�lines    rr�zCSSSerializer._indentblock[sz��
�z�z�'�'��K��z�z�'�'�,�,� �J�J�t�z�z�'?�'?�@�
J��D��t�z�z�0�0�0�$�
7�
J�
�	
��
Js�&Bc�v�|jjr"|jjs|jS|S)z�
        used by all styledeclarations to get the propertyname used
        dependent on prefs setting defaultPropertyName and
        keepAllProperties
        )r}rArH�name)r+�property�actuals   r�
_propertynamezCSSSerializer._propertynamegs,���:�:�)�)�$�*�*�2N�2N��=�=� ��Mrc��|jjr�tt|j	|jj
�dz��}g}t
|j|jj
��D]\}}|jd||dz|fz��!|jj
j|�}|S)Nrz%*i: %s)
r}rM�lenr�countrN�	enumerater�r�r)r+r��padrg�ir�s      r�_linenumberszCSSSerializer._linenumbersrs����:�:�!�!��c�$�*�*�T�Z�Z�%=�%=�>�q�@�A�B�C��C�$�T�Z�Z��
�
�0H�0H�%I�J�
;���4��
�
�I�#�q��s�D�)9�9�:�
;��:�:�+�+�0�0��5�D��rc��|jjrAt|�dk(r3|d|dk(r(|d|dk(r|d|dk(rd|d�|d�|d��S|S)	zB
        Short form of hash, e.g. #123 instead of #112233
        �rrr
����#)r}rQr�)r+r�r�s   rrzCSSSerializer._hash{sj���:�:�'�'��C��A�
��A��#�a�&� ��A��#�a�&� ��A��#�a�&� � #�A���A���A��7�7��
rc�|�|jjxs$|jjxr|jS)z/checks items valid property and prefs.validOnly)r}rZ�valid)r+r#s  r�_validzCSSSerializer._valid�s4���:�:�'�'�'�5�D�J�J�,@�,@�-4�,-�G�G�	5rc�@�|j�}g}|jD]�}|jjr8|j|j
k(r|j|vr|jsd|vr�Q|j}|s�`|j||jjz���|j|jjj|��}	|jdj}|j#|d�S#tt f$rd}Y�%wxYw)z#serializes a complete CSSStyleSheetNrzUTF-8r%)�_getUsedURIs�cssRulesr}rL�NAMESPACE_RULE�type�namespaceURI�prefixrsr�rOr�rNr�encoding�
IndexError�AttributeError�encode)r+�
stylesheet�usedurisrgr�rsr�r�s        r�do_CSSStyleSheetzCSSSerializer.do_CSSStyleSheet�s���*�*�,�����'�'�		A�D��z�z�4�4��"�"�d�i�i�/�� � ��0��K�K�4�x�#7���l�l�G���
�
�7�T�Z�Z�%?�%?�?�@�		A�� � ����!9�!9�!>�!>�s�!C�D��	�!�*�*�1�-�6�6�H�
�{�{�8�[�1�1��	�N�+�	��H�	�s�D	�	D�Dc�`�|jr"|jjr|jSy)zJ
        serializes CSSComment which consists only of commentText
        r)�_cssTextr}rIr�s  r�
do_CSSCommentzCSSSerializer.do_CSSComment�s$���=�=�T�Z�Z�4�4��=�=� �rc�`�|jr"dtj|j�zSy)z�
        serializes CSSCharsetRule
        encoding: string

        always @charset "encoding";
        no comments or other things allowed!
        z@charset %s;r)�
wellformedrr]r�r�s  r�do_CSSCharsetRulezCSSSerializer.do_CSSCharsetRule�s&���?�?�!�F�M�M�$�-�-�$@�@�@�rc��|jj}|r�|jr�|jjs�t|�}|j
|j|��|jD](}|j
|j|j��*|j
d�|j
d|zd��|j
d|jjz�|j
d�|j�Sy)z�
        serializes CSSVariablesRule

        media
            TODO
        variables
            CSSStyleDeclaration

        + CSSComments
        ry�%sr�rErur)�	variablesrsr�r}rWrdr�r��seqr.r�rN)r+r��
variablesTextrg�items     r�do_CSSVariablesRulez!CSSSerializer.do_CSSVariablesRule�s������.�.�
��T�_�_�T�Z�Z�5P�5P��d�)�C��J�J�t���t�,�-����
2���
�
�4�:�:�t�y�y�1�
2�
�J�J�s�O��J�J�t�m�+�A�J�6��J�J�t�d�j�j�6�6�6�7��J�J�s�O��9�9�;��rc��|j|j�}|r�|jr�t|�}|j	|j|��|jD](}|j	|j|j��*|j	d�|j	d|zd��|j	d|jjz�|j	d�|j�Sy)zr
        serializes CSSFontFaceRule

        style
            CSSStyleDeclaration

        + CSSComments
        ryr�rr�rur)�do_css_CSSStyleDeclaration�styler�rdr�r�r�r.r�r}rN)r+r��	styleTextrgr�s     r�do_CSSFontFaceRulez CSSSerializer.do_CSSFontFaceRule�s����3�3�D�J�J�?�	������d�)�C��J�J�t���t�,�-����
2���
�
�4�:�:�t�y�y�1�
2�
�J�J�s�O��J�J�t�i�'��J�2��J�J�t�d�j�j�6�6�6�7��J�J�s�O��9�9�;��rc�x�|j�r-t|�}|j|j|��|jD]�}|j
|j}}d|k(rg|jjdk(s(|jjdk7r"|jdk(r|j|d��t|j|d���d|k(r,|j|�}|s��|dk7s��|j|���d|k(r|j|d���|j||���|j
d	�
�Sy)z�
        serializes CSSImportRule

        href
            string
        media
            optional css_parser.stylesheets.medialist.MediaList
        name
            optional string

        + CSSComments
        �hrefr]r~rnro�media�allr�rz�rr)r�rdr�r�r�r�r.r}rD�hreftype�do_stylesheets_medialist)r+r�rgr�r�r�rts       r�do_CSSImportRulezCSSSerializer.do_CSSImportRule�s���?�?��d�)�C��J�J�t���t�,�-����
+��!�Y�Y��
�
�s���U�?��z�z�2�2�h�>� �J�J�7�7�5�@� �M�M�X�5��
�
�3��1��
�
�3��.���%� $� =� =�c� B�I� �Y�%�%7��
�
�9�-��u�_��J�J�s�H�-��J�J�s�E�*�%
+�(�9�9��9�%�%�rc�<�|jr�t|�}|j|j|��|jD]D}|j
|j}}d|k(r|j|d��3|j||��F|j
d��Sy)z�
        serializes CSSNamespaceRule

        uri
            string
        prefix
            string

        + CSSComments
        r�rnrzr�r)r�rdr�r�r�r�r.)r+r�rgr�r�r�s      r�do_CSSNamespaceRulez!CSSSerializer.do_CSSNamespaceRules����?�?��d�)�C��J�J�t���t�,�-����
+��!�Y�Y��
�
�s��!�U�*��J�J�s�H�-��J�J�s�E�*�
+��9�9��9�%�%�rc���|jjsy|j|�g}t|jj
�s|j
d�n%|j
|jj
�|j
|j|j��|jr�|j
|jj
�t|�}|j
tj|j��|jD](}|j
|j|j��*|j
|j��|j
|jj�|j
d�|j
|jj �g}|j"D]d}|j$}|s�|j
|j'||j(dz��|j
|jj ��f|jj*s dj-|�j/�sy|j1|�|j
d|j(t3|jj4�z|jj6zz�dj-|�S)z@
        serializes CSSMediaRule

        + CSSComments
        rr;ryrz%s})r�r�r�r�r}rYr�r�r�rdrr]r�r.r�rUrNr�rsr�r�rJrrj�extend�intrFrE)r+r�rg�nameoutr��rulesout�r�rtexts        r�do_CSSMediaRulezCSSSerializer.do_CSSMediaRule1s
���z�z�$�$�����t�$�%���4�:�:�$�$�%��J�J�s�O��J�J�t�z�z�(�(�)��
�
�4�0�0����<�=��9�9��J�J�t�z�z�(�(�)��$�i�G��N�N�6�=�=����3�4����
6�����t�z�z�4�9�9�5�
6��J�J�w�}�}��'�	�
�
�4�:�:�/�/�0��
�
�3���
�
�4�:�:�+�+�,������	:�A��I�I�E������ 1� 1�%����q�� I�J�����
�
� 8� 8�9�	:��z�z�(�(�����1B�1H�1H�1J���
�
�8��	�
�
�5�T�[�[�3�t�z�z�/L�/L�+M�M�"�j�j�/�/�0�1�	2��w�w�s�|�rc�T�g}|jD]G}|j}|s�|j|�|j|jj��Idj|�}|j
|j|��}|s|�r|j�rt|�}|j|j|��|j|j�|jd�|rV|s?|jd|zd��|jd|jjz�n|j|ddd�	�|r;|j|d��|jd|jjz�|jd
d��|j�Sy)z�
        serializes CSSPageRule

        selectorText
            string
        style
            CSSStyleDeclaration
        cssRules
            CSSRuleList of MarginRule objects

        + CSSComments
        r)�omitryr�rr�r{F)r�rErkru)
r�rsr�r}rNrr�r�r�rdr��selectorTextr.)r+r�r�r�r��	rulesTextr�rgs        r�do_CSSPageRulezCSSSerializer.do_CSSPageRulegs\�������	:�A��I�I�E������&�����
�
� 8� 8�9�		:��G�G�H�%�	��3�3�D�J�J�=F��4�H�	�
������d�)�C��J�J�t���t�,�-��J�J�t�(�(�)��J�J�s�O�� ��J�J�t�i�/��J�:��J�J�t�d�j�j�&>�&>�>�?��J�J�y��A�U�J�S���
�
�9�Q�
�/��
�
�4�$�*�*�":�":�:�;��J�J�s�5�J�)��9�9�;��rc��t|�}|D]`}|jdk(r)|j|j|jd���;|j|j|j��b|j�S)z#Serialize selector of a CSSPageRule�IDENTF�rk)rdr�r�r.)r+r�rgr�s    r�do_CSSPageRuleSelectorz$CSSSerializer.do_CSSPageRuleSelector�sd���$�i���	2�D��y�y�G�#��
�
�4�:�:�t�y�y��
�>��
�
�4�:�:�t�y�y�1�		2�
�y�y�{�rc��|jr�|j|j�}|r�|jr�t	|�}|j|j
|�d��|jd�|j|j||jdz��|jj���|jd�|j�Sy)z�
        serializes MarginRule

        atkeyword
            string
        style
            CSSStyleDeclaration

        + CSSComments
        �	ATKEYWORD)r�ryrrur)r�r�r�r�rdr�r�r�r�r}rNr.)r+r�r�rgs    r�
do_MarginRulezCSSSerializer.do_MarginRule�s����>�>��7�7��
�
�C�I��T�_�_��$�i���
�
�4�?�?�4�0��
�D��
�
�3���
�
�T�%6�%6�y�$�+�+�a�-�%P�%)�Z�Z�%=�%=�?�@��
�
�3���y�y�{�"�rc
�X��|j�r�|jj�r�|jjs4d��|jdj�fd�|jD��zSt|�}|j|j�g}|jD]�}|j|j}}d|k(r�|j�j�}|rC|j||jjz|ztdt|�dz��}n(|j|tdt|�dz��}|r|dj||�n|j||�d|k(s��|jt|����|j�Sy)zg
        serializes CSSUnknownRule
        anything until ";" or "{...}"
        + CSSComments
        c�N�|j}t|d�r|j}|S)Nrs)r.r�rs)r#�anss  r�getstrz/CSSSerializer.do_CSSUnknownRule.<locals>.getstr�s#���'�'�C��s�I�.�!�k�k���Jrrc3�.�K�|]}�|����y�wrrb)�.0r#r�s  �r�	<genexpr>z2CSSSerializer.do_CSSUnknownRule.<locals>.<genexpr>�s�����/L�a��q�	�/L�s�rurriry)r�r}rKrCr�rr�rdr�r�r.�popr�rN�minr�)	r+r�rg�stacksr�r�r��
stackblockr�s	        @r�do_CSSUnknownRulezCSSSerializer.do_CSSUnknownRule�sY����?�?�t�z�z�<�<��:�:�2�2���~�~����/L�4�8�8�/L�(L�L�L��d�)�C��J�J�t�~�~�&��F����
-��!�Y�Y��
�
�s���#�:�!'����!3�!3�!5�J�!�"�/�/�&����)A�)A�A�C�G���3�v�;�q�=�1�3��#�/�/��S��C��K��M�5J�K����2�J�%�%�c�5�1��J�J�s�E�*��#�:��M�M�#�d�)�,�+
-�.�9�9�;��rc��|jj�rt|jD�cgc]}|j��c}�}|jD�cgc]}|j
��}}|jD]�}t|D�cgc]}|j��c}�}|j|�r6|D�cgc]}|j
��}}||kDs�V|xjdz
c_nS|jdkDs�}|xjdzc_��|jj|j�d|_|j|j�}|r|jsy|xjdz
c_d}		|j|j�}	|xjdzc_|	s2|jjr|�|jj �d�Sy|j#|�|jj �d|jj$�|j#|	|jdz��|jj$�|jt'|jj(�z|jj*z�d�|j�Scc}wcc}wcc}wcc}w#|xjdzc_wxYw)zd
        serializes CSSStyleRule

        selectorList
        style

        + CSSComments
        rrrz{}ryruN)r}rG�set�selectorList�element�specificityr��issubsetr�r��do_css_SelectorListr�r�r�r�rJrUr�rNr�rFrE)
r+r�r"�elements�
specitivities�selector�lastelements�lastspecitivitiesr�r�s
          r�do_CSSStyleRulezCSSSerializer.do_CSSStyleRule�sE���:�:�)�)��t�/@�/@�A�!�A�I�I�A�B�H�48�4E�4E�F�q�Q�]�]�F�M�F� �O�O�

(��"�x�#@�!�A�I�I�#@�A���$�$�\�2�@H�(I�1����(I�%�(I�$�'8�8��+�+�q�0�+���(�(�1�,��'�'�1�,�'�

(����&�&�t�'8�'8�9�&'��#��/�/��0A�0A�B���4�?�?�����q����	�	��7�7��
�
�C�I��K�K�1��K���z�z�(�(�#/�#'�:�:�#?�#?�A�A�)��$�$� ��J�J�0�0��J�J�,�,��%�%�i����q��A��J�J�,�,��[�[�3�t�z�z�'D�'D�#E�E��j�j�'�'�(�
)��#�#�	%�	
%��CB��F��#@��)J��*
�K�K�1��K�s#�J�J#�J(
�/J-�6J2�2K	c�8�|jr�g}|jD]S}t|tjj
�r|j
|j��C|j
|��Ud|jjz}|j|�Sy)z!comma-separated list of Selectorsz,%sr)r�r�r�
css_parser�css�Selectorr�r�r}rPr)r+�selectorlistrg�part�seps     rrz!CSSSerializer.do_css_SelectorList3s����"�"��C�$�(�(�
%���d�J�N�N�$;�$;�<��J�J�t�0�0�1��J�J�t�$�	
%�
�$�*�*�3�3�3�C��8�8�C�=� �rc�&�|jr�t|�}|jjdd�}|jD]�}|j
|j}}t|t�ro|\}}||k(s|s|�|j||d���N|tjk(rd}	n	|jj|�}	|j|	�d|��|d����|j||dd����|j
�Sy#t$rd}	Y�OwxYw)	a
        a single Selector including comments

        an element has syntax (namespaceURI, name) where namespaceURI may be:

        - css_parser._ANYNS => ``*|name``
        - None => ``name``
        - u'' => ``|name``
        - any other value: => ``prefix|name``
        rNFr��*�|T)rkr�)r�rd�_namespaces�getr�r�r.r�tupler�r
�_ANYNS�prefixForNamespaceURIr�)
r+rrg�
DEFAULTURIr�r�r�r�r�r�s
          r�do_css_SelectorzCSSSerializer.do_css_SelectorBs������d�)�C�!�-�-�1�1�"�d�;�J� ���
D��!�Y�Y��
�
�s���c�5�)�),�&�L�$�!�\�1�*�6B�6J��
�
�4��e�
�<�'�:�+<�+<�<�%(�F�,�)1�)=�)=�)S�)S�$0�*2��
�
�
�f�d�#;�U�%�
�P��J�J�s�E��d�J�C�)
D�,�9�9�;����$.�,�)+��,�s�%D�D�Dc��t|j�dkD�r�t|�}t|j�dz
}t|j�D�]R\}}|j|j
}}d|k(r�|\}}	|jjrt|�}|j|�|jd�|j|	j�||ks|jjr��|jd���t|tjj�r9|j|d�|j|jj ���|j|j|�|j|jj ���U|j�j#�Sy)zVariables of CSSVariableRule.rr�varrxrzrpr)r�r�rdr�r�r.r}rRr	r�rsrSrr
r�
CSSCommentrNrj)
r+r�rg�lastitemr�r�r�r�r��cssvalues
          r�do_css_CSSVariablesDeclarationz,CSSSerializer.do_css_CSSVariablesDeclarationksE���y�}�}���!��d�)�C��9�=�=�)�A�-�H�$�Y�]�]�3�
9���4�!�Y�Y��
�
�s���E�>�%(�N�D�(��z�z�4�4�(�����J�J�t�$��J�J�s�O��J�J�x�/�/�0��8�|�4�:�:�+G�+G��
�
�3����Z�^�^�%>�%>�?��J�J�s�I�.��J�J�t�z�z�7�7�8��J�J�s�{�{�E�2��J�J�t�z�z�7�7�8�%
9�(�9�9�;�$�$�&�&�rc��t|j�dkD�r|�|jj}|jjr
|j}n�|j�}|jD�cgc]n}t
|jtjj�r|j|vs.t
|jtjj�s|��p}}g}|xr|jj}t|�D�]\}	}|j}
t
|
tjj�r�|jjs�N|jjr|
jj!|jj�D�cgc]}|j#���}}|j%|jjj'|��n|j%|
j�|j%|���t
|
tjj�r`|
js��C|j%|
j�|r|	t|�dz
k(s|j%d�|j%|����t
|
tjj(�r.|j%|
j�|j%|����|j%|
�|j%|���|r|d|k(r|d=dj'|�Sycc}wcc}w)z3
        Style declaration of CSSStyleRule
        rrrzrir)r�r�r}rNrH�
getPropertiesrr.r
r�PropertyrSr�rrIrsr��lstripr�r�CSSUnknownRule)
r+r��	separatorr�r��
_effectiver�rgrSr�r�r#�liness
             rr�z(CSSSerializer.do_css_CSSStyleDeclaration�sZ���u�y�y�>�A��� � �J�J�4�4�	��z�z�+�+��i�i��#�0�0�2�
�(-�	�	�O��%�d�j�j�*�.�.�2I�2I�J�#�z�z�Z�7�(����Z�^�^�5L�5L�M��O��O�
�C� $� E����)E�)E��$�S�>�
*���4��j�j���c�:�>�>�#<�#<�=��z�z�.�.��:�:�3�3�9<���9J�9J�4�:�:�Kc�Kc�9d�$e�A�Q�X�X�Z�$e�E�$e��J�J�t�z�z�'?�'?�'D�'D�U�'K�L��J�J�s�{�{�3��
�
�9�-���Z�^�^�%<�%<�=��{�{��
�
�3�;�;�/� 1�a�3�s�8�A�:�o��J�J�s�O��
�
�9�-���Z�^�^�%B�%B�C��J�J�s�{�{�+��J�J�y�)��J�J�s�O��J�J�y�)�3
*�6�s�2�w�)�+���G��7�7�3�<����SO��%fs
�3A3L:�$L?c��g}|jd�r�|j�r�|j|��r�|j\}}}|D]l}t|d�r|j	|j
��+|j|k(r"|j	|j||���\|j	|��n|rZ|jr|jrB|j
r6|j	d�|j	|jj�|j	|j
�|r�|r�|j	d�|D]|}t|d�r|j	|j
��+||jk(r2|jjr|j	|j��l|j	|��~dj|�S)z�
        Style declaration of CSSStyleRule

        Property has a seqs attribute which contains seq lists for
        name, a CSSvalue and a seq list for priority
        rrsrxr;r)�seqsr�r�r�r�rs�literalnamer��_mediaQueryr}rV�literalpriorityrB�priorityr)r+r�rg�nameseqr.�priorityseqrs       r�do_PropertyzCSSSerializer.do_Property�si�����=�=���� 3� 3����H�8M�*2�-�-�'�G�U�K� �
%���4��+��J�J�t�|�|�,��)�)�T�1��J�J�t�1�1�(�D�A�B��J�J�t�$�

%��H�0�0� �,�,�����
�
�3���
�
�4�:�:�8�8�9�
�J�J�u�}�}�%��{��
�
�3��'�-�D��t�Y�/��
�
�4�<�<�0��8�#;�#;�;��:�:�=�=��J�J�x�'8�'8�9��J�J�t�,�-��w�w�s�|�rc��g}|D]]}t|d�r>|jd�|j|j�|jd��M|j|��_dj|�j	�S)z:
        a Properties priority "!" S* "important"
        rsr;r)r�r�rsrrj)r+r/rgrs    r�do_Property_priorityz"CSSSerializer.do_Property_priority�sm��
���	!�D��t�Y�'��
�
�3���
�
�4�<�<�(��
�
�3���
�
�4� �
	!��w�w�s�|�!�!�#�#rc��|syt|�}|jD]�}|j|j}}|r|tj
jk(r�;t|d�r|j|j|��d|r*|d|dk(r|ddvrtj|dd�}|j||���|j�S)zSerializes a PropertyValuerrsrriz'"r)rdr�r�r.r
rrr�r�rsrr])r+r.�
valuesOnlyrgr�r�r�s       r�do_css_PropertyValuez"CSSSerializer.do_css_PropertyValues������d�)�C��	�	�
+��!�Y�Y��
�
�s���%�:�>�>�+D�+D�"D���S�)�,��J�J�s�{�{�E�2��s�1�v��R��0�S��V�u�_�$�m�m�C��"�I�6���J�J�s�E�*�
+��9�9�;�rc�|�|jd�dz}|d|||t|�}}|jd�}||zS)N�.rr�0)�indexr��rstrip)r+r"r��a�bs     r�_strip_zeroszCSSSerializer._strip_zerossC��
�G�G�C�L�1�����1�v�q��3�q�6�{�1��
�H�H�S�M���1�u�rc�R�|syt|�}|jdv�rU|jxsd}|jdk(rd}|jdvr�d}n�|jt	|j�k(rtt	|j��}n�|jjrYd|jcxkrdkrDnnA|jd|jz�}|}|jd	k(r|d|d
dz}n$|dd}n|jd|jz�}|jdk7r|jdk(rd}nd}|j||z|z|j�|j�S|j|j|j�|j�S)
z)Serializes a Value, valuesOnly is ignoredr)�	DIMENSION�NUMBER�
PERCENTAGErr8)�cm�mm�in�px�pc�pt�em�exrirz%f�-rN�+)rdr��	dimensionr.r��	text_typer}rTr=�_signr�)r+r.r4rg�dimr��v�signs        r�do_css_ValuezCSSSerializer.do_css_Valuesk�����d�)�C��z�z�B�B��o�o�+����;�;�!�#��C����+7�7� ���[�[�C����$4�4�#�C����$4�5�C��Z�Z�/�/�B����4H�q�4H��)�)�$����*<�=�A��C��{�{�c�)���d�Q�q�r�U�l�����e���+�+�D�5�;�;�,>�?�C��;�;�!�#����s�(:��D��D��
�
�4�#�:��+�U�Z�Z�8��y�y�{���
�
�5�;�;��
�
�3��y�y�{�rc��	|j|j|jd�|j||��S#t$rYywxYw)z7Serialize a ColorValue, a HASH simple value or FUNCTION)r|rrr�)r4r)�do_css_CSSFunctionrR�	colorType�KeyError)r+r.r4s   r�do_css_ColorValuezCSSSerializer.do_css_ColorValueGs_��	�'�� 7� 7� �-�-�!�.�.���o�o�'�(-�2<�	>�
>��
�	��	�s�8;�	A�Ac���|syt|�}|jD]L}|j|j}}|r|tj
jk(r�;|j||��N|j�S)zSerialize a CSS function valuer)rdr�r�r.r
rrr��r+rr4rgr�r�r�s       rrTz CSSSerializer.do_css_CSSFunctionRsh�����d�)�C� ���
'��!�Y�Y��
�
�s���%�:�>�>�+D�+D�"D���
�
�3��&�	
'�
�9�9�;�rc��|syt|�}|jD]�}|j|j}}|r|tj
jk(r�;t|d�r|j|j|��d|dk(r|dvr|j||d����|j||���|j�S)zSerialize a CSS calc valuerrs�CHARrvT)r�)
rdr�r�r.r
rrr�r�rsrYs       r�do_css_CSSCalczCSSSerializer.do_css_CSSCalc_s������d�)�C� ���
+��!�Y�Y��
�
�s���%�:�>�>�+D�+D�"D���S�)�,��J�J�s�{�{�E�2��f�_�����J�J�s�E�4�J�8��J�J�s�E�*�
+��9�9�;�rc��|syt|�}|jD]"}|j}|j|dd���$|j�S)zXSerialize an ExpressionValue (IE only),
        should at least keep the original syntaxrNFr�)rdr�r.r�)r+rr4rgr�r�s      r�do_css_MSValuezCSSSerializer.do_css_MSValuetsQ�����d�)�C� ���
3���j�j���
�
�3��E�
�2�	
3��9�9�;�rc���|r|jsyt|�}|j}|jjr#|r!|j|�|j�S|jdd�|j|jd�|jr7|jdd�|j|jj�|jd�|j�S)zSerializes a CSSVariablerzvar(r|r�rw�COMMAr3)r�rdr.r}rWr��fallbackrs)r+�variable�IGNOREDrgrPs     r�do_css_CSSVariablez CSSSerializer.do_css_CSSVariable�s����x�}�}���d�)�C����A��z�z�*�*�q��
�
�1�
��9�9�;���
�
�6�:�.��
�
�8�=�=�'�2��$�$��J�J�s�G�,��J�J�x�0�0�8�8�9��
�
�3���9�9�;�rc��t|�dk(ry|j}t|�}d}|D]P}|j}|dk(r|r|j	dd�nd}|j	|j
|j��R|j�S)z�
        comma-separated list of media, default is 'all'

        If "all" is in the list, every other media *except* "handheld" will
        be stripped. This is because how Opera handles CSS for PDAs.
        rr�F�
MediaQueryrwr[T)r�r�rdr�r�r.)r+�	medialistr�rg�	firstdoner�r�s       rr�z&CSSSerializer.do_stylesheets_medialist�s����y�>�Q����-�-�C��d�)�C��I��	
2���	�	���L�(� ��
�
�3��/�$(�	��
�
�4�:�:�t�y�y�1�	
2��9�9�;�rc�D�|jsyg}d}|jD]J}|j|j}}|dk(r|r|j	d�d}nd}|j	||f��Lt|�}|D]\}}	|j	|	|��|j�S)z2
        a single media used in medialist
        rFrf)r[rwT)r�r�r�r.r�rd)
r+�
mediaquery�withsemi�nextmqr�r�r�rg�trPs
          r�do_stylesheets_mediaqueryz'CSSSerializer.do_stylesheets_mediaquery�s����$�$���H��F�"���	
.��!�Y�Y��
�
�s���L�(�V��O�O�M�2�"�F�!�F�������-�	
.��d�)�C�!�
!���1��
�
�1�a� �
!��9�9�;�rr)NT)F)(r5r_r`rar/r�r�r�r�rr�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr�r0r2r5r=rRrWrTr\r^rdr�rnrbrrr
r
?s���� �!�

�	��
�5�
2�2���6�2'�R�24�l0�d�$�L-�^9%�v
�'�R�>:�x,�\
$��*�'�R	���*
��,�6r)�
__future__rrrrrrr
�codecs�css_parser.helperr	�__all__�
__docformat__�__version__�sys�version_inforrM�unicoderr$�register_errorrrrdr
rbrr�<module>rys���S�R���
�'���M�
*��"�
���
����A��!���I��I��	1�����k�:�.�]�&�]�@r$�&�r$�jP�F�Pr

Youez - 2016 - github.com/yon3zu
LinuXploit