§
    ¥”jA™  ã                   ó¬  — 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¦  «        d„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Z? e=d¦  «         e>ddddd¬¦  «        d„ ¦   «         ¦   «         Z@ e=d ¦  «         e>d!d"d#d¬¦  «        d$„ ¦   «         ¦   «         ZA e=d%¦  «        d&„ ¦   «         ZB e=d'¦  «         e=d(¦  «         e=d)¦  «         e=d*¦  «         e=d+¦  «         e=d,¦  «         e>d-d.d/¦  «        d0„ ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ZC e=d1¦  «         e>d2d3d4d5d-d¬¦  «        d6„ ¦   «         ¦   «         ZD e=d7¦  «         e>d2d3d4d5d-d8d¬¦  «        d9„ ¦   «         ¦   «         ZE e=d:¦  «        d;„ ¦   «         ZF e=d<¦  «         e>d=d.d/d>¦  «        d?„ ¦   «         ¦   «         ZGd@„ ZH e=dA¦  «         e>dB¦  «        dC„ ¦   «         ¦   «         ZI e=dD¦  «         e>dE¦  «        dF„ ¦   «         ¦   «         ZJ e=dG¦  «         e>dH¦  «        dI„ ¦   «         ¦   «         ZK e=dJ¦  «         e>dKdL¦  «        dM„ ¦   «         ¦   «         ZL e=dN¦  «         e>dOdPdQdRdSd"¦  «        dT„ ¦   «         ¦   «         ZM e=dU¦  «         e>d/dVdWdXdYdZd[¦  «        d\„ ¦   «         ¦   «         ZN e=d]¦  «         e>d^¦  «        d_„ ¦   «         ¦   «         ZO e=d`¦  «         e>dadbdc¦  «        dd„ ¦   «         ¦   «         ZP e=de¦  «         e>dfdg¦  «        dh„ ¦   «         ¦   «         ZQdi„ ZR e=dj¦  «         e>dkdldm¦  «        dn„ ¦   «         ¦   «         ZS e=do¦  «         e>dpdqdrdsdtdu¦  «        dv„ ¦   «         ¦   «         ZTdw„ ZU e=dx¦  «         e=dy¦  «         e>dzd{¦  «        d|„ ¦   «         ¦   «         ¦   «         ZV e=d}¦  «         e>d~dd€d�¦  «        d‚„ ¦   «         ¦   «         ZW e=dƒ¦  «         e=d„¦  «         e>d…d†¦  «        d‡„ ¦   «         ¦   «         ¦   «         ZX e=dˆ¦  «         e>d…¦  «        d‰„ ¦   «         ¦   «         ZY e=dŠ¦  «         e>d†¦  «        d‹„ ¦   «         ¦   «         ZZ 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œ„ ¦   «         ¦   «         Z^ e=d�¦  «         e>dždŸ¦  «        d „ ¦   «         ¦   «         Z_dS )¡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                 óp   •— t          ¦   «                              ||j        d         ¦  «         || _        d S )NÚname)ÚsuperÚ__init__ÚkeywordsÚ	validator)ÚselfÚtokensr?   Ú	__class__s      €úr/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/weasyprint/css/validation/expanders.pyr=   zPendingExpander.__init__   s0   ø€ Ý‰Œ×Ò˜ Ô!3°FÔ!;Ñ<Ô<Ð<Ø"ˆŒˆˆó    c                 ó°   — |                       |¦  «        D ]:\  }}|                     d¦  «        r| j         j        d         › |› �}||k    r|c S Œ;t          ‚)Nú-r;   )r?   Ú
startswithr>   ÚKeyError)r@   rA   Ú
wanted_keyÚkeyÚvalues        rC   ÚvalidatezPendingExpander.validate!   sn   € ØŸ.š.¨Ñ0Ô0ð 	ð 	‰JˆC�Ø�~Š~˜cÑ"Ô"ð @ØœÔ0°Ô8Ð?¸#Ð?Ð?�Ø�jÒ Ð Ø���ð !åˆrD   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r=   rL   Ú__classcell__)rB   s   @rC   r9   r9      sM   ø€ € € € € ØHÐHð#ð #ð #ð #ð #ðð ð ð ð ð ð rD   r9   c                 óp   ‡— | D ]1}t          |¦  «        r t          | |¦  «        Šˆfd„|D ¦   «         c S Œ2dS )z5Return pending expanders when var is found in tokens.c                 ó   •— i | ]}|‰“ŒS © rT   )Ú.0r;   Úpendings     €rC   ú
<dictcomp>z_find_var.<locals>.<dictcomp>0   s   ø€ Ð=Ð=Ð= d�D˜'Ð=Ð=Ð=rD   N)r   r9   )rA   ÚexpanderÚexpanded_namesÚtokenrV   s       @rC   Ú	_find_varr[   *   s`   ø€ àð >ð >ˆÝ�UÑÔð 	>å% f¨hÑ7Ô7ˆGØ=Ð=Ð=Ð=¨nÐ=Ñ=Ô=Ð=Ð=Ð=ð	>ð>ð >rD   c                 ó   ‡ — ˆ fd„}|S )z1Decorator adding a function to the ``EXPANDERS``.c                 óB   •— ‰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   rT   )r`   ra   s   ` rC   rX   rX   3   s$   ø€ ðð ð ð ð ð
 ÐrD   c                  ó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                 óP   •‡ ‡— t          j        ‰ ¦  «        ˆˆˆˆ fd„¦   «         Š‰S )z"Decorate the ``wrapped`` expander.c              3   ó&  •‡K  — t          j        ‰||¬¦  «        }d}t          | ¦  «        Š‰dv rˆfd„‰D ¦   «         }d}nt          | |‰¦  «        }|rd}|sfi }‰r ‰| ||¦  «        }n ‰| |¦  «        }|D ]E\  }}|‰v s
J |¦   «         ‚||v r)t	          d|                     d¦  «        › d|› d	�¦  «        ‚|||<   ŒF‰D ]O}|                     d¦  «        r|› |› �}	n|}	||v r#||         }
|st          |
|	|d¬
¦  «        \  \  }	}
nd}
|	|
fV — ŒPdS )zWrap the expander.©r;   Úbase_urlF)ÚinheritÚinitialc                 ó   •— i | ]}|‰“ŒS rT   rT   )rU   r;   Úkeywords     €rC   rW   zjgeneric_expander.<locals>.generic_expander_decorator.<locals>.generic_expander_wrapper.<locals>.<dictcomp>S   s   ø€ ÐDÐDÐD¨T˜4 ÐDÐDÐDrD   Tzgot multiple rF   z values in a z
 shorthand©Úrequiredri   N)Ú	functoolsÚpartialr   r[   r   ÚstriprG   r7   )rA   r;   rg   rX   Úskip_validationÚresultsÚresultÚnew_nameÚ	new_tokenÚactual_new_namerK   rk   rY   Úgeneric_expander_wrapperrc   Úwrappeds              @€€€€rC   rw   zVgeneric_expander.<locals>.generic_expander_decorator.<locals>.generic_expander_wrapperJ   sô  øøè è € õ !Ô(Ø(¨t¸hðHñ Hô HˆHð $ˆOÝ(¨Ñ0Ô0ˆGØÐ0Ð0Ð0ØDÐDÐDÐD°^ÐDÑDÔD�Ø"&��å# F¨H°nÑEÔE�Øð +Ø&*�Oà"ð 2Ø�Ø!ð 3Ø$˜W V¨T°8Ñ<Ô<�F�Fà$˜W V¨TÑ2Ô2�FØ+1ð 2ð 2Ñ'�H˜iØ# ~Ð5Ð5Ð5°xÑ5Ô5Ð5Ø 7Ð*Ð*Ý+ð5¨H¯NªN¸3Ñ,?Ô,?ð 5ð 5Ø$(ð5ð 5ð 5ñ6ô 6ð 6ð )2�G˜HÑ%Ð%à*ð -ð -�Ø×&Ò& sÑ+Ô+ð /à)-Ð&9¨xÐ&9Ð&9�O�Oà&.�Oà˜wÐ&Ð&Ø# HÔ-�EØ*ð Må4JØ! ?°HÀtð5Mñ 5Mô 5MÑ1Ñ0˜¨%øð &�Eà% uÐ,Ð,Ð,Ð,Ð,ð!-ð -rD   )rn   Úwraps)rx   rw   rY   rc   s   `@€€rC   Úgeneric_expander_decoratorz4generic_expander.<locals>.generic_expander_decoratorH   sK   øøø€ å	Œ˜Ñ	!Ô	!ð-	-ð -	-ð -	-ð -	-ð -	-ð -	-ð -	-ñ 
"Ô	!ð-	-ð\ (Ð'rD   )Úpop)rY   Úkwargsrz   rc   s   `  @rC   Úgeneric_expanderr}   =   sM   øø€ ð —Z’ZÐ 0°%Ñ8Ô8€NØÐÐÐð1(ð 1(ð 1(ð 1(ð 1(ð 1(ðd &Ð%rD   zborder-colorzborder-stylezborder-widthÚmarginÚpaddingÚbleedc              #   óÖ  K  — g }dD ]b}|                      d¦  «        x}dk    r|                     |› |› �¦  «         Œ7|                     |d|…         › |› ||d…         › �¦  «         Œct          j        t          ||¬¦  «        }t          | ||¦  «        x}r|                     ¦   «         E d{V —† dS t          | ¦  «        dk    r| dz  } nkt          | ¦  «        dk    r| dz  } nRt          | ¦  «        d	k    r| | d         fz  } n2t          | ¦  «        dk    rt          d
t          | ¦  «        › �¦  «        ‚t          || ¦  «        D ]\  }}	t          |	g||d¬¦  «        \  }|V — Œ dS )z>Expand properties setting a token for the four sides of a box.©z-topz-rightz-bottomz-leftrF   éÿÿÿÿNrf   r
   é   r   é   ú%Expected 1 to 4 token components got Trl   )ÚrfindÚappendrn   ro   Úexpand_four_sidesr[   ÚitemsÚlenr   Úzipr7   )
