+
    VBi84             	       
   ^ RI t ] P                  ! ER!/ R]bR]bR]bR]bR]bR]bR]bR	]bR
]bR]bR]bR]bR]bR]bR]bR]bR]bR]bR]bR]b  ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	H
t
 ^ RIHt ^ RIHtHt ^ RIHtHt ^ RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^R IHt ^R!IHt ^ R"IHt   ^ R"I!Ht" ]! ]"^	R#7      t" ^ R$I$Ht%H&t'H(t) ]! ]%]'PT                  ])PV                  ]'PX                  ]'PX                  P[                  4       ^,          /R%7      t%A'A)^R&]! ] ^	R'7      3^R(]"3^R)]%3.t.R*R+R,R+R-R.R/R0/t/R1R2R3R2R4R5R6R7/t0R8R9/t1ER"t2]3! . R:NR;NR<NR=NR>NR?NR@NRANRBNRCNRDNRENRFNRGNRHNRINRJNRKNRLNRMNRNNRONRPNRQNRRNRSNRTNRUNRVNRWNRXNRYNRZNR[NR\NR]NR^NR_NR`NRaNRbNRcNRdNReNRfNRgNRhNRiNRjNRkNRlNRmNRnNRoNRpNRqNRrNRsNRtNRuNRvNRwNRxNRyNRzNR{NR|NR}NR~NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR0NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR.NRNRNRNRNRNRNRNRNR+NRNRNRNRNRNRN4      t4. ER#Ot5] P                  ! ]3]3! ER$4      4      t6RR/Pn                  t8] P                  ! ]RRR^R^/Pn                  4      t9 ! R R4      t:R t;Rt< R t=]=t< ! R R4      t> ! R R]>4      t?]
 ! R R4      4       t@ ! R R]?4      tARRRRRR./R ltB]B! RRR7      R 4       tC]B! 4       R R l4       tD]B! RRRR7      R 4       tE]B! RRRRR7      R 4       tF]B! RRR7      R 4       tG]B! RRRR7      R 4       tH]B! 4       R 4       tIRR/ 3R ltJ ! R R]A4      tK ! R ER ]?4      tL ! ER ER4      tM ! ER ER4      tN ! ER ER4      tO] P                  ! ]]]]ER7       ]P                  ! ER]P                  4      P                  tS]P                  ! ER	4      P                  tT]P                  ! ER
4      P                  tV]P                  ! ER4      P                  tX ! ER ER4      tY ! ER ER4      tZ ! ER ER4      t[ER t\ ! ER ER4      t] ! ER ER4      t^ ! ER ER4      t_ ! ER ER4      t`] P                  ] P                  ER ER l4       4       tc] P                  ! ER%4      ] P                  ER ER l4       4       tf ! ER ER 4      tgR#   ]# d    Rt" ELvi ; i  ]# d    Rt% EL.i ; i(&      NosreoperatortextwrapTemplateNamingOptionsStringEncodingUtilsSourceDescriptorStringIOTree
DebugFlagsdefaultdictclosingpartialwrapszlib_compressbz2_compresslzma_compresszstd_compress)	dataclassr   )r   r   )r   contextmanager)r   )r   )r	   )r   )r
   )r   )r   )r   )compress)compresslevel)r   CompressionParameterStrategy)optionszliblevelbz2zstdunicodestr
basestringxrangerange	raw_inputinputpy_intz&PyLong_Typepy_longpy_floatz&PyFloat_Typewrapper_descriptorz&PyWrapperDescr_TypePyTypeObjectPyHeapTypeObjectArithmeticErrorAssertionErrorAttributeErrorBaseExceptionBaseExceptionGroupBlockingIOErrorBrokenPipeErrorBufferErrorBytesWarningChildProcessErrorConnectionAbortedErrorConnectionErrorConnectionRefusedErrorConnectionResetErrorDeprecationWarningEOFErrorEllipsisEncodingWarningEnvironmentError	ExceptionExceptionGroupFalseFileExistsErrorFileNotFoundErrorFloatingPointErrorFutureWarningGeneratorExitIOErrorImportErrorImportWarningIndentationError
IndexErrorInterruptedErrorIsADirectoryErrorKeyErrorKeyboardInterruptLookupErrorMemoryErrorModuleNotFoundError	NameErrorNoneNotADirectoryErrorNotImplementedNotImplementedErrorOSErrorOverflowErrorPendingDeprecationWarningPermissionErrorProcessLookupErrorPythonFinalizationErrorRecursionErrorReferenceErrorResourceWarningRuntimeErrorRuntimeWarningStopAsyncIterationStopIterationSyntaxErrorSyntaxWarningSystemError
SystemExitTabErrorTimeoutErrorTrue	TypeErrorUnboundLocalErrorUnicodeDecodeErrorUnicodeEncodeErrorUnicodeErrorUnicodeTranslateErrorUnicodeWarningUserWarning
ValueErrorWarningWindowsErrorZeroDivisionError_IncompleteInputError__build_class__	__debug__
__import__absaiterallanextanyasciibinbool
breakpoint	bytearraybytescallablechrclassmethodcompilecomplex	copyrightcreditsdelattrdictdirdivmod	enumerateevalexecexitfilterfloatformat	frozensetgetattrglobalshasattrhashhelphexidint
isinstance
issubclassiterlenlicenselistlocalsmapmax
memoryviewminnextobjectoctopenordpowprintpropertyquitreprreversedroundsetsetattrslicesortedstaticmethodsumsupertupletypevarszipinlineCYTHON_INLINEustringc                   V   a  ] tR tRt o Rt^ t^t^t^tR
R lt	R t
R tR tR tR	tV tR# )IncludeCodei'  zQ
An include file and/or verbatim C code to be included in the
generated sources.
Nc                   V P                   V n        \        V 4      ;P                   ^,          un         / V n        V'       d\   V^ ,          R8X  d0   VR,          R8X  d"   RP	                  V4      V P                  ^ &   RpMRP	                  V4      V P                  ^ &   V'       d   W P                  V P                  &   V'       d   V P
                  V n        R# V'       d   V P                  V n        R# V P                  V n        R# )   <>z#include {}Fz#include "{}"N)	counterorderr   piecesr   INITIALlocationLATEEARLY)selfincludeverbatimlateinitials   &&&&&9/usr/lib/python3.14/site-packages/Cython/Compiler/Code.py__init__IncludeCode.__init__A  s    \\
T
aqzS WR[C%7!.!5!5g!>A!0!7!7!@A&.KK

# LLDM IIDM JJDM    c                    W!9   dU   W,          p\        V P                  VP                  4      Vn        VP                  P                  V P                  4       R# WV&   R# )z
Insert `self` in dict `d` with key `key`. If that key already
exists, update the attributes of the existing value with `self`.
N)r   r   r   update)r   dkeyothers   &&& r   dict_updateIncludeCode.dict_updateW  sC    
 8FE ?ENLL,cFr   c                    V P                   # N)r   r   s   &r   sortkeyIncludeCode.sortkeyc  s    zzr   c                8    V P                   P                  ^ 4      # )zp
Return the main piece of C code, corresponding to the include
file. If there was no include file, return None.
)r   getr   s   &r   	mainpieceIncludeCode.mainpiecef  s    
 {{q!!r   c                    \        V P                  4       F%  pVP                  V P                  V,          4       K'  	  R # r   )r   r   putln)r   codeks   && r   writeIncludeCode.writem  s)    $AJJt{{1~& %r   )r   r   r   )NNTF)__name__
__module____qualname____firstlineno____doc__r   r   r   r   r   r   r   r   r   __static_attributes____classdictcell____classdict__s   @r   r   r   '  s>     & GEDG',
"' 'r   r   c                      \         P                  P                  \         P                  P                  \         P                  P                  \        4      4      4      p \         P                  P                  V R 4      # )Utility)r   pathdirnameabspath__file__join)
Cython_dirs    r   get_utility_dirr
  s  sE     1J!KLJ77<<
I..r   c                   \         P                  P                  \        4       V 4      p\	        \
        P                  ! VRR7      4      ;_uu_ 4       pVP                  4       uuRRR4       #   + '       g   i     R# ; i)z\
Read all lines of the file at the provided path from a path relative
to get_utility_dir().
UTF-8)encodingN)r   r  r  r
  r   r   open_source_file	readlines)r  filenamefs   &  r   read_utilities_from_utility_dirr    sN    
 ww||O-t4H	''7C	D	D{{} 
E	D	D	Ds   A--A>	c                   F   a  ] tR tRt o RtRV 3R lR lltR tR tRtV t	R# )	AbstractUtilityCodei  Nc                "   < V ^8  d   QhRRRR/#    globalstateGlobalStatereturnN )r   r  s   "r   __annotate__ AbstractUtilityCode.__annotate__  s      M D r   c                    R # r   r  )r   r  used_bys   &&&r   put_codeAbstractUtilityCode.put_code  s    r   c                    R # r   r  r   kwargss   &,r   get_treeAbstractUtilityCode.get_tree      r   c                    R # r   r  r#  s   &,r   get_shared_library_scope,AbstractUtilityCode.get_shared_library_scope  r'  r   r  r   )
r   r   r   r   requiresr   r%  r)  r   r   r   s   @r   r  r    s#     H  r   r  c                   .  a  ] tR tRt o RtRt/ t]P                  ! R4      P                  t
]R 4       t]RR l4       t]R 4       t]R	 4       t]/ 3R
 l4       t]RR l4       t]P                  ! R4      P&                  3R ltR tR tR tRR ltRtV tR# )UtilityCodeBasei  a  
Support for loading utility code from a file.

Code sections in the file can be specified as follows:

    ##### MyUtility.proto #####

    [proto declarations]

    ##### MyUtility.init #####

    [code run at module initialization]

    ##### MyUtility #####
    #@requires: MyOtherUtility
    #@substitute: naming

    [definitions]

    ##### MyUtility #####
    #@substitute: tempita

    [requires tempita substitution
     - context can't be specified here though so only
       tempita utility that requires no external context
       will benefit from this tag
     - only necessary when @required from non-tempita code]

for prototypes and implementation respectively.  For non-python or
-cython files backslashes should be used instead.  5 to 30 comment
characters may be used on either side.

If the @cname decorator is not used and this is a CythonUtilityCode,
one should pass in the 'name' keyword argument to be used for name
mangling of such entries.
Fzo(.+)[.](proto(?:[.]\S+)?|impl|init|cleanup|module_state_decls|module_state_traverse|module_state_clear|export)$c                    \         P                  ! R R\         P                  ! V 4      /,          \         P                  4      P                  # )zS^%(C)s{5,30}  \s*  (?P<name> (?:\w|\.)+ )  \s*  %(C)s{5,30} |^%(C)s+  @(?P<tag> .+)C)r   r   escapeVERBOSEmatch)line_comment_chars   &r   get_special_comment_matcher+UtilityCodeBase.get_special_comment_matcher  sC    zz& "))-./0
 24=
 >CU	Cr   Nc                p   Vf   R # RP                  V4      pV'       d\   RV9   dU   RVR,          9   dG    \        V4      P                  \        \        4      4      pY8X  d   \        R	T RT R
TR R24      hTpRV,          V,           pVR8X  d   Wq^ &   MVR8X  d   Wq^&   MV^,          p
WzV&   V'       dN   V^,          p
VP                  4        F.  w  rV
P                  V\        4       4      P                  V4       K0  	  R # R #   \
        \        3 d   p	\        RT RT RTR RT	 24      hR p	?	ii ; i)N

substitutenamingz&Error parsing templated utility code '.z
' at line r   z: zFFound useless 'substitute: naming' declaration without replacements. (:)protoimpl)r  r   r8  r   r   rS   ry   rf   items
setdefaultr   r   )clsutilitynamer   linesbegin_linenotagsr   new_codeeall_tagstag_name
tag_valuess   &&&&&&&      r   _add_utilityUtilityCodeBase._add_utility  sV   ?yyLD(Xl9K-Kk#D>44T&\B "\]a\bbcdhciijkwxyjzz{|~ ~D l"T)7?AJV^AJqzH!TNqzH(,

$##Hce4;;JG )5 ' j) k"<TF!D6T`abSccefgehik kks   'D D5D00D5c           	        V P                   P                  V4      pV'       d   V# \        P                  P	                  V4      w  r4VR9   d>   Rp\        \        P                  ! R4      P                  R4      p\        P                  pMVRp\        \        P                  ! R4      P                  R4      p\        \        P                  ! R4      P                  R4      pV P                  V4      pV P                  p	\        V4      p
\        R 4      p. p\        \        4      pR	;p;r^ p\!        V
4       EF  w  ppV! V4      pVf    VP#                  V! V! V4      4      4       K2  VP%                  R
4      '       dq   V P'                  WWVV4       V^,           pVR VP)                  4        VP%                  R
4      pV	! V4      pV'       d   VP+                  4       w  rMRpW.,          pK  VP%                  R4      pRV9  d   \-        RV RV RV 24      hVP/                  R4      w  pppVP                  4       pVP1                  4       pVR9  d   \-        RV RV RV 24      h\        P2                  ! RV4      '       g   \-        RV RV RV 24      hVV,          P5                  V4       VP#                  R4       EK  	  Vf   \7        R4      hV P'                  WWVV4       \9        V4      pW P                   V&   V# ).pyx#z^\s*#(?!\s*cython\s*:).* /z^\s*//.*|/\*[^*]*\*/z	\s+(\\?)$z\1c                      R R / .# r   r  r  r   r   <lambda>:UtilityCodeBase.load_utilities_from_file.<locals>.<lambda>  s    tR(8r   NrC  :NNNr>  tagr;  zFound invalid tag 'z' in utility section r:  zFound unknown tag name 'z\S+$zFound invalid tag value 'zEmpty utility code file)rO  z.pyz.pxdz.pxi)r+  r8  proto_block)_utility_cacher   r   r  splitextr   r   r   subr%   rstripr4  match_section_titleread_utilities_hookr   r   r   appendgrouprL  cleargroupsrf   	partitionstripr2  addry   r   )rA  r  	utilities_extcommentstrip_commentsr[  match_special
match_type	all_linesrD  rF  rB  rC  r   rE  linenolinemmtype	tag_valuerJ  s   &&                     r   load_utilities_from_file(UtilityCodeBase.load_utilities_from_file  s   &&**40	!!$'11G$RZZ0K%L%P%PRTUNZZFG$RZZ0G%H%L%LbQNRZZ5995AF77@,,
'-	 89	3 $$$$%i0LFDd#AyVN4$89:  \4P%z!H

wwv"4(!&JD$!D#/GGEN	i'&)<YKG\]a\bbcdhci'jkk)2)<)<S)A&!Y#??,%OO-	#LL&)A(K`ae`ffghlgm'nooxx33&)B9+Mbcgbhhijnio'pqqX""9-R C 1F ?677 	\4HO	#,4 r   c           	     b   RV9   d   VP                  R^4      w  r!V'       g   Q hV P                  V4      pWA,          w  rVpV'       Ed'   RV9   d<   RVR,          9   d.   \        V \        4      '       g   \        P                  ! W3/ VB # VP                  4       pVP                  4        F  w  rW9   d   K  V	R8X  d_   V'       d-   \        V
4       Uu. uF  pV P                  ! W3/ VB NK  	  p
pMt\        V
4       Uu. uF  pV P                  W4      NK  	  p
pMJV	R8X  d   V
RR0,
          p
V
'       g   K  M-V
'       g   Rp
M"\        V
4      ^8X  d   \        V
4      ^ ,          p
WV	&   K  	  Ve   WSR&   Ve   WcR&   R	V9  d   WR	&   R
V9  d   V'       d   W#R
&   V ! R/ VB # u upi u upi )zl
Load utility code from a file specified by from_file (relative to
Cython/Utility) and name util_code_name.
z::r8  tempitar+  r9  Nr=  r>  rC  filer  )rsplitrr  r   TempitaUtilityCodeloadcopyr?  r   load_cachedr   r   )rA  util_code_name	from_filer$  re  r=  r>  rF  orig_kwargsrC  valuesdeps   &&&,        r   ry  UtilityCodeBase.load>  s    >!(6(=(=dA(F%Iy00;	%5T4t#	T,5G(G!#'9::-22>WPVWW ++-K $

>:%"-3F^"=-;c #&((3"I["I-;  "=
 .4F^"=-;c #&//#"A-;  "=\) $x&;;F!  "!F[A%!&\!_F%t- !-0 #7O!6N+6NI&6N}V}9"="=s   F'F,c                l    WV 3p W4,          #   \          d     Mi ; iT P                  Y4      ;qST&   T# )zP
Calls .load(), but using a per-type cache based on utility name and file name.
)rS   ry  )rA  utility_code_namer}  _UtilityCodeBase__cacher   r   s   &&&&  r   r{  UtilityCodeBase.load_cachedt  sH    
 !S1	< 		!hh'8DDs|s    c                  aaa V P                   ! W3/ VB pV'       g7   VP                  VP                  4      VP                  VP                  4      3# . . uooVVV3R loS! V4       RP	                  S4      RP	                  S4      3# )an  
Load a utility code as a string. Returns (proto, implementation).

If 'include_requires=True', concatenates all requirements before the actually
requested utility code, separately for proto and impl part.

In a lot of cases it may be better to use regular "load" and "CCodeWriter.put_code_here"
since that is able to apply the code transformations to the code too.
c                 V  < V P                   '       d   V P                    F  pS! V4       K  	  V P                  '       d+   SP                  V P                  V P                  4      4       V P                  '       d-   SP                  V P                  V P                  4      4       R # R # r   )r+  r=  r^  format_coder>  )	util_coder  implsprependprotoss   & r   r  /UtilityCodeBase.load_as_string.<locals>.prepend  ss    !!!$--CCL .i33IOODE~~~Y229>>BC r   rQ  )ry  r  r=  r>  r  )	rA  r|  r}  include_requiresr$  utilr  r  r  s	   &&&&, @@@r   load_as_stringUtilityCodeBase.load_as_string  s     xx<V<$$TZZ0$$TYY/1 1 B	D 	wwv..r   z\n\n+c                R    V'       d   V! RVP                  4       4      R,           pV# )z#
Format a code section for output.
r7  z

)rc  )r   code_stringreplace_empty_liness   &&&r   r  UtilityCodeBase.format_code  s'     -dK4E4E4GH6QKr   c                R    R \        V 4      P                  : RV P                  : R2# )r   (z)>)r   r   rC  r   s   &r   __repr__UtilityCodeBase.__repr__  s    !$Z00$))<<r   c                    R # r   r  r#  s   &,r   r%  UtilityCodeBase.get_tree  r'  r   c                    R # r   r  r#  s   &,r   r)  (UtilityCodeBase.get_shared_library_scope  r'  r   c                    V # r   r  )r   memodicts   &&r   __deepcopy__UtilityCodeBase.__deepcopy__  s    r   r  r   F)r   r   r   r   r   is_cython_utilityrX  r   r   r2  r\  r   r4  r   rL  rr  ry  r{  r  rZ  r  r  r%  r)  r  r   r   r   s   @r   r-  r-    s     #J N**ze  C C H H@ E EN 3 3j ?A 
 
 / /: <>::h;O;S;S = r   r-  c                   0   a  ] tR tRt o RtV 3R ltRtV tR# )SharedFunctionDecli  z6Contains parsed declaration of shared utility functionc                >   < V ^8  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   # )r  rC  retparamsr%   )r   r  s   "r   r  SharedFunctionDecl.__annotate__  s)      I  
