§
    ¥”j»X  ã                   óä   — d Z ddl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 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 ddlmZ d„ Zd„ Zdd„Zd„ Zd„ Z d„ Z!d„ Z"	 	 dd„Z#d„ Z$dS )z@Take an "after layout" box tree and draw it onto a pydyf stream.é    N)Úfloor)ÚElementTreeé   )Úboxes)ÚSVGImage)Úreplaced)ÚBackgroundLayer)ÚMatrix)ÚStackingContexté   )Údraw_borderÚ	draw_lineÚdraw_outlineÚrounded_boxÚset_mask_border)Ústyled_color)Ú	draw_textc                 ó  — | j         d         }t          j        | ¦  «        }t          ||j        j        d| j        |¬¦  «         t          || ¦  «         t          || j        d¬¦  «         t          || ¦  «         t          ||¦  «         dS )zDraw the given PageBox.ÚmarksF)Úclip_boxÚbleedr   )r   N)Ústyler   Ú	from_pageÚdraw_backgroundÚboxÚ
backgroundr   r   Úcanvas_backgroundr   Údraw_stacking_context)ÚpageÚstreamr   Ústacking_contexts       úg/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/weasyprint/draw/__init__.pyÚ	draw_pager#      sœ   € àŒJ�wÔ€EÝ&Ô0°Ñ6Ô6ÐÝØÐ Ô$Ô/¸%ÀtÄzØðñ ô ð õ �F˜DÑ!Ô!Ð!Ý�F˜DÔ2¸UÐCÑCÔCÐCÝ�˜ÑÔÐÝ˜&Ð"2Ñ3Ô3Ð3Ð3Ð3ó    c                 óŒ	  — |                       ¦   «         5  |j        }|j        re|j        j        d         dk    rOt          | |j                             ¦   «         ¦  «         |                      ¦   «          |                      ¦   «          | 	                    ¦   «         rÓ|j        d         rÆ|j        d         \  }}}}|dk    rd}|dk    rd}|dk    r| 
                    ¦   «         }|dk    r|                     ¦   «         }|                      |                     ¦   «         |z   |                     ¦   «         |z   ||z
  ||z
  ¦  «         |                      ¦   «          |                      ¦   «          |j        d         dk     r| } | j        | j        Ž } |j        r/|j        j        r | j        |j        j        Ž  n	 ddd¦  «         dS t+          |t,          j        t,          j        t,          j        t,          j        t,          j        t,          j        t,          j        f¦  «        r5t=          | |¦  «         t?          | |j         ¦  «         tC          | |¦  «         |                       ¦   «         5  |j        d         dk    ot+          |t,          j"        ¦  «         }|rJt          | |                     ¦   «         ¦  «         |                      ¦   «          |                      ¦   «          |j#        D ]}	tI          | |	¦  «         Œ|j%        D ]b}
