Ë
    £ehk  ã                   óŒ   — d dl mZ d dlmZ d dlmZ ddlmZ ddlmZ d dl	Z	dZ
 G d	„ d
ej                  «      Z G d„ de«      Zy)é    )Ússtruct)ÚfloatToFixedToStr)ÚsafeEvalé   )ÚDefaultTable)ÚgrUtilsNz
    >
    version:    16.16F
c                   ó0   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zy)	Útable_F__e_a_taš  Feature table

    The ``Feat`` table is used exclusively by the Graphite shaping engine
    to store features and possible settings specified in GDL. Graphite features
    determine what rules are applied to transform a glyph stream.

    Not to be confused with ``feat``, or the OpenType Layout tables
    ``GSUB``/``GPOS``.

    See also https://graphite.sil.org/graphite_techAbout#graphite-font-tables
    Nc                 óR   — t         j                   j                  | |«       i | _        y ©N)r   Ú__init__Úfeatures)ÚselfÚtags     ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/fontTools/ttLib/tables/F__e_a_t.pyr   ztable_F__e_a_t.__init__   s   € Ü×!Ñ!×*Ñ*¨4°Ô5Øˆ�ó    c           	      ó˜  — t        j                  t        || «      \  }}t        t	        | j
                  d¬«      «      | _        t        j                  d|d d «      \  }|dd  }g }d}t        |«      D ]¶  }| j
                  dk\  rAt        j                  d|d|z  d|d	z   z   «      \  }}	}}
}}t        |
d
z
  d|z  z
  dz  «      }
n?t        j                  d|d
|z  d
|d	z   z   «      \  }}	}
}}t        |
d
z
  d
|z  z
  dz  «      }
|j                  ||	|
||f«       t        ||
|	z   «      }Œ¸ |d|z  d  }g }t        |«      D ]O  }t        |«      d|d	z   z  k\  sŒt        j                  d|d|z  d|d	z   z   «      \  }}|j                  ||f«       ŒQ t        |«      D ]ª  \  }}|\  }}	}
}}t        «       }||_        ||_        || j"                  t%        j&                  |«      <   i |_        d |_        ||_        t        |
|
|	z   «      D ]<  }|t        |«      k\  rŒ||   \  }}||j(                  |<   |j*                  �Œ6||_        Œ> Œ¬ y )Né   )ÚprecisionBitsz>Hé   é   r   ç       @ú>LHHLHHr   é   é   ú>HHLHHú>HH)r   Úunpack2ÚFeat_hdr_formatÚfloatr   ÚversionÚstructÚunpackÚrangeÚintÚappendÚmaxÚlenÚ	enumerateÚFeatureÚflagsÚlabelr   r   Únum2tagÚsettingsÚdefaultÚindex)r   ÚdataÚttFontÚ_ÚnumFeatsÚallfeatsÚ
maxsettingÚiÚfidÚnumsÚoffsetr+   ÚlidÚallsettingsÚvalÚfÚfobjÚvidÚvlids                      r   Ú	decompileztable_F__e_a_t.decompile   s|  € Ü—O‘O¤O°T¸4Ó@‰	ˆˆDÜÔ.¨t¯|©|È2ÔNÓOˆŒÜ—m‘m D¨$¨r°¨(Ó3‰ˆØ�A�BˆxˆØˆØˆ
Ü�x“ò 	8ˆAØ�|‰|˜sÒ"Ü5;·]±]Ø˜t B¨¡F¨R°1°q±5©\Ð:ó6Ñ2��d˜A˜v u¨cô ˜f r™k¨B°©MÑ9¸QÑ>Ó?‘ä28·-±-Ø˜d 2¨¡6¨B°!°a±%©LÐ9ó3Ñ/��d˜F E¨3ô ˜f r™k¨B°©MÑ9¸QÑ>Ó?�Ø�O‰O˜S $¨°°sÐ;Ô<Ü˜Z¨°$©Ó7‰Jð	8ð �B˜‘M�OÐ$ˆØˆÜ�zÓ"ò 	/ˆAÜ�4‹y˜A  Q¡™KÓ'Ü#Ÿ]™]¨5°$°q¸1±u¸qÀAÈÁE¹{Ð2KÓL‘
��cØ×"Ñ" C¨ :Õ.ð	/ô ˜hÓ'ò 	'‰DˆAˆqØ./Ñ+ˆS�$˜  sÜ“9ˆDØˆDŒJØˆDŒJØ26ˆD�M‰Mœ'Ÿ/™/¨#Ó.Ñ/ØˆDŒMØˆDŒLØˆDŒJÜ˜6 6¨D¡=Ó1ò '�Øœ˜KÓ(Ò(ØØ)¨!™n‘��dØ%)�—‘˜cÑ"Ø—<‘<Ñ'Ø#&�D•Lñ'ñ	'r   c                 ó2  ‡
— d}d}d}t        | j                  j                  «       d„ ¬«      D �]™  \  }Š
t        j                  |«      }| j
                  dk\  rx|t        j                  dt        j                  |«      t        ‰