H	 
 K r   r  N)r   r   r   r   r   __annotate_func__r   r   r   s   @r   r  r    s     @  r   r  c                      a  ] tR tRt o Rt. ROtRR ltV 3R lR ltR tR t	R	 t
RR
 ltR t]P                  RV 3R lR ll4       tR tV 3R lR ltRV 3R lR lltRtV tR# )UtilityCodei  a  
Stores utility code to add during code generation.

See GlobalState.put_utility_code.

hashes/equals by instance

proto           C prototypes
export          C prototypes exported from the shared utility code module
impl            implementation code
init            code to call on module initialization
requires        utility code dependencies
proto_block     the place in the resulting file where the prototype should
                end up
name            name of the utility code (or None)
file            filename of the utility code file this utility was loaded
                from (or None)
shared_utility_functions        List of parsed declaration line of the shared utility function
Nc                  a  VS n         VS n        VS n        VS n        VS n        VS n        VS n        VS n        / S n        . S n	        V	S n
        V
S n        VS n        VS n        V'       d   S P                  V4      M. S n        V'       d   S P!                  4        \"        ;QJ d(    . V 3R  lS P$                   4       F  NK  	  5S n        R# ! V 3R  lS P$                   4       4      S n        R# )c              3   >   <"   T F  p\        SVR 4      x  K  	  R # 5ir   r   ).0partr   s   & r   	<genexpr>'UtilityCode.__init__.<locals>.<genexpr>  s     !X'$d";";s   N)r=  r>  initcleanupmodule_state_declsmodule_state_traversemodule_state_clearr+  _cachespecialize_listrW  rC  rv  exportparse_export_functionsshared_utility_functions_validate_suitable_for_sharingr   
code_parts_parts_tuple)r   r=  r>  r  r  r  r  r  r+  rW  rC  rv  r  s   f&&&&&&&&&&&&r   r   UtilityCode.__init__  s    
 
		"4%:""4 !&		OU(C(CF(K[]%//1 "E!X!XEE!X!XXr   c                &   < V ^8  d   QhRS[ RS[/# )r  export_protor  r%   r   )r   r  s   "r   r  UtilityCode.__annotate__  s      3 4 r   c           	     |   R V9  d   RV9  d   RV9  g&   Q RVP                  4        RV P                   24       h. pRpVP                  R4       F  pVP                  4       P                  RR4      p\        P
                  ! R	R
V4      p\        V4      ^ 8X  d   KM  \        P                  ! W4\        P                  4      pVf   Q RV: RV P                   24       hVP                  4       w  rgpVP                  \        VP                  4       VP                  4       VP                  4       R7      4       K  	  V# )z///**/z(Export block must not contain comments:
z

 in file a_  
            ^static\s                                         # `static` keyword
            (?P<ret_type>[^;()]+[\s*])                        # return type + modifier with optional * - e.g.: int *, float, const str *, ...
            (?P<func_name>\w+)\((?P<func_params>[^)]*)\)$     # function with params - e.g. foo(int, float, *PyObject)
        z;
r7  rQ  z\s+ z5Wrong format of function definition in export block 
z
 in )rC  r  r  )rc  rv  splitreplacer   rZ  r   r2  r1  ra  r^  r  )	r   r  parsed_protosproto_regexr=  matchedret_type	func_namefunc_paramss	   &&       r   r  "UtilityCode.parse_export_functions  s6   <'D,DUaIa 	e78J8J8L7M[Y]YbYbXcd	ea  "''.EKKM))$3EFF63.E5zQhh{2::>G& dH	QWX\XaXaWbcd& 07~~/?,H  "	(9x~~?OXcXiXiXkl / r   c                ,    \        V P                  4      # r   )r   r  r   s   &r   __hash__UtilityCode.__hash__	  s    D%%&&r   c                    WJ d   R # \        V 4      \        V4      r2W#Jd%   \        W4      '       g   \        W4      '       g   R# V P                  VP                  8H  # TF)r   r   r  )r   r   	self_type
other_types   &&  r   __eq__UtilityCode.__eq__  sO    = $T
DK:&
50L0LPZ[_PlPl  E$6$666r   c                    Vf   R# W,          # zI
Format a string in this utility code with context. If None, do nothing.
Nr  r   scontexts   &&&r   none_or_subUtilityCode.none_or_sub  s     9{r   c                   V P                   pVe8   VP                  4       VR&   VP                  4       VR&   V: RVR,          : R2p\        \	        VP                  4       4      4      p V P                  V,          #   \         EdC    T P                  f   R pM/T P                   Uu. uF  qfP                  T4      NK  	  Mu upi pp\        T P                  T P                  T4      T P                  T P                  T4      T P                  T P                  T4      T P                  T P                  T4      T P                  T P                   T4      T P                  T P"                  T4      T P                  T P$                  T4      TT P&                  T4
      ;qpP                  T&   T P(                  P+                  T4       Tu # i ; i)Nr   	type_name[])rC  empty_declaration_codespecialization_namer   r   r?  r  rS   r+  
specializer  r  r=  r>  r  r  r  r  r  rW  r  r^  )r   
pyrex_typedatarC  r   r+  rr  s   &&,     r   r  UtilityCode.specialize  s   yy!%<<>DL * > > @D#T+%6%67DF4::<()	;;s## 	}}$8<F1LL.FF#.  T2  D1  D1  t4  !8!8$?  !;!;TB  !8!8$?  $ AC    ''*H)	s   +A> >+G)CDGGc                T    \        V R 4      pV'       g   R# RV9  g   Q RV  24       hR# )r>  NzNAMED_CGLOBAL(moddict_cname)z$moddict_cname should not be shared: r  )r   r  s   & r   r  *UtilityCode._validate_suitable_for_sharing=  s2    dF+F-[@ 	:24&9	:@r   c                (   < V ^8  d   QhRRRRRS[ /# )r  writerCCodeWriteroutputr  	code_typer  )r   r  s   "r   r  r  D  s#     / / /} /Y\ /r   c                r   \        W4      pV'       g   R # VR	9   p\        WV4      w  rWV'       d   RV R2MRpVR8w  d   V P                   RV 2MV P                  pVP                  RV V R24       V'       d+   V'       g#   VP	                  WPP                   RV 24       R # VP                  V4       R # )
Nr>  z
 (used by r<  rQ  r:  /*  */rf  )r=  r>  )r   process_utility_ccoderC  r   put_or_includeput_multilines)	r   r  r  r  r  r  can_be_reusedresult_is_module_specificrC  s	   &&&&&    r   _put_code_sectionUtilityCode._put_code_sectionC  s    d.!%661FtU`1a.-4Jwiq)"-6&-@$))Ai[)diis4&	-.!:!!+))Ai[/IJ!!+.r   c                    V P                   '       g   R # VR,          pV P                  W!R4       VP                  RVP                  VP                  4      ,           4       VP                  4        R # )Ninit_globalsr    )r  r  r   error_goto_if_PyErr
module_pos)r   r  r  s   && r   _put_init_code_section"UtilityCode._put_init_code_sectionX  sU    yyy'vv6 	TF66v7H7HIIJr   c                "   < V ^8  d   QhRRRR/# )r  r   r  r  Nr  )r   r  s   "r   r  r  b  s      m  r   c           
         VP                  R V P                   R24       V P                   F<  pVP                  RVP                   RVP                   RVP                   R24       K>  	  VP                  4        R# )r  r  static z(*z)(z); /*proto*/N)r   rC  r  r  r  )r   r   shareds   && r   !_put_shared_function_declarations-UtilityCode._put_shared_function_declarationsb  sc    

S3'(33FJJBv{{m2fmm_LYZ 4 	

r   c                "   < V ^8  d   QhRRRR/# r  r  )r   r  s   "r   r  r  i  s     5 5M 5D 5r   c                   \        V P                  ;'       d+    VP                  P                  P                  P
                  4      pV P                  '       d8   V'       g0   V P                   F  pVP                  W@P                  R 7       K!  	  V'       d"   V P                  WP                  ,          4       VP                  P                  V P                  4       V P                  '       d&   V P                  WP                  ,          VRVR 7       V'       g$   V P                  WP                  ,          VR4       V P                  '       d%   V'       g   V P                  VR,          VRVR 7       V P                  '       d1   \         P"                  '       d   V P                  VR,          VR4       V P$                  '       d   V P                  VR,          VR4       V P&                  '       d   V P                  VR	,          VR
4       V P(                  '       d   V P                  VR,          VR4       V P*                  '       d   V P-                  V4       R# R# )r  r=  r  utility_code_defr>  cleanup_globalsr  module_state_contentsr  module_state_traverse_contentsr  module_state_clear_contentsr  N)r   r  module_nodescoper  shared_utility_qualified_namer+  use_utility_coderC  r  rW  extendr=  r  r>  r  r	   generate_cleanup_coder  r  r  r  r  )r   r  r  has_shared_utility_code
dependencys   &&&  r   r   UtilityCode.put_codei  s   "&))qqk.E.E.K.K.S.S.q.q#
 ===!8"mm
,,Z,K , #22;?O?O3PQ,,33D4Q4QR:::"";/?/?#@+w`g"h&"";/?/?#@+xX9994"";/A#BKQWah"i<<<G999"";/@#A;PYZ""""";/F#GVjk%%%"";/O#PR]_vw""""";/L#M{\pq999''4 r   )r  r  r  r  rv  r>  r  r  r  r  rC  r=  rW  r+  r  r  )r=  r  r>  r  r  r  r  r  )NNNNNNNNutility_code_protoNNNr   )r   r   r   r   r   r  r   r  r  r  r  r  r  cythonfinalr  r  r  r   r   r   r   s   @r   r  r    sw     & EJY4 <'7@: \\/ / /( 5 5 5r   r  regexis_module_specificF_last_macro_processorc                6   a aaaa S^ ,          oVVVVV 3R lpV# )z8Decorator to chain the code macro processors below.
    c                 J   <a  \        S 4      R  V VVVV3R ll4       pVS^ &   V# )c                0    V ^8  d   QhR\         R\        /# )r  utility_coder  )r  r%   )r   s   "r   r  Badd_macro_processor.<locals>.build_processor.<locals>.__annotate__  s     	: 	:+ 	:C 	:r   c                 ,  < R pSe   S! WV4      w  r#S'       d   S F  pWB9   g   K   M	  W#3# S	f   S! WV4      pM"\         P                  ! S	\        SV4      V4      pS F%  pWB9   g   K  \        RV RV P                   R24      h	  VS,          pW#3# )FzLeft-over utility code macro 'z()' found in '')r   rZ  r   rf   rC  )
r'  r  r  r  macrofuncr"  last_processormacro_namesr!  s
   &&&  r   process=add_macro_processor.<locals>.build_processor.<locals>.process  s     ).%)9G^i9j6 (E+ ) 'AA }"<E ffUGD&,A;O %'&)Gwn]i]n]n\oop'qrr % &);;%99r   )r   )r,  r/  r#  r"  r-  r.  r!  s   f r   build_processor,add_macro_processor.<locals>.build_processor  s0    	t	: 	: 
	:8 $+a r   r  )r!  r"  r#  r.  r1  r-  s   dddj @r   add_macro_processorr3    s"     +1-N B r   CSTRINGz)CSTRING\(\s*"""([^"]*(?:"[^"]+)*)"""\s*\))r!  c                    VP                  ^4      P                  RR4      pRP                  R VP                  4        4       4      # )zUReplace CSTRING('''xyz''') by a C compatible string, taking care of line breaks.
    "z\042rQ  c              3      "   T FB  pVP                  R 4      '       d   VP                  R4      '       d   RV R2MRVRR  R2x  KD  	  R# 5i)\z\\r6  z\n"
N"
r   )endswith)r  rn  s   & r   r  !_wrap_c_string.<locals>.<genexpr>  sW      *(D !%d 3 3t}}V7L7L!D6TUVZ[^\^V_U``cRdd(s   AAA)r_  r  r  
splitlines)rf  matchobjcontents   && r   _wrap_c_stringr?    sF     nnQ''W5G77 *&&(* * *r   c                $    V ^8  d   QhR\         /# )r  r'  r  )r   s   "r   r  r    s     * *K *r   c                 $    V P                  V4      # r   )r  )r'  rf  r>  s   &&&r   _format_impl_coderC    s    ##D))r   CALL_UNBOUND_METHODTzLCALL_UNBOUND_METHOD\(([a-zA-Z_]+),\s*"([^"]+)",\s*([^),\s]+)((?:,[^),]+)*)\))r"  r!  c                T   VP                  4       w  r#rERV,          pV'       d6   VR,          P                  R4       Uu. uF  qfP                  4       NK  	  upM. p\        V4      ^8  g   Q R\        V4      R R24       hV P	                  \
        P                   R2WBW54      # u upi )zRReplace 'UNBOUND_METHOD(type, "name")' by a constant Python identifier cname.
    z&%s:r   NN,z'CALL_UNBOUND_METHOD() does not support r   z call arguments->)ra  r  rc  r   cached_unbound_method_call_coder   modulestateglobal_cname)r  r=  
type_cnamemethod_name	obj_cnameargsargs   &&     r   _inject_unbound_methodrO    s     08/@,JY#J;?48>>##67#6CIIK#67RDt9q=`CCIa=P_``=11))
*"-{2 2 8s   B%PYIDENT	PYUNICODEzPY(IDENT|UNICODE)\("([^"]+)"\)c                    VP                  4       w  r#\        P                  : RV P                  \        P
                  ! V4      VR8H  R7      P                  : 2# )zDReplace 'PYIDENT("xyz")' by a constant Python identifier cname.
    rG  IDENT
identifier)ra  r   rI  get_py_string_constr
   EncodedStringcname)r  r=  str_typerC  s   &&  r   _inject_string_constantrZ    s\     __&NH&&""((.8w;N 	# 	PPUPU	VW Wr   EMPTYzEMPTY\((bytes|unicode|tuple)\)c                t    VP                  ^4      p\        P                  : R\        \        RV 24      : 2# )zLReplace 'EMPTY(bytes|tuple|...)' by a constant Python identifier cname.
    rG  empty_)r_  r   rI  r   )r  r=  r  s   && r   !_inject_empty_collection_constantr^    s6     q!I&&&,-/ /r   CGLOBALz(NAMED_)?CGLOBAL\(([^)]+)\)c                     VP                  4       w  r#V'       d   \        \        V4      p\        P                   R V 2# rG  )ra  r   r   rI  )r  r=  is_namedrC  s   &&  r   _inject_cglobalrc    s9     __&NHvt$,,-Rv66r   c                    V# )z;Entry point for code processors, must be defined last.
    r  )r'  rf  r  s   &&&r   r  r    s
     r   c                    V '       g   R# V'       d   V RV 2pV'       d   W1R&    W@,          pVP                  V4      #   \          d    ^RIHp T! YR7      ;qTT &    L1i ; i)z+Run tempita on string s with given context.Nr;  __namer   )rC  )rS   Tempitar   r8  )r  r  rv  rC  __cachetemplater   s   &&&&&  r   sub_tempitarj    sj    q 7:
 w''	  7& ( 661:7s   A   A! A!c                   V   a a ] tR tRt oRV 3R llt]RR/ 3R l4       tR tRtVt	V ;t
# )rx  i   Nc           	        < Vf   / pMVP                  4       p\        W&WQ4      p\        W6WQ4      p\        WFWQ4      p\        SV `  ! W#3RVRVRV/VB  R # )Nr  rC  rv  )rz  rj  r   r   )	r   rC  r=  r>  r  rv  r  r$  	__class__s	   &&&&&&&,r   r   TempitaUtilityCode.__init__!  ss    ?G llnGED74$54$5	D"	D)-	D48	D<B	Dr   c                    V'       d#   \        \        VP                  4       4      4      MR p\        V4      f   Q hWW3p WF,          #   \         d     Mi ; iT P                  YTR7      ;qtT&   T# )N)r  )r   r   r?  r   rS   ry  )rA  r  r}  r  _TempitaUtilityCode__cachecontext_keyr   r   s   &&&&&   r   r{  TempitaUtilityCode.load_cached-  su    8?eF7==?34TK ,,,0>	< 		!hh'8WhUUs|s   A	 	AAc                P    Vf   R# \        WV P                  V P                  4      # r  )rj  rv  rC  r  s   &&&r   r  TempitaUtilityCode.none_or_sub9  s#     91tyy$))<<r   r  )NNNNNN)r   r   r   r   r   r   r{  r  r   r   __classcell__)rm  r  s   @@r   rx  rx     s1     
D 6:DRT 	 	= =r   rx  c                   H   a  ] tR tRt o RtRt RtR tR	V 3R lR lltRtV t	R# )
LazyUtilityCodeiB  z~
Utility code that calls a callback with the root code writer when
available. Useful when you only have 'env' but not 'code'.
z<lazy>Nc                    Wn         R # r   callback)r   rz  s   &&r   r   LazyUtilityCode.__init__J  s     r   c                "   < V ^8  d   QhRRRR/# r  r  )r   r  s   "r   r  LazyUtilityCode.__annotate__M  s     ? ?M ?D ?r   c                `    V P                  VP                  4      pVP                  W2R 7       R# )r  N)rz  
rootwriterr  )r   r  r  rB  s   &&& r   r   LazyUtilityCode.put_codeM  s'    -- 6 67$$W$>r   ry  r   )
r   r   r   r   r   r+  r   r   r   r   r   s   @r   rw  rw  B  s*      HH!? ? ?r   rw  c                      a  ] tR tRt o ]! 4       R3R ltR tRR ltRR ltRR lt	R t
R	 tRR
 ltR tR tR tR 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V tR# )FunctionStateiR  Nc                   W n         Wn        W0n        R V n        ^ V n        \        4       V n        V P                  4       V n        V P                  4        R V n
        R V n        . V n        R V n        R V n        RV n        RV n        . V n        / V n        / V n        \        4       V n        ^ V n        R V n        . V n        RV n        RV n        RV n        RV n        R # )NFT)names_takenownerr  error_labellabel_counterr   labels_used	new_labelreturn_labelnew_error_labelcontinue_labelbreak_labelyield_labelsexc_varscurrent_except	can_trace	gil_ownedtemps_allocated
temps_freetemps_used_typezombie_tempstemp_counterclosure_tempscollect_temps_stackshould_declare_error_indicatoruses_error_indicatorerror_without_exceptionneeds_refnanny)r   r  r  r  s   &&&&r   r   FunctionState.__init___  s    &

