ó
    ˆ*£hN  ã                  ó‚  • S r SSKJr  SSKJrJrJrJr  SSKJ	r	  SSK
Jr  SSKJr  SSKJr  SSKJrJrJrJr  SS	KJr  SS
KJrJrJrJrJrJrJrJr  SSK J!r!J"r"  \(       a  SSK J#r#   " S S\5      r$ " S S\5      r% " S S\5      r& " S S\5      r' " S S\5      r( " S S\5      r) " S S\5      r* " S S\+5      r,g)z5Custom element classes for table-related XML elementsé    )Úannotations)ÚTYPE_CHECKINGÚCallableÚIteratorÚcast)ÚMSO_VERTICAL_ANCHOR)Ú	parse_xml)ÚCT_GradientFillProperties©Únsdecls)ÚST_CoordinateÚST_Coordinate32Ú
XsdBooleanÚXsdInt)ÚCT_TextBody)ÚBaseOxmlElementÚChoiceÚOneAndOnlyOneÚOptionalAttributeÚRequiredAttributeÚ
ZeroOrMoreÚ	ZeroOrOneÚZeroOrOneChoice)ÚEmuÚlazyproperty)ÚLengthc                  ód  • \ rS rSr% SrS\S'   S\S'   S\S'   S	r\" S
\SS S9rS\S'   \	" S5      r
S\S'   \" S\SS S9rCS)S jr\S*S j5       r\R                   S+S j5       r\S*S j5       r\R                   S+S j5       r\S*S j5       r\R                   S+S j5       r\S*S j5       r\R                   S+S j5       rS,S jr\S*S j5       r\R                   S+S  j5       r\S*S! j5       r\R                   S+S" j5       r\ S-           S.S# jj5       rS/S$ jrS0S% jrS1S& jr\S' 5       rS(rg)2ÚCT_Tableé   z`a:tbl` custom element classz Callable[[], CT_TableProperties]Úget_or_add_tblPrzlist[CT_TableRow]Útr_lstzCallable[..., CT_TableRow]Ú_add_tr)úa:tblPrú	a:tblGridúa:trr#   é   N©Ú
successorszCT_TableProperties | NoneÚtblPrr$   ÚCT_TableGridÚtblGridr%   é   c                ó    • U R                  US9$ )zUReturn a newly created `a:tr` child element having its `h` attribute set to `height`.)Úh)r"   )ÚselfÚheights     ÚL/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pptx/oxml/table.pyÚadd_trÚCT_Table.add_tr,   s   € à�|‰|˜fˆ|Ð%Ð%ó    c                ó$   • U R                  S5      $ ©NÚbandCol©Ú_get_boolean_property©r/   s    r1   r7   ÚCT_Table.bandCol0   ó   € à×)Ñ)¨)Ó4Ð4r4   c                ó(   • U R                  SU5        g r6   ©Ú_set_boolean_property©r/   Úvalues     r1   r7   r;   4   ó   € à×"Ñ" 9¨eÕ4r4   c                ó$   • U R                  S5      $ ©NÚbandRowr8   r:   s    r1   rE   ÚCT_Table.bandRow8   r<   r4   c                ó(   • U R                  SU5        g rD   r>   r@   s     r1   rE   rF   <   rB   r4   c                ó$   • U R                  S5      $ ©NÚfirstColr8   r:   s    r1   rJ   ÚCT_Table.firstCol@   ó   € à×)Ñ)¨*Ó5Ð5r4   c                ó(   • U R                  SU5        g rI   r>   r@   s     r1   rJ   rK   D   ó   € à×"Ñ" :¨uÕ5r4   c                ó$   • U R                  S5      $ ©NÚfirstRowr8   r:   s    r1   rQ   ÚCT_Table.firstRowH   rL   r4   c                ó(   • U R                  SU5        g rP   r>   r@   s     r1   rQ   rR   L   rN   r4   c                ó(   • S U R                    5       $ )zgGenerate each `a:tc` element in this tbl.

