
    ,g                         d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ dd	lmZmZ dd
lmZmZ ddlmZ d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z	 ddZd Z y)z*Layout for grid containers and grid-items.    )countcycle)inf   )	Dimension)boxes)LOGGER   )
percentageresolve_percentages)max_content_widthmin_content_width)find_in_flow_baselinec                 D    t        | t              xr | j                  dk7  S Nfr
isinstancer   unitsizings    n/home/viktor/gitlab-persoonlijk/factuur-applicatie/venv/lib/python3.12/site-packages/weasyprint/layout/grid.py
_is_lengthr          fi(@V[[D-@@    c                 D    t        | t              xr | j                  dk(  S r   r   r   s    r   _is_frr      r   r   c                 &    | ||z   k  xr || |z   k  S N )
position_1size_1
position_2size_2s       r   
_intersectr%      s&    Z&(( 	)Z&((*r   c                 b    |D ]*  \  }}}}t        | |||      }	t        ||||      }
|	s'|
s* y y)NTF)r%   )xywidthheight	positionsfull_xfull_y
full_widthfull_heightx_intersecty_intersects              r   _intersect_with_childrenr2      sG    3< /
K E6:> FFK@;	
 r   c                 6   | \  }}}|r$|"| t        |      D ]  \  }} | d| | v s n d}|b|`||dz
  }nX|dkD  rdnd}t        |d d |         D ]  \  }} || v r||z  } n|dk(  s n t        |      z  }|dk(  rt        |      dz
  |z
  }|d }|||fS )N-r
   r   )	enumerateabslen)linelinessidespannumberidentcoordsteps           r   	_get_linerA   %   s    D&%&.$U+ 	KE4$ D(	 Fdl=QJE
1D(vv7 %tD=dNFQ;% V$rzE
Q.%%r   c                 &   | dk(  s| d   dk(  r|dk(  s|d   dk(  ry | dk7  rt        | |d      \  }}}}||xs d}|}nd}d x}}|dk7  rt        ||d      \  }}}}	|=|xs dx}}
|}|8t        ||dz   d  d      D ]  \  }}||v r|
dz  }
|
dk(  s n ||
z  }n||	|z
  }|X|	z
  }nH|xs d}|	dkD  r:t        ||	dz
  d d         }|D ]  \  }}||v r|dz  }|dk(  s|	dz
  |z
  } n | }n| }|	|z
  }nd}dk  r| }||z  }|dk(  rd}||fS )	Nautor   r<   startr
   endrD   r5   )rA   r6   )rD   rE   r:   r<   r=   r>   r?   size
span_ident	coord_endspan_numberr9   iterables                r   _get_placementrL   A   s   %(f,&=CFf,%.ueW%E"feU;QDJ!!
U
f})23u)E&feY!'1,D;J%"+E%'(O1"E (JD$!T)#q("a'	( K'Du$D=!!D(1q=(y{B)?@H'/ (t%-"aKF!Q;$-ME$9E!( "(#GEu$Daxuqy4=r   c                 ,    d}| d   dk(  r	| d   xs d}|S )Nr
   r   r<   r    )placer<   s     r   	_get_spanrO   y   s%    DQx6Qx}1Kr   c                 8   t               }|j                         D ]s  \  }}	}
}|dk(  r4t        |	|g|  st        |||
z         D ]  }|j	                  |        At        ||
g|  sOt        |	|	|z         D ]  }	|j	                  |	        u |rt               D ]  }||v r|dk(  rt        d |dz   d f||      }n:|d   dk(  sJ |dk(  s
|d   dk(  sJ t        |      }t        |d |dz   |z   d f|      }t        |d   |d   |d   z         }t        |      |z  r|c S  y t        |xs dg      dz   }|dk(  rt        d |dz   d f||      S |d   dk(  sJ |dk(  s
|d   dk(  sJ t        |dz         D ]!  }t        |d |dz   d f|      }|d   |k\  s|c S  y )NrowrC   r
   r   r<   )	setvaluesr%   rangeaddr   rL   rO   max)first_placementsecond_start
second_endsecond_trackschildren_positions
first_flowdenseoccupied_tracksr'   r(   r)   r*   track	placementr<   tracks	end_tracks                    r   _get_second_placementrc      s)   eO188: 	+1eV!V6o6q!e), +A#''*+ !U5_5q!f*- +A#''*+	+ W 	!E'v%*519d+ZH	 $A&000 $v-aF1JJJ .* 4T)94"@-Q	9Q<1	!)DEFv;0  #	!& O*s+a/6!!uqy$']D D  ?f,,,  6)\!_-FFF"519- %	* 4Q"=}N	Q<5($$	%r   c                 h    | x}}| d   dk(  r| dd  \  }}|d   dk(  rd}||fS t        |      rd}||fS )Nr   zminmax()r
   fit-content()rC   )r   )rG   
