+
    f7i  c                  s:   R t ^ RIHt ^ RIt^ RIt]P
                  t ! R R]4      tR t	R t
R tRR ltR	 tR
 tR tRR R lltRR R lltR tR tRR ltRR lt]R8X  d6   ^ RIt^ RIt]P2                  ! ]P4                  ! 4       P6                  4       R# R# )z6fontTools.misc.textTools.py -- miscellaneous routines.)annotationsNc                  sD    ] tR t^t]R 4       tR tR tR tR t	R t
RtR# )	Tagc                	sT    \        V \        4      '       d   V P                  R 4      p V # zlatin-1)
isinstancebytesdecode)Zblob   &?/usr/lib64/python3.14/site-packages/fontTools/misc/textTools.py	transcodeZTag.transcode   s"    dE"";;y)D    c                	J    \         P                  W P                  V4      4      # N)str__new__r   )selfcontent   &&r   r   ZTag.__new__   s    {{4!899r	   c                	s.    V P                  V4      '       * # r   )__eq__r   Zotherr   r   __ne__Z
Tag.__ne__   s    ;;u%%%r	   c                	r
   r   )r   r   r   r   r   r   r   Z
Tag.__eq__   s    zz$u 566r	   c                	s,    \         P                  V 4      # r   )r   __hash__r   r   r   r   ZTag.__hash__   s    ||D!!r	   c                	s$    V P                  R 4      # r   )encoder   r   r   tobytesZTag.tobytes    s    {{9%%r	    N)__name__Z
__module__Z__qualname__Z__firstlineno__Zstaticmethodr   r   r   r   r   r   Z__static_attributes__r   r	   r   r   r      s-     
:&7"&r	   r   c                s8    \        \        R V  4       4      4      # )z-Convert a list of hex strings to binary data.c              3  sV   "   T F  p\        V\        4      '       g   K  Vx  K!  	  R # 5ir   )r   r   ).0Zchunk   & r   	<genexpr>ZreadHex.<locals>.<genexpr>&   s     Qwe*UC:PEEws   )
))deHexStrstrjoin)r   r   r   readHexr   $   s    GQwQQRRr	   c                s$   \        V P                  4       4      p \        V 4      ^,          '       d
   V R,           p . p\        ^ \        V 4      ^4       F0  pVP	                  \        \        WV^,            ^4      4      4       K2  	  \        V4      # )z$Convert a hex string to binary data.0)r   splitlenrangeappendbytechrint	bytesjoin)Zhexdatadatai   &  r   r   r   )   sq    gmmo&G
7|aC-D1c'lA&GCAE 2B789 'T?r	   c                s    \         P                  pRpV  F?  p\        V4      pW!V^,	          ^,          ,          ,           W^,          ,          ,           pKA  	  V# )z$Convert binary data to a hex string. )stringZ	hexdigitsbyteord)r(   ZhZrcr)   s   &    r   hexStrr/   4   sL    A
AAJ16S.!!A#gJ.  Hr	   c                sj   . pR p\        V4       FY  pV ^,          '       d   RV,           pM	RV,           pV ^,	          p V^,           ^,          '       d   KF  VP                  V4       R pK[  	  V'       d   VP                  V4       VP                  4        V R9   g   Q R4       hRP                  V4      # )r+   Z1r    z$number doesn't fit in number of bitsZ )    i)r#   r$   Zreversejoin)lZbitsZitemsZbinaryr)   s   &&   r   
num2binaryr3   >   s    EF4[s776\F6\FFQ!LL F  V	MMO<???<88E?r	   c                s    \        V P                  4       4      p ^ pV  F  pV^,          pVR8w  g   K  V^,          pK   	  V# )r0   r    )r   r!   )Zbinr2   Zdigitr*   r   
binary2numr4   Q   sA    
#))+
C	AFC<CA  Hr	   c                sX     \        V R R7      #   \         d    \        T 4      u # i ; i)zbReturn a sorted copy of a list. If there are only strings
in the list, it will not consider case.
c                s&    V P                  4       V 3# r   )Zlower)Zar   r   Z<lambda>ZcaselessSort.<locals>.<lambda>a   s    AGGIq>r	   )Zkey)ZsortedZ	TypeError)Zalistr   r   caselessSortr5   [   s.    
e!9:: e}s    ))c                s    \        V 4      p V^8  d1   \        V 4      V,          pV'       d   V RW,
          ,          ,          p V # )zPad byte string 'data' with null bytes until its length is a
multiple of 'size'.

>>> len(pad(b'abcd', 4))
4
>>> len(pad(b'abcde', 2))
6
>>> len(pad(b'abcde', 4))
8
>>> pad(b'abcdef', 4) == b'abcdef\x00\x00'
True
s    )r   r"   )r(   ZsizeZ	remainders   && r   padr6   f   s<     4=DaxI$	ET-..DKr	   c               s(    V ^8  d   QhRRRRRRRR/# )   sstr | bytesencodingr   errorsreturnr   Zformat   "r   __annotate__r?   {   s(      [ C 3 c r	   c                sT    \        V \        4      '       g   V P                  W4      # V # r   )r   r   r   r8   r:   r;      &&&r   tostrrB   {   s#    axx))r	   c               s(    V ^8  d   QhRRRRRRRR/# )r7   r8   r9   r:   r   r;   r<   r   r   r=   r>   r   r?   r?      s)      { c S PU r	   c                sf    \        V \        4      '       d   V P                  W4      # \        V 4      # r   )r   r   r   r   r@   rA   r   r   r      s'    !Sxx))Qxr	   c                s    \        V .4      # r   )r   )Znr   r   r%   r%      s    !:r	   c                sH    \        V \        4      '       d   V # \        V 4      # r   )r   r&   Zord)r.   r   r   r-   r-      s    1c""1.A.r	   c                s6    \        V4      P                  V 4      # r   )rB   r1   ZiterableZjoinerr   r   r   r      s    =h''r	   c                sD    \        V4      P                  R  V  4       4      # )c              3  s8   "   T F  p\        V4      x  K  	  R # 5ir   )r   )r   Zitemr   r   r   Zbytesjoin.<locals>.<genexpr>   s     C($(s   )r   r1   rC   r   r   r'   r'      s    6?C(CCCr	   Z__main__)i    )ZasciiZstrict)r+   )r	   )Z__doc__Z
__future__r    Zastr,   Zliteral_evalZsafeEvalr   r   r   r   r/   r3   r4   r5   r6   rB   r   r%   r-   r   r'   r   ZdoctestZsysZexitZtestmodZfailedr   r	   r   <module>rD      s    < " 
  &# &.S
&*/(D zHHW__%%& r	   