+
    	i^                     2   R t ^ RIHt ^RIHt ^RIHtHt ^RIH	t	 ^RI
Ht ^RIHtHtHt ^RIHt ^RIHt ^R	IHt ^R
IHtHtHt ^RIHt ^RIHtHt R!R ltR t R t!]R 4       t"R t#R t$R t%R t&R t'R t(R t)R t*R t+R t,R t-R t.R t/R t0R  t1R# )"zCPage breaking and layout for block-level and block-container boxes.)inf)boxes)AbsolutePlaceholderabsolute_layout)columns_layout)flex_layout)avoid_collisionsfloat_layoutget_clearance)grid_layout)iter_line_boxes)handle_min_max_width)
percentageresolve_percentagesresolve_position_percentages)block_replaced_box_layout)table_layouttable_wrapper_widthNc                   Vf   . MTpVf   . MTpVf   . MTp\        V\        P                  4      '       Eg9   \        W4       VP                  R8X  d   ^ Vn        VP
                  R8X  d   ^ Vn        V P                  ^8  dx   V'       dp   VP                  ;'       g    TpV'       dR   VP                  R,          R8X  d	   ^ Vn        M1VP                  R,          R8X  d   V P                  '       g   ^ Vn        \        . VOVP                  N4      p\        WV4      Vn        VP                  e>   VP                  V,           VP                  ,           pWP                  ,
          Vn        . p\        WW#VWVWxWW4      # )z Lay out the block-level ``box``.automargin_breakdiscard)
isinstancer   TableBoxr   
margin_topmargin_bottomcurrent_pageis_for_root_elementstyleforced_breakcollapse_marginr
   	clearance
