Ë
    £ëi¢º  ã                   óê   — d Z ddlmZ ddlZddlmZ ddl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ej(                  ffd„Z edd«      fd„Zej0                  j3                  d«      Zd„ Zy)z+Layout for tables and internal table boxes.é    )ÚinfNé   )Úboxes)ÚLOGGERé   )Úresolve_one_percentageÚresolve_percentages)Ú"table_and_columns_preferred_widthsc                 ó(
  ‡ ‡‡‡‡‡‡‡%‡&‡'‡(‡)‡*‡+‡,‡-‡.‡/‡0‡1‡2‡3‡4‡5‡6‡7— ddl mŠ%mŠ&mŠ'mŠ.mŠ/mŠ4 ‰j                  xr ‰j                  d   j                  Š2‰j                  xr ‰j                  d   j                  Š1‰j                  d   dk(  Š+‰duxr ‰2 }‰j                  |d¬	«       ‰+rdxŠ)Š*n‰j                  d
   \  Š)Š*‰j                  Š-g xŠ,‰_        ‰j                  «       ‰)z   Š5‰j                  d   dk(  r=‰j                  «       }	|	‰)z   }
‰-D ]  }|	‰)z  }	‰,j                  |	«       |	|z  }	Œ |	|
z
  Š6nI‰j                  «       ‰j                   z   }	|	‰)z
  }
‰-D ]  }|	‰)z  }	|	|z  }	‰,j                  |	«       Œ |
|	z
  Š6‰+r¦d‰_        d‰_        d}‰r`‰j'                  «       \  \  }}|r|j'                  «       \  \  }}|rd}nd}‰j                  d| D ]  }|t)        |j                  «      z  }Œ nd}|s0‰2s.‰j*                  \  }}|rt-        d„ ||   D «       «      dz  ‰_        ˆˆ%ˆ&ˆ'ˆ)ˆ*ˆ+ˆ,ˆ-ˆ ˆ.ˆˆ/ˆ1ˆ2ˆ4ˆ5ˆ6ˆfd„Š0ˆˆ%ˆ'ˆ*ˆ ˆ.ˆˆ/ˆ0ˆ4ˆfd„Š(‰j1                  «       Š3‰€‰3‰*z  Š3‰3}‰j                  D �cg c]  }|j                  s|j                  s|‘Œ c}Š7ˆ%ˆ(ˆ*ˆˆ ˆ0ˆ1ˆ2ˆˆ3ˆˆˆ7fd„}d„ } |«       \  }}}Š3}}|€|�J ‚dŠg }d}‰||||fS ‰j3                  |�|gng |z   |�|gng z   «      Št5        d„ ‰j6                  D «       «      ‰_        |duxr ‰1 }‰j                  ||«       ‰+r‰_        t-        ‰j:                  dk7  r‰j:                  nd‰3‰j1                  «       z
  «      ‰_        ‰3|z
  } ‰j                  r| ‰*z  } ‰j6                  D �]  }|j                  D ]•  }!t=        |!‰¬«       |!j>                  t)        ‰,«      k  r7‰,|!j>                     |!_         ||!_!        ‰-|!j>                     |!_        | |!_        nd|!_         d|!_!        d|!_        d|!_        t=        |‰¬«        |‰|!«      |!_"        Œ— |j                  d   }"|j                  d   }#|"j@                  |_         ||_!        |#j@                  |#j                   z   |"j@                  z
  |_        | |_        �Œ ‰j                  d   dk(  r ‰-jG                  «        ‰,jG                  «         ‰%‰j                  d   ‰ «      }$|r‰s|$r ‰4‰ ‰g‰‰«       dŠd}g }d}‰||||fS c c}w )zLayout for a table box.r   )Úavoid_page_breakÚblock_container_layoutÚblock_level_page_breakÚfind_earlier_page_breakÚforce_page_breakÚremove_placeholdersr   éÿÿÿÿÚborder_collapseÚcollapseNF)ÚendÚborder_spacingÚ	directionÚltrTc              3   ó.   K  — | ]  \  }\  }}}|–— Œ y ­w©N© ©Ú.0Ú_Úwidths      úW/var/www/html/chat/reports/venv/lib/python3.12/site-packages/weasyprint/layout/table.pyú	<genexpr>ztable_layout.<locals>.<genexpr>J   s   è ø€ ò -9Ù.˜a¡ ! U¨A”Eñ-9ùó   ‚r   c                 ój  •— d }dd dœ}|}t        | ‰>¬«       ‰<| _        || _        ‰=| _        g }| j                  D �	cg c]  }	g ‘Œ }
}	|d u }|rd}n|j                  «       \  \  }}t        | j                  |d  |¬«      D �]µ  \  }}	||	_        |r! ‰/|d   |	«      } ‰8|‰5«      r||d<   |d i} �nˆt        |	‰>¬«       ‰<|	_        ||	_        ‰=|	_        g }t        |	j                  «      D �]&  \  }}‰4|j                  d  d |j                   }t        |«      |_	        |j                  dk(  rQ|	j                  j                  |«      }|	j                  |d  }t        j                  dt        |«      › d	|› �«        �n—t        |‰>¬«       ‰>j                  d
   dk(  r‰3|j                     |_        n$‰3|j                  |j                  z   dz
     |_        |	j                  |_        d|_        d|_        d|_        |j!                  «       }t#        |«      ‰0|j                  dz
  z  z   |z
  |_        |r"||v r||   }nt        |j                  «      d i}nd }|rh‰2rf‰:r]‰>j                  d   j                  }|rI|d   j                  r:|xj                  t%        d„ |d   j                  D «       «      z  c_        nd‰>_        |j(                  |_        d|_        |j                  }|j                  d   dk7  r&|j                  j-                  «       }d|d<   ||_         ‰.‰5||||‰,‰7d d d dd ¬«      \  }}}}}}||_        |€1|j/                  g «      } ‰.‰5|||dg g d d d dd ¬«      \  }}}}}}dd i}n|}|j1                  |d ud¬«       |r|€|i i}|||   |<   t3        d„ |j                  D «       «       |_        |j(                  |_        |j*                  dk7  r%t%        |j(                  |j*                  «      |_        |j9                  |«       �Œ) |rM|sK ‰-|	j                  d   ‰5«      xs t3        ˆ-ˆ5fd„|	j                  D «       «      }|r|i i} ‰;‰5|‰,‰7«        �nÖ|r|D ]  }|j1                  dd¬«       Œ |	j/                  |«      }	g }|	j                  D ]E  }|j                  d   }|dv r||_        Œd|_        t=        |«      |_        |j9                  |«       ŒG |r`t%        d„ |D «       «      |	_        |D ]D  }|	j>                  |j>                  z
  } |j>                  |	j>                  k7  sŒ6| sŒ9tA        || «       ŒF |	j                  D ]#  }|
|jB                  dz
     j9                  |«       Œ% |