`a:tc` elements are generated left-to-right, top-to-bottom.
c              3  óJ   #   • U  H  oR                     H  o"v •  M     M     g 7f©N)Útc_lst)Ú.0ÚtrÚtcs      r1   Ú	<genexpr>Ú$CT_Table.iter_tcs.<locals>.<genexpr>U   s   é € Ð=š[�r·9µ9¨R”±9‘š[ùs   ‚!#)r!   r:   s    r1   Úiter_tcsÚCT_Table.iter_tcsP   s   € ñ
 >˜TŸ[š[Ó=Ð=r4   c                ó$   • U R                  S5      $ ©NÚlastColr8   r:   s    r1   ra   ÚCT_Table.lastColW   r<   r4   c                ó(   • U R                  SU5        g r`   r>   r@   s     r1   ra   rb   [   rB   r4   c                ó$   • U R                  S5      $ ©NÚlastRowr8   r:   s    r1   rf   ÚCT_Table.lastRow_   r<   r4   c                ó(   • U R                  SU5        g re   r>   r@   s     r1   rf   rg   c   rB   r4   c                óÀ  • Uc  SnU R                  5       U-  n[        [        [        U5      5      nXA-  nX2-  n	[	        U5       H7  n
X¢S-
  :X  a
  X2S-
  U	-  -
  n	UR
                  R                  [        U	5      S9  M9     [	        U5       HO  nX±S-
  :X  a
  XAS-
  U-  -
  nUR                  [        U5      S9n[	        U5       H  n
UR                  5         M     MQ     U$ )z"Return a new `p:tbl` element tree.z&{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}r&   )Úwidth)r0   )
Ú	_tbl_tmplr   r   r	   Úranger+   Úadd_gridColr   r2   Úadd_tc)ÚclsÚrowsÚcolsrj   r0   ÚtableStyleIdÚxmlÚtblÚ	rowheightÚcolwidthÚcolÚrowrY   s                r1   Únew_tblÚCT_Table.new_tblg   sÜ   € ð ÑØCˆLà�m‰m‹o Ñ.ˆÜ”8œY s›^Ó,ˆð ‘Nˆ	Ø‘=ˆä˜–;ˆCà˜Q‘h‹Ø ¨A¡X°Ñ$9Ñ:�Ø�K‰K×#Ñ#¬#¨h«-Ð#Ó8ñ	 ô ˜–;ˆCà˜Q‘h‹Ø"¨a¡x°9Ñ&<Ñ=�	Ø—‘¤3 y£>�Ð2ˆBÜ˜T–{�Ø—	‘	–ó #ñ ð ˆ
r4   c                ó:   • U R                   U   R                  U   $ )z.Return `a:tc` element at `row_idx`, `col_idx`.)r!   rW   )r/   Úrow_idxÚcol_idxs      r1   rZ   ÚCT_Table.tc‡   s   € à�{‰{˜7Ñ#×*Ñ*¨7Ñ3Ð3r4   c                óJ   • U R                   nUc  g[        X!5      nSSSS.U   $ )z°Generalized getter for the boolean properties on the `a:tblPr` child element.

Defaults to False if `propname` attribute is missing or `a:tblPr` element itself is not
present.
FT)TFN)r)   Úgetattr)r/   Úpropnamer)   Úpropvals       r1   r9   ÚCT_Table._get_boolean_property‹   s1   € ð —
‘
ˆØ‰=ØÜ˜%Ó*ˆØ 5°Ñ6°wÑ?Ð?r4   c                ód   • US;  a  [        SU-  5      eU R                  5       n[        X1U5        g)ag  Generalized setter for boolean properties on the `a:tblPr` child element.

Sets `propname` attribute appropriately based on `value`. If `value` is True, the
attribute is set to "1"; a tblPr child element is added if necessary. If `value` is False,
the `propname` attribute is removed if present, allowing its default value of False to be
its effective value.
)TFz3assigned value must be either True or False, got %sN)Ú
ValueErrorr    Úsetattr)r/   r�   rA   r)   s       r1   r?   ÚCT_Table._set_boolean_property—   s6   € ð ˜Ó%ÜÐRÐUZÑZÓ[Ð[Ø×%Ñ%Ó'ˆÜ� Õ'r4   c                ó*   • S[        S5      < SS< S3$ )Nz<a:tbl Úaz;>
  <a:tblPr firstRow="1" bandRow="1">
    <a:tableStyleId>z%sz6</a:tableStyleId>
  </a:tblPr>
  <a:tblGrid/>
</a:tbl>r   ©ro   s    r1   rk   ÚCT_Table._tbl_tmpl¤   s   � ô " #ž,«ð.ð	
r4   © )r0   r   ÚreturnÚCT_TableRow©r�   Úbool)rA   r�   )r�   zIterator[CT_TableCell]rV   )rp   Úintrq   r‘   rj   r‘   r0   r‘   rr   z
str | Noner�   r   )r|   r‘   r}   r‘   r�   ÚCT_TableCell)r�   Ústrr�   r�   )r�   r“   rA   r�   r�   ÚNone)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú__annotations__Ú_tag_seqr   r)   r   r+   r   rY   r2   Úpropertyr7   ÚsetterrE   rJ   rQ   r]   ra   rf   Úclassmethodry   rZ   r9   r?   rk   Ú__static_attributes__rŒ   r4   r1   r   r      sÜ  ‡ Ù&à6Ó6ØÓØ'Ó'à/€HÙ'0Ø˜h q r˜lñ(€EÐ$ó ñ *¨+Ó6€Gˆ\Ó6Ù	�F x°° |Ñ	4€BØô&ð ó5ó ð5ð ‡^�^ó5ó ð5ð ó5ó ð5ð ‡^�^ó5ó ð5ð ó6ó ð6ð ‡_�_ó6ó ð6ð ó6ó ð6ð ‡_�_ó6ó ð6ô>ð ó5ó ð5ð ‡^�^ó5ó ð5ð ó5ó ð5ð ‡^�^ó5ó ð5ð àW[ðØðØ!ðØ*-ðØ7:ðØJTðà	ôó ðô>4ô
@ô(ð ñ
ó ó
r4   r   c                  ó¸  • \ rS rSr% SrS\S'   S\S'   Sr\" S\S	S
 S9rS\S'   \" S\SS
 S9r	S\S'   C\
" S\S	S9rS\S'   \
" S\S	S9rS\S'   \
" S\SS9rS\S'   \
" S\SS9rS\S'   \S0S j5       r\R&                  S1S j5       rS2S jr\S3S j5       r\S4S j5       r\S4S j5       r\S5S  j5       r\R&                  S6S! j5       r\S5S" j5       r\R&                  S6S# j5       r\S5S$ j5       r\R&                  S6S% j5       r\S5S& j5       r\R&                  S6S' j5       r\S7S( j5       r\S3S) j5       r\S8S* j5       r\S9S+ j5       r S:S, jr!S;S- jr"S<S. jr#S/r$g
)=r’   é°   z`a:tc` custom element classz$Callable[[], CT_TableCellProperties]Úget_or_add_tcPrzCallable[[], CT_TextBody]Úget_or_add_txBody)úa:txBodyúa:tcPrúa:extLstr¤   r&   Nr'   zCT_TextBody | NoneÚtxBodyr¥   é   zCT_TableCellProperties | NoneÚtcPrÚgridSpan©Údefaultr‘   ÚrowSpanÚhMergeFr�   ÚvMergec                óJ   • U R                   c  gU R                   R                  $ )zSString held in `anchor` attribute of `a:tcPr` child element of this `a:tc` element.N)r©   Úanchorr:   s    r1   r±   ÚCT_TableCell.anchorÌ   s!   € ð �9‰9ÑØØ�y‰y×ÑÐr4   c                óR   • Uc  U R                   c  gU R                  5       nXl        g)z8Set value of anchor attribute on `a:tcPr` child element.N)r©   r¢   r±   )r/   Úanchor_enum_idxr©   s      r1   r±   r²   Ó   s)   € ð Ñ" t§y¡yÑ'8ØØ×#Ñ#Ó%ˆØ%�r4   c                ó2  • UR                  5       nU R                  5       nUR                  (       a  gUR                  (       a  UR                  5         UR                   H  nUR	                  U5        M     UR                  5         UR                  5         g)a+  Append `a:p` elements taken from `spanned_tc`.

Any non-empty paragraph elements in `spanned_tc` are removed and appended to the
text-frame of this cell. If `spanned_tc` is left with no content after this process, a
single empty `a:p` element is added to ensure the cell is compliant with the spec.
N)r£   Úis_emptyÚclear_contentÚp_lstÚappendÚunclear_content)r/   Ú
spanned_tcÚsource_txBodyÚtarget_txBodyÚps        r1   Úappend_ps_fromÚCT_TableCell.append_ps_fromÛ   s}   € ð #×4Ñ4Ó6ˆØ×.Ñ.Ó0ˆð ×!×!Øð ×!×!Ø×'Ñ'Ô)à×$Ô$ˆAØ× Ñ  Ö#ñ %ð 	×%Ñ%Ô'Ø×%Ñ%Õ'r4   c                ó\   • [        [        U R                  5       5      R                  U 5      $ )z*Offset of this cell's column in its table.)r   rŽ   Ú	getparentÚindexr:   s    r1   r}   ÚCT_TableCell.col_idxô   s#   € ô ”K §¡Ó!1Ó2×8Ñ8¸Ó>Ð>r4   c                ó”   • U R                   S:”  a  U R                  (       d  gU R                  S:„  =(       a    U R                  (       + $ )z.True if cell is top-left in merged cell range.r&   T)rª   r¯   r­   r®   r:   s    r1   Úis_merge_originÚCT_TableCell.is_merge_originú   s3   € ð �=‰=˜1Ó T§[§[ØØ�|‰|˜aÑ×3¨¯©¤OÐ3r4   c                ó@   • U R                   =(       d    U R                  $ )z?True if cell is in merged cell range but not merge origin cell.)r®   r¯   r:   s    r1   Ú
is_spannedÚCT_TableCell.is_spanned  s   € ð �{‰{×)˜dŸk™kÐ)r4   c                ó8   • U R                  S[        S5      5      $ )a¢  Top margin for this cell.

This value is stored in the `marT` attribute of the `a:tcPr` child element of this `a:tc`.

Read/write. If the attribute is not present, the default value `45720` (0.05 inches) is
returned for top and bottom; `91440` (0.10 inches) is the default for left and right.
Assigning |None| to any `marX` property clears that attribute from the element,
effectively setting it to the default value.
ÚmarTé˜²  ©Ú	_get_marXr   r:   s    r1   rÌ   ÚCT_TableCell.marT  s   € ð �~‰~˜f¤c¨%£jÓ1Ð1r4   c                ó(   • U R                  SU5        g )NrÌ   ©Ú	_set_marXr@   s     r1   rÌ   rÐ     ó   € à�‰�v˜uÕ%r4   c                ó8   • U R                  S[        S5      5      $ )z3Right margin value represented in `marR` attribute.ÚmarRé0e rÎ   r:   s    r1   rÖ   ÚCT_TableCell.marR  ó   € ð �~‰~˜f¤c¨%£jÓ1Ð1r4   c                ó(   • U R                  SU5        g )NrÖ   rÒ   r@   s     r1   rÖ   rØ     rÔ   r4   c                ó8   • U R                  S[        S5      5      $ )z4Bottom margin value represented in `marB` attribute.ÚmarBrÍ   rÎ   r:   s    r1   rÜ   ÚCT_TableCell.marB   rÙ   r4   c                ó(   • U R                  SU5        g )NrÜ   rÒ   r@   s     r1   rÜ   rÝ   %  rÔ   r4   c                ó8   • U R                  S[        S5      5      $ )z2Left margin value represented in `marL` attribute.ÚmarLr×   rÎ   r:   s    r1   rà   ÚCT_TableCell.marL)  rÙ   r4   c                ó(   • U R                  SU5        g )Nrà   rÒ   r@   s     r1   rà   rá   .  rÔ   r4   c           	     óN   • [        [        [        S[        S5       S35      5      $ )z$Return a new `a:tc` element subtree.z<a:tc r‰   z]>
  <a:txBody>
    <a:bodyPr/>
    <a:lstStyle/>
    <a:p/>
  </a:txBody>
  <a:tcPr/>
</a:tc>)r   r’   r	   r   rŠ   s    r1   ÚnewÚCT_TableCell.new2  s1   € ô ÜÜØœ ›˜ð 'ð ó	ó
ð 	
r4   c                óR   • [        [        U R                  5       5      R                  $ )z'Offset of this cell's row in its table.)r   rŽ   rÂ   r|   r:   s    r1   r|   ÚCT_TableCell.row_idxC  s   € ô ”K §¡Ó!1Ó2×:Ñ:Ð:r4   c                óF   • [        [        U R                  S5      S   5      $ )z#Table element this cell belongs to.zancestor::a:tblr   )r   r   Úxpathr:   s    r1   rt   ÚCT_TableCell.tblH  s    € ô ”H˜dŸj™jÐ):Ó;¸AÑ>Ó?Ð?r4   c                ó–   • U R                   nUc  gSR                  UR                   Vs/ s H  o"R                  PM     sn5      $ s  snf )zstr text contained in cellÚ Ú
)r§   Újoinr¸   Útext)r/   r§   r¾   s      r1   rï   ÚCT_TableCell.textM  s<   € ð —‘ˆØ‰>ØØ�y‰y¨&¯,ª,Ó7ª, QŸ&œ&©,Ñ7Ó8Ð8ùÒ7s   ªAc                óŒ   • U R                   c  [        U5      $ [        [        U R                   R                  X5      5      5      $ )z(Generalized method to get margin values.)r©   r   r‘   Úget)r/   Ú	attr_namer¬   s      r1   rÏ   ÚCT_TableCell._get_marXV  s3   € à�9‰9ÑÜ�w“<ÐÜ”3�t—y‘y—}‘} YÓ8Ó9Ó:Ð:r4   c                ó,   • [         R                  " 5       $ rV   )r   Únew_a_txBodyr:   s    r1   Ú_new_txBodyÚCT_TableCell._new_txBody\  s   € Ü×'Ò'Ó)Ð)r4   c                ó^   • Uc  U R                   c  gU R                  5       n[        X1U5        g)z«Set value of marX attribute on `a:tcPr` child element.

If `marX` is |None|, the marX attribute is removed. `marX` is a string, one of `('marL',
'marR', 'marT', 'marB')`.
N)r©   r¢   r†   )r/   ÚmarXrA   r©   s       r1   rÓ   ÚCT_TableCell._set_marX_  s-   € ð ‰=˜TŸY™YÑ.ØØ×#Ñ#Ó%ˆÜ�˜EÕ"r4   rŒ   )r�   úMSO_VERTICAL_ANCHOR | None)r´   rü   )r»   r’   ©r�   r‘   r�   )r�   r   )rA   úLength | None©r�   r’   )r�   r   )r�   r“   )ró   r“   r¬   r   r�   r   )r�   r   )rú   r“   rA   rþ   r�   r”   )%r•   r–   r—   r˜   r™   rš   r›   r   r§   r©   r   r   rª   r­   r   r®   r¯   rœ   r±   r�   r¿   r}   rÆ   rÉ   rÌ   rÖ   rÜ   rà   rž   rä   r|   rt   rï   rÏ   r÷   rÓ   rŸ   rŒ   r4   r1   r’   r’   °   s;  ‡ Ù%à9Ó9Ø0Ó0à1€HÙ!*Ø˜x¨¨˜|ñ"€FÐó ñ +4Ø˜X a b˜\ñ+€DÐ
'ó ð 	á%Ø�F Añ€Hˆcó ñ %Ø�6 1ñ€GˆSó ñ %Ø�* eñ€FˆDó ñ %Ø�* eñ€FˆDó ð ó ó ð ð ‡]�]ó&ó ð&ô(ð2 ó?ó ð?ð
 ó4ó ð4ð ó*ó ð*ð ó
2ó ð
2ð 
‡[�[ó&ó ð&ð ó2ó ð2ð 
‡[�[ó&ó ð&ð ó2ó ð2ð 
‡[�[ó&ó ð&ð ó2ó ð2ð 
‡[�[ó&ó ð&ð ó
ó ð
ð  ó;ó ð;ð ó@ó ð@ð ó9ó ð9ô;ô*÷	#r4   r’   c            
      ó  • \ rS rSr% Sr\" \" S5      \" S5      \" S5      \" S5      \" S5      \" S5      4S	S
9r\" S\	5      r
S\S'   \" S\5      rS\S'   \" S\5      rS\S'   \" S\5      rS\S'   \" S\5      rS\S'   S rSrg)ÚCT_TableCellPropertiesik  z`a:tcPr` custom element classza:noFillza:solidFillz
a:gradFillz
a:blipFillz
a:pattFillz	a:grpFill)z	a:headersr¦   r'   r±   rü   rà   rþ   rÖ   rÌ   rÜ   c                ó,   • [         R                  " 5       $ rV   )r
   Únew_gradFillr:   s    r1   Ú_new_gradFillÚ$CT_TableCellProperties._new_gradFill‰  s   € Ü(×5Ò5Ó7Ð7r4   rŒ   N)r•   r–   r—   r˜   r™   r   r   Úeg_fillPropertiesr   r   r±   rš   r   rà   rÖ   rÌ   rÜ   r  rŸ   rŒ   r4   r1   r  r  k  sÉ   ‡ Ù'á'á�:ÓÙ�=Ó!Ù�<Ó Ù�<Ó Ù�<Ó Ù�;Óð	
ð -ñ
Ðñ *;ØÐ%ó*€FÐ&ó ñ ,Ø�ó€Dˆ-ó ñ ,Ø�ó€Dˆ-ó ñ ,Ø�ó€Dˆ-ó ñ ,Ø�ó€Dˆ-ó õ8r4   r  c                  ó6   • \ rS rSr% Sr\" S\5      rS\S'   Sr	g)ÚCT_TableColi�  z!`a:gridCol` custom element class.Úwr   rŒ   N)
r•   r–   r—   r˜   r™   r   r   r	  rš   rŸ   rŒ   r4   r1   r  r  �  s   ‡ Ù+á! # }Ó5€A€vÖ5r4   r  c                  óH   • \ rS rSr% SrS\S'   S\S'   \" S5      rSS jrS	r	g
)r*   i“  z!`a:tblGrid` custom element class.zlist[CT_TableCol]ÚgridCol_lstzCallable[..., CT_TableCol]Ú_add_gridColz	a:gridColc                ó    • U R                  US9$ )zSA newly appended `a:gridCol` child element having its `w` attribute set to `width`.)r	  )r  )r/   rj   s     r1   rm   ÚCT_TableGrid.add_gridCol›  s   € à× Ñ  5Ð Ð)Ð)r4   rŒ   N)rj   r   r�   r  )
r•   r–   r—   r˜   r™   rš   r   ÚgridColrm   rŸ   rŒ   r4   r1   r*   r*   “  s    ‡ Ù+à"Ó"Ø,Ó,á˜Ó%€G÷*r4   r*   c                  óx   • \ rS rSrSr\" S\SS9r\" S\SS9r\" S\SS9r	\" S\SS9r
\" S	\SS9r\" S
\SS9rSrg)ÚCT_TablePropertiesi   z`a:tblPr` custom element class.rE   Fr«   r7   rQ   rJ   rf   ra   rŒ   N)r•   r–   r—   r˜   r™   r   r   rE   r7   rQ   rJ   rf   ra   rŸ   rŒ   r4   r1   r  r     sY   † Ù)á 	¨:¸uÑE€GÙ 	¨:¸uÑE€GÙ  ¨ZÀÑG€HÙ  ¨ZÀÑG€HÙ 	¨:¸uÑE€GÙ 	¨:¸uÑEƒGr4   r  c                  ó|   • \ rS rSr% SrS\S'   S\S'   \" SSS	9r\" S
\	5      r
S\S
'   SS jr\SS j5       rS rSrg)rŽ   i«  z`a:tr` custom element class.zlist[CT_TableCell]rW   zCallable[[], CT_TableCell]Ú_add_tcza:tc)r¦   r'   r.   r   c                ó"   • U R                  5       $ )z1A newly added minimal valid `a:tc` child element.)r  r:   s    r1   rn   ÚCT_TableRow.add_tc´  s   € à�|‰|‹~Ðr4   c                óp   • [        [        U R                  5       5      R                  R	                  U 5      $ )z Offset of this row in its table.)r   r   rÂ   r!   rÃ   r:   s    r1   r|   ÚCT_TableRow.row_idx¸  s)   € ô ”H˜dŸn™nÓ.Ó/×6Ñ6×<Ñ<¸TÓBÐBr4   c                ó*   • [         R                  5       $ rV   )r’   rä   r:   s    r1   Ú_new_tcÚCT_TableRow._new_tc½  s   € Ü×ÑÓ!Ð!r4   rŒ   Nrÿ   rý   )r•   r–   r—   r˜   r™   rš   r   rZ   r   r   r.   rn   rœ   r|   r  rŸ   rŒ   r4   r1   rŽ   rŽ   «  sN   ‡ Ù&àÓØ'Ó'á	�F }Ñ	5€BÙ! # }Ó5€A€vÓ5ôð óCó ðCõ"r4   rŽ   c                  óö   • \ rS rSrSrSS jr\SS j5       r\SS j5       r	\SS j5       r
\S 5       rS rS	 rS
 rS rS rS r\S 5       r\SS j5       r\S 5       r\S 5       r\S 5       r\S 5       rSrg)ÚTcRangeiÁ  a’  A 2D block of `a:tc` cell elements in a table.

This object assumes the structure of the underlying table does not change during its lifetime.
Structural changes in this context would be insertion or removal of rows or columns.

The client is expected to create, use, and then abandon an instance in the context of a single
user operation that is known to have no structural side-effects of this type.
c                ó   • Xl         X l        g rV   )Ú_tcÚ	_other_tc)r/   rZ   Úother_tcs      r1   Ú__init__ÚTcRange.__init__Ë  s   € ØŒØ!�r4   c                ó²   • UR                   R                  UR                  UR                  -   S-
  UR                  UR
                  -   S-
  5      nU " X5      $ )z5Return instance created from merge-origin tc element.r&   )rt   rZ   r|   r­   r}   rª   )ro   rZ   r   s      r1   Úfrom_merge_originÚTcRange.from_merge_originÏ  sM   € ð —6‘6—9‘9Ø�J‰J˜Ÿ™Ñ# aÑ'Ø�J‰J˜Ÿ™Ñ$ qÑ(ó
ˆñ �2Ó Ð r4   c                óÆ   • U R                  5        HM  nUR                  S:”  a    gUR                  S:”  a    gUR                  (       a    gUR                  (       d  MM    g   g)z=True if one or more cells in range are part of a merged cell.r&   TF)r]   rª   r­   r®   r¯   )r/   rZ   s     r1   Úcontains_merged_cellÚTcRange.contains_merged_cellØ  sK   € ð —-‘-–/ˆBØ�{‰{˜Q‹ÙØ�z‰z˜A‹~ÙØ�y�yÙØ�y�y‰yÙñ "ð r4   c                ó(   • U R                   u    pnX24$ )z5(row_count, col_count) pair describing size of range.©Ú_extents)r/   Ú_rj   r0   s       r1   Ú
dimensionsÚTcRange.dimensionsæ  s   € ð #Ÿm™mÑˆˆ1�VØˆ}Ðr4   c                ó`   • U R                   R                  U R                  R                  L a  gg)z=True if both cells provided to constructor are in same table.TF)r  rt   r  r:   s    r1   Úin_same_tableÚTcRange.in_same_tableì  s$   € ð �8‰8�<‰<˜4Ÿ>™>×-Ñ-Ò-ØØr4   c              #  óÖ   #   • U R                   R                  U R                  U R                    H4  nUR                  U R
                  S-   U R                    H  nUv •  M	     M6     g7f)z=Generate each `a:tc` element not in leftmost column of range.r&   N©Ú_tblr!   Ú_topÚ_bottomrW   Ú_leftÚ_right©r/   rY   rZ   s      r1   Úiter_except_left_col_tcsÚ TcRange.iter_except_left_col_tcsó  sN   é € à—)‘)×"Ñ" 4§9¡9¨t¯|©|Ó<ˆBØ—i‘i §
