§
    ¢”j›  ã                  ó  — d Z ddlmZ ddlZddlZej        Z G d„ de¦  «        Zd„ Z	d„ Z
d„ Zd d
„Zd„ Zd„ Zd„ Zd!d"d„Zd!d#d„Zd„ Zd„ Zd$d„Zd%d„Zedk    r,ddlZddlZ ej         ej        ¦   «         j        ¦  «         dS dS )&z6fontTools.misc.textTools.py -- miscellaneous routines.é    )ÚannotationsNc                  óB   — e Zd Zed„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )ÚTagc                óZ   — t          | t          ¦  «        r|                      d¦  «        } | S ©Nzlatin-1)Ú
isinstanceÚbytesÚdecode)Úblobs    úg/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/fontTools/misc/textTools.pyÚ	transcodezTag.transcode   s*   € å�d�EÑ"Ô"ð 	*Ø—;’;˜yÑ)Ô)ˆDØˆó    c                ó^   — t                                | |                      |¦  «        ¦  «        S ©N)ÚstrÚ__new__r   )ÚselfÚcontents     r   r   zTag.__new__   s"   € Ý�{Š{˜4 §¢°Ñ!8Ô!8Ñ9Ô9Ð9r   c                ó.   — |                       |¦  «         S r   )Ú__eq__©r   Úothers     r   Ú__ne__z
Tag.__ne__   s   € Ø—;’;˜uÑ%Ô%Ð%Ð%r   c                ó^   — t                                | |                      |¦  «        ¦  «        S r   )r   r   r   r   s     r   r   z
Tag.__eq__   s"   € Ý�zŠz˜$ §¢¨uÑ 5Ô 5Ñ6Ô6Ð6r   c                ó6   — t                                | ¦  «        S r   )r   Ú__hash__©r   s    r   r   zTag.__hash__   s   € Ý�|Š|˜DÑ!Ô!Ð!r   c                ó,   — |                       d¦  «        S r   )Úencoder   s    r   ÚtobyteszTag.tobytes    s   € Ø�{Š{˜9Ñ%Ô%Ð%r   N)
Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   r   r   r   r   r    © r   r   r   r      sx   € € € € € Øðð ñ „\ðð
:ð :ð :ð&ð &ð &ð7ð 7ð 7ð"ð "ð "ð&ð &ð &ð &ð &r   r   c                óN   — t          t          d„ | D ¦   «         ¦  «        ¦  «        S )z-Convert a list of hex strings to binary data.c              3  óD   K  — | ]}t          |t          ¦  «        ¯|V — Œd S r   )r   r   )Ú.0Úchunks     r   ú	<genexpr>zreadHex.<locals>.<genexpr>&   s1   è è € ÐQÐQ e½*ÀUÍCÑ:PÔ:PÐQ˜EÐQÐQÐQÐQÐQÐQr   )ÚdeHexStrÚstrjoin)r   s    r   ÚreadHexr-   $   s'   € å•GÐQÐQ¨wÐQÑQÔQÑQÔQÑRÔRÐRr   c                óL  — t          |                      ¦   «         ¦  «        } t          | ¦  «        dz  r| dz   } g }t          dt          | ¦  «        d¦  «        D ]=}|                     t          t          | ||dz   …         d¦  «        ¦  «        ¦  «         Œ>t          |¦  «        S )z$Convert a hex string to binary data.é   Ú0r   é   )r,   ÚsplitÚlenÚrangeÚappendÚbytechrÚintÚ	bytesjoin)ÚhexdataÚdataÚis      r   r+   r+   )   s™   € å�g—m’m‘o”oÑ&Ô&€GÝ
ˆ7�|„|�aÑð  Ø˜C‘-ˆØ€DÝ�1•c˜'‘l”l AÑ&Ô&ð :ð :ˆØ�Š•G�C ¨¨A°©E¨	Ô 2°BÑ7Ô7Ñ8Ô8Ñ9Ô9Ð9Ð9Ý�T‰?Œ?Ðr   c                ó„   — t           j        }d}| D ].}t          |¦  «        }|||dz	  dz           z   ||dz           z   }Œ/|S )z$Convert binary data to a hex string.Ú é   é   )ÚstringÚ	hexdigitsÚbyteord)r:   ÚhÚrÚcr;   s        r   ÚhexStrrF   4   sT   € åÔ€AØ
€AØð /ð /ˆÝ�A‰JŒJˆØ��1˜‘6˜S‘.Ô!Ñ! A a¨#¡g¤JÑ.ˆˆØ€Hr   é    c                ó2  — g }d}t          |¦  «        D ]6}| dz  rd|z   }nd|z   }| dz	  } |dz   dz  s|                     |¦  «         d}Œ7|r|                     |¦  «         |                     ¦   «          | dv s
J d¦   «         ‚d                     |¦  «        S )	Nr=   é   Ú1r0   é   )r   éÿÿÿÿz$number doesn't fit in number of bitsú )r4   r5   ÚreverseÚjoin)ÚlÚbitsÚitemsÚbinaryr;   s        r   Ú
num2binaryrT   >   s½   € Ø€EØ€FÝ�4‰[Œ[ð ð ˆØˆs‰7ð 	"Ø˜6‘\ˆFˆFà˜6‘\ˆFØ�‰FˆØ�Q‘˜!‘ð 	Ø�LŠL˜Ñ Ô Ð ØˆFøØð Ø�Š�VÑÔÐØ	‡M‚M�O„O€OØ�ˆ<ˆ<ˆ<Ð?‰<Œ<ˆ<Ø�8Š8�E‰?Œ?Ðr   c                óv   — t          |                      ¦   «         ¦  «        } d}| D ]}|dz  }|dk    r|dz  }Œ|S )Nr   rI   r0   )r,   r2   )ÚbinrP   Údigits      r   Ú
binary2numrX   Q   sL   € Ý
�#—)’)‘+”+Ñ
Ô
€CØ	€AØð ð ˆØ�‰FˆØ�CŠ<ˆ<Ø�C‘ˆAøØ€Hr   c                óf   — 	 t          | d„ ¬¦  «        S # t          $ r t          | ¦  «        cY S w xY w)zjReturn a sorted copy of a list. If there are only strings
    in the list, it will not consider case.
    c                ó.   — |                       ¦   «         | fS r   )Úlower)Úas    r   ú<lambda>zcaselessSort.<locals>.<lambda>a   s   € ¨A¯GªG©I¬I°q¨>€ r   )Úkey)ÚsortedÚ	TypeError)Úalists    r   ÚcaselessSortrb   [   sK   € ð
Ý�eÐ!9Ð!9Ð:Ñ:Ô:Ð:øÝð ð ð Ý�e‰}Œ}ÐÐÐðøøøs   ‚ ”0¯0c                ón   — t          | ¦  «        } |dk    rt          | ¦  «        |z  }|r| d||z
  z  z  } | S )zýPad 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
    rI   ó    )r    r3   )r:   ÚsizeÚ	remainders      r   Úpadrg   f   sI   € õ �4‰=Œ=€DØˆa‚x€xÝ˜‘I”I Ñ$ˆ	Øð 	/Ø�E˜T IÑ-Ñ.Ñ.ˆDØ€Kr   ÚasciiÚstrictÚsústr | bytesÚencodingr   ÚerrorsÚreturnc                ó\   — t          | t          ¦  «        s|                      ||¦  «        S | S r   )r   r   r
   ©rj   rl   rm   s      r   Útostrrq   {   s-   € Ý�a�ÑÔð Ø�xŠx˜ &Ñ)Ô)Ð)àˆr   r	   c                óv   — t          | t          ¦  «        r|                      ||¦  «        S t          | ¦  «        S r   )r   r   r   r	   rp   s      r   r    r    ‚   s3   € Ý�!•SÑÔð Ø�xŠx˜ &Ñ)Ô)Ð)å�Q‰xŒxˆr   c                ó"   — t          | g¦  «        S r   )r	   )Úns    r   r6   r6   ‰   s   € Ý�!�‰:Œ:Ðr   c                óN   — t          | t          ¦  «        r| nt          | ¦  «        S r   )r   r7   Úord)rE   s    r   rB   rB   �   s!   € Ý˜1�cÑ"Ô"Ð.ˆ1ˆ1­¨A©¬Ð.r   r=   c                óF   — t          |¦  «                             | ¦  «        S r   )rq   rO   ©ÚiterableÚjoiners     r   r,   r,   ‘   s   € Ý�‰=Œ=×Ò˜hÑ'Ô'Ð'r   r   c                óZ   — t          |¦  «                             d„ | D ¦   «         ¦  «        S )Nc              3  ó4   K  — | ]}t          |¦  «        V — Œd S r   )r    )r(   Úitems     r   r*   zbytesjoin.<locals>.<genexpr>–   s(   è è € ÐCÐC°$¥¨¡¤ÐCÐCÐCÐCÐCÐCr   )r    rO   rx   s     r   r8   r8   •   s+   € Ý�6‰?Œ?×ÒÐCÐC¸(ÐCÑCÔCÑCÔCÐCr   Ú__main__)rG   )rh   ri   )rj   rk   rl   r   rm   r   rn   r   )rj   rk   rl   r   rm   r   rn   r	   )r=   )r   )Ú__doc__Ú
__future__r   Úastr@   Úliteral_evalÚsafeEvalr   r   r-   r+   rF   rT   rX   rb   rg   rq   r    r6   rB   r,   r8   r!   ÚdoctestÚsysÚexitÚtestmodÚfailedr%   r   r   ú<module>r‰      s¢  ðØ <Ð <à "Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø €€€ð Ô€ð&ð &ð &ð &ð &ˆ#ñ &ô &ð &ð.Sð Sð Sð
ð ð ðð ð ðð ð ð ð&ð ð ðð ð ðð ð ð*ð ð ð ð ðð ð ð ð ðð ð ð/ð /ð /ð(ð (ð (ð (ðDð Dð Dð Dð ˆzÒÐØÐÐÐÐÐÐÐà€C„Hˆ_ˆWŒ_ÑÔÔ%Ñ&Ô&Ð&Ð&Ð&ð Ðr   