a
    [Xh                     @   s   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d Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! Zd'd#d$Zd%d& Z d"S )(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                 C   s   t | to| jdkS Nfr
isinstancer   unitZsizing r   [/var/www/viveiro_mudafortebrasil/venv/lib/python3.9/site-packages/weasyprint/layout/grid.py
_is_length   s    r   c                 C   s   t | to| jdkS r   r   r   r   r   r   _is_fr   s    r   c                 C   s   | || k o|| | k S Nr   )Z
position_1Zsize_1Z
position_2Zsize_2r   r   r   
_intersect   s    
r   c                 C   s@   |D ]6\}}}}t | |||}	t ||||}
|	r|
r dS qdS )NTF)r   )xywidthheightZ	positionsZfull_xZfull_yZ
full_widthZfull_heightZx_intersectZy_intersectr   r   r   _intersect_with_children   s    r   c                 C   s   | \}}}|rJ|d u rJ|d u rJt |D ]\}} | d| | v r& qJq&d}|d ur|d u r|d u rl|d }np|dkrxdnd}t |d d | D ](\}} || v r||8 } q|dkr qq|t|7 }|dkrt|d | }|d urd }||||fS )N-r	   r   )	enumerateabslen)linelinesZsidespannumberidentcoordstepr   r   r   	_get_line%   s,    

r,   c                 C   s  | dks| d dkr,|dks(|d dkr,d S | dkr^t | |d\}}}}|d urj|pVd}|}nd}d  }}|dkrt ||d\}}}}	|d ur|pd }}
|}|d urt||d d  ddD ]$\}}||v r|
d8 }
|
dkr qq||
7 }n|d ur|	| }|d u r|d u r |	| }nv|p(d}|	dkrt||	d d d }|D ]8\}}||v rh|d8 }|dkrN|	d | } qqN| }n| }|	| }nd}|dk r| }||8 }|dkrd}||fS )	Nautor   r'   startr	   endr.   r!   )r,   r"   )r.   r/   r&   r'   r(   r)   r*   sizeZ
span_identZ	coord_endZspan_numberr%   iterabler   r   r   _get_placementA   s\    
 












r3   c                 C   s    d}| d dkr| d pd}|S )Nr	   r   r'   r   )Zplacer'   r   r   r   	_get_spany   s    r4   c                 C   s  t  }| D ]v\}}	}
}|dkrTt|	|g| R  rt|||
 D ]}|| qBqt||
g| R  rt|	|	| D ]}	||	 qtq|r<t D ]}||v rq|dkrtd |d d f||}nJ|d dksJ |dks|d dksJ t|}t|d |d | d f|}t|d |d |d  }t ||@ s|  S qnt|pHdgd }|dkrptd |d d f||S |d dksJ |dks|d dksJ t|d D ]2}t|d |d d f|}|d |kr|  S qd S )Nrowr-   r	   r   r'   )	setvaluesr   rangeaddr   r3   r4   max)first_placementsecond_start
second_endsecond_trackschildren_positions
first_flowdenseZoccupied_tracksr   r   r   r   trackZ	placementr'   tracksZ	end_trackr   r   r   _get_second_placement   sN    

rD   c                 C   sJ   |  }}| d dkr$| dd  \}}|d dkr6d}nt |rBd}||fS )Nr   zminmax()r	   fit-content()r-   )r   )r1   Z
min_sizingZ
max_sizingr   r   r   _get_sizing_functions   s    rF   c           	      C   s  | dkrd} d| v r$t d g gS g }t| D ]\}}|d r|d dkr|dd  \}}t|tstt d	 d}t|D ]T}t|D ]F\}}|d r|| qt|d r|d
 | q|t	| qq|n
|| q0t|d r|d
 | q0|t	| q0|S )Nnone)r   ZsubgridzSubgrids are unsupportedr   r   zrepeat()r	   z6"auto-fit" and "auto-fill" are unsupported in repeat()r!   )
r   warningr"   r   intr8   appendr$   extendlist)	rC   Ztracks_listirB   Zrepeat_numberZrepeat_track_list_jZrepeat_trackr   r   r   _get_template_tracks   s6    

rP   c
           $      C   st  | dv sJ |dv sJ |dv s$J |dv s0J dgt | }
