§
    ¥”j]¢  ã                   ó�  — d Z ddlZddlmZ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 d	dlmZ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  edg d¢¦  «        Z G d„ d¦  «        Z G d„ de¦  «        Z  G d„ de¦  «        Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'ed„ ¦   «         Z(ed„ ¦   «         Z)d „ Z*d!„ Z+d"„ Z,d#„ Z-d$„ Z.d%„ Z/dS )&z'Layout for pages and CSS3 margin boxes.é    N)ÚdefaultdictÚ
namedtuple)Úinfé   )ÚAnonymousStyle)ÚboxesÚbuild)ÚPROGRESS_LOGGERé   )Úabsolute_box_layoutÚabsolute_layout)Úblock_container_layoutÚblock_level_layout)Úfloat_layout)Úhandle_min_max_heightÚhandle_min_max_width)Úresolve_percentages)Úmax_content_widthÚmin_content_widthÚPageType)ÚsideÚblankÚnameÚindexÚgroupsc                   ó†   — e Zd Zed„ ¦   «         Zed„ ¦   «         Zej        d„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚOrientedBoxc                 ó0   — | j         | j        z   | j        z   S ©N)Úpadding_plus_borderÚmargin_aÚmargin_b©Úselfs    úe/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/weasyprint/layout/page.pyÚsugarzOrientedBox.sugar   s   € àÔ'¨$¬-Ñ7¸$¼-ÑGÐGó    c                 ó    — | j         | j        z   S r   )r&   Úinnerr#   s    r%   ÚouterzOrientedBox.outer   s   € àŒz˜DœJÑ&Ð&r'   c                 óp   — t          t          | j        || j        z
  ¦  «        | j        ¦  «        | _        d S r   )ÚminÚmaxÚmin_content_sizer&   Úmax_content_sizer)   )r$   Únew_outer_widths     r%   r*   zOrientedBox.outer   s4   € åÝ�Ô% ¸¼Ñ'CÑDÔDØÔ!ñ#ô #ˆŒ
ˆ
ˆ
r'   c                 óD   — | j         | j        dk    r| j        n| j        z   S ©NÚauto)r&   r)   r.   r#   s    r%   Úouter_min_content_sizez"OrientedBox.outer_min_content_size#   ó,   € àŒzØ%)¤Z°6Ò%9Ð%9ˆDÔ!Ð!¸t¼zñKð 	Kr'   c                 óD   — | j         | j        dk    r| j        n| j        z   S r2   )r&   r)   r/   r#   s    r%   Úouter_max_content_sizez"OrientedBox.outer_max_content_size(   r5   r'   N)	Ú__name__Ú
__module__Ú__qualname__Úpropertyr&   r*   Úsetterr4   r7   © r'   r%   r   r      s¦   € € € € € ØðHð Hñ „XðHð ð'ð 'ñ „Xð'ð „\ð#ð #ñ „\ð#ð
 ðKð Kñ „XðKð ðKð Kñ „XðKð Kð Kr'   r   c                   óF   — e Zd Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚVerticalBoxc                 ó²   — || _         || _        |j        | _        |j        | _        |j        | _        |j        |j	        z   |j
        z   |j        z   | _        d S r   )ÚcontextÚboxÚheightr)   Ú
margin_topr!   Úmargin_bottomr"   Úpadding_topÚpadding_bottomÚborder_top_widthÚborder_bottom_widthr    ©r$   rA   rB   s      r%   Ú__init__zVerticalBox.__init__/   s_   € ØˆŒØˆŒð ”ZˆŒ
ØœˆŒØÔ)ˆŒàŒO˜cÔ0Ñ0ØÔ ñ!Ø#&Ô#:ñ;ð 	Ô Ð Ð r'   c                 ó\   — | j         }| j        |_        | j        |_        | j        |_        d S r   )rB   r)   rC   r!   rD   r"   rE   ©r$   rB   s     r%   Úrestore_box_attributesz"VerticalBox.restore_box_attributes;   s+   € ØŒhˆØ”ZˆŒ
ØœˆŒØ œMˆÔÐÐr'   c                 ó   — dS )Nr   r=   r#   s    r%   r.   zVerticalBox.min_content_sizeB   s   € àˆqr'   c                 ó   — dS )Ng    €„.Ar=   r#   s    r%   r/   zVerticalBox.max_content_sizeF   s   € àˆsr'   N©r8   r9   r:   rK   rN   r;   r.   r/   r=   r'   r%   r?   r?   .   sh   € € € € € ð
<ð 
<ð 
<ð*ð *ð *ð ðð ñ „Xðð ðð ñ „Xðð ð r'   r?   c                   óF   — e Zd Zd„ Zd„ Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚHorizontalBoxc                 óÎ   — || _         || _        |j        | _        |j        | _        |j        | _        |j        |j	        z   |j
        z   |j        z   | _        d | _        d | _        d S r   )rA   rB   Úwidthr)   Úmargin_leftr!   Úmargin_rightr"   Úpadding_leftÚpadding_rightÚborder_left_widthÚborder_right_widthr    Ú_min_content_sizeÚ_max_content_sizerJ   s      r%   rK   zHorizontalBox.__init__L   sp   € ØˆŒØˆŒØ”YˆŒ