5 NN,""!!E! $&  /4+$)!',$#r   c                ,   V P                   '       d{   V P                  4       pV'       da   R V P                  P                  : RRP	                  \        V4       UUUu. uF  w  r#pV: RV: R2NK  	  uppp4      : 2p\        V4      hR# R# u upppi )z&TEMPGUARD: Temps left over at end of 'z': , z [r  N)r  temps_in_user  rC  r  r   rf   )r   	leftoversrC  ctype	is_pytempmsgs   &     r   validate_exitFunctionState.validate_exit  s    ))+IyIMZ^ZcZc282CeE2C.Y "&u-2CeE [F 
 #3''   eEs   Bc                    V P                   pV^,           V n         R\        P                  V3,          pVe   VRV,           ,          pV# )r   %s%drf  )r  r   label_prefix)r   rC  nlabels   &&  r   r  FunctionState.new_label  sG    --U&--q11S4ZEr   c                    V P                  R V,          4      p\        V P                  4      ^,           V3pV P                  P                  V4       V# )zresume_from_%s)r  r   r  r^  )r   	expr_typer  num_and_labels   &&  r   new_yield_labelFunctionState.new_yield_label  sJ    /);<T../!3U;  /r   c                X    V P                   pV P                  VR ,           4      V n         V# )error)r  r  )r   prefixold_err_lbls   && r   r  FunctionState.new_error_label  s)    &&>>&7*:;r   c                2    V P                   V P                  3# r   r  r  r   s   &r   get_loop_labelsFunctionState.get_loop_labels  s     	r   c                $    Vw  V n         V n        R # r   r  r   labelss   &&r   set_loop_labelsFunctionState.set_loop_labels  s    #				r   c                    V P                  4       pV P                  V P                  VR ,           4      V P                  VR,           4      34       V# )continuebreak)r  r  r  )r   r  
old_labelss   && r   new_loop_labelsFunctionState.new_loop_labels  sM    ))+
^^FZ/0^^FW,-/	0 r   c                ^    V P                   V P                  V P                  V P                  3# r   r  r  r  r  r   s   &r   get_all_labelsFunctionState.get_all_labels  s0    	 	r   c                <    Vw  V n         V n        V n        V n        R # r   r  r  s   &&r   set_all_labelsFunctionState.set_all_labels  s#     $								r   c                    V P                  4       p. p\        V. RO4       F@  w  r4V'       d#   VP                  V P                  V4      4       K/  VP                  V4       KB  	  V P	                  V4       V# )r  )r  r  r  r  )r  r   r^  r  r  )r   r  
new_labels	old_labelrC  s   &    r   all_new_labelsFunctionState.all_new_labels  sh    ((*

":/WXOI!!$.."67!!),	  Y
 	J'r   c                <    V P                   P                  V4       R # r   )r  rd  r   lbls   &&r   	use_labelFunctionState.use_label  s    S!r   c                    WP                   9   # r   )r  r  s   &&r   
label_usedFunctionState.label_used  s    &&&&r   c           	     :   VP                   '       d    VP                  '       g   VP                  pMVP                  '       d    VP                  '       g   VP                  pMVP
                  '       d   ^RIHp VP                  V4      pMvVP                  '       de   VP                  '       gS   V P                  P                  R,          '       d0   V P                  P                  \        P                  RR4      4       VP                  '       g   RpV P                   P#                  W34      pV'       dD   Ve@   V^ ,          '       d1   V^ ,          P%                  4       pV^,          P'                  V4       M V ;P(                  ^,          un        R\*        P,                  V P(                  3,          pWpP.                  9  g   KO   T P0                  P3                  YqY#34       T'       g   T P4                  P7                  T4       W3V P8                  V&   \:        P<                  '       d3   V P>                  PA                  RV: RV: R	V'       d   R
MR: R24       V PB                  '       d$   V PB                  R,          P7                  Wq34       V# )a  
Allocates a temporary (which may create a new one or get a previously
allocated and released one of the same type). Type is simply registered
and handed back, but will usually be a PyrexType.

If type.needs_refcounting, manage_ref comes into play. If manage_ref is set to
True, the temp will be decref-ed on return statements and in exception
handling clauses. Otherwise the caller has to deal with any reference
counting of the variable.

If not type.needs_refcounting, then manage_ref will be ignored, but it
still has to be passed. It is recommended to pass False by convention
if it is known that type will never be a reference counted type.

static=True marks the temporary declaration with "static".
This is only used when allocating backing store for a module-level
C array literals.

if reusable=False, the temp will not be reused after release.

A C string referring to the variable is returned.

PyrexTypes
cpp_localsOptionalLocalsCppSupport.cppFr  r  z allocated (r<  rQ  	 - zombier  r   )"is_cv_qualifiedis_referencecv_base_typeis_fake_referenceref_base_typeis_cfunctionrQ  r  
c_ptr_typeis_cpp_classr  
directivesr  r  r{  needs_refcountingr  r   popremover  r   codewriter_temp_prefixr  r  r^  r  rd  r  r   debug_temp_code_commentsr  r   r  )r   r   
manage_refstaticreusabler  freelistresults   &&&&&   r   allocate_tempFunctionState.allocate_temp  s   . (9(9(9$$Dt'='='=%%D$((.Dt'='='=$**BWBWXdBeBeJJ''(?(?@PRb(cd%%% J??&&'9:,!a[__&FQKv&!!Q&!6#@#@$BSBS"TT!1!115  ''z(JK!!%%f-(,'9V$...JJFDPX"^iJijk###$$R(,,f^<r   c                    V P                   V,          w  r#V P                  P                  W#34      pVf   . \        4       3pW@P                  W#3&   W^,          9   d   \	        RV,          4      hWP
                  9  d   V^ ,          P                  V4       V^,          P                  V4       \        P                  '       d9   V P                  P                  RV: RWP
                  9   d   RMR: R24       R# R# )z^
Releases a temporary so that it can be reused by other code needing
a temp of the same type.
NzTemp %s freed twice!r  z
 released r  rQ  r  )r  r  r   r   rf   r  r^  rd  r   r  r  r   )r   rC  r   r  r  s   &&   r   release_tempFunctionState.release_temp  s    
  //5??&&'9:CE{H2:OOT./A;5<==(((QKt$...JJT->->%>kBFH I /r   c                    . pV P                    F\  w  r#rEV P                  P                  W434      pVe   W&^,          9  g   K5  TP                  Y#T;'       d    VP                  34       K^  	  V# )zhReturn a list of (cname,type,manage_ref) tuples of temp names and their type
that are currently in use.
)r  r  r   r^  r  )r   usedrC  r   r  r  r  s   &      r   r  FunctionState.temps_in_use(  sk     .2.B.B*D
**D+=>H4{#:T)N)N8N8NOP /C r   c                    V P                  4        UUUu. uF'  w  rpV'       g   K  VP                  '       g   K$  W3NK)  	  uppp# u upppi )zReturn a list of (cname,type) tuples of temp names and their type
that are currently in use. This includes only temps
with a reference counted type which owns its reference.
)r  r  )r   rC  r   r  s   &   r   temps_holding_reference%FunctionState.temps_holding_reference3  sL     /3.?.?.A:.A*D
 "&"8"8 .A: 	: :s   AAAc           
     r    V P                    UUUUu. uF  w  rr4V'       g   K  W3NK  	  upppp# u uppppi )zRReturn a list of (cname, type) tuples of refcount-managed Python objects.
        )r  )r   rX  r   r  r  s   &    r   all_managed_tempsFunctionState.all_managed_temps<  s;     8<7K7K7K3E 7K 	 s   1
1
c                    \        V P                  P                  4        UUUUu. uF$  w  w  rq2'       g   K  V^ ,           F  pWA3NK  	  K&  	  upppp4      # u uppppi )zReturn a list of (cname, type) tuples of refcount-managed Python
objects that are not currently in use.  This is used by
try-except and try-finally blocks to clean up temps in the
error case.
)r   r  r?  )r   r   r  r  rX  s   &    r   all_free_managed_temps$FunctionState.all_free_managed_tempsC  sb     040E0E0G
0G,"H: !! M$ 0G
  	 
s
   AAc                L    V P                   P                  \        4       4       R# )z:
Useful to find out which temps were used in a code block
N)r  r^  r   r   s   &r   start_collecting_temps$FunctionState.start_collecting_tempsO  s     	  ''.r   c                6    V P                   P                  4       # r   )r  r  r   s   &r   stop_collecting_temps#FunctionState.stop_collecting_tempsU  s    ''++--r   c                &    \        V4      V n        R # r   )ClosureTempAllocatorr  r   r  s   &&r   init_closure_temps FunctionState.init_closure_tempsX  s    1%8r   )r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   )yieldrQ  FT)r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r   r   r   s   @r   r  r  R  s      +.%t '$V
(

$$	"'
8tI&	:
/.9 9r   r  c                   .   a  ] tR tRt o RtRR ltRtV tR# )NumConsti\  zGlobal info about a Python number constant held by GlobalState.

cname       string
value       string
py_type     string     int, long, float
value_code  string     evaluation code if different from value
Nc                L    Wn         W n        W0n        T;'       g    TV n        R # r   )rX  valuepy_type
value_code)r   rX  r  r  r  s   &&&&&r   r   NumConst.__init__e  s     

$--r   )rX  r  r  r  r   r   r   r   r   r   r   r   r   r   s   @r   r  r  \  s     . .r   r  c                   *   a  ] tR tRt o RtR tRtV tR# )PyObjectConstil  z>Global info about a generic constant held by GlobalState.
    c                    Wn         W n        R # r   rX  r   r   rX  r   s   &&&r   r   PyObjectConst.__init__r  s    
	r   r  Nr  r   s   @r   r  r  l  s     
 r   r  )possible_unicode_identifierpossible_bytes_identifierreplace_identifierfind_alphanumsz(?![0-9])\w+$s   (?![0-9])\w+$z[^a-zA-Z0-9_]+z([a-zA-Z0-9]+)c                   4   a  ] tR tRt o RtR tRR ltRtV tR# )StringConsti~  z?Global info about a C string constant held by GlobalState.
    c                p    Wn         W n        \        P                  ! V4      V n        R V n        RV n        R # NF)rX  textr
   escape_byte_stringescaped_value
py_stringsc_used)r   rX  r*  byte_strings   &&&&r   r   StringConst.__init__  s-    
	+>>{Kr   Nc                   V P                   pV'       g   Vf   R ;rRpM8RpVP                  4       pVR9   d   R pR pMRP                  \        V4      4      pV'       d   RpMFVfA   \	        V\
        4      '       d   \        \        V4      4      pM\        \        V4      4      pMRpWeV3pV P                  f	   / V n	        M V P                  V,          # V'       d   \        P                  R,          M\        P                   V'       d   RMR V'       d
   RV,           MR RV P                  \        \        P                   4      R   2p\#        WWe4      p	WP                  V&   V	#   \         d     Li ; i)	NTFrQ  r%   ubrf  )utf8utf-8r   usasciizus-ascii)r*  lowerr  r%  r   r   r   r#  r"  r-  rS   r   interned_prefixespy_const_prefixrX  r   const_prefixPyStringConst)
r   r  rU  r*  encoding_key
is_unicodeinternr   pystring_cname	py_strings
   &&&       r   rV  StringConst.get_py_string_const  s]   yy )&**HJ J~~'HLL#!ww~h'?@F$&&7=>9$?@F<0??" DOs++
 39v''.f>T>TU sc*%1s\!r:

3v2234568 	 ".FO	(  s   E) )E76E7)r.  rX  r,  r-  r*  r   )	r   r   r   r   r   r   rV  r   r   r   s   @r   r'  r'  ~  s     / /r   r'  c                   4   a  ] tR tRt o RtRR ltR tRtV tR# )r;  i  zDGlobal info about a Python string constant held by GlobalState.
    c                6    Wn         W n        W@n        W0n        R # r   )rX  r  r=  r>  )r   rX  r  r>  r=  s   &&&&&r   r   PyStringConst.__init__  s    
 $r   c                4    V P                   VP                   8  # r   rX  r   r   s   &&r   __lt__PyStringConst.__lt__  s    zzEKK''r   )rX  r  r>  r=  NFF)	r   r   r   r   r   r   rH  r   r   r   s   @r   r;  r;    s     ( (r   r;  c                     a  ] tR tRt o / t. RNRNRNRNRNRNRNR	NR
NRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNRNR NR!NR"NR#NR$NR%NR&NR'NR(NR)NR*Nt. RYOtRZR, ltR- tR. t	R/ t
R0 tR1 tR2 tRZR3 ltR[R4 ltR5 tRZR6 ltR7 tR\R8 ltR9 tRZR: ltR; tR< tR= tRZR> ltR? tR@ tRA tR]RB ltV 3RC lRD ltRE tRF t RG t!RH t"RI t#R\RJ lt$RK t%RL t&RM t'V 3RN lRO lt(RP t)RQ t*]+RR 4       t,RS t-RT t.RU t/RZRV lt0RW t1RXt2V t3R+# )^r  i  h_codefilename_tableutility_code_proto_before_typesnumeric_typedefscomplex_type_declarationstype_declarationsr  module_declarationstypeinfobefore_global_var
global_varstring_declsdeclslate_includesmodule_stater  module_state_endconstant_name_definesr  r  module_state_clear_endr  r  module_state_traverse_endmodule_codemodule_exttypesinitfunc_declarationsinit_modulepystring_tablecached_builtinscached_constantsinit_constantsinit_codeobjectsr  r  cleanup_modulemain_methodutility_code_pragmasr  utility_code_pragmas_endendNc                t   / V n         . V n        / V n        \        4       V n        / V n        R V n        W0n        W@n        / V n	        W n
        / V n        / V n        / V n        / V n        . V n        / V n        . V n        / V n        / V n        \        4       V n        . V n        VP-                  V 4       Wn        R# FN)rM  filename_listinput_file_contentsr   utility_codesdeclared_cnamesin_utility_code_generationcode_configcommon_utility_include_dirpartsr  const_cnames_usedstring_const_indexdedup_const_indexpyunicode_ptr_const_indexcodeobject_constantsnum_const_indexarg_default_constantsconst_array_counterscached_cmethodsinitialised_constantsr  set_global_stater  )r   r  r  rs  rt  s   &&&&&r   r   GlobalState.__init__&  s     #%  U!*/'&*D'
& "$"$!#)+&$&!!%'"$&!!%(U"(*%% r   c                4   V P                   p\        V P                  4       FD  w  r#VP                  4       ;q@P                  V&   V^ 8  g   K,  VP                  RV,          4       KF  	  V P                  R,          pVP                  R\        P                   R\        P                   R24       VP                  R\        P                   R24       V P                  R,          pVP                  R	\        P                   R\        P                   R2R
R7       VP                  R\        P                   R24       VP                  \        P                  ! R4      4       V P                  R,          pVP                  R4       V P                  R,          pVP                  R\        P                   R\        P                   R24       VP                  R\        P                   R24       \        P                  '       g   V P                  R MjV P                  R,          pVP                  R\        P                   R\        P                   R24       VP                  R\        P                   R24       V P                  R,          pVP                  R4       VP                  R4       V P                  R,          pV P                  P                   '       d   VP#                  R4       VP                  R4       VP                  R4       R# )r   z/* #### Code section: %s ### */rc  zint __Pyx_InitCachedBuiltins( *r<  CYTHON_UNUSED_VAR();rd  zint __Pyx_InitCachedConstants(T)refnanny__Pyx_InitCachedConstantsr  zint __Pyx_InitGlobals(void)re  zint __Pyx_InitConstants(r  zvoid __Pyx_CleanupGlobals(r  rQ  z)/* --- Runtime support code (head) --- */r  z
#line 1 "cython_utility"
z"/* --- Runtime support code --- */N)r  r   code_layoutinsertion_pointru  r   start_initcfuncr   modulestatetype_cnamemodulestatevalue_cnameput_setup_refcount_contextr
   rW  r	   r  rs  emit_linenumsr   )r   r  ir  wr   s   &     r   initialize_main_c_code"GlobalState.initialize_main_c_codeB  s   __
 !1!12GA#-#=#=#??A

4 1u9D@A 3
 JJ()	+++,Bv/L/L.MQP	Q 	
$V%B%B$C2FGJJ)*	,++,Bv/L/L.MQP 	 	 	
$V%B%B$C2FG	$$^%A%AB]%^_JJ~&	78JJ'(	&++,Bv/L/L.MQP	Q 	
$V%B%B$C2FG,,,

,-

,-A,//063P3P2QQRTU GG()F)F(GrJKzz./

2

>?zz,-)))JJ56

2

78r   c                ~    V P                   pV P                   F   pVP                  4       V P                  V&   K"  	  R # r   )r  h_code_layoutr  ru  )r   r  r  s   &  r   initialize_main_h_code"GlobalState.initialize_main_h_codes  s2    __
&&D)99;DJJt 'r   c                ~   V P                  4        V P                  R ,          p\        P                  RR4      pVP	                  VP                  VP                  4      4       VP                  R4       V P                  R,          p\        P                  RR4      pVP                  VP                  VP                  4      4       VP                  R4       V P                  R,          p\        P                  RR4      pVP                  VP                  VP                  4      4       VP                  R4       R	# )
r  TypeConversionszTypeConversion.crQ  ri  UtilityCodePragmasModuleSetupCode.crj  UtilityCodePragmasEndN)	close_global_declsru  rx  r{  putr  r>  r   r  )r   r   r  s   &  r   finalize_main_c_code GlobalState.finalize_main_c_codex  s    !
 zz,-!--.?AST!!$)),-

2
 zz01&&';=PQ

4##DII./

2zz45&&'>@ST

4##DII./