g }| dkrNdnd}|D ]z}|| }|dkr|d	v s~|d d
kr|d qVn:|dkr|dv r|d qVn|dkr|dv r|d qV|d qVt|D ]4\}}|sq|D ]}|dkr |dv rt||}n
t||}nNddlm} | }d|_d|_	|||t
 d |	dg g d\}}}}}}| }||||  D ]}||| 8 }q~td|}tt||||  |d}dgt | }dd |D }|t |pd }|D ]`}|| \}}|}|| | }|| d }|| |kr8|| | } || 8 }||8 }|||< q|r|rdd |D }!|t |!ptd }|!D ]`}|| \}}|}|| | }|| d }|| |kr|| | } || 8 }||8 }|||< q||rt|D ] \}"} | |
|" kr| |
|"< qqqt|
D ]T\}}#| dkrX|| d t
u rX|| d |# || d< n|| |  |#7  < qd S )N)minr:   )	intrinsiccontent-basedmax-content)minimummin-contentrT   xyr   rQ   r	   rR   rV   rT   r-   rE   TrS   )rV   rT   rT   )rT   r-   Fr   )rU   rV   block_level_layout)bottom_space
skip_stackcontaining_blockpage_is_emptyabsolute_boxesfixed_boxesr0   c                 S   s   g | ]\}}|r|qS r   r   .0rO   Zaffectedr   r   r   
<listcomp>#  s   z+_distribute_extra_space.<locals>.<listcomp>c                 S   s   g | ]\}}|s|qS r   r   ra   r   r   r   rc   3  s   r:   )r$   rJ   r"   r   r   blockrZ   deepcopy
position_x
position_yr   margin_heightr:   rL   )$Zaffected_sizesZaffected_tracks_typesZsize_contributiontracks_childrensizing_functionstracks_sizesr'   	directioncontextr]   Zplanned_increasesZaffected_tracksZaffected_size_indexZ	functionsfunctionrM   childrenitemspacerZ   rN   sizesZtracks_numbersZitem_incurred_increasesZaffected_tracks_numbersZdistributed_spaceZtrack_number	base_sizegrowth_limitZitem_incurred_increaseZaffected_sizelimitextraZunaffected_tracks_numberskZincreaser   r   r   _distribute_extra_space   s    












rx   Nc	           .         s  dv sJ g }	|dkrdn|}
| D ]\}}d }t |rDt||
}n|dv sX|d dkr\d}d }t |rtt||
}n |dv s|d dkst|rt}d ||fvrt||}|	||g q$dd tt|	D }| D ]J\}\}}}}dkr||fn||f\}}|d	krq|||  | qt	|| |	}|D ]\}\}}}|sNq4d
krVd	dl
m} d}|D ]}|| \}}}}t||||  }| }d|_d|_tj|d}t|| |j|_|j|_||_||_t }| ||d |dg g d\}}}}}}t|| }ql|dv r*||d< |dv r<||d	< d |vr4t||d	< q4|dkrtdg fdd|D R  |d< nZ|dkrtdg fdd|D R  |d< n,|dkrtdg fdd|D R  |d< |dkrt fdd|D |d	< n2|dv s|d dkr6t fdd|D |d	< d |vr4t||d	< q4tfdd| D }|D ]}dd tt| D }t| }|D ]\} \}\}}}}dkr||fn||f\}}||krڐq| | | | d	  D ]\}}t|r qq|||  | qtddd || |	| |
 tdd!d|| |	| |
 tddd|| |	| |
 |	D ]}d |vrrt||d	< qrt| }|D ]\} \}\}}}}dkr||fn||f\}}||krq| | | | d	  D ]\}}t|r qq|||  | qtd"dd|| |	| |
 td"dd|| |	| |
 qn|	D ] }|d	 tu rb|d |d	< qb|dkrd }!n&|td#d |	D  t|	d	 |  }!|!d ur2|!dkr2|!t|	 }"t|	D ]N\} }|\}}||" |kr||d< |!|| 8 }!n|d  |"7  < |!|"8 }!qt }#|!d urT|!dkrTd}$nT|!d urLd$}%|%sF|!}&d}'tt	|	| }|D ]<\} \}\}}t|r|&|d 7 }&| |#vr|'|j7 }'qtd	|'}'|&|' }(d}%tt	|	| }|D ]X\} \}\}}| |#vrt|r|(|j |d k r|#|  |!|d 8 }!|!dk}%qqb|(}$n\d}$t	|	| }|D ]H\}\}}t|r^|jd	krt|$|j|d  }$nt|$|d }$q^tt	|	| }|D ]`\} \}\}}t|r| |#vr|$|j |d kr|!d ur