t=          | |
¦  «         t+          |
t,          j&        ¦  «        rtO          | |
¦  «         Œ=t?          | |
j         ¦  «         tC          | |
¦  «         Œc|j(        D ]}	tI          | |	¦  «         Œt+          |t,          j)        ¦  «        rtU          | |j        |¦  «         tW          |j        | ||j,        i¦  «         |j-        D ]}	tI          | |	¦  «         Œ|j.        D ]}	tI          | |	¦  «         Œ	 ddd¦  «         n# 1 swxY w Y   t_          | |¦  «         |j        d         dk     rm| j0        }|} |                       ¦   «         5  |  1                    |j        d         d	d	¬
¦  «         |  2                    |¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )z*Draw a ``stacking_context`` on ``stream``.ÚoverflowÚvisibleÚclipÚautor   Úopacityr   NT)ÚstrokeÚfill)3Ústackedr   Úis_for_root_elementr   r   r   Úrounded_padding_boxr(   ÚendÚis_absolutely_positionedÚborder_heightÚborder_widthÚ	rectangleÚborder_box_xÚborder_box_yÚ	add_groupÚpage_rectangleÚtransformation_matrixÚdeterminantÚ	transformÚvaluesÚ
isinstancer   ÚBlockBoxÚ	MarginBoxÚInlineBlockBoxÚTableCellBoxÚFlexContainerBoxÚGridContainerBoxÚReplacedBoxr   r   r   r   ÚPageBoxÚnegative_z_contextsr   Úblock_level_boxesÚTableBoxÚ
draw_tableÚfloat_contextsÚ	InlineBoxÚdraw_inline_levelÚdraw_block_levelÚblocks_and_cellsÚzero_z_contextsÚpositive_z_contextsr   ÚidÚ	set_alphaÚdraw_x_object)r    r!   r   ÚtopÚrightÚbottomÚleftÚoriginal_streamr(   Úchild_contextÚblockÚgroup_ids               r"   r   r      sò  € ð 
�ŠÑ	Ô	ð f/ð f/ØÔ"ˆð Ô"ð 	Ø Ô%Ô+¨JÔ7¸9ÒDÐDÝ˜Ð 0Ô 5× IÒ IÑ KÔ KÑLÔLÐLØ�KŠK‰MŒMˆMØ�JŠJ‰LŒLˆLà×'Ò'Ñ)Ô)ð 	¨c¬i¸Ô.?ð 	Ø'*¤y°Ô'8Ñ$ˆC�˜ Ø�fŠ}ˆ}Ø�Ø˜ŠˆØ�Ø˜ÒÐØ×*Ò*Ñ,Ô,�Ø�vŠ~ˆ~Ø×'Ò'Ñ)Ô)�Ø×ÒØ× Ò Ñ"Ô" UÑ*¨C×,<Ò,<Ñ,>Ô,>ÀÑ,DØ�u‘˜f s™lñ,ô ,ð ,ð �KŠK‰MŒMˆMØ�JŠJ‰LŒLˆLàŒ9�YÔ !Ò#Ð#Ø$ˆOØ%�VÔ% vÔ'<Ð=ˆFàÔ$ð 	ØÔ(Ô4ð Ø �Ô  #Ô";Ô"BÐCÐCÐCàðEf/ð f/ð f/ñ f/ô f/ð f/ð f/ð f/õN �c�EœN­E¬O½UÔ=QÝ!Ô.µÔ0FÝ!Ô2µEÔ4EðGñ Hô Hð 	%õ ˜F CÑ(Ô(Ð(å˜F C¤NÑ3Ô3Ð3Ý˜ Ñ$Ô$Ð$à�^Š^ÑÔð -	=ð -	=ð ”	˜*Ô%¨Ò2ð 3Ý˜s¥E¤MÑ2Ô2Ð2ð ð ð õ ˜F C×$;Ò$;Ñ$=Ô$=Ñ>Ô>Ð>Ø—’‘”�Ø—
’
‘”�ð "2Ô!Eð =ð =�Ý% f¨mÑ<Ô<Ð<Ð<ð *Ô;ð /ð /�Ý ¨Ñ.Ô.Ð.å˜e¥U¤^Ñ4Ô4ð /Ý˜v uÑ-Ô-Ð-Ð-å# F¨EÔ,<Ñ=Ô=Ð=Ý ¨Ñ.Ô.Ð.Ð.ð "2Ô!@ð =ð =�Ý% f¨mÑ<Ô<Ð<Ð<õ ˜#�uœÑ/Ô/ð FÝ! &Ð*:Ô*?ÀÑEÔEÐEõ Ø Ô% v°Ð5EÔ5VÐ/WñYô Yð Yð "2Ô!Að =ð =�Ý% f¨mÑ<Ô<Ð<Ð<ð "2Ô!Eð =ð =�Ý% f¨mÑ<Ô<Ð<Ð<ð=ðY-	=ð -	=ð -	=ñ -	=ô -	=ð -	=ð -	=ð -	=ð -	=ð -	=ð -	=øøøð -	=ð -	=ð -	=ð -	=õ` 	�V˜SÑ!Ô!Ð!àŒ9�YÔ !Ò#Ð#Ø”yˆHØ$ˆFØ—’Ñ!Ô!ð /ð /Ø× Ò  ¤¨9Ô!5¸dÈÐ ÑNÔNÐNØ×$Ò$ XÑ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ðIf/ð f/ð f/ñ f/ô f/ð f/ð f/ð f/ð f/ð f/ð f/ð f/øøøð f/ð f/ð f/ð f/ð f/ð f/sc   •F&R9ÇB&R9É.FPÐR9ÐP	ÐR9ÐP	ÐAR9Ñ9R!ÒR9Ò!R%	Ò%R9Ò(R%	Ò)R9Ò9R=Ó R=T© c                 óN	  — |€dS |                       ¦   «         5  |rM|j        d         j        D ]}t          | |¦  «         Œ|                      ¦   «          |                      ¦   «          |j        j        dk    rÔ|                      ¦   «         5  |                       ¦   «         5  |  	                    |j        ¦  «         |j        d         j
        } | j        |Ž  |                      ¦   «          |                      ¦   «           | j        |Ž  |                      ¦   «          ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   |�r|�r|j        d         j
        \  }}}	}
d„ |                     ¦   «         D ¦   «         }d|
› d|	› d�}d|v rò|d	                     g d
‘|d         › ‘d‘|d         › ‘d‘|d         › ‘d‘|d         › ‘d‘|	› ‘d‘|d         › ‘d‘|d         › ‘d‘|	› ‘d‘|
› ‘d‘|d         › ‘d‘|d         › ‘d‘|
› ‘d‘|d         › ‘d‘|d         › ‘d‘|d         › ‘d‘|d         › ‘d‘|	› ‘d‘|
› ‘d‘|d         › ‘d‘|d         › ‘d‘|
› ‘d‘|d         › ‘d‘|d         › ‘d‘|	› ‘d‘¦  «        z  }d|v �r^|d	                     g d‘|d         › ‘d‘|	› ‘d‘|d         › ‘d‘|	› ‘d‘|d         › ‘d‘|d         › ‘d‘|d         › ‘d ‘|d         › ‘d!‘|d         › ‘d"‘|
› ‘d#‘|	› ‘d$‘|d         › ‘d%‘|d         › ‘d$‘|d         › ‘d&‘|d         › ‘d'‘|d         › ‘d"‘|
› ‘d(‘|	› ‘d)‘|d         › ‘d*‘|d         › ‘d‘|
› ‘d+‘|d         › ‘d$‘|d         › ‘d,‘|d         › ‘d-‘|d         › ‘d.‘|
› ‘d/‘|d         › ‘d0‘|	› ‘d1‘|d         › ‘d‘|
› ‘d%‘|d         › ‘d$‘|d         › ‘d,‘|d         › ‘d2‘|d         › ‘d0‘|	› ‘d3‘|
› ‘d4‘¦  «        z  }|d5z  }t          j        |¦  «        }t#          |ddd¦  «        }|	|
f}||f}d6}d7}||z   }dd|	|
f}g }t%          ||||||||¦  «        }|j                             d|¦  «         t)          |j        ¦  «        D ]}t+          | ||j        ¦  «         Œ	 ddd¦  «         dS # 1 swxY w Y   dS )8zÕDraw the background color and image to a ``pdf.stream.Stream``.

    If ``clip_box`` is set to ``False``, the background is not clipped to the
    border box of the background, but only to the painting area.

    Néÿÿÿÿr   c                 ó    — i | ]\  }}||d z  “ŒS )g      à?r\   )Ú.0ÚkeyÚvalues      r"   ú
