ó
    oñ:i­  ã                   ó  • S r SSKJrJrJrJr  SSKrSSKrSSKrSSK	r	SSK
r
Sr\	R                  " S5      rSr\R!                  \
R"                  " \" SS5      S\" S	S
5      \" SS5      S5      \5      r " S S\5      rS rS rS rS rg)z*xmlWriter.py -- Simple XML authoring classé    )ÚbyteordÚstrjoinÚtobytesÚtostrNz  zfontTools.ttxÚ?é	   )é   é   é   é    i Ø  i à  )iþÿ  iÿÿ  c                   ó˜   • \ rS rSr\SSS4S jrS rS rS rSS	 jr	S
 r
SS jrS rSS jrS rS rS rS rS rS rS rS rS rSrg)Ú	XMLWriteré   NÚutf_8Ú
c                 ó  • UR                  5       R                  SS5      R                  SS5      S:w  a  [        S5      eUS:X  a  [        R                  n[        US5      (       d  Xl        [        US5      U l        SU l	        OS U l        Xl        S	U l	         U R                  R                  S
5        [        U l        U R                  U5      U l        Uc%  U R                  [         R"                  5      U l        OU R                  U5      U l        SU l        / U l        SU l        X0l        SU l        U R1                  S5        U R3                  5         g ! [         a)    U R                  R                  S5        [        U l         NÊf = f)NÚ-Ú Ú_Úutf8z!Only UTF-8 encoding is supported.ÚwriteÚwbTFó    r   é   z&<?xml version="1.0" encoding="UTF-8"?>)ÚlowerÚreplaceÚ	ExceptionÚsysÚstdoutÚhasattrÚfilenameÚopenÚfileÚ_closeStreamr   r   ÚtotypeÚ	TypeErrorr   ÚindentwhiteÚosÚlinesepÚ
newlinestrÚindentlevelÚstackÚ
needindentÚidlefuncÚidlecounterÚ	_writerawÚnewline)ÚselfÚ
fileOrPathr'   r.   Úencodingr*   s         Ú[/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/fontTools/misc/xmlWriter.pyÚ__init__ÚXMLWriter.__init__   sB  € ð �>‰>Ó×#Ñ# C¨Ó,×4Ñ4°S¸"Ó=ÀÓGÜÐ?Ó@Ð@Ø˜ÓÜŸ™ˆJÜ�z 7×+Ñ+Ø&ŒMÜ˜Z¨Ó.ˆDŒIØ $ˆDÕà ˆDŒMà"ŒIØ %ˆDÔð	 ð �I‰I�O‰O˜CÔ Ü!ˆDŒKð
  Ÿ;™; {Ó3ˆÔØÑØ"Ÿk™k¬"¯*©*Ó5ˆD�Oà"Ÿk™k¨*Ó5ˆDŒOØˆÔØˆŒ
ØˆŒØ ŒØˆÔØ�‰Ð?Ô@Ø�‰�øô ó 	 à�I‰I�O‰O˜BÔÜˆDŽKð	 ús   Â&E Å0FÆFc                 ó   • U $ ©N© ©r2   s    r5   Ú	__enter__ÚXMLWriter.__enter__G   s   € Øˆr   c                 ó$   • U R                  5         g r9   )Úclose)r2   Úexception_typeÚexception_valueÚ	tracebacks       r5   Ú__exit__ÚXMLWriter.__exit__J   s   € Ø�
‰
�r   c                 ó\   • U R                   (       a  U R                  R                  5         g g r9   )r$   r#   r?   r;   s    r5   r?   ÚXMLWriter.closeM   s   € Ø××Ø�I‰I�O‰OÕð r   c                 ó6   • U R                  [        U5      US9  g)zWrites text.©ÚindentN©r0   Úescape)r2   ÚstringrI   s      r5   r   ÚXMLWriter.writeQ   s   € à�‰”v˜f“~¨fˆÒ5r   c                 ó2   • U R                  SU-   S-   5        g)zWrites text in a CDATA section.z	<![CDATA[z]]>N)r0   ©r2   rL   s     r5   Ú
writecdataÚXMLWriter.writecdataU   s   € à�‰�{ VÑ+¨eÑ3Õ4r   c                 ó6   • U R                  [        U5      US9  g)z Writes a bytes() sequence into the XML, escaping
non-ASCII bytes.  When this is read in xmlReader,
the original bytes can be recovered by encoding to
'latin-1'.)ÚstripN)r0   Ú
escape8bit)r2   ÚdatarS   s      r5   Ú	write8bitÚXMLWriter.write8bitY   s   € ð
 	�‰”z $Ó'¨uˆÒ5r   c                 ó6   • U R                  [        U5      SS9  g)z Writes text without indentation.FrH   NrJ   rO   s     r5   Úwrite_noindentÚXMLWriter.write_noindent`   s   € à�‰”v˜f“~¨eˆÒ4r   c                 ó*  • U(       aJ  U R                   (       a9  U R                  R                  U R                  U R                  -  5        SU l         U R                  USS9nU(       a  UR                  5       nU R                  R                  U5        g)z Writes bytes, possibly indented.r   r   )r4   N)r-   r#   r   r+   r'   r%   rS   )r2   rU   rI   rS   Úss        r5   r0   ÚXMLWriter._writerawd   sc   € æ�d—o—oØ�I‰I�O‰O˜D×,Ñ,¨t×/?Ñ/?Ñ?Ô@ØˆDŒOØ�K‰K˜ wˆKÐ/ˆÞØ—‘“	ˆAØ�	‰	�‰˜Õr   c                 óÖ   • U R                   R                  U R                  5        SU l        U R                  nUS-  (       d  U R
                  b  U R                  5         US-   U l        g )Nr   éd   )r#   r   r*   r-   r/   r.   )r2   r/   s     r5   r1   ÚXMLWriter.newlinen   sN   € Ø�	‰	�‰˜Ÿ™Ô(ØˆŒØ×&Ñ&ˆØ˜S×  T§]¡]Ñ%>Ø�M‰MŒOØ&¨™?ˆÕr   c                 óì   • [        U5      nUR                  S5      nU R                  SUS   -   5        USS   H'  nU R                  5         U R                  SU-   5        M)     U R                  S5        g )Nr   z<!-- r   r   z     z -->)rK   Úsplitr0   r1   )r2   rU   ÚlinesÚlines       r5   ÚcommentÚXMLWriter.commentv   se   € Ü�d‹|ˆØ—
‘
˜4Ó ˆØ�‰�w  q¡Ñ)Ô*Ø˜!˜"“IˆDØ�L‰LŒNØ�N‰N˜7 T™>Ö*ñ ð 	�‰�vÕr   c                 ó^   • U R                   " U0 UD6nSU< U< S3nU R                  U5        g )NÚ<z/>)Ústringifyattrsr0   ©r2   Ú_TAG_ÚargsÚkwargsÚattrdatarU   s         r5   Ú	simpletagÚXMLWriter.simpletag   s-   € Ø×&Ò&¨Ð7°Ñ7‰Ú!£8Ð,ˆØ�‰�tÕr   c                 ó´   • U R                   " U0 UD6nSU< U< S3nU R                  U5        U R                  R                  U5        U R	                  5         g )Nrh   Ú>)ri   r0   r,   ÚappendrI   rj   s         r5   ÚbegintagÚXMLWriter.begintag„   sH   € Ø×&Ò&¨Ð7°Ñ7‰Ú £(Ð+ˆØ�‰�tÔØ�
‰
×Ñ˜%Ô Ø�‰�r   c                 óÀ   • U R                   (       a  U R                   S   U:X  d   S5       eU R                   S	 U R                  5         SU-  nU R                  U5        g )Néÿÿÿÿznonmatching endtagz</%s>)r,   Údedentr0   )r2   rk   rU   s      r5   ÚendtagÚXMLWriter.endtag‹   sM   € Ø�z�z˜dŸj™j¨™n°Ó5ÐKÐ7KÓKÐ5Ø�J‰J�rˆNØ�‰ŒØ˜‰ˆØ�‰�tÕr   c                 óø   • SnUS-  nSn[        S[        U5      U5       HW  n[        XXR-    5      nSnSn[        SX45       H  n	Xx-   XiX”-    -   nSnM     U R                  U5        U R	                  5         MY     g )Né   é   é   r   r   Ú )ÚrangeÚlenÚhexStrr0   r1   )
r2   rU   Ú
linelengthÚhexlinelengthÚ	chunksizeÚiÚhexlinerd   ÚwhiteÚjs
             r5   ÚdumphexÚXMLWriter.dumphex’   s‡   € Øˆ
Ø" Q™ˆØˆ	Ü�qœ#˜d›) ZÖ0ˆAÜ˜T a¡nÐ5Ó6ˆGØˆDØˆEÜ˜1˜mÖ7�Ø‘| g°!±-Ð&@Ñ@�Ø’ñ 8ð �N‰N˜4Ô Ø�L‰LŽNò 1r   c                 ó,   • U R                   S-   U l         g )Nr   ©r+   r;   s    r5   rI   ÚXMLWriter.indent    s   € Ø×+Ñ+¨aÑ/ˆÕr   c                 óP   • U R                   S:”  d   eU R                   S-
  U l         g )Nr   r   r�   r;   s    r5   rx   ÚXMLWriter.dedent£   s)   € Ø×Ñ !Ó#Ð#Ð#Ø×+Ñ+¨aÑ/ˆÕr   c                 ó,  • U(       a#  U(       a   e[        UR                  5       5      nOU(       a  [        U5      S:X  d   eUS   nOgSnU HB  u  pV[        U[        [
        45      (       d  [        U5      nUSU< S[        U5      < S3-   nMD     U$ )Nr   r   r   r   z="Ú")ÚsortedÚitemsr�   Ú
isinstanceÚbytesÚstrÚ
escapeattr)r2   rl   rm   Ú
attributesrU   ÚattrÚvalues          r5   ri   ÚXMLWriter.stringifyattrs§   s�   € ÞÞˆO�8Ü §¡£Ó/‰JÞÜ�t“9 “>Ð!�>Ø˜a™‰JàØˆÛ%‰KˆDÜ˜e¤e¬S \×2Ñ2Ü˜E›
�Ù«¬j¸Ö.?Ð@Ñ@ŠDñ &ð ˆr   )r$   r#   r!   r/   r.   r+   r'   r-   r*   r,   r%   )T)F)TF)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚINDENTr6   r<   rC   r?   r   rP   rV   rY   r0   r1   re   ro   rt   ry   rŠ   rI   rx   ri   Ú__static_attributes__r:   r   r5   r   r      sk   † ð ØØØô+òZòòô6ò5ô6ò5ôò+òòò
òòò0ò0õr   r   c                 óx  • [        U S5      n U R                  SS5      n U R                  SS5      n U R                  SS5      n U R                  SS	5      n U R                  [        5      nX:w  aK  S
n[	        U 5      n[        U 5      U:”  a  [	        U SU 5      SS S-   n[        R                  SU[        5        U$ )zQEscape characters not allowed in `XML 1.0 <https://www.w3.org/TR/xml/#NT-Char>`_.r   Ú&z&amp;rh   z&lt;rr   z&gt;Úz&#13;é
   Nr   rw   z...zEIllegal XML character(s) found; replacing offending string %r with %r)	r   r   Ú	translateÚILLEGAL_XML_CHARSÚreprr�   ÚTTX_LOGÚwarningÚREPLACEMENT)rU   ÚnewDataÚmaxLenÚpreviews       r5   rK   rK   ¸   s´   € ä��wÓ€DØ�<‰<˜˜WÓ%€DØ�<‰<˜˜VÓ$€DØ�<‰<˜˜VÓ$€DØ�<‰<˜˜gÓ&€Dà�n‰nÔ.Ó/€GØƒØˆÜ�t“*ˆÜˆt‹9�vÓÜ˜4  ˜=Ó)¨!¨BÐ/°%Ñ7ˆGÜ�‰ØVØÜô	
ð
 €Nr   c                 ó@   • [        U 5      n U R                  SS5      n U $ )Nr’   z&quot;)rK   r   )rU   s    r5   r˜   r˜   Î   s    € Ü�$‹<€DØ�<‰<˜˜XÓ&€DØ€Kr   c                 óN   • S n[        [        XR                  S5      5      5      $ )zInput is Unicode string.c                 ój   • [        U 5      nSUs=::  a  S::  a  O  OU S;  a  U $ S[        U5      -   S-   $ )Nr   é   z<&>z&#Ú;)Úordr©   )ÚcÚns     r5   Ú
escapecharÚescape8bit.<locals>.escapechar×   s4   € Ü�‹FˆØ��>�cŽ>˜a u›nØˆHàœ$˜q›'‘> CÑ'Ð'r   zlatin-1)r   ÚmapÚdecode)rU   r¸   s     r5   rT   rT   Ô   s"   € ò(ô ”3�z§;¡;¨yÓ#9Ó:Ó;Ð;r   c                 ó|   • [         R                  nSnU  H#  n[        U5      nX!US-	  S-     -   XS-     -   nM%     U$ )Nr   é   é   )rL   Ú	hexdigitsr   )r\   ÚhÚrr¶   r†   s        r5   r‚   r‚   á   sL   € Ü×Ñ€AØ
€AÛˆÜ�A‹JˆØ�1˜‘6˜S‘.Ñ!Ñ! A¨#¡g¡JÑ.Šñ ð €Hr   )Ú__doc__ÚfontTools.misc.textToolsr   r   r   r   r   r(   rL   ÚloggingÚ	itertoolsr¡   Ú	getLoggerrª   r¬   ÚdictÚfromkeysÚchainr€   r¨   Úobjectr   rK   r˜   rT   r‚   r:   r   r5   Ú<module>rË      sž   ðÙ 0ç EÓ EÛ 
Û 	Û Û Û à	€Ø
×
Ò
˜OÓ
,€Ø€Ø—M‘MØ‡O‚OÙˆd�DÓØÙˆd�DÓÙˆf�fÓØóð ó	Ð ô\�ô \ò~ò,ò
<ór   