Ë
    o]j†k  ã                   óÄ  — d 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
 ddlmZmZ d	d
lmZ d	dlmZmZmZ d	dlmZmZmZ dD � �ci c]  \  } }| ed   |z  “Œ c}} Zd	dddœZed   ed   k(  sJ ‚ddddddddddœ	ddddddddddœ	dœZdD ����ci c]  \  }}}}| e||«       e||«      f“Œ c}}}}Z ed„ ej;                  «       D «       «      sJ ‚ed   Z ed„ eD «       «      ed<   i Z d·d„Z! e!d d!¬"«      d#„ «       Z" e!d$d%¬"«       e!d$d&d'¬(«      d)„ «       «       Z# e!d*d&d+¬(«      d,„ «       Z$i Z%d-„ Z&d.„ Z' e&d/«      d0„ «       Z( e&d1«      d2„ «       Z) e&d3«       e&d4«       e&d5«       e&d6«       e&d7«       e&d8«       e&d9«       e&d:«       e&d;«      d<„ «       «       «       «       «       «       «       «       «       Z* e&d=«       e&d>«      d?„ «       «       Z+ e&d@«      dA„ «       Z, e&dB«       e&d«       e&dC«      dD„ «       «       «       Z- e&dE«       e&dF«      dG„ «       «       Z. e&dH«       e&dI«       e&dJ«       e&dK«       e&dL«       e&dM«       e&dN«       e&dO«       e&dP«       e&dQ«       e&dR«       e&dS«       e&dT«       e&dU«       e&dV«       e&dW«       e&dX«       e&dY«       e&dZ«       e&d[«       e&d\«       e&d]«       e&d^«       e&d_«       e&d`«       e&da«       e&db«       e&dc«       e&dd«      d¸df„«       «       «       «       «       «       «       «       «       «       «       «       «       «       «       «       «       «       «       «       «       «       «       «       «       «       «       «       «       Z/ e&dg«       e&dh«       e&di«       e&dj«      dk„ «       «       «       «       Z0 e&dl«      dm„ «       Z1 e&dn«      do„ «       Z2 e&dp«      dq„ «       Z3 e&dr«       e&ds«       e&dt«       e&du«       e&dv«       e&dw«      dx„ «       «       «       «       «       «       Z4 e&dy«       e&dz«      d{„ «       «       Z5 e&d|«       e&d}«      d~„ «       «       Z6 e&d«       e&d€«      d�„ «       «       Z7 e&d‚«       e&dƒ«      d„„ «       «       Z8 e&d…«       e&d†«      d‡„ «       «       Z9 e&dˆ«       e&d‰«       e&dŠ«       e&d‹«      dŒ„ «       «       «       «       Z: e&d�«       e&dŽ«      d�„ «       «       Z;d�„ Z< e&d‘«      d’„ «       Z= e&d“«      d”„ «       Z> e&d•«      d–„ «       Z? e&d—«      d˜„ «       Z@ e&d™«      dš„ «       ZA e&d›«      dœ„ «       ZB e&d�«      dž„ «       ZCdŸ„ ZDd „ ZE e&d¡«       e&d¢«      d£„ «       «       ZF e&d¤«       e&d¥«      d¦„ «       «       ZG e&d§«      d¨„ «       ZH e&d©«      dª„ «       ZI e&d««      d¬„ «       ZJ e&d­«      d®„ «       ZK e&d¯«      d°„ «       ZL e&d±«      d²„ «       ZM e&d³«      d´„ «       ZN e&dµ«      d¶„ «       ZOyec c}} w c c}}}}w )¹z7Convert specified property values into computed values.é    )Úpartial)Úpi©Úparse_coloré   )ÚLOGGER)Ústrut)Úget_link_attributeÚget_url_tupleé   )Ú
check_math)ÚINITIAL_VALUESÚZERO_PIXELSÚ	Dimension)ÚANGLE_TO_RADIANSÚLENGTH_UNITSÚ	to_pixels))zxx-smallg333333ã?)zx-smallg      è?)ÚsmallgÇqÇqì?)Úmediumr   )Úlargeç333333ó?)zx-largeg      ø?)zxx-larger   Ú	font_sizeé   é   )Úthinr   ÚthickÚborder_top_widthr   é�  é¼  é„  )	éd   éÈ   i,  r   éô  iX  r   i   r    r!   ©ÚbolderÚlighter)/)Úa10é   é%   Úmm)Úa9r)   é4   r*   )Úa8r,   éJ   r*   )Úa7r.   éi   r*   )Úa6r0   é”   r*   )Úa5r2   éÒ   r*   )Úa4r4   é)  r*   )Úa3r6   é¤  r*   )Úa2r8   éR  r*   )Úa1r:   éI  r*   )Úa0r<   i¥  r*   )Úb10é   é,   r*   )Úb9r@   é>   r*   )Úb8rB   éX   r*   )Úb7rD   é}   r*   )Úb6rF   é°   r*   )Úb5rH   éú   r*   )Úb4rJ   éa  r*   )Úb3rL   r#   r*   )Úb2r#   éÃ  r*   )Úb1rO   éè  r*   )Úb0rQ   i†  r*   )Úc10é   é(   r*   )Úc9rU   é9   r*   )Úc8rW   éQ   r*   )Úc7rY   ér   r*   )Úc6r[   é¢   r*   )Úc5r]   éå   r*   )Úc4r_   éD  r*   )Úc3ra   éÊ  r*   )Úc2rc   éˆ  r*   )Úc1re   é•  r*   )Úc0rg   i  r*   )zjis-b10é    é-   r*   )zjis-b9rj   é@   r*   )zjis-b8rk   é[   r*   )zjis-b7rl   é€   r*   )zjis-b6rm   é¶   r*   )zjis-b5rn   é  r*   )zjis-b4ro   él  r*   )zjis-b3rp   é  r*   )zjis-b2rq   éØ  r*   )zjis-b1rr   é  r*   )zjis-b0rs   i°  r*   )Úletterç      !@é   Úin)Úlegalru   é   rw   )Úledgerrv   é   rw   c              #   óT   K  — | ]   \  }}|j                   |j                   k  –— Œ" y ­w©N)Úvalue)Ú.0ÚwidthÚheights      úU/var/www/zogu/zoguvenv/lib/python3.12/site-packages/weasyprint/css/computed_values.pyú	<genexpr>rƒ   y   s!   è ø€ Ò
O©-¨%°ˆ5�;‰;˜Ÿ™Õ%Ñ
Oùs   ‚&(r5   c              #   ó6   K  — | ]  }t        |d d«      –— Œ y ­w)NÚsize)r   )r   r…   s     r‚   rƒ   rƒ   |   s    è ø€ ò AØ&*„Iˆd�D˜&×!ñAùs   ‚r…   c                 ó   ‡ ‡‡— ˆ ˆˆfd„}|S )zEDecorator registering logical properties matching physical ``names``.c           	      óª   •— ‰D ]L  }|j                  dd«      }‰D ]3  }‰D ],  }|}|r|› d|› �}|r|› d|› �}t        | |||¬«      t        |<   Œ. Œ5 ŒN | S )z3Register the properties ``names`` for ``function``.ú-Ú_)ÚnameÚprefixÚsuffix)Úreplacer   ÚPHYSICAL_FUNCTIONS)ÚfunctionrŠ   r‹   rŒ   Úproperty_nameÚnamesÚprefixesÚsuffixess        €€€r‚   Ú	decoratorz#register_logical.<locals>.decorator‡   s’   ø€ àò 
	KˆDØ—<‘<  SÓ)ˆDØ"ò K�Ø&ò K�FØ$(�MÙØ+1¨(°!°M°?Ð(C˜ÙØ+8¨/¸¸6¸(Ð(C˜Ü8?Ø  t°FÀ6ô9KÔ& }Ò5ñKñKð
	Kð ˆó    © )r‘   r’   r“   r”   s   ``` r‚   Úregister_logicalr—   „   s   ú€ öð Ðr•   )r€   r�   )Ú ÚmaxÚmin)r’   c                 óB   — |dv }d| v }||k(  rdnd}|r|› d|› d�S |› d�S )N©ÚttbÚbttr�   ÚblockÚinliner‰   Ú_sizer–   )rŠ   r‹   rŒ   rŸ   r    Úvertical_main_directionÚvertical_propertyÚlogicals           r‚   Úphysical_sizer¥   ˜   sH   € à# ~Ð5ÐØ  DÐ(ÐØ+Ð/FÒF‰gÈX€GÙ)/ˆfˆX�Q�w�i˜uÐ%ÐF¸°yÀÐ5FÐFr•   )ÚtopÚleftÚbottomÚright)r˜   ÚpaddingÚmargin)Úborder)r€   ÚstyleÚcolor)r’   r“   c                 óö   — | dk(  r|dv rdnd}d||fv rdnd}nG| dk(  r|dv rdnd}d	||fv rdnd}n/| d
k(  r|dv rdnd}d||fv rdnd}n| dk(  r|dv rdnd}d||fv rdnd}|xs d› d�}|rd|› �}|› › d› |› �S )Nr¦   rœ   rŸ   r    r�   ÚstartÚendr¨   rž   r§   )ÚltrÚrtlr²   r©   r³   Úinsetr‰   r–   )rŠ   r‹   rŒ   rŸ   r    r¤   Úsides          r‚   Úphysical_insetr¶       sÚ   € ð ˆu‚}Ø" nÑ4‘'¸(ˆØ E¨6 ?Ñ2‰w¸‰Ø	�Ò	Ø" nÑ4‘'¸(ˆØ E¨6 ?Ñ2‰w¸‰Ø	�ŠØ" nÑ4‘'¸(ˆØ E¨6 ?Ñ2‰w¸‰Ø	�ŠØ" nÑ4‘'¸(ˆØ E¨6 ?Ñ2‰w¸ˆØÒ!˜'Ð" !Ð$€FÙØ�V�H�ˆØˆX�g�Y˜a ˜v f XÐ.Ð.r•   )Útop_leftÚ	top_rightÚbottom_leftÚbottom_right)Úradiusc                 ó0  — | j                  d«      \  }}|dk(  r
|dk(  rdnd}n,|dk(  r
|dk(  rdnd}n|dk(  r
|d	k(  rdnd}n|d
k(  r	|dk(  rdnd}|dk(  r
|dk(  rdnd}n,|dk(  r
|dk(  rdnd}n|dk(  r
|d	k(  rdnd}n|d
k(  r	|dk(  rdnd}|› d|› d|› d|› �S )Nr‰   r�   r¦   r°   r±   rž   r¨   r²   r§   r³   r©   )Úsplit)rŠ   r‹   rŒ   rŸ   r    ÚverticalÚ
horizontals          r‚   Úphysical_radiusrÀ   ¹   sÛ   € ð  Ÿ:™: c›?Ñ€HˆjØ�‚~Ø# uÒ,‘°%‰Ø	�%ŠØ# xÒ/‘°U‰Ø	�%ŠØ%¨Ò/‘°U‰Ø	�%ŠØ%¨Ò0‘°eˆØ�‚Ø$¨Ò-‘°5‰Ø	�5ŠØ$¨Ò0‘°e‰Ø	�5ŠØ&¨&Ò0‘°e‰Ø	�5ŠØ&¨'Ò1‘°uˆØˆX�Q�u�g˜Q˜v˜h a¨ xÐ0Ð0r•   c                 ó6   ‡ — ‰ j                  dd«      Š ˆ fd„}|S )z9Decorator registering a property ``name`` for a function.rˆ   r‰   c                 ó   •— | t         ‰<   | S )z0Register the property ``name`` for ``function``.)ÚCOMPUTER_FUNCTIONS)r�   rŠ   s    €r‚   r”   z$register_computer.<locals>.decoratorÙ   s   ø€ à#+Ô˜4Ñ Øˆr•   )r�   )rŠ   r”   s   ` r‚   Úregister_computerrÄ   Õ   s    ø€ à�<‰<˜˜SÓ!€Dôð Ðr•   c                 óž  — |\  }}|dk(  sJ ‚|\  }}}	 | j                   j                  ||«      }|dk(  r�n|dk(  rt        || j                  «      }né|dk(  rt	        |j                  «       | d   «      }nÆ|dk(  rt        |j                  «       «      }n§|dk(  rt        |j                  «       «      }nˆ|dk(  r&t        t        |j                  «       «      d«      }d	}n]|t        v r&t        t        |j                  «       «      |«      }d	}n/|t        v r&t        t        |j                  «       «      |«      }d
}ny ||fS # t        $ r Y y w xY w)Núattr()ÚstringÚurlr®   Úcolor_schemeÚintegerÚnumberú%ÚlengthÚangle)ÚelementÚgetr   Úbase_urlr   ÚstripÚintÚfloatr   r   r   Ú	Exception)r­   ÚvaluesÚ	func_namer~   Ú	attr_nameÚtype_or_unitÚfallbackÚ
attr_values           r‚   Úcompute_attrrÜ   à   sX  € ð Ñ€IˆuØ˜Ò Ð Ð Ø(-Ñ%€Iˆ|˜XðØ—]‘]×&Ñ& y°(Ó;ˆ
Ø˜8Ò#ÙØ˜UÒ"Ü& z°5·>±>ÓB‰JØ˜WÒ$Ü$ Z×%5Ñ%5Ó%7¸¸~Ñ9NÓO‰JØ˜YÒ&Ü˜Z×-Ñ-Ó/Ó0‰JØ˜XÒ%Ü˜z×/Ñ/Ó1Ó2‰JØ˜SÒ Ü"¤5¨×)9Ñ)9Ó);Ó#<¸cÓBˆJØ#‰LØœ\Ñ)Ü"¤5¨×)9Ñ)9Ó);Ó#<¸lÓKˆJØ#‰LØÔ-Ñ-Ü"¤5¨×)9Ñ)9Ó);Ó#<¸lÓKˆJØ"‰Làð ˜*Ð%Ð%øô ò Ùðús   ”D'E  Å 	EÅEzbackground-imagec                 ó0   ‡ ‡— t        ˆˆ fd„|D «       «      S )z-Compute lenghts in gradient background-image.c              3   ó8   •K  — | ]  }t        ‰‰|«      –— Œ y ­wr}   )Úimage©r   r~   rŠ   r­   s     €€r‚   rƒ   z#background_image.<locals>.<genexpr>  s   øè ø€ Ò?¨u”�u˜d E×*Ñ?ùó   ƒ©Útuple©r­   rŠ   rÖ   s   `` r‚   Úbackground_imagerå     s   ù€ ô Ô?¸Ô?Ó?Ð?r•   zborder-image-sourcec                 óJ  ‡ ‡— |\  }}|dv rHt        ˆˆ fd„|j                  D «       «      |_        t        ˆˆ fd„|j                  D «       «      |_        |dk(  rJt        ‰ ‰|j                  f«      \  |_        |j
                  dk(  rt        ‰ ‰|j                  «      |_        |S )z0Compute lenghts in gradient border-image-source.)zlinear-gradientúradial-gradientc              3   ó@   •K  — | ]  }|�t        ‰‰|«      nd –— Œ y ­wr}   ©rÍ   )r   ÚposrŠ   r­   s     €€r‚   rƒ   zimage.<locals>.<genexpr>  s+   øè ø€ ò %-àð ),¨ŒF�5˜$ Ô$¸TÓAñ%-ùó   ƒc              3   ó@   •K  — | ]  }|�t        ‰‰|«      nd –— Œ y ­wr}   ré   )r   ÚhintrŠ   r­   s     €€r‚   rƒ   zimage.<locals>.<genexpr>  s,   øè ø€ ò "+àð *.Ð)9ŒF�5˜$ Ô%¸tÓCñ"+ùrë   rç   Úexplicit)rã   Ústop_positionsÚcolor_hintsÚcompute_positionÚcenterÚ	size_typeÚlength_or_percentage_tupler…   )r­   rŠ   rß   Útype_r~   s   ``   r‚   rß   rß     s¡   ù€ ð �L€Eˆ5ØÐ6Ñ6Ü$ô %-à×+Ñ+ô%-ó  -ˆÔô "ô "+à×)Ñ)ô"+ó +ˆÔð Ð!Ò!Ü(¨°°u·|±|°oÓF‰ˆŒØ�?‰?˜jÒ(Ü3°E¸4ÀÇÁÓLˆEŒJØ€Lr•   r®   zbackground-colorzborder-top-colorzborder-right-colorzborder-bottom-colorzborder-left-colorzcolumn-rule-colorzoutline-colorztext-decoration-colorc                 ó    — t        || d   «      S )NrÉ   r   rä   s      r‚   r®   r®     s   € ô �v˜u ^Ñ4Ó5Ð5r•   zbackground-positionzobject-positionc                 ó0   ‡ ‡— t        ˆˆ fd„|D «       «      S )z'Compute lengths in background-position.c           	   3   ó`   •K  — | ]%  \  }}}}|t        ‰‰|«      |t        ‰‰|«      f–— Œ' y ­wr}   ré   )r   Úorigin_xÚpos_xÚorigin_yÚpos_yrŠ   r­   s        €€r‚   rƒ   z#compute_position.<locals>.<genexpr>+  sA   øè ø€ ò 8ñ -ˆH�e˜X uð 