<dictcomp>z#draw_background.<locals>.<dictcomp>ª   s"   € ÐKÐKÐK©z¨s°E˜#˜u s™{ÐKÐKÐKr$   z
              <svg height="z	" width="z‹"
                   fill="transparent" stroke="black" stroke-width="1"
                   xmlns="http://www.w3.org/2000/svg">
            ÚcropÚ z
                  <path d="M0,rT   z hrW   z#" />
                  <path d="M0,rU   z/"
                        transform="translate(z2,0) scale(-1,1)" />
                  <path d="M0,rV   ú,z1) scale(-1,-1)" />
                  <path d="M0,z1"
                        transform="translate(0,z.) scale(1,-1)" />
                  <path d="Mz,0 vz!" />
                  <path d="Mz/) scale(-1,-1)" />
                  <path d="Mz$,0) scale(-1,1)" />
                Úcrossz
                  <circle r="z7" transform="scale(0.5)
                     translate(zI) scale(0.5)" />
                  <path transform="scale(0.5) translate(z,0)" d="
                    M-z
                    M0,0 vz"" />
                  <circle r="z." transform="
                    translate(0,z+) scale(0.5)
                    translate(z,-z.) scale(0.5)" />
                  <path d="M-z
                    hz M0,0 v-z) scale(0.5) translate(z%,0)" />
                  <circle r="z6" transform="scale(0.5)
                    translate(z-) scale(0.5)" />
                  <path d="Mz
                    vz M0,0 hz8"
                    transform="scale(0.5) translate(0,z#)" />
                  <circle r="z," transform="
                    translate(z.,0) scale(0.5)
                    translate(-z M0,0 h-z,0) scale(0.5) translate(0,z)" />
                z</svg>)ú	no-repeatrh   T)r-   ÚlayersÚclipped_boxesr   r(   r0   ÚcolorÚalphaÚartifactÚ	set_colorÚpainting_arear4   r,   ÚitemsÚjoinr   Ú
fromstringr   r	   ÚinsertÚreversedÚdraw_background_imager   )r    Úbgr   r   r   r   ro   ÚxÚyÚwidthÚheightÚ
half_bleedÚsvgÚtreeÚimageÚsizeÚpositionÚrepeatÚ	unboundedÚpositioning_arearj   Úlayers                         r"   r   r   ‹   su
  € ð 
