§
    ¥”j''  ã                   ó¤   — 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  ed
d¦  «        Z edd¦  «        Zd„ Z	 	 dd„Zd„ Zd„ ZdS )z$Manage background position and size.é    )Ú
namedtuple)Úcycle)Úparse_coloré   )Úboxesé   )Úreplaced)Ú
percentageÚresolve_radii_percentagesÚ
Backgroundzcolor, layers, styleÚBackgroundLayerzXimage, size, position, repeat, unbounded, painting_area, positioning_area, clipped_boxesc                 óÚ  — |dk    rN|                       ¦   «         |                      ¦   «         |                      ¦   «         |                      ¦   «         fS |dk    rN|                      ¦   «         |                      ¦   «         |                      ¦   «         |                      ¦   «         fS |dk    s
J |¦   «         ‚|                      ¦   «         |  	                    ¦   «         | j
        | j        fS )Nú
border-boxúpadding-boxúcontent-box)Úborder_box_xÚborder_box_yÚborder_widthÚborder_heightÚpadding_box_xÚpadding_box_yÚpadding_widthÚpadding_heightÚcontent_box_xÚcontent_box_yÚwidthÚheight)ÚboxÚwhich_rectangles     úk/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/weasyprint/layout/background.pyÚbox_rectangler!      sí   € Ø˜,Ò&Ð&à×ÒÑÔ × 0Ò 0Ñ 2Ô 2Ø×ÒÑÔ × 1Ò 1Ñ 3Ô 3ð5ð 	5ð 
˜MÒ	)Ð	)à×ÒÑÔ ×!2Ò!2Ñ!4Ô!4Ø×ÒÑÔ ×!3Ò!3Ñ!5Ô!5ð7ð 	7ð  -Ò/Ð/Ð/°Ñ/Ô/Ð/à×ÒÑÔ ×!2Ò!2Ñ!4Ô!4ØŒI�s”zð#ð 	#ó    TNc                 óL  ‡ ‡‡‡‡— ddl m} t          ‰¦  «         |r(‰                     ¦   «         D ]}t	          ‰ |‰¦  «         Œ‰€‰j        Š‰d         d         dk    r*‰d         \  }}|dk    r ‰|¬¦  «        ‰_        n|‰_        ‰d	         d         dk    r*‰d	         \  }}|dk    r ‰|¬¦  «        ‰_        n|‰_        ‰d
         dk    rg }	t          d¦  «        }
n)‰d         Šˆˆfd„‰d         D ¦   «         }	 |‰d¦  «        }
|
j	        dk    rt          |	¦  «        s‰‰ k    r	d‰_        dS ˆˆ ˆfd„t          |	gt          t          ‰d         ‰d         ‰d         ‰d         ‰d         ‰d         g¦  «        ¢R Ž D ¦   «         }t          |
|‰¦  «        ‰_        dS )z%Fetch and position background images.r   )Ú	get_colorNÚborder_image_sourcer   ÚnoneÚurl)r'   Úmask_border_sourceÚ
visibilityÚhiddenÚtransparentÚimage_orientationc                 ó@   •— g | ]\  }}|d k    r ‰|‰¬¦  «        n|‘ŒS )r'   )r'   Úorientation© )Ú.0Útype_ÚvalueÚget_image_from_urir.   s      €€r    ú
<listcomp>z*layout_box_backgrounds.<locals>.<listcomp>G   sP   ø€ ð ;ð ;ð ;ñ ��uð ˜Š~ˆ~ð Ð 5°kÐBÑBÔBÐBØ#(ð;ð ;ð ;r"   Úbackground_imageÚbackground_colorc                 ó:   •— g | ]}t          ‰‰‰d          g|¢R Ž ‘ŒS )Úimage_resolution)Úlayout_background_layer)r0   Úlayerr   ÚpageÚstyles     €€€r    r4   z*layout_box_backgrounds.<locals>.<listcomp>R   sC   ø€ ð /ð /ð /àõ 	   T¨5Ð1CÔ+DÐMÀuÐMÐMÐMð/ð /ð /r"   Úbackground_sizeÚbackground_clipÚbackground_repeatÚbackground_originÚbackground_positionÚbackground_attachment)Ú
draw.colorr$   r   Úall_childrenÚlayout_box_backgroundsr<   Úborder_imageÚmask_border_imager   ÚalphaÚanyÚ
backgroundÚzipÚmapr   r   )r;   r   r3   Úlayout_childrenr<   r$   Úchildr1   r2   ÚimagesÚcolorÚlayersr.   s   ``` `       @r    rE   rE   #   sb  øøøøø€ ð 'Ð&Ð&Ð&Ð&Ð&õ ˜cÑ"Ô"Ð"àð DØ×%Ò%Ñ'Ô'ð 	Dð 	DˆEÝ" 4¨Ð0BÑCÔCÐCÐCà€}Ø”	ˆð Ð"Ô# AÔ&¨&Ò0Ð0ØÐ2Ô3‰ˆˆuØ�EŠ>ˆ>Ø1Ð1°eÐ<Ñ<Ô<ˆCÔÐà$ˆCÔàÐ!Ô" 1Ô%¨Ò/Ð/ØÐ1Ô2‰ˆˆuØ�EŠ>ˆ>Ø$6Ð$6¸5Ð$AÑ$AÔ$AˆCÔ!Ð!à$)ˆCÔ!àˆ\Ô˜hÒ&Ð&ØˆÝ˜MÑ*Ô*ˆˆàÐ/Ô0ˆð;ð ;ð ;ð ;ð ;ð !&Ð&8Ô 9ð;ñ ;ô ;ˆð �	˜%Ð!3Ñ4Ô4ˆà„{�aÒÐ¥ F¡¤ÐØ�$Š;ˆ;Ø!ˆCŒNØˆFð/ð /ð /ð /ð /ð /å˜ð .¥#¥eØÐ#Ô$ØÐ#Ô$ØÐ%Ô&ØÐ%Ô&ØÐ'Ô(ØÐ)Ô*ð.,ñ #-ô #-ð .ð .ð .ð/ñ /ô /€Fõ    v¨uÑ5Ô5€C„N€N€Nr"   c
                 óf	  — g }
