Ë
    o]jkŸ  ã                   ó
  — d Z ddlZddlmZmZmZ ddlmZ ddlm	Z	 ddl
mZ dd	lmZ dd
lmZmZmZmZ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$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 i Z: G d„ de«      Z;d„ Z<d„ Z=d„ Z> e=d«       e=d«       e=d«       e=d«       e=d«       e=d«       e=d«       e=d«       e=d«       e=d«       e=d«       e=d«      d„ «       «       «       «       «       «       «       «       «       «       «       «       Z? e=d«       e=d«       e=d «       e=d!«       e=d"«       e=d#«       e=d$«      d%„ «       «       «       «       «       «       «       Z@d&„ ZA e=d'«       e>d(d)d*d+d,¬-«      d.„ «       «       ZB e=d/«       e>d0d1d2d,¬-«      d3„ «       «       ZC e=d4«      d5„ «       ZD e=d6«       e=d7«      d8„ «       «       ZE e=d9«       e=d:«       e=d;«       e=d<«       e=d=«       e=d>«       e=d?«       e=d@«       e=dA«       e=dB«       e>dCdDdE«      dF„ «       «       «       «       «       «       «       «       «       «       «       ZF e=dG«       e>dHdIdJdKdCd,¬-«      dL„ «       «       ZG e=dM«       e>dHdIdJdKdCdNd,¬-«      dO„ «       «       ZH e=dP«      dQ„ «       ZI e=dR«       e>dSdDdEdT«      dU„ «       «       ZJdV„ ZK e=dW«       e>dX«      dY„ «       «       ZL e=dZ«       e>d[«      d\„ «       «       ZM e=d]«       e>d^«      d_„ «       «       ZN e=d`«       e>dadb«      dc„ «       «       ZO e=dd«       e>dedfdgdhdid1«      dj„ «       «       ZP e=dk«       e>dEdldmdndodpdq«      dr„ «       «       ZQ e=ds«       e>dt«      du„ «       «       ZR e=dv«       e>dwdxdy«      dz„ «       «       ZS e=d{«       e>d|d}«      d~„ «       «       ZTd„ ZU e=d€«       e>d�d‚dƒ«      d„„ «       «       ZV e=d…«       e>d†d‡dˆd‰dŠd‹«      dŒ„ «       «       ZWd�„ ZX e=dŽ«       e=d�«       e>d�d‘«      d’„ «       «       «       ZY e=d“«       e>d”d•d–d—«      d˜„ «       «       ZZ e=d™«       e=dš«       e>d›dœ«      d�„ «       «       «       Z[ e=dž«       e>d›«      dŸ„ «       «       Z\ e=d «       e>dœ«      d¡„ «       «       Z] e=d¢«       e>d£d¤«      d¥„ «       «       Z^ e=d¦«       e>d§d¨«      d©„ «       «       Z_ e=dª«       e>d«d¬«      d­„ «       «       Z` e=d®«       e>d¯d°d±«      d²„ «       «       Za e=d³«       e>d´dµ«      d¶„ «       «       Zby)·zValidate properties expanders.é    N)ÚDimensionTokenÚ
IdentTokenÚNumberToken)Úparse_coloré   )Ú	check_var)ÚINITIAL_VALUESé   ©Úexpand_font_variant)ÚInvalidValuesÚPendingÚget_keywordÚget_single_keywordÚsplit_on_comma)&Úbackground_attachmentÚbackground_imageÚbackground_positionÚbackground_repeatÚbackground_sizeÚblock_ellipsisÚborder_image_sourceÚborder_image_sliceÚborder_image_widthÚborder_image_outsetÚborder_image_repeatÚborder_styleÚborder_widthÚboxÚcolumn_countÚcolumn_widthÚ
flex_basisÚflex_directionÚflex_grow_shrinkÚ	flex_wrapÚfont_familyÚ	font_sizeÚfont_stretchÚ
font_styleÚfont_variant_capsÚfont_weightÚgapÚ	grid_lineÚgrid_templateÚline_heightÚlist_style_imageÚlist_style_positionÚlist_style_typeÚmask_border_modeÚother_colorsÚoverflow_wrapÚtext_decoration_thicknessÚvalidate_non_shorthandc                   ó(   ‡ — e Zd ZdZˆ fd„Zd„ Zˆ xZS )ÚPendingExpanderz>Expander with validation done when defining calculated values.c                 óN   •— t         ‰| �  ||j                  d   «       || _        y )NÚname)ÚsuperÚ__init__ÚkeywordsÚ	validator)ÚselfÚtokensr?   Ú	__class__s      €úZ/var/www/zogu/zoguvenv/lib/python3.12/site-packages/weasyprint/css/validation/expanders.pyr=   zPendingExpander.__init__   s$   ø€ Ü‰Ñ˜ ×!3Ñ!3°FÑ!;Ô<Ø"ˆ�ó    c                 ó®   — | j                  |«      D ]<  \  }}|j                  d«      r| j                   j                  d   › |› �}||k(  sŒ:|c S  t        ‚)Nú-r;   )r?   Ú
startswithr>   ÚKeyError)r@   rA   Ú
wanted_keyÚkeyÚvalues        rC   ÚvalidatezPendingExpander.validate!   s\   € ØŸ.™.¨Ó0ò 	‰JˆC�Ø�~‰~˜cÔ"ØŸ™×0Ñ0°Ñ8Ð9¸#¸Ð?�Ø�jÓ Ø’ð		ô
 ˆrD   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r=   rL   Ú__classcell__)rB   s   @rC   r9   r9      s   ø„ ÙHô#örD   r9   c                 óp   — | D ],  }t        |«      sŒt        | |«      }|D �ci c]  }||“Œ c}c S  yc c}w )z5Return pending expanders when var is found in tokens.N)r   r9   )rA   ÚexpanderÚexpanded_namesÚtokenÚpendingr;   s         rC   Ú	_find_varrW   *   s?   € àò >ˆÜ�UÕä% f¨hÓ7ˆGØ.<Ö= d�D˜'‘MÒ=Ò=ñ	>ùò >s   ¢
3c                 ó   ‡ — ˆ fd„}|S )z1Decorator adding a function to the ``EXPANDERS``.c                 ó8   •— ‰t         vsJ ‰«       ‚| t         ‰<   | S )z&Add ``function`` to the ``EXPANDERS``.)Ú	EXPANDERS)ÚfunctionÚproperty_names    €rC   Úexpander_decoratorz$expander.<locals>.expander_decorator5   s%   ø€ à¤IÑ-Ð<¨}Ó<Ð-Ø#+Œ	�-Ñ ØˆrD   © )r\   r]   s   ` rC   rS   rS   3   s   ø€ ôð
 ÐrD   c                  óB   ‡ ‡— |j                  dd«      Š|rJ ‚ˆ ˆfd„}|S )zöDecorator helping expanders to handle ``inherit`` and ``initial``.

    Wrap an expander so that it does not have to handle the 'inherit' and
    'initial' cases, and can just yield name suffixes. Missing suffixes
    get the initial value.

    Úwants_base_urlFc                 óL   •‡ ‡— t        j                  ‰ «      ˆˆˆˆ fd„«       Š‰S )z"Decorate the ``wrapped`` expander.c              3   óö  •K  — t        j                  ‰||¬«      }d}t        | «      }|dv r‰D �ci c]  }||“Œ }}d}nt        | |‰«      }|rd}|sWi }‰r ‰| |«      }n	 ‰| «      }|D ]:  \  }}	|‰v sJ |«       ‚||v r!t	        d|j                  d«      › d|› d�«      ‚|	||<   Œ< ‰D ]D  }|j                  d«      r› |› �}