jE                  d«      }!|!r…|	j(                  dk(  r1t%        d„ |!D «       «      }"t%        |"|	j                  z
  d«      |	_        nXt%        |	j(                  t%        d„ |!D «       «      «      |	_        |	j                  |	j(                  z   }"n|	j                  }"d|	_        |s|"|	_        |!D �]  }|j                  |jG                  «       z   }#|"|#z
  } | rg|j:                  dk(  rtA        || «       nK|j:                  dk(  r'| dz  } tA        || «       |xjH                  | z  c_$        n|xjH                  | z  c_$        |j*                  dk7  sŒŸd}$|j:                  dk(  r|j*                  |j6                  z
  dz  }$n(|j:                  dk(  r|j*                  |j6                  z
  }$|$dkD  sŒû|j                  D ]  }%|%jK                  |$¬ «       Œ �Œ  |	j                  |	j(                  z   }&|€|&‰1z  }&d}'|r)tM        d!„ |	j                  D «       «      rtN        }&d}d }nd}'‰5jQ                  ||&«      }(|sZ|(rX ‰;‰5|	j                  ‰,‰7«       |r1|d   }) ‰/|)|	«      } ‰-|‰5«      r ‰6‰5|‰,‰7«      }*|*r|*\  }} nC|d i} n=|r|d i}nd d |fc S  n-|j9                  |	«       |&}d}d }|'r‰2r	‰9sd‰>_)        |'s|s�Œ¶ n |xr  | xr  ‰-| j                  d   ‰5«      xs | }+|+r ‰;‰5|‰,‰7«       d d |fS | j/                  |«      } | j1                  | |d u¬«       | j                  D ]Q  }	|	j>                  �Œ|	j                  r/t%        d"„ |	j                  D «       «      |	j                  z
  |	_        ŒKd|	_        ŒS || j                  z
  | _        | j                  r| xj(                  ‰1z  c_        | ||fS c c}	w )#NÚany©ÚbreakÚpage©Úcontaining_blockr   ©Ústartr   r&   z8This table row has more columns than the table, ignored z cells: r   r   r   c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr   )Úborder_bottom_width)r   Úheaders     r    r!   z5table_layout.<locals>.group_layout.<locals>.<genexpr>¢   s    è ø€ ò 3Hà$*ð !'× :Õ :ñ3Hùó   ‚TÚautoÚheightF)Úpage_is_emptyÚabsolute_boxesÚfixed_boxesÚadjoining_marginsÚfirst_letter_styleÚfirst_line_styleÚdiscardÚ	max_lines)r+   r   c              3   ó`   K  — | ]&  }|j                  «       xs |j                  «       –— Œ( y ­wr   )Ú
is_floatedÚis_in_normal_flow©r   Úchilds     r    r!   z5table_layout.<locals>.group_layout.<locals>.<genexpr>Î   s2   è ø€ ò %0àð ×$Ñ$Ó&ÒC¨%×*AÑ*AÓ*CÓCñ%0ùs   ‚,.Úbreak_insidec              3   óJ   •K  — | ]  } ‰|j                   d    ‰«      –— Œ y­w)r?   N)Ústyle)r   Úcellr   Úcontexts     €€r    r!   z5table_layout.<locals>.group_layout.<locals>.<genexpr>Ú   s+   øè ø€ ò P2à ñ )¨¯©°NÑ)CÀW×MñP2ùs   ƒ #Úvertical_align)ÚtopÚmiddleÚbottomÚbaselinec              3   ó4   K  — | ]  }|j                   –— Œ y ­wr   )rH   ©r   rB   s     r    r!   z5table_layout.<locals>.group_layout.<locals>.<genexpr>ù   s   è ø€ Ò"L°T 4§=¥=Ñ"Lùr/   c              3   óV   K  — | ]!  }|j                   |j                  «       z   –— Œ# y ­wr   )Ú
position_yÚborder_heightrJ   s     r    r!   z5table_layout.<locals>.group_layout.<locals>.<genexpr>  s*   è ø€ ò '2à ð Ÿ™¨$×*<Ñ*<Ó*>Õ>ñ'2ùó   ‚')c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr   )rM   )r   Úrow_cells     r    r!   z5table_layout.<locals>.group_layout.<locals>.<genexpr>
  s    è ø€ ò 5OØ5=˜×.Ñ.×0ñ5Oùó   ‚rG   rF   r   ©Údyc              3   ó4   K  — | ]  }|j                   –— Œ y ­wr   )Úemptyr=   s     r    r!   z5table_layout.<locals>.group_layout.<locals>.<genexpr>5  s   è ø€ Ò= u�u—{•{Ñ=ùr/   c              3   óV   K  — | ]!  }|j                  «       |j                  z   –— Œ# y ­wr   )Úcontent_box_yr1   rJ   s     r    r!   z5table_layout.<locals>.group_layout.<locals>.<genexpr>s  s*   è ø€ ò '2à ð ×*Ñ*Ó,¨t¯{©{Õ:ñ'2ùrN   )*r	   Ú
position_xrL   r   ÚchildrenÚitemsÚ	enumerateÚindexÚgrid_xÚcolspanÚlenr   ÚwarningrA   Ú
margin_topÚmargin_leftÚborder_widthÚsumÚmaxÚskip_cell_border_topr1   Úcomputed_heightÚcopyÚcopy_with_childrenÚremove_decorationr$   rU   Úcontent_heightÚappendrD   Úcell_baselinerH   Úadd_top_paddingÚrowspanÚpoprM   Úpadding_bottomÚ	translateÚallr   Úoverflows_pageÚskip_cell_border_bottom)?ÚgrouprL   Úbottom_spacer2   Ú
skip_stackÚ	resume_atÚ	next_pageÚoriginal_page_is_emptyÚnew_group_childrenÚrowÚending_cells_by_rowÚis_group_startÚskipÚ	index_rowÚ
page_breakÚnew_row_childrenÚ
index_cellrB   Úspanned_widthsÚ
cell_indexÚignored_cellsÚborders_plus_paddingÚcell_skip_stackÚheader_rowsÚoriginal_styleÚ
style_copyÚnew_cellÚcell_resume_atr   Úavoid_breakÚbaseline_cellsrD   ÚextraÚending_cellsÚrow_bottom_yÚcell_bottom_yÚvertical_align_shiftr>   Únext_position_yÚ
break_cellÚoverflowÚprevious_rowÚearlier_page_breakÚabortr3   r   r   r   Úborder_spacing_xÚborder_spacing_yr   Úcolumn_positionsÚcolumn_widthsrC   r   r4   r   Ú
has_footerÚ
has_headerr   Úrows_left_xÚ
rows_widthÚtables?                                               €€€€€€€€€€€€€€€€€€€r    Úgroup_layoutz"table_layout.<locals>.group_layoutP   s
  ø€ Øˆ	Ø#¨TÑ2ˆ	Ø!.ÐÜ˜E°EÕ:Ø&ˆÔØ%ˆÔØ ˆŒØÐà-2¯^©^Ö< cšrÐ<ÐÐ<à# tÐ+ˆÙØ‰Dà",×"2Ñ"2Ó"4ÑÑˆT�:Ü'¨¯©°t°uÐ(=ÀTÔJó |	‰NˆI�sØ!ˆCŒIá!Ù3Ø& rÑ*¨Có1�
á# J°Ô8Ø)3�I˜gÑ&Ø!*¨DÐ 1�IÚä °eÕ<Ø(ˆCŒNØ'ˆCŒNØ"ˆCŒIà!ÐÜ$-¨c¯l©lÓ$;ó b.Ñ �
˜DØ!.¨t¯{©{¨|Ð!<¸]¸d¿l¹lÐ!K�ô
  # >Ó2�”Ø—<‘< 1Ò$ð "%§¡×!3Ñ!3°DÓ!9�JØ$'§L¡L°°Ð$=�MÜ—N‘Nð#Ü#& }Ó#5Ð"6°h¸}¸oðOôPò Ü# D¸5ÕAØ—;‘;˜{Ñ+¨uÒ4Ø&6°t·{±{Ñ&C�D•Oà&6°t·{±{ÀTÇ\Á\Ñ7QÐTUÑ7UÑ&V�D”OØ"%§.¡.�”Ø"#�”Ø#$�Ô Ø�”
Ø'+×'8Ñ'8Ó':Ð$ô ˜Ó'Ø$¨¯©°qÑ(8Ñ9ñ:à(ñ)ð ”
ñ Ø! ZÑ/Ø*4°ZÑ*@™ä+.¨t¯}©}Ó+=¸tÐ*D™à&*�Oñ #¡xÙ!ð ',§n¡n°QÑ&7×&@Ñ&@˜Ù&¨;°r©?×+CÒ+CØ ŸOšO¬sñ 3Hà.9¸"©o×.FÑ.Fô3Hó 0Hñ HžOð 6:˜Ô2ð (,§{¡{�Ô$Ø$�”Ø!%§¡�Ø—:‘:˜hÑ'¨6Ò1Ø!%§¡§¡Ó!2�JØ+1�J˜xÑ(Ø!+�D”JÙ7MØ˜T <°Ø"/ÀØ +¸tØ'+¸dÈEØ"ô8$Ñ4�˜.¨!¨Q°°1ð ,�”
ØÐ#Ø×2Ñ2°2Ó6�DÙ*@Ø  |°_Ø&*¸2È2Ø*.À4Ø)-°uÈô	+NÑ'�D˜!˜Q  1 að
 '(¨ Y‘Nà#�Dà×&Ñ&¨_ÀDÐ-HÈeÐ&ÔTÙ!Ø Ð(Ø%.° O˜	Ø7E�I˜iÑ(¨Ñ4Ü!$ñ %0à!%§¡ô%0ó "0ð 0�”