rA   r;   rg   rY   ÚsuffixÚirX   rs   Úexpanded_namerZ   s
             rC   r‰   r‰   }   sÛ  è è € ð €NØ8ð Cð CˆØ—’˜C‘”Ð ˆA RÒ'Ð'Ø×!Ò! TÐ"3¨6Ð"3Ð"3Ñ4Ô4Ð4Ð4ð ×!Ò! T¨"¨1¨"¤XÐ"A¨vÐ"A°t¸A¸B¸B´xÐ"AÐ"AÑBÔBÐBÐBõ Ô Ý ¨xð9ñ 9ô 9€Hå˜6 8¨^Ñ<Ô<Ð<€vð Ø—<’<‘>”>Ð!Ð!Ð!Ð!Ð!Ð!Ð!Øˆõ ˆ6�{„{�aÒÐØ�!‰ˆˆÝ	ˆV‰Œ˜Ò	Ð	Ø�!‰ˆˆÝ	ˆV‰Œ˜Ò	Ð	Ø�6˜!”9�,ÑˆˆÝ	ˆV‰Œ˜Ò	Ð	ÝØAµC¸±K´KÐAÐAñCô Cð 	Cå # N°FÑ ;Ô ;ð ð Ñˆ�uõ )ØˆG�] H°tð=ñ =ô =‰ˆàˆˆˆˆðð rD   zborder-radiuszborder-top-left-radiuszborder-top-right-radiuszborder-bottom-right-radiuszborder-bottom-left-radiusT)rc   c              #   ó®  K  — g x}}g }| D ]^}|j         dk    r<|j        dk    r1||u r|| d         k    rt          d¦  «        ‚|}Œ:t          d¦  «        ‚|                     |¦  «         Œ_|s
|dd…         }||fD ]•}t	          |¦  «        dk    r|dz  }Œt	          |¦  «        d	k    r|d	z  }Œ4t	          |¦  «        d
k    r|                     |d         ¦  «         Œct	          |¦  «        dk    rt          dt	          |¦  «        › �¦  «        ‚Œ–d}t          |t          ||¦  «        ¦  «        D ]$\  }	} d|	› d�}t          | ||d¬¦  «         || fV — Œ%dS )z-Validator for the ``border-radius`` property.Úliteralú/rƒ   z"Expected value after "/" separatorzExpected only one "/" separatorNr
   r„   r   r…   r†   )ztop-leftz	top-rightzbottom-rightzbottom-leftzborder-z-radiusTrl   )ÚtyperK   r   rˆ   r‹   rŒ   r7   )
rA   r;   rg   ÚcurrentÚ
horizontalÚverticalrZ   ÚvaluesÚcornersÚcorners
             rC   Úborder_radiusrš   §   sÏ  è è € ð Ð€GˆjØ€HØð 