”6˜%  uÓ-Ø	”6˜%  uÓ-ô	/ñ8ùs   ƒ+.râ   rä   s   `` r‚   rñ   rñ   '  s!   ù€ ô ô 8ð 17ô8ó 8ð 8r•   ztransform-originc                 ó0   ‡ ‡— t        ˆˆ fd„|D «       «      S )z5Compute the lists of lengths that can be percentages.c              3   ó8   •K  — | ]  }t        ‰‰|«      –— Œ y ­wr}   ré   rà   s     €€r‚   rƒ   z-length_or_percentage_tuple.<locals>.<genexpr>4  ó   øè ø€ Ò@°”˜˜t U×+Ñ@ùrá   râ   rä   s   `` r‚   rô   rô   1  s   ù€ ô Ô@¸Ô@Ó@Ð@r•   zborder-spacingÚclipc                 ó0   ‡ ‡— t        ˆˆ fd„|D «       «      S )z.Compute the properties with a list of lengths.c              3   ó<   •K  — | ]  }t        ‰‰|d ¬«      –— Œ y­w)T©Úpixels_onlyNré   rà   s     €€r‚   rƒ   zlength_tuple.<locals>.<genexpr><  s   øè ø€ ÒRÀ%”˜˜t U¸×=Ð=ÑRùs   ƒrâ   rä   s   `` r‚   Úlength_tupler  7  s   ù€ ô
 ÔRÈ6ÔRÓRÐRr•   zbreak-afterzbreak-beforec                 ó   — |dk(  rdS |S )z<Compute the ``break-before`` and ``break-after`` properties.ÚalwaysÚpager–   ©r­   rŠ   r~   s      r‚   Úbreak_before_afterr
  ?  s   € ð ˜hÒ&ˆ6Ð1¨EÐ1r•   r¦   r©   r§   r¨   z
