+
    VBi'!                     8   ^ RI t ^ RIt ! R R4      t ! R R4      t ! R R4      t ! R R	]4      tR
 t ! R R]4      t	R t
R tR tRRRRRRRRRRRRRR/P                  tR$]! ]! ]]! ^ 4      4      4      ,           tR tR t]! 4       tR  tR! tR%R" ltR# tR# )&    Nc                   H   a  ] tR t^
t o RtR tR tR tR tR t	R t
RtV tR	# )
UnicodeLiteralBuilderzAssemble a unicode string.
    c                    . V n         R # Ncharsselfs   &C/usr/lib/python3.14/site-packages/Cython/Compiler/StringEncoding.py__init__UnicodeLiteralBuilder.__init__   s	    
    c                    \        V\        4      '       g   Q R \        V4       24       hV P                  P	                  V4       R# )zExpected str, got N)
isinstancestrtyper   appendr
   
characterss   &&r   r   UnicodeLiteralBuilder.append   s:    *c**S.@jAQ@R,SS*

*%r   c                N    V P                   P                  \        V4      4       R # r   )r   r   chrr
   char_numbers   &&r   append_charval$UnicodeLiteralBuilder.append_charval   s    

3{+-r   c                (    V P                  V4       R # r   )r   r
   r   escape_strings   &&&r   append_uescape$UnicodeLiteralBuilder.append_uescape   s    K(r   c                J    \        R P                  V P                  4      4      # ) )EncodedStringjoinr   r	   s   &r   	getstringUnicodeLiteralBuilder.getstring   s    RWWTZZ011r   c                &    R V P                  4       3# r   r&   r	   s   &r   
getstrings UnicodeLiteralBuilder.getstrings   s    dnn&''r   r   N)__name__
__module____qualname____firstlineno____doc__r   r   r   r    r&   r*   __static_attributes____classdictcell____classdict__s   @r   r   r   
   s-     &.)2( (r   r   c                   N   a  ] tR t^!t o RtR tR tR tR tR t	R t
R tR	tV tR
# )BytesLiteralBuilderz*Assemble a byte string or char value.
    c                     . V n         Wn        R # r   r   target_encodingr
   r9   s   &&r   r   BytesLiteralBuilder.__init__$   s    
.r   c                    \        V\        4      '       d   VP                  V P                  4      p\        V\        4      '       g   Q \        \        V4      4      4       hV P                  P                  V4       R # r   )r   r   encoder9   bytesr   r   r   r   s   &&r   r   BytesLiteralBuilder.append(   sY    j#&&#**4+?+?@J*e,,Cc$z2B.CC,

*%r   c                l    V P                   P                  \        V4      P                  R 4      4       R# )
ISO-8859-1N)r   r   r   r=   r   s   &&r   r   "BytesLiteralBuilder.append_charval.   s$    

3{+22<@Br   c                (    V P                  V4       R # r   )r   r   s   &&&r   r    "BytesLiteralBuilder.append_uescape1   s    M"r   c                `    \        R P                  V P                  4      V P                  4      # )r   )bytes_literalr%   r   r9   r	   s   &r   r&   BytesLiteralBuilder.getstring4   s"    SXXdjj143G3GHHr   c                "    V P                  4       # r   r)   r	   s   &r   getcharBytesLiteralBuilder.getchar8   s    ~~r   c                &    V P                  4       R 3# r   r)   r	   s   &r   r*   BytesLiteralBuilder.getstrings<   s     $''r   r8   N)r,   r-   r.   r/   r0   r   r   r   r    r&   rI   r*   r1   r2   r3   s   @r   r6   r6   !   s4     /&C#I ( (r   r6   c                   B   a  ] tR t^@t o RtR tR tR tR tR t	Rt
V tR# )	StrLiteralBuilderzDAssemble both a bytes and a unicode representation of a string.
    c                D    \        V4      V n        \        4       V n        R # r   )r6   _bytesr   _unicoder:   s   &&r   r   StrLiteralBuilder.__init__C   s    +O<-/r   c                r    V P                   P                  V4       V P                  P                  V4       R # r   )rP   r   rQ   r   s   &&r   r   StrLiteralBuilder.appendG   s&    :&Z(r   c                r    V P                   P                  V4       V P                  P                  V4       R # r   )rP   r   rQ   r   s   &&r   r    StrLiteralBuilder.append_charvalK   s&    "";/$$[1r   c                r    V P                   P                  V4       V P                  P                  V4       R # r   )rP   r   rQ   r   r   s   &&&r   r     StrLiteralBuilder.append_uescapeO   s&    =)$$[1r   c                j    V P                   P                  4       V P                  P                  4       3# r   )rP   r&   rQ   r	   s   &r   r*   StrLiteralBuilder.getstringsS   s'    %%')@)@)BCCr   )rP   rQ   N)r,   r-   r.   r/   r0   r   r   r   r    r*   r1   r2   r3   s   @r   rN   rN   @   s*     0)22D Dr   rN   c                   R   a  ] tR t^Wt o RtR tR tR t]R 4       t	R t
R tRtV tR# )	r$   Nc                    V # r    r
   memos   &&r   __deepcopy__EncodedString.__deepcopy__]       r   c                X    V P                   f   Q hV P                  V P                   4      # r   encodingr=   r	   s   &r   
byteencodeEncodedString.byteencode`   s%    }}((({{4==))r   c                D    V P                   e   Q hV P                  R4      # )NzUTF-8rd   r	   s   &r   
utf8encodeEncodedString.utf8encoded   s!    }}$$${{7##r   c                    V P                   R J # r   )re   r	   s   &r   
is_unicodeEncodedString.is_unicodeh   s    }}$$r   c                6    \        V P                  4       R 4      # )utf8)rF   ri   r	   s   &r   as_utf8_stringEncodedString.as_utf8_stringl   s    T__.77r   c                    V P                   f!   V P                  4       pVP	                  4       # \        V P                  4       V P                   4      pVP	                  4       # r   )re   rp   rF   rf   as_c_string_literal)r
   ss   & r   rs   !EncodedString.as_c_string_literalo   sS    == ##%A $$&& doo/?A$$&&r   r]   )r,   r-   r.   r/   re   r`   rf   ri   propertyrl   rp   rs   r1   r2   r3   s   @r   r$   r$   W   s>      H*$ % %8' 'r   r$   c                Z    \        \        V 4       F  pRV8:  g   K  VR8:  g   K   R# 	  R# )z
Check if the unicode string contains lone surrogate code points
on a CPython platform with wide (UCS-4) or narrow (UTF-16)
Unicode, i.e. characters that would be spelled as two
separate code units on a narrow platform, but that do not form a pair.
   i  TF)mapord)ustringcs   & r   string_contains_lone_surrogatesr}   x   s*     gQ;1;	 
 r   c                   F   a  ] tR t^t o RtR tR tR tR tRt	R t