"ð 
"ˆØŒ:˜Ò"Ð" u¤{°cÒ'9Ð'9Ø˜*Ð$Ð$Ø˜F 2œJÒ&Ð&Ý'Ð(LÑMÔMÐMà&�G�Gå#Ð$EÑFÔFÐFà�NŠN˜5Ñ!Ô!Ð!Ð!àð !Ø˜a˜a˜a”=ˆà˜hÐ&ð 
Gð 
Gˆåˆv‰;Œ;˜!ÒÐØ�a‰KˆFˆFÝ�‰[Œ[˜AÒÐØ�a‰KˆFˆFÝ�‰[Œ[˜AÒÐØ�MŠM˜& œ)Ñ$Ô$Ð$Ð$Ý�‰[Œ[˜AÒÐÝØE½¸F¹¼ÐEÐEñGô Gð Gð ð G€GÝ˜g¥s¨:°xÑ'@Ô'@ÑAÔAð ð ‰ˆ�Ø(˜Ð(Ð(Ð(ˆÝ˜v t¨XÀÐEÑEÔEÐEØ�FˆlÐÐÐÐðð rD   z
list-styleú-typeú	-positionú-imagec              #   ó@  K  — dx}}d}| D ]i}t          |¦  «        dk    r|dz  }|}Œt          |g|¦  «        �d}d}n/t          |g¦  «        �d}nt          |g¦  «        �d	}d}nt          ‚||gfV — Œj|s|rd	|gfV — |dz  }|s|rd|gfV — |dz  }|rt          ‚dS )
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;   rg   Útype_specifiedÚimage_specifiedÚ
none_countrZ   Ú
none_tokenr�   s	            rC   Úexpand_list_styler¤   Ñ   s&  è è € ð (-Ð,€N�_Ø€JØð ð ˆÝ�uÑÔ Ò'Ð'ð ˜!‰OˆJØˆJØå˜U˜G XÑ.Ô.Ð:ØˆFØ"ˆOˆOÝ  % Ñ)Ô)Ð5Ø ˆFˆFÝ˜e˜WÑ%Ô%Ð1ØˆFØ!ˆNˆNåÐØ�u�gˆoÐÐÐÐàð ˜jð Ø˜
�|Ð#Ð#Ð#Ð#Ø�a‰ˆ
àð ˜zð Ø˜˜Ð$Ð$Ð$Ð$Ø�a‰ˆ
àð åÐðð rD   Úborderc              #   óH   K  — dD ]}t          | ||z   |¦  «        E d{V —† ŒdS )zlExpand the ``border`` shorthand property.

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

    r‚   N)Úexpand_border_side)rA   r;   rg   r�   s       rC   Úexpand_borderr¨   ü   sP   è è € ð 9ð Gð GˆÝ% f¨d°V©m¸XÑFÔFÐFÐFÐFÐFÐFÐFÐFÐFðGð GrD   z
border-topzborder-rightzborder-bottomzborder-leftzcolumn-ruleÚoutlineú-widthú-colorú-stylec              #   ó    K  — | D ]H}t          |¦  «        �d}n-t          |g¦  «        �d}nt          |g¦  «        �d}nt          ‚||gfV — ŒIdS )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;   rZ   r�   s       rC   r§   r§     s   è è € ð ð 	ð 	ˆÝ�uÑÔÐ)ØˆFˆFÝ˜5˜'Ñ"Ô"Ð.ØˆFˆFÝ˜5˜'Ñ"Ô"Ð.ØˆFˆFåÐØ�u�gˆoÐÐÐÐð	ð 	rD   zborder-imageú-outsetú-repeatú-sliceú-sourcec              #   ó  K  — t          | ¦  «        } | �rut          | dd…         |¦  «        rd|                      d¦  «        gfV — �n<t          | dd…         ¦  «        rx|                      d¦  «        g}| rXt          | dd…         ¦  «        rA|                     |                      d¦  «        ¦  «         | rt          | dd…         ¦  «        °Ad|fV — �n­t          | dd…         ¦  «        st          | d         ¦  «        dk    �ru|                      d¦  «        g}| r^t          || dd…         z   ¦  «        rD|                     |                      d¦  «        ¦  «         | rt          || dd…         z   ¦  «        °Dd|fV — | r8| d         j        dk    r'| d         j        d	k    r|                      d¦  «         n�Œ¯| st          ‚t          | dd…         ¦  «        r¸|                      d¦  «        g}| r^t          || dd…         z   ¦  «        rD|                     |                      d¦  «        ¦  «         | rt          || dd…         z   ¦  «        °Dd
|fV — | r8| d         j        dk    r'| d         j        d	k    r|                      d¦  «         nC�Œ‡| r8| d         j        dk    r'| d         j        d	k    r|                      d¦  «         nt          ‚| st          ‚t          | dd…         ¦  «        r}|                      d¦  «        g}| r^t          || dd…         z   ¦  «        rD|                     |                      d¦  «        ¦  «         | rt          || dd…         z   ¦  «        °Dd|fV — nt          ‚t          ‚| �°sdS dS )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   r{   r   rˆ   r   r   r“   rK   r   r   r   ©rA   r;   rg   ÚrepeatsÚslicesÚwidthsÚoutsetss          rC   Úexpand_border_imagerº      sö  è è € õ �&‰\Œ\€FØ
ñ 3 Ý˜v b q bœz¨8Ñ4Ô4ð 2	 Ø˜fŸjšj¨™mœm˜_Ð,Ð,Ð,Ð,Ñ,Ý  ¨¨¨¤Ñ,Ô,ð 0	 Ø—z’z !‘}”}�oˆGØð .Õ0°¸¸¸´Ñ<Ô<ð .Ø—’˜vŸzšz¨!™}œ}Ñ-Ô-Ð-ð ð .Õ0°¸¸¸´Ñ<Ô<ð .à˜WÐ$Ð$Ð$Ð$Ñ$Ý  r¨ r¤
Ñ+Ô+ð +	 ­{¸6À!¼9Ñ/EÔ/EÈÒ/OÑ/OØ—j’j ‘m”m�_ˆFØð -Õ/°¸ÀÀÀ¼Ñ0CÑDÔDð -Ø—’˜fŸjšj¨™mœmÑ,Ô,Ð,ð ð -Õ/°¸ÀÀÀ¼Ñ0CÑDÔDð -à˜FÐ"Ð"Ð"Ð"Øð ˜& œ)œ.¨IÒ5Ð5¸&À¼)¼/ÈSÒ:PÐ:Pà—
’
˜1‘”��ñ Øð $å#Ð#Ý! &¨¨!¨¤*Ñ-Ô-ð $Ø Ÿ*š* Q™-œ-˜�Øð 1Õ!3°F¸VÀBÀQÀB¼ZÑ4GÑ!HÔ!Hð 1Ø—M’M &§*¢*¨Q¡-¤-Ñ0Ô0Ð0ð ð 1Õ!3°F¸VÀBÀQÀB¼ZÑ4GÑ!HÔ!Hð 1à Ð&Ð&Ð&Ð&Øð ˜f Qœiœn°	Ò9Ð9¸fÀQ¼i¼oÐQTÒ>TÐ>Tà—J’J˜q‘M”M�M�Mñ Øð $˜F 1œIœN¨iÒ7Ð7¸FÀ1¼I¼OÈsÒ<RÐ<Rà—
’
˜1‘”��õ $Ð#Øð $å#Ð#Ý" 6¨"¨1¨"¤:Ñ.Ô.ð $Ø!Ÿ:š: a™=œ=˜/�Øð 2Õ!4°W¸vÀbÀqÀb¼zÑ5IÑ!JÔ!Jð 2Ø—N’N 6§:¢:¨a¡=¤=Ñ1Ô1Ð1ð ð 2Õ!4°W¸vÀbÀqÀb¼zÑ5IÑ!JÔ!Jð 2à Ð(Ð(Ð(Ð(Ð(õ $Ð#åÐðg ñ 3 ð 3 ð 3 ð 3 ð 3 rD   zmask-borderú-modec              #   ó~  K  — t          | ¦  «        } | �r¨t          | dd…         |¦  «        rd|                      d¦  «        gfV — �not          | dd…         ¦  «        rd|                      d¦  «        gfV — �n<t	          | dd…         ¦  «        rx|                      d¦  «        g}| rXt	          | dd…         ¦  «        rA|                     |                      d¦  «        ¦  «         | rt	          | dd…         ¦  «        °Ad|fV — �n­t          | dd…         ¦  «        st          | d         ¦  «        dk    �ru|                      d¦  «        g}| r^t          || dd…         z   ¦  «        rD|                     |                      d¦  «        ¦  «         | rt          || dd…         z   ¦  «        °Dd|fV — | r8| d         j        d	k    r'| d         j	        d
k    r|                      d¦  «         n�Œâ| st          ‚t          | dd…         ¦  «        r¸|                      d¦  «        g}| r^t          || dd…         z   ¦  «        rD|                     |                      d¦  «        ¦  «         | rt          || dd…         z   ¦  «        °Dd|fV — | r8| d         j        d	k    r'| d         j	        d
k    r|                      d¦  «         nC�Œº| r8| d         j        d	k    r'| d         j	        d
k    r|                      d¦  «         nt          ‚| st          ‚t          | dd…         ¦  «        r}|                      d¦  «        g}| r^t          || dd…         z   ¦  «        rD|                     |                      d¦  «        ¦  «         | rt          || dd…         z   ¦  «        °Dd|fV — nt          ‚t          ‚| �°¦dS dS )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   r{   r3   r   rˆ   r   r   r“   rK   r   r   r   rµ   s          rC   Úexpand_mask_borderr½   `  s.  è è € õ �&‰\Œ\€FØ
ñ 5 Ý˜v b q bœz¨8Ñ4Ô4ð 4	 Ø˜fŸjšj¨™mœm˜_Ð,Ð,Ð,Ð,Ñ,Ý˜f R a RœjÑ)Ô)ð 2	 Ø˜FŸJšJ q™MœM˜?Ð*Ð*Ð*Ð*Ñ*Ý  ¨¨¨¤Ñ,Ô,ð 0	 Ø—z’z !‘}”}�oˆGØð .Õ0°¸¸¸´Ñ<Ô<ð .Ø—’˜vŸzšz¨!™}œ}Ñ-Ô-Ð-ð ð .Õ0°¸¸¸´Ñ<Ô<ð .à˜WÐ$Ð$Ð$Ð$Ñ$Ý  r¨ r¤
Ñ+Ô+ð +	 ­{¸6À!¼9Ñ/EÔ/EÈÒ/OÑ/OØ—j’j ‘m”m�_ˆFØð -Õ/°¸ÀÀÀ¼Ñ0CÑDÔDð -Ø—’˜fŸjšj¨™mœmÑ,Ô,Ð,ð ð -Õ/°¸ÀÀÀ¼Ñ0CÑDÔDð -à˜FÐ"Ð"Ð"Ð"Øð ˜& œ)œ.¨IÒ5Ð5¸&À¼)¼/ÈSÒ:PÐ:Pà—
’
˜1‘”��ñ Øð $å#Ð#Ý! &¨¨!¨¤*Ñ-Ô-ð $Ø Ÿ*š* Q™-œ-˜�Øð 1Õ!3°F¸VÀBÀQÀB¼ZÑ4GÑ!HÔ!Hð 1Ø—M’M &§*¢*¨Q¡-¤-Ñ0Ô0Ð0ð ð 1Õ!3°F¸VÀBÀQÀB¼ZÑ4GÑ!HÔ!Hð 1à Ð&Ð&Ð&Ð&Øð ˜f Qœiœn°	Ò9Ð9¸fÀQ¼i¼oÐQTÒ>TÐ>Tà—J’J˜q‘M”M�M�Mñ Øð $˜F 1œIœN¨iÒ7Ð7¸FÀ1¼I¼OÈsÒ<RÐ<Rà—
’
˜1‘”��õ $Ð#Øð $å#Ð#Ý" 6¨"¨1¨"¤:Ñ.Ô.ð $Ø!Ÿ:š: a™=œ=˜/�Øð 2Õ!4°W¸vÀbÀqÀb¼zÑ5IÑ!JÔ!Jð 2Ø—N’N 6§:¢:¨a¡=¤=Ñ1Ô1Ð1ð ð 2Õ!4°W¸vÀbÀqÀb¼zÑ5IÑ!JÔ!Jð 2à Ð(Ð(Ð(Ð(Ð(õ $Ð#åÐðk ñ 5 ð 5 ð 5 ð 5 ð 5 rD   Ú
backgroundc              #   ó’  ‡‡K  — dŠt          | ¦  «        }|dv r‰D ]}||fV — Œ	dS t          j        t          |‰¬¦  «        }t	          | |‰¦  «        x}r|                     ¦   «         E d{V —† dS dˆˆfd„	}t          t          | ¦  «        ¦  «        } |t          |¦  «        d¬¦  «        \  }}	d	„ |	                     ¦   «         D ¦   «         }
|D ]E}  || ¦  «        \  }}|                     ¦   «         D ] \  }}|
|          	                    |¦  «         Œ!ŒF|
                     ¦   «         D ]\  }}||ddd
…         fV — Œd|fV — dS )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)ri   rh   Nrf   Fc           	      óä  •‡— i Šˆfd„}| d d d…         } | �r| |dt          j        | dd …         d d d…         ¦  «        ¦  «        r| dd …= Œ8| dd …         }|r. |dt          |¦  «        ¦  «        r|                      ¦   «          Œr |dt	          j        |‰¦  «        ¦  «        r|                      ¦   «          Œ¦ |dt          j        |¦  «        ¦  «        r|                      ¦   «          ŒÙ |dt          j        |¦  «        ¦  «        r|                      ¦   «          �Œdt          | ¦  «         d …         D ]¿}| | d …         d d d…         }t          j        |¦  «        }|�“ |d	|¦  «        sJ ‚| | d …= | r{| d         j        d
k    rj| d         j	        dk    rYdt          | ¦  «         d …         D ]@}| | d…         d d d…         }t          j        |¦  «        }|� |d|¦  «        sJ ‚| | d …= ŒA nŒÀ|��Œé |dt          j        |¦  «        ¦  «        rq|                      ¦   «          | dd …         } |dt          j        |¦  «        ¦  «        r|                      ¦   «          n |dt          j        |¦  «        ¦  «         �Œxt          ‚‰                     dt          d         ¦  «        }	‰D ]6}
|
‰vr0|
dk    r*t          |
                     dd¦  «                 d         ‰|
<   Œ7|	‰fS )Nc                 ó:   •— |€dS d| › �} | ‰v rt           ‚|‰| <   dS )NFzbackground-T©r   )r;   rK   rr   s     €rC   Úaddz3expand_background.<locals>.parse_layer.<locals>.add¼  s7   ø€ Øˆ}Ø�uØ' Ð'Ð'ˆDØ�wˆˆÝ#Ð#Ø!ˆG�D‰MØ�4rD   rƒ   ÚrepeatéþÿÿÿÚcolorÚimageÚ
attachment)r„   r…   r   r
   Úpositionr‘   r’   )r…   r   ÚsizeÚoriginÚcliprÀ   Úbackground_colorrF   Ú_r   )r   Úsingle_valuer4   r{   r   r   r‹   r   r“   rK   r   r   r   r	   Úreplace)rA   Úfinal_layerrÄ   rZ   ÚnÚn_tokensrÊ   rË   Ú
next_tokenrÇ   r;   rr   rg   rY   s              @€€rC   Úparse_layerz&expand_background.<locals>.parse_layer¹  s€  øø€ Øˆð	ð 	ð 	ð 	ð 	ð ˜˜˜"˜”ˆØñ -	 Øˆs�8Ý$Ô1°&¸¸¸´+¸d¸dÀ¸dÔ2CÑDÔDñFô Fð à˜2˜3˜3�KØØ˜2˜3˜3”KˆEØð ˜s˜s 7­L¸Ñ,?Ô,?Ñ@Ô@ð Ø—
’
‘”�ØØˆs�7Õ,Ô9¸%ÀÑJÔJÑKÔKð Ø—
’
‘”�ØØˆs�8Õ.Ô;¸EÑBÔBÑCÔCð Ø—
’
‘”�ØØˆs�<Õ!6Ô!CÀEÑ!JÔ!JÑKÔKð Ø—
’
‘”�ÙØ!¥3 v¡;¤; , - -Ô0ð ð �Ø! 1 " # #œ; t t¨ tÔ,�Ý.Ô;¸HÑEÔE�ØÐ'Ø˜3˜z¨8Ñ4Ô4Ð4Ð4Ð4Ø ˜r˜s˜s˜Øð 0 6¨"¤:¤?°iÒ#?Ð#?Ø" 2œJÔ,°Ò3Ð3Ø!'­¨V©¬¨¨¨Ô!6ð 0ð 0˜Aà'-¨q¨b°¨e¤}°T°T°r°TÔ':˜HÝ#2Ô#?ÀÑ#IÔ#I˜DØ#Ð/Ø'* s¨6°4Ñ'8Ô'8Ð 8Ð 8Ð 8Ø$*¨A¨2¨3¨3 KøØ�Eð (ð Ð#ÙØˆs�8�SÔ-¨eÑ4Ô4Ñ5Ô5ð Ø—
’
‘”�Ø# B C Cœ[�
Ø�3�v�sÔ/°
Ñ;Ô;Ñ<Ô<ð 9Ø—J’J‘L”L�L�Lð �C˜¥Ô 0°Ñ 7Ô 7Ñ8Ô8Ð8ÙÝÐà—’Ø¥Ð/AÔ BñDô Dˆà"ð 	Jð 	JˆDØ˜7Ð"Ð" tÐ/AÒ'AÐ'AÝ .¨t¯|ª|¸CÀÑ/EÔ/EÔ FÀqÔ I�˜‘øØ�gˆ~ÐrD   T)rÒ   c                 ó   — i | ]	\  }}||g“Œ
S rT   rT   )rU   rJ   rK   s      rC   rW   z%expand_background.<locals>.<dictcomp>ÿ  s    € ÐAÐAÐA¡
  Uˆs�U�GÐAÐAÐArD   rƒ   rÀ   )F)
r   rn   ro   Úexpand_backgroundr[   rŠ   Úreversedr   Únextrˆ   )rA   r;   rg   rk   rX   rs   rÖ   ÚlayersrÇ   Ú
last_layerrr   rÏ   ÚlayerrK   r—   rY   s     `            @rC   rØ   rØ   ¢  sÚ  øøè è € ð0€Nõ ! Ñ(Ô(€GØÐ(Ð(Ð(Ø"ð 	 ð 	 ˆDØ˜�-ÐÐÐÐØˆåÔ Ý ¨xð9ñ 9ô 9€Hå˜6 8¨^Ñ<Ô<Ð<€vð Ø—<’<‘>”>Ð!Ð!Ð!Ð!Ð!Ð!Ð!ØˆðBð Bð Bð Bð Bð Bð BõH •n VÑ,Ô,Ñ-Ô-€FØ#˜¥D¨¡L¤L¸dÐCÑCÔCÑ€Eˆ:ØAÐA¨j×.>Ò.>Ñ.@Ô.@ÐAÑAÔA€GØð (ð (ˆØ�;˜vÑ&Ô&‰ˆˆ5Ø Ÿ;š;™=œ=ð 	(ð 	(‰KˆD�%Ø�DŒM× Ò  Ñ'Ô'Ð'Ð'ð	(àŸš™œð !ð !‰ˆˆfØ�F˜4˜4˜R˜4”LÐ Ð Ð Ð Ð Ø
˜eÐ
#Ð#Ð#Ð#Ð#Ð#rD   ztext-decorationú-lineú
-thicknessc              #   óì  K  — g }g }g }g }d}| D ]Â}t          |¦  «        }|dv r'|                     |¦  «         |rt          ‚|dk    rd}Œ<|dv r|rt          ‚|                     |¦  «         Œ_t          |¦  «        r|rt          ‚|                     |¦  «         Œ�t	          |g¦  «        r|rt          ‚|                     |¦  «         Œ¼t          ‚|rd|fV — |rd|fV — |rd|fV — |rd	|fV — d
S d
S )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_linerZ   rk   s	            rC   Úexpand_text_decorationrí   	  sŠ  è è € ð €DØ€EØ€EØ€IØ€Làð  ð  ˆÝ˜eÑ$Ô$ˆØÐPÐPÐPØ�KŠK˜ÑÔÐØð $Ý#Ð#Ø˜FÒ"Ð"Ø#�øØÐGÐGÐGØð $Ý#Ð#Ø�LŠL˜ÑÔÐÐÝ˜ÑÔð 		 Øð $Ý#Ð#Ø�LŠL˜ÑÔÐÐÝ&¨ wÑ/Ô/ð 	 Øð $Ý#Ð#Ø×Ò˜UÑ#Ô#Ð#Ð#åÐàð Ø�tˆmÐÐÐØð Ø˜ˆoÐÐÐØð Ø˜ˆoÐÐÐØð &Ø˜IÐ%Ð%Ð%Ð%Ð%Ð%ð&ð &rD   c              #   óî   K  — t          | ¦  «        }|                     dd¦  «        d         }|dv r|| fV — dS |dk    r0t          | d         j        | d         j        d¦  «        }||gfV — dS t
          ‚)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
   )ÚautoÚleftÚrightÚavoidÚalwaysr   ÚpageN)r   Úsplitr   Úsource_lineÚsource_columnr   )rA   r;   rk   rt   rZ   s        rC   Úexpand_page_break_before_afterrø   4  s    è è € õ ! Ñ(Ô(€GØ�zŠz˜#˜qÑ!Ô! !Ô$€HØÐ4Ð4Ð4Ø˜ÐÐÐÐÐÐØ	�HÒ	Ð	ÝØ�1ŒIÔ! 6¨!¤9Ô#:¸FñDô Dˆà˜˜ÐÐÐÐÐÐåÐrD   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ü   F  ó   € õ *¨&°$Ñ7Ô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ÿ   Q  rý   rD   zpage-break-insideúbreak-insidec              #   óJ   K  — t          | ¦  «        }|dv rd| fV — dS t          ‚)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;   rk   s      rC   Úexpand_page_break_insider  \  s>   è è € õ ! Ñ(Ô(€GØÐ#Ð#Ð#Ø˜fÐ$Ð$Ð$Ð$Ð$Ð$åÐrD   Úcolumnsúcolumn-widthúcolumn-countc              #   ó”  K  — d}t          | ¦  «        dk    r$t          | d         ¦  «        dk    r| ddd…         } | D ]<}t          |g¦  «        �	|dk    rd}nt          |g¦  «        �d}nt          ‚||gfV — Œ=t          | ¦  «        dk    r:|dk    rdnd}t          | d         j        | d         j        d¦  «        }||gfV — dS dS )	z*Expand the ``columns`` shorthand property.Nr   r   rï   rƒ   r  r  r
   )r‹   r   r!   r    r   r   rö   r÷   )rA   r;   rZ   s      rC   Úexpand_columnsr  k  s  è è € ð €DÝ
ˆ6�{„{�aÒÐ�K¨¨q¬	Ñ2Ô2°fÒ<Ð<Ø˜˜˜"˜”ˆØð ð ˆÝ˜˜Ñ Ô Ð,°¸Ò1GÐ1GØ!ˆDˆDÝ˜5˜'Ñ"Ô"Ð.Ø!ˆDˆDåÐØ�U�GˆmÐÐÐÐÝ
ˆ6�{„{�aÒÐØ!%¨Ò!7Ð!7ˆ~ˆ~¸^ˆÝØ�1ŒIÔ! 6¨!¤9Ô#:¸FñDô Dˆà�U�GˆmÐÐÐÐÐð	 ÐrD   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 ]ˆ}|                      ¦   «         }t          |¦  «        dk    rŒ*t          |g¦  «        �d}n;t          |g¦  «        �d}n(t          |g¦  «        �d}nt          |g¦  «        �d	}n n.||gfV — | st          ‚Œ‰| st          ‚|                      ¦   «         }t          |g¦  «        €t          ‚d
|gfV — | st          ‚|                      ¦   «         }|j        dk    r>|j        dk    r3|                      ¦   «         }t          |g¦  «        €t          ‚d|gfV — n|                      |¦  «         |                      ¦   «          t#          | ¦  «        €t          ‚d| fV — dS )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Ù   Úranger{   r   r)   r*   r+   r(   r'   r“   rK   r/   rˆ   Úreverser&   )rA   r;   Úexpand_font_keywordrÏ   rZ   r�   s         rC   Úexpand_fontr  �  s  è è € õ -¨VÑ4Ô4ÐØð >ð >ð >åÐ<Ñ=Ô=Ð=õ •(˜6Ñ"Ô"Ñ#Ô#€Fõ �1‰XŒXð ð ˆØ—
’
‘”ˆÝ�uÑÔ Ò)Ð)ð å�u�gÑÔÐ*ØˆFˆFÝ ˜wÑ'Ô'Ð3Ø$ˆFˆFÝ˜%˜Ñ!Ô!Ð-ØˆFˆFÝ˜5˜'Ñ"Ô"Ð.ØˆFˆFð ˆEØ�u�gˆoÐÐÐàð 	 ÝÐð	 ð ð 	 ÝÐØ—
’
‘”ˆõ �%�ÑÔÐ!ÝÐØ
�E�7Ð
ÐÐÐð ð ÝÐà�JŠJ‰LŒL€EØ„z�YÒÐ 5¤;°#Ò#5Ð#5Ø—
’
‘”ˆÝ˜�wÑÔÐ'ÝÐØ˜e˜WÐ$Ð$Ð$Ð$Ð$ð 	�Š�eÑÔÐð ‡N‚NÑÔÐÝ�6ÑÔÐ"ÝÐØ
�VÐ
ÐÐÐÐÐrD   z	word-wrapúoverflow-wrapc              #   óF   K  — t          | ¦  «        }|€t          ‚d| fV — dS )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  Ö  s7   è è € õ ˜FÑ#Ô#€GØ€ÝÐØ
˜6Ð
!Ð!Ð!Ð!Ð!Ð!rD   Úflexú-growú-shrinkú-basisc           	   #   óä  K  — t          | ¦  «        }|dk    rU| d         j        | d         j        }}t          ||ddd¦  «        }t	          ||d¦  «        }d|gfV — d|gfV — d|gfV — dS d\  }}}	d	\  }
}}| D ]‹}|j        d
k    o|j        dk    ot          |
|f¦  «         }|s|st          |g¦  «        }|�|}	d}ŒE|
st          |g¦  «        }|€t          ‚|}d}
Œe|st          |g¦  «        }|€t          ‚|}d}Œ…t          ‚| d         j        | d         j        }}t          |¦  «                             ¦   «         rt          |¦  «        nd}t          |¦  «                             ¦   «         rt          |¦  «        nd}t          ||||t          |¦  «        ¦  «        }t          ||||t          |¦  «        ¦  «        }|st          ||dddd¦  «        }	d|gfV — d|gfV — d|	gfV — dS )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;   rk   ré   ÚcolumnÚ
zero_tokenÚ
auto_tokenÚgrowÚshrinkÚbasisÚ
grow_foundÚshrink_foundÚbasis_foundrZ   Úforced_flex_factorÚ	new_basisÚnew_growÚ
new_shrinkÚint_growÚ
int_shrinkÚ
grow_tokenÚshrink_tokens                         rC   Úexpand_flexr=  ä  s‘  è è € õ ! Ñ(Ô(€GØ�&ÒÐØ˜a”yÔ,¨f°Q¬iÔ.EˆfˆÝ   v¨q°!°SÑ9Ô9ˆ
Ý  f¨fÑ5Ô5ˆ
Ø˜
�|Ð#Ð#Ð#Ð#Ø˜*˜Ð%Ð%Ð%Ð%Ø˜˜Ð$Ð$Ð$Ð$Ð$Ð$à(Ñˆˆf�eØ0CÑ-ˆ
�L +Øð 	$ð 	$ˆEð ”
˜hÒ&ð 4¨5¬?¸aÒ+?ð 4Ý˜ \Ð2Ñ3Ô3Ð3ð ð ð Ð'9ð Ý&¨ wÑ/Ô/�	ØÐ(Ø!�EØ"&�KØØð $Ý+¨U¨GÑ4Ô4�ØÐ#Ý'Ð'à#�DØ!%�JØØ!ð 	$Ý-¨u¨gÑ6Ô6�
ØÐ%Ý'Ð'à'�FØ#'�LØå#Ð#Ø˜a”yÔ,¨f°Q¬iÔ.EˆfˆÝ % d¡¤× 6Ò 6Ñ 8Ô 8ÐB•3�t‘9”9�9¸dˆÝ$)¨&¡M¤M×$<Ò$<Ñ$>Ô$>ÐH•S˜‘[”[�[ÀDˆ
Ý   v¨t°X½sÀ4¹y¼yÑIÔIˆ
Ý"Ø�&˜& *­c°&©k¬kñ;ô ;ˆàð 	BÝ" 4¨°°A°s¸DÑAÔAˆEØ˜
�|Ð#Ð#Ð#Ð#Ø˜,˜Ð'Ð'Ð'Ð'Ø˜˜ÐÐÐÐÐÐrD   z	flex-flowúflex-directionú	flex-wrapc              #   óÒ  K  — t          | ¦  «        dk    rd| | ddd…         fD ]O}t          |d         g¦  «        }t          |d         g¦  «        }|r|rd|d         gfV — d|d         gfV —  dS ŒPt          ‚t          | ¦  «        dk    rUt          | d         g¦  «        }|rd| d         gfV — dS t          | d         g¦  «        }|rd| d         gfV — dS t          ‚t          ‚)z"Expand the ``flex-flow`` property.r   Nrƒ   r   r
   r>  r?  )r‹   r#   r%   r   )rA   r;   Úsorted_tokensÚ	directionÚwraps        rC   Úexpand_flex_flowrD    s=  è è € õ ˆ6�{„{�aÒÐØ# V¨D¨D¨b¨D¤\Ð1ð 	 ð 	 ˆMÝ&¨°aÔ(8Ð'9Ñ:Ô:ˆIÝ˜m¨AÔ.Ð/Ñ0Ô0ˆDØð ˜Tð Ø&¨°qÔ)9Ð(:Ð:Ð:Ð:Ð:Ø! M°!Ô$4Ð#5Ð5Ð5Ð5Ð5Ø��øåÐÝ	ˆV‰Œ˜Ò	Ð	Ý" F¨1¤I ;Ñ/Ô/ˆ	Øð 	$Ø" V¨A¤Y KÐ/Ð/Ð/Ð/Ð/Ð/å˜f Qœi˜[Ñ)Ô)ˆDØð $Ø! F¨1¤I ;Ð.Ð.Ð.Ð.Ð.Ð.å#Ð#åÐrD   c              #   ó®  K  — | d         j         | d         j        }}t          ||d¦  «        }t          | ¦  «        dk    r0t	          | d         ¦  «        dk    rd|gfV — d|gfV — d|gfV — d S g g}| D ]I}|j        dk    r!|j        dk    r|                     g ¦  «         Œ.|d	                              |¦  «         ŒJt          |¦  «        d
k    r_t          |d         ¦  «        }t          |d         ¦  «        }|r,|r!d|d         fV — d|d         fV — d|gfV — d S |d         }n%t          ‚t          |¦  «        dk    r|g}nt          ‚t          ‚)Nr   rŸ   r
   ú-columnsú-rowsú-areasr‘   r’   rƒ   r   )