|!|$|j 8 }!|$|j |d< q|jd% })|jd& }*dkoHt|)d'd(h@ }+d
kobt|*d'd(h@ },|+sp|,r|!d ur|!dkrd)d t	|	| D }-|-r|!t|- }"|-D ]}|d  |"7  < q|	S )*NrW   r-   r   rX   rE   c                 S   s   g | ]}g qS r   r   rb   rN   r   r   r   rc   q      z)_resolve_tracks_sizes.<locals>.<listcomp>r   r	   r   rY   r   T)r\   r]   r^   r_   r`   )rV   max_contentr-   )rV   r{   rV   c                 3   s   | ]}t  |V  qd S r   r   rb   childrm   r   r   	<genexpr>  s   z(_resolve_tracks_sizes.<locals>.<genexpr>rT   c                 3   s   | ]}t  |V  qd S r   r   r}   r   r   r   r     s   c                 3   s   | ]}t  |V  qd S r   r|   r}   r   r   r   r     s   c                 3   s   | ]}t  |V  qd S r   r|   r}   r   r   r   r     s   )r-   rT   zfit_content()c                 3   s   | ]}t  |V  qd S r   r   r}   r   r   r   r     s   c                    s8   h | ]0\}}}} d kr|n|dkr d kr0|n|qS )r   r   r   )rb   rN   r   r   )rl   r   r   	<setcomp>  s   
z(_resolve_tracks_sizes.<locals>.<setcomp>c                 S   s   g | ]}g qS r   r   ry   r   r   r   rc     rz   rQ   rR   rU   rS   r:   c                 s   s   | ]}|d  V  qdS )r   Nr   )rb   r1   r   r   r   r     rz   Fjustify_contentalign_contentnormalstretchc                 S   s    g | ]\}\}}|d kr|qS )r-   r   )rb   rr   min_functionrN   r   r   r   rc   6  s   
)r   r
   r   r   r:   rJ   r8   r$   itemsziprd   rZ   sumre   rf   rg   r   BlockContainerBoxanonymous_fromr   r   r   rh   sortedr7   r"   rx   r6   valuer9   style).rj   Zbox_sizer?   Zimplicit_startrl   Zgaprm   r]   Zorthogonal_sizesrk   Zpercent_box_sizer   Zmax_functionrs   rt   ri   r~   r   r   r   r   r*   r1   r2   ro   rr   rZ   rN   parentr[   Zspansr'   rM   Z
free_spaceZdistributed_free_spaceZinflexible_tracksZflex_fractionstopZleftover_spaceZflex_factor_sumZhypothetical_fr_sizer   r   Z	x_stretchZ	y_stretchZauto_tracks_sizesr   )rm   rl   r   _resolve_tracks_sizesT  s   







































 r   c           p      C   s  |    |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rd}n |jd	kr|jn|j}t||}|jd
 }|dkrd}n|jd	krdn|j}t||}|dkrd}dd |D }t|jd }t|jd }|rt|d nd}tt|d d t| }|dkrjt	|D ]}|
d g|  qPn4|dk rt	| D ]}|
t|
 |