2r   c                (    V P                   V,          # r   )ru  )r   r   s   &&r   __getitem__GlobalState.__getitem__  s    zz#r   c                   V P                  4        V P                  R ,          pVP                  R4       VP                  VP                  4      '       d-   VP                  VP                  4       VP                  R4       VP                  R4       VP                  4        V P                  R,          pR F]  pW P                  9   g   K  V P                  VP                  \        P                  V,           4      V P                  V,          V4       K_  	  VP                  4        VP                  R4       VP                  VP                  4      '       d=   VP                  VP                  4       VP                  4        VP                  R4       VP                  R4       VP                  4        R	 F  pV P                  V,          pVP                  R4       VP                  VP                  4      '       d-   VP                  VP                  4       VP                  R4       VP                  R4       VP                  4        K  	  \        P                  '       d5   V P                  R,          pVP                  R4       VP                  4        \        P                  '       d7   V P                  R,          pVP                  R4       VP                  4        R# R# )
rc  	return 0;
return -1;}rd  r  rg  N)r   r   )r  re  )generate_const_declarationsru  r   r  r  	put_labelexit_cfunc_scoper}  immortalize_constantsname_in_module_stater   pyrex_prefixput_finish_refcount_contextr	   r  )r   r  
const_typer  s   &   r   r  GlobalState.close_global_decls  s    	((*JJ()	<<&&KK&GGL!		JJ)*,J666****6+>+>+KL--j9 - 	
%%'	<<&&KK&))+GGL!		6D

4 AGGK ||AMM**AMM*%GGCL  7 (((

,-AGGCL (((

+,AGGCL  )r   c                X    V R ,          P                  RVP                  ,          4       R# )rU  zstatic PyObject *%s;N)r   rX  r   entrys   &&r   put_pyobject_declGlobalState.put_pyobject_decl  s    \  !7%++!EFr   c                    Ve.   WP                   9   d   R # V P                   P                  V4       V P                  R,          # )Nrd  )r  rd  ru  r   targets   &&r   get_cached_constants_writer'GlobalState.get_cached_constants_writer  s;    333&&**62zz,--r   c                    T;'       d    R ;'       g    Rp V P                   W3,          pV#   \         d    T P                  Y4      p T# i ; i)longr   r{  rS   new_num_const)r   	str_valuelongnessr  cs   &&&  r   get_int_constGlobalState.get_int_const  s\    %%v..	7$$i%9:A   	7""96A	7s   . AAc                |     V P                   VR 3,          pV#   \         d    T P                  TR T4      p T# i ; i)r   r  )r   r  r  r  s   &&& r   get_float_constGlobalState.get_float_const  sP    	C$$i%9:A   	C""9gzBA	Cs    ;;c                    Ve"   V P                   P                  V4      pVe   V# V P                  V4      pVe   W0P                   V&   V# r   )rx  r   new_array_const_cname)r   r  	dedup_keyconsts   &&& r   get_py_constGlobalState.get_py_const  sR     **..y9E **62 05""9-r   c                t    V P                  R 4      p\        W!4      pV P                  P                  V4       V# r  )new_const_cnamer  r|  r^  )r   r   rX  r  s   &&  r   get_argument_default_const&GlobalState.get_argument_default_const  s7    $$R(%&""))!, r   c                    VP                   '       d   VP                  4       pMVP                  4       p V P                  V,          pV'       d   R Vn        V#   \         d    T P                  Y4      p L/i ; iT)r=  
utf8encode
byteencoderw  rS   new_string_constr.  )r   r*  r.  r/  r  s   &&&  r   get_string_constGlobalState.get_string_const  sj    ???//+K//+K	9''4A AH	  	9%%d8A	9s   A A87A8c                    VP                   '       g   Q h V P                  V,          pV#   \         d#    T P                  4       ;q P                  T&    T# i ; ir   )r=  ry  rS   r  )r   r*  r  s   && r   get_pyunicode_ptr_const#GlobalState.get_pyunicode_ptr_const  sa    	N..t4A   	N7;7K7K7MMA..t4	Ns   + )AAc                d    V P                  VR R7      pVP                  VP                  V4      pV# )F)r.  )r  rV  r  )r   r*  rU  c_stringr@  s   &&&  r   rV  GlobalState.get_py_string_const  s3     $ 5 5d5 5 I00
K	r   c                    \        V P                  4      p\        P                   R V R2pV P                  P	                  V4       V# )r  r  )r   rz  r   codeobjtab_cnamer^  )r   nodeidxrC  s   &&  r   get_py_codeobj_const GlobalState.get_py_codeobj_const  sD    $++,))*!C52!!((.r   c                (    V P                  VR R7      # TrT  rV  r   r*  s   &&r   get_interned_identifier#GlobalState.get_interned_identifier      '''>>r   c                \    V P                  V4      p\        W1V4      pW@P                  V&   V# r   )new_string_const_cnamer'  rw  )r   r*  r/  rX  r  s   &&&  r   r  GlobalState.new_string_const  s1    ++K8[1/0,r   c                ^    V P                  W4      p\        WAW#4      pWPP                  W3&   V# r   )new_num_const_cnamer  r{  )r   r  r  r  rX  r  s   &&&&  r   r  GlobalState.new_num_const   s4    ((8U7712e-.r   c                J    VP                  R R4      pV P                  VR7      # )ASCIIignore)r  )decoder  )r   bytes_valuer  s   && r   r  "GlobalState.new_string_const_cname&  s(    ""7H5##%#00r   c                    V P                   pVP                  R R R7      ;r4W29   d)   W$,          ^,           ;qRV&   VP                  RVR7      pK.  ^W#&   V# )rQ  )sepr   rf  )rv  r   )r   
format_strr  rX  r  r   s   &&    r   unique_const_cnameGlobalState.unique_const_cname+  s]    %%"))b")==m$(K!O3G5k%%#w%?Er   c                ^   VR 8X  d   VR,          pRp\         P                  V,          pVP                  RR4      P                  RR4      P                  RR4      p\        V4      ^*8  d:   V P	                  VR,           VR	,          ,           R
,           VRR ,           4      pV# V: V: 2pV# )r  Lr   r:  rf  +-neg_zlarge{counter}_:N   N_xxx_Ni)r   r8  r  r   r  )r   r  r  r  rX  s   &&&  r   r  GlobalState.new_num_const_cname4  s    fSLEG))'2c3'//S9AA#vNu:?++**U3Z7'AE#$KOQE  %e,Er   c                    \        R V4      R,          P                  R 4      pV P                  VR,           4      pV'       d   \        P                  V,          pM\        P
                  pV: V: 2# )rf  :N    Nz{sep}{counter})r$  rc  r  r   r8  r:  )r   r  r  name_suffixs   &&& r   r  GlobalState.new_const_cnameC  s]    "3.s399#>--e6F.FG--f5F((F--r   c                    < V ^8  d   QhRS[ /# )r  r  r  )r   r  s   "r   r  GlobalState.__annotate__L  s     9 9C 9r   c                    V P                   P                  V^ 4      pV^,           V P                   V&   \        P                   V RV R2# )r   r  r  )r}  r   r   r  )r   r  counts   && r   r  !GlobalState.new_array_const_cnameL  sL    ))--fa8,1!G!!&)%%&vhawa88r   c                    W3p V P                   V,          pV#   \         d,    T P                  R T: RT: 24      ;q@P                   T&    T# i ; i)umethodrf  )r~  rS   r  )r   rJ  rK  r   rX  s   &&&  r   get_cached_unbound_method%GlobalState.get_cached_unbound_methodQ  sk    '	@((-E   	@040D0Dj+>1@ @E((-	@s    2AAc           	         R \        V4      ,          pV P                  \        P                  VR4      4       V P	                  W44      pV.V,           pRV: RV: V: RRP                  V4      : R2# )zCallUnboundCMethod%dObjectHandling.c__Pyx_z(&r  r<  )r   r  r  r{  r  r  )	r   modulestate_cnamerL  rJ  rK  
arg_cnamesr  cache_cnamerM  s	   &&&&&&   r   rH  +GlobalState.cached_unbound_method_call_codeZ  sh    2S_Dk556GI[\]44ZM{Z'IIdO	
 	
r   c                ~   VP                   '       d   VP                  '       d   V P                  VP                  V4      '       ds   V P	                  V4       VP
                  pV\        9   d   \        V,          pV P                  VP                  \        P                  ! V4      VP                  4       R # R # R # R # r   )
is_builtinis_constshould_declarerX  r  rC  renamed_py2_builtins_mapput_cached_builtin_initposr
   rW  )r   r  rC  s   && r   add_cached_builtin_decl#GlobalState.add_cached_builtin_declg  s    ""5;;66&&u-zz333D9D,,II~;;DAKK! 7 !/r   c                (   V P                   R ,          pVP                  V P                  V4      P                  4      pV P	                  \
        P                  RR4      4       VP                  V: RV: RV: RVP                  V4      : 24       R# )rc  GetBuiltinNamer  z = __Pyx_GetBuiltinName(z); if (!) N)	ru   name_in_main_c_code_module_stater  rX  r  r  r{  r   
error_goto)r   r  rC  rX  r  cname_in_modulestates   &&&&  r   r  #GlobalState.put_cached_builtin_initr  s}    JJ() AA((.44 6##$46HI	K	 LL	 	 r   c                    V P                  4        V P                  4        V P                  4        V P                  4        V P	                  4        R # r   )generate_cached_methods_declsgenerate_object_constant_declsgenerate_codeobject_constantsgenerate_string_constantsgenerate_num_constantsr   s   &r   r  'GlobalState.generate_const_declarations~  s@    **,++-**, 	&&(##%r   c                    VR8  d   RMRpV'       d   RMRpV P                   R,          pVP                  RV RV RV R	V R
2	4       V P                   R,          pVP                  RV RV RV R
24       R# )r  r   
Py_ssize_tPy_VISIT__Pyx_VISIT_CONSTr  for (z i=0; i<z	; ++i) { z(traverse_module_state->z[i]); }r  z&; ++i) { Py_CLEAR(clear_module_state->N   )ru  r   )r   struct_attr_cnamer
  may_have_refcyclescounter_type
visit_callr  s   &&&&   r   )_generate_module_array_traverse_and_clear5GlobalState._generate_module_array_traverse_and_clear  s     %u<#5Z;N
34u\N(5'J<Oghygz  {C  D  	E01u\N(5'9`ar`ss{|}r   c                f   V P                    Uu. uF%  p\        VP                  4      VP                  V3NK'  	  ppVP                  4        V F  w  r4pV P                  R ,          P                  RVP                  P                  V4      ,          4       VP                  P                  '       g   Kf  V P                  R,          P                  RV 2VP                  RRR7       VP                  P                  '       d
   VR,          pV P                  R,          P                  R	V R
24       K  	  \        V P                  P                  4       4       F  w  rV\        P                   V 2pV P                  R ,          P                  RV RV R24       V P!                  WvRR7       \#        V4      pVf   Kf  V\$        P&                  8:  g   K}  V P                  R,          p	V	P)                  RV R24       V	P                  RV	P+                  V R24      ,          4       K  	  R# u upi )rY  z%s;r  zclear_module_state->TF)clear_before_decrefnannyz	->memviewr  z Py_VISIT(traverse_module_state->r  
PyObject *r  ];r5  Nr  zfor (size_t i=0; i<z; ++i) z{ Py_CLEAR(%s); }z[i])r|  r   rX  sortru  r   r   declaration_coder  put_xdecref_clearis_memoryviewslicer   r}  r?  r   r  r8  cleanup_level_for_type_prefixr	   r  r  r#  )
r   r  constsrf  rX  r  r
  r4  cleanup_levelpart_writers
   &         r   r)  *GlobalState.generate_object_constant_decls  s   5575a qww<!,5 	 7!KAaJJ~&,,UQVV5L5LU5S-ST66+++ JJ+,>>&ug.$(	 ?  vv((($JJ./5525'<>' ", $D$=$=$C$C$EFMF#)#6#6"7x @JJ~&,,z:K9LAeWTV-WX ::;Lhm:n9&AM(]g>[>[-["jj):;"5eWG DE!!'#DDHYGZZ]E^_` G37s   +H.c                :   V P                   '       g   R # V P                  R,          pV P                  R,          pVP                  R4       VP                  R4       . p\        V P                   P	                  4       4       F  w  w  rEpVP                  V4       V P                  \        P                  ! V4      4      P                  pVP                  RV,          4       VP                  VP                  V4      : RV: R24       VP                  VP                  V4       RVP                  V4       R24       K  	  \        P                  '       dC   V P                  R	,          pV F'  pVP                  R
VP                  V4       R24       K)  	  R # R # )NrY  rc  rQ  z/* Cached unbound methods */z__Pyx_CachedCFunction %s;z.type = (PyObject*);z.method_name = &r  z	Py_CLEAR(z	.method);)r~  ru  r   r   r?  r^  r  r
   rW  rX  r#  r	   r  )	r   declr  cnamesrJ  rK  rX  method_name_cnamer  s	   &        r   r(  )GlobalState.generate_cached_methods_decls  sl   ###zz.)zz+,

2

1206t7K7K7Q7Q7S0T,%ZuMM%  $ < <^=Y=YZe=f g m mJJ2  JJ55e<jJ K JJ88?@ A99:KLMQPQ 1U (((jj!23G	$*O*OPU*V)WW`ab   )r   c                   . p. p. p\        V P                  P                  4        Uu. uF%  p\        VP                  4      VP                  V3NK'  	  up4       EFF  w   rTVP
                  '       d<   VP                  \        VP                  4      VP                  VP                  34       VP                  '       g   Kh  VP                  P                  4        F  pVP                  pVP                  '       dP   \        V\        4      '       g:   \        P                  ! TP                  VP                   ;'       g    R 4      4      pVP                  '       d   TMTP                  VP"                  ;'       d    VP                  VP                  V34       K  	  EKI  	  VP%                  4        VP%                  4        VP%                  4        V P&                  R,          pV F6  w  rYp
\        P(                  ! V
4      pVP+                  RV	 RV R2RR7       K8  	  \        V P,                  P/                  4       4       F  w  rI\        P0                  ! V4      w  rV'       d   VP+                  R4       VP+                  RV	: R	V: R
24       V'       g   KZ  VP+                  R4       VP+                  RV	: R	V: R
24       VP+                  R4       K  	  \        V4      \        V4      ,           pV P&                  R,          P+                  R\2        P4                   RV R24       V P7                  \2        P4                  VRR7       V P9                  W24       R# u upi )r  rV  zstatic const char z[] = "";Tsafez#ifdef Py_UNICODE_WIDEzstatic Py_UNICODE z[] = { z };#else#endifrY  r=  r  r>  Fr?  N)r   rw  r  r   rX  r.  r^  r,  r-  r*  r=  r   r%   r
   rW  r  r  r>  r@  ru  split_string_literalr   ry  r?  encode_pyunicode_stringr   stringtab_cnamer8  generate_pystring_constants)r   c_constspy_bytes_constspy_unicode_constsr  rf  r@  r*  decls_writerrX  r,  cliteralutf16_arrayutf32_arraypy_string_counts   &              r   r+  %GlobalState.generate_string_constants  s    4CZCZCaCaCcdCcaAGGaggq9CcdeGAqxxxQWWqww HI|||!"!4!4!6I66D +++JtS4I4I-;;DKK	HZHZHeHe^e<fg*3*>*>*>&O[[!((AAY-A-A!]  "7	 f 	  zz.1'/#Am%::=IH$UG6(2>   (0 t==CCEFHA'5'M'Ma'P$K""#;<UKXY{""7+""P[#\]""8, G o.5F1GG

>"((:f6L6L5MQN__a)bc66v7M7Msx6y(():L[ es   +M(c                &   < V ^8  d   QhRS[ RS[ /# )r  text_stringsbyte_strings)r   )r   r  s   "r   r  r    s     L L LD Lr   c                \   V P                   R ,          p. pRFp^ p\        V4       Fl  w  pw  rp
VP                  V
P                  R4      4       VRF8X  d   V'       d   TpVP	                  RV	 R\
        P                   RV R24       V^,          pKn  	  \        V4      pV Fy  w  rp
TP                  V
P                  '       d   V
P                  4       MV
P                  4       4       VP	                  RV	 R\
        P                   RV R24       V^,          pK{  	  \        \        \        V4      4      pRP                  V4      pV P                   R,          pVP	                  R4       TP	                  R	\        V4      P                  4        R
RP                  V Uu. uF  pRV,          NK  	  up4       R24       V P!                  \"        P%                  RR4      4       Rp\'        \(        4       EF  w  pppVf   K  V! V4      p\        V4      \        V4      ^
,
          8  d   K8  VR8X  d   V^8X  g   Q R4       hRpMVR8X  d   RV R2pMRV 2pTP	                  RV'       g   RMR RV RV R\        V4       R2	4       Rp\*        P,                  ! \*        P.                  ! V4      4      pVP	                  RV R 2RR!7       VP	                  R"\        V4       R#V R$24       VP	                  VP1                  R%V P2                  4      4       VP	                  R&4       VP	                  R'4       VP	                  R(VP5                  V P2                  4       R)24       VP	                  R*4       EK  	  V'       d   VP	                  R+\        V4       R24       \*        P,                  ! \*        P.                  ! V4      4      pVP	                  R,V R 2RR!7       VP	                  R-4       VP	                  R.4       V'       d   VP	                  R*4       VP	                  R/VP7                  \
        P                  4       R024       VP	                  R14       V^ 8  d   TP	                  R2VRG8  d   R3MR4 R5V R624       VP	                  R74       VP	                  R84       V^ 8  d   VP	                  R9V R:24       VP	                  R;4       VP	                  R<4       VP	                  VP5                  V P2                  4      4       VP	                  R=4       VP	                  R>4       VP	                  R?4       VP	                  R=4       V\        V4      8  d   TP	                  R2\        V4      RG8  d   R3MR4 R@V RA\        V4       R624       VP	                  R74       VP	                  RB4       VP	                  R>4       VP	                  R?4       VP	                  R;4       VP	                  R<4       VP	                  VP5                  V P2                  4      4       VP	                  R=4       VP	                  R=4       VP	                  R<4       VP	                  RC\        V4       R624       VP	                  RD4       VP	                  VP5                  V P2                  4      4       VP	                  R=4       VP	                  R=4       V\        V4      8  d'   V P9                  REV 2\        V4      V,
          V4       VP	                  R=4       R# u upi )Hr[  r5  #define r  r  r  r   re  {z*const struct { const unsigned int length: z; } index[] = {rF  z{%d}};DecompressStringzStringTools.cFNr   zBCompression algorithm no. 1 must be 'zlib' to be used as fallback.z(CYTHON_COMPRESS_STRINGS) != 0r#   z(CYTHON_COMPRESS_STRINGS) == z+ && __PYX_LIMITED_VERSION_HEX >= 0x030e0000rP  ifelifz /* compression: z (z
 bytes) */Tzconst char* const cstring = "rP  rQ  z1PyObject *data = __Pyx_DecompressString(cstring, r  r  r  z7const char* const bytes = __Pyx_PyBytes_AsString(data);z#if !CYTHON_ASSUME_SAFE_MACROSz,if (likely(bytes)); else { Py_DECREF(data);  }rT  z#else /* compression: none (zconst char* const bytes = "zPyObject *data = NULL;z*CYTHON_UNUSED_VAR(__Pyx_DecompressString);zPyObject **stringtab = rJ  zPy_ssize_t pos = 0;r2  r   r/   i = 0; i < ; i++) {z*Py_ssize_t bytes_length = index[i].length;zIPyObject *string = PyUnicode_DecodeUTF8(bytes + pos, bytes_length, NULL);zif (likely(string) && i >= z#) PyUnicode_InternInPlace(&string);zif (unlikely(!string)) {zPy_XDECREF(data);r  zstringtab[i] = string;zpos += bytes_length;z i = z; i < zHPyObject *string = PyBytes_FromStringAndSize(bytes + pos, bytes_length);zfor (Py_ssize_t i = 0; i < z2if (unlikely(PyObject_Hash(stringtab[i]) == -1)) {zstringtab + r   r3  )ru  r   r^  encoder   r   rW  r   r  r  r  r   r   r  r   
bit_lengthr  r  r{  r   compression_algorithmsr
   rU  r+  error_goto_if_nullr  r$  r#  r  )r   rc  rd  definesbytes_valuesfirst_internedstringtab_posr  is_internedrX  r*  stringtab_bytes_startrf  indexconcat_bytesr  lengthhas_ifalgo_number	algo_namer   compressed_bytesguardescaped_bytess   &&&                     r   rX  'GlobalState.generate_pystring_constants  sl   **45,.+, .7|-D)A)DG 45#!"MMHUG1V-C-C,DAm_TUVWQM .E 47|3D +NAdT]]] 1HYZMMHUG1V-C-C,DAm_TUVWQM +
 Sl+,xx-JJ'(	 	
**-e**?*?*A)B C885$I5Vf__5$IJK3P	
 	k556H/Z[089O0P,KH'5#$L(9B(>>F""a'n+mn'8f$7}Dop7}EGGaF7q?PQZP[[]^abr^s]tt~  AF*??112BCEMGG3M?"EDGQGGGL\H]G^^`al`mmopqGGA((ABGGMNGG45GGCALLQUQ`Q`DaCbbefgGGH9 1Q< GG23|3D2EZPQ&;;--l;=	-m_B?dK	()	<=GGH 	
)!*L*LVMcMc*d)eefgh	%& !1$ GGe%:U%BEUUabwax  yB  C  DGG@AGG_`"5n5EEhijGG./GG'(GGALL12GGCLGG,-GG*+GGCL !3u:-GGeSZ%%7E\J%PeOfflmpqvmwlx  yB  C  DGG@AGG^_GG,-GG*+GG./GG'(GGALL12GGCLGGCL	#$ 	
-c%j\CD	DE	T__-.		
 !3u:-&&6K5L'MsSXz\qOqstu	S %Js   "\)c                   V P                   R ,          pR\        P                   R\        P                   R2pV P                  '       gi   VP                  V4       VP                  R\        P                   R24       VP                  R4       VP                  4        VP                  R4       R# R	p^p^p^p^p^pV P                   F  p	V	P                  p
V
P                  '       g[   \        V\        V
P                  4      V
P                  ,
          4      p\        WZP                  4      p\        WjP                  4      p\        V\        V	P                  4      4      p\        WP                   ^,          4      pK  	  VP#                  \$        P&                  ! R
VP)                  4        RVP)                  4        RVP)                  4        RVP)                  4        RVP)                  4        RVP)                  4        R24      4       V P+                  \,        P/                  RR4      4       VP                  V4       VP                  R4       VP                  R4       V P                   F  p	V	P1                  VR4       K  	  VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  4        VP                  R4       \        V P                  4      pV P                   R,          P                  R\        P2                   RV R24       V P5                  \        P2                  VRR7       R# )rf  zint __Pyx_CreateCodeObjects(r  r<  r  r  r  r  Ni  z=        typedef struct {
            unsigned int argcount : z.;
            unsigned int num_posonly_args : z-;
            unsigned int num_kwonly_args : z%;
            unsigned int nlocals : z#;
            unsigned int flags : z(;
            unsigned int first_line : z;;
        } __Pyx_PyCode_New_function_description;
        
NewCodeObjr  z)PyObject* tuple_dedup_map = PyDict_New();z*if (unlikely(!tuple_dedup_map)) return -1;badzPy_DECREF(tuple_dedup_map);zbad:r  rY  r=  r  r>  Fr?  )ru  r   r  r  rz  r  r   r  def_nodeis_generator_expressionr   r   rM  num_kwonly_argsnum_posonly_argsvarnamesr  r  r   dedentrp  r  r  r{  generate_codeobjr  r8  )r   r  init_function	max_flagsmax_func_argsmax_kwonly_argsmax_posonly_argsmax_varsmax_liner  r  code_object_counts   &           r   r*  )GlobalState.generate_codeobject_constants  s   JJ)**6+G+G*H6KhKhJiijk 	 (((m,GG()F)F(GrJKGGK  GGCL 	--D}}H333 #M3x}}3EH`H`3` a"%o7O7O"P#&'79R9R#S 8S%78H8\\!_5H . 	
hoo #%%2%=%=%?$@ A--=-H-H-J,K L,,;,F,F,H+I J$$,$7$7$9#: ;""+"6"6"8!9 :''/':':'<&= >		 	 		 	k55lDWXY	-(	;<	<=--D!!!U+ . 	
-.			-.			 9 9:

>"((:f6M6M5NaPaObbd)ef66v7N7NPav{6|r   c           	     `   V P                   P                  4        Uu. uFd  pVP                  \        VP                  P                  R 4      4      VP                  P                  R 4      VP                  VP                  V3NKf  	  ppVP                  4        V'       g   R# \        V4      pV P                  R,          P                  R\        P                   RV R24       V P                  \        P                  VRR7       . p. .p. p^ pRpV F  w  p	 rrVP                  pV	R	8X  d   VP                  W34       K/  \        P                   ! V4      pVP#                  4       pV^?8:  d}   V^,           ^,          ^\        V4      ^,
          ,          8  d)   VP                  . 4       R