€zØˆà	�ŠÑ	Ô	ð V;ð V;Øð 	Ø”y ”}Ô2ð )ð )�Ý˜F CÑ(Ô(Ð(Ð(Ø�KŠK‰MŒMˆMØ�JŠJ‰LŒLˆLð Œ8Œ>˜AÒÐØ—’Ñ"Ô"ð ð  F§N¢NÑ$4Ô$4ð ð Ø× Ò  ¤Ñ*Ô*Ð*Ø "¤	¨"¤Ô ;�Ø �Ô  -Ð0Ð0Ø—’‘”�Ø—
’
‘”�Ø �Ô  -Ð0Ð0Ø—’‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ñ @	'�Uñ @	'Ø"$¤)¨B¤-Ô"=ÑˆAˆq�%˜ØKÐK¸U¿[º[¹]¼]ÐKÑKÔKˆJðØ"ðð Ø-2ðð ð ˆCð
 ˜ˆˆØð ÷ ò ð ð ð Ø$ Uœ|ðð ð ð Ø/9¸&Ô/Aðð ð ð à$ Uœ|ðð ð ð à/9¸'Ô/Bðð ð ð ð /4ðð ð ð ð  % Xœð	ð ð ð ð 3=¸WÔ2Eð	ð ð ð ð
 /4ðð ð ð ð
 7=ðð ð ð ð  % Xœðð ð ð ð 3=¸VÔ2Dðð ð ð ð 17ðð ð ð ð # 6œ]ðð ð ð ð 1;¸5Ô0Aðð ð ð ð # 7œ^ðð ð ð ð 2<¸HÔ1Eðð ð ð ð /4ðð ð ð ð 7=ðð ð ð ð # 6œ]ðð ð ð ð 1;¸8Ô0Dðð ð ð ð 17ðð ð ð ð # 7œ^ðð ð ð ð 2<¸EÔ1Bðð ð ð ð /4ðð ð ð ñ ô ñ �ð  ˜%ÐÑØð ÷ ò ð ð ð Ø(¨Ô/ðð ð ð à %ðð ð ð à(2°5Ô(9ðð ð ð ð :?ðð ð ð ð " %Ô(ð	ð ð ð ð ,6°eÔ+<ð	ð ð ð ð AFÀeÄð	ð ð ð ð
 ! œ<ðð ð ð ð )¨Ô2ðð ð ð ð "(ðð ð ð ð  %ðð ð ð ð )3°8Ô(<ðð ð ð ð )¨Ô2ðð ð ð ð 7AÀÔ6Jðð ð ð ð ˜H”oðð ð ð ð 05°X¬ðð ð ð ð "(ðð ð ð ð AFðð ð ð ð )¨Ô0ðð ð ð ð  *¨&Ô1ðð ð ð ð 5;ðð ð ð ð (¨Ô/ðð ð ð ð 4>¸fÔ3Eðð ð ð ð ˜F”mðð ð ð ð -2°&¬Mðð ð ð ð  8>ð!ð ð ð ð" )¨Ô1ð#ð ð ð ð$  %ð%ð ð ð ð& !+¨7Ô 3ð'ð ð ð ð& 7=ð'ð ð ð ð( )¨Ô1ð)ð ð ð ð( 6@ÀÔ5Hð)ð ð ð ð* ˜G”nð+ð ð ð ð* /4°G¬nð+ð ð ð ð,  %ð-ð ð ð ð, BHð-ð ð ð ñ ô ñ �ð0 �8‰OˆCÝÔ)¨#Ñ.Ô.ˆDÝ˜T 4¨¨tÑ4Ô4ˆEà˜6�?ˆDØ˜1�vˆHØ/ˆFØˆIØ$ t™OˆMØ ! 1 e¨VÐ4ÐØˆMÝ#Ø�t˜X v¨y¸-Ø  -ñ1ô 1ˆEð ŒI×Ò˜Q Ñ&Ô&Ð&å˜bœiÑ(Ô(ð 	;ð 	;ˆEÝ! &¨%°´Ñ:Ô:Ð:Ð:ð	;ðkV;ð V;ð V;ñ V;ô V;ð V;ð V;ð V;ð V;ð V;ð V;ð V;øøøð V;ð V;ð V;ð V;ð V;ð V;s\   ™A4RÂEÂ"A=D+ÄEÄ+D/Ä/EÄ2D/Ä3EÄ6RÅE	ÅRÅ	E	Å
MRÒRÒ!Rc           	      óÜ  — |j         �	d|j        v rd S |j        \  }}}}|j        \  }}}	}
|j        \  }}|j        \  }}|j        \  }}|dk    rÞ|dk    rØ|                      ¦   «         5  |j        s@|                      ||||¦  «         |  	                    ¦   «          |  
                    ¦   «           | j        | j        Ž }|                     ||z   ||z   ¬¦  «         |j                              ||||¦  «         |                      |j        ¦  «         d d d ¦  «         n# 1 swxY w Y   d S |dk    rt#          |d|z  ¦  «        }n7|dv r|}n0|dk    sJ ‚t%          |	|z  ¦  «        }|dk    r|	|z
  |dz
  z  }d}n|	}|dk    rt#          |d|z  ¦  «        }n7|dv r|}n0|dk    sJ ‚t%          |
|z  ¦  «        }|dk    r|
|z
  |dz
  z  }d}n|
}t'          ||z   ||z   ¬¦  «        }|| j        z  }|                      dd|||||¦  «        }|                     dd||¦  «        }|                      ¦   «         5  |                      ¦   «         5  |j                              ||||¦  «         |                     ¦   «         5  |                     |j        ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      d¦  «         |                      |j        ¦  «         |j        r+| j        \  }}}}|                      ||||z
  ||z
  ¦  «         n|                      ||||¦  «         |                      ¦   «          d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )	Nr   rh   ©ÚeÚfr   )r�   ÚroundÚspacer   ÚPattern)r~   r   ro   rƒ   r€   r�   rm   r‚   r4   r(   r0   r7   r8   r;   ÚdrawrS   rQ   Úmaxr   r
   ÚctmÚadd_patternr-   Úset_color_spaceÚset_color_specialr,   )r    r„   r   Ú