margin-topzmargin-rightzmargin-bottomzmargin-leftr�   r€   z
block-sizezinline-sizez	min-widthz
min-heightzmin-block-sizezmin-inline-sizez	max-widthz
max-heightzmax-block-sizezmax-inline-sizezpadding-topzpadding-rightzpadding-bottomzpadding-leftztext-indentzhyphenate-limit-zonez
flex-basisztext-underline-offsetztext-decoration-thicknessNc                 óº   — |dv st        |«      r|S |j                  dk(  r
|rdS t        S |j                  t        vr|S t        || ||«      }|r|S t        |d«      S )zCompute a length ``value``.)ÚautoÚcontentz	from-fontr   Úpx)r   r~   r   Úunitr   r   r   )r­   rŠ   r~   r   r  Úpixelss         r‚   rÍ   rÍ   F  sg   € ð> Ð0Ñ0´J¸uÔ4EØˆØ	�‰˜Ò	ÙˆqÐ0¤[Ð0Ø	�‰œ<Ñ	'àˆä�u˜e T¨9Ó5€FÙ ˆ6Ð=¤i°¸Ó&=Ð=r•   z
bleed-leftzbleed-rightz	bleed-topzbleed-bottomc                 óZ   — |dk(  rt        d| d   v rdd«      S dd«      S t        | ||«      S )Nr  ÚcropÚmarksé   r   r  )r   rÍ   r	  s      r‚   Úbleedr  q  s<   € ð
 �‚Ü˜f¨¨g©Ñ6˜¸tÓDÐD¸A¸tÓDÐDÜ�%˜˜uÓ%Ð%r•   zletter-spacingc                 ó.   — |dk(  r|S t        | ||d¬«      S )NÚnormalTr  ré   r	  s      r‚   Úpixel_lengthr  {  s    € à�ÒØˆÜ�%˜˜u°$Ô7Ð7r•   zbackground-sizec                 ó0   ‡ ‡— t        ˆˆ fd„|D «       «      S )z+Compute the ``background-size`` properties.c              3   óD   •K  — | ]  }|d v r|nt        ‰‰|«      –— Œ y­w))ÚcontainÚcoverN)rô   rà   s     €€r‚   rƒ   z"background_size.<locals>.<genexpr>…  s4   øè ø€ ò ð ð Ð.Ñ.‰Ü" 5¨$°Ó6ó	7ñùs   ƒ râ   rä   s   `` r‚   Úbackground_sizer  ‚  s!   ù€ ô ô ð ôó ð r•   zimage-orientationc                 óR   — |dv r|S |\  }}t        |t        z  dz  «      dz  dz  |fS )z-Compute the ``image-orientation`` properties.)Únonez