min_sizing
max_sizings      r   _get_sizing_functionsrh      s`    ""JAw*!%ab
J!}'
 
## 

	

##r   c                    | dk(  rd} d| v rt        j                  d       g gS g }t        |       D ]	  \  }}|dz  r|d   dk(  r|dd  \  }}t        |t              st        j                  d	       d}t        |      D ]i  }t        |      D ]Y  \  }}|dz  r|j                  |       t        |      dz  r|d
   j                  |       @|j                  t        |             [ k |j                  |       t        |      dz  r|d
   j                  |       |j                  t        |              |S )Nnone)r    subgridzSubgrids are unsupportedr   r   zrepeat()r
   z6"auto-fit" and "auto-fill" are unsupported in repeat()r5   )
r	   warningr6   r   intrT   appendr8   extendlist)	ra   tracks_listir_   repeat_numberrepeat_track_list_jrepeat_tracks	            r   _get_template_tracksrx      sP   F12tKf% 05q5Qx:%38900!-5NNPR$%M}- 
GA+45F+G 	G<q5'..|<  #;/!3 +B 6 6| D + 2 243E F	G
G ""5) ;!#B&&u-""4;/90: r   c
                    | dv sJ |dv sJ |dv sJ |dv sJ dgt        |      z  }
g }| dk(  rdnd}|D ]q  }||   }|dk(  r|d	v s|d   d
k(  rH|j                  d       +|dk(  r|dv r-|j                  d       F|dk(  r|dv r|j                  d       a|j                  d       s t        |      D ]  \  }}|s
|D ]  }|dk(  r|dv rt        ||      }n]t	        ||      }nPddlm} |j                         }d|_        d|_	         |||t         d |	dg g       \  }}}}}}|j                         }||||z    D ]
  }|||   z  } t        d|      }t        t        ||||z    |            }dgt        |      z  }|D cg c]
  \  }}|s	| }}}|t        |      xs dz  }|D ];  }||   \  }}|}||   |   } ||   d   }!| |z   |!k\  r|| z   |!z
  }"||"z  }||z  }|||<   = |rk|ri|D cg c]
  \  }}|r	| }#}}|t        |#      xs dz  }|#D ];  }||   \  }}|}||   |   } ||   d   }!| |z   |!k\  r|| z   |!z
  }"||"z  }||z  }|||<   = |r	 t        |      D ]  \  }$}"|"|
|$   kD  s|"|
|$<      t        |
      D ]:  \  }}%| dk(  r ||   d   t        u r||   d   |%z   ||   d<   +||   |xx   |%z  cc<   < y c c}}w c c}}w )N)minrV   )	intrinsiccontent-basedmax-content)minimummin-contentr}   xyr   rz   r
   r{   r   r}   rC   re   Tr|   )r   r}   r}   )r}   rC   Fr'   )r~   r   block_level_layout)bottom_space
skip_stackcontaining_blockpage_is_emptyabsolute_boxesfixed_boxesrF   rV   )r8   rn   r6   r   r   blockr   deepcopy
position_x
position_yr   margin_heightrV   rp   )&affected_sizesaffected_tracks_typessize_contributiontracks_childrensizing_functionstracks_sizesr<   	directioncontextr   planned_increasesaffected_tracksaffected_size_index	functionsfunctionrr   childrenitemspacer   ru   sizestracks_numbersitem_incurred_increasesrv   affectedaffected_tracks_numbersdistributed_spacetrack_number	base_sizegrowth_limititem_incurred_increaseaffected_sizelimitextraunaffected_tracks_numberskincreases&                                         r   _distribute_extra_spacer      sc    ^+++  %5 5 5 5 IIII c,// O-6!A% &	01 K/BBQK?2&&t,"o599&&t,"m322&&t,u%&  !1 E18 B	1D C$(BB-gt<E-gt<E5}}"#"#&8T%5T#%2'7#aAq! **,%a$/ 423345ME!/!AdF31=?N'(cC0@,A&A#%3'A!ax'A# 'A %-D)E)J K 7 
O*6|*D'	<):& ,\ :;N O$\215 #99UB.>F *e3*//8N'5
O 0)7-I%!XxA-I) -I S!:;@qA "$= 0L.:<.H+I|->*$\23FG "(6q9E$'==F2]BUJ .%7.33E. ,L90 %&=> 15,Q//+0%a(1AB	1E1N !!23 =8U"|Aq'9S'@!-a!3h!>LOAO/0H<0	=U'A -Is   
K
K
5
K
 K
Nc	                    |dv sJ g }	|dk(  rdn|}
| D ]  \  }}d }t        |      rt        ||
      }n|dv s|d   dk(  rd}d }t        |      rt        ||
      }n|dv s|d   dk(  st        |      rt        }d ||fvrt	        ||      }|	j                  ||g        t        t        |	            D cg c]  }g  }}|j                         D ]7  \  }\  }}}}|dk(  r||fn||f\  }}|dk7  r!|||z
     j                  |       9 t        || |	      }|D ]  \  }\  }}}|s|dk(  rdd	l
m} d}|D ]  }||   \  }}}}t        ||||z          }|j                         }d|_        d|_        t         j"                  j%                  |d
      }t'        ||       |j                  |_        |j                  |_        ||_        ||_        t         } |||d |dg g       \  }}}}}}t	        ||j-                               } |dv r||d<   |dv r||d<   d |vrt	        |      |d<   |dk(  rt	        dgfd|D         |d<   n;|dk(  rt	        dgfd|D         |d<   n|dk(  rt	        dgfd|D         |d<   |dk(  rt	        fd|D              |d<   n#|dv s|d   dk(  rt	        fd|D              |d<   d |vst	        |      |d<    t/        |j1                         D ch c]  \  }}}}|dk(  r|n|dk\  r	|dk(  r|n| c}}}      }|D ]  }t        t        |             D cg c]  }g  }}t3        |j                               }|D ]Z  \  } \  }\  }}}}|dk(  r||fn||f\  }}||k7  r$| | | |z   dz    D ]  \  }}t        |      s C |||z
     j                  |       \ t5        ddd|| |	|||
       t5        ddd|| |	|||
       t5        ddd|| |	|||
       |	D ]  }d |vst	        |      |d<    t3        |j                               }|D ]Z  \  } \  }\  }}}}|dk(  r||fn||f\  }}||k7  r$| | | |z   dz    D ]  \  }}t        |      s C |||z
     j                  |       \ t5        ddd|| |	|||
       t5        ddd|| |	|||
        |	D ]  }|d   t        u s|d   |d<    |dk(  rd }!n'|t        d |	D              z
  t        |	      dz
  |z  z
  }!|!S|!dkD  rN|!t        |	      z  }"t3        |	      D ]2  \  } }|\  }}||"z   |kD  r||d<   |!||z
  z  }!!|dxx   |"z  cc<   |!|"z  }!4 t7               }#|!	|!dk  rd}$n<|!d}%|%s|!}&d}'t3        t        |	|             }|D ]3  \  } \  }\  }}t        |      s|&|d   z  }&| |#vs%|'|j8                  z  }'5 t	        d|'      }'|&|'z  }(d}%t3        t        |	|             }|D ]P  \  } \  }\  }}| |#vst        |      s|(|j8                  z  |d   k  s3|#j;                  |        |!|d   z  }!|!dkD  }%R |%s(}$nbd}$t        |	|       }|D ]O  \  }\  }}t        |      s|j8                  dkD  rt	        |$|j8                  |d   z        }$At	        |$|d         }$Q t3        t        |	|             }|D ]X  \  } \  }\  }}t        |      s| |#vs|$|j8                  z  |d   kD  s3|!|!|$|j8                  z  z  }!|$|j8                  z  |d<   Z |j<                  d    })|j<                  d!   }*|dk(  xr t7        |)      d"d#hz  }+|dk(  xr t7        |*      d"d#hz  },|+s|,rS|!Q|!dkD  rLt        |	|       D cg c]  \  }\  }}|dk(  r| }-}}}|-r"|!t        |-      z  }"|-D ]  }|dxx   |"z  cc<    |	S c c}w c c}}}w c c}w c c}}}w )$Nr   rC   r   r   re   r'   r
   r(   r   r    T)r   r   r   r   r   )r   max_contentrC   )r   r   r   c              3   6   K   | ]  }t        |        y wr   r   .0childr   s     r   	<genexpr>z(_resolve_tracks_sizes.<locals>.<genexpr>          I6;!'51 I   r}   c              3   6   K   | ]  }t        |        y wr   r   r   s     r   r   z(_resolve_tracks_sizes.<locals>.<genexpr>  r   r   c              3   6   K   | ]  }t        |        y wr   r   r   s     r   r   z(_resolve_tracks_sizes.<locals>.<genexpr>  r   r   c              3   6   K   | ]  }t        |        y wr   r   r   s     r   r   z(_resolve_tracks_sizes.<locals>.<genexpr>         I6;!'51Ir   )rC   r}   zfit_content()c              3   6   K   | ]  }t        |        y wr   r   r   s     r   r   z(_resolve_tracks_sizes.<locals>.<genexpr>  r   r   r   rz   r{   r~   r|   rV   c              3   &   K   | ]	  }|d      yw)r   Nr    )r   rG   s     r   r   z(_resolve_tracks_sizes.<locals>.<genexpr>  s     1DQ1   Fjustify_contentalign_contentnormalstretch)r   r   r   r   rV   rn   rT   r8   itemszipr   r   sumr   r   r   r   BlockContainerBoxanonymous_fromr   r)   r*   r   sortedrS   r6   r   rR   valuerU   style).r   box_sizer[   implicit_startr   gapr   r   orthogonal_sizesr   percent_box_sizemin_functionmax_functionr   r   ru   r   r   r'   r(   r)   r*   r?   rG   rK   r   r   r   parentr   spansr<   rr   
free_spacedistributed_free_spaceinflexible_tracksflex_fractionstopleftover_spaceflex_factor_sumhypothetical_fr_sizer   r   	x_stretch	y_stretchauto_tracks_sizess.         `                                       r   _resolve_tracks_sizesr   T  s
    L$.qH&6 7"l	l#"<1ABIDD1o0Il#%l4DELDD1o0F<4HL	<00y,7LY567* $)\):#;<ar<O<(:(@(@(B >$$1eV$-$4q%j1f+t19./66u=	>
 ?$4lCH9A 4"5.<1F! <!3E!:1eQ,Qqw78(#$ #$ 00??$b*#F,<=$)$4$4!$)$4$4!$ & #t'9ULT%+4#%2(7$q!Q1 VU%8%8%:;%<& EE!a==!a5 u:a=(1 J  I?G I JE!H]*1 J  I?G I JE!HV# 1 J  I?G I JE!H=( I?GI IE!H551o0 I?GI IE!Hu5zE!Hi4"l %7%>%>%@9 9!Q5&#%E6a7 c!v-9 :E  4',S1A-B'CD!2DD/557819 	F-A-,1eV(1S(81e*q&kKE4t|#3AafQh#? F<,'F   67>>uE	F 	 ;	?lD)W	
 	 ?M?lD)W	 	 =-lD)W	
 " 	&E5 u:a	& /557819 	F-A-,1eV(1S(81e*q&kKE4t|#3AafQh#? F<,'F   67>>uE	F 	 ;lD)W	
 	 =-lD)W	c4p   8s?QxE!H  6
 1L112"c)* 	 *q.!+c,.?!?!,/ 	5HAu&+#I|11L@'alY66