R\        V4      ^,
           pKT  V^,          pVR0,          P                  W V 234       K  VP                  W34       K  	  V P                  R,          pV P                  R,          pR R lpR R lpR R lpR1R R llp^ pV'       d   VP                  R4       VP                  RVP%                  \        P                  4       R24       V! VRRV4       V! VVV4       V! V\        V4      4       V! VV P&                  R4       VP                  R4       VP                  R4       V\        V4      ,          pV^ 8  EdC   VP                  R4       VP                  RVP%                  \        P                  4       RV R24       . R2OpRp^ p\)        V^4       F  w  ppV'       g   K  R^V^,
          ,           2pV! VVVV,          V4       V! VVVV,           4       V RV R 2pV\        V4      ,          pTV\        V4      8X  d   TMR!V R"V R#2,          pK  	  V! VV4       \        V4      ^8:  d   R$MR%pV! VV P&                  V R&V R'24       VP                  R4       VP                  R4       VV,          pV'       Ed$   R( pVP                  R4       VP                  RVP%                  \        P                  4       RV R24       R)P+                  V Uu. uF  pV! V^,          4      NK  	  up4      P-                  R*4      p VP                  R+\.        P0                  ! V 4       R,24       V! VVV4       V! V\        V4      4       VP                  R-4       V! VV P&                  R.4       VP                  R/4       VP                  R4       VP                  R4       V P3                  VP%                  \        P                  4      VV4       R# u upi u upi )3r  NrY  r=  r  r>  Fr?  rQ  r   LLre  r[  c                <    V ^8  d   QhR\         R\         R\        /# )r  rC  r  	constantsr  )r   s   "r   r  8GlobalState.generate_num_constants.<locals>.__annotate__	  s!     	? 	? 	?S 	?T 	?r   c                     R P                  V Uu. uF  qD^,          NK  	  up4      pV P                  V RV RV R24       R# u upi )rF  z const z[] = {rh  N)r  r   )r  rC  r  r  r  r  s   &&&&  r   store_array7GlobalState.generate_num_constants.<locals>.store_array	  sG    XXY7YttY78FGGugWTF'&=> 8s   Ac                8    V ^8  d   QhR\         P                  /# )r  rk  )r  r/  )r   s   "r   r  r  	  s     	F 	F6+<+< 	Fr   c                 L    VR8  d   RMRpV P                  RV RV R24       R# )r  r   r/  r2  rm  rn  Nr3  r   )r  rk  r6  s   && r   generate_forloop_startBGlobalState.generate_num_constants.<locals>.generate_forloop_start	  s*    $'%K5\LGGeL>cU)DEr   c                $    V ^8  d   QhR\         /# )r  rhs_coder  )r   s   "r   r  r  	  s     	E 	EC 	Er   c                 r    V P                  R V R24       V P                  V P                  RV4      4       R# )znumbertab[i] = rJ  znumbertab[i]N)r   rr  )r  	error_posr  s   &&&r   assign_constant;GlobalState.generate_num_constants.<locals>.assign_constant	  s0    GGohZq12GGA((CDr   c                D    V ^8  d   QhR\         R\        P                  /# )r  r  start_offset)r   r  r/  )r   s   "r   r  r  	  s$     	X 	X 	XVEVEV 	Xr   c           
          \         P                  p\        V4       F/  w  rEV^ ,          pV P                  RV RV RW$,            R24       K1  	  R# )r   rf  r  r  r  N)r   numbertab_cnamer   r   )rs  r  r  r  r  r  rX  s   &&&    r   define_constants<GlobalState.generate_num_constants.<locals>.define_constants	  sP     $*#9#9O!),qTq0A<CSBTTUVW -r   rg  zPyObject **numbertab = rJ  c_constantsdoublez"PyFloat_FromDouble(c_constants[i])r  z + %scint_constants_z[i - r  z(i < z ? z : %s)PyLong_FromLongPyLong_FromLongLongr  r<  c                    V ^ 8  pV'       d   V ) p \        4       pV '       d/   V ^,          pRV,          pVP                  V4       V ^,          p K6  V'       g   R# V'       d   VP                  \        R4      4       VP                  4        V# )r   s    0123456789abcdefghijklmnopqrstuv   0   -)r   r^  r   reverse)numberis_negdigitsdigit
digit_chars   &    r   	to_base325GlobalState.generate_num_constants.<locals>.to_base32L	  sp    %z$WF")/"E.QRW.XJMM*-qLFMM#d), r   s   \000r   zconst char* c_constant = "rP  zchar *end_pos;z+PyLong_FromString(c_constant, &end_pos, 32)zc_constant = end_pos + 1;r   r   )rQ  int8_tint16_tint32_tint64_t)r{  r  r  r   r  lstripr  r@  ru  r   r   r  r8  rX  r^  r   str_to_numberrp  r#  r  r   r  r  r
   rU  r  )!r   r  rE  constant_countfloat_constantsint_constants_by_bytesizelarge_constantsint_constant_count
int_suffixr  rf  r  r  rX  number_valuerp  r  rs  r  r  r  r  constant_offset	int_typesarray_accessint_constants_seen	byte_sizer  
array_name	read_item	capi_funcr  r  s!   &                                r   r,  "GlobalState.generate_num_constants  s;   //668:8a 99c!''.."56s8KQWWVWVbVbdef8 	 :V

>"((:f6L6L5MQ~N^^`)ab66v7M7M~rw6x%'D!
39/GQ*GGE'!&&':;$2259)446
#%>a/!<U8VYZ8Z2[[188<
 &**M3/H+IA+M%N
&!+&-b188%>R\Q]A^9_`#**E+@A% 4:( JJ'(**45	?
	F	E	X ./GGCLGG-a.P.PQWQgQg.h-iijkl=(ODWoG"1c/&:;At0TUGGCLGGCLs?33O!GGCLGG-a.P.PQWQgQg.h-iilm|l}}~  AGIL45(12KQ(O$	9 .qY]/C.DE
Az9Y+?K )_GY5YZ)l%0B/C1E	"c)n4"!*c2K.L!LI !3 4C	{&I )P #1&89-01J-Kq-P)VkIAt9+Q|nA0NOGGCLGGCL11O?& GGCLGG-a.P.PQWQgQg.h-iilm|l}}~  A}}%O!i!o%OPWWX_`HGG01T1TU]1^0__abcWoG"1c/&:;GG$%At0]^GG/0GGCLGGCL""..v/E/EF	_:F &Ps   A*V&)V+c                   VP                  R 4       VP                  R4       VP                  RV  R24       VP                  RV R24       VP                  R4       VP                  R4       VP                  R4       VP                  R	4       VP                  R
4       VP                  R4       VP                  R4       VP                  R
4       R# )z#if CYTHON_IMMORTAL_CONSTANTSrg  zPyObject **table = rJ  zfor (Py_ssize_t i=0; i<z; ++i) {-#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADINGz3Py_SET_REFCNT(table[i], _Py_IMMORTAL_REFCNT_LOCAL);rS  z5Py_SET_REFCNT(table[i], _Py_IMMORTAL_INITIAL_REFCNT);rT  r  Nr  )array_cnamer  r  s   &&&r   r  !GlobalState.immortalize_constantsr	  s    45S*;-q9:.~.>iHIDEJKWLMXSSXr   c                   WP                   9   db   V P                   V,          p\        VP                  4      \        VP                  4      8X  g   Q hVP                  VP                  8X  g   Q hR # W P                   V&   R# r  )rq  r%   r   r  )r   rX  r  r   s   &&& r   r  GlobalState.should_declare	  sf    (((((/Euzz?c%**o555::+++*/  'r   c                    VP                  4       p V P                  V,          pV#   \         dC    \        T P                  4      pT P                  P                  T4       Y0P                  T&    T# i ; ir   )get_filenametable_entryrM  rS   r   rn  r^  )r   source_descr  ry  s   &&  r   lookup_filenameGlobalState.lookup_filename	  st    335	/''.E
 	  	/**+E%%k2).&		/s   ' A	A43A4c                R    V P                   V,          #   \         d     Mi ; iTP                  R RR7      pT Uu. uF5  pRRT9   d#   TP                  RR4      P                  RR4      MT,           NK7  	  Mu upi ppT'       g   TP	                  R	4       Y@P                   T&   T# )
r  r  )r  error_handlingz * rR  r  z.*[inserted by cython to avoid comment closer]/r  z-/[inserted by cython to avoid comment start]*rQ  )ro  rS   	get_linesr  r^  )r   r  source_filern  Fs   &&   r   commented_file_contents#GlobalState.commented_file_contents	  s    	++K88 		!++WX+V $
 $ 
 D[	 J'I&*, , $
 
 !((2,01  -s    ##;A9c                    V'       dB   WP                   9  d0   V P                   P                  V4       VP                  WR7       R# R# R# )z
Adds code to the C file. utility_code should
a) implement __eq__/__hash__ for the purpose of knowing whether the same
   code has already been included
b) implement put_code, which takes a globalstate instance

See UtilityCode.
r  N)rp  rd  r   )r   r'  r  s   &&&r   r  GlobalState.use_utility_code	  s?     L0B0BB""<0!!$!8 C<r   c                   Vf   R # VP                   '       d   V P                  VP                   4       VP                  '       d   V P                  VP                  4       ^RIHp VP                  VP                  4       FD  p\        VR4      '       g   K  VP                  VJg   K)  V P                  VP                  4       KF  	  R # )Nr  r  )
r'  r  utility_code_definitionrQ  r  get_all_subtypesr   r   r  use_entry_utility_code)r   r  r  tps   &&  r   r  "GlobalState.use_entry_utility_code	  s    =!!%"4"45(((!!%"?"?@ --ejj9Br7##(=++BHH5 :r   )r|  r~  rs  rz  rt  r}  rv  rq  rx  rn  rM  rr  r  ro  r  r{  ru  ry  r  r  rw  rp  )rL  rN  rQ  r  rk  r   r  r  )rQ  rQ  )4r   r   r   r   r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  rV  r  r  r  r  r  r  r  r  r  r  rH  r  r  r  r8  r)  r(  r+  rX  r*  r,  r   r  r  r  r  r  r  r   r   r   s   @r   r  r    s    : J*** 	** 		*
 	$* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*  	 !*" 	#*$ 	 %*& 	'*( 	&)** 	!+*, 	 -*. 	)/*0 	$1*2 	3*4 	5*6 	 7*8 	9*: 	;*< 	=*> 	?*@ 	A*B 	C*D 	E*F 	G*H 	I*J 	K*L 	M*N 	O*P 	#Q*R 	S*KZM!8/9b<
..!`G
.?1
.9 9

	!
 &~(Tc:3MjL L\?}BSj  &,9
6 
6r   r  c                 x   aa V P                   o\        P                  ! S4      oV3R  lpV3R lp\        W4      # )c                 (   < S! V P                   4      # r   )	funcstate)r   attribute_ofs   &r   r   !funccontext_property.<locals>.get	  s    DNN++r   c                 6   < \        V P                  SV4       R # r   )r   r  )r   r  rC  s   &&r   r   !funccontext_property.<locals>.set	  s    e,r   )r   r   
attrgetterr   )r,  r   r   r  rC  s   &  @@r   funccontext_propertyr  	  s1    ==D&&t,L,-Cr   c                   *   a  ] tR tRt o RR ltRtV tR# )CCodeConfigi	  c                *    W n         Wn        W0n        R # r   )emit_code_commentsr  c_line_in_traceback)r   r  r  r  s   &&&&r   r   CCodeConfig.__init__	  s    "4*#6 r   )r  r  r  N)TTT)r   r   r   r   r   r   r   r   s   @r   r  r  	  s     
7 7r   r  c                   j  a  ] tR tRt o Rt]P                  ! R R7      RR l4       tR tR t	R t
R	 tR
 t]P                  R 4       tR tR tR tR t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       t]R 4       tRR ltRR ltR tR tR t R t!R t"R t#R  t$R! t%R" t&R# t'R$ t(R% t)RR& lt*RR' lt+R( t,R) t-RR* lt.R+ t/R, t0RR- lt1R. t2R/ t3R0 t4R1 t5RR2 lt6R3 t7]8R4 4       t9]8R5 4       t:R6 t;R7 t<RR8 lt=RR9 lt>]P                  R: 4       t?]P                  R; 4       t@]P                  R< 4       tAR= tB]P                  R> 4       tC]P                  R? 4       tDR@ tEV 3RA lRB ltF]P                  RC 4       tG]P                  RD 4       tH]P                  RE 4       tI]P                  RF 4       tJ]P                  RG 4       tKRH tLRI tMRJ tNRRK ltOV 3RL lRM ltPRN tQRO tRRP tS]T3RQ ltURR tVRS tWRT tXRU tYRV tZRW t[RRX lt\RRY lt]RRZ lt^RR[ lt_RR\ lt`RR] ltaR^ tbR_ tcR` tdRa teRb tfRc tgRd thRe tiRf tjRg tkRh tlRi tmRj tnRk toRl tpRm tqRRn ltrRo tsRp ttRq tuRRr ltvRRs ltwRRt ltxRu tyRv tzRRw lt{RRx lt|Ry t}Rz t~RR{ ltRR| ltR} tR~ tRR ltRR ltRR ltR tR tR tR tR tR tRR ltRR ltRR ltRR ltR tR tRR ltRR ltRR ltRR ltR tR tRR ltR tR tRR ltR tRR lt]EP?                  RR4      3R ltR tR tR tRtV tR# )r  i	  ar  
Utility class to output C code.

When creating an insertion point one must care about the state that is
kept:
- formatting state (level, bol) is cloned and used in insertion points
  as well
- labels, temps, exc_vars: One must construct a scope in which these can
  exist by calling enter_cfunc_scope/exit_cfunc_scope (these are for
  sanity checking and forward compatibility). Created insertion points
  looses this scope and cannot access it.
- marker: Not copied to insertion point
- filename_table, filename_list, input_file_contents: All codewriters
  coming from the same root share the same instances simultaneously.
create_fromNc                   Vf   \        4       pW n        R V n        R V n        . V n        R V n        R V n        R V n        ^ V n        ^ V n	        ^V n
        Ve   V P                  VP                  4       VP
                  V n        V'       d4   VP                  V n        VP                  V n
        VP                  V n	        VP                  V n        VP                  V n        R # R # r   )r   bufferlast_poslast_marked_pospyclass_stackr  r  rs  r!   
call_levelbolr  )r   r  r  copy_formattings   &&&&r   r   CCodeWriter.__init__
  s    >LN6#
"!!+"9"9:(22DN(..
&??"-"8"8'00DM#.#>#>D  #r   c                    \        WV4      pV# r   r  )r   r  r  r
  r  s   &&&& r   
create_newCCodeWriter.create_new
  s     [/Br   c                T    V P                   e   Q hWn         VP                  V n        R # r   )r  rs  )r   global_states   &&r   r  CCodeWriter.set_global_state#
  s(    '''''33r   c                <    V P                   P                  V4       R # r   )r  copyto)r   r  s   &&r   r  CCodeWriter.copyto(
  s    1r   c                6    V P                   P                  4       # r   )r  getvaluer   s   &r   r  CCodeWriter.getvalue+
  s    {{##%%r   c                \    R V9   d   V P                  V4       R# V P                  V4       R# )r7  N)_write_lines_write_to_bufferr   r  s   &&r   r   CCodeWriter.write.
  s%    19a !!!$r   c                    V P                   '       d   V P                   R ,          MRpV P                  P                  P                  V.VP	                  R4      ,          4       V P                  V4       R# )Nr  NNr7  )Nr   )r  r  markersr  r
  r  )r   r  filename_lines   && r   r  CCodeWriter._write_lines4
  sV    
 594H4H4H,,R0i""M?QWWT]#BCa r   c                <    V P                   P                  V4       R # r   )r  r   r  s   &&r   r  CCodeWriter._write_to_buffer>
  s    !r   c                \    V P                  W P                  P                  4       R R7      pV# )T)r  r  r
  )r  r  r  rG  s   & r   r  CCodeWriter.insertion_pointA
  s'    D9T9T9Vhlmr   c                    \        V R7      # )zi
Creates a new CCodeWriter connected to the same global state, which
can later be inserted using insert.
r  r  r   s   &r   
new_writerCCodeWriter.new_writerE
  s    
 t,,r   c                    VP                   V P                   J g   Q hV P                  P                  VP                  4       R# )z
Inserts the contents of another code writer (created with
the same global state) in the current location.

It is ok to write to the inserted writer also after insertion.
N)r  r  insert)r   r  s   &&r   r+  CCodeWriter.insertL
  s4     !!T%5%55556==)r   c                    R # r   r  r   s   &r   r  CCodeWriter.label_counterW
  s    !r   c                    R # r   r  r   s   &r   r  CCodeWriter.return_labelY
       r   c                    R # r   r  r   s   &r   r  CCodeWriter.error_label[
      r   c                    R # r   r  r   s   &r   r  CCodeWriter.labels_used]
  r4  r   c                    R # r   r  r   s   &r   r  CCodeWriter.continue_label_
  s    "r   c                    R # r   r  r   s   &r   r  CCodeWriter.break_labela
  r4  r   c                    R # r   r  r   s   &r   return_from_error_cleanup_label+CCodeWriter.return_from_error_cleanup_labelc
  s    /3r   c                    R # r   r  r   s   &r   r  CCodeWriter.yield_labelse
  r1  r   c              #    "   \        W4       Fv  w  rgV P                  V4      '       g   K  V'       d   V P                  V4       RpVe   V P                  WER7       V P	                  V4       Wg3x  V P                  V4       Kx  	  R# 5i)a  
Helper for generating multiple label interceptor code blocks.

@param new_labels: the new labels that should be intercepted
@param orig_labels: the original labels that we should dispatch to after the interception
@param skip_to_label: a label to skip to before starting the code blocks
@param pos: the node position to mark for each interceptor block
@param trace: add a trace line for the pos marker or not
N)trace)r   r  put_gotomark_posr  )r   r  orig_labelsskip_to_labelr  rA  r  
orig_labels   &&&&&&  r   label_interceptorCCodeWriter.label_interceptorh
  ss      "%Z!=E??5))m, $c/NN5!%%MM*% ">s   1B
AB
c                8    V P                   P                  V4      # r   )r  r  r   rC  s   &&r   r  CCodeWriter.new_label
  s    dnn.F.Ft.L'Lr   c                6    V P                   P                  ! V!  # r   )r  r  r   rM  s   &*r   r  CCodeWriter.new_error_label
      dnn.L.Ld.S'Sr   c                6    V P                   P                  ! V!  # r   )r  r  rM  s   &*r   r  CCodeWriter.new_yield_label
  rO  r   c                6    V P                   P                  4       # r   )r  r  r   s   &r   r  CCodeWriter.get_loop_labels
  s    dnn.L.L.N'Nr   c                8    V P                   P                  V4      # r   )r  r  r  s   &&r   r  CCodeWriter.set_loop_labels
  s    dnn.L.LV.T'Tr   c                6    V P                   P                  ! V!  # r   )r  r  rM  s   &*r   r  CCodeWriter.new_loop_labels
  rO  r   c                6    V P                   P                  4       # r   )r  r  r   s   &r   r  CCodeWriter.get_all_labels
      dnn.K.K.M'Mr   c                8    V P                   P                  V4      # r   )r  r  r  s   &&r   r  CCodeWriter.set_all_labels
  s    dnn.K.KF.S'Sr   c                6    V P                   P                  4       # r   )r  r  r   s   &r   r  CCodeWriter.all_new_labels
  rZ  r   c                8    V P                   P                  V4      # r   )r  r  r  s   &&r   r  CCodeWriter.use_label
  s    dnn.F.Fs.K'Kr   c                8    V P                   P                  V4      # r   )r  r  r  s   &&r   r  CCodeWriter.label_used
  s    dnn.G.G.L'Lr   c                (    \        WR 7      V n        R# ))r  N)r  r  r  s   &&r   enter_cfunc_scopeCCodeWriter.enter_cfunc_scope
  s    &t9r   c                h    V P                   f   R # V P                   P                  4        R V n         R # r   )r  r  r   s   &r   r  CCodeWriter.exit_cfunc_scope
  s&    >>!$$&r   c                   V P                   P                  R,          pVP                  RV R24       V P                  V4       V P                  R4       V P                  RV R24       V'       d   V P	                  4        R# R# )z
Init code helper function to start a cfunc scope and generate
the prototype and function header ("static SIG {") of the function.
r`  zstatic CYTHON_SMALL_CODE ; /*proto*/rQ  r	   {N)r  ru  r   rd  put_declare_refcount_context)r   	signaturer  r  r=  s   &&&& r   r  CCodeWriter.start_initcfunc
  ss    
   &&'>?/	{+FGu%