ð '+§k¡k�Ô#Ø×'Ñ'¨6Ò1Ü"% d§k¡k°4×3GÑ3GÓ"H�D”KØ ×'Ñ'¨Ö-ðEb.ñH ¡ñ % S§Y¡Y¨~Ñ%>ÀÓHò 2ÌCô P2à$'§L¡LôP2ó M2ð ñ Ø!*¨B �IÙ'ØÐ!1°>À;ôPâáà,ò B�DØ×*Ñ*°¸DÐ*ÕAðBð ×(Ñ(Ð)9Ó:ˆCð  ˆNØŸ™ò 0�Ø!%§¡Ð,<Ñ!=�Ø!Ð%@Ñ@Ø*8�DÕ'ð +5�DÔ'Ü$1°$Ó$7�D”MØ"×)Ñ)¨$Õ/ð0ñ Ü"Ñ"L¸^Ô"LÓL�”Ø*ò 5�DØŸL™L¨4¯=©=Ñ8�EØ—}‘}¨¯©Ó4ºÜ'¨¨eÕ4ð5ð Ÿ™ò C�Ø# D§L¡L°1Ñ$4Ñ5×<Ñ<¸TÕBðCà.×2Ñ2°1Ó5ˆLÙØ—:‘: Ò'Ü#&ñ '2à$0ô'2ó $2�Lô "% \°C·N±NÑ%BÀAÓ!F�C•Jä!$ S§Z¡Z´ñ 5OØAMô5Oó 2Oó "P�C”Jà#&§>¡>°C·J±JÑ#>‘Là"Ÿ~™~�Ø�”
á!Ø+�”ð %ó E�Ø $§¡°$×2DÑ2DÓ2FÑ F�Ø$ }Ñ4�ÙØ×*Ñ*¨hÒ6Ü'¨¨eÕ4Ø×,Ñ,°Ò8Ø ™
˜Ü'¨¨eÔ4Ø×+Ò+¨uÑ4Ö+à×+Ò+¨uÑ4Õ+Ø×'Ñ'¨6Ó1Ø+,Ð(Ø×*Ñ*¨hÒ6à ×0Ñ0°4×3FÑ3FÑFÈ!ñ0LÑ,à×,Ñ,°Ò8à ×0Ñ0°4×3FÑ3FÑFð -à+¨aÓ/Ø%)§]¡]ò E˜EØ!ŸO™OÐ/C˜OÕDòEð+Eð0 "Ÿn™n¨s¯z©zÑ9ˆOØÐ ØÐ#3Ñ3�ð ˆJÙÜÑ=°·±Ô=Ô=ä&)�OØ$)�MØ $‘Ià!%�Jð ×-Ñ-¨l¸OÓLˆHÙ ¡XÙ# G¨S¯\©\¸>È;ÔWÙ%Ø#5°bÑ#9�LÙ!7¸ÀcÓ!J�JÙ'¨
°GÔ<Ù-DØ#Ð%7¸Èó.VÐ*á-Ø<NÑ9Ð.°	Ù!à%.°Ð$5˜	ÙÙ)Ø!*¨DÐ 1‘Ià  yÐ0Ò0Ùà×%Ñ% cÔ*Ø(ˆJØ!ˆMØˆJá™h©zØ04�Ô-á›YÙðy|	ðB ò (Ø&Ð&ò(á  §¡¨^Ñ!<¸gÓFò 'Ø&Ð&ð	 	ñ
 ÙØÐ+¨^¸[ôJà˜˜yÐ(Ð(à×(Ñ(Ð);Ó<ˆØ×Ñ¨.Ð&8¸iÈtÐ>SÐÔTð —>‘>ò 	%ˆCØ�|‰|Ñ#Ø—<’<ä#&ñ '2à$'§L¡Lô'2ó $2à47·N±Nñ$C�C•Lð $%�C•Lð	%ð " E×$4Ñ$4Ñ4ˆŒØ�>Š>à�LŠLÐ,Ñ,�Là�i Ð*Ð*ùòG	 =s   ½	d0c                 óD  •— | €d}n| j                  «       \  \  }} g }d }dd dœ}t        ‰j                  |d  «      D ]Ü  \  }}	|	j                  s|	j                  rŒ||z   }
|
|	_        |r  ‰|d   |	«      } ‰|‰«      r||d<   |
d i} n’ ‰|	|||| «      \  }}}d } |€O|rC|d   } ‰||	«      } ‰|‰«      r' ‰‰|‰‰«      }|€ ‰‰|‰‰«       d d ||fc S |\  }} n>|
d i}nd d ||fc S  n/|j                  |«       ||j                  ‰z   z  }d}|sŒØ|
|i} n ||||fS )Nr   r$   r%   r   r&   F)rZ   r[   rY   Ú	is_headerÚ	is_footerr\   rl   r1   )rx   rL   rw   r2   r€   Únew_table_childrenry   rz   Úirv   Úindex_groupr‚   Ú	new_groupÚprevious_grouprš   r3   r   r   r�   rC   r   r4   r   r¥   r   r¤   s                  €€€€€€€€€€€r    Úbody_groups_layoutz(table_layout.<locals>.body_groups_layout  sµ  ø€ ØÐØ‰Dà",×"2Ñ"2Ó"4ÑÑˆT�:ØÐØˆ	Ø#¨TÑ2ˆ	ä! %§.¡.°°Ð"7Ó8ò -	‰HˆAˆuØ�Š %§/¢/Øð ˜d™(ˆKØ%ˆEŒKá!Ù3Ð4FÀrÑ4JÈEÓR�
Ù# J°Ô8Ø)3�I˜gÑ&Ø!,¨dÐ 3�IÙá.:Ø�z <°À
ó/LÑ+ˆI�y )àˆJàÐ Ù%Ø%7¸Ñ%;�NÙ!7¸ÈÓ!N�JÙ'¨
°GÔ<Ù-DØ#Ð%7¸Èó.VÐ*à-Ð5Ù/Ø 'Ð);¸^Ø +ô-ð $(¨¨y¸*Ð#DÒDØ8JÑ5Ð*¨IÙØ!,¨dÐ 3‘Ià  y°*Ð<Ò<Ùà×%Ñ% iÔ0Ø˜)×*Ñ*Ð-=Ñ=Ñ=ˆJØ!ˆMâØ(¨)Ð4�	Ùð[-	ð^ " 9¨i¸ÐCÐCó    c                  ón  •— ‰r‰} nt          } ‰r7‰j                  d   } ‰|‰| d d¬«      \  }}}|r|s|j                  ‰z   }nd }nd }‰r7‰j                  d   } ‰|‰| d d¬«      \  }}}|r|s|j                  ‰z   }nd }nd }‰r‰\  }nd}d}‰j                  |d  D ]3  }	|	j                  rŒ|	j                  rŒ ‰|	j
                  d   ‰«      } n |rM|rK ‰‰‰z   ‰z   |¬«      \  }
}}}|
s‰r‰s,|j                  ||j                  z
  ¬«       ||z  }||