a2244
	5 */		'NO \3C!DEH19 >--E,A|,'"eAh.N 11'<+=+==	>
 "!_5O#1O#C D \3C!DEH19 .--E,A|--&2F+l.@.@@58K)--a0"eAh.
)A~. & -|%56(0 	A$E$A|l#%%)$'%|'9'9E!H'D%FM %(uQx$@M	A \+;<=H)1 >%%E$A|,A->$>|111E!H<)-,2D2D"DDJ(<+=+==a> ',,->?O$**?;MSIS1Xy4II  	SGS/8Y2GG YJ$:zA~ <!12' '.e.lAv% ' ' %/#6G2H%H"* 3a223 ] =z9
 EF's   7	_:!_ 	__c                 \/   | j                          |j                  d   }|j                  d   }	t        |j                  d         }
t        |j                  d         }t        |j                  d   d d d         }t        |j                  d   d d d         }|j                  d   }|dk(  rd}n3|j                  d	k(  r|j                  n|j                  }t	        ||      }|j                  d
   }|dk(  rd}n)|j
                  d	k(  rdn|j
                  }t	        ||      }|dk(  rd}|D cg c]  }t        |       }}t        |j                  d         }t        |j                  d         }|rt        |d         nd}t        t        |      dz
  dz        t        |      z
  }|dkD  r&t        |      D ]  }|j                  d g|z          nA|dk  r<t        |       D ]-  }|j                  t        |
             |j                  g        / t        t        |      dz
  dz        |z
  }|dkD  r)|D ]#  }t        |      D ]  }|j                  d         % nA|dk  r<t        |       D ]-  }|j                  t        |             |j                  g        / t        |      D ]  \  }}t        |      D ]  \  }}|	| d}|d d d   D cg c]  }|D ]  }|  }}}||vr|d|z     j                  |       |d d d   D cg c]  }|D ]  }|  }}}||vsj|d|z     j                  |         t        |d d d         D ]  \  }}t        |d d d         D ]  \  }}|	| d}|d d d   D cg c]  }|D ]  }|  }}}||vr|d|z  dz
     j                  |       |d d d   D cg c]  }|D ]  }|  }}}||vsm|d|z  dz
     j                  |         d|	v rdnd} d|	v rdnd}!| dk(  r|n|}"|!dk(  r|n|}#i }$|j                  D ]}  }%|%j                  d   }&|%j                  d   }'|%j                  d   }(|%j                  d   })t        |&|'|d d d         }*t        |(|)|d d d         }+|*sh|+sk|*\  }},|+\  }}-|||,|-f|$|%<    t!        |j                  d       }.|.D ]  }%|%|$v r|%j                  d|  d   }/|%j                  d|  d   }0t        |/|0|"d d d         }1|1sD|%j                  d|! d   }2|%j                  d|! d   }3t#        |1|2|3|#|$| d|	v       }4| dk(  r|1\  }}-|4\  }},n
