
    Mh;                         d dl Z d dlZd dlmZ ddlmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZ ddlmZmZ  e j        d          Z e j        d          Zdd	Zd
 Zd Zd Zd Z d Z!d Z"d Z#dS )    N)ascii_lower   )AtKeywordTokenCommentCurlyBracketsBlockDimensionTokenFunctionBlock	HashToken
IdentTokenLiteralTokenNumberTokenParenthesesBlock
ParseErrorPercentageTokenSquareBracketsBlockStringTokenUnicodeRangeTokenURLTokenWhitespaceToken)serialize_string_valueserialize_urlz([-+]?([0-9]*\.)?[0-9]+([eE][+-]?[0-9]+)?z([0-9A-Fa-f]{1,6})[ \n\t]?Fc           
      2   |                      dd                               dd                               dd                               dd          } t          |           }dx}}d}d	}g x}}d
}	g }
||k     	r|                     d||          }|d	k    r|d|                     d||          z   z  }|}||z
  }|}| |         }|dv re|dz  }|                     d|          r|dz  }|                     d|          | ||         }|                    t          |||                     |dv rc|dz   |k     rZ| |dz            dk    rK| |dz            dv r>t          | |dz             \  }}}|                    t          ||||                     "|                     d|          r+|                    t          ||d                     |dz  }ct          | |          rt          | |          \  }}|                     d|          s&|                    t          |||                     |dz  }t          |          dk    r|}|                     d|          r|dz  }|                     d|          ||k    s
| |         dvrt          | |          \  }}}|td                    t!          |                    }|+|d         }|dk    r|d
d         }n|dk    sJ |d
d	         }|                    t#          ||||                     |!|                    t%          ||g|R             g }|                    t'          ||||                     |
                    ||	f           d}	|}t(                              | |          }|r|                                }| ||         }t/          |          }t1          |                                          st5          |          nd
}||k     rLt          | |          r<t          | |          \  }}|                    t7          ||||||                     n>|                     d|          r-|dz  }|                    t9          |||||                     n|                    t;          |||||                     n|dk    rz|dz  }||k     rIt          | |          r9t          | |          \  }}|                    t=          |||                     ny|                    t          ||d                     nS|dk    r|dz  }||k     r| |         dv s;t?          | |                   dk    s"| |         d k    r`|                     d!|          sJt          | |          }t          | |          \  }}|                    tA          ||||                     n|                    t          ||d                     n|d"k    rHg }|                    tC          |||                     |
                    ||	f           d#}	|}|dz  }n?|d$k    rHg }|                    tE          |||                     |
                    ||	f           d%}	|}|dz  }n|dk    rHg }|                    tG          |||                     |
                    ||	f           d}	|}|dz  }n||	k    r|
$                                \  }}	|dz  }n|d&v r/|                    t%          |||d'|z                        |dz  }nL|dv rtK          | |          \  }}}|Sd(                    tM          |                    }|
|d
d	         }|                    tO          ||||                     |!|                    t%          ||g|R             n|                     d)|          r| (                    d*|dz             }|d	k    r3|s/|                    tS          ||| |dz   d
                              nY|s/|                    tS          ||| |dz   |                              |dz  }n|                     d+|          r*|                    t          ||d+                     |d,z  }n|                     d-|          r*|                    t          ||d-                     |dz  }n|d.v rm|dz  }|                     d/|          r-|dz  }|                    t          |||d/z                        nN|                    t          |||                     n)|                    t          |||                     |dz  }||k     	|S )0aw  Parse a list of component values.

    :type css: :obj:`str`
    :param css: A CSS string.
    :type skip_comments: :obj:`bool`
    :param skip_comments:
        Ignore CSS comments.
        The return values (and recursively its blocks and functions)
        will not contain any :class:`~tinycss2.ast.Comment` object.
    :returns: A list of :term:`component values`.

        �z