j                  «      d|dz  dz   d	t        | j                  «      z  z   ‰
j                  ‰
j                  «      z  }n•|d
kD  rd| _        | j                  |«      c S |t        j                  dt        j                  |«      t        ‰
j                  «      |dz  dz   dt        | j                  «      z  z   ‰
j                  ‰
j                  «      z  }t        ‰
j                  j                  «       ˆ
fd„¬«      D ]  \  }}|t        j                  d||«      z  }Œ! |t        ‰
j                  «      z  }�Œœ t        j                  t        | «      }	|	t        j                  dt        | j                  «      dd«      z   |z   |z   S )Nr   r   c                 ó    — | d   j                   S ©Nr   ©r0   ©Úxs    r   ú<lambda>z(table_F__e_a_t.compile.<locals>.<lambda>N   ó   € ÀÀ!ÁÇ
Á
€ r   ©Úkeyr   r   r   r   r   iÿÿ  r   c                 ó:   •— | d   ‰j                   k(  rd| d   fS | S )Nr   éÿÿÿÿr   )r/   )rH   Úvs    €r   rI   z(table_F__e_a_t.compile.<locals>.<lambda>g   s#   ø€ ÀÀ!ÁÈÏ	É	Ò@Q°2°q¸±t°*€ ÐWX€ r   r   z>HHL)Úsortedr   Úitemsr   Útag2numr!   r"   Úpackr(   r.   r+   r,   Úcompiler   r   )r   r2   ÚfdatÚvdatr:   r>   ÚfnumÚsÚlÚhdrrO   s             @r   rT   ztable_F__e_a_t.compileJ   sÅ  ø€ ØˆØˆØˆÜ˜4Ÿ=™=×.Ñ.Ó0Ñ6JÔKó 	&‰DˆAˆqÜ—?‘? 1Ó%ˆDØ�|‰|˜sÒ"ØœŸ™ØÜ—O‘O AÓ&Ü˜Ÿ
™
“OØØ˜Q‘J ‘O b¬3¨t¯}©}Ó+=Ñ&=Ñ=Ø—G‘GØ—G‘Góñ ‘ð ˜’Ø"�”Ø—|‘| FÓ+Ò+àœŸ™ØÜ—O‘O AÓ&Ü˜Ÿ
™
“OØ˜Q‘J ‘O b¬3¨t¯}©}Ó+=Ñ&=Ñ=Ø—G‘GØ—G‘Góñ �ô Ø—
‘
× Ñ Ó"Ó(Xôò 1‘��1ð œŸ™ E¨1¨aÓ0Ñ0‘ð1ð ”c˜!Ÿ*™*“oÑ%ŠFð9	&ô: �l‰lœ?¨DÓ1ˆØ”V—[‘[ ¬¨T¯]©]Ó);¸QÀÓBÑBÀTÑIÈDÑPÐPr   c                 ó>  — |j                  d| j                  ¬«       |j                  «        t        | j                  j                  «       d„ ¬«      D ]Ç  \  }}|j                  d||j                  |j                  |j                  r|j                  nd¬«       |j                  «        t        |j                  j                  «       «      D ])  \  }}|j                  d||¬	«       |j                  «        Œ+ |j                  d«       |j                  «        ŒÉ y )
Nr!   )r!   c                 ó    — | d   j                   S rE   rF   rG   s    r   rI   z&table_F__e_a_t.toXML.<locals>.<lambda>q   rJ   r   rK   Úfeaturer   )r8   r,   r+   r/   Úsetting)Úvaluer,   )Ú	simpletagr!   ÚnewlinerP   r   rQ   Úbegintagr,   r+   r/   r.   Úendtag)r   Úwriterr2   r>   rO   rX   rY   s          r   ÚtoXMLztable_F__e_a_t.toXMLn   sç   € Ø×Ñ˜¨D¯L©LÐÔ9Ø�‰ÔÜ˜4Ÿ=™=×.Ñ.Ó0Ñ6JÔKò 	‰DˆAˆqØ�O‰OØØØ—g‘gØ—g‘gØ&'§i¢i˜Ÿš°Qð ô ð �N‰NÔÜ˜qŸz™z×/Ñ/Ó1Ó2ò !‘��1Ø× Ñ  °!¸1Ð Ô=Ø—‘Õ ð!ð �M‰M˜)Ô$Ø�N‰NÕñ	r   c           	      óN  — |dk(  rt        t        |d   «      «      | _        y |dk(  rþ|d   }t        «       }t	        t        |d   «      «      |_        t	        t        |d   «      «      |_        t	        t        |j                  dd«      «      «      |_        t        | j                  «      |_        || j                  |<   i |_        |D ]X  }t        |t        «      sŒ|\  }}	}
|dk(  sŒ t	        t        |	d   «      «      |j                  t	        t        |	d	   «      «      <   ŒZ y y )
Nr!   r]   r8   r+   r,   r/   Ú0r^   r_   )r    r   r!   r*   r%   r+   r,   Úgetr/   r(   r   r0   r.   Ú
isinstanceÚtuple)r   ÚnameÚattrsÚcontentr2   r8   r?   Úelementr   ÚaÚcs              r   ÚfromXMLztable_F__e_a_t.fromXML€   s  € Ø�9ÒÜ ¤¨%°	Ñ*:Ó!;Ó<ˆD�LØ�YÒØ˜‘,ˆCÜ“9ˆDÜœX e¨G¡nÓ5Ó6ˆDŒJÜœX e¨G¡nÓ5Ó6ˆDŒJÜœx¨¯	©	°)¸SÓ(AÓBÓCˆDŒLÜ˜TŸ]™]Ó+ˆDŒJØ!%ˆD�M‰M˜#ÑØˆDŒMØ"ò Y�Ü! '¬5Ô1ØØ#‘	��Q˜Ø˜)Ó#Ü?BÄ8ÈAÈgÉJÓCWÓ?X�D—M‘M¤#¤h¨q°©zÓ&:Ó";Ò<ñYð r   r   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   rB   rT   re   rq   © r   r   r
   r
      s$   „ ñ
óò)'òV"QòHó$Yr   r
   c                   ó   — e Zd Zy)r*   N)rr   rs   rt   rv   r   r   r*   r*   ”   s   „ Ør   r*   )ÚfontTools.miscr   ÚfontTools.misc.fixedToolsr   ÚfontTools.misc.textToolsr   Ú r   r   r"   r   r
   Úobjectr*   rv   r   r   ú<module>r}      sA   ðÝ "Ý 7Ý -Ý Ý Û ð€ôCY�\×.Ñ.ô CYôL	ˆfõ 	r   