rö   r÷   r   r‹   r   r“   rK   rˆ   r.   r   )	rA   r;   ré   r,  rŸ   Úslash_separatedrZ   Úrowsr  s	            rC   Ú_expand_grid_templaterK  :  s¹  è è € Ø˜!”9Ô(¨&°¬)Ô*Aˆ&€DÝ�d˜F FÑ+Ô+€DÝ
ˆ6�{„{�aÒÐ�K¨¨q¬	Ñ2Ô2°fÒ<Ð<Ø˜4˜&Ð Ð Ð Ð Ø˜�vˆoÐÐÐØ˜˜ÐÐÐÐØˆØ�d€OØð .ð .ˆØŒ:˜Ò"Ð" u¤{°cÒ'9Ð'9Ø×"Ò" 2Ñ&Ô&Ð&Ð&à˜BÔ×&Ò& uÑ-Ô-Ð-Ð-Ý
ˆ?ÑÔ˜qÒ Ð Ý˜_¨QÔ/Ñ0Ô0ˆÝ °Ô 2Ñ3Ô3ˆØð 	 Øð Ø  /°!Ô"4Ð4Ð4Ð4Ð4Ø˜¨qÔ1Ð1Ð1Ð1Ð1Ø  Ð&Ð&Ð&Ð&Ø�Ø% aÔ(ˆGˆGåÐÝ	ˆ_Ñ	Ô	 Ò	"Ð	"Ø�&ˆˆåÐå
ÐrD   úgrid-templaterF  rG  rH  c              #   ó6   K  — t          | |¦  «        E d{V —† dS )z&Expand the ``grid-template`` property.N)rK  rû   s     rC   Úexpand_grid_templaterN  \  s0   è è € õ % V¨TÑ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ð2rD   Úgridz-template-columnsz-template-rowsú-template-areasú-auto-columnsú
-auto-rowsú
-auto-flowc              #   óæ  K  — | d         j         | d         j        }}t          ||d¦  «        }t          ||d¦  «        }t          ||d¦  «        }t          ||d¦  «        }	 t          t	          | d¦  «        ¦  «        }|D ]'\  }}	d|                     d¦  «        d	         › �|	fV — Œ(d
|gfV — d|gfV — d|gfV — dS # t          $ r Y nw xY wg g}
| D ]I}|j        dk    r!|j        dk    r|
 	                    g ¦  «         Œ.|
d	          	                    |¦  «         ŒJt          |
¦  «        dk    rt          ‚d}d}g g dœ}t          |
|                     ¦   «         ¦  «        }|D ]‰\  } \  }}d}| D ]|}t          |¦  «        dk    r|s|r||k    rt          ‚|}|}Œ+t          |¦  «        dk    r|s|r||k    rt          ‚d}|}ŒT|| d	         k    r| 	                    |¦  «         Œvt          ‚ŒŠ|st          ‚|dk    rdnd}|dk    r|n|}d|r||fn|ffV — d|› d�t          ||         ¦  «        fV — d|› d�|gfV — d|› d�|gfV — d|› d�t          ||         ¦  «        fV — d|gfV — dS )zExpand the ``grid`` property.r   rï   rŸ   Úrowr,  rL  z
-template-rF   rƒ   rQ  rR  rS  Nr‘   r’   r   )rU  r,  FÚdensez	auto-flowTz-auto-ÚsrP  )rö   r÷   r   ÚtuplerK  rõ   r   r“   rK   rˆ   r‹   rŒ   rŠ   r   )rA   r;   ré   r,  rï   rŸ   rU  ÚtemplaterJ   rK   Úsplit_tokensrZ   Ú
auto_trackrV  Ú	templatesÚiterableÚtrackÚtrack_templatesÚauto_flow_tokenÚnon_auto_trackÚauto_track_tokens                        rC   Úexpand_gridrc  c  s·  è è € ð
 ˜!”9Ô(¨&°¬)Ô*Aˆ&€DÝ�d˜F FÑ+Ô+€DÝ�d˜F FÑ+Ô+€DÝ