from-imager   é   éZ   )Úroundr   )r­   rŠ   rÖ   rÎ   Úflips        r‚   Úimage_orientationr$  ‹  s=   € ð Ð'Ñ'ØˆØ�K€Eˆ4Ü�%œ"‘*˜q‘.Ó! AÑ%¨Ñ*¨DÐ1Ð1r•   zborder-top-widthzborder-right-widthzborder-left-widthzborder-bottom-widthzcolumn-rule-widthzoutline-widthc                 óš   — | |j                  dd«         }|dv ry|t        v r	t        |   S t        |t        «      r|S t	        | ||d¬«      S )z*Compute the ``border-*-width`` properties.r€   r­   )r  Úhiddenr   Tr  )r�   ÚBORDER_WIDTH_KEYWORDSÚ
isinstancerÓ   rÍ   )r­   rŠ   r~   Úborder_styles       r‚   Úborder_widthr*  ”  s[   € ð ˜Ÿ™ g¨wÓ7Ñ8€LØÐ)Ñ)ØàÔ%Ñ%Ü$ UÑ+Ð+ä�%œÔð ˆä�%˜˜u°$Ô7Ð7r•   zborder-image-slicezmask-border-slicec                 ó2  — g }d}|D ]>  }|dk(  r|}Œ|\  }}|€|j                  |«       Œ$|j                  t        |d«      «       Œ@ t        |«      dk(  r|dz  }n6t        |«      dk(  r|dz  }n"t        |«      dk(  r|j                  |d   «       g |¢|‘­S )z,Compute the ``border-image-slice`` property.NÚfillrÌ   r   r   r   r   )Úappendr   Úlen)r­   rŠ   rÖ   Úcomputed_valuesr,  r~   rË   r  s           r‚   Úborder_image_slicer0  «  sº   € ð €OØ€DØò ?ˆØ�FŠ?Ø‰Dà ‰LˆF�DØˆ|Ø×&Ñ& vÕ.à×&Ñ&¤y°¸Ó'=Õ>ð?ô ˆ?Ó˜qÒ Ø˜1Ñ‰Ü	ˆ_Ó	 Ò	"Ø˜1Ñ‰Ü	ˆ_Ó	 Ò	"Ø×Ñ˜¨qÑ1Ô2Ø#ˆ_Ð#˜dÑ#Ð#r•   zborder-image-widthzmask-border-widthc                 óH  — g }|D ]3  }|dk(  r|j                  |«       Œ|\  }}|j                  |€|n|«       Œ5 t        |«      dk(  r|dz  }t        |«      S t        |«      dk(  r|dz  }t        |«      S t        |«      dk(  r|j                  |d   «       t        |«      S )z,Compute the ``border-image-width`` property.r  r   r   r   r   )r-  r.  rã   )r­   rŠ   rÖ   r/  r~   rË   r  s          r‚   Úborder_image_widthr2  Ã  sÅ   € ð €OØò FˆØ�FŠ?Ø×"Ñ" 5Õ)à ‰LˆF�DØ×"Ñ"¨T¨\¡6¸uÕEðFô ˆ?Ó˜qÒ Ø˜1Ñˆô
 �Ó!Ð!ô	 