position_yblock_level_layout_switch)contextboxbottom_space
skip_stackcontaining_blockpage_is_emptyabsolute_boxesfixed_boxesadjoining_marginsfirst_letter_stylefirst_line_styler   	max_linescollapse_with_pagecollapsed_margintop_border_edges   &&&&&&&&&&&&&   ]/Users/agent/.openclaw/workspace/venv/lib/python3.14/site-packages/weasyprint/layout/block.pyblock_level_layoutr4      s[   
 *1R~N#+"K/7=Nc5>>**C2>>V#CN& !C!# !44 " "!  "99^,	9%&CNYY~.&8"///)**+O->+O+OP%g4DE==$!nn/??#--OO,~~=CN "$l0@{gB B    c                0   \        V\        P                  4      '       d   \        WW#VWVV4      pM\        V\        P                  4      '       d   \        WW#VWVWxWW4      # \        V\        P                  4      '       d   \        WV4      pM\        V\        P                  4      '       d   \        WW#VWVW{4	      pMR\        V\        P                  4      '       d   \        WW#VWVV4      pM"\        R\        V4      P                   R24      h. VORN5# )z;Call the layout function corresponding to the ``box`` type.zLayout for z not handled yetN)r   r   r   r   BlockBoxblock_box_layoutBlockReplacedBoxr   FlexBoxr   GridBoxr   	TypeErrortype__name__)r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r   r/   results   &&&&&&&&&&&&& r3   r#   r#   A   s   
 #u~~&&,4D;8 
C	(	(,4D;'F 	F 
C//	0	0*79IJ	C	'	',4D;A 
C	'	',4D;8 +d3i&8&8%99IJKKV?T?r5   c                b   VP                   R,          R8w  g   VP                   R,          R8w  d   \        WW#WEWgWV
4      pV^,          pVff   V^ ,          pVP                  VP                  ,           VP                  ,           pV'       d'   \        W.Wg4       VV,          p\        WW#VWVWxW4      p. VORN5# VP                  '       d#   \        WVP                  VP                  34       \        W4       \        WW#WVWxWVV4      pV^ ,          ;p'       d%   VP                  '       g   VP                  '       d   V# VP                  '       g   VP                  4       '       dG   \        WVRR7      w  pppVP!                  VVP"                  ,
          VVP$                  ,
          4       V# )zLay out the block ``box``.column_widthr   column_countNF)outer)r   r   r   padding_bottomborder_bottom_widthremove_placeholdersis_table_wrapperr   widthheightblock_level_widthblock_container_layout	is_columnis_flex_itemestablishes_formatting_contextr   	translate
position_xr"   )r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r   r/   r?   	resume_atnew_boxcolumns_bottom_spacerP   r"   _s   &&&&&&&&&&&&&       r3   r8   r8   ^   s   
 			.!V+IIn%/,4D): 1I	QiG%%(>(>>++, ! $#YE 44',<L!;&: 				+113C3J3JK	Mc,#l(:gF ay G W%6%6%6':N:N:N7#I#I#K#K %5.e%=!
J+++Z':L:L-L	NMr5   c                `   \        V\        P                  4      '       d!   VP                  pVP                  R,          pMV^ ,          pRpV P
                  pV P                  pV P                  pV P                  pV P                  pV P                  p	V P                  p
Wg,           V,           V	,           pV P                  R8w  dK   W,           pVR8w  d	   W,          pVR8w  d	   W,          pW8  d   VR8X  d	   ^ ;q@n        VR8X  d	   ^ ;qPn        V
R8w  d\   VR8w  dU   VR8w  dN   VR8X  dG   V P                  '       g5   V ;P                  W+,
          V
,
          V,
          V,
          ,          un        V
R8X  d;   VR8X  d	   ^ ;q@n        VR8X  d	   ^ ;qPn        VW,           V,           ,
          ;qn        W+,
          V
,
          pYEu;8X  d   R8X  d"   M MV^,          V n        V^,          V n        R# VR8X  d   VR8w  d   W,
          V n        R# VR8w  d   VR8X  d   W,
          V n        R# R# R# )zSet the ``box`` width.	directionltrr   rtlN)r   r   BoxrH   r   margin_leftmargin_rightpadding_leftpadding_rightborder_left_widthborder_right_widthrL   rP   )r%   r(   cb_widthrV   margin_lmargin_r	padding_l	padding_rborder_lborder_rrH   paddings_plus_borderstotal
margin_sums   &&            r3   rJ   rJ      s    "EII..#))$**;7	#A&	
 HH  I!!I$$H%%HIIE &1H<xG
yyF%-vEvE6!-..?6!.//+8v-(f2DcmmmNN0588ChNPN v)**Hv*++H'$!,x79 	9	1E9J%v%$q.%>	V	F 2$/	V	F 2%0 !3	r5   c                   V P                   R,          R8X  d   \        W4       V P                  R8w  dE   V P                  R8w  d4   V P                   R,          R8X  d   V P                  pMMV P                  ) pM?V P                  R8w  d   V P                  pM!V P                  R8w  d   V P                  ) pM^ pV P                  R8w  d   V P                  pM!V P
                  R8w  d   V P
                  ) pM^ pV P                  W#4       \        V \        P                  \        P                  34      '       d!   V P                   F  p\        WA4       K  	  R# R# )z5Translate the ``box`` if it is relatively positioned.positionrelativer   rV   rW   N)r   r   leftrighttopbottomrO   r   r   	InlineBoxLineBoxchildrenrelative_positioning)r%   r(   translate_xtranslate_ychilds   &&   r3   rt   rt      s    
yy
*$S;88v#))v"5yy%.!hh"yyjXX((KYY& 99*KK77f''KZZ6!::+KKk/#788\\E 9 " 9r5   c
           
         R p
RpRpRpV;P                   \        V4      ,          un         VP                  4       '       db   \        V4      ;rW.n        VP                  V4       VP                  R,          R8X  d   VP                  V4       EM{VP                  V4       EMhVP                  4       '       d   \        WWWyRR7      w  rV P                  WP                   VP                  ,           4      pT;'       d    V'       * ;'       g     V'       * ;'       g    VP                  4       pV'       d   W,n        VP                  V4       M\        V4      p\        VV4      pVR/pRpRp
V'       d1   \        VV 4      '       d   \        WWg4      pV'       d   Vw  VR&   pRpMeVP!                  4       '       dP   VP                  R,          ^,          pV P"                  pV P$                  V,          V,          P                  V4       WW3# )FNrk   absoluter'   T:NNN)r"   r    is_absolutely_positionedr   indexappendr   
is_floatedr	   overflows_pagerI   is_monolithicfind_last_in_flow_childblock_level_page_breakavoid_page_breakfind_earlier_page_break
is_runningr   running_elements)r$   r%   r|   rw   new_childrenr)   r*   r+   r,   r&   stoprQ   	new_childout_of_flow_resume_atplaceholderpage_overflow	add_childlast_in_flow_child
page_breakr?   running_namepages   &&&&&&&&&&            r3   _out_of_flow_layoutr      s    DII 
 
(9:: %%''"5e"<<	!K(;;z"j0!!+.{+ 
				+7C,(	
  ....1A1AAC //</        	 #O	* "9!F/0BEJJI$(!D 0W E E0>H17.LOY $I 
				{{:.q1##  .t4;;EBI<<r5   c                   \        V4      VP                  R,          ,
          pV^ 8  d$   V'       g   \        WP                  W4       RRV3# WK8  d$   V'       g   \        WP                  W4       RRV3# V'       d.   WK8:  d(   W4) R  F  p\        WP                  W4       K  	  W4) R1 \        WP                  W4       RRWg/3# )zSBreak line where allowed by orphans and widows.

Return (abort, stop, resume_at).

orphansTFN)lenr   rF   rs   )r$   r%   liner   neededr)   r|   r'   rQ   r*   r+   over_orphansrw   s   &&&&&&&&&&&  r3   _break_liner   0  s     |$syy';;La 	G]]NPUI%% ]G]]NPUI%%&(!'(+EF , "L$+++r5   c                 z	  a  R ;ppRp. p\        VP                  4      ^8X  g   Q R4       hV'       d   V
\        V4      ,          p
Tp\        S W:WVWgW4
      p\	        V4       EF2  w  pw  ppVe3   V^ 8X  d#   VP
                  R,          VR,          n         EM V^,          pVVn        VP                  VP                  ,           pVVRJ ,          pV'       d   VP                  VP                  ,           pM^ pT;'       g    V'       * ;'       d    S P                  V	VV,           4      pV'       Ed   R;ppVP
                  R,          ^,
          pV F  pV^,          pVR8X  g   K   M	  \        V4      ^,           VP
                  R,          8  d   R pM	V^ 8  d   R p\        V4      VP
                  R,          8  d   R pM	V^ 8  d   R p\        ^ V4      pS P                  '       * ;'       d    T;'       d    V'       * p^ p V'       ds   S P                  '       da   S P!                  S P                  R,          4       V ^,          p S P                  V	VV,           4      '       d   Kf  VP#                  V4       RpM\%        S VVVVWRVVWg4      w  pppV ^8  d/   S P&                  RV ) ^,
          R1,          p!V!S P&                  V ) R%  EMV'       dP   S P                  V	V4      '       d8   VVP(                  ,          pVP+                  ^ VP(                  ) 4       ^ Vn        S P,                  '       EdG   R p"V 3R lVP/                  4        4       p#V# EF  p$S P1                  V$4      pVP#                  V$4       T;'       g.    S P&                  ;'       g    S P                  V	VV,           4      pV'       g   Kg  S P!                  V$4       V'       g   V'       d   K  V$P
                  R,          R	8X  dZ   VP
                  R,          ^,
          ;p'       d   V F  pV^,          pV^ 8X  g   K   M	  \%        S VVVVVW+VVV4      w  pppRp" M#V$P
                  R,          R
8X  g   EK  R;pp" M	  V"'       d    MVP#                  V4       Tp
TpEK5  	  V'       d   W$R,          P                  /pVVVV
VV3# )FNz$line box with siblings before layoutblock_ellipsisTwidowsr   c              3   v   <"   T F.  pVP                   SP                  9   g   K   VP                   x  K0  	  R # 5iN)footnote	footnotes).0
descendantr$   s   & r3   	<genexpr>"_linebox_layout.<locals>.<genexpr>  s4      =6H
&&'*;*;; $
##6Hs   99footnote_policyr   block)r   rs   r    r   	enumerater   r   rQ   r"   rI   rE   rD   r   max	in_columncurrent_page_footnotesreport_footnoter}   r   reported_footnotesr   rO   r   descendantslayout_footnote)%r$   r%   r|   rw   r   r)   r*   r+   r,   r&   r"   r'   r-   r.   draw_bottom_decorationr/   abortr   rQ   new_footnotesnew_containing_blocklines_iteratorir   new_position_yoffset_yoverflowcould_break_beforecan_break_nowr   rT   reportr   extrabreak_lineboxr   r   s%   f&&&&&&&&&&&&&&&                     r3   _linebox_layoutr   N  s    EDIMs||!I#II!o&788
$L>R%7KN !*. 9D) A~25))<L2MR /NI #4;;6 	)t"33!..1C1CCHH
 ... L L""<(1JK 	 8 265YYx(1,F#!R<	 $
 < 1$syy';; %1 %< 399Y#77%*"!%*"F^F ***WW}WWEWAWF!"W;;;''(F(Fr(JK"a'"--lNX<UVV ''-D)4S$fm	>*H&tY "Q&2227I6I!6KB3NOCH**,>+>+?@ w55lNSS cnn,NNN1s~~o.CN!M=6:6F6F6H=I &"228<$$X. T T..T T**<(9RS  8++H5
 $==#>>*;<F),8)<q)@@v@)7A$*aKF'-{(-	 *8
 6A 'dL&- %9n +6-2E4 -1M!%^^,=>'I488EM!; &< D!#

m !:p ,667	$	:}iGGr5   c                    R ;pp\        V4      pVe_   \        VV4      p\        VV4      pV'       g   \        VV 4      '       d,   VP	                  4       ^ ,          pRVRV/pVR/pRpVVVWWV3# MRpVP
                  '       EgO   \        W14       VEf?   VP                  4       '       Ed(   \        V4      pVP                  pVR8X  d   ^ pM`V P                  ^8  dP   V'       dH   VP                  R,          R8X  d   ^ pM,VP                  R,          R8X  d   V P                  '       g   ^ p\        . VOVN4      pVV,
          pV F  pVP                  VR7       K  	  \        WV4      pVed   V F  pVP                  V) R7       K  	  \        V4      pV;P                  VVP                  ,
          ,          un        . pVP!                  4       p
V'       d   VP
                  '       d(   \        V4      pV;P                  V,          un        . pM\#        V\$        P&                  4      '       g   VP                  R	,          R8X  d   ^ pM2\)        VP                  R	,          VP                  VP*                  4      pVP-                  V4       \        V4      V,
          pV;P                  V,          un        . pT;'       d:    \.        ;QJ d    R
 V 4       F  '       g   K   RM	  R M! R
 V 4       4      '       * p \1        WWVV WgWWV4      w  p!ppp"p#pV!Ee   V#'       Eg^   V!P!                  4       V!P2                  ,           p$V P5                  V	V$4      p%V	V!P6                  V!P8                  ,           ,          p	VP;                  4       '       g   V	V!P<                  ,          p	V!P?                  4       V!PA                  4       ,           p&V P5                  V	V&4      p'T ;'       g    VPC                  4       '       * p(V('       d   V%'       d   \E        V V!.Wg4       Rp!MfV('       d]   V''       dU   \E        V V!.Wg4       \1        WWVV WgWV4      w  p!ppp"p#pV!'       d&   V!P?                  4       V!PA                  4       ,           p
MT&p
T"pV!'       d   VP-                  V!P<                  4       V!'       d8   V!PF                  '       d&   V!P?                  4       V!PA                  4       ,           p
V!f   \I        VV 4      '       d6   \K        WWg4      p)V)'       d   V)w  ppRpVVVWWV3# V'       g   RpVVVWWV3# \L        ;QJ d    R V 4       F  '       d   K   R M	  RM! R V 4       4      '       d   \E        WWg4       . pV'       d   VR/pRpMRpVVVWVVV3# VV!n'        VP-                  V!4       Ve   VV/pRpVVVWVVV3# )FNbreakr   Tr   r   r   )dyr   c              3   V   "   T F  p\        V\        4      '       d   K  Vx  K!  	  R # 5ir   )r   r   r   rw   s   & r3   r   "_in_flow_layout.<locals>.<genexpr>(  s#      ?7'%%!45 	<s   )
)c              3   @   "   T F  qP                  4       x  K  	  R # 5ir   )r{   r   s   & r3   r   r   v  s     J\E--//\s   )(r   r   block_level_page_nameforce_page_breakpage_valuesrG   r   top_margin_collapsesr    r   r   r   r   rO   r
   r"   content_box_yr   r   r7   r   rH   r}   anyr4   rI   r   rD   rE   bottom_margin_collapsesr   border_box_yborder_heightr   rF   r!   r   r   allr|   )*r$   r%   r|   rw   r   r)   r*   r+   r,   r&   r"   r'   r-   r.   r   	next_pager/   r   r   r   r   	page_namerQ   old_collapsed_marginchild_margin_topnew_collapsed_margincollapsed_margin_differenceprevious_new_childr!   r1   r   r   page_is_empty_with_no_childrenr   next_adjoining_marginscollapsing_throughnew_content_position_ycontent_page_overflowr   border_page_overflow	can_breakr?   s*   &&&&&&&&&&&&&&&&&                         r3   _in_flow_layoutr     s    ED 1>%+,>F
)*<eD	(W==))+A.I *fi@IIDtY
4 4 > 
 E'%#*B*B*D*D $33D#E   %//6)#$ %%)m99^,	9'($YY~.&8"///+,(#26#6%56$8  %';; (&2"",,0K,L '3%g6JKI$*6&&0077 1 9 +7 $33D#E "2S^^"CC$&! ..0
 ./@A 00 "E5>>22{{<(F2
'KK-u{{CIIG
$$Z0&'89JFH( "%2 &7 &733 ?7'?7333 ?7'?7 <7 87"
 '9	38V	&7	I'/$Y	9&< !!%.%<%<%>AQAQ%Q"$+$:$:4%6!
 I44y7T7TTTL..00	 7 77&335	8O8O8QQN#*#9#9,#W ;RRs?P?P?RSI2#Gi[.V 	3 $Gi[.V2D\s3^&3<0Iy2H#Y !*!7!7!9I<S<S<U!UJ+
 3$$Y%<%<= ,,,"//1I4K4K4MMJJ00,~DF*0'i4JY8 8
 % !EtY
!< < 3J\J333J\JJJ  ~SLID E4J9)% 	% IO	"I&	 	tY
yi! !r5   c                   \        V\        P                  4      '       g   Q hVP                  4       '       d   V P	                  V4       VRJ pVP                  V'       * RR7       WP                  R,          R8H  ,          p
T
;'       g    VP                  R,          R8H  pVf   . pV'       d5   W!P                  VP                  ,           VP                  ,           ,          pVP                  VP                  4       TpVP                  4       '       d   VP                  pMEV;P                  \        V4      VP                  ,
          ,          un        . pVP                  4       pVP!                  4       pVP                  R,          R	8X  d   . p. pR
RRR/pVP                  R,          R8w  d,   \#        VP                  R,          T;'       g    \$        4      pVP&                  eH   VP&                  P(                   Uu/ uF  pVVP&                  V,          bK  	  ppV	f   Tp	M	V	V,          p	VP*                  eH   VP*                  P(                   Uu/ uF  pVVP*                  V,          bK  	  ppVf   TpM	VV,          pV'       d   ^ pMVP-                  4       w  w  pp\/        VP0                  VR T;'       g    ^ R7       EF  w  ppVVn        VVn        . pVP5                  4       '       g   Rp\7        WVVVVWVWr4
      w  ppppV'       d   V P9                  VVVV4       VP:                  '       db   VP=                  4       Vn        VP                  R,          R8X  d5   V;P2                  VP>                  VP@                  ,           ,          un        EM\        V\        PB                  4      '       d-   \E        WVVVVWVWrWWW4      w  ppppppVVRJ ,          p. pR;rM\G        WVVVVWVWrWWV
VV4      w  ppprpppRpR;rRVV39  d   TpV^ 8:  d   RpVVP0                  R,          8H  p V '       g|   Tp!V!'       dr   V!R,          p \        V \        PB                  4      '       d   VP                  R,          V n$        M.\        V \        PJ                  4      '       d   V P0                  p!Kx   V'       d   VPM                  4       ^ ,          p"\O        WP0                  VR WV4       V F  p#V PQ                  V#4       K  	  VP                  4       '       d   V PS                  4        RRR
RRV"/. RV3u # V'       g   EK  VPT                  R8w  dN   VP                  VPW                  4       ,           p$\        V4      p%V PY                  V$VV%,
          4      '       d   Rp. p M	  RpVRJ;'       g    VPZ                  p&VP                  R,          R8X  d   RpV&'       d|   \]        VP                  R,          V 4      '       dY   V'       gQ   \O        V . VOVP0                  VR OWV4       VP                  4       '       d   V PS                  4        RRR
RRR/. RV3# VP                  4       '       d4   V;P                  \        V4      VP                  ,
          ,          un        \_        V4      p'Rp(V'f   \        V4      p)VPT                  R9   d   \a        WV)4      f   \b        ;QJ dS    R VPd                  VPf                  VPh                  VP                  VP                  3 4       F  '       d   K   RMH	  RMD! R VPd                  VPf                  VPh                  VP                  VP                  3 4       4      '       d   Rp(MVV),          p. pMVPT                  R8w  d   . pVPk                  4       '       g   V\        V4      ,          p. pV&'       dJ   V'       dB   VR,          p \        V \        PB                  4      '       d   VP                  R,          V n$        VPm                  V4      p*T*P                  V'       * T&;'       d    V
'       * R7       V*PT                  R8X  d   V Pn                  '       dA   V*P                  R,          R8w  d)   \q        R V Pn                   4       4      p+\q        V+V4      pVV*P                  4       u;8X  d   \$        8X  d   M M^ V*n*        MVV*P                  4       ,
          V*n*        V*P                  R,          R	8X  d   V F  p,\s        V V,V*WbRR7       K  	  V*P0                   F%  p\u        VV*P>                  V*PT                  34       K'  	  VP                  4       '       d   V PS                  V*4       V
'       g	   V&'       g;   \q        \#        V*PT                  V*Pv                  4      V*Pd                  4      V*n*        MV\$        ) 8  d   V*Px                  '       g   V Pz                  V,
          V*P                  ,
          V*P}                  4       V*PT                  ,
          ,
          p-V-V*PT                  8  dU   V-V*n*        V'       dF   V*;PT                  VP                  VP                  ,           VP                  ,           ,          un*        VR,          f   V*PM                  4       ^,          VR&   V*VVVV(V3# u upi u upi )zSet the ``box`` height.NF)startendcontinuer   box_decoration_breakclonerk   rl   r   r   r   r/   none)r   rV   rX   Tr   r   break_insidec              3   *   "   T F	  q^ 8H  x  K  	  R# 5i    N )r   values   & r3   r   )block_container_layout.<locals>.<genexpr>J  s      > )=u
 )=s   r   visiblec              3   d   "   T F&  pVP                   VP                  4       ,           x  K(  	  R # 5ir   )r"   margin_height)r   	float_boxs   & r3   r   r   l  s.      ':!8I $$y'>'>'@@@!8s   .0rz   r   )r   r   )?r   r   BlockContainerBoxrN   create_block_formatting_contextremove_decorationr   rD   rE   r   r}   r   r   r"   r    r   content_box_xminr   r.   cascadedr-   itemsr   rs   rP   is_in_normal_flowr   add_broken_out_of_flowis_outside_markerborder_box_xrH   r]   rr   r   r   r   	ParentBoxr   rF   unlayout_footnotefinish_block_formatting_contextrI   r   	overflowsforce_fragmentationr   r   r
   r   
min_heightborder_top_widthpadding_topr   copy_with_childrenexcluded_shapesr   r   rt   
max_heightrL   page_bottomr   ).r$   r%   r&   r'   r)   r*   r+   r,   r-   r.   r   r/   is_startr   this_box_adjoining_marginsr"   rP   r   r   keybox_first_line_stylebox_first_letter_styleskipr|   rw   r   r   r   rQ   r   r   new_max_lines
last_childrs   r   r   
box_bottombottom_marginbox_is_fragmentedr   r   r1   rR   max_float_position_yabsolute_boxnew_box_heights.   &&&&&&&&&&&&                                  r3   rK   rK     s	    c5223333
))++//4 T!HH%8yy$	11G$TT		2H(IW(T **S-D-DDsGXGXXXS^^,!2
!! ^^
/*;<s~~MM&&(
""$J
yy
*L%.I
yy'		+.	0@0@SA	
'696J6J6S6S U6SsC%%c**6S 	  U#3 44
)8;8N8N8W8W"Y8WC'',,8W 	 "Y%!7"88 (..0z!#,,tu"5diiaIIu%%&&((E#%m"1BR >D)Y(= %..uc+@B&&&'*'7'7'9	$;;{+u4((CII8I8I,II(u}}-- *9eUL-->(:&	*3'UD)ZI
 #i4&77" "488!1
 8Gue\=.?);)Y	805UD)Zm
 J488 M955)	>D"'3<<+;";J% $0&)1"J)*emmDD<?IIFV<W
 9!+J!H!H+5+>+> (!$$&q)Dde,nK)))(3 *1133779dWeVT:B  TzzV# ^^c.?.?.AA
 /0A B$$Zm1KLL !%I "k Jp 	!-HH1H1H
yy	)	SYY~6@@:|:cll45&9:N	Y--//335TGUFD92uiOO
!!/*DEVV 1>!*+<=JJ+%'(89AC > 4 4coo''););)= >CCC > 4 4coo''););)= > > > "& **J " :: "&&((o&788
 \!"%
j%--00(+		2B(CJ%$$\2Gl 1 A A'k  C ~~"""w}}Z'@I'M#& ':!(!8!8': $:  1:>J..07C7GN''*?*?*AAGN}}Z J.*Lw! +
 !!UW]]GNN$CD " ))++//8'  2 23W5G5GI		W%6%6%6 ,.1C1CC""$w~~57 	 GNN*+GN%&&)@)@@%%&'  #//1!4	& 	I'8:L g U"Ys   k'k,c                    ^ .pVP                  V 4       R V 4       pR V 4       p\        V4      \        V4      ,           # )zCGet the amount of collapsed margin for a list of adjoining margins.c              3   6   "   T F  q^ 8  g   K  Vx  K  	  R# 5ir   r   r   ms   & r3   r   "collapse_margin.<locals>.<genexpr>       .GqAvG   
c              3   6   "   T F  q^ 8:  g   K  Vx  K  	  R# 5ir   r   r  s   & r3   r   r    r  r  )extendr   r   )r,   margins	positives	negativess   &   r3   r    r      s=    cGNN$%.G.I.G.Iy>C	N**r5   c                8   . p\         P                  \         P                  \         P                  3pT p\	        WC4      '       dK   VP                  VP                  R,          4       VP                  '       g   MVP                  R,          pK[  VP                  4        Tp\	        WC4      '       dK   VP                  VP                  R,          4       VP                  '       g   MVP                  ^ ,          pK[  RpV F  pVR9   g   We3R9   g   K  TpK  	  V# )ag  Get the correct page break value between siblings.

Return the value of ``page-break-before`` or ``page-break-after`` that
"wins" for boxes that meet at the margin between two sibling boxes.

For boxes before the margin, the 'page-break-after' value is considered;
for boxes after the margin the 'page-break-before' value is considered.

* 'avoid' takes priority over 'auto'
* 'page' takes priority over 'avoid' or 'auto'
* 'left' or 'right' take priority over 'always', 'avoid' or 'auto'
* Among 'left' and 'right', later values in the tree take priority.

See https://drafts.csswg.org/css-page-3/#allowed-pg-brk

break_afterbreak_beforer   r   )rm   rn   rectoverso))r   r   )r   avoid)r   
avoid-page)r   avoid-column)columnr   )r*  r'  )r*  r(  )r*  r)  )r'  r   )r(  r   )r)  r   )	r   BlockLevelBoxTableRowGroupBoxTableRowBoxr   r}   r   rs   reverse)sibling_beforesibling_aftervaluesblock_parallel_box_typesr%   r?   r   s   &&     r3   r   r     s    " F 	U33U5F5F H C
S
3
3cii./|||ll2
NN
C
S
3
3cii/0|||ll1oF77E? O* <* F  Mr5   c                r    V P                  4       ^,          pVP                  4       ^ ,          pW#8w  d   V# R# )zBReturn the next page name when siblings don't have the same names.N)r   )r/  r0  before_page
after_pages   &&  r3   r   r     s9     ,,.q1K**,Q/J  !r5   c                d   V'       d   \        V^ ,          \        P                  4      '       d{   V^ ,          P                  R,          pV^ ,          P                  R,          p\	        V4      V,
          pWd8  d   R# VRV p^ VR,          P
                  /p\        WVR W#4       Wx3# Rp	\        V4       EF  w  rj\        V
\        P                  4      '       d'   V
P                  '       g   V
P                  '       d   KL  V
P                  '       d   K`  V
P                  4       '       dH   \        W4      pV	e7   \        W4      '       g&   V^,          pVRV pW,          P                  R/p EM.T
p	V
P                  4       '       g   K  \        V
P                  R,          V 4      '       d   K  \        P                   \        P"                  \        P                  3p\        W4      '       g   EK=  \%        W
P&                  W#4      pV'       g   EK^  Vw  rV
P)                  V4      p. VRV OVNp\        V
\        P                  4      '       d1   WR  F(  pVP                  '       g   K  VP+                  V4       K*  	  VP                  V/pV^,          p M	  R# \        WVR W#4       Wx3# )aY  Find the last possible page break in ``children``.

Because of a `page-break-before: avoid` or a `page-break-after: avoid` we
need to find an earlier page break opportunity inside `children`.

Absolute or fixed placeholders removed from children should also be
removed from `absolute_boxes` or `fixed_boxes`.

Return (new_children, resume_at).

r   r   Nr   r   )r   r   rr   r   r   rQ   rF   reversed_enumerater,  	is_header	is_footerrL   r   r   r   r|   r7   r   r   rs   r  r}   )r$   rs   r*   r+   r   r   r|   r   rQ   previous_in_flowrw   r   breakable_box_typesr?   new_grand_childrenr   
next_childs   &&&&             r3   r   r     sR    Jx{EMM:: 1+##I.!""8,H&?'R(223	ef%~	D&&*84eU33445???___""$$/HJ+(==
'/%_22D9	$""$$$U[[%@'JJ0F0F#H%550^^^J64:1& % 8 89K LI#AXfu%5#Ay#AL "%)?)?@@*26*:J)333 , 3 3J ? +;
 "+) <IQJEU 5X  %&!1>O""r5   c                ^    \        V 4       F  pVP                  4       '       g   K  Vu # 	  R# )z=Find and return the last in-flow child of given ``children``.N)reversedr   )rs   rw   s   & r3   r   r   3  s%    (#""$$L $r5   c           	     b    \        \        \        \        V 4      4      4      \        V 4      4      # )zBLike reversed(list(enumerate(seq))) without copying the whole seq.)zipr?  ranger   )seqs   &r3   r7  r7  :  s     xc#h((3-88r5   c                   V F  p\        V\        P                  4      '       d   \        WP                  W#4       VP
                  R,          R8X  d   WB9   d   VP                  V4       M/VP
                  R,          R8X  d   WC9   d   VP                  V4       VP                  '       d   V P                  VP                  4       W@P                  9   g   K  V P                  P                  V4       K  	  R# )zRemove placeholders from absolute and fixed lists.

For boxes that have been removed in find_earlier_page_break(), remove the
matching placeholders in absolute_boxes and fixed_boxes.

Also takes care of removed footnotes and floats.

rk   ry   fixedN)r   r   r   rF   rs   r   remover   r   broken_out_of_flowpop)r$   box_listr*   r+   r%   s   &&&& r3   rF   rF   ?  s     c5??++~D99Z J.33H!!#&YYz"g-#2Ds#<<<%%cll3,,,&&**3/ r5   c                :    VP                   '       d   V R9   # V R9   # )z$Test whether we should avoid breaks.)r'  r(  r)  )r'  r(  r   r   r$   s   &&r3   r   r   V  s&    DDD000r5   c                :    VP                   '       d   V R9   # V R9   # )z$Test whether we should force breaks.)r   rm   rn   r%  r&  r*  )r   rm   rn   r%  r&  rK  rL  s   &&r3   r   r   ]  s/     A A 	ADDDr5   )TNNNNNFN)2__doc__mathr   formatting_structurer   ry   r   r   r*  r   flexr   floatr   r	   r
   gridr   inliner   min_maxr   percentr   r   r   replacedr   tabler   r   r4   r#   r8   rJ   rt   r   r   r   r   rK   r    r   r   r   r   r7  rF   r   r   r   r5   r3   <module>rY     s    I  ( : "  @ @  # ) R R / 4,B^:/d ;1 ;1|:>?=D,<KH\v!rDN+5pK#\9
0.1Er5   