�T˜6 5Ñ
)Ô
)€CÝ˜˜f hÑ/Ô/€Fð
ÝÕ.¨v°ÑGÔGÑHÔHˆð #ð 	;ð 	;‰JˆC�Ø3˜sŸyšy¨™~œ~¨bÔ1Ð3Ð3°UÐ:Ð:Ð:Ð:Ð:Ø ˜vÐ%Ð%Ð%Ð%Ø˜T˜FÐ"Ð"Ð"Ð"Ø˜S˜EÐ!Ð!Ð!Ð!Øˆøõ ð ð ð Øˆðøøøð �4€LØð 'ð 'ˆØŒ:˜Ò"Ð" u¤{°cÒ'9Ð'9Ø×Ò Ñ#Ô#Ð#ØØ�RÔ×Ò Ñ&Ô&Ð&Ð&Ý
ˆ<ÑÔ˜AÒÐÝÐØ€JØ€EØ bÐ)Ð)€IÝ�< §¢Ñ!2Ô!2Ñ3Ô3€HØ,4ð $ð $Ñ(ˆÑ(�˜ØˆØð 	$ð 	$ˆEÝ˜5Ñ!Ô! WÒ,Ð,Øð (˜Zð (¨J¸%Ò,?Ð,?Ý'Ð'Ø�Ø"�
�
Ý˜UÑ#Ô# {Ò2Ð2Ø"ð ( zð (°jÀEÒ6IÐ6IÝ'Ð'Ø"&�Ø"�
�
Ø˜& œ*Ò$Ð$Ø×&Ò& uÑ-Ô-Ð-Ð-å#Ð#ð	$ð ð ÝÐØ(¨HÒ4Ð4�U�U¸(€NØ!+¨xÒ!7Ð!7�v�v¸SÐØ
Ø%*ÐCÐ	˜5Ð!Ð!Ð1AÐ0CðEð Eð Eð Eà
 �:Ð
 Ð
 Ð
 ¥%¨	°*Ô(=Ñ">Ô">Ð
>Ð>Ð>Ð>Ø
$�>Ð
$Ð
$Ð
$ t fÐ
,Ð,Ð,Ð,Ø
$�zÐ
$Ð
$Ð
$ t fÐ
,Ð,Ð,Ð,Ø
(�~Ð
(Ð
(Ð
(­%°	¸.Ô0IÑ*JÔ*JÐ
JÐJÐJÐJØ
˜d˜VÐ
#Ð#Ð#Ð#Ð#Ð#s   Á"C  Ã 
CÃCc              #   óö  K  — g g}| D ]I}|j         dk    r!|j        dk    r|                     g ¦  «         Œ.|d                              |¦  «         ŒJdt          |¦  «        cxk    r|k    s	n t          ‚g }|D ]@} t          | ¦  «        x}st          ‚|                     |¦  «         t          | ¦  «        V — ŒAt          |j        |j	        d¦  «        }t          |¦  «        x}dk    rpt          |d         d d…         ¦  «        d hk    }|rt          |d         ¦  «        n|f}	|                     | ¦  «         |                     |d         ¦  «         |	V — |dcxk    r|k     rAn n>t          |d         d d…         ¦  «        d hk    }|rt          |d         ¦  «        n|fV — |dcxk    r|k     rDn d S t          |d         d d…         ¦  «        d hk    }|rt          |d         ¦  «        n|fV — d S d S )	Nr‘   r’   rƒ   r
   rï   r   r   r…   )r“   rK   rˆ   r‹   r   r-   rX  r   rö   r÷   Úset)
rA   Ú
max_numberÚ
grid_linesrZ   ÚvalidationsÚ
validationrï   ÚlinesÚcustom_identrK   s
             rC   Ú_expand_grid_column_row_arearl  ¢  si  è è € Ø�€JØð %ð %ˆØŒ:˜Ò"Ð" u¤{°cÒ'9Ð'9Ø×Ò˜bÑ!Ô!Ð!ØØ�2Œ×Ò˜eÑ$Ô$Ð$Ð$Ø•�J‘”Ð-Ð-Ò-Ð- :Ò-Ð-Ð-Ð-ÝÐØ€KØð ð ˆÝ'¨Ñ/Ô/Ð/�
ð 	 ÝÐØ×Ò˜:Ñ&Ô&Ð&Ý�F‰mŒmÐÐÐÐÝ�eÔ'¨Ô)<¸fÑEÔE€DÝ�Z‘”Ð ˆ QÒ&Ð&Ý˜; qœ>¨"¨1¨"Ô-Ñ.Ô.°4°&Ò8ˆØ(4ÐA•�j ”mÑ$Ô$Ð$¸4¸'ˆØ×Ò˜&Ñ!Ô!Ð!Ø×Ò˜; qœ>Ñ*Ô*Ð*ØˆˆˆØ�ÐÐÒÐ�JÒÐÐÐÐÝ˜; qœ>¨"¨1¨"Ô-Ñ.Ô.°4°&Ò8ˆØ&2Ð?�e�J˜q”MÑ"Ô"Ð"¸¸Ð?Ð?Ð?Ø�ÐÐÒÐ�JÒÐÐÐÐÐÝ˜; qœ>¨"¨1¨"Ô-Ñ.Ô.°4°&Ò8ˆØ&2Ð?�e�J˜q”MÑ"Ô"Ð"¸¸Ð?Ð?Ð?Ð?Ð?ð ÐrD   zgrid-columnzgrid-rowz-startz-endc              #   óh   K  — t          | d¦  «        }t          |d¦  «        D ]\  } }d|› �| fV — ŒdS )z,Expand the ``grid-[column|row]`` properties.r   )ÚstartÚendrF   N©rl  rŒ   )rA   r;   Útokens_listÚsides       rC   Úexpand_grid_column_rowrs  À  sY   è è € õ
 /¨v°qÑ9Ô9€KÝ˜KÐ)9Ñ:Ô:ð !ð !‰ˆ�Ø�$ˆjˆj˜&Ð Ð Ð Ð Ð ð!ð !rD   z	grid-areazgrid-row-startzgrid-row-endzgrid-column-startzgrid-column-endc              #   ól   K  — t          | d¦  «        }d}t          ||¦  «        D ]\  } }d|› �| fV — ŒdS )z"Expand the ``grid-area`` property.r„   )z	row-startzcolumn-startzrow-endz
column-endzgrid-Nrp  )rA   r;   rq  Úsidesrr  s        rC   Úexpand_grid_arearv  Ê  s]   è è € õ
 /¨v°qÑ9Ô9€KØB€EÝ˜K¨Ñ/Ô/ð %ð %‰ˆ�Ø�dˆnˆn˜fÐ$Ð$Ð$Ð$Ð$ð%ð %rD   zgrid-gapr,   ú
column-gapúrow-gapc              #   óZ  K  — t          | ¦  «        dk    r$t          | ¦  «        €t          ‚d| fV — d| fV — dS t          | ¦  «        dk    rYt          | dd…         ¦  «        t          | dd…         ¦  «        }}d||fv rt          ‚d| dd…         fV — d| dd…         fV — dS t          ‚)zExpand the ``gap`` property.r
   Nrx  rw  r   r   )r‹   r,   r   )rA   r;   Ú
column_gapÚrow_gaps       rC   Ú
expand_gapr|  Õ  sá   è è € õ
 ˆ6�{„{�aÒÐÝˆv‰;Œ;ÐÝÐØ˜ÐÐÐÐØ˜FÐ"Ð"Ð"Ð"Ð"Ð"Ý	ˆV‰Œ˜Ò	Ð	Ý! &¨¨1¨¤+Ñ.Ô.µ°F¸1¸Q¸3´KÑ0@Ô0@�Gˆ
Ø�J Ð(Ð(Ð(ÝÐØ˜  ! œÐ$Ð$Ð$Ð$Ø˜F 1 Q 3œKÐ'Ð'Ð'Ð'Ð'Ð'åÐrD   zgrid-column-gapc              #   óF   K  — t          | ¦  «        }|€t          ‚d| fV — dS )z+Expand legacy ``grid-column-gap`` property.Nrw  ©r,   r   r  s      rC   Úexpand_legacy_column_gapr  é  s5   è è € õ �&‰kŒk€GØ€ÝÐØ
˜Ð
ÐÐÐÐÐrD   zgrid-row-gapc              #   óF   K  — t          | ¦  «        }|€t          ‚d| fV — dS )z(Expand legacy ``grid-row-gap`` property.Nrx  r~  r  s      rC   Úexpand_legacy_row_gapr�  ó  s5   è è € õ �&‰kŒk€GØ€ÝÐØ
�VÐ
ÐÐÐÐÐrD   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ˆ    r„  rD   z
line-clampú	max-linesÚcontinueúblock-ellipsisc              #   óT  K  — t          | ¦  «        dk    ræt          | ¦  «        }|dk    rS| d         j        | d         j        }}t	          ||d¦  «        }t	          ||d¦  «        }d|gfV — d|gfV — d|gfV — d	S | d         j        dk    rf| d         j        �Y| d         j        | d         j        }}t	          ||d¦  «        }t	          ||d
¦  «        }d| d         gfV — d|gfV — d|gfV — d	S t          ‚t          | ¦  «        dk    r”| d         j        dk    r|| d         j        }t          | d         g¦  «        }	|rP|	�N| d         j        | d         j        }}t	          ||d
¦  «        }d| d         gfV — d|gfV — d| d         gfV — d	S t          ‚t          ‚t          ‚)z#Expand the ``line-clamp`` property.r
   rŸ   r   rï   r‰  rŠ  r‹  r$  NÚdiscardr   )	r‹   r   rö   r÷   r   r“   r&  r   r   )