ˆ_Ó	 Ò	"Ø˜1Ñˆô �Ó!Ð!ô 
ˆ_Ó	 Ò	"Ø×Ñ˜¨qÑ1Ô2Ü�Ó!Ð!r•   zborder-image-outsetzmask-border-outsetc                 óB  — |D �cg c]'  }t        |t        t        f«      r|nt        | ||«      ‘Œ) }}t	        |«      dk(  r|dz  }t        |«      S t	        |«      dk(  r|dz  }t        |«      S t	        |«      dk(  r|j                  |d   «       t        |«      S c c}w )z-Compute the ``border-image-outset`` property.r   r   r   r   )r(  rÓ   rÔ   rÍ   r.  r-  rã   )r­   rŠ   rÖ   r~   r/  s        r‚   Úborder_image_outsetr4  ×  sº   € ð öàô ˜E¤C¬ <Ô0‰´f¸UÀDÈ%Ó6PÑPð€Oð ô ˆ?Ó˜qÒ Ø˜1Ñˆô
 �Ó!Ð!ô	 
ˆ_Ó	 Ò	"Ø˜1Ñˆô �Ó!Ð!ô 
ˆ_Ó	 Ò	"Ø×Ñ˜¨qÑ1Ô2Ü�Ó!Ð!ùòs   …,Bzborder-image-repeatzmask-border-repeatc                 ó,   — t        |«      dk(  r|dz  S |S )z-Compute the ``border-image-repeat`` property.r   r   )r.  rä   s      r‚   Úborder_image_repeatr6  ç  s   € ô ˜v›;¨!Ò+ˆF�Q‰JÐ7°Ð7r•   zcolumn-widthzoutline-offsetc                 ó    — t        | ||d¬«      S )z Compute a pixel length property.Tr  ré   r	  s      r‚   Úlength_pixels_onlyr8  î  s   € ô �%˜˜u°$Ô7Ð7r•   zborder-top-left-radiuszborder-top-right-radiuszborder-bottom-left-radiuszborder-bottom-right-radiusc                 ó0   ‡ ‡— t        ˆˆ fd„|D «       «      S )z+Compute the ``border-*-radius`` properties.c              3   ó8   •K  — | ]  }t        ‰‰|«      –— Œ y ­wr}   ré   rà   s     €€r‚   rƒ   z border_radius.<locals>.<genexpr>û  rÿ   rá   râ   rä   s   `` r‚   Úborder_radiusr;  õ  s   ù€ ô Ô@¸Ô@Ó@Ð@r•   z
column-gapzrow-gapc                 ó*   — |dk(  r|S t        | ||«      S )z!Compute the ``*-gap`` properties.r  ré   r	  s      r‚   Úgapr=  þ  s   € ð ˜XÒ%ˆ5ÐE¬6°%¸¸uÓ+EÐEr•   c           
      ó¬  — g }|D ]Ã  }|d   dv r|}nh|d   dk(  r|d   d   dk(  sJ ‚t        | |«      }nF|d   dv r|}n<|d   dv r5|d   d   }|d   dk(  r#t        | |«      }|€d }n|d   |g|d   dd  ¢­f}n|}€<t        j                  d| j                  ›d	d
j	                  d„ |D «       «      ›�«       Œ³|j                  |«       ŒÅ t        |«      S )Nr   )rÇ   r  rÈ   Úquotezleader()rÆ   r   rÇ   )z	counter()z
counters()z	content()z	element()zstring())ztarget-counter()ztarget-counters()ztarget-text()zUnable to compute z value for content: z, c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr}   )Ústr)r   Úitems     r‚   rƒ   z _content_list.<locals>.<genexpr>!  s   è ø€ Ò(E°t¬¨T¯Ñ(Eùs   ‚)rÜ   r   ÚwarningrÏ   Újoinr-  rã   )r­   rÖ   r/  r~   Úcomputed_valueÚanchor_tokenÚattrs          r‚   Ú_content_listrH    s#  € Ø€OØò 3ˆØ�‰8ÐHÑHØ"‰NØ�1‰X˜Ò!Ø˜‘8˜A‘; (Ò*Ð*Ð*Ü)¨%°Ó7‰NØ�1‰Xð ñ ð #‰NØ�1‰Xð Jñ Jà  ™8 A™;ˆLØ˜A‰ (Ò*Ü# E¨<Ó8�Ø�<Ø%)‘Nà&+¨A¡h°Ð0E¸¸a¹ÀÀ¸Ñ0EÐ%F‘Nà!&�ØÐ!Ü�NŠNØ—“˜tŸy™yÑ(E¸uÔ(EÔEðGõ Hð ×"Ñ" >Õ2ð93ô< �Ó!Ð!r•   zbookmark-labelc                 ó   — t        | |«      S )z(Compute the ``bookmark-label`` property.©rH  rä   s      r‚   Úbookmark_labelrK  (  s   € ô ˜ Ó'Ð'r•   z
string-setc                 ó,   ‡ — t        ˆ fd„|D «       «      S )z$Compute the ``string-set`` property.c              3   óF   •K  — | ]  }|d    t        ‰|d   «      f–— Œ y­w)r   r   NrJ  )r   Ú
string_setr­   s     €r‚   rƒ   zstring_set.<locals>.<genexpr>2  s-   øè ø€ ò "àð 
�A‰œ e¨Z¸©]Ó;Ô<ñ"ùs   ƒ!râ   rä   s   `  r‚   rN  rN  .  s   ø€ ô ó "à ô"ó "ð "r•   r  c                 ót   — t        |«      dk(  r|\  }|dk(  r| j                  rdS dS |dk(  ryt        | |«      S )z!Compute the ``content`` property.r   r  ÚinhibitÚcontentsr  )r.  Úpseudo_typerH  )r­   rŠ   rÖ   r~   s       r‚   r  r  7  sI   € ô ˆ6ƒ{�aÒØ‰ˆØ�HÒØ %× 1Ò 1�9ÐA°zÐAØ�fŠ_ØÜ˜ Ó'Ð'r•   Údisplayc                 óÚ   — | j                   d   }| j                   d   }|dv s|dk7  s| j                  r7|dk(  ryt        |«      dk(  r|d   j                  d	«      ry
|d   dk(  rd|v ryy
|S )z!Compute the ``display`` property.rÔ   Úposition©ÚabsoluteÚfixedr  )zinline-table)rŸ   Útabler   r   ztable-)rŸ   Úflowr    ú	list-item)rŸ   rZ  r[  )Ú	specifiedÚis_root_elementr.  Ú
startswith)r­   rŠ   r~   Úfloat_rU  s        r‚   rS  rS  C  s‚   € ð �_‰_˜WÑ%€FØ�‰˜zÑ*€HØÐ(Ñ(¨F°fÒ,<À×@UÒ@UØÐ%Ò%Ø%Ü�‹Z˜1Š_  q¡×!4Ñ!4°XÔ!>Ø$Ø�1‰X˜Ò!Ø˜eÑ#Ø5à(Ø€Lr•   rÔ   c                 ó>   — | j                   d   }|dv s|d   dk(  ry|S )zCompute the ``float`` property.rU  rV  r   z	running()r  )r\  )r­   rŠ   r~   rU  s       r‚   Úcompute_floatra  V  s.   € ð �‰˜zÑ*€HØÐ(Ñ(¨H°Q©K¸;Ò,FØàˆr•   z	font-sizec                 óâ  — |t         v r	t         |   S t        t         j                  «       «      }| j                  €
t        d   }n| j                  d   }|dk(  r$t        |«      D ]  \  }}||kD  sŒ||   c S  |dz  S |dk(  r.t        |ddd…   «      D ]  \  }}||k  sŒ|| dz
     c S  |dz  S t        |t        «      r!|j                  d	k(  r|j                  |z  d
z  S t        | ||d|¬«      S )z#Compute the ``font-size`` property.Nr   Úlargerr   Úsmalleréÿÿÿÿr   gš™™™™™é?rÌ   r!   T)r  r   )ÚFONT_SIZE_KEYWORDSÚlistrÖ   Úparent_styler   Ú	enumerater(  r   r  r~   rÍ   )r­   rŠ   r~   Úkeyword_valuesÚparent_font_sizeÚiÚkeyword_values          r‚   r   r   a  s*  € ð Ô"Ñ"Ü! %Ñ(Ð(äÔ,×3Ñ3Ó5Ó6€NØ×ÑÐ!Ü)¨+Ñ6Ñà ×-Ñ-¨kÑ:Ðà�ÒÜ )¨.Ó 9ò 	*ÑˆAˆ}ØÐ/Ó/Ø% aÑ(Ò(ð	*ð $ cÑ)Ð)Ø	�)Ò	Ü )¨.¹¸2¸Ñ*>Ó ?ò 	*ÑˆAˆ}ØÐ/Ó/Ø% q b¨1¡fÑ-Ò-ð	*ð $ cÑ)Ð)Ü	�Eœ9Ô	%¨%¯*©*¸Ò*;Ø�{‰{Ð-Ñ-°Ñ3Ð3äØ�4˜¨DØ&ô(ð 	(r•   zfont-weightc                 óˆ   — |dk(  ry|dk(  ry|dv r1| j                   €
t        d   }n| j                   d   }t        |   |   S |S )z%Compute the ``font-weight`` property.r  r   Úboldr   r$   Úfont_weight)rh  r   ÚFONT_WEIGHT_RELATIVE)r­   rŠ   r~   Úparent_values       r‚   rp  rp  �  s]   € ð �ÒØØ	�&ŠØØ	Ð'Ñ	'Ø×ÑÐ%Ü)¨-Ñ8‰Là ×-Ñ-¨mÑ<ˆLÜ# EÑ*¨<Ñ8Ð8àˆr•   c                 ó    — |dv r|S t        |t        «      r8|j                  r|j                  j                  «       dk(  r|S t	        | ||«      S y)zCompute track breadth.)r  zmin-contentzmax-contentÚfrN)r(  r   r  ÚlowerrÍ   r	  s      r‚   Ú_compute_track_breadthrv  ’  sN   € àÐ6Ñ6ØˆÜ	�Eœ9Ô	%Ø�:Š:˜%Ÿ*™*×*Ñ*Ó,°Ò4ØˆLä˜%  uÓ-Ð-ð	 
&r•   c                 óÚ  — g }t        |«      D ]Ñ  \  }}|dz  dk(  r|j                  |«       Œ t        | ||«      }|r|j                  |«       ŒA|d   dk(  r1|j                  dt        | ||d   «      t        | ||d   «      f«       Œz|d   dk(  r"|j                  dt        | ||d   «      f«       Œ¤|d   dk(  sŒ­|j                  d|d   t	        | ||d   «      f«       ŒÓ t        |«      S )zCompute track size.r   r   úminmax()r   úfit-content()zrepeat())ri  r-  rv  rÍ   Ú_track_sizerã   )r­   rŠ   rÖ   Úreturn_valuesrl  r~   Útrack_breadths          r‚   rz  rz  �  s  € à€MÜ˜fÓ%ò O‰ˆˆ5Øˆq‰5�AŠ:à× Ñ  Õ'ô 3°5¸$ÀÓFˆMÙØ×$Ñ$ ]Õ3Ø�q‘˜ZÒ'Ø×$Ñ$ØÜ*¨5°$¸¸a¹ÓAÜ*¨5°$¸¸a¹ÓAð&Cõ Dð �q‘˜_Ò,Ø×$Ñ$Ø#¤V¨E°4¸¸q¹Ó%Bð&Dõ Eà�q‘˜ZÓ'Ø×$Ñ$Ø  a¡¬+°e¸TÀ5ÈÁ8Ó*Lð&Nõ Oð%Oô( �ÓÐr•   zgrid-template-columnszgrid-template-rowsc                 ó:   — |dk(  s|d   dk(  r|S t        | ||«      S )z+Compute the ``grid-template-*`` properties.r  r   Úsubgrid)rz  rä   s      r‚   Úgrid_templater  ·  s+   € ð �Ò˜6 !™9¨	Ò1Øˆä˜5 $¨Ó/Ð/r•   zgrid-auto-columnszgrid-auto-rowsc                 óJ  — g }|D ]’  }t        | ||«      }|r|j                  |«       Œ$|d   dk(  r9|j                  dt        | ||d   g«      d   t        | ||d   g«      d   f«       Œe|d   dk(  sŒn|j                  dt        | ||d   g«      d   f«       Œ” t        |«      S )z'Compute the ``grid-auto-*`` properties.r   rx  r   r   ry  )rv  r-  Ú	grid_autorã   )r­   rŠ   rÖ   r{  r~   r|  s         r‚   r�  r�  Á  sÑ   € ð €MØò 
IˆÜ.¨u°d¸EÓBˆÙØ× Ñ  Õ/Ø�1‰X˜Ò#Ø× Ñ ØœI e¨T°E¸!±H°:Ó>¸qÑAÜ˜% ¨¨a© zÓ2°1Ñ5ð"7õ 8ð �1‰X˜Ó(Ø× Ñ Ø¤¨5°$¸¸q¹¸
Ó!CÀAÑ!Fð"Hõ Ið
Iô �ÓÐr•   zline-heightc                 óÂ   — |dk(  r|S |j                   sd|j                  fS |j                   dk(  r|j                  dz  }| d   }||z  }d|fS t        | ||d¬«      }d|fS )	z%Compute the ``line-height`` property.r  ÚNUMBERrÌ   r!   r   Tr  ÚPIXELS)r  r~   rÍ   )r­   rŠ   r~   ÚfactorÚfont_size_valuer  s         r‚   Úline_heightr‡  Ô  s   € ð �ÒØˆØ�ZŠZØ˜%Ÿ+™+Ð&Ð&Ø	�‰�sÒ	Ø—‘˜sÑ"ˆØ Ñ,ˆØ˜/Ñ)ˆð �fÐÐô ˜˜t U¸Ô=ˆØ�fÐÐr•   Úanchorc                 óZ   — |dk7  r&|\  }}| j                   j                  |«      xs d}|S y)z Compute the ``anchor`` property.r  N©rÏ   rÐ   )r­   rŠ   rÖ   r‰   ÚkeyÚanchor_names         r‚   rˆ  rˆ  ä  s9   € ð �ÒØ‰ˆˆ3Ø—m‘m×'Ñ'¨Ó,Ò4°ˆØÐð r•   Úlinkc                 óh   — |dk(  ry|\  }}|dk(  r!t        | j                  || j                  «      S |S )zCompute the ``link`` property.r  NrÆ   )r
   rÏ   rÑ   )r­   rŠ   rÖ   rõ   r~   s        r‚   r�  r�  í  s<   € ð �ÒØØ�L€Eˆ5Ø�ÒÜ! %§-¡-°¸¿¹ÓGÐGØ€Mr•   Úlangc                 óp   — |dk(  ry|\  }}|dk(  r| j                   j                  |«      xs dS |dk(  r|S y)zCompute the ``lang`` property.r  NrÆ   rÇ   rŠ  )r­   rŠ   rÖ   r‹  s       r‚   r�  r�  ø  sL   € ð �ÒØØ�I€Dˆ#ØˆxÒØ�}‰}× Ñ  Ó%Ò-¨Ð-Ø	�Ò	Øˆ