ØœˆŒØÔ(ˆŒàÔ˜sÔ0Ñ0ØÔ!ñ"Ø$'Ô$:ñ;ð 	Ô ð "&ˆÔØ!%ˆÔÐÐr'   c                 ó\   — | j         }| j        |_        | j        |_        | j        |_        d S r   )rB   r)   rU   r!   rV   r"   rW   rM   s     r%   rN   z$HorizontalBox.restore_box_attributesX   s+   € ØŒhˆØ”JˆŒ	Øœ-ˆŒØœ=ˆÔÐÐr'   c                 ó`   — | j         €!t          | j        | j        d¬¦  «        | _         | j         S ©NF)r*   )r\   r   rA   rB   r#   s    r%   r.   zHorizontalBox.min_content_size^   ó6   € àÔ!Ð)Ý%6Ø”˜dœh¨eð&5ñ &5ô &5ˆDÔ"àÔ%Ð%r'   c                 ó`   — | j         €!t          | j        | j        d¬¦  «        | _         | j         S r`   )r]   r   rA   rB   r#   s    r%   r/   zHorizontalBox.max_content_sizee   ra   r'   NrQ   r=   r'   r%   rS   rS   K   sh   € € € € € ð
&ð 
&ð 
&ð)ð )ð )ð ð&ð &ñ „Xð&ð ð&ð &ñ „Xð&ð &ð &r'   rS   c                 ó&  —  |rt           nt          | |¦  «        }|j        t          d„ |j        |j        |j        fD ¦   «         ¦  «        z   }||k    r6|j        dk    rd|_        |j        dk    rd|_        |j        dk    rd|_        d|j        |j        |j        fvr|rd|_        nd|_        |j        |j        |j        g                     d¦  «        dk    r€|j        dk    r ||j        z
  |j        z
  |j        z
  |_        nU|j        dk    r ||j        z
  |j        z
  |j        z
  |_        n*|j        dk    r||j        z
  |j        z
  |j        z
  |_        |j        dk    rC|j        dk    rd|_        |j        dk    rd|_        ||j        z
  |j        z
  |j        z
  |_        |j        |j        cxk    rdk    r$n n!||j        z
  |j        z
  dz  x|_        |_        d|j        |j        |j        fvsJ ‚|                     ¦   «          dS )a¢  Compute and set a margin box fixed dimension on ``box``.

    Described in: https://drafts.csswg.org/css-page-3/#margin-constraints

    :param box:
        The margin box to work on
    :param outer:
        The target outer dimension (value of a page margin)
    :param vertical:
        True to set height, margin-top and margin-bottom; False for width,
        margin-left and margin-right
    :param top_or_left:
        True if the margin box in if the top half (for vertical==True) or
        left half (for vertical==False) of the page.
        This determines which margin should be 'auto' if the values are
        over-constrained. (Rule 3 of the algorithm.)
    c              3   ó&   K  — | ]}|d k    ¯|V — ŒdS )r3   Nr=   )Ú.0Úvalues     r%   ú	<genexpr>z*compute_fixed_dimension.<locals>.<genexpr>‚   s4   è è € ð *ð *ØØ�FŠ?ˆ?ð 	Øˆ?ˆ?ˆ?ð*ð *r'   r3   r   r   r   N)	r?   rS   r    Úsumr!   r"   r)   ÚcountrN   )rA   rB   r*   ÚverticalÚtop_or_leftÚtotals         r%   Úcompute_fixed_dimensionrm   m   su  € ð$ 6˜(Ð5�;ˆ;­°wÀÑ
DÔ
D€Cð Ô#¥cð *ð *ØœL¨#¬,¸¼	ÐBð*ñ *ô *ñ 'ô 'ñ €Eð ˆu‚}€}ØŒ<˜6Ò!Ð!ØˆCŒLØŒ<˜6Ò!Ð!ØˆCŒLØŒ9˜ÒÐð
 ˆCŒIà�c”l C¤L°#´)Ð<Ð<Ð<àð 	"Ø!ˆCŒLˆLà!ˆCŒLàŒ�c”l C¤IÐ.×4Ò4°VÑ<Ô<ÀÒAÐAØŒ9˜ÒÐØ Ô!8Ñ8Øœñ&Ø(+¬ñ5ˆCŒIˆIàŒ\˜VÒ#Ð#Ø! CÔ$;Ñ;ØœLñ)Ø+.¬9ñ5ˆCŒLˆLàŒ\˜VÒ#Ð#Ø! CÔ$;Ñ;ØœLñ)Ø+.¬9ñ5ˆCŒLð „y�FÒÐØŒ<˜6Ò!Ð!ØˆCŒLØŒ<˜6Ò!Ð!ØˆCŒLØ˜SÔ4Ñ4Ø”\ñ"Ø$'¤Lñ1ˆŒ	ð „|�s”|Ð-Ð-Ò-Ð- vÒ-Ð-Ð-Ð-Ð-à�CÔ+Ñ+¨c¬iÑ7¸1ñ'=ð 	=ˆŒ�s”|ð ˜#œ,¨¬°c´iÐ@Ð@Ð@Ð@Ð@à×ÒÑ Ô Ð Ð Ð r'   c                 óø  ‡ ‡— |rt           nt          Šˆˆ fd„|D ¦   «         }|\  }}}|D ]&}|j        dk    rd|_        |j        dk    rd|_        Œ'|j        j        �s¢|j        dk    sJ ‚|j        |j        cxk    rdk    �rEn �nA||j        |j        z   k    rY||j        z
  |j        z
  }|j        }	|j        }
|	|
z   }|dk    rd}|j        ||	z  |z  z   |_	        |j        ||
z  |z  z   |_	        �n^||j
        |j
        z   k    ri||j
        z
  |j
        z
  }|j        |j        z
  }	|j        |j        z
  }
|	|
z   }|dk    rd}|j        ||	z  |z  z   |_	        |j        ||
z  |z  z   |_	        �nâ||j
        z
  |j
        z
  }|j        }	|j        }
|	|
z   }|dk    rd}|j        ||	z  |z  z   |_	        |j        ||
z  |z  z   |_	        �n‰|j        dk    r||j	        z
  |_	        �nm|j        dk    r||j	        z
  |_	        �nQ|j        dk    �rdt          |j        |j        ¦  «        z  }||j        |z   k    r9||j        z
  |z
  }|j        }|}||z   }|dk    rd}|j        ||z  |z  z   |_	        n§dt          |j
        |j
        ¦  «        z  }||j
        |z   k    rD||j
        z
  |z
  }|j        |j        z
  }||z
  }||z   }|dk    rd}|j        ||z  |z  z   |_	        n8||j
        z
  |z
  }|j        }|}||z   }|dk    rd}|j        ||z  |z  z   |_	        |j        dk    r||j	        z
  dz  |_	        |j        dk    r||j	        z
  dz  |_	        dd„ |D ¦   «         vsJ ‚|D ]}|                     ¦   «          ŒdS )ua  Compute and set a margin box fixed dimension on ``box``

    Described in: https://drafts.csswg.org/css-page-3/#margin-dimension

    :param side_boxes:
        Three boxes on a same side (as opposed to a corner).
        A list of:
        - A @*-left or @*-top margin box
        - A @*-center or @*-middle margin box
        - A @*-right or @*-bottom margin box
    :param vertical:
        ``True`` to set height, margin-top and margin-bottom;
        ``False`` for width, margin-left and margin-right.
    :param available_size:
        The distance between the page boxâ€™s left right border edges

    c                 ó(   •— g | ]} ‰‰|¦  «        ‘ŒS r=   r=   )re   rB   Ú	box_classrA   s     €€r%   ú
<listcomp>z.compute_variable_dimension.<locals>.<listcomp>Ç   s%   ø€ Ð@Ð@Ð@¨c�)�)˜G SÑ)Ô)Ð@Ð@Ð@r'   r3   r   r   r   c                 ó   — g | ]	}|j         ‘Œ
S r=   )r)   ©re   rB   s     r%   rq   z.compute_variable_dimension.<locals>.<listcomp>E  s   € Ð:Ð:Ð:¨˜#œ)Ð:Ð:Ð:r'   N)r?   rS   r!   r"   rB   Úis_generatedr)   r7   r/   r*   r4   r.   r-   rN   )rA   Ú
side_boxesrj   Úavailable_sizeÚbox_aÚbox_bÚbox_crB   Ú
flex_spaceÚflex_factor_aÚflex_factor_cÚflex_factor_sumÚac_max_content_sizeÚflex_factor_bÚflex_factor_acÚac_min_content_sizerp   s   `               @r%   Úcompute_variable_dimensionr‚   ´   s?  øø€ ð$  (Ð:•�­]€IØ@Ð@Ð@Ð@Ð@°ZÐ@Ñ@Ô@€JØ$Ñ€Eˆ5�%àð ð ˆØŒ<˜6Ò!Ð!ØˆCŒLØŒ<˜6Ò!Ð!ØˆCŒLøàŒ9Ô!ñ r=àŒ{˜aÒÐÐÐØŒ;˜%œ+Ð/Ð/Ò/Ð/¨Ò/Ñ/Ð/Ð/Ñ/àØÔ0ØÔ0ñ1ò2ð 2ð #ØÔ0ñ1àÔ0ñ1ð ð !&Ô <�Ø %Ô <�Ø"/°-Ñ"?�Ø" aÒ'Ð'Ø&'�OØ#Ô4Ø Ñ.°Ñ@ñB�”à#Ô4Ø Ñ.°Ñ@ñB�”‘àØÔ0ØÔ0ñ1ò2ð 2ð #ØÔ0ñ1àÔ0ñ1ð ð
 Ô*¨UÔ-CÑCð ð Ô*¨UÔ-CÑCð à"/°-Ñ"?�Ø" aÒ'Ð'Ø&'�OØ#Ô4Ø Ñ.°Ñ@ñB�”à#Ô4Ø Ñ.°Ñ@ñB�”‘ð
 #ØÔ0ñ1àÔ0ñ1ð ð !&Ô 6�Ø %Ô 6�Ø"/°-Ñ"?�Ø" aÒ'Ð'Ø&'�OØ#Ô4Ø Ñ.°Ñ@ñB�”à#Ô4Ø Ñ.°Ñ@ñB�”‘ð Œ{˜fÒ$Ð$Ø,¨u¬{Ñ:�”‘Ø” Ò&Ð&Ø,¨u¬{Ñ:�”ùàŒ;˜&Ò Ñ à"#¥cØÔ,¨eÔ.Jñ'Lô 'Lñ #LÐàØÔ0Ð3FÑFòHð Hð #ØÔ0ñ1à'ñ(ð ð !&Ô <�Ø!4�Ø"/°.Ñ"@�Ø" aÒ'Ð'Ø&'�OØ#Ô4Ø Ñ.°Ñ@ñB�”�ð '(­#ØÔ0°%Ô2Nñ+Pô +Pñ 'PÐ#à!ØÔ4Ð7JÑJòLð Lð 'ØÔ4ñ5à+ñ,ð ð
 Ô.°Ô1GÑGð "à%8Ð;NÑ%N�NØ&3°nÑ&D�OØ&¨!Ò+Ð+Ø*+˜Ø"'Ô"8Ø" ]Ñ2°_ÑDñ#F�E”K�Kð 'ØÔ4ñ5à+ñ,ð ð %*Ô$:�MØ%8�NØ&3°nÑ&D�OØ&¨!Ò+Ð+Ø*+˜Ø"'Ô"8Ø" ]Ñ2°_ÑDñ#F�E”KàŒ;˜&Ò Ð Ø)¨E¬KÑ7¸1Ñ<ˆEŒKØŒ;˜&Ò Ð Ø)¨E¬KÑ7¸1Ñ<ˆEŒKð Ð:Ð:¨zÐ:Ñ:Ô:Ð:Ð:Ð:Ð:àð %ð %ˆØ×"Ò"Ñ$Ô$Ð$Ð$ð%ð %r'   c                 óò   — d}dD ][}| |         dk    rd| |<   Œg }| |         D ]*\  }}|dk    rd}|dk    r|                      ||f¦  «         Œ+t          |¦  «        | |<   Œ\|€|sd	| d
         z   | d
<   dS dS dS )zªDrop 'pages' counter from style in @page and @margin context.

    Ensure `counter-increment: page` for @page context if not otherwise
    manipulated by the style.

    F)Úcounter_setÚcounter_resetÚcounter_incrementr3   r=   ÚpageTÚpagesN))r‡   r   r†   )ÚappendÚtuple)ÚstyleÚpseudo_typeÚpage_counter_touchedÚpropnameÚjustified_valuesr   rf   s          r%   Ú _standardize_page_based_countersr�   K  sÑ   € ð !ÐØIð 