rA   r;   rk   ré   r,  r£   r.  Údiscard_tokenÚ	max_linesÚellipsiss
             rC   Úexpand_line_clampr‘    s  è è € õ ˆ6�{„{�aÒÐÝ$ VÑ,Ô,ˆØ�fÒÐØ! !œ9Ô0°&¸´)Ô2I�&ˆDÝ# D¨&°&Ñ9Ô9ˆJÝ# D¨&°&Ñ9Ô9ˆJØ 
˜|Ð+Ð+Ð+Ð+Ø˜z˜lÐ*Ð*Ð*Ð*Ø" Z LÐ0Ð0Ð0Ð0Ð0Ð0Ø�AŒYŒ^˜xÒ'Ð'¨F°1¬IÔ,?Ð,KØ! !œ9Ô0°&¸´)Ô2I�&ˆDÝ# D¨&°&Ñ9Ô9ˆJÝ& t¨V°YÑ?Ô?ˆMØ  q¤	˜{Ð*Ð*Ð*Ð*Ø˜}˜oÐ-Ð-Ð-Ð-Ø" Z LÐ0Ð0Ð0Ð0Ð0Ð0åÐÝ	ˆV‰Œ˜Ò	Ð	Ø�!Œ9Œ>˜XÒ%Ð%Ø˜qœ	Ô+ˆIÝ% v¨a¤y kÑ2Ô2ˆHØð $˜XÐ1Ø% aœyÔ4°f¸Q´iÔ6M�f�Ý *¨4°¸Ñ CÔ C�Ø! F¨1¤I ;Ð.Ð.Ð.Ð.Ø  = /Ð1Ð1Ð1Ð1Ø&¨°¬¨Ð3Ð3Ð3Ð3Ð3Ð3å#Ð#åÐåÐrD   z
text-alignú-allú-lastc              #   óf  K  — t          | ¦  «        dk    r–t          | ¦  «        }|€t          ‚|dk    r,| d         j        | d         j        }}t          ||d¦  «        }n| d         }d|gfV — |dk    r,| d         j        | d         j        }}t          ||d¦  «        }n|}d|gfV — dS t          ‚)	z#Expand the ``text-align`` property.r
   Nzjustify-allr   Újustifyr’  rn  r“  )r‹   r   r   rö   r÷   r   )rA   r;   rk   ré   r,  Ú	align_allÚ
