+
    	iG              
          ^ RI t R tR tR tRRRRR	R
RRRR/tRP                  R ] 4       4      t] P                  ! R] R2] P                  4      tR t	R t
R tR t]! R U Uu. uF  p R F  pW3NK  	  K  	  upp R U Uu. uF  p R F  pW3NK  	  K  	  upp ,           R U Uu. uF  p R  F  pW3NK  	  K  	  upp ,           R! U Uu. uF  p R" F  pW3NK  	  K  	  upp ,           R# Uu. uF  pRV3NK	  	  up,           R$ Uu. uF  pRV3NK	  	  up,           R U u. uF  q R3NK  	  up ,           . R%O,           4      tR# u upp i u upp i u upp i u upp i u upi u upi u up i )&    Nc                R    . p\        WP                  4       RP                  V4      # )a  Serialize nodes to CSS syntax.

This should be used for :term:`component values`
instead of just :meth:`tinycss2.ast.Node.serialize` on each node
as it takes care of corner cases such as ``;`` between declarations,
and consecutive identifiers
that would otherwise parse back as the same token.

:type nodes: :term:`iterable`
:param nodes: An iterable of :class:`tinycss2.ast.Node` objects.
:returns: A :obj:`string <str>` representing the nodes.

 )_serialize_toappendjoin)nodeschunkss   & Y/Users/agent/.openclaw/workspace/venv/lib/python3.14/site-packages/tinycss2/serializer.py	serializer      s#     F%'776?    c                   V R8X  d   R# V R,          R8X  d   R\        V R,          4      ,           # V ^ ,          R8X  d   RpV R,          p MRpV ^ ,          pTVR9   g   \        V4      ^8  d   TM<VR	8X  d   R
M3VR8X  d   RM*VR8X  d   RM!VR9   d   R\        V4      ,          MRV,           ,          pV\        V R,          4      ,          pV# )a8  Serialize any string as a CSS identifier

:type value: :obj:`str`
:param value: A string representing a CSS value.
:returns:
    A :obj:`string <str>` that would parse as an
    :class:`tinycss2.ast.IdentToken` whose
    :attr:`tinycss2.ast.IdentToken.value` attribute equals the passed
    ``value`` argument.

-z\-:N   Nz--:r   NN:   NNr   5abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ
\A \D \C 
0123456789z\%X \)serialize_nameord)valueresultcs   &  r
   serialize_identifierr      s     |RyDnU2Y///Qx3b	aA
 0 147FTM 	
t)t)t)-#a&qF nU2Y''FMr   c                 2    R P                  R V  4       4      # )r   c              3      "   T FB  pVR 9   g   \        V4      ^8  d   TM#VR8X  d   RMVR8X  d   RMVR8X  d   RMRV,           x  KD  	  R# 5i)	z@abcdefghijklmnopqrstuvwxyz-_0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZr   r   r   r   r   r   r   N)r   .0r   s   & r
   	<genexpr>!serialize_name.<locals>.<genexpr>=   s\       A  0 147FTM 	
t)t)t)q	 s   A
Ar   r   s   &r
   r   r   <   s"    77    r   "\"r   \\r   r   r   r   r   r   r   c              #   N   "   T F  p\         P                  ! V4      x  K  	  R # 5iN)reescape)r#   chars   & r
   r$   r$   O   s     Q7Pt299T??7Ps   #%[]c                 :    \         V P                  ^ 4      ,          # )r   )_replacement_string_valuegroup)matchs   &r
   _serialize_string_value_matchr6   Q   s    $U[[^44r   c                 6    \         P                  \        V 4      # r,   )_re_string_valuesubr6   r'   s   &r
   serialize_string_valuer:   S   s     =uEEr   c                 2    R P                  R V  4       4      # )r   c              3      "   T Fa  pVR 8X  d   RMRVR8X  d   RMIVR8X  d   RM@VR8X  d   RM7VR8X  d   R	M.VR
8X  d   RM%VR8X  d   RMVR8X  d   RMVR8X  d   RM
VR8X  d   RMTx  Kc  	  R# 5i)'z\'r(   r)   r   r*    z\ 	z\9 r   r   r   r   r   r   (z\()z\)N r"   s   & r
   r$    serialize_url.<locals>.<genexpr>X   sz       A ccdct)t)t)t)cc	
	
 s   A)A+r&   r'   s   &r
   serialize_urlrD   W   s"    77    r   c                N   \         pRpV  F  pVP                  R8w  d   VP                  MVP                  pW53V9   d
   V! R4       M7VR8X  d1   VR8X  d"   VP                  P                  R4      '       g	   V! R4       VP	                  V4       VR8X  d	   V! R4       TpK  	  R# )	zxSerialize an iterable of nodes to CSS syntax.

White chunks as a string by calling the provided :obj:`write` callback.

Nliteralz/**/r   
whitespacer   declaration;)	BAD_PAIRStyper   
startswithr   )r   write	bad_pairsprevious_typenodeserialization_types   &&    r
   r   r   i   s     IM+/99	+Adii#':: 	.);&Md""l2

%%d++$K5!.#J* r   unicode-range@z$*^~|=)ident
at-keywordhash	dimension#r   number)rU   functionurlrZ   
percentagerX   rR   )rU   rV   rW   rX   )r   z-->)rY   r   rZ   rS   )rU   r[   r\   )rR   .+)rZ   r]   rX   )rU   r[   r\   rR   r   )rU   r[   ?))rU   z() block)|ra   )/*)r-   r   r   r   r3   r   r8   compile	MULTILINEr6   r:   rD   r   setrJ   )abs   00r
   <module>ri      s   	&"J	 %&&&  77Q7PQQ ::"2!315r||D 5F$+. Q1QA0A V0 Q1
 >=AA V =	 +/*A-A V- */	/ -8,A6A V6 ,88 JJI!c1XIJK $>>#=aoq#=>? w!Xw   4!4	1/8 K>s*   &E
E&E	E+E
E
E#