2ð 
2ˆØ�Œ?˜fÒ$Ð$Ø ˆE�(‰OØØÐØ  œ?ð 	7ð 	7‰KˆD�%Ø�vŠ~ˆ~Ø'+Ð$Ø�wŠˆØ ×'Ò'¨¨u¨Ñ6Ô6Ð6øÝÐ 0Ñ1Ô1ˆˆh‰ˆàÐÐ#7Ðð&Ø!Ð"5Ô6ñ&7ˆÐ!Ñ"Ð"Ð"ð ÐÐÐr'   c           
   #   óT  ‡ ‡‡‡‡‡K  — ˆ ˆˆfd„Š‰j         }‰j        }‰j        }‰j        }‰                     ¦   «         }‰                     ¦   «         }||z   }	||z   }
g }dd||f|dfdd||f||
fdd||fd|fdd||f|	|ffD �]\  Š}Š}}|r
g d	¢}‰\  }}n	g d
¢}‰\  }}ˆˆˆfd„|D ¦   «         }t          d„ |D ¦   «         ¦  «        sŒHt          ‰ |||¦  «         t          |g d¢¦  «        D ]™\  }}|j	        sŒ||_
        ||_        |r)|xj        |||                     ¦   «         z
  z  z  c_        n(|xj
        |||                     ¦   «         z
  z  z  c_
        t          ‰ ||| ‰dv ¦  «         |                     |¦  «         Œš�Œd||ddfd|||	dfd||d|
fd|||	|
ffD ]k\  }}}}} ‰|||f¦  «        }|j	        sŒ||_
        ||_        t          ‰ ||dd|v ¦  «         t          ‰ ||dd|v ¦  «         |                     |¦  «         Œl|D ]}t!          ‰ ‰|¦  «        V — ŒdS )z›Yield laid-out margin boxes for this page.

    ``state`` is the actual, up-to-date page-state from
    ``context.page_maker[context.current_page]``.

    c                 óì  •— ‰
                      ‰j        | ¦  «        }|€t          ‰j        ¦  «        }t	          || ¦  «         t          j        | |¦  «        }|d         dv|_        |j        rÇt          j	        ‰¦  «        }|\  }}}}| 
                    t          ¦   «         ¦  «         t          j        ||j        ¦  «         t          j        |j        |||‰
j        ‰
j        ‰
j        ‰
‰¦	  «	        |_        t          j        |¦  «         t          j        |¦  «         t          j        |¦  «        }t-          ||¦  «         |j        s(dx|_        |_        dD ]}	|                     |	¦  «         Œ|S )aa  Return a margin box with resolved percentages.

        The margin box may still have 'auto' values.

        Return ``None`` if this margin box should not be generated.

        :param at_keyword:
            Which margin box to return, e.g. '@top-left'
        :param containing_block:
            As expected by :func:`resolve_percentages`.

        NÚcontent)ÚnormalÚinhibitÚnoner   )ÚtopÚrightÚbottomÚleft)Ú	style_forÚ	page_typer   r‹   r�   r   Ú	MarginBoxrt   ÚcopyÚdeepcopyr‰   Úsetr	   Úupdate_countersÚcontent_to_boxesÚget_image_from_uriÚtarget_collectorÚcounter_styleÚchildrenÚprocess_whitespaceÚprocess_text_transformÚcreate_anonymous_boxesr   rU   rC   Ú_reset_spacing)Ú