r   r   N 
	 r   	Uu   +z0123456789abcdefABCDEF?z-->   (url"'zurl({})eof-in-string
eof-in-url)%@#z@0123456789abcdefghijklmnopqrstuvwxyz-_ABCDEFGHIJKLMNOPQRSTUVWXYZ   \\
{}[]z}])z
Unmatched z"{}"z/*z*/z<!--   z||z~|^$*=)*replacelenrfindcount
startswithappendr   _consume_unicode_ranger   r   _is_ident_start_consume_identr   r   _consume_urlformatr   r   r   r	   
_NUMBER_REmatchendfloatanygroupsintr   r   r   r   ordr
   r   r   r   pop_consume_quoted_stringr   r   findr   )cssskip_commentslengthtoken_start_posposlinelast_newlineroottokensend_charstacknewlinecolumncvaluestartrI   url_poserrorrepr	error_key	argumentsrH   repr_	int_valueunitis_identifiercontents                               R/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/tinycss2/tokenizer.pyparse_component_value_listrm      sb
    ;;tX&&GFD!!''$"5"5ggdD6I6I  XXFOcDLD6HE
,,))D/377b==A		$AAAAD"L|#H<<1HC..!2C88 q ..!2C88 +,EMM/$>>???4iiC!Gf,,S1W1D1D#'l7774S#'BBOE3MM+D&%EEFFF^^E3'' "	MM,tVU;;<<<1HCS#&& 	'S11JE3>>#s++ jvu==>>>1HC5!!U**nn%6@@ !qLG nn%6@@ !f$$GJ(F(F(4S#(>(>%E3((//e0D0DEE ,(-aI(O;;'+CRCy'0L'@'@'@'@'+CRCyhtVUD&I&IJJJ(jv&F&F&F&FGGGIMM-feYGGHHHLL&(+,,,HF  c** `	))++C+,E%LLE*-ellnn*=*=GE


4IV||S 9 9|*344	cn&%E4A A B B B BS)) RqodFE9eTTUUUUk$y%PPQQQQ#XX1HCV||S 9 9|+C55
snT65AABBBBl4==>>>>#XX1HCV||H !? ? ?CMMD((X%%cnnVS.I.I% /S 9 9+C55
sife]KKLLLLl4==>>>>#XXGMM,T67CCDDDLL&(+,,,HF1HCC#XXGMM-dFGDDEEELL&(+,,,HF1HCC#XXGMM*4AABBBLL&(+,,,HF1HCC(]]  %yy{{FH1HCC%ZZMM*T61lQ6FGGHHH1HCC*__ 6sC @ @E3 }}%;E%B%BCC$9Dk$tDDEEE jv>>>>???^^D#&& 	((4q))Cbyy$ TMM'$Oa<O<P<P8Q"R"RSSS  SgdFC!8KC8O4PQQRRR1HCC^^FC(( 	MM,tVV<<===1HCC^^D#&& 	MM,tVT::;;;1HCC'\\1HC~~c3'' =ql4SAABBBBl4;;<<<<MM,tVQ778881HCw ,,x K    c                 @    | |         }|dv pt          |          dk    S )z>Return true if the given character is a name-start code point.5abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_r3   )rN   )rR   rV   r_   s      rl   _is_name_startrq      s-     	CA	DD 	Arn   c                 J   t          | |          rdS | |         dk    ra|dz  }|t          |           k     rt          | |          p8| |         dk    p,|                     d|          o|                     d|           S | |         dk    r|                     d|           S dS )zCReturn True if the given position is the start of a CSS identifier.T-r   r4   r5   F)rq   r=   r@   )rR   rV   s     rl   rC   rC      s     c3 
/t	SSq 3s88^MS!9!9!LSX_ L^^D#&&Js~~fc/J/J+J		M
 
ST		>>&#....5rn   c                    g }t          |           }|}||k     r| |         }|dv st          |          dk    r|dz  }nh|dk    ra|                     d|          sK|                    | ||                    t	          | |dz             \  }}|                    |           |}nn||k     |                    | ||                    d                    |          |fS )ztReturn (unescaped_value, new_pos).

    Assumes pos starts at a valid identifier. See :func:`_is_ident_start`.

    z@abcdefghijklmnopqrstuvwxyz-_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZr3   r   r4   r5    )r=   rN   r@   rA   _consume_escapejoin)rR   rV   chunksrT   	start_posr_   s         rl   rD   rD      s     FXXFI