|1\  }},|4\  }}-|||,|-f|$|%<    d}5|!dk(  r|rt        |d         nd}6nt        |      }6g }7|.D ]  }%|%|$v r|!dk(  r|$|%   \  }8}}9}n^|$|%   \  }}8}}9nS|%j                  d|! d   }2|%j                  d|! d   }3t        |2|3|#d d d         }4|7j                  |%       |4r|4\  }8}9nut%        |8|5      }5t'        |8|9z   |6      }6 |7D ]b  }%|%j                  d|! d   }2|%j                  d|! d   }3d}:|2d	k7  r|2d   d k(  r|2d   }:n|3d	k7  r|3d   d k(  r|3d   }:t'        |5|:xs dz   |6      }6d d};| dk(  rt        |      }<n|rt        |d         nd}<|$j)                         D ]1  }=| dk(  r|=\  }}8}}9n|=\  }8}}9}t%        |8|;      };t'        |8|9z   |<      }<3 |;|5}?}>d|	v r|7D ]  }%|%j                  d|  d   }/|%j                  d|  d   }0|%j                  d|! d   }2|%j                  d|! d   }3t        |2|3|#d d d         }4|4r|;}>|4\  }@}A|@}?t+        |>      D ]  }B|/d	k(  rt        d Bdz   d f|0|"d d d         \  }B}Cn4|/d   d k(  sJ t-        |/      }:t        |/d Bdz   |:z   d f|"d d d         \  }B}CB|>k  r_t        B|BCz         D ]9  }| dk(  r	@B}}AC}-},nB@}}CA}-},t/        |||,|-|$j)                               }D|Ds9   n BCz   |<z
  }E|EdkD  r|<Ez  }<| dk(  r	@B}}AC}-},nB@}}CA}-},|||,|-f|$|%<   Y|;|5}?}>	 |>}Bt        |?|6      D ]  }@|/d	k(  rt        d Bdz   d f|0|"d d d         \  }B}Cn4|/d   d k(  sJ t-        |/      }:t        |/d Bdz   |:z   d f|"d d d         \  }B}C|2d	k(  rt        d @dz   d f|3|#d d d         \  }@}An*t-        |2      }:t        |2d @dz   |:z   d f|#d d d         \  }@}A| dk(  r	@B}}AC}-},nB@}}CA}-},t/        |||,|-|$j)                               }D@Az   |6kD  }F|DsFr|||,|-f|$|%<   |>Cz   dz
  |<z
  }E|EdkD  r|<Ez  }< n |>dz  }>|>dz   |<z
  }E|EdkD  r|<Ez  }<|5}?1 na|7D ][  }%|%j                  d|  d   }/|%j                  d|  d   }0|%j                  d|! d   }2|%j                  d|! d   }3t        |2|3|#d d d         }4|4r|4\  }@}A|@|?k  r|>dz  }>@}?t+        |>      D ]  }>|/d	k(  rt        d |>dz   d f|0|"d d d         \  }B}Cn4|/d   d k(  sJ t-        |/      }:t        |/d Bdz   |:z   d f|"d d d         \  }B}CB|>k  r_t        B|BCz         D ]9  }| dk(  r	@B}}AC}-},nB@}}CA}-},t/        |||,|-|$j)                               }D|Ds9   n BCz   |<z
  }E|EdkD  r|<Ez  }<,-f|$|%<   K	 |>}Bt        |?|6      D ]  }@|/d	k(  rt        d Bdz   d f|0|"d d d         \  }B}Cn*t-        |/      }:t        |/d Bdz   |:z   d f|"d d d         \  }B}C|2d	k(  rt        d @dz   d f|3|#d d d         \  }@}An*t-        |2      }:t        |2d @dz   |:z   d f|#d d d         \  }@}A| dk(  r	@B}}AC}-},nB@}}CA}-},t/        |||,|-|$j)                               }D@Az   |6kD  }F|DsFr|||,|-f|$|%<    n |>dz  }>|>dz   |<z
  }E|EdkD  r|<Ez  }<|5}?^ | dk(  r	|5|6}H}G|;|<}J}In|;|<}H}G|5|6}J}It        dGz
        D ]/  }|j1                  dt        |             |j1                  dg        1 t        |rt        |d         ndH      D ]-  }|j                  t        |             |j                  g        / t        dIz
        D ]/  }|j1                  dt        |             |j1                  dg        1 t        t        |      J      D ]-  }|j                  t        |
             |j                  g        / t3        |t4        j6                        rdd!lm}K  |K||       n,t3        |t4        j<                        sJ dd"lm }L  |L|| |       |j                  d	k(  r|j                  |_        |dd d   D cg c]  }tC        |       }M}|dd d   D cg c]  }tC        |       }N}tE        |N|j                  |$|5d#|| |      }OtE        M|j
                  |$Id$|| ||OD 9cg c]  \  }9}|9	 c}}9	      }PtG        |j                  d%         }Q|jI                         }t'        d|j                  tK        d& OD              z
        }Rg }St        |O      }T|Qd'hz  r-|Rdz  z  }OD ]  \  }9}Sj                  |       ||9|z   z  }  nQh d(z  r)|Rz  }OD ]  \  }9}Sj                  |       ||9|z   z  }  nQd)hz  r5|Rdz  Tz  z  }OD ]$  \  }9}Sj                  |       ||9RTz  z   |z   z  }& nQd*hz  r3OD ]-  \  }9}Sj                  |       Tdk\  s||9RTdz
  z  z   |z   z  }/ naQd+hz  r8|RTdz   z  z  }OD ]'  \  }9}Sj                  |       ||9RTdz   z  z   |z   z  }) n#OD ]  \  }9}Sj                  |       ||9|z   z  }  tG        |j                  d,         }U|jM                         }|j
                  d	k(  rd}Vn=|j
                  tK        d- PD              z
  t        |P      dz
  |z  z
  }Vt'        d|V      }Vg }Wt        P      }XUd'hz  r-|Vdz  z  }PD ]  \  }9}Wj                  |       ||9|z   z  }  n Uh d(z  r)|Vz  }PD ]  \  }9}Wj                  |       ||9|z   z  }  nUd)hz  r5|Vdz  Xz  z  }PD ]$  \  }9}Wj                  |       ||9VXz  z   |z   z  }& nUd*hz  r3PD ]-  \  }9}Wj                  |       Xdk\  s||9VXdz
  z  z   |z   z  }/ n|Ud+hz  r8|VXdz   z  z  }PD ]'  \  }9}Wj                  |       ||9VXdz   z  z   |z   z  }) n>Ud.hz  rtO        jP                  d/       PD ]  \  }9}Wj                  |       ||9|z   z  }  g }Yd }Z|r?t        tS        |            }[tK        d0 Pd |[ D              t        |Pd |[       dz
  |z  z   }\nd}[d}\d }]tK        d1 P[d  D              t        |P|[d        dz
  |z  z   }^W|[dz   d  |jM                         |^z   gz   }_t        |_|[dz   2      D ]q  \  }8}`| jU                  ||`\z
        rU|sS|8dk(  rd d d3d d4g d5fc S |8dz
  }Z|8dz
  d i}]|.D ]/  }%|$|%   \  }}}}[|cxk  r	|8dz
  k  sn Yj                  |%       1  n,d5}s |.D ]#  }%|$|%   \  }}}}[|k  sYj                  |%       % |j
                  d	k(  r/tK        d6 P[Z D              t        |P|[|Z       dz
  |z  z   |_        tG        |j                  d7         }atG        |j                  d8         }bg }cd }dd3d d4}edd9lm+}f YD ]  }%|$|%   \  }}},}-|j                  jY                  |%      }g|r!|j[                  |      rg||   v r	||   g   }hnd }h|%j]                         }%S|   |%_/        W|   \z
  |%_0        tc        |%|       tK        d: O|||,z    D              |,dz
  |z  z   },tK        d; P|||-z    D              |-dz
  |z  z   }-|%jd                  d	k(  rd|%_2        |%jf                  d	k(  rd|%_3        |%jh                  d	k(  rd|%_4        |%jj                  d	k(  rd|%_5        |,|%jj                  |%jl                  z   |%jn                  z   |%jf                  z   |%jp                  z   |%jr                  z   z
  }i|-|%jd                  |%jt                  z   |%jv                  z   |%jh                  z   |%jx                  z   |%jz                  z   z
  }jtG        |%j                  d<         }k|kd	hz  ra}kkdd=hz  r+|%j                  d>   d	k(  rt}        id?      |%j                  d><   tG        |%j                  d@         }l|ld	hz  rb}lldd=hz  r+|%j                  dA   d	k(  rt}        jd?      |%j                  dA<   t4        j~                  j                  |dB      }mtc        |m|       |%j^                  |m_/        |%j`                  |m_0        |,|m_        |-|m_         f| |%|h|m|||      d dC \  }n}o}p|nrd5}nkdd=hz  rt'        inj                        |n_        nUt        | n      |n_        i|nj                  z
  }qkd'hz  rnj                  qdz  d       nkh dDz  rnj                  qd       ldd=hz  rt'        jnj
                        |n_        nDjnj
                  z
  }qld'hz  rnj                  dqdz         nlh dEz  rnj                  dq       cj                  n       d|Ik(  st        n      }d |j                  c      }t3        |t4        j<                        r tO        jP                  dF       dxs d|_E        | j                  |       |]eg d5fS c c}w c c}}w c c}}w c c}}w c c}}w c c}w c c}w c c}}9w )GNgrid_template_areasgrid_auto_flowgrid_auto_rowsgrid_auto_columnsr5   
column_gapr   r   rC   row_gaprj   )r   grid_template_rowsgrid_template_columnsr
   r   z-startz-endcolumnrQ   grid_column_startgrid_column_endgrid_row_startgrid_row_endc                      | j                   d   S )Norder)r   )r   s    r   <lambda>zgrid_layout.<locals>.<lambda>  s    TZZ5H r   )keygrid__start_endr]   r<   )block_level_width)inline_block_widthr'   r(   r   c              3   &   K   | ]	  \  }}|  y wr   r    r   rG   ru   s      r   r   zgrid_layout.<locals>.<genexpr>  s     'Jq'Jr   center>   rE   rightflex-endzspace-aroundzspace-betweenzspace-evenlyr   c              3   &   K   | ]	  \  }}|  y wr   r    r   s      r   r   zgrid_layout.<locals>.<genexpr>'  s     /q/r   baselinez3Baseline alignment is not supported for grid layoutc              3   &   K   | ]	  \  }}|  y wr   r    r   s      r   r   zgrid_layout.<locals>.<genexpr>T  s     :q:r   c              3   &   K   | ]	  \  }}|  y wr   r    r   s      r   r   zgrid_layout.<locals>.<genexpr>[  s     6WT1D6r   rF   any)breakpageFc              3   &   K   | ]	  \  }}|  y wr   r    r   s      r   r   zgrid_layout.<locals>.<genexpr>s  s     DqDr   justify_itemsalign_itemsr   c              3   &   K   | ]	  \  }}|  y wr   r    r   s      r   r   zgrid_layout.<locals>.<genexpr>  s     =q=r   c              3   &   K   | ]	  \  }}|  y wr   r    r   s      r   r   zgrid_layout.<locals>.<genexpr>  s     ;q;r   justify_selfr   r)   px
align_selfr*   r       >   rE   r   r   self-end>   rE   r   r  zInline grids are not supported)Gcreate_block_formatting_contextr   r   r)   r   r*   rp   rx   r8   rm   rT   rn   nextr6   r   rL   r   rc   rz   rV   rS   r   rO   r2   insertr   r   GridBoxr   r   InlineGridBoxinliner   rh   r   rR   content_box_xr   content_box_yr	   rl   iteroverflows_pager   indexgetr   r   r   r   
margin_topmargin_rightmargin_bottommargin_leftborder_left_widthpadding_leftborder_right_widthpadding_rightborder_top_widthpadding_topborder_bottom_widthpadding_bottomr   r   r   r   	translater   copy_with_childrenr  finish_block_formatting_context)rr   boxr   r   r   r   r   r   
grid_areasflow	auto_rowsauto_columnsauto_rows_backauto_columns_backr   refer_tor   rQ   rowscolumnsgrid_areas_columns	rows_diffru   columns_diffr(   r'   	area_name
start_namenamenamesr   end_namer\   second_flowfirst_tracksrZ   r[   r   column_start
column_end	row_startrow_endcolumn_placementrow_placementr)   r*   r   first_start	first_endrW   rX   rY   second_placementimplicit_second_1implicit_second_2remaining_grid_itemsrr   rG   r<   implicit_first_1implicit_first_2positioncursor_firstcursor_secondsecond_isecond_sizefirst_i
first_size	intersect
first_diffoverflowimplicit_x1implicit_x2implicit_y1implicit_y2r   r   row_sizing_functionscolumn_sizing_functionscolumns_sizes
rows_sizesr   
free_widthcolumns_positionscolumns_numberr   free_heightrows_positionsrows_numberthis_page_children
resume_rowskip_rowskip_height	resume_attotal_heightrow_lines_positionsrow_yr  r	  new_childrenr  	next_pager   r  child_skip_stackchild_widthchild_heightr  r  r   	new_childchild_resume_atchild_next_pagediffsr                                                                                                                     r   grid_layoutrw  B  s
   ++- 01J99%&Dcii 012I#678L399%56tt<=Ncii(;<TrTBC<(JX
-0YY&-@#))cii
H5
ii	"G(

f,1#**Wh/V
'12$s)2J2		*> ?@D"399-D#EFG 0:Z]+qSY]a'(3z?:I1}y! 	;Atf'99:	;	Q	z" 	AKKY(KKO	
 Gq(A-.1CCLa 	!C<( !

4 !	! 
	}% 	ANN4-.NN2	
 J' 
03%cN 		0LAy %;f-J%)#A#Y?c3?4T?T?E?&QqS	  ,(/!HfHTHTHEH&!##J/		0
0 Jtt,- 
13%c$B$i0 		1LAy #D)H%)#A#Y?c3?4T?T?E?u$RT!V##H-(/!HfHTHTHEHu$1Q&&x0		1
1 &-5J#t+%K%.4GL'50DgM  >{{#67[[!23
KK 01	++n-)*gccl4&y'4!9E'HAu%IAv)*Auf(=u%>  cll(HIH :&&kkE*V"<=KK%
|4 89	(icPQcARS{{U;-v#>?[[5T!:;
0\:}
GtO= 'IAv'HAu&HAu(IAv%&5&$95!':. h2<C
1.!
O =&&h& 25 91dA 25 91a ;;{m6'BCLu[M%>?J-j-!*< > ''.*4#45D*;<#=& & T{{U;-v#>?[[5T!:;
6!l1o&??D6!jmv&=a=D 1TYQ ?ARST Uz?1;3z!}-&--/ ;$MAq!T$MAq$q"23q4x)9:; #34E-L$) l	E++j\&@AKeJ<t$<=I ;;{m6'BCLu[M%>?J-j-!*< >/(8%+ ($\2 G"f,.<!7Q;5y,sQRsBS/U+  +1~777(5.<'$!d0BD)I(1-//+ - "7Gj,@A %.#+WqA,76E#*HqA,66E$<q%1C1J1J1L%N	$ "  9: %z14DD
>$
2$&#WqA$/6E"HqA$.6E-.5&,A"5) /?@Qm*G$)-9J$K 0!&&02@!%w{D 99lSVUVSVFW3Y/GZ $/q>V#;;#;#,[#9D2@ +dGaK$4F-M ,SqS 133/GZ (614B!%x!|T :J -cc 2541Hk $-\#:D4B ,tX\D5H$.O -cc 2541Hk &.#+WqA,76E#*HqA,66E$<q%1C1J1J1L%N	#+k#9<M#M$$ :;Auf8M.u5 ,z 9A =@P P ')A~ 0J > 0!O0!V %)%1A%58H%H
%>,
:,(9 Yl	\ * a	E++j\&@AKeJ<t$<=I ;;{m6'BCLu[M%>?J-j-!*< >(8%+m+ A%L ($),$7 L"f,.<!<!#3T:I(1-//+  +1~777(5.<'$!d0BD)I(1-//+ - $Wg
.BC %.#+WqA,76E#*HqA,66E$<q%1C1J1J1L%N	$ "  ;< %z14DD
>$
2$-.5&,A"5)*G$)-9J$K +!&&02@!%w{D 99lSVUVSVFW3Y/GZ $-[#9D2@ +dGaK$4F-M ,SqS 133/GZ (614B!%x!|T :J -cc 2541Hk $-\#:D4B ,tX\D5H$.O -cc 2541Hk &.#+WqA,76E#*HqA,66E$<q%1C1J1J1L%N	#+k#9<M#M$$ :;Auf8M.u5!E+!L %)%1A%58H%H
%>,
:,(9 Ca	F U#46G[#35E[#35E[#46G[1{?# q$012q" 3z!}%KH tL)*r 1{?# AtN+,Ar 3z?K0 DO$B #u}}%,#/0#u22333.3)9:
yyF$**	
 CGqt!t*M31#6MM4;ADqDMC*0f%C C *,>@QZ#'M
 'cjj*<k3#MBqBDJ #))$567OAQ		C'JM'J$JJKJ'N(#	Z!^$ 	#GD!$$Q'
""A	# 
7	7	Z$ 	#GD!$$Q'
""A	# 
N+	+	Z!^n,,$ 	AGD!$$Q'
^33j@@A	A 
O,	,$ 	KGD!$$Q'"TJ.1*<==
JJ	K 
N+	+	Z>A-..$ 	GGD!$$Q'
nq&899JFFA	G % 	#GD!$$Q'
""A	# 		/23MA
zzV JJ/J//0_q G+, 	 ![)Nj/Kz!	[1_! 	 GD!!!!$A	  
5	5	[! 	 GD!!!!$A	  
.)	)	[1_{**! 	<GD!!!!$k11G;;A	< 
/*	*! 	FGD!!!!$aTK;?;;gEE	F 
.)	)	[K!O,,! 	BGD!!!!${Q77'AAA	B J<'NNPQ! 	 GD!!!!$A	  JZ():Jy$9::IX&'!+w67 	 I6
89 566	Z	"	#a	'72	3  	x!|}%):):)<|)K(LL 1AF 15!!,0CD 6'Er5PPU
qS$K	% 9E!3E!:JAq!Q1+!+*11%89 1  	1E+E2JAq!Q1}"))%0	1 zzVDJx
$CDDHZ01A5@A 	
 		/23Mcii./KLH.I)# X8071eV""5)*..+A0F)!}U3# ,Q/)!,{:E3'=M!AeG$<==QY*$% 	 ;Jq6$:;;aZ7"# 	
 v% E'!"E&("#E& !E 7 77%:L:LL!&!9!9:<A<O<OPQ u5558I8II "'";";<>C>R>RST 5;;~676("(L8Y//{{7#v-'0d'CG$\23
 $J9--{{8$.(1,(EH% ((77R@F$45!,,!,,6HUL*:F>;788:7<3	?O !M 8Y//!+y?IO/CIO0Dxj(##D1Ha0 HH##D!, 9--"<1A1ABI)"2"22DXJ&##Atax0==##At, 	I&[ 0,Y7HqX8t 
 
 
.C#u**+78}1++C0	9b%//E 3B @ I @ Ix
 NC  Cs8   0A^A^
A^
A^
A^
A^3A^#?A^(r   )!__doc__	itertoolsr   r   mathr   css.propertiesr   formatting_structurer   loggerr	   percentr   r   	preferredr   r   tabler   r   r   r%   r2   rA   rL   rO   rc   rh   rx   r   r   rw  r    r   r   <module>r     sq    0 "  & (  4 ; (AA*&85p/%d$%Pk=` >Bk\\
0r   