¡
¨Q¡°·±Ó=�Ø”ó >ò =ùó   ‚A'A)c              #  óÖ   #   • U R                   R                  U R                  S-   U R                    H1  nUR                  U R
                  U R                    H  nUv •  M	     M3     g7f)z8Generate each `a:tc` element in non-first rows of range.r&   Nr3  r9  s      r1   Úiter_except_top_row_tcsÚTcRange.iter_except_top_row_tcsù  sO   é € à—)‘)×"Ñ" 4§9¡9¨q¡=°4·<±<Ó@ˆBØ—i‘i §
¡
¨T¯[©[Ó9�Ø”ó :ò Aùr<  c              #  ó®   #   • U R                   nU R                  R                  U R                  U R                    H  nUR
                  U   v •  M     g7f)z9Generate each `a:tc` element in leftmost column of range.N)r7  r4  r!   r5  r6  rW   )r/   r}   rY   s      r1   Úiter_left_col_tcsÚTcRange.iter_left_col_tcsÿ  s@   é € à—*‘*ˆØ—)‘)×"Ñ" 4§9¡9¨t¯|©|Ó<ˆBØ—)‘)˜GÑ$Ô$ò =ùó   ‚AAc                ór   ^ • U 4S jT R                   R                  T R                  T R                    5       $ )zgGenerate each `a:tc` element in this range.