g  q~tt|d d | }|dkr|D ] }t	|D ]}|
d  qАqn4|dk rt	| D ]}|
t| |
g  qt|D ]\}}t|D ]\}}|d u rJq4| d}dd |d d d D }||vr|d|  
| dd |d d d D }||vr4|d|  
| q4q$t|d d d D ]\}}t|d d d D ]\}}|d u rq| d}dd |d d d D }||vrH|d| d  
| dd |d d d D }||vr|d| d  
| qqd|	v rdnd}d|	v rd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 })|(r|)r|(\}}*|)\}}+|||*|+f|"|#< qt|jd d! d"},|,D ]}#|#|"v rqx|#jd#| d$ }-|#jd#| d% }.t|-|.| d d d }/|/sΐqx|#jd#| d$ }0|#jd#| d% }1t|/|0|1|!|"|d&|	v }2|dkr&|/\}}+|2\}}*n|/\}}*|2\}}+|||*|+f|"|#< qxd}3|dkrp|rjt|d nd}4nt|}4g }5|,D ]}#|#|"v r|dkr|"|# \}6}}7}n|"|# \}}6}}7nX|#jd#| d$ }0|#jd#| d% }1t|0|1|!d d d }2|5
|# |2r|2\}6}7nqt|6|3}3t|6|7 |4}4q|5D ]}#|#jd#| d$ }0|#jd#| d% }1d}8|0d	kr|0d d'kr|0d }8n |1d	kr|1d d'kr|1d }8t|3|8pd |4}4q4d}9|dkrt|}:n|rt|d nd}:|" D ]B};|dkr|;\}}6}}7n|;\}6}}7}t|6|9}9t|6|7 |:}:q|9|3 }<}=d&|	v 
r|5D ]}#|#jd#| d$ }-|#jd#| d% }.|#jd#| d$ }0|#jd#| d% }1t|0|1|!d d d }2|2	r,|9}<|2\}>}?|>}=t|<D ]}@|-d	krtd |@d d f|.| d d d \}@}AnB|-d d'ksJ t|-}8t|-d |@d |8 d f| d d d \}@}A|@|<k rRqt	|@|@|A D ]Z}|dkr|>|@ }}|?|A }*}+n|@|> }}|A|? }*}+t|||*|+|" }B|Br` qΐq` qƐq|@|A |: }C|Cdkr|:|C7 }:|dk	r|>|@ }}|?|A }*}+n|@|> }}|A|? }*}+|||*|+f|"|#< qL|9|3 }<}=|<}@t	|=|4D ]v}>|-d	k	rztd |@d d f|.| d d d \}@}AnB|-d d'k	sJ t|-}8t|-d |@d |8 d f| d d d \}@}A|0d	k	rtd |>d d f|1|!d d d \}>}?n0t|0}8t|0d |>d |8 d f|!d d d \}>}?|dk
r<|>|@ }}|?|A }*}+n|@|> }}|A|? }*}+t|||*|+|" }B|>|? |4k}D|B	sD|D
r	qDn8|||*|+f|"|#< |<|A d |: }C|Cdk
r|:|C7 }: 
q	qD|<d7 }<|<d |: }C|Cdk
r|:|C7 }:|3}=	q6qL	q6qLnL|5D ]D}#|#jd#| d$ }-|#jd#| d% }.|#jd#| d$ }0|#jd#| d% }1t|0|1|!d d d }2|2r|2\}>}?|>|=k r|<d7 }<|>}=t|<D ]}<|-d	krtd |<d d f|.| d d d \}@}AnB|-d d'ksJ t|-}8t|-d |@d |8 d f| d d d \}@}A|@|<k rqt	|@|@|A D ]Z}|dkrF|>|@ }}|?|A }*}+n|@|> }}|A|? }*}+t|||*|+|" }B|Br" qq" qq|@|A |: }C|Cdkr|:|C7 }:|||*|+f|"|#< q |<}@t	|=|4D ]B}>|-d	krtd |@d d f|.| d d d \}@}An0t|-}8t|-d |@d |8 d f| d d d \}@}A|0d	kr^td |>d d f|1|!d d d \}>}?n0t|0}8t|0d |>d |8 d f|!d d d \}>}?|dkr|>|@ }}|?|A }*}+n|@|> }}|A|? }*}+t|||*|+|" }B|>|? |4k}D|Bs|Drqn|||*|+f|"|#<  qDq|<d7 }<|<d |: }C|Cdkr4|:|C7 }:|3}=qq qq |dkrh|3|4 }E}F|9|: }G}Hn|9|: }E}F|3|4 }G}Ht	d|E D ]"}|dt| |dg  qt	|rt|d nd|FD ]}|
t| |
g  qt	d|G D ]"}|dt| |dg  qt	t||HD ]}|
t|
 |