n|}
||v r||   }|st        ||
|d¬	«      \  \  }
}nd
}|
|f–— ŒF yc c}w ­w)zWrap the expander.©r;   Úbase_urlF)ÚinheritÚinitialTzgot multiple rF   z values in a z
 shorthand©Úrequiredrf   N)Ú	functoolsÚpartialr   rW   r   ÚstriprG   r7   )rA   r;   rd   rS   Úskip_validationÚkeywordÚresultsÚresultÚnew_nameÚ	new_tokenÚactual_new_namerK   rT   Úgeneric_expander_wrapperr`   Úwrappeds               €€€€rC   rs   zVgeneric_expander.<locals>.generic_expander_decorator.<locals>.generic_expander_wrapperJ   sx  øè ø€ ô !×(Ñ(Ø(¨t¸hôHˆHð $ˆOÜ(¨Ó0ˆGØÐ0Ñ0Ø5CÖD¨T˜4 ™=ÐD�ÐDØ"&‘ä# F¨H°nÓE�ÙØ&*�Oá"Ø�Ù!Ù$ V¨T°8Ó<‘Fá$ V¨TÓ2�FØ+1ò 2Ñ'�H˜iØ# ~Ñ5Ð?°xÓ?Ð5Ø 7Ñ*Ü+Ø+¨H¯N©N¸3Ó,?Ð+@ð A$Ø$( 6¨ð5ó6ð 6ð )2�G˜HÒ%ð2ð +ò -�Ø×&Ñ& sÔ+à)-¨¨x¨jÐ&9‘Oà&.�Oà˜wÑ&Ø# HÑ-�EÙ*ä4JØ! ?°HÀtô5MÑ1Ñ0˜©%ð &�Eà% uÐ,Ó,ñ!-ùò+ Eùs   ƒ.C9±
C4»B>C9)ri   Úwraps)rt   rs   rT   r`   s   `@€€rC   Úgeneric_expander_decoratorz4generic_expander.<locals>.generic_expander_decoratorH   s'   ú€ ä	�‰˜Ó	!ö-	-ó 
"ð-	-ð\ (Ð'rD   )Úpop)rT   Úkwargsrv   r`   s   `  @rC   Úgeneric_expanderry   =   s,   ù€ ð —Z‘ZÐ 0°%Ó8€NÙÐˆ:õ1(ðd &Ð%rD   zmargin-blockzmargin-inlinezpadding-blockzpadding-inlinezborder-block-colorzborder-block-stylezborder-block-widthzborder-inline-colorzborder-inline-stylezborder-inline-widthzinset-blockzinset-inlinec              #   ó<   K  — t        | ||d«      E d{  –—†  y7 Œ­w)zAExpand properties setting a token for two logical sides of a box.©ÚstartÚendN)Ú_expand_sides)rA   r;   rd   s      rC   Úexpand_two_logical_sidesr   }   s   è ø€ ô ˜V T¨8Ð5EÓF×FÒFús   ‚”•zborder-colorzborder-stylezborder-widthÚmarginÚpaddingÚbleedÚinsetc              #   ót   K  — d}| rt        | d   «      dk(  rd}| dd } t        | |||«      E d{  –—†  y7 Œ­w)zLExpand properties setting a token for four sides of a box, possibly logical.©ÚtopÚrightÚbottomÚleftr   Úlogical)zblock-startzinline-startz	block-endz
inline-endr
   N)r   r~   )rA   r;   rd   Úsidess       rC   Úexpand_four_sidesrŒ   Ž   sD   è ø€ ð /€EÙ”+˜f Q™iÓ(¨IÒ5ØJˆØ˜˜�ˆÜ˜V T¨8°UÓ;×;Ò;ús   ‚.8°6±8c           
   #   ó  K  — g }|D ]d  }|j                  d«      r |j                  |dd › d|› d|dd › �«       Œ4|dk(  rd|vr|j                  |«       ŒO|j                  |› d|› �«       Œf t        j                  t        |   ||¬«      }t        | ||«      x}r|j                  «       E d{  –—†  yt        | «      dk(  r| t        |«      z  } n‚t        |«      d	k(  rt        | «      d
k(  r| d
z  } n`t        |«      d	k(  rt        | «      dk(  r
| | d   fz  } n:t        | «      t        |«      k7  r#t        dt        |«      › dt        | «      › �«      ‚t        || «      D ]  \  }}	t        |	g||d¬«      d   –— Œ y7 ŒÎ­w)zAExpand properties setting a token for two or four sides of a box.)ú-colorú-styleú-widthNiúÿÿÿrF   éûÿÿÿrƒ   rc   r
   é   r   é   zExpected 1 to z tokens, got Trg   r   )ÚendswithÚappendri   rj   rZ   rW   ÚitemsÚlenr   Úzipr7   )
rA   r;   rd   r‹   rT   ÚsiderS   ro   Úexpanded_namerU   s
             rC   r~   r~   ž   s•  è ø€ ð €NØò 	8ˆØ�=‰=Ð7Ô8à×!Ñ! T¨#¨2 Y K¨q°°°a¸¸R¸S¸	°{Ð"CÕDà�wŠ 3¨d¡?à×%Ñ% dÕ+à×%Ñ%¨¨¨a°¨vÐ&6Õ7ð	8ô × Ñ ¤¨4¡°tÀhÔO€HÜ˜6 8¨^Ó<Ð<€vÐ<Ø—<‘<“>×!Ð!Øô ˆ6ƒ{�aÒØ”#�e“*Ñ‰Ü	ˆU‹�qŠœS ›[¨AÒ-Ø�!‰‰Ü	ˆU‹�qŠœS ›[¨AÒ-Ø�6˜!‘9�,Ñ‰Ü	ˆV‹œ˜E›