2

WYKs+,--/ r   c                ^   VP                  V4      pR VP                  V4       RV R2pV'       d:   V P                  R,          P                  VP	                  RR4      R,           4       V'       d   V P                  V4       V P                  R4       V P                  VR,           4       R# )	r	  r  r<  rW  CYTHON_UNUSED rQ  ri  rj  N)mangle_internalrA  r  r   r  rd  )	r   class_scopereturn_typec_slot_nameargs_signatureneeds_funcstateneeds_prototypeslotfunc_cnamedeclarations	   &&&&&&&  r   start_slotfuncCCodeWriter.start_slotfunc
  s    $44[A < <^ LMQ~N^^_`W%++K,?,?@PRT,UXe,ef"";/

2

;%&r   c                j    V P                  V P                  P                  W4      P                  4      # r   )r  r  r  rX  )r   r  r  s   &&&r   
get_py_intCCodeWriter.get_py_int
  s/    ((**9?EE
 	
r   c                j    V P                  V P                  P                  W4      P                  4      # r   )r  r  r  rX  )r   r  r  s   &&&r   get_py_floatCCodeWriter.get_py_float
  s/    ((,,YCII
 	
r   c                V    V P                  V P                  P                  W4      4      # r   )r  r  r  )r   r  r  s   &&&r   r  CCodeWriter.get_py_const
  s)    (())&<
 	
r   c                L    V P                   P                  V4      P                  # r   )r  r  rX  r  s   &&r   r  CCodeWriter.get_string_const
  s    006<<<r   c                8    V P                   P                  V4      # r   )r  r  r  s   &&r   r  #CCodeWriter.get_pyunicode_ptr_const
  s    77==r   c                n    V P                   P                  W4      P                  pV P                  V4      # r   )r  rV  rX  r  )r   r*  rU  rX  s   &&& r   rV  CCodeWriter.get_py_string_const
  s4      44#e 	((//r   c                V    V P                  V P                  P                  V4      4      # r   )r  r  r  )r   r  s   &&r   r   CCodeWriter.get_py_codeobj_const
  s$    (()9)9)N)Nt)TUUr   c                j    V P                  V P                  P                  V4      P                  4      # r   )r  r  r  rX  r   r   s   &&r   r  &CCodeWriter.get_argument_default_const
  s+    (()9)9)T)TUY)Z)`)`aar   c                $    V P                  V4      # r   r  r  s   &&r   r>  CCodeWriter.intern
  s    ''--r   c                (    V P                  VR R7      # r  r  r  s   &&r   intern_identifierCCodeWriter.intern_identifier
  r  r   c                8    V P                   P                  V4      # r   )r  r  r  s   &&r   r  'CCodeWriter.get_cached_constants_writer
  s    ;;FCCr   c                    V P                   P                  f   V P                  V4      # V P                   P                  P                  V4      # r   )r  r  r#  r  r   rX  s   &&r   r   CCodeWriter.name_in_module_state
  s@    >>' 88??~~##88??r   c                ,    \         P                   R V  2# ra  )r   r  rF  s   &r   r#  ,CCodeWriter.name_in_main_c_code_module_state
  s    
 //05'::r   c                ,    \         P                   R V  2# ra  )r   rI  rF  s   &r   name_in_slot_module_state%CCodeWriter.name_in_slot_module_state
  s     001E7;;r   c                t    VP                   '       d   VP                  # V P                  VP                  4      # r   )is_py_class_scopenamespace_cnamer  r  s   &&r   namespace_cname_in_module_state+CCodeWriter.namespace_cname_in_module_state
  s1    """(((,,U-B-BCCr   c                t    VP                   '       d   V P                  VP                  4      # VP                  # r   )is_extension_typer  typeptr_cnamer  s   &&r   typeptr_cname_in_module_state)CCodeWriter.typeptr_cname_in_module_state
  s1    !!!,,T-?-?@@%%%r   c                   V P                   '       d#   V P                  '       d   V P                  4        V P                  P                  '       dH   V P
                  '       d6   V P
                  w  r4pV P                  R V RVP                  4        R24       V'       d,   V'       d   V P                  V4       MV P                  V4       V P                  R4       ^V n        R# )z
#line z "r9  r7  N)
r  r	  emit_markerrs  r  r  r  get_escaped_descriptionput_safer  )r   r   rR  r  rn  rf  s   &&&   r   r   CCodeWriter.putln   s    ===TXXX)))d.B.B.B#'#7#7 Kqb1T1T1V0WWZ[\d#$r   c                    Vf   R # V P                   '       d"   V P                   R,          VR,          8X  d   R # W3V n        R # )Nr  )r  r  r   r  rA  s   &&&r   rC  CCodeWriter.mark_pos  s8    ;D$8$8$<B$Gr   c                ,   V P                   w  rWn        R V n         V P                  R4       V P                  P                  '       d1   V P                  4        V P                  V P                  V4      4       V'       d   V P                  V4       R # R # )Nr7  )r  r  r  rs  r  indent_build_markerwrite_trace_liner  s   &  r   r  CCodeWriter.emit_marker  sr    ]]
"$...KKMd0056!!#& r   c                   V P                   '       d   V P                   P                  '       d   V P                  P                  R ,          '       dr   V P	                  4        V P                  RV^,          R RV P                  V4      R RV P                   P                  '       * R RV P                  V4       R2	4       R# R# R# R# )	linetracez__Pyx_TraceLine(r   rF  z)
N)	r  r  r  r  r  r  pos_to_offsetr  r$  r   r  s   &&r   r  CCodeWriter.write_trace_line!  s    >>>dnn6664;K;K;V;VWb;c;cKKM"3q6!*Ad.@.@.Ea-HdnnNfNfJfghIiijkokzkz{~k  kA  AD  EF <d6>r   c                B   Vw  r#p\        V\        4      '       g   Q hV P                  P                  V4      pV\	        ^ V^,
          4      V pVR;;,          R,          uu&   WeW3^,            ,          pRP                  V4      pRVP                  4        RVR RV R2# )r   z             # <<<<<<<<<<<<<<r7  z/* "z":r   z
*/
r   )r   r   r  r  r   r  r  )r   r  r  rn  colcontentsrD  r   s   &&      r   r  CCodeWriter._build_marker(  s    !$3+'78888##;;KHQQ-b	44	$Av&&yyk99;<BtAhbfUUr   c                6    V P                  V4       ^ V n        R# r   N)r   r	  r   r   s   &&r   r  CCodeWriter.put_safe3  s    

4r   c                J   V P                   P                  pV'       EdY   \        V4      R 8  EdH   \        P                  ! VP                  R4      4      P                  4       pV RV R2p\        P                  P                  W54      p\        P                  P                  V4      '       g   V R\        P                  ! 4        2pRp \        P                  ! V4      ;_uu_ 4       p	V	P                  V4       RRR4       \        P                   ! Wv4       RpV'       g<   \        P                  P                  V4      '       d   \        P&                  ! V4       VP)                  RR	4      p
R
V
 R2pV P+                  V4       R#   + '       g   i     L; i  \"        \$        3 d*    \        P                  P                  T4      '       g   h  Li ; i  T'       g>   \        P                  P                  T4      '       d   \        P&                  ! T4       i i i ; i)i   r4  rf  z.hz.tmpFNTr8  rR  z
#include "r9  )r  rt  r   hashlibsha256ro  	hexdigestr   r  r  existsgetpidr   open_new_filer   shutilmoverG   r`   unlinkr  r  )r   r   rC  include_dirr   include_filer  tmp_pathdoner  c_paths   &&&        r   r  CCodeWriter.put_or_include8  s   &&AA;3t9t+>>$++f"56@@BD"V1TF"-L77<<:D77>>$''"V4		}5,,,X66! 7KK/D  BGGNN8$<$<		(+ \\$,Fxs+DD!! 76 (9  77>>$// 0  BGGNN8$<$<		(+ %=4sH   F +F= F F	F 5GGG GG -H"	H"c                    V P                   '       d:   R V9   d3   RV P                   ,          P                  VP                  RR7      4      pV P                  V4       R# )r7  r  TkeependsN)r!   r  r<  r  r  s   &&r   r  CCodeWriter.put_multilinesU  sB     :::$$,4::%++DOOTO,JKDr   c                   R pRV9   d   VP                  R4      M^ pRV9   di   W1P                  R4      ,          pV^ 8  d   V ;P                  V,          un        M0V^ 8X  d*   V^ ,          R8X  d   RpV ;P                  ^,          un        V P                  '       d   V P                  4        V P	                  V4       ^ V n        V^ 8  d   V ;P                  V,          un        R# V'       d   V ;P                  ^,          un        R# R# )Frg  r  TN)r
  r!   r	  r  r   )r   r   
fix_indentdls   &&  r   r  CCodeWriter.put]  s    
36$;

3A$;**S/!BAv

b 
qT!W^!


a
888KKM

46JJ"JJJ!OJ r   c                    < V ^8  d   QhRS[ /# )r  rB  rA  )r   r  s   "r   r  CCodeWriter.__annotate__q  s     	R 	R[ 	Rr   c                n   VP                   '       d   Q VP                  4       hVP                  W P                  R 4       VP	                  V P                  4       VP
                  '       dI   \        P                  '       d1   VP                  V P                  R,          V P                  R4       R# R# R# )r>  r  r  N)r=  rC  r  r  r  r  r	   r  )r   rB  s   &&r   put_code_hereCCodeWriter.put_code_hereq  s     ===.',,. !!$(8(8&A&&t'7'78???w<<<%%  !23T5E5EyR  =?r   c                8    V ;P                   ^,          un         R# r   Nr    r   s   &r   increase_indentCCodeWriter.increase_indent|      

a
r   c                8    V ;P                   ^,          un         R# r  r    r   s   &r   decrease_indentCCodeWriter.decrease_indent  r  r   c                H    V P                  R 4       V P                  4        R# )rg  N)r   r  r   s   &r   begin_blockCCodeWriter.begin_block  s    

3r   c                H    V P                  4        V P                  R 4       R# )r  N)r  r   r   s   &r   	end_blockCCodeWriter.end_block  s    

3r   c                J    V P                  R V P                  ,          4       R# )r  N)r  r!   r   s   &r   r  CCodeWriter.indent  s    dTZZ/0r   c                B    R \        V4      R,           R,          ,          # )z0x%02X%02X%02X%02X:N   N)r   r   r   r   )r   )r   	pyversions   &&r   get_py_version_hexCCodeWriter.get_py_version_hex  s    #uY'7)'CR&HHHr   c                n    WP                   P                  9   d   V P                  R V,          4       R# R# )z%s:;N)r  r  r   r  s   &&r   r  CCodeWriter.put_label  s'    ..,,,JJv|$ -r   c                l    V P                   P                  V4       V P                  R V,          4       R# )goto %s;N)r  r  r   r  s   &&r   rB  CCodeWriter.put_goto  s%      %

:#$r   c                t   VP                   R 8X  d   V'       g   VP                  '       g   R# VP                   R 8X  d   VP                  '       g   R# VP                  '       g   V P	                  R4       V'       d   V P	                  RV,          4       VP
                  '       d8   V P	                  VP                  P                  VP                  VR7      4       M6V P	                  VP                  P                  VP                  VR7      4       VP                  e=   V P                  RVP                  P                  VP                  4      ,          4       M-VP                  P                  '       d   V P	                  R4       V P                  R4       V P                  P!                  V4       R# )privateNro  %s )dll_linkagez = %sz = NULLrJ  )
visibilitydefined_in_pxdr  cf_usedr  is_cpp_optionalr   cpp_optional_declaration_coderX  rA  r  r  literal_codeis_pyobjectr   r  r  )r   r  storage_classr  
definitions   &&&&&r   put_var_declarationCCodeWriter.put_var_declaration  s2    y(*@T@T@Ty(}}}HH%&HHU]*+   HHUZZ== > 6 7 HHUZZ00 1 6 7::!MM'EJJ$;$;EJJ$GGHZZ###HHY

3//6r   c                    < V ^8  d   QhRS[ /# )r  func_context)r  )r   r  s   "r   r  r    s     I I- Ir   c                   VP                    EF  w  r#rEVP                  '       dH   VP                  '       g6   VP                  P                  R ,          '       d   VP                  V4      pMVP                  V4      pVP                  '       d   V P                  RV,          4       K  VP                  '       d5   V P                  V: RVP                  VP                  4      : R24       K  T P                  T;'       d    R;'       g    R: V: R24       EK  	  VP                  '       d   V P                  P                  '       d   RpMRpV P                  V: R\        P                   : R24       V P                  V: R	\        P"                  : R
24       V P                  V: R\        P$                  : R24       R# R# )r  z
%s = NULL; = rJ  r	  rQ  ro  zint z = 0;zconst char *z = NULL;N)r  r  r  r  r  r   rA  r  r   rC  r  default_valuer  r  r  r   lineno_cnamefilename_cnameclineno_cname)r   r  rC  r   r  r  rK  unuseds   &&      r   put_temp_declarations!CCodeWriter.put_temp_declarations  sG   .:.J.J*D
   )?)?)?LDVDVDaDabnDoDo99$?,,T2