d}| |u r|j         }g }
�nPt          | t          j        ¦  «        r“g }
d}| j        D ]I}|j        r@|
d„ |j        D ¦   «         z  }
t          |t          d„ |j        D ¦   «         ¦  «        ¦  «        }ŒJ|                      ¦   «         |                      ¦   «         |                      ¦   «         |g}�n£t          | t          j	        ¦  «        rt| j        rkd„ | j        D ¦   «         }
t          d„ | j        D ¦   «         ¦  «        }|                      ¦   «         |                      ¦   «         |                      ¦   «         |g}�nt          | t          j
        t          j        f¦  «        r‚|                      ¦   «         }|rkd„ |D ¦   «         }
t          d„ |D ¦   «         ¦  «        }t          d	„ |D ¦   «         ¦  «        }||                      ¦   «         ||z
  |                      ¦   «         g}nmt          | |¦  «        }|d
k    r|                      ¦   «         g}
nA|dk    r|                      ¦   «         g}
n%|dk    s
J |¦   «         ‚|                      ¦   «         g}
|�%|                     || j        d         ¦  «        \  }}}|�d||fv rt+          d d|dddd|
¬¦  «        S |	dk    rVt          | t          j        ¦  «        r+dd|                      ¦   «         |                      ¦   «         f}n!t          |d¦  «        }nt          | |¦  «        }|\  }}}}|\  }}}}|dk    rt3          j        |||¦  «        \  }}nj|dk    rt3          j        |||¦  «        \  }}nJ|\  } }!t3          j        |||t;          | | j        |¦  «        t;          |!| j        |¦  «        ||¦  «        \  }}|\  }"}#}$}%||z
  }&||z
  }'t;          |#| j        |&¦  «        }#t;          |%| j        |'¦  «        }%|"dk    r|&|#z
  }#|$dk    r|'|%z
  }%|\  }(})|(dk    rCt          dt=          ||z  ¦  «        ¦  «        }*||*z  }+d}#|)dk    r|d         dk    r||+|z  z  }|+}|)dk    rCt          dt=          ||z  ¦  «        ¦  «        }*||*z  },d}%|(dk    r|d         dk    r||,|z  z  }|,}t+          |||f|#|%f|d|||