painting_xÚ
painting_yÚpainting_widthÚpainting_heightÚpositioning_xÚpositioning_yÚpositioning_widthÚpositioning_heightÚ
position_xÚ
position_yÚrepeat_xÚrepeat_yÚimage_widthÚimage_heightÚgroupÚrepeat_widthÚ	n_repeatsÚrepeat_heightÚmatrixÚpatternÚx1Úy1Úx2Úy2s                              r"   ru   ru   î   s  € Ø„{Ð˜a 5¤:˜o˜oØˆà>CÔ>QÑ;€J�
˜N¨OàÔñ H€M�=Ð"3Ð5Gà"œ^Ñ€J�
ØœÑ€HˆhØ %¤
Ñ€K�à�;ÒÐ 8¨{Ò#:Ð#:Ø�_Š_ÑÔð 	+ð 	+ð ”?ð Ø× Ò Ø 
¨N¸OñMô Mð Mà—’‘”�Ø—
’
‘”�ð %�FÔ$ fÔ&;Ð<ˆEØ�OŠO˜j¨=Ñ8¸JÈÑ<VˆOÑWÔWÐWØŒK×Ò˜U K°¸uÑEÔEÐEØ× Ò  ¤Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	ˆà�;ÒÐõ
 ˜;¨¨NÑ(:Ñ;Ô;ˆˆØ	Ð(Ð	(Ð	(à"ˆˆà˜7Ò"Ð"Ð"Ð"ÝÐ+¨kÑ9Ñ:Ô:ˆ	Ø˜Š>ˆ>ð
 .°Ñ;À	ÈAÁÑNˆLØˆJˆJð -ˆLð �;ÒÐÝ˜L¨!¨oÑ*=Ñ>Ô>ˆˆØ	Ð(Ð	(Ð	(Ø$ˆˆà˜7Ò"Ð"Ð"Ð"ÝÐ,¨|Ñ;Ñ<Ô<ˆ	Ø˜Š>ˆ>Ø/°,Ñ>À9ÈqÁ=ÑQˆMØˆJˆJà.ˆMå�j =Ñ0°JÀÑ4NÐOÑOÔO€FØ
ˆfŒjÑ€FØ× Ò Ø	ˆ1ˆk˜<¨°}ÀfñNô N€Gà×Ò˜a  L°-Ñ@Ô@€Eà	�ŠÑ	Ô	ð ð ˜FŸNšNÑ,Ô,ð ð ØŒ×Ò˜ ¨\¸5ÑAÔAÐAØ×ÒÑÔð 	,ð 	,Ø×!Ò! %¤(Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,à×Ò˜yÑ)Ô)Ð)Ø× Ò  ¤Ñ,Ô,Ð,ØŒ?ð 	VØ#Ô2‰NˆB��B˜Ø×Ò˜R  R¨"¡W¨b°2©gÑ6Ô6Ð6Ð6à×Ò˜Z¨°^À_ÑUÔUÐUØ�Š‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð sn   Á)B+D Ä D$Ä'D$È7M!É2M	É>J%ÊM	Ê%J)Ê)M	Ê,J)Ê-BM	Ì=M!Í	M	ÍM!ÍM	ÍM!Í!M%Í(M%c                 ó¬  — t          | |j        ¦  «         |j        D ]6}t          | |j        ¦  «         |j        D ]}t          | |j        ¦  «         ŒŒ7|j        D ]�}t          | |j        ¦  «         |j        D ]b}t          | |j        ¦  «         |j        D ]C}|j        d         dk    p|j        d         dk    p|j         }|rt          | |j        ¦  «         ŒDŒcŒ‚|j        d         dk    rt          | |¦  «        S t          | |¦  «         |j        D ]>}|j        D ]4}|j        D ]*}|j        d         dk    s|j        st          | |¦  «         Œ+Œ5Œ?d S )NÚborder_collapseÚcollapseÚempty_cellsÚshow)r   r   Úcolumn_groupsÚchildrenr   ÚemptyÚdraw_collapsed_bordersr   )r    ÚtableÚcolumn_groupÚcolumnÚ	row_groupÚrowÚcellÚdraw_cell_backgrounds           r"   rI   rI   D  sÃ  € å�F˜EÔ,Ñ-Ô-Ð-ØÔ+ð 7ð 7ˆÝ˜ Ô 7Ñ8Ô8Ð8Ø"Ô+ð 	7ð 	7ˆFÝ˜F FÔ$5Ñ6Ô6Ð6Ð6ð	7à”^ð 
=ð 
=ˆ	Ý˜ 	Ô 4Ñ5Ô5Ð5ØÔ%ð 	=ð 	=ˆCÝ˜F C¤NÑ3Ô3Ð3Øœð =ð =�à”KÐ 1Ô2°jÒ@ð #Ø”J˜}Ô-°Ò7ð#àœ
�Nð %ð (ð =Ý# F¨D¬OÑ<Ô<Ð<øð=ð	=ð „{Ð$Ô%¨Ò3Ð3Ý% f¨eÑ4Ô4Ð4Ý�˜ÑÔÐØ”^ð .ð .ˆ	ØÔ%ð 	.ð 	.ˆCØœð .ð .�Ø”:˜mÔ,°Ò6Ð6¸d¼jÐ6Ý ¨Ñ-Ô-Ð-øð.ð	.ð.ð .r$   c                 ó‚  ‡‡‡‡‡‡‡‡‡‡‡‡‡ ‡!— d„ ‰j         D ¦   «         }‰j        }|r|sdS d„ ‰j         D ¦   «         Št          ‰j        ¦  «        Št	          |¦  «        Št	          |¦  «        Š‰t	          ‰¦  «        k    sJ ‚‰j        \  Š!Š‰                     ‰d         |d         z   ¦  «         ‰                     ‰d         |d         z   ¦  «         ‰j         d         j        r t	          ‰j         d         j         ¦  «        ŠndŠ‰j         d         j        r t	          ‰j         d         j         ¦  «        ŠndŠ‰j	        }|r|‰z
  ŠndŠt	          ‰!¦  «        }|‰z
  Šˆˆˆˆˆfd„Šg Š dˆˆˆfd„	Šˆˆˆˆˆˆˆ ˆˆ!f	d	„}ˆˆˆˆˆˆˆ ˆˆ!f	d
„}t          ‰¦  «        D ]} ||d¦  «         Œt          ‰¦  «        D ]>}	 |d|	¦  «         t          ‰¦  «        D ] } ||dz   |	¦  «          |||	dz   ¦  «         Œ!Œ?‰                      t          j        d¦  «        ¬¦  «         ‰ D ]—}
|
\  }}}}}}|\  }}}}t          |||¦  «        }|                      ¦   «         5  |                      ¦   «         5  t#          | ||||z   ||z   |||¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   Œ˜dS )z/Draw borders of table cells when they collapse.c                 ó0   — g | ]}|j         D ]	}|j        ‘Œ
ŒS r\   )r°   rz   ©r`   r¶   r·   s      r"   ú
<listcomp>z*draw_collapsed_borders.<locals>.<listcomp>d  sB   € ð 'ð 'ð 'Ø ØÔ%ð'ð 'àð 	Œ
ð'ð 'ð 'ð 'r$   Nc                 ó0   — g | ]}|j         D ]	}|j        ‘Œ
ŒS r\   )r°   r›   r¼   s      r"   r½   z*draw_collapsed_borders.<locals>.<listcomp>k  sB   € ð 'ð 'ð 'Ø$ØÔ%ð'ð 'àð 	Œð'ð 'ð 'ð 'r$   r^   r   c                 ó‚   •— ‰r| ‰t          |¦  «        z   k     r| S ‰r| ‰‰z
  t          |¦  «        z
  k    r| ‰z   S | ‰z   S )N)Úint)rx   Ú
horizontalÚbody_rows_offsetÚfooter_rowsÚfooter_rows_offsetÚgrid_heightÚheader_rowss     €€€€€r"   Ú
row_numberz*draw_collapsed_borders.<locals>.row_number‡  sa   ø€ àð 	(˜1˜{­S°©_¬_Ñ<Ò<Ð<àˆHØð 	(˜Q +°Ñ";½cÀ*¹o¼oÑ"MÒMÐMàÐ)Ñ)Ð)ð Ð'Ñ'Ð'r$   Tc                 ó  •— d}|D ]}\  }}|r!d|cxk    o‰
k     nc od|cxk    o‰k    nc }n d|cxk    o‰
k    nc od|cxk    o‰k     nc }|r3 ‰|| ¬¦  «        }| |         |         \  }\  }}	}t          ||	¦  «        }Œ~|dz  S )Nr   ©rÁ   r   )r�   )Úborder_listÚyx_pairsÚverticalÚresultrx   rw   ÚinsideÚyyÚ_ry   rÅ   Ú
grid_widthrÇ   s             €€€r"   Úhalf_max_widthz.draw_collapsed_borders.<locals>.half_max_width•  sû   ø€ ØˆØð 	,ð 	,‰DˆAˆqØð GØ˜aÐ-Ð-Ò-Ð- +Ò-Ð-Ð-Ð-ÐF°!°qÐ2FÐ2FÒ2FÐ2F¸JÒ2FÐ2FÐ2FÐ2F��à˜aÐ.Ð.Ò.Ð. ;Ò.Ð.Ð.Ð.ÐF°1¸Ð3FÐ3FÒ3FÐ3F¸JÒ3FÐ3FÐ3FÐ3F�Øð ,Ø�Z °(¨lÐ;Ñ;Ô;�Ø#.¨r¤?°1Ô#5Ñ �‘=�A�u˜aÝ˜V UÑ+Ô+�øØ˜‰zÐr$   c                 óš  •	—  ‰|d¬¦  «        }‰|         |          \  }\  }}}|dk    s|j         dk    rd S ‰
|          }‰|         }|dk    s‰j        s| ‰‰|| dz
  f|| fgd¬¦  «        z  }‰|dz            }	|‰dz
  k    s‰j        s |	 ‰‰|dz   | dz
  f|dz   | fgd¬¦  «        z  }	‰                     ||||d||d|	|z
  ff¦  «         d S )NFrÉ   r   r   )rÌ   rW   )rl   Úskip_cell_border_topÚskip_cell_border_bottomÚappend)rw   rx   rÏ   Úscorer   ry   rk   Úpos_xÚpos_y1Úpos_y2Úcolumn_positionsrÅ   rÒ   Úhorizontal_bordersrÇ   Úrow_positionsÚsegmentsr³   Úvertical_borderss             €€€€€€€€€r"   Úadd_verticalz,draw_collapsed_borders.<locals>.add_vertical¢  sT  ø€ ØˆZ˜ eÐ,Ñ,Ô,ˆØ'7¸Ô';¸AÔ'>Ñ$ˆÑ$��u˜eØ�AŠ:ˆ:˜œ¨Ò)Ð)ØˆFØ  Ô#ˆØ˜qÔ!ˆØ�Š6ˆ6˜Ô3ˆ6Ø�n�nØ" a¨¨Q© Z°!°Q°Ð$8À5ðJñ Jô Jñ JˆFà˜q 1™uÔ%ˆØ�˜a‘ÒÐ uÔ'DÐØ�n�nØ" a¨!¡e¨Q°©U ^°a¸!±e¸Q°ZÐ$@È5ðRñ Rô Rñ RˆFà�ŠØ�5˜% ¨°¸ÀÀ6ÈFÁ?Ð0SðUñ 	Vô 	Vð 	Vð 	Vð 	Vr$   c                 ó”  •	— |dk    r	‰j         rd S |‰k    r	‰j        rd S  ‰|d¬¦  «        }‰|         |          \  }\  }}}|dk    s|j        dk    rd S ‰|         } ‰‰|dz
  | f|| fg¦  «        } ‰‰|dz
  | dz   f|| dz   fg¦  «        }	‰|          |z
  }
‰| dz            |	z   }‰                     ||||d|
|||
z
  dff¦  «         d S )Nr   TrÉ   r   rT   )rÔ   rÕ   rl   rÖ   )rw   rx   rÏ   r×   r   ry   rk   Úpos_yÚshift_beforeÚshift_afterÚpos_x1Úpos_x2rÛ   rÅ   rÒ   rÜ   rÇ   rÝ   rÞ   r³   rß   s               €€€€€€€€€r"   Úadd_horizontalz.draw_collapsed_borders.<locals>.add_horizontal³  s:  ø€ Ø�Š6ˆ6�eÔ0ˆ6ØˆFØ�ÒÐ Ô =ÐØˆFØˆZ˜ dÐ+Ñ+Ô+ˆØ'9¸"Ô'=¸aÔ'@Ñ$ˆÑ$��u˜eØ�AŠ:ˆ:˜œ¨Ò)Ð)ØˆFØ˜aÔ ˆØ%�~Ð&6¸!¸a¹%À¸ÀaÈÀVÐ8LÑMÔMˆØ$�nÐ%5¸¸Q¹ÀÀAÁ¸ÈÈAÐPQÉEÈ
Ð7SÑTÔTˆØ! !Ô$ |Ñ3ˆØ! ! a¡%Ô(¨;Ñ6ˆØ�ŠØ�5˜% ¨°¸¸vÈ¹ÐPQÐ/RðTñ 	Uô 	Uð 	Uð 	Uð 	Ur$   r   )ra   )T)r°   Úcolumn_widthsÚlistrÛ   ÚlenÚcollapsed_border_gridrÖ   Ú	is_headerÚ	is_footerÚskipped_rowsÚrangeÚsortÚoperatorÚ
itemgetterr   rm   r-   r   )"r    r³   Úrow_heightsrè   rî   Úoriginal_grid_heightrà   rç   rw   rx   ÚsegmentrÐ   r   ry   rk   ÚsideÚ
border_boxÚbxÚbyÚbwÚbhrÂ   rÛ   rÃ   rÄ   rÅ   rÑ   rÒ   rÆ   rÜ   rÇ   rÝ   rÞ   rß   s"    `                   @@@@@@@@@@@@@r"   r²   r²   b  sÀ  øøøøøøøøøøøøøø€ ð'ð 'Ø$)¤Nð'ñ 'ô '€Kð Ô'€MØð ˜Mð àˆð'ð 'Ø(-¬ð'ñ 'ô '€Mõ ˜EÔ2Ñ3Ô3ÐÝ�kÑ"Ô"€KÝ�]Ñ#Ô#€JØ�Ð-Ñ.Ô.Ò.Ð.Ð.Ð.Ø+0Ô+FÑ(ÐÐ(à×ÒÐ,¨RÔ0°=ÀÔ3DÑDÑEÔEÐEà×Ò˜ rÔ*¨[¸¬_Ñ<Ñ=Ô=Ð=Ø„~�aÔÔ"ð Ý˜%œ.¨Ô+Ô4Ñ5Ô5ˆˆàˆØ„~�bÔÔ#ð Ý˜%œ.¨Ô,Ô5Ñ6Ô6ˆˆàˆØÔ%€LØð Ø'¨+Ñ5ÐÐàÐÝÐ/Ñ0Ô0ÐØ-°Ñ;Ðð
(ð 
(ð 
(ð 
(ð 
(ð 
(ð 
(ð 
(ð 
(ð €Hðð ð ð ð ð ð ð ðVð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð Vð"Uð Uð Uð Uð Uð Uð Uð Uð Uð Uð Uð Uð Uõ" �:ÑÔð ð ˆØˆ�q˜!ÑÔÐÐÝ�;ÑÔð %ð %ˆØˆ�Q˜ÑÔÐÝ�zÑ"Ô"ð 	%ð 	%ˆAØˆL˜˜Q™ Ñ"Ô"Ð"ØˆN˜1˜a !™eÑ$Ô$Ð$Ð$ð	%ð
 ‡M‚M•hÔ)¨!Ñ,Ô,€MÑ-Ô-Ð-àð Mð MˆØ3:Ñ0ˆˆ5�%˜  jØ#‰ˆˆB��BÝ˜U E¨4Ñ0Ô0ˆØ�_Š_ÑÔð 	Mð 	M §¢Ñ 0Ô 0ð 	Mð 	MÝ�f˜b " b¨2¡g¨r°B©w¸¸uÀeÑLÔLÐLð	Mð 	Mð 	Mñ 	Mô 	Mð 	Mð 	Mð 	Mð 	Mð 	Mð 	Møøøð 	Mð 	Mð 	Mð 	Mð 	Mð 	Mð 	Mñ 	Mô 	Mð 	Mð 	Mð 	Mð 	Mð 	Mð 	Møøøð 	Mð 	Mð 	Mð 	Møð	Mð Ms6   ÉJ3É3JÊJ3ÊJ Ê J3Ê#J Ê$J3Ê3J7	Ê:J7	c                 óä  — |j         d         dk    s|j        r|j        sdS t          j        |¦  «        \  }}}}|dk    s|dk    rdS |                      ¦   «         5  |                      d¦  «         |                      ||¬¦  «         |                      ¦   «         5  |j         	                    | |||j         ¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )zEDraw the given :class:`boxes.ReplacedBox` to a ``pdf.stream.Stream``.Ú
visibilityr'   Nr   r   r†   )
r   ry   rz   r   Úreplacedbox_layoutr-   rR   r;   ÚreplacementrŒ   )r    r   Ú
draw_widthÚdraw_heightÚdraw_xÚdraw_ys         r"   Údraw_replacedboxr  ×  s£  € à
„y�Ô )Ò+Ð+°3´9Ð+ÀCÄJÐ+Øˆå.6Ô.IÈ#Ñ.NÔ.NÑ+€J�˜V VØ�Q‚€˜+¨Ò*Ð*Øˆà	�ŠÑ	Ô	ð Mð MØ×Ò˜ÑÔÐØ×Ò˜6 VÐÑ,Ô,Ð,Ø�^Š^ÑÔð 	Mð 	Mð ŒO× Ò  ¨°[À#Ä)ÑLÔLÐLð	Mð 	Mð 	Mñ 	Mô 	Mð 	Mð 	Mð 	Mð 	Mð 	Mð 	Møøøð 	Mð 	Mð 	Mð 	MðMð Mð Mñ Mô Mð Mð Mð Mð Mð Mð Mð Møøøð Mð Mð Mð Mð Mð Ms7   ÁAC%Â#CÃC%ÃC	ÃC%ÃC	ÃC%Ã%C)Ã,C)r(   Únonec           	      óŽ  — t          |t          ¦  «        rN|}t          j        t          j        t          j        f}t          |j        |¦  «        sJ ‚t          | |¦  «         d S t          | |¦  «         t          | |j
        ¦  «         t          | |¦  «         t          |t          j        t          j        f¦  «        rýt          |t          j        ¦  «        r|j        }|j        }d}t!          |j        ¦  «        D ]¼\  }	}
