+
    f7i	  c                   s~    R t ^ RIt^ RIt^RIHt ]P
                  ! ]4      tRtR t	 ! R R]P                  4      t
R# )ag  TSI{0,1,2,3,5} are private tables used by Microsoft Visual TrueType (VTT)
tool to store its hinting source data.

TSI0 is the index table containing the lengths and offsets for the glyph
programs and 'extra' programs ('fpgm', 'prep', and 'cvt') that are contained
in the TSI1 table.

See also https://learn.microsoft.com/en-us/typography/tools/vtt/tsi-tables
N)DefaultTablez>HHLc                 s0    \        V 4      \        V4      V3# N)Zint)glyphID
textLength
textOffset   &&&F/usr/lib64/python3.14/site-packages/fontTools/ttLib/tables/T_S_I__0.pyfixlongsr      s    w<Z*44    c                   s>   a  ] tR t^t o R.tR tR tR tR tRt	V t
R# )table_T_S_I__0ZTSI1c           	     s6   VR ,          P                   p. p\        P                  ! \        4      p\	        V4      V,          pWc^,           8w  d?   Wc,
          ^,
          p\
        P                  R\        V4       RV^,
           RV R24       \        V4       FB  p\        \        P                  ! \        VRV 4      !  w  rpVP                  WV34       WR pKD  	  \	        V4      ^ 8X  g   Q hVR,          R8X  g   Q R4       hVRR V n        VR	R V n        R# )
ZmaxpzINumber of glyphPrograms differs from the number of glyphs in the font by z (z programs vs. z	 glyphs).Nzbad magic numberi)  i       4W i)	numGlyphsstructZcalcsize
tsi0FormatZlenlogZwarningZabsZranger   ZunpackZappendindicesextra_indices)selfdatattFontr   r   ZsizeZ
numEntriesZdiffZ_r   r   r   s   &&&         r   	decompileZtable_T_S_I__0.decompile   s   6N,,	z*Y$&
Q&)A-DKK$i[:>"2.9V z"A.6z4;7/+G NNG<=;D # 4yA~~r{55I7II5s|$RS\r   c                s^   \        V R 4      '       g   R# RpV P                   F)  w  r4pV\        P                  ! \        W4V4      ,           pK+  	  V\        P                  ! \        R^ R4      ,           pV P
                   F)  w  r4pV\        P                  ! \        W4V4      ,           pK+  	  V# )r   r   r
   r   )Zhasattrr   r   Zpackr   r   )r   r   r   Zindexr   r   s   &&    r   compileZtable_T_S_I__0.compile2   s    tY'' -1\\)Ez&++j%ZPPD .:fkk*faDD-1-?-?)Ez&++j%ZPPD .@r   c                s    Wn         W n        R # r   )r   r   )r   r   r   r   r   setZtable_T_S_I__0.set?   s    *r   c                sH    VP                  R 4       VP                  4        R# )z-This table will be calculated by the compilerN)ZcommentZnewline)r   Zwriterr   r   r   toXMLZtable_T_S_I__0.toXMLD   s    FGr   )r   r   N)__name__Z
__module__Z__qualname__Z__firstlineno__Zdependenciesr   r   r   r   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r	   r	      s%     8L*,+
 r   r	   )Z__doc__Zloggingr   Z r    Z	getLoggerr   r   r   r   r	   ) r   r   <module>r      sA      !
5-\.. -r   