Ò	"Ü˜n¬S°«Z¨L¸ÄcÈ&ÃkÀ]ÐSÓTÐTÜ # N°FÓ ;ò YÑˆ�uä$ e W¨m¸XÐPTÔUÐVWÑXÓXñYð 	"ús   ‚B-F Â/E>Â0CF zborder-radiuszborder-top-left-radiuszborder-top-right-radiuszborder-bottom-right-radiuszborder-bottom-left-radiusT)r`   c              #   óD  K  — g x}}g }| D ]V  }|j                   dk(  r4|j                  dk(  r%||u r|| d   k(  rt        d«      ‚|}Œ;t        d«      ‚|j                  |«       ŒX |s|dd }||fD ]r  }t	        |«      dk(  r|dz  }Œt	        |«      d	k(  r|d	z  }Œ+t	        |«      d
k(  r|j                  |d   «       ŒNt	        |«      dk7  sŒ]t        dt	        |«      › �«      ‚ d}t        |t        ||«      «      D ]   \  }	} d|	› d�}t        | ||d¬«       || f–— Œ" y­w)z-Validator for the ``border-radius`` property.Úliteralú/éÿÿÿÿz"Expected value after "/" separatorzExpected only one "/" separatorNr
   r’   r   r“   z%Expected 1 to 4 token components got )ztop-leftz	top-rightzbottom-rightzbottom-leftzborder-z-radiusTrg   )ÚtyperK   r   r•   r—   r˜   r7   )
rA   r;   rd   ÚcurrentÚ
horizontalÚverticalrU   ÚvaluesÚcornersÚcorners
             rC   Úborder_radiusr¦   Á   s\  è ø€ ð Ð€GˆjØ€HØò 
"ˆØ�:‰:˜Ò" u§{¡{°cÒ'9Ø˜*Ñ$Ø˜F 2™JÒ&Ü'Ð(LÓMÐMà&‘Gä#Ð$EÓFÐFà�N‰N˜5Õ!ð
"ñ Ø™a�=ˆà˜hÐ&ò 
Gˆäˆv‹;˜!ÒØ�a‰K‰FÜ�‹[˜AÒØ�a‰K‰FÜ�‹[˜AÒØ�M‰M˜& ™)Õ$Ü�‹[˜AÓÜØ7¼¸F»°}ÐEóGð Gð
Gð G€GÜ˜g¤s¨:°xÓ'@ÓAò ‰ˆ�Ø˜˜ Ð(ˆÜ˜v t¨XÀÕEØ�FˆlÓñùs   ‚C	D ÃAD z
list-styleú-typeú	-positionú-imagec              #   ó   K  — dx}}d}| D ]W  }t        |«      dk(  r|dz  }|}Œt        |g|«      �d}d}n&t        |g«      �d}nt        |g«      �d	}d}nt        ‚||gf–— ŒY |s|rd	gf–— |dz  }|s|rdgf–— |dz  }|rt        ‚y­w)
zyExpand the ``list-style`` shorthand property.

    See https://www.w3.org/TR/CSS21/generate.html#propdef-list-style

    Fr   Únoner
   Nr©   Tr¨   r§   )r   r0   r1   r2   r   )	rA   r;   rd   Útype_specifiedÚimage_specifiedÚ
none_countrU   Ú
none_tokenÚsuffixs	            rC   Úexpand_list_styler±   ë   sà   è ø€ ð (-Ð,€N�_Ø€JØò ˆÜ�uÓ Ò'ð ˜!‰OˆJØˆJØä˜U˜G XÓ.Ð:ØˆFØ"‰OÜ  % Ó)Ð5Ø ‰FÜ˜e˜WÓ%Ð1ØˆFØ!‰NäÐØ�u�gˆoÓð%ñ( ™jØ˜
�|Ð#Ò#Ø�a‰ˆ
á™zØ˜˜Ð$Ò$Ø�a‰ˆ
áäÐð ùs   ‚BBÚborderc              #   óR   K  — dD ]  }t        | |› d|› �|«      E d{  –—†  Œ y7 Œ­w)zlExpand the ``border`` shorthand property.

    See https://www.w3.org/TR/CSS21/box.html#propdef-border

    r…   rF   N©Úexpand_border_side©rA   r;   rd   r°   s       rC   Úexpand_borderr·     s9   è ø€ ð 5ò LˆÜ% f°°°a¸°xÐ.@À(ÓK×KÑKñLØKúó   ‚'�%ž'zborder-blockzborder-inlinec              #   óR   K  — dD ]  }t        | |› d|› �|«      E d{  –—†  Œ y7 Œ­w)z4Expand the logical ``border-*`` shorthands property.r{   rF   Nr´   r¶   s       rC   Úexpand_logical_borderrº   !  s9   è ø€ ð #ò LˆÜ% f°°°a¸°xÐ.@À(ÓK×KÑKñLØKúr¸   z
border-topzborder-rightzborder-bottomzborder-leftzborder-block-startzborder-block-endzborder-inline-startzborder-inline-endzcolumn-ruleÚoutliner�   rŽ   r�   c              #   óŒ   K  — | D ];  }t        |«      �d}n$t        |g«      �d}nt        |g«      �d}nt        ‚||gf–— Œ= y­w)ztExpand the ``border-*`` shorthand properties.

    See https://www.w3.org/TR/CSS21/box.html#propdef-border-top

    NrŽ   r�   r�   )r   r   r   r   )rA   r;   rU   r°   s       rC   rµ   rµ   )  s]   è ø€ ð" ò 	ˆÜ�uÓÐ)Ø‰FÜ˜5˜'Ó"Ð.Ø‰FÜ˜5˜'Ó"Ð.Ø‰FäÐØ�u�gˆoÓñ	ùs   ‚AAzborder-imageú-outsetú-repeatú-sliceú-sourcec              #   ó¢  K  — t        | «      } | �r½t        | dd |«      rd| j                  d«      gf–— �n‘t        | dd «      r[| j                  d«      g}| r?t        | dd «      r1|j	                  | j                  d«      «       | rt        | dd «      rŒ1d|f–— �n(t        | dd «      st        | d   «      dk(  �r| j                  d«      g}| rEt        || dd z   «      r4|j	                  | j                  d«      «       | rt        || dd z   «      rŒ4d|f–— | r6| d   j                  dk(  r$| d   j                  d	k(  r| j                  d«       n�ŒL| st        ‚t        | dd «      r™| j                  d«      g}| rEt        || dd z   «      r4|j	                  | j                  d«      «       | rt        || dd z   «      rŒ4d
|f–— | r6| d   j                  dk(  r$| d   j                  d	k(  r| j                  d«       n@�Œû| r6| d   j                  dk(  r$| d   j                  d	k(  r| j                  d«       nt        ‚| st        ‚t        | dd «      r`| j                  d«      g}| rEt        || dd z   «      r4|j	                  | j                  d«      «       | rt        || dd z   «      rŒ4d|f–— nt        ‚t        ‚| r�Œ¼yy­w)z}Expand the ``border-image-*`` shorthand properties.

    See https://drafts.csswg.org/css-backgrounds/#the-border-image

    Nr
   rÀ   r   r¾   Úfillr¿   rœ   r�   r�   r½   )Úlistr   rw   r   r•   r   r   rŸ   rK   r   r   r   ©rA   r;   rd   ÚrepeatsÚslicesÚwidthsÚoutsetss          rC   Úexpand_border_imagerÉ   F  s¤  è ø€ ô �&‹\€FÚ
Ü˜v b q˜z¨8Ô4Ø˜fŸj™j¨›m˜_Ð,Ô,Ü  ¨¨ Ô,Ø—z‘z !“}�oˆGÙÔ0°¸¸°Ô<Ø—‘˜vŸz™z¨!›}Ô-ñ Ô0°¸¸°Õ<à˜WÐ$Ô$Ü  r¨ 
Ô+¬{¸6À!¹9Ó/EÈÓ/OØ—j‘j “m�_ˆFÙÔ/°¸ÀÀ¸Ñ0CÔDØ—‘˜fŸj™j¨›mÔ,ñ Ô/°¸ÀÀ¸Ñ0CÕDà˜FÐ"Ò"Ù˜& ™)Ÿ.™.¨IÒ5¸&À¹)¿/¹/ÈSÒ:Pà—
‘
˜1•ñ Ùä#Ð#Ü! &¨¨! *Ô-Ø Ÿ*™* Q›-˜�ÙÔ!3°F¸VÀBÀQ¸ZÑ4GÔ!HØ—M‘M &§*¡*¨Q£-Ô0ñ Ô!3°F¸VÀBÀQ¸ZÑ4GÕ!Hà Ð&Ò&Ù˜f Q™iŸn™n°	Ò9¸fÀQ¹i¿o¹oÐQTÒ>Tà—J‘J˜q•Mñ Ù˜F 1™IŸN™N¨iÒ7¸FÀ1¹I¿O¹OÈsÒ<Rà—
‘
˜1•ô $Ð#Ùä#Ð#Ü" 6¨"¨1 :Ô.Ø!Ÿ:™: a›=˜/�ÙÔ!4°W¸vÀbÀq¸zÑ5IÔ!JØ—N‘N 6§:¡:¨a£=Ô1ñ Ô!4°W¸vÀbÀq¸zÑ5IÕ!Jà Ð(Ó(ô $Ð#äÐõg ùs'   ‚BKÂB KÄB.KÇ	C,KÊ6KËKzmask-borderú-modec              #   óî  K  — t        | «      } | �rãt        | dd |«      rd| j                  d«      gf–— �n·t        | dd «      rd| j                  d«      gf–— �n‘t	        | dd «      r[| j                  d«      g}| r?t	        | dd «      r1|j                  | j                  d«      «       | rt	        | dd «      rŒ1d|f–— �n(t        | dd «      st        | d   «      dk(  �r| j                  d«      g}| rEt        || dd z   «      r4|j                  | j                  d«      «       | rt        || dd z   «      rŒ4d|f–— | r6| d   j                  d	k(  r$| d   j                  d
k(  r| j                  d«       n�Œr| st        ‚t        | dd «      r™| j                  d«      g}| rEt        || dd z   «      r4|j                  | j                  d«      «       | rt        || dd z   «      rŒ4d|f–— | r6| d   j                  d	k(  r$| d   j                  d
k(  r| j                  d«       n@�Œ!| r6| d   j                  d	k(  r$| d   j                  d
k(  r| j                  d«       nt        ‚| st        ‚t        | dd «      r`| j                  d«      g}| rEt        || dd z   «      r4|j                  | j                  d«      «       | rt        || dd z   «      rŒ4d|f–— nt        ‚t        ‚| r�Œâyy­w)zvExpand the ``mask-border-*`` shorthand properties.

    See https://drafts.fxtf.org/css-masking/#the-mask-border

    Nr
   rÀ   r   rÊ   r¾   rÂ   r¿   rœ   r�   r�   r½   )rÃ   r   rw   r3   r   r•   r   r   rŸ   rK   r   r   r   rÄ   s          rC   Úexpand_mask_borderrÌ   †  sÇ  è ø€ ô �&‹\€FÚ
Ü˜v b q˜z¨8Ô4Ø˜fŸj™j¨›m˜_Ð,Ô,Ü˜f R a˜jÔ)Ø˜FŸJ™J q›M˜?Ð*Ô*Ü  ¨¨ Ô,Ø—z‘z !“}�oˆGÙÔ0°¸¸°Ô<Ø—‘˜vŸz™z¨!›}Ô-ñ Ô0°¸¸°Õ<à˜WÐ$Ô$Ü  r¨ 
Ô+¬{¸6À!¹9Ó/EÈÓ/OØ—j‘j “m�_ˆFÙÔ/°¸ÀÀ¸Ñ0CÔDØ—‘˜fŸj™j¨›mÔ,ñ Ô/°¸ÀÀ¸Ñ0CÕDà˜FÐ"Ò"Ù˜& ™)Ÿ.™.¨IÒ5¸&À¹)¿/¹/ÈSÒ:Pà—
‘
˜1•ñ Ùä#Ð#Ü! &¨¨! *Ô-Ø Ÿ*™* Q›-˜�ÙÔ!3°F¸VÀBÀQ¸ZÑ4GÔ!HØ—M‘M &§*¡*¨Q£-Ô0ñ Ô!3°F¸VÀBÀQ¸ZÑ4GÕ!Hà Ð&Ò&Ù˜f Q™iŸn™n°	Ò9¸fÀQ¹i¿o¹oÐQTÒ>Tà—J‘J˜q•Mñ Ù˜F 1™IŸN™N¨iÒ7¸FÀ1¹I¿O¹OÈsÒ<Rà—
‘
˜1•ô $Ð#Ùä#Ð#Ü" 6¨"¨1 :Ô.Ø!Ÿ:™: a›=˜/�ÙÔ!4°W¸vÀbÀq¸zÑ5IÔ!JØ—N‘N 6§:¡:¨a£=Ô1ñ Ô!4°W¸vÀbÀq¸zÑ5IÕ!Jà Ð(Ó(ô $Ð#äÐõk ùs'   ‚B<K5Â?B K5Å B.K5Ç/C,K5ËK5Ë3K5Ú
backgroundc              #   ó`  ‡‡K  — dŠt        | «      }|dv r‰D ]  }||f–— Œ
 yt        j                  t        |‰¬«      }t	        | |‰«      x}r|j                  «       E d{  –—†  yd
ˆˆfd„	}t        t        | «      «      } |t        |«      d¬«      \  }}	|	j                  «       D �
�ci c]	  \  }
}|
|g“Œ }}
}|D ]9  }  || «      \  }}|j                  «       D ]  \  }}||   j                  |«       Œ Œ; |j                  «       D ]  \  }}||ddd…   f–— Œ d	|f–— y7 ŒÃc c}}
w ­w)zwExpand the ``background`` shorthand property.

    See https://drafts.csswg.org/css-backgrounds-3/#the-background

    )úbackground-colorzbackground-imagezbackground-repeatzbackground-attachmentzbackground-positionzbackground-sizezbackground-clipzbackground-origin)rf   re   Nrc   c           	      óþ  •‡— i Šˆfd„}| d d d…   } | �r |dt        j                  | dd  d d d…   «      «      r| dd …= Œ.| dd  }|r# |dt        |«      «      r| j                  «        ŒX |dt	        j                  |‰«      «      r| j                  «        Œ† |dt        j                  |«      «      r| j                  «        Œ³ |dt        j                  |«      «      r| j                  «        Œàdt        | «       d  D ]§  }| | d  d d d…   }t        j                  |«      }|€Œ' |d	|«      sJ ‚| | d …= | rm| d   j                  d
