
    h2                     Z    S r SSKJr  SSKJr  SSKrSSKr " S S\R                  5      rg)zTSI{0,1,2,3,5} are private tables used by Microsoft Visual TrueType (VTT)
tool to store its hinting source data.

TSI5 contains the VTT character groups.

See also https://learn.microsoft.com/en-us/typography/tools/vtt/tsi-tables
    )safeEval   )DefaultTableNc                   ,    \ rS rSrS rS rS rS rSrg)table_T_S_I__5   c                 R   US   R                   n[        U5      SU-  :X  d   e[        R                  " S5      nUR                  U5        [        R
                  S:w  a  UR                  5         0 U l        [        U5       H#  nXE   U R                  UR                  U5      '   M%     g )Nmaxp   Hbig)
	numGlyphslenarray	frombytessys	byteorderbyteswapglyphGroupingrangegetGlyphName)selfdatattFontr   ais         Q/var/www/html/env/lib/python3.13/site-packages/fontTools/ttLib/tables/T_S_I__5.py	decompiletable_T_S_I__5.decompile   s    6N,,	4yA	M)))KK	D==E!JJLy!A9:Dv22156 "    c                 F   UR                  5       n[        R                  " S5      n[        [        U5      5       H0  nUR	                  U R
                  R                  X$   S5      5        M2     [        R                  S:w  a  UR                  5         UR                  5       $ )Nr   r   r   )getGlyphOrderr   r   r   appendr   getr   r   r   tobytes)r   r   
glyphNamesr   r   s        r   compiletable_T_S_I__5.compile   ss    ))+
KKs:'AHHT''++JM1=> (==E!JJLyy{r    c                     [        U R                  R                  5       5      nU H0  nUR                  SX@R                  U   S9  UR	                  5         M2     g )N
glyphgroup)namevalue)sortedr   keys	simpletagnewline)r   writerr   names	glyphNames        r   toXMLtable_T_S_I__5.toXML$   sT    t))..01I94F4Fy4Q   NN	 r    c                 ~    [        U S5      (       d  0 U l        US:w  a  g [        US   5      U R                  US   '   g )Nr   r*   r,   r+   )hasattrr   r   )r   r+   attrscontentr   s        r   fromXMLtable_T_S_I__5.fromXML,   s?    t_--!#D<,4U7^,D5=)r    )r   N)	__name__
__module____qualname____firstlineno__r   r'   r4   r:   __static_attributes__ r    r   r   r      s    	>Er    r   )__doc__fontTools.misc.textToolsr    r   r   r   r   rA   r    r   <module>rE      s,    .  
 "E\.. "Er    