<$./(((

t/@/@ASAS/TUV

f&:&:&@&@b&@$GH /K 666~~222)JJ&&2E2EFGJJVV=R=RSTJJ&&2F2FGH 7r   c                f    V P                  \        P                  4       V P                  R 4       R# )rQ  N)r   r   GENERATED_BY_MARKERr   s   &r   put_generated_byCCodeWriter.put_generated_by  s    

5,,-

2r   c                f    V P                  R V,          4       V P                  RV,          4       R# )z
#ifndef %sz
#define %sNr  )r   r  s   &&r   put_h_guardCCodeWriter.put_h_guard  s$    

<%'(

<%'(r   c                D    \         P                  '       d
   R V,          # V# )zunlikely(%s))r	   gcc_branch_hintsr   conds   &&r   unlikelyCCodeWriter.unlikely  s    ###!D((Kr   c           
     z    V'       g   R # RRP                  V Uu. uF
  q2! W34      NK  	  up4      ,          # u upi )rQ  r  r  )r  )r   	modifiersmapperro  s   &&& r   build_function_modifiers$CCodeWriter.build_function_modifiers  s2    sxxi @ii @AAA @s   8
c                    VP                   pVP                  '       g!   VP                   P                  4       '       d   VP                   P                  '       d   R VP                  ,           # VP                  # )z(PyObject *))r   is_self_argis_completer  rX  )r   r  r   s   && r   entry_as_pyobjectCCodeWriter.entry_as_pyobject  sR    zz!!!%***@*@*B*B::///!EKK//;;r   c                $    ^RI HpHp V! W2V4      # )r   py_object_typetypecast)r  r+  r,  )r   rX  r   r+  r,  s   &&&  r   as_pyobjectCCodeWriter.as_pyobject  s    8e44r   c                (    VP                  W4       R # r   )generate_gotrefr   s   &&&r   
put_gotrefCCodeWriter.put_gotref  s    T)r   c                (    VP                  W4       R # r   )generate_giverefr   s   &&&r   put_giverefCCodeWriter.put_giveref      d*r   c                (    VP                  W4       R # r   )generate_xgiverefr   s   &&&r   put_xgiverefCCodeWriter.put_xgiveref  s    t+r   c                (    VP                  W4       R # r   )generate_xgotrefr   s   &&&r   put_xgotrefCCodeWriter.put_xgotref  r7  r   c                ,    VP                  WVR 7       R# )r<  N)generate_increfr   rX  r   r<  s   &&&&r   
put_increfCCodeWriter.put_incref  s     	T6r   c                ,    VP                  WVR 7       R# rA  )generate_xincrefrC  s   &&&&r   put_xincrefCCodeWriter.put_xincref  s    d7r   c                ,    VP                  WW4R 7       R# )r<  have_gilN)generate_decrefr   rX  r   r<  rL  s   &&&&&r   
put_decrefCCodeWriter.put_decref  s    TIr   c                ,    VP                  WW4R 7       R# rK  )generate_xdecrefrN  s   &&&&&r   put_xdecrefCCodeWriter.put_xdecref  s    dJr   c                .    VP                  WVWER 7       R# )r;  r<  rL  N)generate_decref_clearr   rX  r   r;  r<  rL  s   &&&&&&r   put_decref_clearCCodeWriter.put_decref_clear
  s    ""4DW$) 	# 	>r   c                .    VP                  WVWER 7       R# rV  )generate_xdecref_clearrX  s   &&&&&&r   rB  CCodeWriter.put_xdecref_clear  s    ##DEX$) 	$ 	>r   c                *    VP                  WV4       R # r   )generate_decref_setr   rX  r   	rhs_cnames   &&&&r   put_decref_setCCodeWriter.put_decref_set  s      i8r   c                *    VP                  WV4       R # r   )generate_xdecref_setr`  s   &&&&r   put_xdecref_setCCodeWriter.put_xdecref_set  s    !!$y9r   c                ,    VP                  WVR 7       R# )rL  N)generate_incref_memoryviewslice)r   slice_cnamer   rL  s   &&&&r   put_incref_memoryviewslice&CCodeWriter.put_incref_memoryviewslice  s    ,,T,Rr   c                V    V P                  VP                  VP                  VR 7       R# ri  )rl  rX  r   )r   r  rL  s   &&&r   put_var_incref_memoryviewslice*CCodeWriter.put_var_incref_memoryviewslice  s    ''UZZ('Sr   c                R    V P                  VP                  VP                  4       R # r   )r1  rX  r   r  s   &&r   put_var_gotrefCCodeWriter.put_var_gotref  s    UZZ0r   c                R    V P                  VP                  VP                  4       R # r   )r5  rX  r   r  s   &&r   put_var_giverefCCodeWriter.put_var_giveref"      ejj1r   c                R    V P                  VP                  VP                  4       R # r   )r>  rX  r   r  s   &&r   put_var_xgotrefCCodeWriter.put_var_xgotref%  rw  r   c                R    V P                  VP                  VP                  4       R # r   )r:  rX  r   r  s   &&r   put_var_xgiverefCCodeWriter.put_var_xgiveref(  s    %++uzz2r   c                V    V P                   ! VP                  VP                  3/ VB  R # r   )rD  rX  r   r   r  kwdss   &&,r   put_var_increfCCodeWriter.put_var_incref+      UZZ848r   c                V    V P                   ! VP                  VP                  3/ VB  R # r   )rH  rX  r   r  s   &&,r   put_var_xincrefCCodeWriter.put_var_xincref.      ejj9D9r   c                V    V P                   ! VP                  VP                  3/ VB  R # r   )rO  rX  r   r  s   &&,r   put_var_decrefCCodeWriter.put_var_decref1  r  r   c                V    V P                   ! VP                  VP                  3/ VB  R # r   )rS  rX  r   r  s   &&,r   put_var_xdecrefCCodeWriter.put_var_xdecref4  r  r   c                n    V P                   ! VP                  VP                  3R VP                  /VB  R# r;  N)rY  rX  r   
in_closurer  s   &&,r   put_var_decref_clear CCodeWriter.put_var_decref_clear7  s+    ekk5::d5K[K[d_cdr   c                X    V P                   ! VP                  VP                  V3/ VB  R # r   )rb  rX  r   r   r  ra  r  s   &&&,r   put_var_decref_setCCodeWriter.put_var_decref_set:  s!    EKKYG$Gr   c                X    V P                   ! VP                  VP                  V3/ VB  R # r   )rf  rX  r   r  s   &&&,r   put_var_xdecref_setCCodeWriter.put_var_xdecref_set=  s!    U[[%**iH4Hr   c                n    V P                   ! VP                  VP                  3R VP                  /VB  R# r  )rB  rX  r   r  r  s   &&,r   put_var_xdecref_clear!CCodeWriter.put_var_xdecref_clear@  s+    u{{EJJeEL\L\e`der   c                    V FU  pV'       d   VP                   '       g   K  VP                  '       d   V P                  V4       KD  V P                  V4       KW  	  R # r   )r  xdecref_cleanupr  r  )r   entries	used_onlyr  s   &&& r   put_var_decrefsCCodeWriter.put_var_decrefsC  s?    E


(((((/''. r   c                :    V F  pV P                  V4       K  	  R # r   )r  r   r  r  s   && r   put_var_xdecrefsCCodeWriter.put_var_xdecrefsK  s    E  ' r   c                :    V F  pV P                  V4       K  	  R # r   )r  r  s   && r   put_var_xdecrefs_clear"CCodeWriter.put_var_xdecrefs_clearO  s    E&&u- r   c                \   V P                   P                  P                  '       gM   V P                   P                  P                  '       g'   V P                   P                  P                  '       d:   V P                  R 4       V P                  RV R24       V P                  R4       R# R# )z?#if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030E0000z)PyUnstable_Object_EnableDeferredRefcount(r  rT  N)r  r  is_module_scopeis_c_class_scoper  r   r  s   &&r   put_make_object_deferred$CCodeWriter.put_make_object_deferredS  sz     NN  000$$555$$666JJXYJJB5'LMJJx  7r   c                    ^RI HpHp V! W$R4      pV'       d   V P                  V: RV: R24       R# V P                  V: RV: R24       R# )r   r*  Py_Noner
  z; __Pyx_INCREF(Py_None);z; Py_INCREF(Py_None);N)r  r+  r,  r   )r   rX  r   r<  r+  r,  py_nones   &&&&   r   put_init_to_py_noneCCodeWriter.put_init_to_py_none^  s6    84;JJE7KLJJHIr   c                    W!P                   ,          pV P                  WAP                  V4       VP                  '       d   V P	                  R 4       R# R# )r  N)rX  r  r   r  r5  )r   r  ri  r<  r   s   &&&& r   put_init_var_to_py_none#CCodeWriter.put_init_var_to_py_nonef  sC    ++% 	  zz59Y' r   c                   R pVP                   '       g   VP                  R8X  d   ^RIHp VP                  \        9  dd   VP                  VP                  4      '       d   RpM?VP                  R8X  d%   V P                  P                  R,          '       g   M
V'       d   R# VP                  P                  4       pV'       g   R# VP                   '       d   VXP                  .,          pV'       d   VP                  V4      MVP                  pVP                  P                  4       p	V	R8w  d   RV	: R	V: 2pVP                  P                  4       p
V'       dh   XP                  V P                  P                  4      P!                  VP                  4      pVP#                  4       pV'       d   V P%                  V4       T P%                  R
V
: RV: RRP'                  V4      : RVP(                  '       d   VP*                  MR: RV: 2
4       V'       d   X'       d   V P%                  R4       R# R# R# )F__getattribute__)	TypeSlotsT__getattr__fast_getattrNPyCFunctionz(void(*)(void))(r<  rg  z, (PyCFunction)r  |0r  rT  )
is_specialrC  rQ  r  special_py_methodsis_binop_number_slotr  r  rl  method_flagsmethod_coexistput_pymethoddef_wrapper
func_cnamemethod_function_typeas_c_string_literalget_slot_tableget_slot_by_method_namepreprocessor_guard_coder   r  doc	doc_cname)r   r  term
allow_skipwrapper_code_writeris_number_slotr  r  func_ptrcast
entry_nameslotpreproc_guards   &&&&&        r   put_pymethoddefCCodeWriter.put_pymethoddefn  s   uzz-??#zz!3311%**== &*NZZ=09I9I9T9TUc9d9d  335Y5566LI\&>>uEbgbrbr335= 26AHZZ335
 ++D,<,<,G,GH``afakaklD 88:M

=)

&#(999#5	 mJJx  ,>r   c                   VP                   pVP                  '       d   VP                  P                  4       ;'       g    . p^RIHp WC9   d   \        P                  V,           pV P                  RV,          4       RVP                   ,          pVP                  R8X  d<   V P                  RV,          4       V P                  R4       V P                  R4       MV P                  RV,          4       V P                  R	4       V# )
r   )method_noargszBstatic PyObject *%s(PyObject *self, CYTHON_UNUSED PyObject *arg) {z%s(self)__next__zPyObject *res = %s;zFif (!res && !PyErr_Occurred()) { PyErr_SetNone(PyExc_StopIteration); }zreturn res;z
return %s;r  )
r  r  rl  r  r  r  r   method_wrapper_prefixr   rC  )r   r  r  r  r  	func_calls   &&    r   r  #CCodeWriter.put_pymethoddef_wrapper  s    %%
 ??779??RL0,#99JF


_bllm&)9)99	::+JJ4y@AJJghJJ}-JJ|i78

3r   c                   V P                   P                  R ,          '       d2   V P                   P                  \        P	                  RR4      4       R# V P                   P                  \        P	                  RR4      4       R# )fast_gilFastGilr  	NoFastGilN)r  r  r  r  r{  r   s   &r   use_fast_gil_utility_code%CCodeWriter.use_fast_gil_utility_code  s]    &&z22--k.E.EiQd.ef--k.E.EkSf.ghr   c                r   V P                   P                  R,          R8w  d   ^RIHp V! V P                  R^4       V P                   P                  \        P                  RR4      4       V P                  4        V'       g   RpV'       d   V P                  R4       V P                  R	V,          4       R
# )z
Acquire the GIL. The generated code is safe even when no PyThreadState
has been allocated for this thread (for threads not initialized by
using the Python API). Additionally, the code generated by this method
may be called recursively.
subinterpreters_compatibleno)warningzTAcquiring the GIL is currently very unlikely to work correctly with subinterpreters.ForceInitThreadsr  __pyx_gilstate_savezPyGILState_STATE z%s = __Pyx_PyGILState_Ensure();N)r  r  Errorsr  r  r  r  r{  r  r  r   )r   declare_gilstatevariabler  s   &&& r   put_ensure_gilCCodeWriter.put_ensure_gil  s     &&'CDL'$$f
 	))##$68KL	N&&(,H,-

4x?@r   c                j    V P                  4        V'       g   RpV P                  RV,          4       R# )z4
Releases the GIL, corresponds to `put_ensure_gil`.
r  z__Pyx_PyGILState_Release(%s);N)r  r   )r   r  s   &&r   put_release_ensured_gil#CCodeWriter.put_release_ensured_gil  s*     	&&(,H

2X=>r   c                    V P                  R 4       V P                  R\        P                   R24       V P                  R4       R# )r  zPyMutex_Lock(&r  rT  Nr   r   parallel_freethreading_mutexr   s   &r   put_acquire_freethreading_lock*CCodeWriter.put_acquire_freethreading_lock  s7    

BC

^F$G$G#HKL

8r   c                    V P                  R 4       V P                  R\        P                   R24       V P                  R4       R# )r  zPyMutex_Unlock(&r  rT  Nr  r   s   &r   put_release_freethreading_lock*CCodeWriter.put_release_freethreading_lock  s8    

BC

%f&I&I%J"MN

8r   c                (   V P                  4        V P                  R4       V'       d   V P                  RV,          4       V'       d3   RpV P                  P                  \        P                  RR4      4       MRpV P                  V R24       R# )	zg
Acquire the GIL. The thread's thread state must have been initialized
by a previous `put_release_gil`
z__Pyx_FastGIL_Forget();z_save = %s;__Pyx_RestoreUnknownThreadReleaseUnknownGilr  PyEval_RestoreThreadz(_save);N)r  r   r  r  r  r{  )r   r  unknown_gil_stater  s   &&& r   put_acquire_gilCCodeWriter.put_acquire_gil  sz    
 	&&(

,-JJ}x/04I--''(;=PQS /I

i[)*r   c                Z   V P                  4        V'       d5   V P                  P                  \        P	                  RR4      4       RpRpMRpRpV P                  V R24       V P                  RV R	24       V'       d   V P                  R
V,          4       V P                  R4       R# )z2Release the GIL, corresponds to `put_acquire_gil`.r  r  __Pyx_SaveUnknownThread__Pyx_UnknownThreadStatePyEval_SaveThreadzPyThreadState *z _save;z_save = z();z%s = _save;z__Pyx_FastGIL_Remember();N)r  r  r  r  r{  r   )r   r  r  r  result_types   &&&  r   put_release_gilCCodeWriter.put_release_gil  s    &&(--''(;=PQS1I4K+I+K

k]'*+

Xi[,-JJ}x/0

./r   c                (    V P                  R 4       R# )z%PyGILState_STATE __pyx_gilstate_save;Nr  r   s   &r   r  CCodeWriter.declare_gilstate  s    

:;r   c                R    V P                  R V: RV P                  V4      : 24      # )if (z < (0)) )r   r$  )r   r  r  s   &&&r   put_error_if_negCCodeWriter.put_error_if_neg  s!     zzts7KLMMr   c                   V'       d   R MRpVP                   '       d   RpMVP                  P                  '       d   VP                  '       d   RpMaVP                  P                  '       dD   VP                  '       d2   VP
                  '       g    VP                  P                  '       d   RpMRpV P                  P                  \        P                  V V 2R4      4       V'       g&   VP                  P                  VP                  4      pV P                  RV: RR	V V 2: R
VP                  P!                  4       : RV P#                  V4      : R2	4       R# )NogilrQ  RaiseClosureNameErrorRaiseCppGlobalNameErrorRaiseCppAttributeErrorRaiseUnboundLocalErrorr  zif (unlikely(!z)) { r  r  z); rl  N)from_closurer   r  
is_cglobalis_variable	is_memberr  r  r  r  r  r{  check_for_null_coderX  r   rC  r  r$  )r   r  r  in_nogil_contextunbound_check_code	nogil_tagr,  s   &&&&&  r   put_error_if_unbound CCodeWriter.put_error_if_unbound  s   /GR	*DZZ$$$)9)9)9,DZZ$$$):):):5???W\WbWbWsWsWs ,D+D))''4&(<>PQ	S "!&!?!?!L

 2"(yk : %

 > > @ $ 4	6 	7r   c                    R V P                   n        V'       d   R V P                   n        RV P                  V^ ,          4      : RV^,          : R2# )Tz__PYX_MARK_ERR_POS(r  r<  )r  r  r  r  )r   r  r  s   &&&r   set_error_infoCCodeWriter.set_error_info)  sC    8<526DNN/  Q(FF 	r   c                *   V P                   P                  pV P                   P                  V4       Vf
   RV,          # RV P                   n        V'       d   RV P                   n        RV P                  V^ ,          4      : RV^,          : RV: R2# )Nr  Tz
__PYX_ERR(r  r<  )r  r  r  r  r  r  )r   r  r  r  s   &&& r   r$  CCodeWriter.error_goto1  sw    nn((  %;##8<526DNN/  Q(FF 	r   c                R    R V P                  V4      : RV P                  V4      : 2# )r  r"  )r  r$  )r   r  r  s   &&&r   error_goto_ifCCodeWriter.error_goto_if>  s    #}}T2DOOC4HIIr   c                4    V P                  R V,          V4      # )z!%sr$  r   rX  r  s   &&&r   rr  CCodeWriter.error_goto_if_nullA  s    !!%%-55r   c                4    V P                  R V,          V4      # )z(%s < 0)r'  r(  s   &&&r   error_goto_if_negCCodeWriter.error_goto_if_negD  s    !!*u"4c::r   c                &    V P                  R V4      # )zPyErr_Occurred()r'  r  s   &&r   r  CCodeWriter.error_goto_if_PyErrH  s    !!"4c::r   c                8    V P                   P                  V4      # r   )r  r  )r   r  s   &&r   r  CCodeWriter.lookup_filenameK  s    //99r   c                (    V P                  R 4       R# )__Pyx_RefNannyDeclarationsNr  r   s   &r   rk  (CCodeWriter.put_declare_refcount_contextN  s    

/0r   c                    VP                  4       pV'       d0   V P                  P                  \        P	                  R R4      4       T P                  RY;'       d    ^;'       g    ^ 3,          4       R# )r  r  z#__Pyx_RefNannySetupContext(%s, %d);N)r  r  r  r  r{  r   )r   rC  acquire_gils   &&&r   r  &CCodeWriter.put_setup_refcount_contextQ  sa    '')--''(:<OPR

8DBSBSRSBXBXWX;YYZr   c                H    T P                  V'       d	   R 4       R# R4       R# )z"__Pyx_RefNannyFinishContextNogil()z__Pyx_RefNannyFinishContext();Nr  r   nogils   &&r   r  'CCodeWriter.put_finish_refcount_contextX  s    

57gFfgr   c                    VP                  4       pTV'       d   \        P                  M^ \        P                  \        P                  3pRV P
                  n        V P                  RV,          4       R# )zt
Build a Python traceback for propagating exceptions.

qualified_name should be the qualified name of the function.
Tz#__Pyx_AddTraceback(%s, %s, %s, %s);N)r  r   r  r  r  r  r  r   )r   qualified_nameinclude_clineformat_tuples   &&& r   put_add_tracebackCCodeWriter.put_add_traceback[  s[     (;;=$1F  q!!	
 /3+

8<GHr   c           	     L   RV P                   n        V P                  RV\        P                  \        P
                  \        P                  V P                  P                  R,          V3,          4       V P                  P                  \        P                  RR4      4       R# )z
Generate code to print a Python warning for an unraisable exception.

qualified_name should be the qualified name of the function.
Tz0__Pyx_WriteUnraisable("%s", %s, %s, %s, %d, %d);unraisable_tracebacksWriteUnraisableExceptionzExceptions.cN)r  r  r   r   r  r  r  r  r  r  r  r{  )r   r<  r9  s   &&&r   put_unraisableCCodeWriter.put_unraisablel  s     /3+

E  !!''(?@I
 
 	 	))##$>O	Qr   c                    V P                   P                  R ,          ;'       g    V P                   P                  R,          # )profiler  )r  r  r   s   &r   