k(  r[| d   j                  dk(  rIdt        | «       d  D ]7  }| | d d d d…   }t        j                  |«      }|€Œ' |d|«      sJ ‚| | d …= Œ9  n ��Œ� |dt        j                  |«      «      r`| j                  «        | dd  } |dt        j                  |«      «      r| j                  «        n |dt        j                  |«      «       �Œt        ‚‰j                  dt        d   «      }	‰D ],  }
|
‰vsŒ|
dk7  sŒt        |
j                  dd«         d   ‰|
<   Œ. |	‰fS )Nc                 ó4   •— |€yd| › �} | ‰v rt         ‚|‰| <   y)NFzbackground-T©r   )r;   rK   rn   s     €rC   Úaddz3expand_background.<locals>.parse_layer.<locals>.addâ  s0   ø€ Øˆ}ØØ   Ð'ˆDØ�w‰Ü#Ð#Ø!ˆG�D‰MØrD   rž   ÚrepeatéþÿÿÿÚcolorÚimageÚ
attachment)r’   r“   r   r
   Úpositionrœ   r�   )r“   r   ÚsizeÚoriginÚcliprÏ   Úbackground_colorrF   Ú_r   )r   Úsingle_valuer4   rw   r   r   r—   r   rŸ   rK   r   r   r   r	   Úreplace)rA   Úfinal_layerrÓ   rU   ÚnÚn_tokensrÙ   rÚ   Ú