at_keywordÚcontaining_blockr‹   rB   Úmargin_stateÚquote_depthÚcounter_valuesÚcounter_scopesÚ_page_groupsr   rA   r‡   Ústates             €€€r%   Úmake_boxz#make_margin_boxes.<locals>.make_boxl  s~  ø€ ð ×!Ò! $¤.°*Ñ=Ô=ˆØˆ=å" 4¤:Ñ.Ô.ˆEÝ(¨°
Ñ;Ô;Ð;ÝŒo˜j¨%Ñ0Ô0ˆð ! Ô+ð 4)ð )ˆÔð Ôð 	4åœ=¨Ñ/Ô/ˆLØHTÑEˆK˜¨¸à×!Ò!¥#¡%¤%Ñ(Ô(Ð(ÝÔ! ,°´	Ñ:Ô:Ð:Ý Ô1Ø”	˜3 ¨^ØÔ*¨GÔ,DØÔ% w°ñ6ô 6ˆCŒLõ Ô$ SÑ)Ô)Ð)ÝÔ(¨Ñ-Ô-Ð-ÝÔ.¨sÑ3Ô3ˆCÝ˜CÐ!1Ñ2Ô2Ð2ØÔð 	)Ø%&Ð&ˆCŒI˜œ
Ø:ð )ð )�Ø×"Ò" 4Ñ(Ô(Ð(Ð(Øˆ
r'   r—   Fr   r™   rš   Tr˜   )r—   Úmiddler™   )rš   Úcenterr˜   c                 ó4   •— g | ]} ‰d ‰› d|› �‰¦  «        ‘ŒS )ú@ú-r=   )re   Úsuffixr¬   r³   Úprefixs     €€€r%   rq   z%make_margin_boxes.<locals>.<listcomp>¹  sG   ø€ ð $ð $ð $àð ˆHÐ*˜Ð*Ð* &Ð*Ð*Ð,<Ñ=Ô=ð$ð $ð $r'   c              3   ó$   K  — | ]}|j         V — Œd S r   )rt   rs   s     r%   rg   z$make_margin_boxes.<locals>.<genexpr>¼  s%   è è € Ð:Ð:¨�3Ô#Ð:Ð:Ð:Ð:Ð:Ð:r'   )r   g      à?r   )r—   rš   z@top-left-cornerz@top-right-cornerz@bottom-left-cornerz@bottom-right-cornerN)rD   rE   rV   rW   Úborder_widthÚborder_heightÚanyr‚   Úziprt   Ú
position_xÚ
position_yÚmargin_heightÚmargin_widthrm   r‰   Úmargin_box_content_layout)rA   r‡   r²   rD   rE   rV   rW   Úmax_box_widthÚmax_box_heightÚ
page_end_xÚ
page_end_yÚgenerated_boxesrj   rÀ   rÁ   ÚsuffixesÚfixed_outerÚvariable_outerru   rB   Úoffsetr«   Úcb_widthÚ	cb_heightr¬   r³   rº   s   ```                     @@@r%   Úmake_margin_boxesrÐ   d  s´  øøøøøøè è € ð,ð ,ð ,ð ,ð ,ð ,ð ,ð\ ”€JØÔ&€MØÔ"€KØÔ$€LØ×%Ò%Ñ'Ô'€MØ×'Ò'Ñ)Ô)€Nð ˜}Ñ,€JØ˜nÑ,€Jð €Oð 
�˜ zÐ2Ø˜ð	à	�5˜=¨-Ð8Ø˜ð	%à	�˜ ^Ð4Øˆzð	à	�$˜ ~Ð6Ø˜
ð	$ð	Gð &(ñ &(ÑBˆ�Ð*¨J¸
ð ð 	;Ø2Ð2Ð2ˆHØ*:Ñ'ˆK˜˜à2Ð2Ð2ˆHØ*:Ñ'ˆN˜Kð$ð $ð $ð $ð $ð $à"ð$ñ $ô $ˆ
õ Ð:Ð:¨zÐ:Ñ:Ô:Ñ:Ô:ð 	Øå"Ø�Z ¨>ñ	;ô 	;ð 	;å˜z¨;¨;¨;Ñ7Ô7ð 	(ð 	(‰KˆC�ØÔ#ð ØØ'ˆCŒNØ'ˆCŒNØð 9Ø�” &Ø" S×%6Ò%6Ñ%8Ô%8Ñ8ñ#:ñ :�”�ð �” &Ø" S×%5Ò%5Ñ%7Ô%7Ñ7ñ#9ñ 9�”å#Ø˜˜k¨x¨<Ø˜/Ð)ñ+ô +ð +ð ×"Ò" 3Ñ'Ô'Ð'Ð'ñ	(ð& 
˜[¨*°a¸Ð;Ø	˜l¨J¸
ÀAÐFØ	 ¨]¸A¸zÐJØ	 ¨}Ø˜
ð	$ð	Dð $ð $Ñ?ˆ
�H˜i¨°Zð ˆh�z H¨iÐ#8Ñ9Ô9ˆØÔð 	ØØ#ˆŒØ#ˆŒÝØ�S˜) T¨5°JÐ+>ñ	@ô 	@ð 	@åØ�S˜( E¨6°ZÐ+?ñ	Aô 	Að 	Aà×Ò˜sÑ#Ô#Ð#Ð#àð <ð <ˆÝ'¨°°sÑ;Ô;Ð;Ð;Ð;Ð;ð<ð <r'   c                 ó´  — g }t          | |t           dd||ddddd¬¦  «        \  }}}}}}|�J ‚|D ]}t          | |||dd¬¦  «         Œ|j        d         }|dv r~|j        rw|j        d         }	|j        d	         }
|	j        }|
j        |
                     ¦   «         z   }||z
  }|j        |z
  }|d
k    r|dz  }|j        D ]}|                     d|¦  «         Œ|S )u<   Layout a margin boxâ€™s content once the box has dimensions.NTF)
Úbottom_spaceÚ
skip_stackÚpage_is_emptyÚabsolute_boxesÚfixed_boxesÚadjoining_marginsÚfirst_letter_styleÚfirst_line_styleÚdiscardÚ	max_linesr   ©rÒ   rÓ   Úvertical_align)r´   r™   éÿÿÿÿr´   r   )	r   r   r   r‹   r¦   rÁ   rÂ   rC   Ú	translate)rA   r‡   rB   Úpositioned_boxesÚ	resume_atÚ	next_pageÚ_Úabsolute_boxrÝ   Úfirst_childÚ
last_childr—   r™   Úcontent_heightrÍ   Úchilds                   r%   rÄ   rÄ   é  sB  € àÐÝ)?Ø�¥C 4°DÈØ'Ð5EØ°4È$Ø ð	*'ñ *'ô *'Ñ&€Cˆ�I˜q ! Qð
 ÐÐÐØ(ð ð ˆÝØ�\ 3Ð(8ÀqØð	ñ 	ô 	ð 	ð 	ð ”YÐ/Ô0€NàÐ-Ð-Ð-°#´,Ð-Ø”l 1”oˆØ”\ "Ô%ˆ
ØÔ$ˆð Ô&¨×)AÒ)AÑ)CÔ)CÑCˆØ #™ˆØ”˜nÑ,ˆØ˜XÒ%Ð%Ø�a‰KˆFØ”\ð 	'ð 	'ˆEØ�OŠO˜A˜vÑ&Ô&Ð&Ð&Ø€Jr'   c                 óÂ  — || j         z
  }| j        dk    r<| j        dk    rd| _        | j        dk    rd| _        || j        z
  | j        z
  | _        ny| j        | j        cxk    rdk    rn n|| j        z
  dz  x| _        | _        nE| j        dk    r|| j        z
  | j        z
  | _        n"| j        dk    r|| j        z
  | j        z
  | _        |                      ¦   «          dS )a¾  Take a :class:`OrientedBox` object and set either width, margin-left
    and margin-right; or height, margin-top and margin-bottom.

    "The width and horizontal margins of the page box are then calculated
     exactly as for a non-replaced block element in normal flow. The height
     and vertical margins of the page box are calculated analogously (instead
     of using the block height formulas). In both cases if the values are
     over-constrained, instead of ignoring any margins, the containing block
     is resized to coincide with the margin edges of the page box."

    https://drafts.csswg.org/css-page-3/#page-box-page-rule
    https://www.w3.org/TR/CSS21/visudet.html#blockwidth

    r3   r   r   N)r    r)   r!   r"   rN   )rB   Úcontaining_block_sizeÚ	remainings      r%   Úpage_width_or_heightrì   	  sý   € ð &¨Ô(?Ñ?€IØ
„y�FÒÐØŒ<˜6Ò!Ð!ØˆCŒLØŒ<˜6Ò!Ð!ØˆCŒLØ ¤Ñ,¨s¬|Ñ;ˆŒ	ˆ	Ø	Œ˜œÐ	/Ð	/Ò	/Ð	/¨Ò	/Ð	/Ð	/Ð	/Ð	/Ø'0°3´9Ñ'<ÀÑ&AÐAˆŒ�s”|�|Ø	Œ˜Ò	Ð	Ø  3¤9Ñ,¨s¬|Ñ;ˆŒˆØ	Œ˜Ò	Ð	Ø  3¤9Ñ,¨s¬|Ñ;ˆŒØ×ÒÑ Ô Ð Ð Ð r'   c                 óB   — t          t          || ¦  «        |¦  «         d S r   )rì   rS   )rB   rA   Úcontaining_block_widths      r%   Ú
page_widthrï   (  s#   € å� w°Ñ4Ô4Ð6LÑMÔMÐMÐMÐMr'   c                 óB   — t          t          || ¦  «        |¦  «         d S r   )rì   r?   )rB   rA   Úcontaining_block_heights      r%   Úpage_heightrò   -  s#   € å� W¨cÑ2Ô2Ð4KÑLÔLÐLÐLÐLr'   c                 óª  — |                       |¦  «        }|j        |d<   t          j        ||¦  «        }|j        d         }t          ||¦  «         d|_        d|_        |\  }	}
t          || |	¦  «         t          || |
¦  «         | 
                    ¦   «         |_        |                     ¦   «         |_        |j        |j        z   | _        |}|                       |d¦  «        }t          j        ||¦  «        }t          ||¦  «         | 
                    ¦   «         |_        | j        |_        |j        r|}|                     g ¦  «        }t#          |t          j        ¦  «        sJ ‚|                      ¦   «          || _        g | _        || _        | j        }g | _        t1          |¦  «        D ]b\  }}| j                             |¦  «         |                      |¦  «        }|r,|dk    r&|                      |¦  «         ||d…         | _         nŒcd}g }g }g }t;          t<          ¦  «        }i }| j                              ¦   «         }|| _        |D ]ó\  }}}}|r|                      |¦  «         |                     ¦   «         |_        | !                    ¦   «         r4tE          | ||||d|¦  «        \  }}||                              |¦  «         n-| #                    ¦   «         sJ ‚tI          | |||d|¦  «        \  }}|                     |¦  «         d}|r|  %                    ||||¦  «         |r|  &                    ¦   «          Œô| '                    ¦   «         D ]\  }} | | j(        |<   Œ|}!|}"tS          | |d||||||¦	  «	        \  }}}#}$}$}$|sž|rJ ‚|! *                    ¦   «         x}x}%}!|"}|rPtW          |¦  «        dk    r=| '                    ¦   «         \  \  }&}|j,        |&         |}%}|rtW          |¦  «        dk    °=g |%_,        d|%_-        tS          | |!d|"|d|||¦	  «	        \  }}$}$}$}$}$|"}||j,        z   |_,        t]          j/        | *                    ¦   «         ¦  «        }tS          | |t`           d|j1        d||¬	¦  «        d         }| 2                    | 3                    ¦   «          ¬