¬¦  «        S )N)r   r   r   r   r   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r/   ©Úrounded_border_box©r0   Úcells     r    r4   z+layout_background_layer.<locals>.<listcomp>o   s7   € ð "Hð "Hð "HØ26�D×+Ò+Ñ-Ô-ð"Hð "Hð "Hr"   c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S ©N©r   rV   s     r    ú	<genexpr>z*layout_background_layer.<locals>.<genexpr>q   sG   è è € ð 5Cð 5CØ-1�D×&Ò&Ñ(Ô(ð5Cð 5Cð 5Cð 5Cð 5Cð 5Cr"   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r/   rT   rV   s     r    r4   z+layout_background_layer.<locals>.<listcomp>x   s7   € ð Dð Dð DØ.2�×'Ò'Ñ)Ô)ðDð Dð Dr"   c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S rY   rZ   rV   s     r    r[   z*layout_background_layer.<locals>.<genexpr>z   s.   è è € ÐGÐG°$˜×+Ò+Ñ-Ô-ÐGÐGÐGÐGÐGÐGr"   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r/   rT   rV   s     r    r4   z+layout_background_layer.<locals>.<listcomp>�   s$   € ÐIÐIÐI¸4˜T×4Ò4Ñ6Ô6ÐIÐIÐIr"   c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S rY   )r   rV   s     r    r[   z*layout_background_layer.<locals>.<genexpr>‚   s.   è è € Ð>Ð>°˜×)Ò)Ñ+Ô+Ð>Ð>Ð>Ð>Ð>Ð>r"   c              3   óh   K  — | ]-}|                      ¦   «         |                     ¦   «         z   V — Œ.d S rY   )r   r   rV   s     r    r[   z*layout_background_layer.<locals>.<genexpr>ƒ   sX   è è € ð Mð MØ>B�×!Ò!Ñ#Ô# d×&7Ò&7Ñ&9Ô&9Ñ9ðMð Mð Mð Mð Mð Mr"   r   r   r   Ú	font_sizeFÚunused)ÚimageÚ	unboundedÚpainting_areaÚsizeÚpositionÚrepeatÚpositioning_areaÚclipped_boxesÚfixedÚcoverÚcontainÚrightÚbottomÚroundr   Úauto)rc   rf   rg   rh   rd   re   ri   rj   )Ú
bleed_areaÚ
isinstancer   ÚTableRowGroupBoxÚchildrenÚmaxr   r   r   ÚTableRowBoxÚTableColumnGroupBoxÚTableColumnBoxÚ	get_cellsÚminr   r!   rU   Úrounded_padding_boxÚrounded_content_boxÚget_intrinsic_sizer<   r   ÚPageBoxÚmargin_widthÚmargin_heightr	   Úcover_constraint_image_sizingÚcontain_constraint_image_sizingÚdefault_image_sizingr
   rp   )-r   r;   Ú
resolutionrc   rf   Úcliprh   Úoriginrg   Ú
attachmentrj   re   Útotal_heightÚrowr   ÚcellsÚmin_xÚmax_xÚintrinsic_widthÚintrinsic_heightÚratiori   Úpositioning_xÚpositioning_yÚpositioning_widthÚpositioning_heightÚ
painting_xÚ
painting_yÚpainting_widthÚpainting_heightÚimage_widthÚimage_heightÚ
size_widthÚsize_heightÚorigin_xÚ
position_xÚorigin_yÚ
position_yÚref_xÚref_yÚrepeat_xÚrepeat_yÚ	n_repeatsÚ	new_widthÚ
new_heights-                                                r    r9   r9   ^   s   € ð €MØ€MØ
ˆd€{€{ð œˆØˆ‰Ý	�C�Ô/Ñ	0Ô	0ð %8ØˆØˆØ”<ð 	Dð 	DˆCØŒ|ð DØð "Hð "HØ:=¼,ð"Hñ "Hô "Hñ H�å" <µð 5Cð 5CØ58´\ð5Cñ 5Cô 5Cñ 2Cô 2Cñ  Dô  D�øð ×ÒÑÔ × 0Ò 0Ñ 2Ô 2Ø×ÒÑÔ ð.ˆ‰õ 
�C�Ô*Ñ	+Ô	+ð 8ØŒ<ð 	,ðDð DØ69´lðDñ Dô DˆMåÐGÐG¸#¼,ÐGÑGÔGÑGÔGˆFà× Ò Ñ"Ô" C×$4Ò$4Ñ$6Ô$6Ø× Ò Ñ"Ô" Fð,ˆMùõ 
�C�%Ô3µUÔ5IÐJÑ	KÔ	Kð 8Ø—’‘”ˆØð 	OØIÐIÀ5ÐIÑIÔIˆMÝÐ>Ð>¸Ð>Ñ>Ô>Ñ>Ô>ˆEÝð Mð MØFKðMñ Mô Mñ Mô MˆEð �s×'Ò'Ñ)Ô)¨5°5©=¸#×:KÒ:KÑ:MÔ:MðOˆMøõ & c¨4Ñ0Ô0ˆØ�<ÒÐØ ×3Ò3Ñ5Ô5Ð6ˆMˆMØ�]Ò"Ð"Ø ×4Ò4Ñ6Ô6Ð7ˆMˆMà˜=Ò(Ð(Ð(¨$Ñ(Ô(Ð(Ø ×4Ò4Ñ6Ô6Ð7ˆMàÐØ38×3KÒ3KØ˜œ	 +Ô.ñ40ô 40Ñ0ˆÐ)¨5à€}˜˜oÐ/?Ð@Ð@Ð@ÝØ %°}Ø H°XØ%°]ðDñ Dô Dð 	Dð
 �WÒÐå�c�5œ=Ñ)Ô)ð 	Bð !" 1 c×&6Ò&6Ñ&8Ô&8¸#×:KÒ:KÑ:MÔ:MÐNÐÐå,¨T°=ÑAÔAÐÐå(¨¨fÑ5Ô5Ðð 	ñ H€M�=Ð"3Ð5Gà>KÑ;€J�
˜N¨Oàˆw‚€Ý$,Ô$JØÐ1°5ñ%:ô %:Ñ!ˆ�\�\à	�Ò	Ð	Ý$,Ô$LØÐ1°5ñ%:ô %:Ñ!ˆ�\�\ð #'Ñˆ
�KÝ$,Ô$AØÐ-¨uÝ�z 3¤9Ð.?Ñ@Ô@Ý�{ C¤IÐ/AÑBÔBØÐ1ñ	%3ô %3Ñ!ˆ�\ð 2:Ñ.€Hˆj˜( JØ Ñ+€EØ Ñ-€EÝ˜J¨¬	°5Ñ9Ô9€JÝ˜J¨¬	°5Ñ9Ô9€JØ�7ÒÐØ˜ZÑ'ˆ
Ø�8ÒÐØ˜ZÑ'ˆ
àÑ€Hˆhà�7ÒÐÝ˜�5Ð!2°[Ñ!@ÑAÔAÑBÔBˆ	Ø%¨	Ñ1ˆ	Øˆ
Ø�wÒÐ 4¨¤7¨fÒ#4Ð#4Ø˜I¨Ñ3Ñ3ˆLØˆØ�7ÒÐÝ˜�5Ð!3°lÑ!BÑCÔCÑDÔDˆ	Ø'¨)Ñ3ˆ
Øˆ
Ø�wÒÐ 4¨¤7¨fÒ#4Ð#4Ø˜:¨Ñ4Ñ4ˆKØ!ˆåØØ˜<Ð(Ø˜jÐ)ØØØ#Ø)Ø#ð%ñ %ô %ð %r"   c                 ó<  ‡— t          | | |¦  «         t          | j        d         t          j        ¦  «        rJ ‚| j        d         }|}|j                             ¦   «         dk    r2|j        €+|j        D ]#}|j                             ¦   «         dk    r|} nŒ$|j        rvt          | d¦  «        Š| j        }t          | | |d|j	        ¬¦  «         | j         
                    ˆfd„| j        j        D ¦   «         ¬	¦  «        | _        || _        d|_        dS d| _        dS )
zøLayout backgrounds on the page box and on its children.

    This function takes care of the canvas background, taken from the root
    elememt or a <body> child of the root element.

    See https://www.w3.org/TR/CSS21/colors.html#background

    r   ÚhtmlNÚbodyr   F)rM   r<   c                 ó<   •— g | ]}|                      ‰¬ ¦  «        ‘ŒS ))re   )Ú_replace)r0   r:   re   s     €r    r4   z&layout_backgrounds.<locals>.<listcomp>ù   s7   ø€ ð 5ð 5ð 5àð —’¨]�Ñ;Ô;ð5ð 5ð 5r"   )rQ   )rE   rs   ru   r   Ú	MarginBoxÚelement_tagÚlowerrJ   r!   r<   r¬   rQ   Úcanvas_background)r;   r3   Úroot_boxÚ
chosen_boxrN   Úoriginal_backgroundre   s         @r    Úlayout_backgroundsr´   Þ   sa  ø€ õ ˜4 Ð'9Ñ:Ô:Ð:Ý˜$œ-¨Ô*­E¬OÑ<Ô<Ð<Ð<Ð<ØŒ}˜QÔ€HØ€JØÔ×!Ò!Ñ#Ô# vÒ-Ð-°(Ô2EÐ2MØÔ&ð 	ð 	ˆEØÔ ×&Ò&Ñ(Ô(¨FÒ2Ð2Ø"�
Ø�ð 3ð Ôð &Ý% d¨LÑ9Ô9ˆØ"œoÐÝØ�$Ð*¸EØÔ"ð	$ñ 	$ô 	$ð 	$ð "&¤×!9Ò!9ð5ð 5ð 5ð 5à!œ_Ô3ð5ñ 5ô 5ð ":ñ "6ô "6ˆÔð
 .ˆŒØ $ˆ
ÔÐÐà!%ˆÔÐÐr"   )TN)Ú__doc__Úcollectionsr   Ú	itertoolsr   Útinycss2.color5r   Úformatting_structurer   Ú r	   Úpercentr
   r   r   r   r!   rE   r9   r´   r/   r"   r    ú<module>r¼      s  ðØ *Ð *à "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð à 'Ð 'Ð 'Ð 'Ð 'Ð 'à (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :àˆZ˜Ð&<Ñ=Ô=€
Ø�*Øð5ñ6ô 6€ð#ð #ð #ð  KOØ!%ð86ð 86ð 86ð 86ðv}%ð }%ð }%ð@!&ð !&ð !&ð !&ð !&r"   