next_tokenrÖ   r;   rn   rd   rT   s              @€€rC   Úparse_layerz&expand_background.<locals>.parse_layerß  s©  ù€ Øˆô	ð ™˜"˜‘ˆÚÙ�8Ü$×1Ñ1°&¸¸°+¹dÀ¸dÑ2CÓDôFà˜2™3�KØØ˜2˜3�KˆEÙ™s 7¬L¸Ó,?Ô@Ø—
‘
”ØÙ�7Ô,×9Ñ9¸%ÀÓJÔKØ—
‘
”ØÙ�8Ô.×;Ñ;¸EÓBÔCØ—
‘
”ØÙ�<Ô!6×!CÑ!CÀEÓ!JÔKØ—
‘
”ØØ!¤3 v£; , -Ð0ò �Ø! 1 " #˜;¡t¨ tÑ,�Ü.×;Ñ;¸HÓE�ØÑ'Ù˜z¨8Ô4Ð4Ð4Ø ˜r™s˜Ù 6¨"¡:§?¡?°iÒ#?Ø" 2™J×,Ñ,°Ò3Ø!'¬¨V«¨¨Ð!6ò 0˜Aà'-¨q¨b° }±T°r°TÑ':˜HÜ#2×#?Ñ#?ÀÓ#I˜DØ#Ñ/Ù'*¨6°4Ô'8Ð 8Ð'8Ø$*¨A¨2©3¡Kð0ñ ðð  Ð#ÙÙ�8œS×-Ñ-¨eÓ4Ô5Ø—
‘
”Ø# B C˜[�
Ù�vœs×/Ñ/°
Ó;Ô<Ø—J‘J•Lñ ˜¤× 0Ñ 0°Ó 7Ô8ÙÜÐà—‘Ø¤Ð/AÑ BóDˆà"ò 	JˆDØ˜7Ò" tÐ/AÓ'AÜ .¨t¯|©|¸CÀÓ/EÑ FÀqÑ I�˜’ð	Jð �gˆ~ÐrD   T)rá   rž   rÏ   )F)
r   ri   rj   Úexpand_backgroundrW   r–   Úreversedr   Únextr•   )rA   r;   rd   rm   rS   ro   rå   ÚlayersrÖ   Ú
last_layerrJ   rK   rn   rÞ   Úlayerr£   rT   s     `             @rC   ræ   ræ   È  s]  ùè ø€ ð0€Nô ! Ó(€GØÐ(Ñ(Ø"ò 	 ˆDØ˜�-Óð	 àä× Ñ Ü ¨xô9€Hä˜6 8¨^Ó<Ð<€vÐ<Ø—<‘<“>×!Ð!ØöBôH ”n VÓ,Ó-€FÙ#¤D¨£L¸dÔCÑ€Eˆ:Ø.8×.>Ñ.>Ó.@×A¡
  Uˆs�U�G‰|ÐA€GÑAØò (ˆÙ˜vÓ&‰ˆˆ5Ø Ÿ;™;›=ò 	(‰KˆD�%Ø�D‰M× Ñ  Õ'ñ	(ð(ð  Ÿ™›ò !‰ˆˆfØ�F™4˜R˜4‘LÐ Ó ð!à
˜eÐ
#Ó#ða 	"úóR Bùs&   „AD.Á"D&Á#A	D.Â,D(Â:A-D.Ä(D.ztext-decorationú-lineú
-thicknessc              #   ó®  K  — g }g }g }g }d}| D ]¡  }t        |«      }|dv r"|j                  |«       |rt        ‚|dk(  sŒ1d}Œ4|dv r|rt        ‚|j                  |«       ŒRt        |«      r|rt        ‚|j                  |«       Œwt	        |g«      r|rt        ‚|j                  |«       Œ�t        ‚ |rd|f–— |rd|f–— |rd|f–— |rd	|f–— y
y
­w)z2Expand the ``text-decoration`` shorthand property.F)r«   Ú	underlineÚoverlinezline-throughÚblinkr«   T)ÚsolidÚdoubleÚdottedÚdashedÚwavyrì   rŽ   r�   rí   N)r   r•   r   r   r6   )	rA   r;   ÚlinerÖ   ÚstyleÚ	thicknessÚnone_in_linerU   rm   s	            rC   Úexpand_text_decorationrû   /  s  è ø€ ð €DØ€EØ€EØ€IØ€Làò  ˆÜ˜eÓ$ˆØÐPÑPØ�K‰K˜ÔÙÜ#Ð#Ø˜FÓ"Ø#‘ØÐGÑGÙÜ#Ð#Ø�L‰L˜ÕÜ˜ÔÙÜ#Ð#Ø�L‰L˜ÕÜ&¨ wÔ/ÙÜ#Ð#Ø×Ñ˜UÕ#äÐð+ ñ. Ø�tˆmÒÙØ˜ˆoÒÙØ˜ˆoÒÙØ˜IÐ%Ó%ð ùs   ‚=CÁ BCc              #   óÔ   K  — t        | «      }|j                  dd«      d   }|dv r|| f–— y|dk(  r/t        | d   j                  | d   j                  d«      }||gf–— yt
        ‚­w)z�Expand legacy ``page-break-before`` and ``page-break-after`` properties.

    See https://www.w3.org/TR/css-break-3/#page-break-properties

    rF   r
   )Úautor‰   r‡   ÚavoidÚalwaysr   ÚpageN)r   Úsplitr   Úsource_lineÚsource_columnr   )rA   r;   rm   rp   rU   s        rC   Úexpand_page_break_before_afterr  Z  s|   è ø€ ô ! Ó(€GØ�z‰z˜#˜qÓ! !Ñ$€HØÐ4Ñ4Ø˜ÐÓØ	�HÒ	ÜØ�1‰I×!Ñ! 6¨!¡9×#:Ñ#:¸FóDˆà˜˜ÐÓäÐùs   ‚A&A(zpage-break-afterzbreak-afterc                 ó   — t        | |«      S )ztExpand legacy ``page-break-after`` property.

    See https://www.w3.org/TR/css-break-3/#page-break-properties

    ©r  ©rA   r;   s     rC   Úexpand_page_break_afterr  l  ó   € ô *¨&°$Ó7Ð7rD   zpage-break-beforezbreak-beforec                 ó   — t        | |«      S )zuExpand legacy ``page-break-before`` property.

    See https://www.w3.org/TR/css-break-3/#page-break-properties

    r  r  s     rC   Úexpand_page_break_beforer  w  r	  rD   zpage-break-insideúbreak-insidec              #   óB   K  — t        | «      }|dv rd| f–— yt        ‚­w)zyExpand the legacy ``page-break-inside`` property.

    See https://www.w3.org/TR/css-break-3/#page-break-properties

    )rý   rþ   r  N)r   r   ©rA   r;   rm   s      rC   Úexpand_page_break_insider  ‚  s,   è ø€ ô ! Ó(€GØÐ#Ñ#Ø˜fÐ$Ó$äÐùs   ‚Úcolumnsúcolumn-widthúcolumn-countc              #   óX  K  — d}t        | «      dk(  rt        | d   «      dk(  r| ddd…   } | D ]2  }t        |g«      �|dk7  rd}nt        |g«      �d}nt        ‚||gf–— Œ4 t        | «      dk(  r8|dk(  rdnd}t        | d   j                  | d   j                  d«      }||gf–— yy­w)	z*Expand the ``columns`` shorthand property.Nr   r   rý   rž   r  r  r
   )r—   r   r!   r    r   r   r  r  )rA   r;   rU   s      rC   Úexpand_columnsr  ‘  sÕ   è ø€ ð €DÜ
ˆ6ƒ{�aÒœK¨¨q©	Ó2°fÒ<Ø™˜"˜‘ˆØò ˆÜ˜˜Ó Ð,°¸Ò1GØ!‰DÜ˜5˜'Ó"Ð.Ø!‰DäÐØ�U�GˆmÓðô ˆ6ƒ{�aÒØ!%¨Ò!7‰~¸^ˆÜØ�1‰I×!Ñ! 6¨!¡9×#:Ñ#:¸FóDˆà�U�GˆmÓð	 ùs   ‚B(B*zfont-variantz-alternatesz-capsz-east-asianz
-ligaturesz-numericc                 ó   — t        | «      S )zoExpand the ``font-variant`` shorthand property.

    https://www.w3.org/TR/css-fonts-3/#font-variant-prop

    r   r  s     rC   Úfont_variantr  §  s   € ô ˜vÓ&Ð&rD   Úfontú-variant-capsú-weightú-stretchú-sizeúline-heightú-familyc              #   óò  K  — t        | «      }|dv rt        d«      ‚t        t        | «      «      } t	        d«      D ]n  }| j                  «       }t        |«      dk(  rŒ"t        |g«      �d}n/t        |g«      �d}n t        |g«      �d}nt        |g«      �d	}n n)||gf–— | rŒjt        ‚ | st        ‚| j                  «       }t        |g«      €t        ‚d
|gf–— | st        ‚| j                  «       }|j                  dk(  r9|j                  dk(  r*| j                  «       }t        |g«      €t        ‚d|gf–— n| j                  |«       | j!                  «        t#        | «      €t        ‚d| f–— y­w)z_Expand the ``font`` shorthand property.

    https://www.w3.org/TR/css-fonts-3/#font-prop

    )ÚcaptionÚiconÚmenuzmessage-boxzsmall-captionz
status-barzSystem fonts are not supportedr’   ÚnormalNr�   r  r  r  r  rœ   r�   r  r  )r   r   rÃ   rç   Úrangerw   r   r)   r*   r+   r(   r'   rŸ   rK   r/   r•   Úreverser&   )rA   r;   Úexpand_font_keywordrÞ   rU   r°   s         rC   Úexpand_fontr&  ³  s—  è ø€ ô -¨VÓ4ÐØð >ñ >äÐ<Ó=Ð=ô ”(˜6Ó"Ó#€Fô �1‹Xò ˆØ—
‘
“ˆÜ�uÓ Ò)ð ä�u�gÓÐ*Ø‰FÜ ˜wÓ'Ð3Ø$‰FÜ˜%˜Ó!Ð-Ø‰FÜ˜5˜'Ó"Ð.Ø‰Fñ Ø�u�gˆoÒâÜÐð+ñ. ÜÐØ—
‘
“ˆô �%�ÓÐ!ÜÐØ
�E�7Ð
Òñ ÜÐà�J‰J‹L€EØ‡z�z�YÒ 5§;¡;°#Ò#5Ø—
‘
“ˆÜ˜�wÓÐ'ÜÐØ˜e˜WÐ$Ó$ð 	�‰�eÔð ‡N�NÔÜ�6ÓÐ"ÜÐØ
�VÐ
Óùs   ‚B#E7Â&CE7z	word-wrapúoverflow-wrapc              #   ó>   K  — t        | «      }|€t        ‚d| f–— y­w)zhExpand the ``word-wrap`` legacy property.

    See https://www.w3.org/TR/css-text-3/#overflow-wrap

    Nr'  )r5   r   r  s      rC   Úexpand_word_wrapr)  ü  s(   è ø€ ô ˜FÓ#€GØ€ÜÐØ
˜6Ð
!Ó!ùó   ‚Úflexú-growú-shrinkú-basisc           	   #   óx  K  — t        | «      }|dk(  rP| d   j                  | d   j                  }}t        ||ddd«      }t	        ||d«      }d|gf–— d|gf–— d|gf–— yd\  }}}	d	\  }
}}| D ]„  }|j
                  d
k(  xr |j                  dk(  xr t        |
|f«       }|s|st        |g«      }|�|}	d}ŒJ|
st        |g«      }|€t        ‚|}d}
Œe|st        |g«      }|€t        ‚|}d}Œ€t        ‚ | d   j                  | d   j                  }}t        |«      j                  «       rt        |«      nd}t        |«      j                  «       rt        |«      nd}t        ||||t        |«      «      }t        ||||t        |«      «      }|st        ||dddd«      }	d|gf–— d|gf–— d|	gf–— y­w)zExpand the ``flex`` property.r«   r   Ú0rý   r,  r-  r.  )r
   r
   N)FFFÚnumberNTÚpx)r   r  r  r   r   rŸ   Ú	int_valueÚallr"   r$   r   ÚfloatÚ
is_integerÚintÚstrr   )rA   r;   rm   r÷   ÚcolumnÚ
zero_tokenÚ
auto_tokenÚgrowÚshrinkÚbasisÚ
grow_foundÚshrink_foundÚbasis_foundrU   Úforced_flex_factorÚ	new_basisÚnew_growÚ
new_shrinkÚint_growÚ
int_shrinkÚ
grow_tokenÚshrink_tokens                         rC   Úexpand_flexrJ  
  s  è ø€ ô ! Ó(€GØ�&ÒØ˜a‘y×,Ñ,¨f°Q©i×.EÑ.EˆfˆÜ   v¨q°!°SÓ9ˆ
Ü  f¨fÓ5ˆ
Ø˜
�|Ð#Ò#Ø˜*˜Ð%Ò%Ø˜˜Ð$Ó$à(Ñˆˆf�eØ0CÑ-ˆ
�L +Øò 	$ˆEð —
‘
˜hÑ&ò 4¨5¯?©?¸aÑ+?ò 4Ü˜ \Ð2Ó3Ð3ð ñ Ñ'9Ü&¨ wÓ/�	ØÐ(Ø!�EØ"&�KØÙÜ+¨U¨GÓ4�ØÐ#Ü'Ð'à#�DØ!%�JØÙ!Ü-¨u¨gÓ6�
ØÐ%Ü'Ð'à'�FØ#'�LØä#Ð#ð;	$ð< ˜a‘y×,Ñ,¨f°Q©i×.EÑ.EˆfˆÜ % d£× 6Ñ 6Ô 8”3�t”9¸dˆÜ$)¨&£M×$<Ñ$<Ô$>”S˜”[ÀDˆ
Ü   v¨t°X¼sÀ4»yÓIˆ
Ü"Ø�&˜& *¬c°&«kó;ˆáÜ" 4¨°°A°s¸DÓAˆEØ˜
�|Ð#Ò#Ø˜,˜Ð'Ò'Ø˜˜ÐÓùs   ‚F8F:z	flex-flowúflex-directionú	flex-wrapc              #   óf  K  — t        | «      dk(  rN| | ddd…   fD ];  }t        |d   g«      }t        |d   g«      }|sŒ$|sŒ'd|d   gf–— d|d   gf–—  y t        ‚t        | «      dk(  r>t        | d   g«      }|rd| d   gf–— yt        | d   g«      }|rd| d   gf–— yt        ‚t        ‚­w)z"Expand the ``flex-flow`` property.r   Nrž   r   r
   rK  rL  )r—   r#   r%   r   )rA   r;   Úsorted_tokensÚ	directionÚwraps        rC   Úexpand_flex_flowrQ  D  sê   è ø€ ô ˆ6ƒ{�aÒØ# V©D¨b¨D¡\Ð1ò 	 ˆMÜ&¨°aÑ(8Ð'9Ó:ˆIÜ˜m¨AÑ.Ð/Ó0ˆDÚšTØ&¨°qÑ)9Ð(:Ð:Ò:Ø! M°!Ñ$4Ð#5Ð5Ò5Ùð	 ô  ÐÜ	ˆV‹˜Ò	Ü" F¨1¡I ;Ó/ˆ	ÙØ" V¨A¡Y KÐ/Ó/ä˜f Q™i˜[Ó)ˆDÙØ! F¨1¡I ;Ð.Ó.ä#Ð#äÐùs   ‚<B1¿B1ÁA/B1c              #   óR  K  — | d   j                   | d   j                  }}t        ||d«      }t        | «      dk(  r't	        | d   «      dk(  rd|gf–— d|gf–— d|gf–— y g g}| D ]F  }|j
                  dk(  r!|j                  dk(  r|j                  g «       Œ3|d	   j                  |«       ŒH t        |«      d
k(  rKt        |d   «      }t        |d   «      }|r'|rd|d   f–— d|d   f–— d|gf–— y |d   }t        ‚t        ‚t        |«      dk(  r	|g}t        ‚t        ‚­w)Nr   r«   r
   ú-columnsú-rowsú-areasrœ   r�   rž   r   )
r  r  r   r—   r   rŸ   rK   r•   r.   r   )	rA   r;   r÷   r9  r«   Úslash_separatedrU   Úrowsr  s	            rC   Ú_expand_grid_templaterX  `  se  è ø€ Ø˜!‘9×(Ñ(¨&°©)×*AÑ*Aˆ&€DÜ�d˜F FÓ+€DÜ
ˆ6ƒ{�aÒœK¨¨q©	Ó2°fÒ<Ø˜4˜&Ð Ò Ø˜�vˆoÒØ˜˜ÐÒØØ�d€OØò .ˆØ�:‰:˜Ò" u§{¡{°cÒ'9Ø×"Ñ" 2Õ&à˜BÑ×&Ñ& uÕ-ð	.ô
 ˆ?Ó˜qÒ Ü˜_¨QÑ/Ó0ˆÜ °Ñ 2Ó3ˆÙÙØ  /°!Ñ"4Ð4Ò4Ø˜¨qÑ1Ð1Ò1Ø  Ð&Ò&ØØ% aÑ(ˆGô Ðô  ÐÜ	ˆ_Ó	 Ò	"Ø�&ˆô Ðô Ðùs   ‚D%D'úgrid-templaterS  rT  rU  c              #   ó8   K  — t        | |«      E d{  –—†  y7 Œ­w)z&Expand the ``grid-template`` property.N)rX  r  s     rC   Úexpand_grid_templater[  ‚  s   è ø€ ô % V¨TÓ2×2Ò2ús   ‚’“Úgridz-template-columnsz-template-rowsú-template-areasú-auto-columnsú
-auto-rowsú
-auto-flowc              #   óL  K  — | d   j                   | d   j                  }}t        ||d«      }t        ||d«      }t        ||d«      }t        ||d«      }	 t        t	        | d«      «      }|D ]   \  }}	d|j                  d«      d	   › �|	f–— Œ" d
|gf–— d|gf–— d|gf–— y# t        $ r Y nw xY wg g}
| D ]F  }|j                  dk(  r!|j                  dk(  r|
j                  g «       Œ3|
d	   j                  |«       ŒH t        |
«      dk7  rt        ‚d}d}g g dœ}t        |
|j                  «       «      }|D ]t  \  } \  }}d}| D ]e  }t        |«      dk(  r|s|r||k7  rt        ‚|}|}Œ%t        |«      dk(  r|s|r||k7  rt        ‚d}|}ŒG|| d	   k(  r|j                  |«       Œat        ‚ Œv |st        ‚|dk(  rdnd}|dk(  r|n|}d|r||fn|ff–— d|› d�t        ||   «      f–— d|› d�|gf–— d|› d�|gf–— d|› d�t        ||   «      f–— d|gf–— y­w)zExpand the ``grid`` property.r   rý   r«   Úrowr9  rY  z
-template-rF   rž   r^  r_  r`  Nrœ   r�   r   )rb  r9  FÚdensez	auto-flowTz-auto-Úsr]  )r  r  r   ÚtuplerX  r  r   rŸ   rK   r•   r—   r˜   r–   r   )rA   r;   r÷   r9  rý   r«   rb  ÚtemplaterJ   rK   Úsplit_tokensrU   Ú
auto_trackrc  Ú	templatesÚiterableÚtrackÚtrack_templatesÚauto_flow_tokenÚnon_auto_trackÚauto_track_tokens                        rC   Úexpand_gridrp  ‰  sÔ  è ø€ ð
 ˜!‘9×(Ñ(¨&°©)×*AÑ*Aˆ&€DÜ�d˜F FÓ+€DÜ�d˜F FÓ+€DÜ
�T˜6 5Ó
)€CÜ˜˜f hÓ/€Fð
ÜÔ.¨v°ÓGÓHˆð #ò 	;‰JˆC�Ø˜sŸy™y¨›~¨bÑ1Ð2Ð3°UÐ:Ó:ð	;à ˜vÐ%Ò%Ø˜T˜FÐ"Ò"Ø˜S˜EÐ!Ò!Øøô ò Ùðúð �4€LØò 'ˆØ�:‰:˜Ò" u§{¡{°cÒ'9Ø×Ñ Ô#ØØ�RÑ×Ñ Õ&ð	'ô
 ˆ<Ó˜AÒÜÐØ€JØ€EØ bÑ)€IÜ�< §¡Ó!2Ó3€HØ,4ò $Ñ(ˆÑ(�˜ØˆØò 	$ˆEÜ˜5Ó! WÒ,Ù™Z¨J¸%Ò,?Ü'Ð'Ø�Ø"‘
Ü˜UÓ# {Ò2Ù"¡z°jÀEÒ6IÜ'Ð'Ø"&�Ø"‘
Ø˜& ™*Ò$Ø×&Ñ& uÕ-ä#Ð#ñ	$ð$ñ" ÜÐØ(¨HÒ4‘U¸(€NØ!+¨xÒ!7‘v¸SÐØ
Ù%*Ð	˜5Ñ!Ð1AÐ0CðEò Eà�:�,˜aÐ
 ¤%¨	°*Ñ(=Ó">Ð
>Ò>Ø�>Ð" !Ð
$ t fÐ
,Ò,Ø�z�l !Ð
$ t fÐ
,Ò,Ø�~Ð& aÐ
(¬%°	¸.Ñ0IÓ*JÐ
JÒJØ
˜d˜VÐ
#Ó#ùs+   ‚AH$ÁB& Á+;H$Â&	B2Â/H$Â1B2Â2E2H$c              #   óD  K  — g g}| D ]F  }|j                   dk(  r!|j                  dk(  r|j                  g «       Œ3|d   j                  |«       ŒH dt        |«      cxk  r
|k  st        ‚ t        ‚g }|D ]3  } t        | «      x}st        ‚|j                  |«       t        | «      –— Œ5 t        j                  |j                  d«      }t        |«      x}dk  rQt        |d   d d «      d hk(  }|rt        |d   «      n|f}	|j                  | «       |j                  |d   «       |	–— |dcxk  r|k  r-n n*t        |d   d d «      d hk(  }|rt        |d   «      n|f–— |dcxk  r|k  r.n y t        |d   d d «      d hk(  }|rt        |d   «      n|f–— y y ­w)	Nrœ   r�   rž   r
   rý   r   r   r“   )rŸ   rK   r•   r—   r   r-   re  r   r  r  Úset)
rA   Ú
max_numberÚ
grid_linesrU   ÚvalidationsÚ
validationrý   ÚlinesÚcustom_identrK   s
             rC   Ú_expand_grid_column_row_areary  È  s¿  è ø€ Ø�€JØò %ˆØ�:‰:˜Ò" u§{¡{°cÒ'9Ø×Ñ˜bÔ!ØØ�2‰×Ñ˜eÕ$ð	%ð
 ”�J“Ô- :Ò-ÜÐð .ÜÐØ€KØò ˆÜ'¨Ó/Ð/�
Ð/ÜÐØ×Ñ˜:Ô&Ü�F‹mÓð	ô
 �e×'Ñ'¨×)<Ñ)<¸fÓE€DÜ�Z“Ð ˆ QÒ&Ü˜; q™>¨"¨1Ð-Ó.°4°&Ñ8ˆÙ(4”�j ‘mÔ$¸4¸'ˆØ×Ñ˜&Ô!Ø×Ñ˜; q™>Ô*ØŠØ�Ô�JÕÜ˜; q™>¨"¨1Ð-Ó.°4°&Ñ8ˆÙ&2Œe�J˜q‘MÔ"¸¸Ò?Ø�Ô�JÕÜ˜; q™>¨"¨1Ð-Ó.°4°&Ñ8ˆÙ&2Œe�J˜q‘MÔ"¸¸Ó?ð ùs   ‚FF zgrid-columnzgrid-rowz-startz-endc              #   ó^   K  — t        | d«      }t        |d«      D ]  \  } }d|› �| f–— Œ y­w)z,Expand the ``grid-[column|row]`` properties.r   r{   rF   N©ry  r˜   )rA   r;   Útokens_listr™   s       rC   Úexpand_grid_column_rowr}  æ  s@   è ø€ ô
 /¨v°qÓ9€KÜ˜KÐ)9Ó:ò !‰ˆ�Ø�$�ˆj˜&Ð Ó ñ!ùs   ‚+-z	grid-areazgrid-row-startzgrid-row-endzgrid-column-startzgrid-column-endc              #   ób   K  — t        | d«      }d}t        ||«      D ]  \  } }d|› �| f–— Œ y­w)z"Expand the ``grid-area`` property.r’   )z	row-startzcolumn-startzrow-endz
column-endzgrid-Nr{  )rA   r;   r|  r‹   r™   s        rC   Úexpand_grid_arear  ð  sD   è ø€ ô
 /¨v°qÓ9€KØB€EÜ˜K¨Ó/ò %‰ˆ�Ø�d�Vˆn˜fÐ$Ó$ñ%ùs   ‚-/zgrid-gapr,   ú
column-gapúrow-gapc              #   ó   K  — t        | «      dk(  rt        | «      €t        ‚d| f–— d| f–— yt        | «      dk(  r;t        | dd «      t        | dd «      }}d||fv rt        ‚d| dd f–— d| dd f–— yt        ‚­w)zExpand the ``gap`` property.r
   Nr�  r€  r   r   )r—   r,   r   )rA   r;   Ú
column_gapÚrow_gaps       rC   Ú
expand_gapr…  û  s    è ø€ ô
 ˆ6ƒ{�aÒÜˆv‹;ÐÜÐØ˜ÐÒØ˜FÐ"Ó"Ü	ˆV‹˜Ò	Ü! &¨¨1 +Ó.´°F¸1¸Q°KÓ0@�Gˆ
Ø�J Ð(Ñ(ÜÐØ˜  !˜Ð$Ò$Ø˜F 1 Q˜KÐ'Ó'äÐùs   ‚A<A>zgrid-column-gapc              #   ó>   K  — t        | «      }|€t        ‚d| f–— y­w)z+Expand legacy ``grid-column-gap`` property.Nr€  ©r,   r   r  s      rC   Úexpand_legacy_column_gaprˆ    s'   è ø€ ô �&‹k€GØ€ÜÐØ
˜Ð
Óùr*  zgrid-row-gapc              #   ó>   K  — t        | «      }|€t        ‚d| f–— y­w)z(Expand legacy ``grid-row-gap`` property.Nr�  r‡  r  s      rC   Úexpand_legacy_row_gaprŠ    s'   è ø€ ô �&‹k€GØ€ÜÐØ
�VÐ
Óùr*  zplace-contentzalign-contentzjustify-contentc                 ó   — t         ‚)z&Expand the ``place-content`` property.rÒ   r  s     rC   Úexpand_place_contentrŒ  #  ó
   € ô
 ÐrD   zplace-itemszalign-itemszjustify-itemsc                 ó   — t         ‚)z$Expand the ``place-items`` property.rÒ   r  s     rC   Úexpand_place_itemsr�  +  r�  rD   z
place-selfz
align-selfzjustify-selfc                 ó   — t         ‚)z#Expand the ``place-self`` property.rÒ   r  s     rC   Úexpand_place_selfr‘  3  r�  rD   z
line-clampú	max-linesÚcontinueúblock-ellipsisc              #   ó  K  — t        | «      dk(  rÖt        | «      }|dk(  rN| d   j                  | d   j                  }}t	        ||d«      }t	        ||d«      }d|gf–— d|gf–— d|gf–— y	| d   j
                  dk(  r`| d   j                  �Q| d   j                  | d   j                  }}t	        ||d«      }t	        ||d