||||fS d }|r&|s$ ‰‰‰z   ‰|¬«      \  }
}}}|
s‰r‰s||
||||fS d }|rJ|sH ‰‰‰‰z   |¬«      \  }
}}}|
s‰r‰s,|j                  ||j                  z
  ¬«       ||z  }||
||||fS d }|rJ ‚|rJ ‚ ‰‰‰‰‰«      \  }
}}}||
||||fS )Nr   F)rx   r2   r   r?   )r2   rR   )r   rY   r1   r§   r¨   rA   rr   rL   )Úheader_footer_bottom_spacer.   ry   rz   Úheader_heightÚfooterÚfooter_heightr€   Úavoid_breaksrv   r©   Úend_position_yr   r®   r�   rw   rC   r¥   r    r¡   r2   rL   rx   r¤   Ú
table_rowss               €€€€€€€€€€€€€r    Úall_groups_layoutz'table_layout.<locals>.all_groups_layoutÂ  s¤  ø€ ñ Ø)5Ñ&ä*-¨Ð&áØ—^‘^ AÑ&ˆFÙ+7Ø˜
Ð$>Ø¨uô,6Ñ(ˆF�I˜yñ ™iØ &§¡Ð0@Ñ @‘ð ‘àˆFáØ—^‘^ BÑ'ˆFÙ+7Ø˜
Ð$>Ø¨uô,6Ñ(ˆF�I˜yñ ™iØ &§¡Ð0@Ñ @‘ð ‘àˆFñ Ø‰E‰DàˆDØˆØ—^‘^ D EÐ*ò 	ˆEØ—?“?¨5¯?«?Ù/°·±¸NÑ0KÈWÓU�Ùð	ñ
 ‘fñ #Ø 
¨]Ñ :Ø  =Ñ0ÀôNñ EÐ 	¨9°nñ "©¹=Ø× Ñ  N°V×5FÑ5FÑ$FÐ ÔGØ -Ñ/�àÐ.°¸È	Øðð ð
 �á™&ñ #Ø 
¨]Ñ :¸LØ".ô0ñ EÐ 	¨9°nñ "©¹=àÐ.°¸È	Øðð ð
 �á™&ñ #Ø 
¨L¸=Ñ,HØ".ô0ñ EÐ 	¨9°nñ "©¹=Ø× Ñ  N°V×5FÑ5FÑ$FÐ ÔGØ -Ñ/�àÐ.°¸È	Øðð ð
 �áÐˆzÙÐˆzá˜z¨:°|À]ÓSñ 	AÐ˜I y°.àÐ)¨6°>À9ÈiÐWÐWr¯   c                 ó   ‡ ‡— ˆˆ fd„S )z(Return closure getting the column cells.c            	      óÄ   •— ‰j                   D � ��cg c]?  } | j                   D ].  }|j                   D ]  }|j                  ‰j                  k(  r|‘Œ Œ0 ŒA c}}} S c c}}} w r   )rY   r]   )Ú	row_groupr}   rB   Úcolumnr¤   s      €€r    ú<lambda>z8table_layout.<locals>.get_column_cells.<locals>.<lambda>+  sm   ø€ à"Ÿ^™^÷-ð -àØ ×)Ñ)ò-ð ØŸ™ò	-ð Ø�{‰{˜fŸm™mÒ+ò	 ð-Øð-Øô-€ ùô -s   ’AAr   )r¤   r¼   s   ``r    Úget_column_cellsz&table_layout.<locals>.get_column_cells)  s   ù€ ô-ð 	-r¯   c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr   )Údeepcopy)r   Úcolumn_groups     r    r!   ztable_layout.<locals>.<genexpr>@  s    è ø€ ò  IØ$0ˆ×Ñ×ñ IùrQ   r0   r(   Úrtlr?   )$Úblockr   r   r   r   r   r   rY   r§   r¨   rA   rj   rŸ   rž   Úcontent_box_xrl   r   rf   ru   rZ   r_   Úcollapsed_border_gridre   Úborder_top_widthrW   ri   ÚtupleÚcolumn_groupsÚskipped_rowsr1   r	   r]   rX   rL   Ú	get_cellsÚreverse)8rC   r¤   rw   rx   r)   r2   r3   r4   Úremove_start_decorationrX   Úrows_xr   Úsplit_cellsÚskipped_groupsÚgroup_skip_stackrÉ   Úcells_skip_stackrv   r   Úhorizontal_bordersÚinitial_position_yr>   r¸   r¾   r.   r©   r³   ry   rz   r5   Úcollapsing_throughÚremove_end_decorationÚcolumns_heightr¼   ÚfirstÚlastr�   r   r   r   r®   rœ   r�   r   rž   rŸ   r   r   r¥   r    r¡   rL   r   r¢   r£   r·   s8   ```` ```                             @@@@@@@@@@@@@@@@@@@r    Útable_layoutrÙ      s»  ÿÿÿù€ ÷H÷ Hð
 —‘Ò? E§N¡N°1Ñ$5×$?Ñ$?€JØ—‘Ò@ E§N¡N°2Ñ$6×$@Ñ$@€JØ�{‰{Ð,Ñ-°Ñ;€HØ(°Ð4ÒG¸Z¸ÐØ	×ÑÐ3¸ÐÔ?ñ Ø./Ð/ÐÑ+à-2¯[©[Ð9IÑ-JÑ*ÐÐ*ð ×'Ñ'€MØ02Ð2Ð�uÔ-Ø×%Ñ%Ó'Ð*:Ñ:€KØ‡{�{�;Ñ 5Ò(Ø×(Ñ(Ó*ˆ
ØÐ.Ñ.ˆØ"ò 	 ˆEØÐ*Ñ*ˆJØ×#Ñ# JÔ/Ø˜%Ñ‰Jð	 ð   &Ñ(‰
à×(Ñ(Ó*¨U¯[©[Ñ8ˆ
ØÐ.Ñ.ˆØ"ò 	0ˆEØÐ*Ñ*ˆJØ˜%ÑˆJØ×#Ñ# JÕ/ð	0ð ˜jÑ(ˆ
ñ Ø%*ˆÔ"Ø(-ˆÔ%ØˆÙØ2<×2BÑ2BÓ2DÑ/Ñ.ˆ^Ð-ÙØ4D×4JÑ4JÓ4LÑ1Ñ0�Ð/Ù#Ø"&‘Kà �ØŸ™¨¨Ð8ò 4�Ø¤ E§N¡NÓ 3Ñ3‘ñ4ð ˆLÙ¡:Ø$)×$?Ñ$?Ñ!ˆAÐ!Ù!Ü),ñ -9à)¨,Ñ7ô-9ó *9à;<ñ*=�Ô&÷m+÷ m+ö m+÷^	8Dö 8Dðv ×$Ñ$Ó&€JØÐØÐ&Ñ&ˆ
Ø#Ðà Ÿ>™>ö8ØØ�Š u§¢ò 	ò8€J÷eX÷ eXð eXòN-ñ 	Óñ I€FÐ ¨
°I¸yð Ð!ØÐ Ð Ð ØˆØÐØ"ÐØ�i Ð,=Ð?QÐQÐQà×$Ñ$ØÐ'ˆ&‰¨RØñ	àÐ'ˆ&‰¨Rñ	1ó2€Eô  ñ  IØ49×4GÑ4Gô Ió I€EÔà%¨TÐ1ÒD¸*°nÐØ	×ÑÐ3Ð5JÔKÙØ)ˆÔô ØŸ™¨Ò.ˆ�Š°AØ�U×(Ñ(Ó*Ñ*ó,€E„Lð
  Ð"4Ñ4€NØ‡~‚~àÐ*Ñ*ˆØ×$Ñ$ó &ˆØ—n‘nò 	?ˆFÜ ¸Õ?Ø�}‰}œsÐ#3Ó4Ò4Ø$4°V·]±]Ñ$C�Ô!Ø$6�Ô!Ø,¨V¯]©]Ñ;�”Ø .�•ð %&�Ô!Ø$%�Ô!Ø �”Ø !�”Ü ¸Õ>Ù/°°vÓ>ˆFÕð	?ð —‘˜qÑ!ˆØ�~‰~˜bÑ!ˆØ ×+Ñ+ˆÔØ-ˆÔØ—o‘o¨¯
©
Ñ2°U×5EÑ5EÑEˆŒØ%ˆŽð+&ð0 ‡{�{�;Ñ 5Ò(Ø×ÑÔØ× Ñ Ô"á" 5§;¡;¨~Ñ#>ÀÓH€KÙ™©;Ù˜G e W¨n¸kÔJØˆØˆ	ØÐØÐà�)˜YÐ(9Ð;MÐMÐMùòq8s   É5!Tc                 ót   — | xj                   |z  c_         | j                  D ]  }|j                  |¬«       Œ y)zPIncrease the top padding of a box.

    This also translates the children.

    rR   N)Úpadding_toprY   rr   )ÚboxÚextra_paddingr>   s      r    rn   rn   y  s3   € ð ‡O‚O�}Ñ$…OØ—‘ò *ˆØ�‰˜=ˆÕ)ñ*r¯   c                 ó¼  — | j                  «       }|j                  dk7  sJ ‚|j                  D ��cg c]  }|j                  D ]  }|‘Œ Œ }}}|j                  rB|j                  d   j                  r)|j                  d   }|j                  d   j                  }ng }t	        t        |«      t        d„ |D «       «      «      }dg|z  }t        |«      D ];  \  }	}t        |d|j                  «       |j                  dk7  sŒ-|j                  ||	<   Œ= |j                  d   dk(  r|j                  d   \  }
}nd}
d}	|D ]¬  }t        ||«       |j                  dk7  r€|j                  «       }||
|j                  d	z
  z  z  }g }t        |	|	|j                  z   «      D ]!  }||   €|j                  |«       Œ|||   z  }Œ# |r|t        |«      z  }|D ]  }|||<   Œ	 |	|j                  z  }	Œ® |