ð 
r•   ztab-sizec                 ó@   — t        |t        «      r|S t        | ||«      S )z"Compute the ``tab-size`` property.)r(  rÓ   rÍ   r	  s      r‚   Útab_sizer’    s!   € ô ˜u¤cÔ*ˆ5ÐJ´°u¸dÀEÓ0JÐJr•   Ú	transformc                 óz   — g }|D ]*  \  }}|dk(  rt        | ||«      }|j                  ||f«       Œ, t        |«      S )z#Compute the ``transform`` property.Ú	translate)rô   r-  rã   )r­   rŠ   r~   Úresultr�   Úargss         r‚   r“  r“  
  sO   € ð €FØò (‰ˆ�$Ø�{Ò"Ü-¨e°T¸4Ó@ˆDØ�‰�x Ð&Õ'ð(ô �‹=Ðr•   zvertical-alignc                 óØ   — |dv r|S |dk(  r| d   dz  S |dk(  r| d   dz  S t        |«      r|S |j                  dk(  r t        | «      \  }}||j                  z  dz  S t	        | ||d	¬
«      S )z(Compute the ``vertical-align`` property.)ÚbaselineÚmiddleztext-topztext-bottomr¦   r¨   Úsuperr   g      à?Úsubg      à¿rÌ   r!   Tr  )r   r  r	   r~   rÍ   )r­   rŠ   r~   r�   r‰   s        r‚   Úvertical_alignr�    sŒ   € ð
 ÐRÑRØˆØ	�'Ò	Ø�[Ñ! CÑ'Ð'Ø	�%ŠØ�[Ñ! DÑ(Ð(Ü	�EÔ	ØˆØ	�‰�sÒ	Ü˜%“L‰	ˆ�Ø˜Ÿ™Ñ# cÑ)Ð)ä�e˜T 5°dÔ;Ð;r•   zword-spacingc                 ó.   — |dk(  rdS t        | ||d¬«      S )z&Compute the ``word-spacing`` property.r  r   Tr  ré   r	  s      r‚   Úword_spacingrŸ  )  s!   € ð ˜Ò!ˆ1ÐS¤v¨e°T¸5ÈdÔ'SÐSr•   )©r˜   r   )NF)PÚ__doc__Ú	functoolsr   Úmathr   Útinycss2.color5r   Úloggerr   Útext.line_breakr	   Úurlsr
   r   Ú	functionsr   Ú