«      }d| d   gf–— d|gf–— d|gf–— y	t        ‚t        | «      dk(  r‡| d   j
                  dk(  ro| d   j                  }t        | d   g«      }	|rI|	�G| d   j                  | d   j                  }}t	        ||d
«      }d| d   gf–— d|gf–— d| d   gf–— y	t        ‚t        ‚t        ‚­w)z#Expand the ``line-clamp`` property.r
   r«   r   rý   r’  r“  r”  r1  NÚdiscardr   )	r—   r   r  r  r   rŸ   r3  r   r   )
rA   r;   rm   r÷   r9  r¯   r;  Údiscard_tokenÚ	max_linesÚellipsiss
             rC   Úexpand_line_clamprš  ;  s¾  è ø€ ô ˆ6ƒ{�aÒÜ$ VÓ,ˆØ�fÒØ! !™9×0Ñ0°&¸±)×2IÑ2I�&ˆDÜ# D¨&°&Ó9ˆJÜ# D¨&°&Ó9ˆJØ 
˜|Ð+Ò+Ø˜z˜lÐ*Ò*Ø" Z LÐ0Ó0Ø�A‰Y�^‰^˜xÒ'¨F°1©I×,?Ñ,?Ð,KØ! !™9×0Ñ0°&¸±)×2IÑ2I�&ˆDÜ# D¨&°&Ó9ˆJÜ& t¨V°YÓ?ˆMØ  q¡	˜{Ð*Ò*Ø˜}˜oÐ-Ò-Ø" Z LÐ0Ó0äÐÜ	ˆV‹˜Ò	Ø�!‰9�>‰>˜XÒ%Ø˜q™	×+Ñ+ˆIÜ% v¨a¡y kÓ2ˆHÙ˜XÐ1Ø% a™y×4Ñ4°f¸Q±i×6MÑ6M�f�Ü *¨4°¸Ó C�Ø! F¨1¡I ;Ð.Ò.Ø  = /Ð1Ò1Ø&¨°©¨Ð3Ó3ä#Ð#äÐäÐùs   ‚F Fz
text-alignú-allú-lastc              #   óH  K  — t        | «      dk(  r‹t        | «      }|€t        ‚|dk(  r,| d   j                  | d   j                  }}t        ||d«      }n| d   }d|gf–— |dk(  r,| d   j                  | d   j                  }}t        ||d«      }n|}d|gf–— yt        ‚­w)	z#Expand the ``text-align`` property.r
   Nzjustify-allr   Újustifyr›  r|   rœ  )r—   r   r   r  r  r   )rA   r;   rm   r÷   r9  Ú	align_allÚ
