+
    f7i  c                   s   R t ^ RIHtHtHtHt ^ RIt^ RIt^ RIt^ RI	t	^ RI
t
Rt]	P                  ! R4      tRt]P!                  ]
P"                  ! ]! ^ ^	4      R]! ^^ 4      ]! RR4      R4      ]4      t ! R R	]4      tR
 tR tR tR tR# )z*xmlWriter.py -- Simple XML authoring class)byteordstrjointobytestostrNz  zfontTools.ttxZ?i   i   c                   s   a  ] tR t^t o ]RRR3R ltR tR tR tRR lt	R	 t
RR
 ltR tRR ltR tR tR tR tR tR tR tR tR tRtV tR# )	XMLWriterNutf_8
c                s*   VP                  4       P                  R R4      P                  RR4      R8w  d   \        R4      hVR 8X  d   \        P                  p\        VR4      '       g    Wn        \        VR4      V n        RV n	        MRV n        Wn        R	V n	         V P                  P                  R
4       \        V n        V P                  V4      V n        Vf&   V P                  \         P"                  4      V n        MV P                  V4      V n        ^ V n        . V n        ^V n        W0n        ^ V n        V P1                  R4       V P3                  4        R#   \         d*    T P                  P                  R4       \        T n         Li ; i)Z- Z_Zutf8z!Only UTF-8 encoding is supported.writeZwbTNF    z&<?xml version="1.0" encoding="UTF-8"?>)ZlowerreplaceZ	ExceptionsysZstdoutZhasattrfilenameZopenfile_closeStreamr   r   totypeZ	TypeErrorr   indentwhiteosZlinesep
newlinestrindentlevelstack
needindentidlefuncidlecounter	_writerawnewline)selfZ
fileOrPathr   r   encodingr   s   &&&&&&?/usr/lib64/python3.14/site-packages/fontTools/misc/xmlWriter.py__init__ZXMLWriter.__init__   sB    >>##C,44S"=G?@@Jz7++&MZ.DI $D DM"I %D	  IIOOC !DK
  ;;{3"kk"**5DO"kk*5DO
 ?@  	 IIOOBDK	 s   &E 1FFc                s    V # N r      &r   	__enter__ZXMLWriter.__enter__G   s    r	   c                s&    V P                  4        R # r   )close)r   Zexception_typeZexception_valueZ	tracebacks   &&&&r   __exit__ZXMLWriter.__exit__J   s    

r	   c                sb    V P                   '       d   V P                  P                  4        R # R # r   )r   r   r#   r    r!   r   r#   ZXMLWriter.closeM   s!    IIOO r	   c                >    V P                  \        V4      VR7       R# )zWrites text.indentNr   escape)r   stringr'      &&&r   r   ZXMLWriter.writeQ   s    vf~f5r	   c                sD    V P                  RV,           R,           4       R# )zWrites text in a CDATA section.z	<![CDATA[z]]>N)r   r   r*      &&r   
writecdataZXMLWriter.writecdataU   s    {V+e34r	   c                r%   )zWrites 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)r   
escape8bit)r   datar/   r+   r   	write8bitZXMLWriter.write8bitY   s    
 	z$'u5r	   c                s>    V P                  \        V4      RR7       R# )z Writes text without indentation.Fr&   Nr(   r,   r-   r   write_noindentZXMLWriter.write_noindent`   s    vf~e4r	   c                s@   V'       dP   V P                   '       d>   V P                  P                  V P                  V P                  ,          4       ^ V n         V P                  VRR7      pV'       d   VP                  4       pV P                  P                  V4       R# )z Writes bytes, possibly indented.r   )r   N)r   r   r   r   r   r   r/   )r   r1   r'   r/   ss   &&&& r   r   ZXMLWriter._writerawd   se    doooIIOOD,,t/?/??@DOKKwK/	A		r	   c                s    V P                   P                  V P                  4       ^V n        V P                  pV^d,          '       g   V P
                  e   V P                  4        V^,           V n        R#    N)r   r   r   r   r   r   )r   r      & r   r   ZXMLWriter.newlinen   sQ    		(&&S  T]]%>MMO&?r	   c                s   \        V4      pVP                  R 4      pV P                  RV^ ,          ,           4       VR,           F+  pV P                  4        V P                  RV,           4       K-  	  V P                  R4       R# )r   z<!-- :r6   NNz     z -->N)r)   Zsplitr   r   )r   r1   Zlineslines   &&  r   commentZXMLWriter.commentv   se    d|

4 wq)*"IIDLLNNN7T>*  	vr	   c                s`    V P                   ! V/ VB pR V: V: R2pV P                  V4       R# )<z/>N)stringifyattrsr   r   _TAG_argskwargsZattrdatar1      &&*,  r   	simpletagZXMLWriter.simpletag   s-    &&77!8,tr	   c                s    V P                   ! V/ VB pR V: V: R2pV P                  V4       V P                  P                  V4       V P	                  4        R# )r:   >N)r;   r   r   Zappendr'   r<   r@   r   begintagZXMLWriter.begintag   sH    &&77 (+t