|d	z   z  }t        d
„ |D «       «      |z   }t        |«      D �	�cg c]	  \  }	}|€|	‘Œ }}	}|r9|j                  |k\  r*|j                  |z
  }|t        |«      z  }|D ]  }	|||	<   Œ	 n|D ]  }	d||	<   Œ	 |j                  t        |«      z
  |z
  }|dk  r|xj                  |z  c_        ||_        y|r||z  }|D �cg c]  }||z   ‘Œ	 }}||_        yc c}}w c c}}	w c c}w )z„Run the fixed table layout and return a list of column widths.

    https://www.w3.org/TR/CSS21/tables.html#fixed-table-layout

    r0   r   c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr   )r^   rJ   s     r    r!   z%fixed_table_layout.<locals>.<genexpr>•  s   è ø€ Ò+U¸T¨D¯L­LÑ+Uùr/   Nr   r   Úseparater   r   c              3   ó&   K  — | ]	  }|€Œ|–— Œ y ­wr   r   )r   Úws     r    r!   z%fixed_table_layout.<locals>.<genexpr>½  s   è ø€ ÒE °q±}œ1ÑEùs   ‚Š)Úget_wrapped_tabler   rÈ   rY   re   r_   rd   r[   r   rA   r	   rc   r^   Úrangerl   rŸ   )rÜ   r¤   rÁ   r¼   Úall_columnsÚfirst_rowgroupÚfirst_row_cellsÚnum_columnsrŸ   rª   rœ   r   rB   r   Úcolumns_without_widthÚjÚwidth_per_columnÚall_border_spacingÚmin_table_widthrâ   Úremaining_widthÚextra_widthÚextra_per_columns                          r    Úfixed_table_layoutrñ   „  sT  € ð ×!Ñ!Ó#€EØ�;‰;˜&Ò Ð Ð ð $)×#6Ñ#6÷-ØØ"×+Ñ+ò-àò 	ð-Øð-€Kñ -ð ‡~‚~˜%Ÿ.™.¨Ñ+×4Ò4ØŸ™¨Ñ*ˆØ(×1Ñ1°!Ñ4×=Ñ=‰àˆÜ”c˜+Ó&¬Ñ+UÀ_Ô+UÓ(UÓV€Kà�F˜[Ñ(€Mô ˜{Ó+ò ,‰	ˆˆ6Ü˜v w°·±Ô<Ø�<‰<˜6Ó!Ø%Ÿ|™|ˆM˜!Òð,ð
 ‡{�{Ð$Ñ%¨Ò3Ø#Ÿk™kÐ*:Ñ;ÑÐ™!àÐð 	
€AØò ˆÜ˜D %Ô(Ø�:‰:˜ÒØ×%Ñ%Ó'ˆEØÐ%¨¯©¸Ñ)9Ñ:Ñ:ˆEð %'Ð!Ü˜1˜a $§,¡,Ñ.Ó/ò .�Ø  Ñ#Ð+Ø)×0Ñ0°Õ3à˜]¨1Ñ-Ñ-‘Eð	.ñ
 %Ø#(¬3Ð/DÓ+EÑ#EÐ Ø.ò 8�AØ'7�M !Ò$ð8à	ˆT�\‰\Ñ‰ð%ð, *¨[¸1©_Ñ=ÐÜÑE mÔEÓEØ)ñ*€Oä+4°]Ó+C÷ +¡4 1 aØ ! 	ò ð +Ðñ +á §¡°Ò!?ØŸ+™+¨Ñ7ˆØ*¬SÐ1FÓ-GÑGÐØ&ò 	0ˆAØ/ˆM˜!Òñ	0ð 'ò 	!ˆAØ ˆM˜!Òð	!ð
 —+‘+¤ MÓ 2Ñ2Ð5GÑG€KØ�aÒà�Š�{Ñ"�ð (€EÕñ 
Ø&¨Ñ4ÐØ7DÖE°!˜Ð-Ó-ÐEˆÐEð (€EÕùóU-ùód+ùò( Fs   ±KÈKÊ7Kc           	      ó   — |j                  «       }t        | |d¬«      \  }}}}}}	}
}d}|j                  dk7  r||j                  z  }|j                  dk7  r||j                  z  }|j                  |j
                  z   }|j                  |j                  z   }|\  }}||z
  |z
  |z
  }|j                  dk(  r"||k  r||_        n+||k  r||_        n||_        n|j                  |k  r||_        |sg |_	        y|j                  |
z
  }|dd }|dd }|dd }|dd }||||f}t        t        |«      «      D ]A  }||   r,t        ||   dz  |z  ||   «      ||<   ||   ||<   ||   ||<   Œ4|	|   sŒ:||   ||<   ŒC |t        |«      k  rÍ|d   }|d   }|D ]  }t        |«      |dz  k  r|}Œ n |ddd…   D ]  }t        |«      |d	z  k\  r|}Œ n ||k(  r||_	        yt        t        |«      «      D �cg c]  }||   ||   z
  ‘Œ }}|t        |«      z
  t        |«      z  }t        t        |«      «      D �cg c]  }||   ||   |z  z   ‘Œ c}|_	        y||_	        |t        |«      z
  }t        | |||j                  |	||«       yc c}w c c}w )