Cell elements are generated left-to-right, top-to-bottom.
c              3  ó~   >#   • U  H2  nUR                   TR                  TR                     H  nUv •  M	     M4     g 7frV   )rW   r7  r8  )rX   rY   rZ   r/   s      €r1   r[   Ú#TcRange.iter_tcs.<locals>.<genexpr>
  s8   øé € ð 
â@�Ø—i‘i §
¡
¨T¯[©[Ô9�õ á9ñ Ú@ùs   ƒ:=)r4  r!   r5  r6  r:   s   `r1   r]   ÚTcRange.iter_tcs  s.   ø€ ô

à—i‘i×&Ñ& t§y¡y°4·<±<Ñ@ó
ð 	
r4   c              #  ó®   #   • U R                   R                  U R                     nUR                  U R                  U R
                    H  nUv •  M	     g7f)z5Generate each `a:tc` element in topmost row of range.N)r4  r!   r5  rW   r7  r8  r9  s      r1   Úiter_top_row_tcsÚTcRange.iter_top_row_tcs  s?   é € à�Y‰Y×Ñ˜dŸi™iÑ(ˆØ—)‘)˜DŸJ™J¨¯©Ó5ˆBØŒHò 6ùrC  c                óz   • [        U R                  5       5      nUS   nUSS  H  nUR                  U5        M     g)z,Move all paragraphs in range to origin cell.r   r&   N)Úlistr]   r¿   )r/   ÚtcsÚ	origin_tcr»   s       r1   Úmove_content_to_originÚTcRange.move_content_to_origin  s9   € ä�4—=‘=“?Ó#ˆØ˜‘Fˆ	Ø˜a˜b›'ˆJØ×$Ñ$ ZÖ0ò "r4   c                ó(   • U R                   u  ppX#-   $ )z(Index of row following last row of ranger*  )r/   r,  Útopr0   s       r1   r6  ÚTcRange._bottom  s   € ð !ŸM™MÑˆ�Ø‰|Ðr4   c                ó¾   • SS jnU R                   U R                  p2U" UR                  UR                  5      u  pEU" UR                  UR                  5      u  pgXFXW4$ )a  A (left, top, width, height) tuple describing range extents.

Note this is normalized to accommodate the various orderings of the corner cells provided
on construction, which may be in any of four configurations such as (top-left,
bottom-right), (bottom-left, top-right), etc.
c                ó8   • [        X5      [        X-
  5      S-   4$ )z:Return beginning and length of range based on two indexes.r&   )ÚminÚabs)ÚidxÚ	other_idxs     r1   Ústart_and_sizeÚ(TcRange._extents.<locals>.start_and_size,  s   € ä�sÓ&¬¨C©OÓ(<¸qÑ(@Ð@Ð@r4   )rX  r‘   rY  r‘   r�   útuple[int, int])r  r  r}   r|   )r/   rZ  rZ   r   Úleftrj   rR  r0   s           r1   r+  ÚTcRange._extents#  sT   € ô	Að —x‘x §¡ˆHá$ R§Z¡Z°×1AÑ1AÓB‰ˆÙ$ R§Z¡Z°×1AÑ1AÓB‰ˆà˜%Ð'Ð'r4   c                ó(   • U R                   u  n    nU$ )z"Index of leftmost column in range.r*  )r/   r]  r,  s      r1   r7  ÚTcRange._left7  s   € ð Ÿ™‰ˆˆa��AØˆr4   c                ó(   • U R                   u  pp2X-   $ )z3Index of column following the last column in range.r*  )r/   r]  r,  rj   s       r1   r8  ÚTcRange._right=  s   € ð !ŸM™MÑˆ�Ø‰|Ðr4   c                ó.   • U R                   R                  $ )z+`a:tbl` element containing this cell range.)r  rt   r:   s    r1   r4  ÚTcRange._tblC  s   € ð �x‰x�|‰|Ðr4   c                ó&   • U R                   u  p  nU$ )zIndex of topmost row in range.r*  )r/   r,  rR  s      r1   r5  ÚTcRange._topH  s   € ð —}‘}‰ˆ��1Øˆ
r4   )r  r  N)rZ   r’   r   r’   )rZ   r’   r�   )r�   r\  )r�   ztuple[int, int, int, int])r•   r–   r—   r˜   r™   r!  rž   r$  r   r'  r-  r0  r:  r>  rA  r]   rI  rO  r6  r+  r7  r8  r4  r5  rŸ   rŒ   r4   r1   r  r  Á  sò   † ñô"ð ó!ó ð!ð óó ðð óó ðð
 ñó ðòòò%ò	
òò1ð ñó ðð
 ó(ó ð(ð& ñó ðð
 ñó ðð
 ñó ðð ñó ór4   r  N)-r™   Ú
__future__r   Útypingr   r   r   r   Úpptx.enum.textr   Ú	pptx.oxmlr	   Úpptx.oxml.dml.fillr
   Úpptx.oxml.nsr   Úpptx.oxml.simpletypesr   r   r   r   Úpptx.oxml.textr   Úpptx.oxml.xmlchemyr   r   r   r   r   r   r   r   Ú	pptx.utilr   r   r   r   r’   r  r  r*   r  rŽ   Úobjectr  rŒ   r4   r1   Ú<module>rr     s«   ðÙ ;å "ç :Ó :å .Ý Ý 8Ý  ß TÓ TÝ &÷	÷ 	ó 	÷ (æÝ ôP
ˆô P
ôfx#�?ô x#ôv8˜_ô 8ôD6�/ô 6ô
*�?ô 
*ôF˜ô Fô"�/ô "ô,Kˆfõ Kr4   