|	t%          |j        ¦  «        dz
  k    r|}t          |
t          ¦  «        r|}n||
j        z   |j        z
  }t          |
t          j        ¦  «        rB|                      |
d¦  «        5  t-          | |
|||¦  «         d d d ¦  «         n# 1 swxY w Y   Œ¨t/          | ||
|||¦  «         Œ½d S t          |t          j        ¦  «        rA|                      |d¦  «        5  t3          | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S t          |t          j        ¦  «        sJ ‚t-          | |||¦  «         d S )Nr  r   ÚSpanÚFigure)r=   r   r   r@   ÚInlineFlexBoxÚInlineGridBoxr   r   r   r   r   r   rK   ÚLineBoxÚtext_overflowÚblock_ellipsisÚ	enumerater°   rê   rš   ÚTextBoxÚmarkedr   rL   ÚInlineReplacedBoxr  )r    r   r   Úoffset_xr  r  r!   Úallowed_boxesÚellipsisÚiÚchildÚchild_offset_xs               r"   rL   rL   é  sû  € å�#•Ñ'Ô'ð #<ØÐÝÔ-­uÔ/BÅEÔDWÐXˆÝÐ*Ô.°Ñ>Ô>Ð>Ð>Ð>Ý˜fÐ&6Ñ7Ô7Ð7Ð7Ð7å˜ Ñ$Ô$Ð$Ý˜ ¤Ñ/Ô/Ð/Ý�F˜CÑ Ô Ð Ý�c�EœO­U¬]Ð;Ñ<Ô<ð 	<Ý˜#�uœ}Ñ-Ô-ð 4Ø #Ô 1�Ø!$Ô!3�ØˆHÝ% c¤lÑ3Ô3ð Vð V‘��5Ø�˜CœLÑ)Ô)¨AÑ-Ò-Ð-à-�HÝ˜e¥_Ñ5Ô5ð RØ%-�N�Nà%-°Ô0@Ñ%@À3Ä>Ñ%Q�NÝ˜e¥U¤]Ñ3Ô3ð VØŸš u¨fÑ5Ô5ð Tð TÝ!Ø" E¨>¸=È(ñTô Tð TðTð Tð Tñ Tô Tð Tð Tð Tð Tð Tð Tøøøð Tð Tð Tð Tøõ &Ø  e¨^¸]ÈHñVô Vð Vð VðVð Võ ˜�UÔ4Ñ5Ô5ð 	<Ø—’˜s HÑ-Ô-ð .ð .Ý  ¨Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð .ð .õ ˜c¥5¤=Ñ1Ô1Ð1Ð1Ð1å�f˜c 8¨]Ñ;Ô;Ð;Ð;Ð;s$   Å9FÆF	Æ F	Ç,H
È
HÈHc                 óœ  — |                      ¦   «         D ]¶\  }}t          |t          j        ¦  «        r?|                     |d¦  «        5  t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   nG|j        r@t          |j        d         t          j        ¦  «        r|j        D ]}t          || |¦  «         Œt          | ||¦  «         Œ·d S )Nr  r^   )
rp   r=   r   rD   r  r  r°   r  rL   rM   )r   r    rN   rZ   r  s        r"   rM   rM     s  € Ø#3×#9Ò#9Ñ#;Ô#;ð 9ð 9ÑˆÐÝ�e�UÔ.Ñ/Ô/ð 	;Ø—’˜u hÑ/Ô/ð 0ð 0Ý  ¨Ñ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0øàŒ^ð 	;Ý˜%œ.¨Ô,­e¬mÑ<Ô<ð ;Ø"œ^ð ;ð ;�EÝ% f¨d°EÑ:Ô:Ð:Ð:Ý˜˜vÐ'7Ñ8Ô8Ð8Ð8ð9ð 9s   Á
A'Á'A+	Á.A+	)TNr\   )r   r(   r  )%Ú__doc__rñ   Úmathr   Ú	xml.etreer   Úformatting_structurer   Úimagesr   Úlayoutr   Úlayout.backgroundr	   r¤   r
   Ústackingr   Úborderr   r   r   r   r   rk   r   Útextr   r#   r   r   ru   rI   r²   r  rL   rM   r\   r$   r"   ú<module>r#     s¯  ðØ FÐ Fà €€€Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !à (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø /Ð /Ð /Ð /Ð /Ð /Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VØ Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð
4ð 
4ð 
4ði/ð i/ð i/ðX`;ð `;ð `;ð `;ðFSð Sð Sðl.ð .ð .ð<rMð rMð rMðjMð Mð Mð$ DJØ%+ð%<ð %<ð %<ð %<ðP	9ð 	9ð 	9ð 	9ð 	9r$   