z‚Run the auto table layout and return a list of column widths.

    https://www.w3.org/TR/CSS21/tables.html#auto-table-layout

    F)Úouterr   r0   Néd   r   g0¸D   ð?g¡�vÿÿÿï?)rã   r
   rb   Úmargin_rightÚpadding_leftÚpadding_rightÚborder_left_widthÚborder_right_widthr   rŸ   rä   r_   re   rd   Údistribute_excess_width)rC   rÜ   r)   r¤   Útable_min_content_widthÚtable_max_content_widthÚcolumn_min_content_widthsÚcolumn_max_content_widthsÚcolumn_intrinsic_percentagesÚconstrainednessÚtotal_horizontal_border_spacingÚgridÚmarginsÚpaddingsÚbordersÚcb_widthr   Úavailable_widthÚassignable_widthÚmin_content_guessÚmin_content_percentage_guessÚmin_content_specified_guessÚmax_content_guessÚguessesrª   Úlower_guessÚupper_guessÚguessÚadded_widthsÚavailable_ratioÚexcess_widths                                  r    Úauto_table_layoutr  Ú  sW  € ð ×!Ñ!Ó#€Eô /QØ	�#˜Uô/$ñ,ÐÐ5ØÐ 9Ø! ?Ø$ dð €GØ
‡�˜&Ò Ø�3—?‘?Ñ"ˆØ
×Ñ˜6Ò!Ø�3×#Ñ#Ñ#ˆØ×!Ñ! E×$7Ñ$7Ñ7€HØ×%Ñ%¨×(@Ñ(@Ñ@€Gà"�K€HˆaØ Ñ(¨8Ñ3°gÑ=€Oà‡{�{�fÒØÐ5Ò5Ø1ˆE�KØÐ6Ò6Ø)ˆE�Kà1ˆE�Kà�;‰;Ð0Ò0Ø1ˆEŒKáØ ˆÔØà—{‘{Ð%DÑDÐØ1±!Ð4ÐØ#<¹QÐ#?Ð Ø";¹AÐ">ÐØ1±!Ð4ÐàÐ7Ø#Ð%6ð8€Gô ”3�t“9Óò 
JˆØ'¨Ò*Ü.1Ø,¨QÑ/°#Ñ5Ð8HÑHØ)¨!Ñ,ó/.Ð(¨Ñ+ð .JÈ!Ñ-LÐ'¨Ñ*Ø#?ÀÑ#BÐ˜aÒ Ø˜QÓð .GÀqÑ-IÐ'¨Ò*ð
Jð œ#Ð/Ó0Ò0ð ˜a‘jˆØ˜b‘kˆð ò 	ˆEÜ�5‹zÐ-°Ñ:Ò:Ø#‘áð		ð
 ™T˜r˜T‘]ò 	ˆEÜ�5‹zÐ-°Ñ:Ò:Ø#‘áð		ð
 ˜+Ò%Ø"-ˆEÕô :?¼sÀ4»yÓ9IöKØ45�˜A‘ ¨Q¡Ó/ðKˆLð Kà/´#°kÓ2BÑBÄcÈ,ÓFWÑWˆOô œs 4›yÓ)ö#+àð ˜A‘ ¨a¡°?Ñ!BÓBò#+ˆEÕð 0ˆÔØ'¬#Ð.?Ó*@Ñ@ˆÜØ�T˜<¨×)<Ñ)<¸oØ(Ð*Cõ	EùòKùò#+s   Ç3JÈ7Jc                 óÚ   — |j                  «       }t        ||«       |j                  d   dk(  r|j                  dk7  rt	        |«       nt        | ||«       |j                  «       |_        y)z;Find the width of each column and derive the wrapper width.rÙ   Úfixedr0   N)rã   r	   rA   r   rñ   r  rc   )rC   Úwrapperr)   r¤   s       r    Útable_wrapper_widthr  9  s\   € à×%Ñ%Ó'€EÜ˜Ð/Ô0à‡{�{�>Ñ" gÒ-°%·+±+ÀÒ2GÜ˜7Õ#ä˜' 7Ð,<Ô=à×&Ñ&Ó(€G…Mr¯   c                 óÊ   — t         j                  t         j                  f}t        | |¬«      }|�|| j                  z
  S | j
                  | j                  z   | j                  z   S )z�Return the y position of a cell baseline from the top of its border box.

    See https://www.w3.org/TR/CSS21/tables.html#height-layout

    )Úbaseline_types)r   ÚLineBoxÚTableRowBoxÚfind_in_flow_baselinerL   rÆ   rÛ   r1   )rB   r  Úresults      r    rm   rm   F  s[   € ô —m‘m¤U×%6Ñ%6Ð7€NÜ" 4¸ÔG€FØÐØ˜Ÿ™Ñ'Ð'ð ×$Ñ$ t×'7Ñ'7Ñ7¸$¿+¹+ÑEÐEr¯   Fc                 ó   — t        | |«      r| j                  | j                  z   S t        | t        j                  «      ry|rt        | j                  «      n| j                  }|D ]&  }|j                  «       sŒt        |||«      }|€Œ$|c S  y)u‚   Return the absolute y position for the first (or last) in-flow baseline.

    If thereâ€™s no in-flow baseline, return None.

    N)	Ú
isinstancerL   rH   r   ÚTableCaptionBoxÚreversedrY   r<   r  )rÜ   rØ   r  rY   r>   r  s         r    r  r  U  s~   € ô �#�~Ô&Ø�~‰~ §¡Ñ,Ð,Ü	�Cœ×.Ñ.Ô	/ØÙ)-Œx˜Ÿ™Ô%°3·<±<€HØò ˆØ×"Ñ"Õ$Ü*¨5°$¸ÓGˆFØÑ!Ø’ñ	r¯   c                 ó  ‡‡— t        ||   |j                  ¬«      D ��	cg c]  \  }}	||   s‰|   dk(  r
‰|   dkD  r|‘Œ }
}}	|
r4t        ˆfd„|
D «       «      }||z  }|
D ]  }||xx   ‰|   |z  z  cc<   Œ yt        ||   |j                  ¬«      D ��	cg c]  \  }}	||   s
‰|   dk(  r|‘Œ }
}}	|
r!|
D ]  }||xx   |t        |
«      z  z  cc<   Œ yt        ||   |j                  ¬«      D ��	cg c]  \  }}	||   r‰|   dk(  r
‰|   dkD  r|‘Œ }
}}	|
r4t        ˆfd„|
D «       «      }||z  }|
D ]  }||xx   ‰|   |z  z  cc<   Œ yt        ||   |j                  ¬«      D ��	cg c]  \  }}	‰|   dkD  r
‰|   dkD  r|‘Œ }
}}	|
r4t        ˆfd„|
D «       «      }||z  }|
D ]  }||xx   ‰|   |z  z  cc<   Œ yt        ||   |j                  ¬«      D ��cg c]	  \  }}|r|‘Œ }
}}|
r!|
D ]  }||xx   |t        |
«      z  z  cc<   Œ yt        ||   |j                  ¬«      D ��	cg c]  \  }}	|‘Œ	 }
}}	|
D ]  }||xx   |t        |
«      z  z  cc<   Œ yc c}	}w c c}	}w c c}	}w c c}	}w c c}}w c c}	}w )zwDistribute available width to columns.

    See https://www.w3.org/TR/css-tables-3/#distributing-width-to-columns

    r*   r   c              3   ó(   •K  — | ]	  }‰|   –— Œ y ­wr   r   ©r   rª   rþ   s     €r    r!   z*distribute_excess_width.<locals>.<genexpr>x  ó   øè ø€ Ò$SÀaÐ%>¸qÕ%AÑ$Sùó   ƒNc              3   ó(   •K  — | ]	  }‰|   –— Œ y ­wr   r   r%  s     €r    r!   z*distribute_excess_width.<locals>.<genexpr>Ž  r&  r'  c              3   ó(   •K  — | ]	  }‰|   –— Œ y ­wr   r   )r   rª   rÿ   s     €r    r!   z*distribute_excess_width.<locals>.<genexpr>™  s   øè ø€ ò (>Ø01Ð(¨Õ+ñ(>ùr'  )r[   r+   rd   r_   )rC   r  r  rŸ   r   rÿ   rþ   Úcolumn_slicerª   r   ÚcolumnsÚsum_max_content_widthsÚratioÚsum_intrinsic_percentagesr¼   s        ``        r    rú   rú   i  sU  ù€ ô    \Ñ 2¸,×:LÑ:LÔM÷*Ùˆa�Ø˜qÒ!Ø$ QÑ'¨1Ò,Ø! !Ñ$ qÒ(ò 	
