
    h                     v    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  S SK	r	Sr
 " S	 S
\R                  5      rg)    )sstruct)floatToFixedToStr)safeEval   )DefaultTable)grUtilsNz
    >
    version:    16.16F
c                   :    \ rS rSrSrS
S jrS rS rS rS r	S	r
g)table_S__i_l_l   zdGraphite Languages table

See also https://graphite.sil.org/graphite_techAbout#graphite-font-tables
Nc                 P    [         R                   R                  X5        0 U l        g N)r   __init__langs)selftags     Q/var/www/html/env/lib/python3.13/site-packages/fontTools/ttLib/tables/S__i_l_l.pyr   table_S__i_l_l.__init__   s    !!**45
    c                 :   [         R                  " [        X5      u  p1[        [	        U R
                  SS95      U l        [        R                  " SUS S 5      u  nUSS  nSn/ n[        U5       H~  n[        R                  " SXS-  US-   S-   5      u  pn
[        U
S-  5      US-   -
  n
UR                  S	S
5      nUR                  UR                  S5      X45        [        XZU	-   5      nM     XS-  S  n/ n[        U5       H:  n[        R                  " SXS-  US-   S-   5      u  pnUR                  X45        M<     0 U l        U HK  u  pn/ U R                  U'   [        UUU-   5       H#  nU R                  U   R                  X   5        M%     MM     g )N   )precisionBitsz>H      r   >4sHHr       r   zutf-8>LHH)r   unpack2Sill_hdrfloatr   versionstructunpackrangeintreplaceappenddecodemaxr   )r   datattFont_numLangs
maxsettinglanginfoilangcodenumsettingsoffsetfinfofidvalcnos                    r   	decompiletable_S__i_l_l.decompile   s   OOHd9	.t||2NOmmD$r(3ABx
xA.4mm!eq1uk2/+XF !_15F''5HOOX__W5{KLZ+)=>J ! qLN#z"A"MM&$1uA{2KLMSqLL#$ # 
GA!DJJqM1a!e_

1$$UX. %  r   c           	      B   SnSn[        U R                  5      n[        U R                  R                  5       5       Hs  u  pVU[        R
                  " SUR                  S5      [        U5      SU-  S-   5      -  nU H   u  pxU[        R
                  " SXxS5      -  nM"     U[        U5      -  nMu     U[        R
                  " SSSSU-  S-   5      -  n[        R
                  " [        U 5      [        R                  " [        U R                  5      5      -   U-   U-   $ )	Nr   r   utf8r      r   r   l     )lenr   sorteditemsr!   packencoder   r   r   bininfo)	r   r*   ldatfdatr2   r6   infr4   r5   s	            r   compiletable_S__i_l_l.compile2   s    TZZTZZ--/0FAFKK&)93s8QZRT_UUDFCa88  c#hF	 1
 	FJ1v:?CCLL4(ooc$**o./ 	
r   c                    UR                  SU R                  S9  UR                  5         [        U R                  R                  5       5       H  u  p4UR                  SUS9  UR                  5         U H:  u  pVUR                  S[        R                  " U5      US9  UR                  5         M<     UR                  S5        UR                  5         M     g )Nr    )r    lang)namefeature)r4   r5   )
	simpletagr    newliner?   r   r@   begintagr   num2tagendtag)r   writerr*   r6   rF   r4   r5   s          r   toXMLtable_S__i_l_l.toXMLC   s    DLL9TZZ--/0FAOOFO+NN  0D# N    MM&!NN 1r   c           
      r   US:X  a  [        [        US   5      5      U l        g US:X  a  US   n/ U R                  U'   U Hs  n[	        U[
        5      (       d  M  Uu  pxn	US:X  d  M'  U R                  U   R                  [        R                  " US   5      [        [        US   5      5      45        Mu     g g )Nr    rJ   rK   rL   r4   r5   )
r   r   r    r   
isinstancetupler&   r   tag2numr$   )
r   rK   attrscontentr*   r6   elementr   a
subcontents
             r   fromXMLtable_S__i_l_l.fromXMLO   s    9 %	*:!;<DLV^fADJJqM"!'511%,"
)#JJqM(( 52C58J4KL # r   )r   r    r   )__name__
__module____qualname____firstlineno____doc__r   r9   rG   rS   r^   __static_attributes__ r   r   r
   r
      s     
/4
"
r   r
   )fontTools.miscr   fontTools.misc.fixedToolsr   fontTools.misc.textToolsr    r   r   r!   r   r
   rf   r   r   <module>rk      s2    " 7 -   N\.. Nr   