g  q&t|tjrldd(lm}I |I|| n*t|tjs~J dd)lm}J |J|| | |jd	kr|j|_d*d |dd d D }Kd+d |dd d D }Lt |L|j|"|3d,|| |}Mt |K|j|"|Gd-|| |d.d |MD 	}Nt!|jd/ }O|" }td|jt#d0d1 |MD  }Pg }Qt|M}R|Od2h@ r||Pd 7 }|MD ] \}7}|Q
| ||7| 7 }qrnL|Oh d3@ r||P7 }|MD ] \}7}|Q
| ||7| 7 }qn|Od4h@ r$||Pd |R 7 }|MD ](\}7}|Q
| ||7|P|R  | 7 }qn|Od5h@ rn|MD ]6\}7}|Q
| |Rdkr4||7|P|Rd   | 7 }q4nv|Od6h@ r||P|Rd  7 }|MD ],\}7}|Q
| ||7|P|Rd   | 7 }qn&|MD ] \}7}|Q
| ||7| 7 }qt!|jd7 }S|$ }|jd	krd}Tn2|jt#d8d1 |ND  t|Nd |  }Ttd|T}Tg }Ut|N}V|Sd2h@ r||Td 7 }|ND ] \}7}|U
| ||7| 7 }qfnb|Sh d3@ r||T7 }|ND ] \}7}|U
| ||7| 7 }qn"|Sd4h@ r||Td |V 7 }|ND ](\}7}|U
| ||7|T|V  | 7 }qn|Sd5h@ rb|ND ]6\}7}|U
| |Vdkr(||7|T|Vd   | 7 }q(n|Sd6h@ r||T|Vd  7 }|ND ],\}7}|U
| ||7|T|Vd   | 7 }qn<|Sd9h@ rt%&d: |ND ] \}7}|U
| ||7| 7 }qg }Wd }X|r<tt'|}Yt#d;d1 |Nd |Y D t|Nd |Y d |  }Znd}Yd}Zd }[t#d<d1 |N|Yd  D t|N|Yd  d |  }\|U|Yd d  |$ |\ g }]t|]|Yd d=D ]\}6}^| (||^|Z rJ|sJ|6dkrd d d>d d?g d@f  S |6d }X|6d d i}[|,D ]@}#|"|# \}}}}|Y|  kr2|6d krn n
|W
|# q qd@}q|,D ]*}#|"|# \}}}}|Y|krV|W
|# qV|jd	krt#dAd1 |N|Y|X D t|N|Y|X d |  |_t!|jdB }_t!|jdC }`g }ad }bd>d d?}cddDlm)}d |WD ]\}#|"|# \}}}*}+|j*|#}e|rP|+|rP|e|| v rP|| |e }fnd }f|#, }#|Q| |#_-|U| |Z |#_.t/|#| t#dEd1 |M|||*  D |*d |  }*t#dFd1 |N|||+  D |+d |  }+|#j0d	krd|#_0|#j1d	krd|#_1|#j2d	krd|#_2|#j3d	krd|#_3|*|#j3|#j4 |#j5 |#j1 |#j6 |#j7  }g|+|#j0|#j8 |#j9 |#j2 |#j: |#j;  }ht!|#jdG }i|id	h@ r|_}i|iddHh@ r|#jdI d	krt<|gdJ|#jdI< t!|#jdK }j|jd	h@ r|`}j|jddHh@ r|#jdL d	krt<|hdJ|#jdL< tj=>|dM}kt/|k| |#j-|k_-|#j.|k_.|*|k_|+|k_|d| |#||f|k|||d dN \}l}m}n|lr d@}nq |iddHh@ rt|g|lj|l_nNt?| |l|l_|g|lj }o|id2h@ r|l@|od d n|ih dO@ r|l@|od |jddHh@ rt|h|lj|l_nB|h|lj }o|jd2h@ r|l@d|od  n|jh dP@ r6|l@d|o |a
|l |bd u r ||Gkr tA|l}bq |B|a}t|tjrt%&dQ |bpd|_C| D| ||[|cg d@fS )RNZgrid_template_areasZgrid_auto_flowZgrid_auto_rowsZgrid_auto_columnsr!   
column_gapr   r   r-   row_gaprG   )r   c                 S   s   g | ]}t |qS r   )rL   rb   r5   r   r   r   rc   \  rz   zgrid_layout.<locals>.<listcomp>Zgrid_template_rowsZgrid_template_columnsr	   r   z-startc                 S   s   g | ]}|D ]}|qqS r   r   rb   r5   namer   r   r   rc   }  rz   c                 S   s   g | ]}|D ]}|qqS r   r   rb   columnr   r   r   r   rc     rz   z-endc                 S   s   g | ]}|D ]}|qqS r   r   r   r   r   r   rc     rz   c                 S   s   g | ]}|D ]}|qqS r   r   r   r   r   r   rc     rz   r   r5   Zgrid_column_startZgrid_column_endZgrid_row_startZgrid_row_endc                 S   s
   | j d S )Norder)r   )rp   r   r   r   <lambda>  rz   zgrid_layout.<locals>.<lambda>)keyZgrid__startZ_endrA   r'   )block_level_width)inline_block_widthc                 S   s   g | ]}t |qS r   rF   r   r   r   r   rc     rz   c                 S   s   g | ]}t |qS r   r   )rb   r   r   r   r   rc     s   r   r   c                 S   s   g | ]\}}|qS r   r   rb   r1   rN   r   r   r   rc     rz   r   c                 s   s   | ]\}}|V  qd S r   r   r   r   r   r   r     rz   zgrid_layout.<locals>.<genexpr>center>   rightr/   flex-endzspace-aroundzspace-betweenzspace-evenlyr   c                 s   s   | ]\}}|V  qd S r   r   r   r   r   r   r   '  rz   baselinez3Baseline alignment is not supported for grid layoutc                 s   s   | ]\}}|V  qd S r   r   r   r   r   r   r   T  rz   c                 s   s   | ]\}}|V  qd S r   r   r   r   r   r   r   [  rz   r0   any)breakpageFc                 s   s   | ]\}}|V  qd S r   r   r   r   r   r   r   s  rz   justify_itemsalign_itemsrY   c                 s   s   | ]\}}|V  qd S r   r   r   r   r   r   r     rz   c                 s   s   | ]\}}|V  qd S r   r   r   r   r   r   r     rz   justify_selfr   r   Zpx