ð*€Gñ *ñ
 Ü!$Ó$SÈ7Ô$SÓ!SÐØÐ5Ñ5ˆØò 	EˆAØ˜!ÓÐ 9¸!Ñ <¸uÑ DÑDÔð	Eàô    \Ñ 2¸,×:LÑ:LÔM÷LÙˆa�Ø˜qÒ!Ð&BÀ1Ñ&EÈÒ&Jò 	
ðL€Gñ Lñ Øò 	<ˆAØ˜!Ó ¬s°7«|Ñ ;Ñ;Ôð	<àô    \Ñ 2¸,×:LÑ:LÔM÷*Ùˆa�Ø˜1ÒØ$ QÑ'¨1Ò,Ø! !Ñ$ qÒ(ò 	
ð*€Gñ *ñ
 Ü!$Ó$SÈ7Ô$SÓ!SÐØÐ5Ñ5ˆØò 	EˆAØ˜!ÓÐ 9¸!Ñ <¸uÑ DÑDÔð	Eàô    \Ñ 2¸,×:LÑ:LÔM÷UÙˆa�Ø'¨Ñ*¨QÒ.Ð3LÈQÑ3OÐRSÒ3Sò 	
ðU€Gñ Uñ Ü$'ó (>Ø5<ô(>ó %>Ð!àÐ8Ñ8ˆØò 	HˆAØ˜!ÓÐ <¸QÑ ?À%Ñ GÑGÔð	Hàô % T¨,Ñ%7¸|×?QÑ?QÔR÷Ùˆa�Ùò 	
ð€Gñ ñ Øò 	<ˆAØ˜!Ó ¬s°7«|Ñ ;Ñ;Ôð	<àô ' t¨LÑ'9À×ASÑASÔT×U‘T�Q˜ŠqÐU€GÑUØò 8ˆØ�aÓ˜L¬3¨w«<Ñ7Ñ7Ôñ8ùós*ùóLùó*ùóUùóùó Vs#    !IÂI#Ã3!I)Å*I/ÇI5È-I;Útransparentc           
      óü  ‡ ‡ ‡!‡"‡#‡$‡%— |r|sg g fS t        g d¢«      }t        |«      D ��ci c]  \  }}||“Œ
 c}}Š$dddœŠ#dd‰$d   fddt        ff}t        |«      D �cg c]  }|g|dz   z  ‘Œ c}Š%t        |dz   «      D �cg c]  }|g|z  ‘Œ
 c}Š ˆ#ˆ$fd„Š"ˆ ˆ"ˆ ˆ%fd	„}dd‰$d
   fd
dt        ff}	d}
‰ j                  D �]  }|j                  D ]ñ  }|j                  D ]Û  }|j
                  |j                  |j                  }}}‰ j                  d   dk(  r"t        |dz   ||z   «      }t        |||z   «      }n,t        d|z
  d|z
  |z
  d«      }t        d|z
  d|z
  |z
  d«      }|D ]  }t        |
|
|z   «      D ]
  }|	‰%|   |<   Œ Œ  |D ]!  }t        |
dz   |
|z   «      D ]
  }|	‰ |   |<   Œ Œ#  ||||
||«       ŒÝ |
dz  }
Œó �Œ d}
‰ j                  D ]$  }|j                  D ]  } ||d|
|d«       |
dz  }
Œ Œ& d}
‰ j                  D ](  }t        |j                  «      } ||d|
||«       |
|z  }
Œ* ‰ j                  D ])  }|j                  D ]  } |||j
                  dd|«       Œ Œ+ ‰ j                  D ]"  } |||j
                  d|j                  |«       Œ$  |‰ dd||«       d„ Š!ˆ!fd„}ˆ%fd„}ˆ fd„}d}
‰ j                  D �]#  } ||«       |j                  D �]  } ||«       |j                  D ]é  }|j
                  |
}}|j                  |j                  }}‰ j                  d   dk(  r; |||||z   «      } ||||z   ||z   «      } |||||z   «      } |||z   |||z   «      }nL || |z
  || xs d«      } || |z
  ||z   | xs d«      } |d|z
  |z
  |||z   «      } |d|z
  |||z   «      } ‰!|d|«        ‰!|d|«        ‰!|d|«        ‰!|d|«       Œë |
dz  }
�Œ �Œ& ‰ j                  D ]#  } ||«       |j                  D ]
  } ||«       Œ Œ%  ‰!‰ d |dd|«      «        ‰!‰ d |d||«      «        ‰!‰ d |ddd«      «        ‰!‰ d ||dd«      «       ‰%‰ fS c c}}w c c}w c c}w )a  Resolve border conflicts for a table in the collapsing border model.

    Take a :class:`TableBox`; set appropriate border widths on the table,
    column group, column, row group, row, and cell boxes; and return
    a data structure for the resolved collapsed border grid.

    )