align_lasts          rC   Úexpand_text_alignr˜  =  sÛ   è è € õ ˆ6�{„{�aÒÐÝ$ VÑ,Ô,ˆØˆ?ÝÐØ�mÒ#Ð#Ø! !œ9Ô0°&¸´)Ô2I�&ˆDÝ" 4¨°Ñ;Ô;ˆIˆIà˜qœ	ˆIØ�y�kÐ!Ð!Ð!Ð!Ø�iÒÐØ! !œ9Ô0°&¸´)Ô2I�&ˆDÝ# D¨&°'Ñ:Ô:ˆJˆJà"ˆJØ˜
�|Ð#Ð#Ð#Ð#Ð#Ð#åÐrD   )`rP   rn   Ú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   r^   r9   r[   rX   r}   r‰   rš   r¤   r¨   r§   rº   r½   rØ   rí   rø   rü   rÿ   r  r  r
  r  r  r=  rD  rK  rN  rc  rl  rs  rv  r|  r  r�  rƒ  r†  rˆ  r‘  r˜  rT   rD   rC   ú<module>rž     sã  ðØ $Ð $à Ð Ð Ð à @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à !Ð !Ð !Ð !Ð !Ð !Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðMð Mð Mð Mð Mð Mð Mð Mð Mð Mð Mð Mð Mð MðTð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð Tð €	ðð ð ð ð �gñ ô ð ð>ð >ð >ðð ð ð=&ð =&ð =&ð@ 
€ˆ.ÑÔØ	€ˆ.ÑÔØ	€ˆ.ÑÔØ	€ˆ(ÑÔØ	€ˆ)ÑÔØ	€ˆ'ÑÔð!ð !ñ Ôñ Ôñ Ôñ Ôñ Ôñ Ôð!ðH 
€ˆ/ÑÔØÐØÐ7Ø Ð"=Øðñ ô ð"ð "ñ	ô ñ Ôð
"ðJ 
€ˆ,ÑÔØÐ�'˜;¨ÀÐFÑFÔFð&ð &ñ GÔFñ Ôð&ðR 
€ˆ(ÑÔðGð Gñ ÔðGð 
€ˆ,ÑÔØ	€ˆ.ÑÔØ	€ˆ/ÑÔØ	€ˆ-ÑÔØ	€ˆ-ÑÔØ	€ˆ)ÑÔØÐ�(˜H hÑ/Ô/ðð ñ 0Ô/ñ Ôñ Ôñ Ôñ Ôñ Ôñ Ôðð$ 
€ˆ.ÑÔØÐ�)˜Y¨°)¸XØ!%ð'ñ 'ô 'ð: ð : ñ'ô 'ñ Ôð: ðz 
€ˆ-ÑÔØÐ�)˜Y¨°)¸XÀwØ!%ð'ñ 'ô 'ð< ð < ñ'ô 'ñ Ôð< ð~ 
€ˆ,ÑÔðc$ð c$ñ Ôðc$ðL 
€Ð
ÑÔØÐ�'˜8 X¨|Ñ<Ô<ð&&ð &&ñ =Ô<ñ Ôð&&ðRð ð ð$ 
€Ð
ÑÔØÐ�-Ñ Ô ð8ð 8ñ !Ô ñ Ôð8ð 
€Ð
ÑÔØÐ�.Ñ!Ô!ð8ð 8ñ "Ô!ñ Ôð8ð 
€Ð
ÑÔØÐ�.Ñ!Ô!ð
ð 
ñ "Ô!ñ Ôð
ð 
€ˆ)ÑÔØÐ�. .Ñ1Ô1ðð ñ 2Ô1ñ Ôðð( 
€ˆ.ÑÔØÐ�- ¨-¸Ø˜kñ+ô +ð'ð 'ñ+ô +ñ Ôð'ð 
€ˆ&ÑÔØÐ�(˜O¨Y¸
ÀGØ ñ,ô ,ðCð Cñ,ô ,ñ ÔðCðL 
€ˆ+ÑÔØÐ�/Ñ"Ô"ð	"ð 	"ñ #Ô"ñ Ôð	"ð 
€ˆ&ÑÔØÐ�'˜9 hÑ/Ô/ð5 ð 5 ñ 0Ô/ñ Ôð5 ðp 
€ˆ+ÑÔØÐÐ" KÑ0Ô0ðð ñ 1Ô0ñ Ôðð4ð ð ðD 
€ˆ/ÑÔØÐ�*˜g xÑ0Ô0ð3ð 3ñ 1Ô0ñ Ôð3ð
 
€ˆ&ÑÔØÐÐ%Ð'7Ð9JØ! <°ñ?ô ?ð9$ð 9$ñ?ô ?ñ Ôð9$ðx@ð @ð @ð< 
€ˆ-ÑÔØ	€ˆ*ÑÔØÐ�(˜FÑ#Ô#ð!ð !ñ $Ô#ñ Ôñ Ôð!ð 
€ˆ+ÑÔØÐÐ" NØ%Ð'8ñ:ô :ð%ð %ñ:ô :ñ Ôð%ð 
€ˆ*ÑÔØ	€ˆ%�„ØÐ�, 	Ñ*Ô*ðð ñ +Ô*ñ „ñ Ôðð" 
€Ð
ÑÔØÐ�,ÑÔðð ñ  Ôñ Ôðð 
€ˆ.ÑÔØÐ�)ÑÔðð ñ Ôñ Ôðð 
€ˆ/ÑÔØÐ�/Ð#4Ñ5Ô5ðð ñ 6Ô5ñ Ôðð 
€ˆ-ÑÔØÐ�- Ñ1Ô1ðð ñ 2Ô1ñ Ôðð 
€ˆ,ÑÔØÐ�, Ñ/Ô/ðð ñ 0Ô/ñ Ôðð 
€ˆ,ÑÔØÐ�+˜zÐ+;Ñ<Ô<ð#ð #ñ =Ô<ñ Ôð#ðL 
€ˆ,ÑÔØÐ�&˜'Ñ"Ô"ðð ñ #Ô"ñ Ôðð ð rD   