propertiesr   r   r   Úunitsr   r   r   rf  r'  rq  Ú
PAGE_SIZESÚallrÖ   ÚINITIAL_PAGE_SIZErã   rŽ   r—   r¥   r¶   rÀ   rÃ   rÄ   rÜ   rå   rß   r®   rñ   rô   r  r
  rÍ   r  r  r  r$  r*  r0  r2  r4  r6  r8  r;  r=  rH  rK  rN  r  rS  ra  r   rp  rv  rz  r  r�  r‡  rˆ  r�  r�  r’  r“  r�  rŸ  )rŠ   r…  Ú	page_sizer€   r�   r  s   000000r‚   ú<module>r¯     sí  ðÙ =å Ý å 'å Ý #ß 4Ý !ß >Ñ >ß <Ñ <ð÷ñ 	ˆˆfð 	ˆ.˜Ñ
%¨Ñ
.Ñ.óÐ ð" ØØñÐ ð
 Ð(Ñ)Ð-BÀ8Ñ-LÒLÐ LÐLð
 ØØØØØØØØñ
ð ØØØØØØØØñ
ñÐ ð80+÷3ñ 3á&ˆ	�5˜& $ð ‘	˜% Ó&©	°&¸$Ó(?Ð@Ñ@õ3€
ñj Ñ
O¸:×;LÑ;LÓ;NÔ
OÔOÐ OÐOà˜tÑ$Ð Ùñ AØ.?ôAó A€ˆvÑ ð
 Ð óñ( Ð%Ð0BÔCñGó DðGñ Ø&Ø&ô(ñ Ø&ØÐ#>ô@ñ/ó@ó(ð/ñ& Ø<Ø ;ô0ñ1ó0ð1ð, Ð òò&ñD Ð%Ó&ñ@ó 'ð@ñ
 Ð(Ó)ñó *ðñ" �7ÓÙÐ%Ó&ÙÐ%Ó&ÙÐ'Ó(ÙÐ(Ó)ÙÐ&Ó'ÙÐ&Ó'Ù�?Ó#ÙÐ*Ó+ñ6ó ,ó $ó (ó (ó *ó )ó 'ó 'ó ð6ñ Ð(Ó)ÙÐ$Ó%ñ8ó &ó *ð8ñ Ð%Ó&ñAó 'ðAñ
 Ð#Ó$Ù�6ÓÙ�6ÓñSó ó ó %ðSñ
 �=Ó!Ù�>Ó"ñ2ó #ó "ð2ñ
 �5ÓÙ�7ÓÙ�6ÓÙ�8ÓÙ�<Ó Ù�>Ó"Ù�?Ó#Ù�=Ó!Ù�8ÓÙ�7ÓÙ�<Ó Ù�=Ó!Ù�;ÓÙ�<Ó ÙÐ#Ó$ÙÐ$Ó%Ù�;ÓÙ�<Ó ÙÐ#Ó$ÙÐ$Ó%Ù�=Ó!Ù�?Ó#ÙÐ#Ó$Ù�>Ó"Ù�=Ó!ÙÐ)Ó*Ù�<Ó ÙÐ*Ó+ÙÐ.Ó/ò>ó 0ó ,ó !ó +ó "ó #ó %ó $ó "ó &ó %ó !ó  ó &ó %ó !ó  ó "ó !ó ó ó "ó $ó #ó !ó ó ó ó ð:>ñ �<Ó Ù�=Ó!Ù�;ÓÙ�>Ó"ñ&ó #ó  ó "ó !ð&ñ Ð#Ó$ñ8ó %ð8ñ Ð$Ó%ñó &ðñ Ð&Ó'ñ2ó (ð2ñ Ð%Ó&ÙÐ'Ó(ÙÐ&Ó'ÙÐ(Ó)ÙÐ&Ó'Ù�?Ó#ñ8ó $ó (ó *ó (ó )ó 'ð8ñ" Ð'Ó(ÙÐ&Ó'ñ$ó (ó )ð$ñ, Ð'Ó(ÙÐ&Ó'ñ"ó (ó )ð"ñ$ Ð(Ó)ÙÐ'Ó(ñ"ó )ó *ð"ñ Ð(Ó)ÙÐ'Ó(ñ8ó )ó *ð8ñ
 �>Ó"ÙÐ#Ó$ñ8ó %ó #ð8ñ
 Ð+Ó,ÙÐ,Ó-ÙÐ.Ó/ÙÐ/Ó0ñAó 1ó 0ó .ó -ðAñ
 �<Ó Ù�9ÓñFó ó !ðFò
 "ñF Ð#Ó$ñ(ó %ð(ñ
 �<Ó ñ"ó !ð"ñ �9Óñ(ó ð(ñ �9Óñó ðñ$ �7Óñó ðñ �;Óñ(ó  ð(ñ> �=Ó!ñó "ðò .ò ñ4 Ð*Ó+ÙÐ'Ó(ñ0ó )ó ,ð0ñ Ð&Ó'ÙÐ#Ó$ñ ó %ó (ð ñ" �=Ó!ñó "ðñ �8Óñó ðñ �6Óñó ðñ �6Óñó ðñ �:ÓñKó ðKñ
 �;Óñó  ðñ Ð#Ó$ñ<ó %ð<ñ& �>Ó"ñTó #ñTùóqùõd3s   ÁWÂW