is_tracingCCodeWriter.is_tracing~  s3    **95aa9I9I9T9TU`9aar   c                    V P                   P                  pV'       d   WP                  9  d   VP                  pK&  V'       d   VP                  V,          # ^ # )z[
Calculate a fake 'instruction offset' from a node position as 31 bit int (32 bit signed).
)r  r  node_positions_to_offsetparent_scope)r   r  r  s   && r   r  CCodeWriter.pos_to_offset  sD     $$#A#AA&&E6;u--c2BBr   c                H    T P                  V'       d	   R 4       R# R4       R# )__Pyx_TraceDeclarationsGen__Pyx_TraceDeclarationsFuncNr  )r   is_generators   &&r   put_trace_declarations"CCodeWriter.put_trace_declarations  s    

</cEbcr   c                J    V'       d   V P                  R V,          4       R# R# )z__Pyx_TraceFrameInit(%s)Nr  )r   codeobjs   &&r   put_trace_frame_init CCodeWriter.put_trace_frame_init  s    JJ1G;< r   c                X   V'       d   R MRpT P                  T RVP                  4        R\        P                   RV P	                  V^ ,          4       RV^,           RV P                  V4      R RVR RV'       d   \        P                  MR RV P                  V4       R24       R	# )
__Pyx_TraceStartGen__Pyx_TraceStartFuncr  r  r  ], r   r  r  N)r   r  r   filetable_cnamer  r  skip_dispatch_cnamer$  )r   rC  r  r9  rQ  is_cpdef_func
trace_funcs   &&&&&& r   put_trace_startCCodeWriter.put_trace_start  s    .:*@V


l!'')*"%%&a(<(<SV(D'ES1vhb!!#&q)Qir-:v))DBs#$
	
r   c                D    V P                  R \        V4      R R24       R# )z__Pyx_PyMonitoring_ExitScope(r   r  N)r   r   r8  s   &&r   put_trace_exitCCodeWriter.put_trace_exit  s    

24;q/DEr   c           	     |    V P                  V4      pV P                  R V RV P                  V4       RV R24       R# )z__Pyx_TraceYield(r  r  Nr$  r   r  )r   retvalue_cnamer  r$  s   &&& r   put_trace_yieldCCodeWriter.put_trace_yield  sC    __S)


&~&6b9K9KC9P8QQST^S__abcr   c                   V P                   P                  pVP                  '       d   VP                  P                  ^,          MV^,          pVP                  P                  4       pV P                  V^ ,          4      pV P                  V4      pV P                  RV R\        P                   RV RV RV P                  V4       RV R24       R# )r   z__Pyx_TraceResumeGen(r  r  r[  r  N)r  r  scope_classr  rC  r  r  r$  r   r   r\  r  )r   r  r  
first_linerC  filename_indexr$  s   &&     r   put_trace_resumeCCodeWriter.put_trace_resume  s    $$161B1B1BU&&**1-A
zz--/--c!f5__S)


#fB%%&a'7sl"!!#&'rl	
r   c           
         V P                  R V P                  V4       R\        V4      R R\        V4      R R24       R# )__Pyx_TraceException(r  r   r  Nr   r  r   )r   r  reraisefreshs   &&&&r   put_trace_exceptionCCodeWriter.put_trace_exception  sE    

*4+=+=c+B*C2d7mTUEVVXY]^cYdefXggijkr   c                L    V P                  R \        P                   R24       R# )rq  z, 0, 0);N)r   r   r  r   s   &r   put_trace_exception_propagating+CCodeWriter.put_trace_exception_propagating  s    

*6+>+>*?xHIr   c                N    V P                  R V P                  V4       R24       R# )z__Pyx_TraceExceptionHandled(r  N)r   r  r  s   &&r   put_trace_exception_handled'CCodeWriter.put_trace_exception_handled  s$    

1$2D2DS2I1J"MNr   c                h    V P                  R V P                  V4       R\        V4      R R24       R# )z__Pyx_TraceExceptionUnwind(r  r   r  Nrr  )r   r  r9  s   &&&r   put_trace_unwindCCodeWriter.put_trace_unwind  s3    

01C1CC1H0IDQVKXY?Z\]^r   c           	     |    V P                  V4      pV P                  R V RV P                  V4       RV R24       R# )z__Pyx_TraceStopIteration(r  r  Nrf  )r   r  r  r$  s   &&& r   put_trace_stopiteration#CCodeWriter.put_trace_stopiteration  sB    __S)


.ugR8J8J38O7PPRS]R^^`abr   c                   R pRpVf   MtVP                   '       d   VP                  V4      pMPVP                  '       d   RpM;VP                  '       d   RpM&VP                  '       d   RpRVP                   2pMRpV P                  V4      pV P                  V RV V RV P                  V4       R\        V4      R RV R24       R# )	rQ  __Pyx_TraceReturnValueNr  __Pyx_TraceReturnCValuer  r  r   r  )	r  r-  is_void	is_stringto_py_functionr$  r   r  r   )r   rg  r  rr  r9  	extra_argr_  r  s   &&&&&   r   put_trace_returnCCodeWriter.put_trace_return  s    	-
$$$(44^DN   &N"""&N'''2J[7789I 'N-

j\>"29+R@R@RSV@W?XXZ[_`e[fghZiiklzk{{}~r   DefaultPlacementNewr  c                f    V P                   P                  V4       V P                  R V R24       R# )z$__Pyx_default_placement_construct(&(z));N)r  r  r   )r   r  _utility_codes   &&&r   put_cpp_placement_new!CCodeWriter.put_cpp_placement_new  s,    ))-8

9&EFr   c                l    V P                  R 4       V P                  V4       V P                  R4       R# )z#ifdef _OPENMPz#endif /* _OPENMP */Nr  )r   strings   &&r   putln_openmpCCodeWriter.putln_openmp  s(    

#$

6

)*r   c                    V P                  RV,          4       V P                  R4       V P                  R4       V P                  R4       V P                  R4       V P                  R4       R# )zT
Redefine the macros likely() and unlikely to no-ops, depending on
condition 'cond'
#if %s    #undef likely    #undef unlikelyz    #define likely(x)   (x)z    #define unlikely(x) (x)rT  Nr  r  s   &&r   undef_builtin_expect CCodeWriter.undef_builtin_expect  sT    
 	

8d?#

&'

()

01

01

8r   c                    V P                  R V,          4       V P                  R4       V P                  R4       V P                  R4       V P                  R4       V P                  R4       R# )r  r  r  z2    #define likely(x)   __builtin_expect(!!(x), 1)z2    #define unlikely(x) __builtin_expect(!!(x), 0)rT  Nr  r  s   &&r   redef_builtin_expect CCodeWriter.redef_builtin_expect  sR    

8d?#

&'

()

GH

GH

8r   )
r	  r  r  rs  r  r  r  r  r!   r  )NNF)NNTr   r)  r  )rQ  Fr  )rQ  NT)TT)FTTr  )r  T)TN)NTrm  r  )FFFrJ  )r   r   r   r   r   r  r   r   r  r  r  r  r   r   r  r  r  r(  r+  r  r  r  r  r  r  r  r<  r  rG  r  r  r  r  r  r  r  r  r  r  r  rd  r  r  ry  r|  r  r  r  r  rV  r  r  r>  r  r  r  r   r#  r  r  r  r   rC  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rB  r  r  r  r  r  modifier_output_mapperr"  r'  r-  r1  r5  r:  r>  rD  rH  rO  rS  rY  rB  rb  rf  rl  ro  rr  ru  ry  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r$  rr  r+  r  r  rk  r  r  r?  rD  rH  r  rR  rV  r`  rc  rh  rn  ru  rx  r{  r~  r  r  r  ry  r  r  r  r  r   r   r   s   @r   r  r  	  s    < ]]}-? .?44
&% \\! !-* ! !     " " 3 3   &2 MSSNTSMSMKL:0
'





=>0
Vb.?D@ ; ; < <
D&% \\	' 	' \\F F \\V V
 \\" "8 \\ (	R 	R \\  \\  \\  \\  \\1 1I%%74I I.) :P B5*+,+78JK>>9:ST12239:9:eHIf/(.	!J(/!b,iA.?

+"0"<
N
70J6;;:1[hI"Q$bCd=
Fd
"lJO_c@2 -8,<,<=RTd,eG
+

 r   r  c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )PyrexCodeWriteri  c                J    \         P                  ! V4      V n        ^ V n        R# r  )r   r  r  r!   )r   outfile_names   &&r   r   PyrexCodeWriter.__init__  s    $$\2
r   c                l    V P                   P                  R V P                  ,          : V: R24       R# )r  r7  N)r  r   r!   r  s   &&r   r   PyrexCodeWriter.putln  s     tzz!1489r   c                8    V ;P                   ^,          un         R# r  r    r   s   &r   r  PyrexCodeWriter.indent	      

a
r   c                8    V ;P                   ^,          un         R# r  r    r   s   &r   r  PyrexCodeWriter.dedent  r  r   )r  r!   N)
r   r   r   r   r   r   r  r  r   r   r   s   @r   r  r    s     : r   r  c                      a  ] tR tRt o RtRR ltRR ltRR lt]R 4       t	R t
R	 tRR
 ltRR ltR tR tR tR tRtV tR# )PyxCodeWriteri  z/
Can be used for writing out some Cython code.
Nc                v    T;'       g    \        4       V n        W n        W n        W0n        W@n        / V n        R # r   )r   r  r!   original_levelr  r  _insertion_points)r   r  indent_levelr  r  s   &&&&&r   r   PyxCodeWriter.__init__  s0    ..!
* !#r   c                8    V ;P                   V,          un         R # r  r    r   levelss   &&r   r  PyxCodeWriter.indent  s    

f
r   c                8    V ;P                   V,          un         R # r   r    r  s   &&r   r  PyxCodeWriter.dedent!  s    

f
r   c              #  x   "   V P                  V4       V P                  4        Rx  V P                  4        R# 5i)zN
with pyx_code.indenter("for i in range(10):"):
    pyx_code.putln("print i")
N)r   r  r  )r   rn  s   &&r   indenterPyxCodeWriter.indenter$  s(      	

4s   8:c                6    V P                   P                  4       # r   )r  emptyr   s   &r   r  PyxCodeWriter.empty/  s    {{  ""r   c                    V P                   P                  4       p\        V\        4      '       d   VP	                  V P
                  4      pV# r   )r  r  r   r   r  r  )r   r  s   & r   r  PyxCodeWriter.getvalue2  s8    %%'fe$$]]4==1Fr   c                    Vf   V P                   e   V P                   pVe   \        W4      pV P                  P                  V'       d   V P                  R,           V R24       R # R4       R # )Nz    r7  )r  rj  r  r   r!   )r   rn  r  s   &&&r   r   PyxCodeWriter.putln8  sX    ?||',,t-DdTZZ&01$r:MMr   c                    Vf   V P                   e   V P                   pVe   \        W4      p\        WP                  ^,          4      pV P                  P                  V4       R # r   )r  rj  _indent_chunkr!   r  r   )r   chunkr  s   &&&r   	put_chunkPyxCodeWriter.put_chunkA  sN    ?||',,/EeZZ!^4% r   c                    \        V 4      ! V P                  P                  4       V P                  V P                  4      # r   )r   r  r  r!   r  r   s   &r   r  PyxCodeWriter.insertion_pointK  s*    Dz$++557T\\RRr   c                \    V P                   P                  4        V P                  V n        R # r   )r  resetr  r!   r   s   &r   r  PyxCodeWriter.resetN  s!     	((
r   c                @    V P                  4       V P                  V&   R # r   )r  r  rJ  s   &&r   named_insertion_point#PyxCodeWriter.named_insertion_pointT  s    '+';';'=t$r   c                (    V P                   V,          # r   )r  rJ  s   &&r   r  PyxCodeWriter.__getitem__W  s    %%d++r   )r  r  r  r  r!   r  )Nr   Nr   )r   r   )r   r   r   r   r   r   r  r  r   r  r  r  r   r  r  r  r  r  r   r   r   s   @r   r  r    s\     $  #N!S)>, ,r   r  c                P    V ^8  d   QhR\         R\        P                  R\         /# )r  r  indentation_lengthr  r%   r  r   )r   s   "r   r  r  ]  s%     , , ,&** , ,r   c                z   RV 9  g   Q hV P                  RR7      pV'       g   V # VR,          P                  R4      pV'       d   W2R&   MVR V'       g   R# \        V 4      ^,           p\        V4       F7  w  rV\	        V4      pV^,           \        V4      8X  d   RW%&   K-  Wt8  g   K5  TpK9  	  V\        V 4      8  d   ^ pWA8  d1   RW,
          ,          pV Uu. uF  pVR8w  d	   W,           MRNK  	  ppM*WA8  d%   WA,
          p	V Uu. uF  pVR8w  d   WiR MRNK  	  ppRP                  V4      # u upi u upi )	zONormalise leading space to the intended indentation and strip empty lines.
    	Tr  r  r7  NrQ  r   )r<  r[  r   r   _count_indentationr  )
r  r  rD  	last_linemin_indentationr  rn  line_indentation
add_indentstarts
   &&        r   r  r  [  s\   
 ud+Eb	  %Ib	"I #&e*q.O U#-d3a3t9,EH/.O $ U#+.@A
 
 "&J47 	 
 
	-+@ 
 !DLDLd2 	 

 775>

s   D3
D8c                D    V ^8  d   QhR\         R\        P                  /# )r  r  r  r  )r   s   "r   r  r    s      # &** r   c                 F    ^ p\        V 4       F  w  rVR8w  g   K   V# 	  V# )r   r  )r   )r  r  chs   &  r   r  r    s/     A19H  Hr   c                   2   a  ] tR tRt o R tR tR tRtV tR# )r  i  c                <    Wn         / V n        / V n        ^ V n        R# r  )klassr  r  temps_count)r   r  s   &&r   r   ClosureTempAllocator.__init__  s    
!r   c                |    V P                   P                  4        F  w  r\        V4      V P                  V&   K  	  R # r   )r  r?  r   r  )r   r   rL  s   &  r   r  ClosureTempAllocator.reset  s/     00668LD$(LDOOD! 9r   c                   WP                   9  d    . V P                   V&   . V P                  V&   M;V P                  V,          '       d#   V P                  V,          P                  ^ 4      # R\        P                  V P
                  3,          pV P                  P                  RW"VRR7       V P                   V,          P                  V4       V ;P
                  ^,          un        V# )r   r  NT)r  rC  rX  r   is_cdef)	r  r  r  r   r  r  r  declare_varr^  )r   r   rX  s   && r   r  "ClosureTempAllocator.allocate_temp  s    +++)+D  &$&DOOD!__T""??4(,,Q//&779I9IJJ

4etUYZT"))%0Ar   )r  r  r  r  N)	r   r   r   r   r   r  r  r   r   r   s   @r   r  r    s     1
 
r   r  r  )      r   betar   )
r}   rb   r5   rE   r   r   rB   r   r{   rf  )		__cinit____dealloc____richcmp__r  	__await__	__aiter__	__anext____getbuffer____releasebuffer__r   )hr  declarer   r  r   r   r   r  r   dataclassesr   r  r   	functoolsr   r   
contextlibr   r   collectionsr   rQ  r   r	   r   r
   r   Scanningr   r   r   r   r   r"   r   rM   compression.zstdr   r   zstd_CompressionParameterr   zstd_Strategystrategybtultra2compression_levelboundsrq  r  ctypedef_builtins_mapbasicsize_builtins_mapKNOWN_PYTHON_BUILTINS_VERSIONr   KNOWN_PYTHON_BUILTINSuncachable_builtinsr  r   r  rD  r   r
  r]  r  r  r-  r  r  r3  r?  rC  rO  rZ  r^  rc  r  rj  rx  rw  r  r  r  r   Ur2  r"  r#  rZ  r$  findallr%  r'  r;  r  r  r  r  r  r  r   ccallr  	exceptvalcfuncr  r  r  r   r   <module>r     s+     f& fV ff fv ff'-f7=fNTff.4fCIf !f /5f 	f (.	f 6<	f
 $f
 39f
 IOf
 _ef   	 	   !  $ . #      & ' +:, <q9L
  M!**M,B,B!335N5`5`5g5g5ijk5l4 M 	" Q/0|	  5577  >>?1  &  !6 ! \#\#\# \# 	\#
 \# \# \# \# \# \# \# \# \# \# \#  !\#" #\#$ %\#& '\#( )\#* +\#, -\#. /\#0 1\#2 3\#4 5\#6 7\#8 9\#: ;\#< =\#> ?\#@ A\#B C\#D E\#F G\#H I\#J K\#L M\#N O\#P Q\#R S\#T U\#V W\#X Y\#Z [\#\ ]\#^  _\#` a\#b c\#d e\#f g\#h i\#j k\#l m\#n o\#p q\#r s\#t u\#v w\#x y\#z {\#| }\#~ \#@ A\#B C\#D E\#F G\#H I\#J K\#L M\#N O\#P Q\#R S\#T U\#V W\#X Y\#Z [\#\ ]\#^ _\#` a\#b 
c\#d e\#f 
g\#h i\#j 
k\#l m\#n 
o\#p q\#r s\#t u\#v w\#x y\#z 
{\#| }\#~ \#@ A\#B C\#D E\#F G\#H I\#J 
K\#L M\#N O\#P Q\#R S\#T U\#V W\#X Y\#Z [\#\ ]\#^ _\#` a\#b c\#d e\#f g\#h 
i\#j 	k\#l m\#n 
o\#p q\#r s\#t u\#v 
w\#x y\#z {\#| }\#~ 
\#@ 
A\#B C\#D 
E\#F G\#H I\#J 
K\#L M\#N 
O\#P 
Q\#R S\#T U\#V W\#X Y\#Z [\#\ ]\#^ _\#` 
a\#b c\#d e\#f g\#h i\#j 
k\#l 
m\#n o\#p q\#r s\#t u\#v 
w\# \ | * ^^Iy : 0   o#  !'vtQQ8 #	! I' I'X/   6  S) Sj   K5/ K5\&D &U &eidj &R 
6*	* * * 			2	2 {
+
W
W  ,	// 
(
7
7   "&D" (&= =D?o ? G9 G9T. .   6V"(A jj)9244@FF JJ'89?? ZZ 1266 ,-55? ?D( ($y6 y6x7 7X Xv  $H, H,V ,  ,^ "   as  L  Ms$   =T7 
U 7	UU	UU