+
    f7i0  c                   s    ^ RI Ht ^ RIHt ^ RIHt ^RIHt ^ RIt^ RI	t	^ RI
t
^ RIt]P                  ! ]4      t ! R R]P                  4      tR# )i    )otRound)ttLib)safeEval)DefaultTableNc                   sb   a  ] tR t^t o RtRtRtRtRtRt	R t
R tR	 tR
 tR tR tR tRtV tR# )table__h_m_t_xzHorizontal Metrics table

The ``hmtx`` table contains per-glyph metrics for the glyphs in a
``glyf``, ``CFF ``, or ``CFF2`` table, as needed for horizontal text
layout.

See also https://learn.microsoft.com/en-us/typography/opentype/spec/hmtx
ZhheaZwidthlsbZnumberOfHMetricsZHhc           
     s   VR ,          P                   pVP                  V P                  4      pVe    \        \	        W@P
                  4      4      pMTpWS8  d5   \        P                  RV P                  : RV P
                  : R24       TpW5,
          p^V,          ^V,          ,           p\        V4      V8  d3   \        P                  ! RV P                   RV R\        V4       24      hRV P                  V,          ,           p\        P                  ! WR^V,           4      p	V^V,          R p\        P                  ! R	VR^V,           4      p
V^V,          R p\         P"                  R
8w  d   V
P%                  4        V'       d'   \        P                  RV P                  ,          4       / V n        VP)                  4       p\+        V4       F_  pW,          pW^,          V^,          ^,            w  rVR8  d#   \        P                  RVV P,                  V4       W3V P&                  V&   Ka  	  V	R,          p\+        V4       F)  pWV,           ,          pVW,          3V P&                  V&   K+  	  R# )maxpNzThe Z.z exceeds the maxp.numGlyphsznot enough 'z' table data: expected z bytes, got >hbigztoo much '%s' table datai  zVGlyph %r has a huge advance %s (%d); is it intentional or an (invalid) negative value?i)	numGlyphsget	headerTagZintZgetattrnumberOfMetricsNamelogZwarninglenr   
TTLibErrortableTaglongMetricFormatstructZunpackarraysys	byteorderbyteswapmetricsgetGlyphOrderZrangeadvanceName)selfdatattFontr
   headerTablenumberOfMetricsZnumberOfSideBearingsZ	tableSize
metricsFmtr   ZsideBearingsZ
glyphOrderZi	glyphNameadvanceWidthr   lastAdvances   &&&              F/usr/lib64/python3.14/site-packages/fontTools/ttLib/tables/_h_m_t_x.py	decompileZtable__h_m_t_x.decompile   s3   6N,,	jj0"!'+7O7O"PQO'O&KK>>4#;#;= (O(:'!.B*BB	t9y ""t}}o .%;l3t9+?  400?BB
--
1F13F,GHA')*{{3-Gq3G/G(HIA,,./==E!!!#KK2T]]BC))+
'A"I 'AA	 :Le#3$$  (4&9DLL# ( bk+,A"#67I'2LO&DDLL# -    c                s   . pR pVP                  4        FZ  pV P                  V,          w  rVV^ 8  d*   \        P                  RV: RV P                  : 24       RpVP                  WV.4       K\  	  VP                  V P                  4      pVe   VR,          ^ ,          p\        V4      p	W)^,
          ,          ^ ,          V8X  d   V	^,          p	V	^8:  g   K-  ^p	 W)R p
V
 UUu. uF  w  r\        V4      NK  	  p
ppVRV	 p\        V4      p\        WpP                  V4       MVR,          P                  p. p
. pV F*  w  rVP                  \        V4      \        V4      .4       K,  	  RV P                  V,          ,           p \        P                   ! V.VO5!  p\*        P*                  ! RT
4      p
\,        P.                  R8w  d   T
P1                  4        TT
P3                  4       ,           pT# u uppi   \        P                   dR   pR\#        T4      9   d<   T'       d4   \$        P&                  ! RT P(                  : R	T P                  : R
24      hh Rp?ii ; i)FzGlyph z has negative advance TNr   r   zout of rangeZ'z'' table can't contain negative advance Zsr   r	   i)r   r   r   Zerrorr   Zappendr   r   r   r    Zsetattrr   r
   Zextendr   r   ZpackZstrr   r   r   r   r   r   r   Ztobytes)r   r   r   ZhasNegativeAdvancesr!   r"   ZsideBearingr   r#   Z	lastIndexZadditionalMetricsZ_sbr   Z
allMetricsadvancer    r   Zes   &&                 r$   compileZtable__h_m_t_x.compileR   s    #--/I(,Y(?%La		:CTEUEUV '+#NNL67 0 jj0"!"+a.KGIa-(+{:Q	> !I '
 3:K L:K:K Ljy)G!'lOK!9!9?K %Vn66O "
"KGww/=> #400?BB
		;;z7J7D "KK->?==E!&&('//117 !M || 	Q',?&&}}d&6&68 
 	s$   &G5G; ;I!I(4II!c                s   \        V P                  P                  4       4      pV FW  pV P                  V,          w  rVVP                  R RV3V P                  V3V P
                  V3.4       VP                  4        KY  	  R# )mtxnameN)Zsortedr   ZkeysZ	simpletagr   sideBearingNameZnewline)r   Zwriterr   Znamesr!   r(   r'   s   &&&    r$   toXMLZtable__h_m_t_x.toXML   sy    t||((*+I,,y1KGY'%%w/))2. NN r&   c                s    \        V R 4      '       g   / V n        VR8X  dM   \        W P                  ,          4      \        W P                  ,          4      3V P                  VR,          &   R# R# )r   r*   r+   N)Zhasattrr   r   r   r,   )r   r+   ZattrsZcontentr   s   &&&&&r$   fromXMLZtable__h_m_t_x.fromXML   sX    tY''DL5=//013345+DLLv' r&   c                s     V P                   V R # Nr   r   r!      &&r$   __delitem__Ztable__h_m_t_x.__delitem__   s    LL#r&   c                s(    V P                   V,          # r/   r0   r1   r2   r$   __getitem__Ztable__h_m_t_x.__getitem__   s    ||I&&r&   c                s6    \        V4      V P                  V&   R # r/   )Ztupler   )r   r!   Zadvance_sb_pairs   &&&r$   __setitem__Ztable__h_m_t_x.__setitem__   s    "'"8Yr&   r0   N)__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__r   r   r,   r   r   r%   r)   r-   r.   r3   r4   r5   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r$   r   r      sR      IKO,2Eh2h$'9 9r&   r   )ZfontTools.misc.roundToolsr    Z	fontToolsr   ZfontTools.misc.textToolsr   Z r   r   r   r   ZloggingZ	getLoggerr6   r   r   ) r&   r$   <module>r7      sC    -  -  
    !V9\.. V9r&   