¦  «         d„ |D ¦   «         |_4        |D ]}'tk          | |'||dd¬¦  «         Œ|  &                    ¦   «          ||g|_,        tm          |d¦  «         t]          j7        ||¦  «         |d         }(| j8        })| j9        }*|*|dz
           d         }+g },g }-|*d|dz
  …         D ]Z\  }$}$}$}$}.|, :                    |. ;                    dg ¦  «        ¦  «         |- :                    |. ;                    dg ¦  «        ¦  «         Œ[| <                    d¬¦  «        D �]ì}/|/j        d         }0|0rO|0|,vrK|+d                              |0¦  «         |,                     |0¦  «         |) =                    |0|(|dz
  |*¦  «         |/j>        r"|)j?         ;                    |/j>        df¦  «        }1nd}1|1��]d}2t�          |1¦  «        }3|3|-v}4|4r:|+d                              |3¦  «         |-                     |3¦  «         |dz
  |1_A        |1jB        r-|(|1jC        k    rt‰          j*        |(¦  «        |1_C        d|1_B        d}2|1jE        }5|5rPd|5v rd|+d<   |4rE|(|1jC        k    r:t‰          j*        |(¦  «        |1_C        |5D ]}6|( ;                    |6d¦  «        }7|7�d}2 nŒ|1jF        }8|8 '                    ¦   «         D ]G\  }9}:d|:vrŒ