% r	   c                s    V P                   '       d   V P                   R,          V8X  g   Q R4       hV P                   R V P                  4        RV,          pV P                  V4       R# )r6   znonmatching endtagz</%s>N)r   dedentr   )r   r=   r1   s   && r   endtagZXMLWriter.endtag   sO    zzzdjjn5K7KK5JJrNtr	   c                s"   ^pV^,          p^p\        ^ \        V4      V4       Fg  p\        WWR,            4      pRpRp\        ^ W44       F  p	Wx,           WiW,            ,           pRpK  	  V P                  V4       V P	                  4        Ki  	  R# )i   r    N)rangelenhexStrr   r   )
r   r1   Z
linelengthZhexlinelengthZ	chunksizeiZhexliner8   ZwhiteZjs
   &&        r   dumphexZXMLWriter.dumphex   s    
"Q	q#d)Z0ATan56GDE1m7|g!-&@@ 8 NN4 LLN 1r	   c                s6    V P                   ^,           V n         R# r5   r   r    r!   r   r'   ZXMLWriter.indent   s    ++a/r	   c                s\    V P                   ^ 8  g   Q hV P                   ^,
          V n         R# )i    NrM   r    r!   r   rE   ZXMLWriter.dedent   s)    !###++a/r	   c                sH   V'       d%   V'       d   Q h\        VP                  4       4      pM&V'       d   \        V4      ^8X  g   Q hV^ ,          pMR# RpV FG  w  rV\        V\        \
        34      '       g   \        V4      pVRV: R\        V4      : R2,           pKI  	  V# )r6   r   rG   z="")ZsortedZitemsrI   Z
isinstanceZbytesZstr
escapeattr)r   r>   r?   Z
attributesr1   ZattrZvalues   &*,    r   r;   ZXMLWriter.stringifyattrs   s    O8/Jt9>!>aJ%KDeeS\22E
j.?@@D & r	   )r   r   r   r   r   r   r   r   r   r   r   )T)F)TF)Z__name__Z
__module__Z__qualname__Z__firstlineno__INDENTr   r"   r$   r#   r   r.   r2   r3   r   r   r9   rA   rC   rF   rL   r'   rE   r;   Z__static_attributes__Z__classdictcell__)Z__classdict__s   @r   r   r      ss      +Z6565+
00 r	   r   c                s   \        V R4      p V P                  RR4      p V P                  RR4      p V P                  RR4      p V P                  RR	4      p V P                  \        4      pW8w  dQ   ^
p\	        V 4      p\        V 4      V8  d   \	        V R
V 4      ^R R,           p\        P                  RV\        4       V# )zQEscape characters not allowed in `XML 1.0 <https://www.w3.org/TR/xml/#NT-Char>`_.r   Z&z&amp;r:   z&lt;rB   z&gt;Zz&#13;Nz...zEIllegal XML character(s) found; replacing offending string %r with %rrD   )	r   r
   Z	translateILLEGAL_XML_CHARSreprrI   TTX_LOGZwarningREPLACEMENT)r1   ZnewDataZmaxLenZpreviews   &   r   r)   r)      s    wD<<W%D<<V$D<<V$D<<g&Dnn./Gt*t9v4=)!B/%7GV	

 Nr	   c                 s@    \        V 4      p V P                  R R4      p V # )rN   z&quot;)r)   r
   )r1   r!   r   rO   rO      s     $<D<<X&DKr	   c                sN    R p\        \        WP                  R4      4      4      # )zInput is Unicode string.c                 s    \        V 4      p^ Tu;8:  d   ^8:  d   M M	V R9  d   V # R\        V4      ,           R,           # )i    z<&>z&#Z;)ZordrR   )cZnr7   r   
escapecharZescape8bit.<locals>.escapechar   s4    F>c>aunH$q'>C''r	   zlatin-1)r   ZmapZdecode)r1   rV   r7   r   r0   r0      s"    ( 3z;;y#9:;;r	   c                 s    \         P                  pR pV  F?  p\        V4      pW!V^,	          ^,          ,          ,           W^,          ,          ,           pKA  	  V# )r   )r*   Z	hexdigitsr    )r4   ZhZrrU   rK   s   &    r   rJ   rJ      sL    A
AAJ16S.!!A#gJ.  Hr	   )i   i   )i  i  )Z__doc__ZfontTools.misc.textToolsr    r   r   r   r   r   r*   ZloggingZ	itertoolsrP   Z	getLoggerrS   rT   ZdictZfromkeysZchainrH   rQ   Zobjectr   r)   rO   r0   rJ   r   r	   r   <module>rW      s    0 E E 
 	   	


O
,MMOOdDdDff 	 \ \~,
<r	   