RtV tR# )	BytesLiteralNc                    V # r   r]   r^   s   &&r   r`   BytesLiteral.__deepcopy__   rb   r   c                    \        V 4      # r   )r>   r	   s   &r   rf   BytesLiteral.byteencode   s    T{r   c                    Q RV ,          4       h)Fz this is not a unicode string: %rr]   r	   s   &r   ri   BytesLiteral.utf8encode   s    ?84??ur   c                $    V P                  R4      # )zSFake-decode the byte string to unicode to support %
formatting of unicode strings.
rA   )decoder	   s   &r   __str__BytesLiteral.__str__   s     {{<((r   Fc                <    \        \        V 4      4      pR V,          # )z"%s")split_string_literalescape_byte_string)r
   values   & r   rs    BytesLiteral.as_c_string_literal   s    $%7%=>~r   r]   )r,   r-   r.   r/   re   r`   rf   ri   r   rl   rs   r1   r2   r3   s   @r   r   r      s0     H@) J r   r   c                 X    \        V \        4      '       g   Q h\        V 4      p Wn        V # r   )r   r>   r   re   rt   re   s   &&r   rF   rF      s(    aQAJHr   c                 l    \        V \        \        34      '       g   Q h\        V 4      p Ve   Wn        V # r   )r   r   r>   r$   re   r   s   &&r   encoded_stringr      s3    a#u&&&&aA
Hr   c                 Z    \        V \        4      '       d   \        W4      # \        W4      # r   )r   r>   rF   r   r   s   &&r   encoded_string_or_bytes_literalr      s%    !UQ))a**r   z\az\bz\fz\n
z\rz\t	z\vc           	          V R 9   d   \        V 4      ^R # V R8X  d   R# V R8X  d   R# RP                  V  Uu. uF  pR\        V4      R 2NK  	  up4      # u upi )z
	"z\"\\\r#   03o)reprr%   rz   )rt   r|   s   & r   _to_escape_sequencer      s]    H}Awq}	
c	
d ww151a"SVCL)15665s   Ac                    aaa . p / o\          Fx  pR P                  V Uu. uF  pRVP                  RR4      ,          NK  	  up4      pV P                  V4       \	        V4      P                  R4      SVP                  R4      &   Kz  	  \        P                  ! RRP                  V 4      ,          P                  R4      4      P                  oV3R loVV3R lpV# u upi )	r#   z[%s]r   r   ASCIIz(%s)|c                 4   < SV P                  ^4      ,          # )   )group)mreplacementss   &r   replace_specials2_build_specials_replacer.<locals>.replace_specials   s    AGGAJ''r   c                    < S! SV 4      # r   r]   )rt   r   subs   &r   replace)_build_specials_replacer.<locals>.replace   s    #Q''r   )	
_c_specialr%   r   r   r   r=   recompiler   )subexpsspecialr|   regexpr   r   r   r   s        @@@r   _build_specials_replacerr      s    GLGLGq&199T6#:::GLMv0CG0L0S0ST[0\W^^G,-  **fsxx0088A
B
F
FC((N Ms   "C
c                     V P                  R 4      p V R9   d   \        V 4      ^R # V R8X  d   R# \        V 4      pV^ 8  g   V^8  d
   RV,          # V # )rA   z
	\'z\'z\x%02Xr   )r   r   rz   )r|   ns   & r   escape_charr      sX    	AJAwq}	
cAA2vc1} r   c                   \        V 4      p  V P                  R4      #   \         d     Mi ; i\        4       pTP                  TP
                  r2T  F#  pT^8  d   T! RT,          4       K  T! T4       K%  	  TP                  R4      # )zEscape a byte string so that it can be written into C code.
Note that this returns a Unicode string instead which, when
encoded as ASCII, will result in the correct byte sequence
being written.
r   s   \%03o)_replace_specialsr   UnicodeDecodeError	bytearrayr   extend)rt   s_newr   r   bs   &    r   r   r      s     	!Axx   KE\\5<<F89q=!1I	 
 <<  s    ,,c                    \        V 4      V8  d   V # ^ p. pV\        V 4      8  d   W!,           p\        V 4      V^,
          8  d|   RW^,
          V 9   dl   V^W^,
          V P                  R4      ,
          ,          pW^,
          ,          R8X  d0   V^,          pWB8X  g   K%  W!,           V^,          ,
          ^,
          p VP                  WV 4       TpK  RP                  V4      # )r   r   z"")lenfindr   r%   )rt   limitstartchunksends   &&   r   r   r     s    
1v~c!fn-C1vA~$!E#,"6q1U3<,,T222Ah$&1HC|#muqy9A=MM!#,'Eyy  r   c                   \        \        \        V 4      4      p V P                  ^ 4       . T r!V  Fb  pVR8  dH   \	        VR,
          R4      w  rEVP                  VR,           4       VP                  VR,           4       KQ  VP                  V4       Kd  	  W8X  d   . pRP                  \        \        V4      4      RP                  \        \        V4      4      3# )zBCreate Py_UNICODE[] representation of a given unicode string.
    i   i   rx   i   ,)listry   rz   r   divmodr%   r   )r   utf16utf32
code_pointhighlows   &     r   encode_pyunicode_stringr     s     c#z*+Jaz5 
 zG3T:IDLL'LLv&LL$ ! ~88CUO$chhs3&???r   )r   z??r   )i  )r   sysr   r6   rN   r   r$   r}   r>   r   rF   r   r   getchar_from_escape_sequencetuplery   r   ranger   r   r   r   r   r   r   r   r]   r   r   <module>r      s    
 
( (.( (>D D.'C 'B5 4+ 
D	D	D	D	D	D	D 
c  s3b	':!;;
	7 -. !(!,@r   