|)jG         ;                    |9d¦  «        };|;jA        }<|<dk    r|9|,v rd|*|<         d         d<   ŒH|2rd|+d<   |1 H                    |(¦  «         �Œî|j        r|}|*|dz
           d         }#|||#fS )aÕ  Take just enough content from the beginning to fill one page.

    Return ``(page, finished)``. ``page`` is a laid out PageBox object
    and ``resume_at`` indicates where in the document to start the next page,
    or is ``None`` if this was the last page.

    :param int page_number:
        Page number, starts at 1 for the first page.
    :param resume_at:
        As returned by ``make_page()`` for the previous page, or ``None`` for
        the first page.

    ÚoverflowÚsizer   z	@footnoteNTFr   )rÒ   rÓ   r¬   rÔ   rÕ   rÖ   )Údyc                 óH   — g | ]}|j         j        d          dk    ¯|j         ‘Œ S )ÚpositionÚfixed)Ú_boxr‹   )re   Úplaceholders     r%   rq   zmake_page.<locals>.<listcomp>´  s;   € ð :ð :ð :Ø(ØÔÔ! *Ô-°Ò8Ð8ð 	ÔØ8Ð8Ð8r'   rÜ   rÞ   ÚanchorsÚcontent_lookups)ÚplaceholdersÚanchorr“   rˆ   Úpages_wantedÚcontent_changed)Ir›   Úviewport_overflowr   ÚPageBoxr‹   r   rÀ   rÁ   rï   rò   Úcontent_box_xÚcontent_box_yrC   Úpage_bottomÚFootnoteAreaBoxr   Úcopy_with_childrenÚ
isinstanceÚBlockLevelBoxÚcreate_block_formatting_contextÚcurrent_pageÚcurrent_page_footnotesÚcurrent_footnote_areaÚreported_footnotesÚ	enumerateÚ	footnotesr‰   Úlayout_footnoteÚreport_footnoter   ÚlistÚbroken_out_of_flowÚvaluesÚ
is_floatedr   Úis_absolutely_positionedr   Úadd_broken_out_of_flowÚfinish_block_formatting_contextÚitemsÚ_excluded_shapesr   rŸ   Úlenr¦   Úforce_fragmentationr	   r©   r   r‡   rß   rÂ   rÖ   r   r�   r¡   r¤   Ú
page_makerÚextendÚgetÚdescendantsÚcache_target_page_countersÚmissing_linkÚcounter_lookup_itemsÚidÚpage_maker_indexÚpendingÚcached_page_counter_valuesrž   Úmissing_countersÚmissing_target_countersÚtarget_lookup_itemsÚparse_again)=rA   Úroot_boxrœ   rá   Úpage_numberÚ
page_stater‹   r‡   Údevice_sizerÎ   rÏ   Úinitial_containing_blockÚfootnote_area_styleÚfootnote_areaÚprevious_resume_atr  ÚiÚreported_footnoterô   rÔ   r×   rà   Úout_of_flow_boxesÚexcluded_shapesr  Úcontext_out_of_flowrB   r¬   Úcontext_boxrÓ   Úout_of_flow_boxÚout_of_flow_resume_atÚshapesÚinitial_root_boxÚinitial_resume_atrâ   rã   ÚparentÚskiprä   Úpage_counter_valuesr¤   r  Úremake_stateÚcached_anchorsÚcached_lookupsÚx_remake_staterè   rÿ   Úcounter_lookupÚcall_parse_againÚcounter_lookup_idÚrefresh_missing_countersr*  Úcounter_nameÚcounter_valueÚtarget_missingÚanchor_nameÚmissed_countersÚitemr'  s=                                                                r%   Ú	make_pagerR  2  sÿ	  € ð ×Ò˜iÑ(Ô(€Eð !Ô2€Eˆ*ÑÝŒ=˜ EÑ*Ô*€Dà”*˜VÔ$€Kå˜˜kÑ*Ô*Ð*à€D„OØ€D„OØ%Ñ€HˆiÝˆt�W˜hÑ'Ô'Ð'Ý��g˜yÑ)Ô)Ð)à×,Ò,Ñ.Ô.€HÔØ×,Ò,Ñ.Ô.€HÔØ"Ô-°´Ñ;€GÔØ#Ðà!×+Ò+¨I°{ÑCÔCÐÝÔ)¨$Ð0CÑDÔD€MÝ˜ tÑ,Ô,Ð,Ø#×1Ò1Ñ3Ô3€MÔØ&Ô2€MÔà„ð 3Ø&ÐØ×.Ò.¨rÑ2Ô2ˆõ �h¥Ô 3Ñ4Ô4Ð4Ð4Ð4Ø×+Ò+Ñ-Ô-Ð-Ø&€GÔØ%'€GÔ"Ø$1€GÔ!à Ô3ÐØ!#€GÔÝ )Ð*<Ñ =Ô =ð ð ÑˆÐØÔ× Ò Ð!2Ñ3Ô3Ð3Ø×*Ò*Ð+<Ñ=Ô=ˆØð 	˜˜Qš˜Ø×#Ò#Ð$5Ñ6Ô6Ð6Ø);¸A¸B¸BÔ)?ˆGÔ&ØˆEøð €MØÐØÐØÐÝ!¥$Ñ'Ô'€OØÐØ!Ô4×;Ò;Ñ=Ô=ÐØ!3€GÔØ:Mð 6ð 6Ñ6ˆÐ˜{¨JØð 	AØ×3Ò3°KÑ@Ô@Ð@Ø!×/Ò/Ñ1Ô1ˆŒØ�>Š>ÑÔð 		Ý5AØ˜Ð.Ð0@Ø  ! Zñ61ô 61Ñ2ˆOÐ2ð ˜KÔ(×/Ò/°Ñ@Ô@Ð@Ð@à×/Ò/Ñ1Ô1Ð1Ð1Ð1Ý5HØ˜Ð.Ð0@À!Øñ6ô 6Ñ2ˆOÐ2ð 	× Ò  Ñ1Ô1Ð1ØˆØ ð 	OØ×*Ò*Ø Ð&6Ð8MñOô Oð Oàð 	6Ø×3Ò3Ñ5Ô5Ð5øð  /×4Ò4Ñ6Ô6ð 7ð 7Ñˆ�VØ06ˆÔ  Ñ-Ð-ð  ÐØ!ÐÝ.@Ø�˜1˜iÐ)AØÐ'Ð)9Ð;Lñ/Nô /NÑ+€Hˆi˜ A q¨!ð ð &ð !Ð Ð Ð Ø*:×*CÒ*CÑ*EÔ*EÐEˆÐEˆfÐ'Ø&ˆ
Øð 	2�S ™_œ_°Ò1Ð1Ø",×"2Ò"2Ñ"4Ô"4ÑÑˆT�:Øœ, tÔ,¨c�ˆCð ð 	2�S ™_œ_°Ò1Ð1ð ˆŒØ%)ˆÔ"Ý"4ØÐ% qÐ*;Ð=UØÐ"Ð$4Ð6Gñ#Iô #IÑˆ�!�Q˜˜1˜að &ˆ	Ø)¨HÔ,=Ñ=€HÔåÔ0°×1GÒ1GÑ1IÔ1IÑJÔJ€MÝ&Ø�­c¨T¸dØ&Ô+¸4Ø'Ð5EðGñ Gô Gð HIôJ€Mð ×Ò × ;Ò ;Ñ =Ô =Ð=ÐÑ>Ô>Ð>ð:ð :Ø,<ð:ñ :ô :€DÔð )ð ð ˆÝØ�\ 4Ð)9ÈØð	ñ 	ô 	ð 	ð 	ð ×+Ò+Ñ-Ô-Ð-à˜}Ð-€D„Mõ % U¨DÑ1Ô1Ð1Ý	Ô˜* eÑ,Ô,Ð,Ø$ Qœ-Ðð Ô/ÐØÔ#€Jð ˜k¨A™oÔ.¨rÔ2€Lð
 €NØ€NØ(2Ð3C°KÀ!±OÐ3CÔ(Dð Ið IÑ$ˆˆAˆq�!�^Ø×Ò˜n×0Ò0°¸BÑ?Ô?Ñ@Ô@Ð@Ø×Ò˜n×0Ò0Ð1BÀBÑGÔGÑHÔHÐHÐHà×!Ò!¨tÐ!Ñ4Ô4ð M@ñ M@ˆà”˜XÔ&ˆØð 	J�f NÐ2Ð2Ø˜Ô#×*Ò*¨6Ñ2Ô2Ð2Ø×!Ò! &Ñ)Ô)Ð)à×7Ò7ØÐ+¨[¸1©_¸jñJô Jð Jð Ôð 	"à-ÔB×FÒFØÔ# YÐ/ñ1ô 1ˆNˆNð "ˆNð Ñ%Ø$Ðõ !# >Ñ 2Ô 2ÐØ'8ÀÐ'NÐ$Ø'ð BØÐ.Ô/×6Ò6Ð7HÑIÔIÐIØ×%Ò%Ð&7Ñ8Ô8Ð8Ø2=À±/�Ô/ð Ô%ð (Ø'Ø&ÔAòBð Bå@DÄØ+ñA-ô A-�NÔ=à).�Ô&Ø#'Ð ð
  .Ô>ÐØð "ØÐ.Ð.Ð.Ø37�L Ñ0Ø+ð 
"Ð0CØ&ÔAò1Bð 1Bõ œÐ&9Ñ:Ô:ð #Ô=à(8ð "ð "˜Ø(;×(?Ò(?Ø(¨$ñ)0ô )0˜à(Ð4Ø/3Ð,à!˜Eð 5ð ,ÔCˆNØ0>×0DÒ0DÑ0FÔ0Fð Lð LÑ,�˜_Ø /Ð1Ð1Øà'Ô;×?Ò?Ø ñ'ô '�à#'Ô#8Ð Ø# qÒ(Ð(¨[¸NÐ-JÐ-JØGK�JÐ/Ô0°Ô4°^ÑDøð  ð @Ø26�Ð.Ñ/Ø×*Ò*Ð+>Ñ?Ô?Ð?ùà„ð 3Ø&ˆ	Ø˜{¨Q™Ô/°Ô2ˆ	à�˜IÐ%Ð%r'   c                 ó  — |                      | ¦  «         |                     | |j        |j        |j        ¬¦  «         |                     ¦   «         D ]1\  }}|r*|| k    r$|                     |||j        ||j        ¬¦  «         Œ2dS )zASet style for page types and pseudo-types matching ``page_type``.)ÚrootrA  Úbase_url)rŒ   rT  rA  rU  N)Úadd_page_declarationsÚset_computed_stylesÚetree_elementrU  Úget_cascaded_styles)rœ   Úhtmlr›   ÚelementrŒ   s        r%   Úset_page_type_computed_stylesr\  ,  s¸   € à×#Ò# IÑ.Ô.Ð.ð ×!Ò!Øð Ô¨Ô(:Ø”ð "ñ  ô  ð  ð !*× =Ò =Ñ ?Ô ?ð (ð (Ñˆ�Øð 	(˜7 iÒ/Ð/Ø×)Ò)Ø [àÔ'°Øœð	 *ñ (ô (ð (øð(ð (r'   c                 ó€   — |sdS |                      ¦   «         \  \  }}| �|| vrdS |€dS t          | |         |¦  «        S )NTF)r  Ú_includes_resume_at)rá   Úpage_group_resume_atÚpage_child_indexÚpage_child_resume_ats       r%   r^  r^  B  sb   € Øð ØˆtØ0D×0JÒ0JÑ0LÔ0LÑ-Ñ,ÐÐ+ØÐÐ,°IÐ=Ð=ØˆuØÐ#ØˆtÝ˜yÐ)9Ô:Ð<PÑQÔQÐQr'   c                 óŠ  — t          | ¦  «        }t          | d d …         ¦  «        D ]D\  }}t          ||d         ¦  «        r|dxx         dz  cc<   Œ,|                      ||z
  ¦  «         ŒE|s@|r|d         dk    s|d         s|d         S | r | d         d         |d         k    r|d         S t	          j        |¦  «        pdd ix}}	|}
	 t          |                     ¦   «         ¦  «        d         \  }}|
}|
j        |         }
|€n|}Œ?|r|j	        d         S 	 |
j	        d         |d         k    r&|  
                    |d         d|	g¦  «         |d         S t          |