align_selfr   r      >   r   r/   self-endr   >   r/   r   r   zInline grids are not supported)EZcreate_block_formatting_contextr   r   r   r
   r   rP   r$   rI   r8   rJ   nextr"   ro   r3   r   rD   rQ   r:   r7   r   r4   r   insertr   r   ZGridBoxrd   r   ZInlineGridBoxinliner   r   r6   Zcontent_box_xr   Zcontent_box_yr   rH   iterZoverflows_pagerZ   indexgetre   rf   rg   r   Z
margin_topZmargin_rightZmargin_bottomZmargin_leftZborder_left_widthZpadding_leftZborder_right_widthZpadding_rightZborder_top_widthZpadding_topZborder_bottom_widthZpadding_bottomr   r   r   r   	translater   Zcopy_with_childrenr   Zfinish_block_formatting_context)prm   Zboxr[   r\   r]   r^   r_   r`   Z
grid_areasZflowZ	auto_rowsZauto_columnsZauto_rows_backZauto_columns_backr   Zrefer_tor   rowscolumnsZgrid_areas_columnsZ	rows_diffrN   Zcolumns_diffr5   r   r   Z	area_nameZ
start_namenamesZend_namer@   Zsecond_flowZfirst_tracksr>   r?   r~   Zcolumn_startZ
column_endZ	row_startZrow_endZcolumn_placementZrow_placementr   r   ro   Zfirst_startZ	first_endr;   r<   r=   Zsecond_placementZimplicit_second_1Zimplicit_second_2Zremaining_grid_itemsrM   r1   r'   Zimplicit_first_1Zimplicit_first_2positionZcursor_firstZcursor_secondZsecond_iZsecond_sizeZfirst_iZ
first_sizeZ	intersectZ
first_diffZoverflowZimplicit_x1Zimplicit_x2Zimplicit_y1Zimplicit_y2r   r   Zrow_sizing_functionsZcolumn_sizing_functionsZcolumns_sizesZ
rows_sizesr   Z
free_widthZcolumns_positionsZcolumns_numberr   Zfree_heightZrows_positionsZrows_numberZthis_page_childrenZ
resume_rowZskip_rowZskip_heightZ	resume_atZtotal_heightZrow_lines_positionsZrow_yr   r   Znew_childrenr   Z	next_pagerZ   r   Zchild_skip_stackZchild_widthZchild_heightr   r   r   	new_childZchild_resume_atZchild_next_pagediffr   r   r   grid_layoutB  sz   




























































































 

















 


 












r   )N)!__doc__	itertoolsr   r   mathr   Zcss.propertiesr   Zformatting_structurer   loggerr   percentr
   r   	preferredr   r   tabler   r   r   r   r   r,   r3   r4   rD   rF   rP   rx   r   r   r   r   r   r   <module>   s.   	82(p 
 o