,,H . / /25a&&4--1HCC$YYs~~fc::YMM#im,---$S#'22FAsMM!II ,, MM#im$%%%776??Crn   c                 0   d}| |         }|dv sJ |dz  }g }t          |           }|}||k     r| |         }||k    r#|                    | ||                    |dz  }n|dk    re|                    | ||                    |dz  }||k     r:| |         dk    r|dz  }n(t          | |          \  }}|                    |           |}n|dk    rd|dfS |dz  }||k     d}|                    | ||                    d                    |          ||fS )	z"Return (unescaped_value, new_pos).Nr)   r   r4   r   )z
bad-stringzBad string token)r,   zEOF in stringru   )r=   rA   rv   rw   )rR   rV   rc   quoterx   rT   ry   r_   s           rl   rP   rP      sc    EHEJ1HCFXXFI
,,H::MM#im,---1HC$YYMM#im,---1HCV||s8t##1HCC,S#66FAsMM!$$$II$YY@@@1HC) ,,, 3c)C-()))776??C&&rn   c                 H   t                               | |          }|rbt          |                    d          d          }d|cxk     rt          j        k    rn nt          |          nd|                                fS |t          |           k     r| |         |dz   fS d|fS )ztReturn (unescaped_char, new_pos).

    Assumes a valid escape: pos is just after '\' and not followed by '\n'.

    r      r   r   )	_HEX_ESCAPE_RErH   rM   groupsys
maxunicodechrrI   r=   )rR   rV   	hex_match	codepoints       rl   rv   rv   "  s     $$S#..I 	**B//	)====s~=====C	NNN8MMOO 	 
s3xx3xq  }rn   c                    d}t          |           }|                     d|          r|dz  }|                     d|          ||k    rd|dfS | |         }|dv rt          | |          \  }}}nL|dk    rd|dz   |fS g }|}	 ||k    r5|                    | ||                    d                    |          |dfS | |         }|dk    r:|                    | ||                    |dz  }d                    |          ||fS |dv r8|                    | ||                    d                    |          }|dz  }nz|d	k    ra|                     d
|          sK|                    | ||                    t          | |dz             \  }}|                    |           |}n|dv rd}|dz  }n|dz  }9|U|                     d|          r|dz  }|                     d|          ||k     r| |         dk    r||dz   |fS n	|d}|||fS ||k     r9|                     d|          r|dz  }n| |         dk    r|dz  }n|dz  }||k     9d|dfS )zgReturn (unescaped_url, new_pos)

    The given pos is assumed to be just after the '(' of 'url('.

    Nr    r   ru   )r.   z
EOF in URLr)   r/   r   r4   r5   z "'( z\)r$   )zbad-urlzbad URL token)r=   r@   rP   rA   rw   rv   )rR   rV   rc   rT   r_   r`   rx   ry   s           rl   rE   rE   5  s
    EXXF ..*C
0
0 q ..*C
0
0 
f}}3444CAJ23<<sEE	
c37E!!		f}}c)C-0111wwv-IIICACxxc)C-0111qwwvU22gc)C-0111qd3>>&##>#>c)C-0111(cAg663a   		11 1 qq=	@ nn.44 	1HC nn.44 	<<3x3cAgu,,  }4#u$$ ,,>>%%% 	1HCCX__1HC1HC ,, 222rn   c                 L   t          |           }|}t          |dz   |          }||k     r| |         dv r|dz  }||k     r
| |         dv | ||         }|}||k     r#| |         dk    r|dz  }||k     r| |         dk    ||z
  }|r|d|z  z   }|d|z  z   }nn|dz   |k     rc| |         dk    rW| |dz            dv rJ|dz  }|}t          |dz   |          }||k     r| |         dv r|dz  }||k     r
| |         dv | ||         }n|}t          |d          t          |d          |fS )	zdReturn (range, new_pos)

    The given pos is assume to be just after the '+' of 'U+' or 'u+'.

       0123456789abcdefABCDEFr   ?F0rs   r}   )r=   minrM   )rR   rV   rT   ry   max_posra   question_marksrI   s           rl   rB   rB     s    XXFI#'6""G
--CH(@@@q --CH(@@@	#EI
--CHOOq --CHOO9_N cN**n,,
'F

s3x3
cAg,2
2
2q	cAgv&&GmmC,D D D1HC GmmC,D D D)C- ub>>3sB<<,,rn   )F)$rer   webencodingsr   astr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   
serializerr   r   compilerG   r~   rm   rq   rC   rD   rP   rv   rE   rB    rn   rl   <module>r      s   				 



 $ $ $ $ $ $                                     
 > = = = = = = =RZCDD
9::t t t tn    "     6"' "' "'J  &J3 J3 J3Z!- !- !- !- !-rn   