t          j        ¦  «        s|d         S t          |
j        ¦  «        D ].\  }}|                     ¦   «         sŒ|d i||<   ||         }|}|}
 n|d         S Œ«)Nr   r   Úbreakr¾   r‡   rÞ   r   )r  r  r^  Úpoprž   rŸ   rŠ   r  r¦   r‹   r‰   r	  r   Ú	ParentBoxÚis_in_normal_flow)Úpage_groupsrá   râ   r.  r   Úpage_groups_lengthr6  Ú
page_groupÚcurrent_resume_atr_  Úcurrent_elementÚchild_indexÚchild_resume_atÚparent_elementrè   s                  r%   Ú_update_page_groupsro  M  sD  € õ ˜[Ñ)Ô)ÐÝ" ;¨q¨q¨q¤>Ñ2Ô2ð 4ð 4‰ˆˆ:Ý˜y¨*°Q¬-Ñ8Ô8ð 	4Ø�qˆMˆMŒM˜QÑˆMˆM‰MˆMà�OŠO˜AÐ 2Ñ2Ñ3Ô3Ð3Ð3ð ð %Øð 	%˜) GÔ,°Ò5Ð5¸iÈÔ>OÐ5à˜VÔ$Ð$Øð 	%˜; rœ?¨1Ô-°¸6Ô1BÒBÐBà˜VÔ$Ð$õ 04¬}¸YÑ/GÔ/GÐ/TÈAÈtÈ9ÐTÐÐ,Ø€Oð,Ý',Ð->×-DÒ-DÑ-FÔ-FÑ'GÔ'GÈÔ'KÑ$ˆ�_Ø(ˆØ)Ô2°;Ô?ˆØÐ"ØØ+Ðð,ð ð ,àÔ# FÔ+Ð+ð%ØÔ  Ô(¨I°fÔ,=Ò=Ð=Ø×Ò 	¨&Ô 1°1Ð6JÐKÑLÔLÐLØ˜VÔ$Ð$Ý˜/­5¬?Ñ;Ô;ð 	%à˜VÔ$Ð$Ý! /Ô":Ñ;Ô;ð 
	%ð 
	%‰HˆAˆuØ×*Ò*Ñ,Ô,ð ØØ./°¨YÐ˜kÑ*Ø 1°+Ô >ÐØˆKØ#ˆOØˆEð ˜VÔ$Ð$ð#%r'   c                 ó¢  — |j         }||          \  }}}}}	t          j        |¦  «        }|d         dv r	|d         }