align_lasts          rC   Úexpand_text_alignr¡  c  s½   è ø€ ô ˆ6ƒ{�aÒÜ$ VÓ,ˆØˆ?ÜÐØ�mÒ#Ø! !™9×0Ñ0°&¸±)×2IÑ2I�&ˆDÜ" 4¨°Ó;‰Ià˜q™	ˆIØ�y�kÐ!Ò!Ø�iÒØ! !™9×0Ñ0°&¸±)×2IÑ2I�&ˆDÜ# D¨&°'Ó:‰Jà"ˆJØ˜
�|Ð#Ó#äÐùs   ‚B B")crP   ri   Útinycss2.astr   r   r   Útinycss2.color5r   Ú	functionsr   Ú
propertiesr	   Údescriptorsr   rA   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   rZ   r9   rW   rS   ry   r   rŒ   r~   r¦   r±   r·   rº   rµ   rÉ   rÌ   ræ   rû   r  r  r  r  r  r  r&  r)  rJ  rQ  rX  r[  rp  ry  r}  r  r…  rˆ  rŠ  rŒ  r�  r‘  rš  r¡  r^   rD   rC   ú<module>r§     sM  ðÙ $ã ç @Ñ @Ý 'å !Ý 'Ý ,÷Mõ M÷T÷ T÷ T÷ T÷ T÷ T÷ T÷ T÷ T÷ Tð €	ô�gô ò>òò=&ñ@ 
ˆ.ÓÙ	ˆ/ÓÙ	ˆ/ÓÙ	Ð
ÓÙ	Ð
ÓÙ	Ð
ÓÙ	Ð
ÓÙ	Ð
Ó Ù	Ð
Ó Ù	Ð
Ó Ù	ˆ-ÓÙ	ˆ.ÓñGó ó ó !ó !ó !ó  ó  ó  ó ó ó ó ðGñ
 