ÚhiddenÚdoubleÚsolidÚdashedÚdottedÚridgeÚoutsetÚgrooveÚinsetÚnoner6  r8  )r9  r7  r   r:  r   c                 óÎ   •— ddl m} |d|› d�   }|d|› d�   } ||d|› d�«      }|dk(  rdnd	|‰|   f}	‰j                  ||«      }| |   |   \  }
}|
|	k  r|	|||ff| |   |<   y y )
Nr   )Ú	get_colorÚborder_Ú_styleÚ_widthÚ_colorr1  r   r   )Ú
draw.colorr<  Úget)Úborder_gridÚ	box_styleÚsider]   Úgrid_yr<  rA   r   ÚcolorÚscoreÚprevious_scorer   Ú	style_mapÚstyle_scoress               €€r    Úset_one_borderz.collapse_table_borders.<locals>.set_one_borderË  s©   ø€ Ý*à˜G D 6¨Ð0Ñ1ˆØ˜G D 6¨Ð0Ñ1ˆÙ˜) w¨t¨f°FÐ%;Ó<ˆð  Ò(‘!¨a°%¸ÀeÑ9LÐMˆà—‘˜e UÓ+ˆØ'¨Ñ/°Ñ7Ñˆ˜à˜EÒ!Ø+0°5¸%ÀÐ2GÐ*HˆK˜Ñ Ò'ð "r¯   c           	      óÖ  •— | j                   }‰
j                   d   dk(  r_t        |||z   «      D ]  } ‰	‰|d||«        ‰	‰|d||z   |«       Œ t        |||z   «      D ]  } ‰	‰|d||«        ‰	‰|d|||z   «       Œ y t        |||z   «      D ]#  } ‰	‰|dd|z
  |z
  |«        ‰	‰|dd|z
  |«       Œ% t        d|z
  d|z
  |z
  d«      D ]  } ‰	‰|d||«        ‰	‰|d|||z   «       Œ y )Nr   r   ÚleftÚrightrE   rG   r   )rA   rä   )rÜ   ÚxÚyrâ   ÚhrA   ÚyyÚxxrÒ   rL  r¤   Úvertical_borderss           €€€€r    Úset_bordersz+collapse_table_borders.<locals>.set_bordersÛ  s<  ø€ Ø—	‘	ˆð �;‰;�{Ñ# uÒ,Ü˜A˜q 1™u“oò L�ÙÐ/°¸ÀÀ2ÔFÙÐ/°¸ÀÀQÁÈÕKðLô ˜A˜q 1™u“oò O�ÙÐ1°5¸%ÀÀQÔGÙÐ1°5¸(ÀBÈÈAÉÕNñOô ˜A˜q 1™u“oò M�ÙÐ/°¸ÀÀQÁÈÁ
ÈBÔOÙÐ/°¸ÀÀaÁÈÕLðMô ˜B ™F B¨¡F¨Q¡J°Ó3ò O�ÙÐ1°5¸%ÀÀQÔGÙÐ1°5¸(ÀBÈÈAÉÕNñOr¯   r1  r   r   éþÿÿÿr   c                 ó0   — d|› d�}t        | ||dz  «       y )Nr=  r?  r   )Úsetattr)rÜ   rE  Útwice_widthÚprops       r    Úset_border_used_widthz5collapse_table_borders.<locals>.set_border_used_width'  s    € Ø˜˜˜fÐ%ˆÜ��T˜;¨™?Õ+r¯   c                 óV   •—  ‰| dd«        ‰| dd«        ‰| dd«        ‰| dd«       y )NrE   r   rO  rG   rN  r   )rÜ   r\  s    €r    Úremove_bordersz.collapse_table_borders.<locals>.remove_borders+  s3   ø€ Ù˜c 5¨!Ô,Ù˜c 7¨AÔ.Ù˜c 8¨QÔ/Ù˜c 6¨1Õ-r¯   c                 ó4   •‡ — t        ˆ fd„‰|| D «       «      S )Nc              3   ó4   •K  — | ]  }|‰   d    d    –— Œ y­w)r   Nr   )r   Úgrid_rowrP  s     €r    r!   zEcollapse_table_borders.<locals>.max_vertical_width.<locals>.<genexpr>2  s   øè ø€ ÒM¨�8˜A‘;˜q‘> !Õ$ÑMùs   ƒ©re   )rP  Úy1Úy2rU  s   `  €r    Úmax_vertical_widthz2collapse_table_borders.<locals>.max_vertical_width1  s   ù€ ÜÓMÐ5EÀbÈÐ5LÔMÓMÐMr¯   c                 ó4   •— t        d„ ‰|   | | D «       «      S )Nc              3   ó.   K  — | ]  \  }\  }}}|–— Œ y ­wr   r   r   s      r    r!   zGcollapse_table_borders.<locals>.max_horizontal_width.<locals>.<genexpr>5  s   è ø€ ÒNÑ-˜Q¡  E¨1”5ÑNùr"   rb  )Úx1rQ  Úx2rÒ   s      €r    Úmax_horizontal_widthz4collapse_table_borders.<locals>.max_horizontal_width4  s!   ø€ ÜÑNÐ1CÀAÑ1FÀrÈ"Ð1MÔNÓNÐNr¯   NrE   rG   rN  rO  )r"  r[   ÚTRANSPARENTrä   rY   r]   r^   ro   rA   r_   rÈ   Úspan)&r¤   Ú
grid_widthÚgrid_heightÚstylesrH  rA   Úweak_null_borderr   rV  Ústrong_null_borderrF  r»   r}   rB   r]   r^   ro   Úvertical_x_rangeÚhorizontal_x_rangerT  rS  rÁ   r¼   r^  re  rj  rP  rQ  rE   rG   rN  rO  rÒ   r\  rL  rJ  rK  rU  s&   `                               @@@@@@r    Úcollapse_table_bordersrt  ²  s¼  þ€ ñ ™;à�2ˆvˆäò #ó $€Fô 6?¸vÓ5F×G¡\ U¨E�E˜5‘LÓG€LØ!¨XÑ6€IØ˜A˜|¨FÑ3Ð4°v¸qÄ+Ð6NÐOÐô 8=¸[Ó7IöKØ23Ð	Ð˜j¨1™nÓ-òKÐô 27°{ÀQ±Ó1GöIØ,-Ð	Ð˜ZÓ'òIÐõI÷ Oð. ˜a ¨hÑ!7Ð8¸8ÀQÌÐ:TÐUÐØ€FØ—^‘^ó ˆ	Ø×%Ñ%ò 	ˆCØŸ™ò D�à+/¯;©;¸¿¹ÀdÇlÁl ˜�Ø—;‘;˜{Ñ+¨uÒ4Ü',¨V°a©Z¸À'Ñ9IÓ'JÐ$Ü).¨v°vÀÑ7GÓ)HÑ&ä',¨R°&©[¸"¸v¹+ÈÑ:OÐQSÓ'TÐ$Ü).¨r°F©{¸BÀ¹KÈ'Ñ<QÐSUÓ)VÐ&Ø*ò F�BÜ# F¨F°WÑ,<Ó=ò F˜Ø3EÐ(¨Ñ,¨RÒ0ñFðFð -ò H�BÜ# F¨Q¡J°¸Ñ0@ÓAò H˜Ø5GÐ*¨2Ñ.¨rÒ2ñHðHñ ˜D &¨&°'¸7ÕCð!Dð" �a‰K‰Fò%	ðð, €FØ—^‘^ò ˆ	Ø×%Ñ%ò 	ˆCÙ˜˜Q ¨
°AÔ6Ø�a‰K‰Fñ	ðð €FØ—^‘^ò ˆ	Ü�i×(Ñ(Ó)ˆÙ�I˜q &¨*°gÔ>Ø�'Ñ‰ðð ×+Ñ+ò BˆØ"×+Ñ+ò 	BˆFÙ˜ §¡¨q°!°[ÕAñ	BðBð
 ×+Ñ+ò RˆÙØ˜,×-Ñ-¨q°,×2CÑ2CÀ[õ	RðRñ
 ��q˜!˜Z¨Ô5ò
,ô.ôNôOð €FØ—^‘^ó ˆ	Ù�yÔ!Ø×%Ñ%ó 	ˆCÙ˜3ÔØŸ™ò <�Ø—{‘{ F�1�Ø#'§<¡<°·±˜�Ø—;‘;˜{Ñ+¨uÒ4Ù.¨q°!°Q¸±[ÓA�CÙ1°!°Q¸±[À!ÀgÁ+ÓN�FÙ-¨a°°A¸±KÓ@�DÙ.¨q°7©{¸A¸qÀ7¹{ÓK‘Eá.°¨x¸!©|¸QÀÀÂ
ÀdÓK�CÙ1°7°(¸Q±,ÀÀGÁÈaÈRÊZÐSWÓX�FÙ-¨b°7©l¸QÑ.>ÀÀ1ÀwÁ;ÓO�DÙ.¨r°A©v°q¸!¸g¹+ÓF�EÙ% d¨E°3Ô7Ù% d¨H°fÔ=Ù% d¨F°DÔ9Ù% d¨G°UÕ;ð!<ð" �a‰KŠFò'	ðð. ×+Ñ+ò #ˆÙ�|Ô$Ø"×+Ñ+ò 	#ˆFÙ˜6Õ"ñ	#ð#ñ
 ˜% Ñ(<¸QÀÀ:Ó(NÔOÙØˆxÑ-¨a°¸jÓIôKñ ˜% Ñ);¸A¸qÀ!Ó)DÔEÙ˜% Ñ*<¸ZÈÈAÓ*NÔOàÐ/Ð/Ð/ùó{ Hùò
KùòIs   «Q.ÁQ4ÂQ9)Ú__doc__Úmathr   Útinycss2.color5Útinycss2Úformatting_structurer   Úloggerr   Úpercentr   r	   Ú	preferredr
   rÙ   rn   rñ   r  r  rm   r  r  Úslicerú   Úcolor5Úparse_colorrk  rt  r   r¯   r    ú<module>r€     s‚   ðÙ 1å ã å (Ý ß @Ý 9òi	NòX*òS(òl\Eò~
)òFð %*¸5¿=¹=Ð:Jó ñ, */¨q°$«óC8ðL �o‰o×)Ñ)¨-Ó8€ól0r¯   