n3|d         dv r'|j        d         dk    }|d         dk    }||z  rdnd}
nd	}
t	          |
dk    r|p|
dk    o| p
|j        o|d	u ¦  «        }|rdnd}|d
         }t          |||||¦  «        }t          d„ |D ¦   «         ¦  «        }t          |||| |¦  «        }t          |||j
        ¦  «         |d         dk    p|d         |_        d|_        | dz   }t          ||||||¦  «        \  }}}|sJ ‚| }| dz   t          |¦  «        k    rd}n)|| dz            \  }}}}}	||k    p||k    p||k    p||k    }|rIddg g dœ}|d	u|d<   |||||f}| dz   t          |¦  «        k    r|                     |¦  «         n||| dz   <   ||fS )a¨  Return one laid out page without margin boxes.

    Start with the initial values from ``context.page_maker[index]``.
    The resulting values / initial values for the next page are stored in
    the ``page_maker``.

    As the function's name suggests: the plan is not to make all pages
    repeatedly when a missing counter was resolved, but rather re-make the
    single page where the ``content_changed`` happened.

    rc  )rš   r˜   )ÚrectoÚversoÚ	directionÚltrrr  r˜   rš   Né   c              3   ó&   K  — | ]\  }}}||fV — Œd S r   r=   )re   r   r   rã   s       r%   rg   zremake_page.<locals>.<genexpr>©  s,   è è € ÐCÐC¡^ T¨5°!�D˜%�=ÐCÐCÐCÐCÐCÐCr'   r¾   r‡   Fr   T)r  r   rü   rý   r  )r  rž   rŸ   r‹   Úboolr  ro  rŠ   r   r\  r›   Úforced_breakÚmargin_clearancerR  r  r‰   )r   rA   r.  rZ  r  rá   râ   Ú
right_pager0  rã   Únext_page_sideÚdirection_ltrÚbreak_versor   r   rg  r   r   rœ   r/  r‡   Úpage_maker_next_changedÚnext_resume_atÚnext_next_pageÚnext_right_pageÚnext_page_staterD  rQ  s                               r%   Úremake_pagerƒ  ˆ  sº  € ð Ô#€JØ6@ÀÔ6GÑ3€Iˆy˜* j°!õ ”˜zÑ*Ô*€JØ�ÔÐ.Ð.Ð.Ø" 7Ô+ˆˆØ	�7Ô	Ð1Ð	1Ð	1Ø œ {Ô3°uÒ<ˆØ Ô(¨GÒ3ˆØ$1°KÑ$?ÐK˜˜ÀVˆˆàˆÝØ	˜6Ò	!Ð	0 jð 	;Ø	˜7Ò	"Ð	5¨: ~ð	;à	Ô	#Ð	9¨	°TÐ(9ñ<ô <€Eð !Ð,ˆ7ˆ7 f€DØ˜Q”-€KÝ˜{¨I°yÀ(ÈEÑRÔR€DÝÐCÐC°{ÐCÑCÔCÑCÔC€FÝ˜˜u d¨E°6Ñ:Ô:€IÝ! )¨T°7Ô3DÑEÔEÐEà% gÔ.°%Ò7ÐL¸9ÀVÔ;L€GÔØ$€GÔð ˜!‘)€KÝ!*Ø�˜9 i°¸jñ"Jô "JÑ€Dˆ)�YàÐÐÐØ�€Jð ˆq�y•C˜
‘O”OÒ#Ð#à"&ÐÐð �u˜q‘yÔ!ñ 	Lˆ˜¨¸È!ð ˜iÒ'ð *Ø˜iÒ'ð*à˜zÒ)ð*ð ˜zÒ)ð	 	 ð ð )ð  %Ø!ØØ!ð	
ð 
ˆð +4¸4Ð*?ˆÐ&Ñ'Ø˜) Z°¸\ÐIˆØ�1‰9�˜J™œÒ'Ð'Ø×Ò˜dÑ#Ô#Ð#Ð#à$(ˆJ�u˜q‘yÑ!à�ˆ?Ðr'   c              #   ó6  K  — d}d}	 | j         |         d         }t          |¦  «        dk    s|d         s|d         rMt          j        d|dz   ¦  «         d	|d<   d	|d<   g |d
<   g |d<   t	          || ||¦  «        \  }}| j        }|V — n:t          j        d|dz   ¦  «         | j         |dz            d         }d}||         V — |dz  }|€M|sK| j         d|dz   …         | _         | j                             ¦   «          | j                             ¦   «          dS �Œ)zaReturn a list of laid out pages without margin boxes.

    Re-make pages only if necessary.

    r   NTrÞ   r  r   z"Step 5 - Creating layout - Page %dr   Frü   rý   z/Step 5 - Creating layout - Page %d (up-to-date))r  r  r
   Úinforƒ  r  r  Úclear)	rA   r.  rZ  rˆ   r6  r  rD  r‡   rá   s	            r%   Úmake_all_pagesr‡  Ú  sn  è è € ð 	
€AØÐðØÔ)¨!Ô,¨RÔ0ˆÝ�‰JŒJ˜!ŠOˆOØÐ.Ô/ð à˜^Ô,ð õ Ô Ð!EÀqÈ1ÁuÑMÔMÐMà.3ˆLÐ*Ñ+Ø+0ˆL˜Ñ(Ø&(ˆL˜Ñ#Ø.0ˆLÐ*Ñ+Ý)¨!¨W°hÀÑEÔE‰OˆD�)Ø!(Ô!;ÐØˆJˆJˆJˆJåÔ ØAÀ1ÀqÁ5ñJô Jð JàÔ*¨1¨q©5Ô1°!Ô4ˆIØ!%ÐØ˜”(ˆNˆNˆNà	ˆQ‰ˆØÐÐ%7Ðà!(Ô!3°F°Q¸±U°FÔ!;ˆGÔØÔ&×,Ò,Ñ.Ô.Ð.ØÔ&×,Ò,Ñ.Ô.Ð.ØˆFñ7r'   )0Ú__doc__rž   Úcollectionsr   r   Úmathr   Úcssr   Úformatting_structurer   r	   Úloggerr
   Úabsoluter   r   Úblockr   r   Úfloatr   Úmin_maxr   r   Úpercentr   Ú	preferredr   r   r   r   r?   rS   rm   r‚   r�   rÐ   rÄ   rì   rï   rò   rR  r\  r^  ro  rƒ  r‡  r=   r'   r%   ú<module>r”     s°  ðØ -Ð -à €€€Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø Ð Ð Ð Ð Ð à  Ð  Ð  Ð  Ð  Ð  Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø $Ð $Ð $Ð $Ð $Ð $Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ø Ð Ð Ð Ð Ð Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø (Ð (Ð (Ð (Ð (Ð (Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;àˆ:�jÐ"NÐ"NÐ"NÑOÔO€ðKð Kð Kð Kð Kñ Kô Kð Kð4ð ð ð ð �+ñ ô ð ð:&ð &ð &ð &ð &�Kñ &ô &ð &ðDD!ð D!ð D!ðNT%ð T%ð T%ðn7ð 7ð 7ð2B<ð B<ð B<ðJð ð ð@!ð !ð !ð> ðNð Nñ ÔðNð ðMð Mñ ÔðMðw&ð w&ð w&ðt(ð (ð (ð,Rð Rð Rð8%ð 8%ð 8%ðvOð Oð Oðd#ð #ð #ð #ð #r'   