ˆ.ÓÙ	ˆ.ÓÙ	ˆ.ÓÙ	ˆ(ÓÙ	ˆ)ÓÙ	ˆ'ÓÙ	ˆ'Óñ<ó ó ó ó ó ó ó ð<ò YñF 
ˆ/ÓÙØÐ7Ø Ð"=Øôñ"ó	ó ð
"ñJ 
ˆ,ÓÙ�'˜;¨ÀÔFñ&ó Gó ð&ñR 
ˆ(ÓñLó ðLñ 
ˆ.ÓÙ	ˆ/ÓñLó ó ðLñ 
ˆ,ÓÙ	ˆ.ÓÙ	ˆ/ÓÙ	ˆ-ÓÙ	Ð
ÓÙ	Ð
ÓÙ	Ð
Ó Ù	Ð
ÓÙ	ˆ-ÓÙ	ˆ)ÓÙ�(˜H hÓ/ñó 0ó ó ó ó !ó ó  ó ó ó ó ðñ$ 
ˆ.ÓÙ�)˜Y¨°)¸XØ!%ô'ñ: ó'ó ð: ñz 
ˆ-ÓÙ�)˜Y¨°)¸XÀwØ!%ô'ñ< ó'ó ð< ñ~ 
ˆ,Óñc$ó ðc$ñL 
Ð
ÓÙ�'˜8 X¨|Ó<ñ&&ó =ó ð&&òRñ$ 
Ð
ÓÙ�-Ó ñ8ó !ó ð8ñ 
Ð
ÓÙ�.Ó!ñ8ó "ó ð8ñ 
Ð
ÓÙ�.Ó!ñ
ó "ó ð
ñ 
ˆ)ÓÙ�. .Ó1ñó 2ó ðñ( 
ˆ.ÓÙ�- ¨-¸Ø˜kó+ñ'ó+ó ð'ñ 
ˆ&ÓÙ�(˜O¨Y¸
ÀGØ ó,ñCó,ó ðCñL 
ˆ+ÓÙ�/Ó"ñ	"ó #ó ð	"ñ 
ˆ&ÓÙ�'˜9 hÓ/ñ5 ó 0ó ð5 ñp 
ˆ+ÓÙÐ" KÓ0ñó 1ó ðò4ñD 
ˆ/ÓÙ�*˜g xÓ0ñ3ó 1ó ð3ñ
 
ˆ&ÓÙÐ%Ð'7Ð9JØ! <°ó?ñ9$ó?ó ð9$òx@ñ< 
ˆ-ÓÙ	ˆ*ÓÙ�(˜FÓ#ñ!ó $ó ó ð!ñ 
ˆ+ÓÙÐ" NØ%Ð'8ó:ñ%ó:ó ð%ñ 
ˆ*ÓÙ	ˆ%ƒÙ�, 	Ó*ñó +ó ó ðñ" 
Ð
ÓÙ�,Óñó  ó ðñ 
ˆ.ÓÙ�)Óñó ó ðñ 
ˆ/ÓÙ�/Ð#4Ó5ñó 6ó ðñ 
ˆ-ÓÙ�- Ó1ñó 2ó ðñ 
ˆ,ÓÙ�, Ó/ñó 0ó ðñ 
ˆ,ÓÙ�+˜zÐ+;Ó<ñ#ó =ó ð#ñL 
ˆ,ÓÙ�&˜'Ó"ñó #ó ñrD   