Ë
    Ç[;j0 ã                   ó®  — d dl Z  e j                  eeeeeeeeee¬«
       d dlmZ d dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZmZmZmZ ddlmZmZ ddlm Z m!Z!m"Z"m#Z#m$Z$ ddlm%Z%m&Z&m'Z' ddl(m)Z)m*Z*m+Z+ ddlm,Z, d„ Z-d„ Z.d„ Z/d„ Z0d„ Z1ddddd dddddd dd!œZ2 G d"„ d#«      Z3 G d$„ d%ejh                  ejj                  «      Z6d&„ Z7d'ejp                  fd(„Z9d'ejp                  fd)„Z:d*„ Z; G d+„ d,«      Z<d-„ Z= e%j|                  d.d/«      Z? e%d0d1d2¬3«      Z@y)4é    N)
ÚNamingÚOptionsÚ
PyrexTypesÚ	TypeSlotsÚerrorÚwarningÚpy_object_typeÚUtilityCodeÚEncodedStringÚre)Údefaultdict)ÚSequenceé   )ÚCPtrType)ÚFuture)ÚAnnotate)ÚCode)r   )ÚNodes)r   )r   )r   )ÚPythran)r   r   ÚCompileErrorÚformat_position)r	   Úget_all_subtypesé   )Úopen_new_fileÚreplace_suffixÚdecode_filenameÚbuild_hex_versionÚis_cython_generated_file)r
   ÚIncludeCodeÚTempitaUtilityCode)r   Úbytes_literalÚencoded_string_or_bytes_literal)Úhas_np_pythranc                 ó0   — t        | |«      }t        |«      S ©N)r   Úas_encoded_filename)ÚpathÚnewsufÚnewpaths      úcG:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\Cython/Compiler/ModuleNode.pyÚreplace_suffix_encodedr+   '   s   € ä˜T 6Ó*€GÜ˜wÓ'Ð'ó    c                 ó>   — t        | t        j                  «       «      S r%   )r"   ÚsysÚgetfilesystemencoding)r'   s    r*   r&   r&   ,   s   € ô +¨4´×1JÑ1JÓ1LÓMÐMr,   c                 ó:   — | j                   j                  «        | S r%   )ÚscopeÚcheck_c_classes_pxd©Úmodule_nodes    r*   Úcheck_c_declarations_pxdr5   2   s   € Ø×Ñ×)Ñ)Ô+ØÐr,   c                 ón   — | j                   j                  «        | j                   j                  «        | S r%   )r1   Úcheck_c_classesÚcheck_c_functionsr3   s    r*   Úcheck_c_declarationsr9   7   s,   € Ø×Ñ×%Ñ%Ô'Ø×Ñ×'Ñ'Ô)ØÐr,   c                 óä   — t         j                  s|j                  rd}n|j                  }t        |d«      rt	        d«       t        j                  || j                  d   |j                  ¬«      S )NFÚemit_code_commentszeWarning: option emit_code_comments is deprecated. Instead, use compiler directive emit_code_comments.)Úemit_linenumsr;   Úc_line_in_traceback)	r   Úannotater<   ÚhasattrÚprintr   ÚCCodeConfigÚ
directivesr=   )ÚenvÚoptionsr<   s      r*   Úgenerate_c_code_configrE   =   sk   € Ü×Ò˜7×+Ò+Ø‰à×-Ñ-ˆäˆwÐ,Ô-Üð Dô 	Eô ×ÑØ#ØŸ>™>Ð*>Ñ?Ø#×7Ñ7ô9ð 9r,   )Tú&&T)Fú||F)TÚ N)TrG   F)FrF   T))Ú__lt__Ú__gt__)rI   Ú__le__)rI   Ú__ge__)rK   rL   )rK   rI   )rK   rJ   )rJ   rI   )rJ   rL   )rJ   rK   )rL   rK   )rL   rJ   )rL   rI   c                   ó  — e Zd ZdZd„ Zdeej                     defd„Z	deej                     defd„Z
d„ Zd„ Zd	eej                     fd
„Zdeej                     fd„Zdeej                     fd„Zdeej                     fd„Zd„ Zy)ÚSharedUtilityExportera¼  
    Class responsible for generating code that imports and exports shared utility functions.

    Mark the positions where the functions should be called with `call_import_code()`/`call_export_code()`.
    The function calls and import/export functions are generated when `generate_exporting_functions()`
    is called. This approach is needed because the list of the shared functions is only known in the later
    stages of compilation.
    c                 óä   — t        |j                  j                  «      | _        t        |j                  j                  «      | _        || _        || _         |d«      | _         |d«      | _	        y )NzShared function import codezShared function export code)
ÚboolÚcontextÚshared_c_file_pathÚin_shared_utility_moduleÚshared_utility_qualified_nameÚusing_shared_utility_moduleÚposr1   Úimport_codeÚexport_code)ÚselfrV   Úmod_init_subfunctionr1   s       r*   Ú__init__zSharedUtilityExporter.__init__x   sZ   € Ü(,¨U¯]©]×-MÑ-MÓ(NˆÔ%Ü+/°·±×0[Ñ0[Ó+\ˆÔ(ØˆŒØˆŒ
Ù/Ð0MÓNˆÔÙ/Ð0MÓNˆÕr,   Úshared_func_definitionsÚreturnc                 ó4   — t        | j                  xr |«      S r%   )rP   rS   ©rY   r\   s     r*   Úhas_shared_exportsz(SharedUtilityExporter.has_shared_exports€   s   € Ü�D×1Ñ1ÒMÐ6MÓNÐNr,   c                 ó4   — t        | j                  xr |«      S r%   )rP   rU   r_   s     r*   Úhas_shared_importsz(SharedUtilityExporter.has_shared_importsƒ   s   € Ü�D×4Ñ4ÒPÐ9PÓQÐQr,   c                 ó:   — | j                   j                  |«       y r%   )rW   Úset_call_code©rY   Úcodes     r*   Úcall_import_codez&SharedUtilityExporter.call_import_code†   ó   € Ø×Ñ×&Ñ& tÕ,r,   c                 ó:   — | j                   j                  |«       y r%   )rX   rd   re   s     r*   Úcall_export_codez&SharedUtilityExporter.call_export_code‰   rh   r,   Úshared_function_definitionsc                 ó  — |D �cg c]5  }|j                   › d|j                  › d�|j                  |j                  f‘Œ7 }}|j                  j	                  t        j                  dd«      «       t        || j                  |dd«       y c c}w )NÚ(Ú)ÚFunctionExportúImportExport.cÚ__Pyx_ExportFunctionúvoid (*{name})(void))	ÚretÚparamsÚnameÚglobalstateÚuse_utility_coder
   Úload_cachedÚ_generate_export_coderV   )rY   rf   rk   Úshared_func_defÚexportss        r*   Ú'_generate_c_shared_function_export_codez=SharedUtilityExporter._generate_c_shared_function_export_codeŒ   s™   € ñ $?ó
á#>�ð  ×#Ñ#Ð$ A o×&<Ñ&<Ð%=¸QÐ?À×AUÑAUÐWf×WkÑWkÒlØ#>ð 	ð 
ð 	×Ñ×)Ñ)Ü×#Ñ#Ð$4Ð6FÓGô	Iô 	˜d D§H¡H¨gÐ7MÐOeÕfùò
s   …:B
Úfunction_definitionsc                 ó˜  — |D �cg c]5  }|j                   › d|j                  › d�|j                  |j                  f‘Œ7 }}|j                  j	                  t        j                  dd«      «       t        | j                  j                  j                  «      }dt        j                  › �}t        || j                  |||d«       y c c}w )Nrm   rn   ÚFunctionImportrp   Ú__Pyx_ImportFunction_úvoid (**{name})(void))rs   rt   ru   rv   rw   r
   rx   r   r1   rQ   rT   r   Ú	cyversionÚ_generate_import_coderV   )rY   rf   r}   rz   ÚimportsrT   Úimport_funcs          r*   Ú2_generate_c_shared_function_import_code_for_modulezHSharedUtilityExporter._generate_c_shared_function_import_code_for_module—   sÍ   € ñ
 $8ó
á#7�ð  ×#Ñ#Ð$ A o×&<Ñ&<Ð%=¸QÐ?À×AUÑAUÐWf×WkÑWkÒlØ#7ð 	ð 
ð 	×Ñ×)Ñ)Ü×#Ñ#Ð$4Ð6FÓGô	Iô )6°d·j±j×6HÑ6H×6fÑ6fÓ(gÐ%Ø-¬f×.>Ñ.>Ð-?Ð@ˆÜØ�$—(‘(˜GÐ%BÀKÐQhõ	jùò
s   …:CÚshared_utility_functionsc                 óŽ   — | j                  |«      r(| j                  5 }| j                  ||«       d d d «       y y # 1 sw Y   y xY wr%   )r`   rX   r|   ©rY   r‡   Ú
inner_codes      r*   Ú_generate_exportsz'SharedUtilityExporter._generate_exports¦   sD   € Ø×"Ñ"Ð#;Ô<Ø×!Ò! ZØ×<Ñ<ØØ,ô÷ "Ð!ð =ß!Ð!úó	   ž;»Ac                 óŽ   — | j                  |«      r(| j                  5 }| j                  ||«       d d d «       y y # 1 sw Y   y xY wr%   )rb   rW   r†   r‰   s      r*   Ú_generate_importsz'SharedUtilityExporter._generate_imports®   sD   € Ø×"Ñ"Ð#;Ô<Ø×!Ò! ZØ×GÑGØØ,ô÷ "Ð!ð =ß!Ð!úrŒ   c                 óÊ   — |j                   j                  }|j                  | j                  «       | j	                  |«       | j                  |«       |j                  «        y r%   )rv   r‡   Úenter_cfunc_scoper1   r‹   rŽ   Úexit_cfunc_scope)rY   rf   r‡   s      r*   Úgenerate_exporting_functionsz2SharedUtilityExporter.generate_exporting_functions¶   sP   € Ø#'×#3Ñ#3×#LÑ#LÐ Ø×Ñ˜tŸz™zÔ*Ø×ÑÐ7Ô8Ø×ÑÐ7Ô8Ø×ÑÕr,   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r[   r   r   ÚSharedFunctionDeclrP   r`   rb   rg   rj   r|   r†   r‹   rŽ   r’   © r,   r*   rN   rN   o   sÄ   „ ñòOðO¸(À4×CZÑCZÑ:[ð OÐ`dó OðR¸(À4×CZÑCZÑ:[ð RÐ`dó Rò-ò-ð	gÐYaÐbf×byÑbyÑYzó 	gðjÐ]eÐfj×f}Ñf}Ñ]~ó jð¸(À4×CZÑCZÑ:[ó ð¸(À4×CZÑCZÑ:[ó ó r,   rN   c                   óæ  — e Zd ZdgZdZdZdZed„ «       Zd„ Z	dsd„Z
d„ Zd„ Zd„ Zd	„ Zd
„ Zdtd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Ze d„ «       Z!d„ Z"d„ Z#d„ Z$dud„Z%d „ Z&d!„ Z'd"„ Z(d#„ Z)d$„ Z*d%„ Z+d&„ Z,d'„ Z-d(„ Z.d)„ Z/d*„ Z0d+„ Z1d,„ Z2d-„ Z3d.„ Z4d/„ Z5d0„ Z6d1„ Z7d2„ Z8d3„ Z9d4„ Z:d5„ Z;d6„ Z<d7„ Z=d8„ Z>e d9„ «       Z?d:„ Z@d;„ ZAd<„ ZBd=„ ZCd>„ ZDd?„ ZEd@„ ZFdA„ ZGdB„ ZHdC„ ZIdD„ ZJdE„ ZKdF„ ZLdG„ ZMdH„ ZNdI„ ZOdJ„ ZPdK„ ZQdL„ ZRdM„ ZSdN„ ZTdO„ ZUdP„ ZVdQ„ ZWdR„ ZXdS„ ZYdT„ ZZdU„ Z[dV„ Z\dW„ Z]dX„ Z^dY„ Z_dZ„ Z`d[„ Zad\„ Zbd]„ Zcd^„ Zdd_„ Zed`„ Zfda„ Zgdb„ Zhdc„ Zidd„ Zjde„ Zkdf„ Zldg„ Zmdh„ Zndtdi„Zodj„ Zpdk„ Zqdl„ Zrdm„ Zsdn„ Ztdvdo„Zudp„ Zvdq„ Zwdr„ Zxy)wÚ
ModuleNodeÚbodyNc                 ó   — | j                   S r%   )r1   ©rY   s    r*   Úlocal_scopezModuleNode.local_scopeÏ   s   € ð �z‰zÐr,   c                 ó¨  — t        | j                  t        j                  «      sJ ‚|dv sJ ‚| j                  €Àt        j                  | j                  j
                  g ¬«      | _        t        j                  | j                  j
                  g ¬«      | _        | j                  j                  j                  d| j                  «       | j                  j                  j                  d| j                  «       |j                  | j                  j                  k7  r,t        j                  |j
                  ||j                  ¬«      }|dk(  r| j                  n| j                  }t        |t        j                  «      r&|j                  j                  |j                  «       n|j                  j                  |«       | j                  j                  j                  |j                  «       |j                  j!                  «       D ]  }| j                  j#                  |«       Œ d„ } || j                  j$                  |j$                  «       y )N)ÚpxdÚutility)Ústatsr   )r›   rB   r    c                 ó>   — |D ]  }|| vsŒ| j                  |«       Œ y r%   )Úappend)ÚL1ÚL2Úxs      r*   Úextend_if_not_inz-ModuleNode.merge_in.<locals>.extend_if_not_inø   s   € Û�Ø˜B’;Ø—I‘I˜a•Lñ r,   )Ú
isinstancer›   r   ÚStatListNodeÚ	pxd_statsrV   Úutility_code_statsr¢   ÚinsertrB   r1   ÚCompilerDirectivesNodeÚextendr¤   Úutility_code_listÚ
c_includesÚvaluesÚprocess_includeÚincluded_files)rY   Útreer1   ÚstageÚtarget_statsÚincr¨   s          r*   Úmerge_inzModuleNode.merge_inÔ   s   € ô ˜$Ÿ)™)¤U×%7Ñ%7Ô8Ð8Ð8ØÐ*Ñ*Ð*Ð*à�>‰>Ð!Ü"×/Ñ/°·	±	·±ÀRÔHˆDŒNÜ&+×&8Ñ&8¸¿¹¿¹ÈbÔ&QˆDÔ#Ø�I‰I�O‰O×"Ñ" 1 d§n¡nÔ5Ø�I‰I�O‰O×"Ñ" 1 d×&=Ñ&=Ô>à×Ñ˜tŸz™z×4Ñ4Ò4ô ×/Ñ/°·±¸tÐPU×P`ÑP`ÔaˆDà).°%ª�t—~’~¸T×=TÑ=TˆÜ�dœE×.Ñ.Ô/Ø×Ñ×%Ñ% d§j¡jÕ1à×Ñ×%Ñ% dÔ+à�
‰
×$Ñ$×+Ñ+¨E×,CÑ,CÔDà×#Ñ#×*Ñ*Ö,ˆCØ�J‰J×&Ñ& sÕ+ð -ò	!ñ
 	˜Ÿ™×2Ñ2°E×4HÑ4HÕIr,   c                 óØ   — |j                   D ]@  }| j                  |j                  _        ||j                  j                  j
                  d<   ŒB | j                  j                  |«       y )NÚinternal)Úc_class_entriesÚfull_module_nameÚtypeÚmodule_namer1   rB   r¹   )rY   r1   Úinternalise_c_class_entriesÚentrys       r*   Úmerge_scopezModuleNode.merge_scopeÿ   sR   € à×*Ô*ˆEØ%)×%:Ñ%:ˆE�J‰JÔ"Ø6QˆE�J‰J×Ñ×'Ñ'¨
Ò3ð +ð 	�
‰
×Ñ˜EÕ"r,   c                 ór   — t        j                  | j                  | j                  | j                  ¬«      }|S )N)rB   r›   )r   r®   rV   rB   r›   )rY   r›   s     r*   Úwith_compiler_directivesz#ModuleNode.with_compiler_directives  s,   € ô ×+Ñ+¨D¯H©HÀÇÁÐW[×W`ÑW`ÔaˆØˆr,   c                 ó  — t        |«      rt        j                  |«       | j                  r| j                  d   |_        t
        j                  sd x|_        | _        n­t
        j                  rŒt        dt        j                  | j                  «      z  «      |_        | j                  �at        |j                  dz   | j                  z   «      |_        | j                  j                  |j                  _        n| j                  |_        | j                  |_        | j                  j                  |«       t!        j"                  «       }|j%                  |«      r0| j&                  j)                  t+        j,                  dd«      «       y y )NÚold_style_globalszFile: %s (starting at line %s)Ú
ÚCythonPyMutexPublicCheckzSynchronization.c)r#   r   Úinclude_pythran_genericrB   rÆ   r   Ú
docstringsÚdocÚembed_pos_in_docstringr   r   Úrelative_positionrV   Úencodingr›   Úanalyse_declarationsr   Úget_cy_pymutex_typeÚfind_shared_usages_of_typer1   rw   r
   rx   )rY   rC   Úcy_pymutex_types      r*   rÏ   zModuleNode.analyse_declarations  s#  € Ü˜#ÔÜ×+Ñ+¨CÔ0Ø�?Š?Ø$(§O¡OÐ4GÑ$HˆCÔ!Ü×!Ò!Ø!%Ð%ˆCŒG�d•hÜ×+Ò+Ü#Ð$DÄu×G^ÑG^Ð_c×_gÑ_gÓGhÑ$hÓiˆCŒGØ�x‰xÐ#Ü'¨¯©°$©¸¿¹Ñ(AÓB�”Ø#'§8¡8×#4Ñ#4�—‘Õ à—h‘hˆCŒGØŸ™ˆŒà�	‰	×&Ñ& sÔ+ä$×8Ñ8Ó:ˆØ×)Ñ)¨/Ô:ð �J‰J×'Ñ'Ü×'Ñ'Ø.Ð0Cóõð ;r,   c                 óŽ  — | j                   }|j                  r| j                  |«       t        |j                  j                  «       «      D ]v  \  }}|j                  sŒ|j                   |u sŒ"|j                  sŒ/|j                  j                  s|j                  j                  sŒ\|j                  j                  |«       Œx y r%   )r1   Úhas_import_starÚ*create_import_star_conversion_utility_codeÚsortedÚentriesÚitemsÚcreate_wrapperÚis_typer¾   Úis_enumÚis_cpp_enumÚcreate_type_wrapper©rY   rC   ru   rÁ   s       r*   Úprepare_utility_codezModuleNode.prepare_utility_code)  s‰   € ð �j‰jˆØ×ÒØ×;Ñ;¸CÔ@Ü! #§+¡+×"3Ñ"3Ó"5Ö6‰KˆD�%Ø×$Ó$¨¯©¸Ò);ØŸ›¨5¯:©:×+=Ò+=ÀÇÁ×AWÓAWØ—
‘
×.Ñ.¨sÕ3ñ 7r,   c                 ó"  — | j                   }t        j                  |_        g | _        | j                  || j                  i «       | j                  |«       | j                  |||«       | j                  |||«       | j                  |||«       y r%   )
r1   r   Úc_void_typeÚreturn_typeÚreferenced_modulesÚfind_referenced_modulesÚsort_cdef_classesÚgenerate_c_codeÚgenerate_h_codeÚgenerate_api_code)rY   rD   ÚresultrC   s       r*   Úprocess_implementationz!ModuleNode.process_implementation4  s|   € Ø�j‰jˆÜ$×0Ñ0ˆŒØ"$ˆÔØ×$Ñ$ S¨$×*AÑ*AÀ2ÔFØ×Ñ˜sÔ#Ø×Ñ˜S '¨6Ô2Ø×Ñ˜S '¨6Ô2Ø×Ñ˜s G¨VÕ4r,   c                 óf   — | j                   D ]"  }|j                  D ]  }|j                  sŒ  y Œ$ y)Nr   r   )rã   Úcfunc_entriesÚdefined_in_pxd)rY   ÚmodulerÁ   s      r*   Úhas_imported_c_functionsz#ModuleNode.has_imported_c_functions>  s3   € Ø×-Ô-ˆFØ×-Ô-�Ø×'Ó'Úñ .ð .ð r,   c                 óŒ   — t        ||d¬«      s6t        | j                  dt        j                  j                  |«      z  «      ‚y )NT)Úallow_failedÚif_not_foundzVThe output file already exists and does not look like it was generated by Cython: "%s")r   r   rV   Úosr'   Úbasename)rY   r'   rñ   s      r*   Úassure_safe_targetzModuleNode.assure_safe_targetE  sC   € ä'¨¸<ÐVZÕ[äØ—‘ÐrÜŸ'™'×*Ñ*¨4Ó0ñ1ó2ð 2ð \r,   c           	      óŽ  — d&d„} ||j                   d¬«      } ||j                  «      } ||j                  «      } ||j                  «      }|s|s|s|�rbt	        |j
                  d«      |_        | j                  |j                  «       t        j                  «       }	t        ||«      }
t        j                  |	| |
«      }|j                  «        |j                  d   }|j                  d   }|j                  d   }|j                  r;t	        |j
                  d«      |_        t        j                   |j                  «      }nd }|j#                  «        | j%                  t&        j(                  |«      }|j+                  |«       |j-                  d	«       |j-                  d
«       | j/                  ||«       |j0                  r| j3                  |g |«       |j-                  d	«       | j%                  t&        j4                  |«      }|j-                  d|z  «       |j-                  d	«       | j7                  ||j9                  «       «       |j-                  d	«       | j;                  |«       |rc|j-                  d	«       |D ]M  }| j=                  |j>                  |«       |r| jA                  |j>                  |«       |jC                  |«       ŒO |r<|j-                  d	«       |D ]&  }| jE                  |||«       |jC                  |«       Œ( |r<|j-                  d	«       |D ]&  }| jE                  |||«       |jC                  |«       Œ( |j-                  d	«       |j-                  d|z  «       |j-                  d	«       |j-                  d«       |j-                  d«       |j-                  d	«       | jG                  d|«      }tI        d|jJ                  jM                  «       ›d|›d|›d�«      }|j-                  d|jO                  d«      z  «       |j-                  d|z  «       |j-                  d	«       |j-                  d«       |j-                  d«       |j-                  d|jM                  «       z  «       |j-                  d«       |j-                  d|jM                  «       z  «       |j-                  d«       |j-                  d|jM                  «       z  «       |j-                  d«       |j-                  d|z  «       |j-                  d «       |j-                  d!«       |j-                  d"|›d#|›d$|›d%�«       |j-                  d«       |j-                  d	«       |j-                  d|z  «       tQ        |j                  «      5 }|	jS                  |«       d d d «       y y # 1 sw Y   y xY w)'Nc                 ó‚   — | D �cg c]/  }|j                   dk(  s|r|j                  s|r|j                  r|‘Œ1 c}S c c}w )NÚpublic)Ú
visibilityÚapirí   )r×   rú   r    rÁ   s       r*   Ú	h_entriesz-ModuleNode.generate_h_code.<locals>.h_entriesN  sG   € Ù'.ó 9¡w˜eØ×)Ñ)¨XÒ5Ù §¢Ù ×!5Ò!5ò  wñ 9ð 9ùò 9s   …4<r   )rú   z.hÚh_codeÚtype_declarationsÚendz.pxirH   ú#include "Python.h"z
#ifndef %sú#endif /* !%s */zP/* WARNING: the interface of the module init function changed in CPython 3.5. */zK/* It now returns a PyModuleDef instance instead of a PyModule instance. */ÚPyInitzUse PyImport_AppendInittab(ú, z) instead of calling z
 directly.z!/* WARNING: %s from Python 3.5 */Ú.zPyMODINIT_FUNC %s(void);z–#if PY_VERSION_HEX >= 0x03050000 && (defined(__GNUC__) || defined(__clang__) || defined(_MSC_VER) || (defined(__cplusplus) && __cplusplus >= 201402L))z2#if defined(__cplusplus) && __cplusplus >= 201402Lz[[deprecated(%s)]] inlinez-#elif defined(__GNUC__) || defined(__clang__)z;__attribute__ ((__deprecated__(%s), __unused__)) __inline__ú#elif defined(_MSC_VER)z#__declspec(deprecated(%s)) __inlineú#endifz>static PyObject* __PYX_WARN_IF_%s_INIT_CALLED(PyObject* res) {zreturn res;Ú}ú#define z() __PYX_WARN_IF_z_INIT_CALLED(z()))r   r   )*Útype_entriesÚvar_entriesrì   r¼   r+   Úc_fileÚh_filerõ   r   ÚCCodeWriterrE   ÚGlobalStateÚinitialize_main_h_codeÚpartsÚgenerate_pxiÚi_fileÚPyrexCodeWriterÚput_generated_byÚapi_namer   Úh_guard_prefixÚput_h_guardÚputlnÚgenerate_type_header_codeÚcapi_reexport_cincludesÚgenerate_includesÚapi_guard_prefixÚ"generate_extern_c_macro_definitionÚis_cppÚgenerate_dl_import_macroÚgenerate_cclass_header_coder¾   Úgenerate_cclass_include_codeÚuse_entry_utility_codeÚgenerate_public_declarationÚmod_init_func_cnamer   r¿   Úas_c_string_literalÚrstripr   Úcopyto)rY   rC   rD   ré   rû   Úh_typesÚh_varsÚh_funcsÚh_extension_typesÚh_code_writerÚc_code_configrv   Úh_code_startÚh_code_mainÚ
h_code_endÚi_codeÚh_guardÚ	api_guardrÁ   Úpy3_mod_func_nameÚwarning_stringÚfs                         r*   rç   zModuleNode.generate_h_codeM  s  € ó	9ñ
 ˜C×,Ñ,°!Ô4ˆÙ˜3Ÿ?™?Ó+ˆÙ˜C×-Ñ-Ó.ˆÙ% c×&9Ñ&9Ó:Ðá‘f¡Ò+<Ü2°6·=±=À$ÓGˆFŒMØ×#Ñ# F§M¡MÔ2ä ×,Ñ,Ó.ˆMÜ2°3¸Ó@ˆMÜ×*Ñ*¨=¸$ÀÓNˆKØ×.Ñ.Ô0Ø&×,Ñ,¨XÑ6ˆLØ%×+Ñ+Ð,?Ñ@ˆKØ$×*Ñ*¨5Ñ1ˆJØ×#Ò#Ü 6°v·}±}ÀfÓ M�”Ü×-Ñ-¨f¯m©mÓ<‘à�à×)Ñ)Ô+Ø—m‘m¤F×$9Ñ$9¸3Ó?ˆGØ×$Ñ$ WÔ-Ø×Ñ˜rÔ"Ø×ÑÐ4Ô5Ø×*Ñ*¨7°KÔ@Ø×.Ò.Ø×&Ñ& s¨B°Ô<Ø×Ñ˜bÔ!ØŸ™¤f×&=Ñ&=¸sÓCˆIØ×Ñ˜l¨YÑ6Ô7Ø×Ñ˜bÔ!Ø×3Ñ3°KÀÇÁÃÔNØ×Ñ˜bÔ!Ø×)Ñ)¨+Ô6Ù Ø×!Ñ! "Ô%Û.�EØ×4Ñ4°U·Z±ZÀÔMÙØ×9Ñ9¸%¿*¹*ÀfÔMØ×6Ñ6°uÕ=ð	 /ñ
 Ø×!Ñ! "Ô%Û$�EØ×4Ñ4°U¸KÈÔPØ×6Ñ6°uÕ=ð %ñ Ø×!Ñ! "Ô%Û#�EØ×4Ñ4°U¸KÈÔPØ×6Ñ6°uÕ=ð $ð ×Ñ˜bÔ!Ø×ÑÐ0°9Ñ<Ô=Ø×Ñ˜bÔ!Ø×ÑÐpÔqØ×ÑÐkÔlØ×Ñ˜bÔ!Ø $× 8Ñ 8¸À3Ó GÐÝ*Ø—‘×3Ñ3Õ5Ò7HÒJ[ð,]ó ^ˆNà×ÑÐAÀN×DYÑDYÐZ]ÓD^Ñ^Ô_Ø×ÑÐ8Ð;LÑLÔMØ×Ñ˜bÔ!Ø×Ñð Gô Hð ×ÑÐRÔSØ×ÑÐ9¸N×<^Ñ<^Ó<`Ñ`ÔaØ×ÑÐMÔNØ×ÑÐ[Ø×2Ñ2Ó4ñ6ô 7à×ÑÐ7Ô8Ø×ÑÐCØ×2Ñ2Ó4ñ6ô 7à×Ñ˜hÔ'Ø×ÑÐ^ÐarÑrÔsØ×Ñ˜mÔ,Ø×Ñ˜cÔ"à×ÒÚ!Ò#4Ò6GðIô Jà×Ñ˜hÔ'à×Ñ˜RÔ Ø×ÑÐ/°'Ñ9Ô:ä˜vŸ}™}Ô-°Ø×$Ñ$ QÔ'÷ .Ð-ði ,=÷h .Ð-ús   ÖV;Ö;Wc                 ó  — |j                  t        j                  ›d|j                  j	                  |j
                  «      ›d�«       |r:|j                  d|j                  j	                  |j
                  d¬«      z  «       y y )NÚ Ú;zcdef extern %sr   ©Úpyrex)r  r   Úextern_c_macror¾   Údeclaration_codeÚcname)rY   rÁ   rü   r0  s       r*   r"  z&ModuleNode.generate_public_declaration¯  sm   € Ø�‰Ü×!Ó!Ø�J‰J×'Ñ'¨¯©Õ4ð6ô 	7ñ Ø�L‰LÐ)Ø—
‘
×+Ñ+¨E¯K©K¸qÐ+ÓAñCõ Dð r,   c                 ó^   — | j                  ||j                  «      }|j                  dd«      S ©Nr  Ú__)Úpunycode_module_nameÚqualified_nameÚreplace)rY   ÚprefixrC   r  s       r*   r  zModuleNode.api_name·  s-   € Ø×,Ñ,¨V°S×5GÑ5GÓHˆØ×Ñ  TÓ*Ð*r,   c                 ó2  ‡— d,d„} ||j                   «      } ||j                  «      } ||j                  «      }|s|s|sy t        |j                  d«      |_        | j                  |j
                  «       t        j                  «       Št        ||«      }t        j                  ‰| |«      }	|	j                  «        ‰j                  «        | j                  t        j                  |«      }
‰j!                  |
«       ‰j#                  d«       ‰j#                  d«       ‰j#                  d«       d-ˆfd„	}‰j#                  d«       |j$                  rVt&        j(                  j+                  |j$                  «      }t-        |«      }‰j#                  d	|j/                  «       z  «       |r‰‰j#                  d
«       |D ]s  }|j0                  }‰j#                  d|j2                  z  «       ‰j#                  d|j4                  ›d|j2                  ›d�«       ‰j6                  j9                  |«       Œu |r¶‰j#                  d
«       |D ]   }t;        |j0                  «      }|j=                  t        j>                  |j@                  «      }‰j#                  d|jC                  |«      z  «       ‰j#                  d|j@                  ›d|›�«       ‰j6                  j9                  |«       Œ¢ |r·‰j#                  d
«       |D ]¡  }t;        |j0                  «      }|j=                  t        jD                  |j@                  «      }‰j#                  d|jC                  |«      z  «       ‰j#                  d|j@                  ›d|›d�«       ‰j6                  j9                  |«       Œ£ |r	 |dd«       |r	 |dd«       |r	 |dd«       ‰j#                  d
«       ‰j#                  d| j                  d|«      z  «       ‰j#                  d«       ‰j#                  d|jF                  j/                  «       z  «       ‰j#                  d«       |D ]Š  }|j=                  t        j>                  |j@                  «      }|j0                  jI                  «       }‰j#                  dt        jJ                  ›d|j@                  j/                  «       ›d|›d|›d�	«       ŒŒ |D ]Š  }|j=                  t        jD                  |j@                  «      }|j0                  jM                  «       }‰j#                  dt        jJ                  ›d|j@                  j/                  «       ›d |›d|›d�	«       ŒŒ tO        ‰|jF                  d!i¬"«      5 }|D ]"  }| jQ                  |j0                  ‰|d#d¬$«       Œ$ 	 d d d «       ‰j#                  d%«       ‰j#                  d&«       ‰j#                  d'«       ‰j#                  d(«       ‰j#                  d)«       ‰j#                  d*«       ‰j#                  d
«       ‰j#                  d+|
z  «       tS        |j
                  «      }	 ‰jU                  |«       |jW                  «        y # 1 sw Y   ŒÌxY w# |jW                  «        w xY w).Nc                 ó`   — | D �cg c]  }|j                   s|r|j                  r|‘Œ  c}S c c}w r%   )rú   rí   )r×   r    rÁ   s      r*   Úapi_entriesz1ModuleNode.generate_api_code.<locals>.api_entries¼  s:   € Ù'.ó D¡w˜eØ—y’y¡S¨U×-AÒ-Aò  wñ Dð Dùò Dó   …#+z_api.hz#ifdef __MINGW64__z#define MS_WIN64r  Tc                 óŠ   •— t        j                  | ||¬«      \  }}|r‰j                  |«       |r‰j                  |«       y y )N)Úinclude_requires)r
   Úload_as_stringÚput)ru   Úsrc_filerJ  ÚprotoÚimplrü   s        €r*   Úput_utility_codez6ModuleNode.generate_api_code.<locals>.put_utility_codeÕ  s?   ø€ Ü%×4Ñ4°T¸8ÐVfÔg‰KˆE�4ÙØ—
‘
˜5Ô!ÙØ—
‘
˜4Õ ð r,   rÿ   z#include %srH   zstatic PyTypeObject *%s = 0;r  ú (*rn   zstatic %s = 0;r7  ÚVoidPtrImportrp   r   Ú
TypeImportzstatic int %s(void) {ÚimportzPyObject *module = 0;z#module = PyImport_ImportModule(%s);zif (!module) goto bad;zif (__Pyx_ImportFunction_z	(module, z, (void (**)(void))&ú, "z") < 0) goto bad;zif (__Pyx_ImportVoidPtr_z, (void **)&rî   )Úimported_modulesú	goto bad;)Ú
error_codeÚis_apizPy_DECREF(module); module = 0;ú	return 0;úbad:zPy_XDECREF(module);ú
return -1;r  r   )r   ©T),r	  rì   r¼   r+   r
  Úapi_filerõ   r   r  rE   r  r  r  r  r   r  r  r  r  ró   r'   rô   r&   r$  r¾   Útypeptr_cnameÚtypeobj_cnamerv   r!  r   ÚmangleÚfunc_prefix_apiru   r<  Úvarptr_prefix_apirB  Úsignature_stringr‚   Úempty_declaration_codeÚModuleImportGeneratorÚgenerate_type_import_callr   r&  Úclose)rY   rC   rD   ré   rG  Úapi_varsÚ	api_funcsÚapi_extension_typesr,  rv   r2  rP  Ú
h_filenamerÁ   r¾   r=  ÚsigÚimport_generatorr5  rü   s                      @r*   rè   zModuleNode.generate_api_code»  s"  ø€ ó	Dñ ˜sŸ™Ó/ˆÙ × 1Ñ 1Ó2ˆ	Ù)¨#×*=Ñ*=Ó>Ðá™IÑ)<Øä0°·±ÀÓIˆŒØ×Ñ §¡Ô0ä×!Ñ!Ó#ˆÜ.¨s°GÓ<ˆÜ×&Ñ& v¨t°]ÓCˆØ×*Ñ*Ô,Ø×ÑÔ!Ø—M‘M¤&×"9Ñ"9¸3Ó?ˆ	Ø×Ñ˜9Ô%à�‰Ð)Ô*Ø�‰Ð'Ô(Ø�‰�XÔõ	!ð 	�‰Ð*Ô+Ø�=Š=ÜŸ™×)Ñ)¨&¯-©-Ó8ˆJÜ,¨ZÓ8ˆJØ�L‰L˜¨×)GÑ)GÓ)IÑIÔJÙØ�L‰L˜ÔÛ,�Ø—z‘z�Ø—‘Ð;¸d×>PÑ>PÑPÔQØ—’Ø×&Ó&¨×(:Ó(:ð<ô =à×"Ñ"×9Ñ9¸%Õ@ð -ñ Ø�L‰L˜ÔÛ"�Ü §
¡
Ó+�ØŸ
™
¤6×#9Ñ#9¸5¿:¹:ÓF�Ø—‘Ð-°×0EÑ0EÀeÓ0LÑLÔMØ—’°·
³
¹EÐBÔCØ×"Ñ"×9Ñ9¸%Õ@ð #ñ Ø�L‰L˜ÔÛ!�Ü §
¡
Ó+�ØŸ
™
¤6×#;Ñ#;¸U¿Z¹ZÓH�Ø—‘Ð-°×0EÑ0EÀeÓ0LÑLÔMØ—’°5·:³:ºuÐEÔFØ×"Ñ"×9Ñ9¸%Õ@ð "ñ Ù˜_Ð.>Ô?ÙÙÐ-Ð/?Ô@ÙÙ˜\Ð+;Ô<Ø�‰�RÔØ�‰Ð,¨t¯}©}¸XÀsÓ/KÑKÔLØ�‰Ð,Ô-Ø�‰Ð:¸S×=OÑ=O×=cÑ=cÓ=eÑeÔfØ�‰Ð-Ô.ÛˆEØ—J‘Jœv×5Ñ5°u·z±zÓBˆEØ—*‘*×-Ñ-Ó/ˆCØ�LŠLä×#Ó# U§Z¡Z×%CÑ%CÕ%EÂuÊcðSõTð ó ˆEØ—J‘Jœv×7Ñ7¸¿¹ÓDˆEØ—*‘*×3Ñ3Ó5ˆCØ�LŠLä×#Ó# U§Z¡Z×%CÑ%CÕ%EÂuÊcðSõTð ô # 6¸S×=OÑ=OÐQYÐ<ZÕ[Ð_oÛ,�Ø×.Ñ.¨u¯z©z¸6ÐCSÐ`kÐtxÐ.Õyñ -÷ \ð 	�‰Ð5Ô6Ø�‰�[Ô!Ø�‰�VÔØ�‰Ð*Ô+Ø�‰�\Ô"Ø�‰�SÔØ�‰�RÔØ�‰Ð'¨)Ñ3Ô4ä˜&Ÿ/™/Ó*ˆð	Ø�M‰M˜!Ôà�G‰G�I÷! \Ð[ûð  �G‰G�Iús   Ö(Y8ÙZ Ù8ZÚZc                 ó�   — |j                  t        j                  ›dt        j                  dd«      ›d|j
                  ›d�«       y )Nr7  ÚPyTypeObjectÚ	DL_IMPORTr8  )r  r   r;  r   Úpublic_declr`  )rY   r¾   rü   s      r*   r  z&ModuleNode.generate_cclass_header_code"  s5   € Ø�‰Ü×!Ó!Ü×"Ñ" >°;Õ?Ø×Óð õ 	!r,   c                 óp  — |j                  d|j                  ›d|j                  ›d�«       |j                  «        |j                  j
                  }|rA|D ];  }|j                  d|j                  j                  |j                  d¬«      z  «       Œ= n|j                  d«       |j                  «        y )Nzcdef extern class r  Ú:zcdef %sr   r9  Úpass)
r  r¿   ru   Úindentr1   r	  r¾   r<  r=  Údedent)rY   r¾   r0  r	  rÁ   s        r*   r   z'ModuleNode.generate_cclass_include_code(  sŽ   € Ø�ŠØ×Ó˜dŸi›ið)ô 	*à�‰ŒØ—j‘j×,Ñ,ˆÙÛ$�Ø—‘˜YØ—J‘J×/Ñ/°·±À1Ð/ÓEñGõ Hñ %ð �L‰L˜Ô Ø�‰�r,   c           	      ó²	  — | j                  |j                  d¬«       | j                  }t        j                  s|j                  rPt        j                  dk(  xs |j                  dk(  }t        j                  || j                  j                  ¬«      }nt        j                  «       }t        ||«      }t        j                  || ||j                  ¬«      }|j                  «        |d   }	| j                  |_        | j"                  |_        | j%                  ||||j&                  |	«       |j)                  t*        «       |d   }
|
j-                  d| j.                  j1                  «       z  «       | j3                  «       }|
j-                  d	|z  «       |
j-                  d
|z  «       |
j-                  d«       |
j-                  d|j4                  j1                  «       z  «       |d   }
| j7                  |||
d¬«       |d   }
| j9                  ||
«       | j;                  ||
«       | j=                  ||
«       | j>                  jA                  ||
«       |d   }
| jC                  ||
«       | jE                  ||
«       |jF                  r| jI                  ||
«       |d   jK                  tM        jN                  dd«      «       | jQ                  ||d   «       | jS                  ||d   «       | jU                  ||d   «       tW        | j                  | jY                  | j                  | jZ                  |d   «      | jZ                  «      }| j]                  |d d |||d   «       | j_                  ||d   «       t        j`                  r| jc                  ||d   «       | je                  |d   «       | jg                  |||«       |	ji                  d«       |jj                  d d  D ]  }|j)                  |«       Œ |jm                  |
«       |jo                  «        | jq                  |||«       ts        |j                  «      }	 |ju                  |«       |jw                  «        d|_<        |jz                  r| j}                  ||«       t        j                  s|j                  r| j                  |||«       y y # |jw                  «        w xY w)NT)rñ   Úfullc)Úshow_entire_c_codeÚsource_desc)Úcode_configÚcommon_utility_include_dirrü   Úbefore_global_varz#define __Pyx_MODULE_NAME %szextern int %s;zint %s = 0;rH   z/* Implementation of %s */Úlate_includesF)ÚearlyÚmodule_codeÚmodule_exttypesÚmodule_stateÚSmallCodeConfigúModuleSetupCode.cÚmodule_state_clearÚmodule_state_traverseÚinit_moduleéÿÿÿÿÚcleanup_moduleÚmain_methodÚfilename_tablerÇ   r   )@rõ   r
  rã   r   r>   r   ÚAnnotationCCodeWriterÚcompilation_sourcer{  r   r  rE   r  r}  Úinitialize_main_c_coderV   Ú
module_posrB   Úgenerate_module_preambleÚembedded_metadatarw   Úrefnanny_utility_coder  r½   r$  Úis_main_module_flag_cnamerB  r  Úgenerate_cached_builtins_declsÚgenerate_lambda_definitionsÚgenerate_variable_definitionsr›   Úgenerate_function_definitionsÚgenerate_typeobj_definitionsÚgenerate_method_tablerÔ   Úgenerate_import_starÚput_code_herer
   ÚloadÚgenerate_module_state_startÚgenerate_module_state_clearÚgenerate_module_state_traverserN   rZ   r1   Úgenerate_module_init_funcÚgenerate_module_cleanup_funcÚembedÚgenerate_main_methodÚgenerate_filename_tableÚ!generate_declarations_for_modulesÚwriter°   r’   Úfinalize_main_c_codeÚgenerate_module_state_endr   r&  rh  Úc_file_generatedÚ	gdb_debugÚ_serialize_lineno_mapÚ_generate_annotations)rY   rC   rD   ré   Úmodulesrz  Ú
rootwriterr,  rv   rü   rf   Úmodule_is_mainÚshared_utility_exporterÚutilcoder5  s                  r*   ræ   zModuleNode.generate_c_code5  sW  € Ø×Ñ §¡¸DÐÔAØ×)Ñ)ˆä×Ò˜w×/Ò/Ü!(×!1Ñ!1°WÑ!<Ò![À×@PÑ@PÐT[Ñ@[ÐÜ!×7Ñ7Ø#5Ø ×3Ñ3×?Ñ?ô‰Jô
 ×)Ñ)Ó+ˆJä.¨s°GÓ<ˆä×&Ñ&Ø˜Ø%Ø'.×'IÑ'Iô
ˆð
 	×*Ñ*Ô,Ø˜XÑ&ˆà!%§¡ˆÔØ!%§¡ˆÔà×%Ñ% c¨7°G¸V×=UÑ=UÐW]Ô^à×$Ñ$Ô%:Ô;àÐ.Ñ/ˆØ�
‰
Ð1Ø×(Ñ(×<Ñ<Ó>ñ?ô 	@à×7Ñ7Ó9ˆØ�
‰
Ð# nÑ4Ô5Ø�
‰
�= >Ñ1Ô2Ø�
‰
�2ŒØ�
‰
Ð/°#×2DÑ2D×2XÑ2XÓ2ZÑZÔ[à˜?Ñ+ˆØ×Ñ˜s G¨T¸ÐÔ?à˜=Ñ)ˆà×+Ñ+¨C°Ô6ð 	×(Ñ(¨¨dÔ3Ø×*Ñ*¨3°Ô5Ø�	‰	×/Ñ/°°TÔ:ð Ð,Ñ-ˆØ×)Ñ)¨#¨tÔ4Ø×"Ñ" 3¨Ô-Ø×ÒØ×%Ñ% c¨4Ô0ð 	�NÑ#×1Ñ1Ü×ÑÐ.Ð0CÓDô	Fð 	×(Ñ(¨¨k¸.Ñ.IÔJØ×(Ñ(¨¨kÐ:NÑ.OÔPØ×+Ñ+¨C°Ð=TÑ1UÔVä"7Ø�H‰HØ×%Ñ% d§h¡h°·
±
¸KÈÑ<VÓWØ�J‰Jó#
Ðð 	×&Ñ&Ø�C�RˆLÐ1°3¸ÀMÑ8Rô	
ð 	×)Ñ)¨#¨{Ð;KÑ/LÔMÜ�=Š=Ø×%Ñ% c¨;°}Ñ+EÔFØ×$Ñ$ [Ð1AÑ%BÔCà×.Ñ.¨s°G¸[ÔIØ�‰�TÔà×-Ñ-©aÓ0ˆHØ×(Ñ(¨Õ2ð 1ð 	 ×<Ñ<¸TÔBà×(Ñ(Ô*à×&Ñ& s¨G°[ÔAä˜&Ÿ-™-Ó(ˆð	Ø×Ñ˜aÔ à�G‰GŒIØ"#ˆÔØ×ÒØ×&Ñ& s¨JÔ7Ü×Ò˜w×/Ò/Ø×&Ñ& z°6¸7ÕCð  0øð	 �G‰G�Iús   ÑS ÓSc                 óÂ  — | j                  |«       t        j                  xs |j                  }|rdt        j                  j                  |«      rEdd lmc m} |j                  |«      j                  «       }|j                  «       D ]	  }d |_        Œ nd }|j                  |j                  |j                  |¬«       | j                   j"                  sy | j                   j$                  j&                  }t        j                  j)                  t        j                  j+                  |j                  «      «      }	| j                   j"                  D ]Ö  }
t        j                  j)                  t        j                  j-                  |	|
«      «      }t        j                  j+                  |«      }|j/                  |	«      sŒq ||
| j0                  d¬«      }|sŒ‰||	k7  r5t        j                  j                  |«      s	 t        j2                  |«       |j                  |||¬«       ŒØ y # t4        $ r(}dd l}|j6                  |j8                  k7  r‚ Y d }~ŒCd }~ww xY w)Nr   )Úcoverage_xmlT)Ú
source_posÚinclude)r>   r   Úannotate_coverage_xmlró   r'   ÚexistsÚxml.etree.ElementTreeÚetreeÚElementTreeÚparseÚgetrootÚiterÚtailÚsave_annotationÚmain_source_filer
  r1   r´   rQ   Úsearch_include_directoriesÚabspathÚdirnameÚjoinÚ
startswithrV   ÚmakedirsÚOSErrorÚerrnoÚEEXIST)rY   r¯  ré   rD   Úcoverage_xml_filenameÚETr´  ÚelÚsearch_include_fileÚ
target_dirÚincluded_fileÚtarget_fileÚtarget_file_dirÚsource_fileÚerÉ  s                   r*   r­  z ModuleNode._generate_annotations�  s¿  € Ø�‰�jÔ!ä '× =Ñ =Ò ^À×A^ÑA^ÐÙ ¤R§W¡W§^¡^Ð4IÔ%Jß.Ð.ØŸ8™8Ð$9Ó:×BÑBÓDˆLØ"×'Ñ'Ö)�Ø�•ñ *ð  ˆLà×"Ñ" 6×#:Ñ#:¸F¿M¹MÐXdÐ"Ôeð �z‰z×(Ò(Øà"Ÿj™j×0Ñ0×KÑKÐÜ—W‘W—_‘_¤R§W¡W§_¡_°V·]±]Ó%CÓDˆ
Ø!ŸZ™Z×6Ô6ˆMÜŸ'™'Ÿ/™/¬"¯'©'¯,©,°zÀ=Ó*QÓRˆKÜ Ÿg™gŸo™o¨kÓ:ˆOØ"×-Ñ-¨jÔ9àÙ-¨mÈÏÉÐZ^Ô_ˆKÙØØ *Ò,´R·W±W·^±^ÀOÔ5TðÜ—K‘K Ô0ð
 ×&Ñ& {°KÈlÐ&Õ[ñ! 7øô ò Û Ø—w‘w %§,¡,Ò.Øô /ûðús   ÈH-È-	IÈ6IÉIc           
      óX  — |j                   j                  }|j                  j                  «       }t	        t
        «      }t        |«      D ]4  \  }\  }}|dkD  sŒ|j                  €Œ|||f   j                  |dz   «       Œ6 |j                  d«       t        |j                  «       «      D ][  \  \  }}}	|j                  €J ‚|j                  ddj                  t        t        |	«      «      |j                  t        |«      ¬«       Œ] |j!                  d«       |j#                  «        y )Nr   r   ÚLineNumberMappingÚ
LineNumberr7  )Ú	c_linenosÚsrc_pathÚ
src_lineno)rQ   Úgdb_debug_outputwriterÚbufferÚ
allmarkersr   ÚlistÚ	enumerateÚfilenamer¤   ÚstartrÖ   rØ   Ú	add_entryrÅ  ÚmapÚstrrþ   Ú	serialize)
rY   rC   ÚccodewriterÚtbÚmarkersÚdÚc_linenoÚsrc_descrÚ  rØ  s
             r*   r¬  z ModuleNode._serialize_lineno_mapÃ  s  € Ø�[‰[×/Ñ/ˆØ×$Ñ$×/Ñ/Ó1ˆäœÓˆÜ09¸'Ö0BÑ,ˆHÑ,�x Ø˜A‹~ (×"3Ñ"3Ñ"?Ø�(˜JÐ&Ñ'×.Ñ.¨x¸!©|Õ<ð 1Cð 	�‰Ð$Ô%Ü17¸¿¹»	Ö1BÑ-Ñ"ˆX�z IØ×$Ñ$Ð0Ð0Ð0Ø�L‰LØØŸ(™(¤3¤s¨IÓ#6Ó7Ø!×*Ñ*Ü˜z›?ð	 õ ð 2Cð 	�‰Ð"Ô#Ø
�‰�r,   c                 ó‚   — ||vr;d||<   |j                   D ]  }| j                  |||«       Œ |j                  |«       y y )Nr   )Úcimported_modulesrä   r¤   )rY   rC   Úmodule_listÚmodules_seenÚimported_modules        r*   rä   z"ModuleNode.find_referenced_modulesØ  sI   € Ø�lÑ"Ø !ˆL˜ÑØ#&×#8Ô#8�Ø×,Ñ,¨_¸kÈ<ÕXð $9à×Ñ˜sÕ#ð	 #r,   c                 óŽ  ‡‡‡	‡
‡‡— t        t        «      Š|D ]i  }‰|   }|j                  j                  }|sŒ! ‰|«      }‰|   j	                  |«       ‰j                  |«      }|€ŒQ|j                  j                  }|rŒIŒk t        «       Šg Š
ˆ	ˆˆ
ˆˆˆfd„Š	t        |«      D ]  } ‰	‰|   «       Œ ‰
j                  «        ‰
S )Nc                 óž   •— | ‰v ry ‰j                  | «       ‰ ‰| j                  «         D ]  } ‰‰|   «       Œ ‰j                  | «       y r%   )Úaddr¾   r¤   )ÚuÚvÚdfsÚgetkeyré   ÚseenÚ
subclassesÚ	type_dicts     €€€€€€r*   rö  z1ModuleNode.sort_types_by_inheritance.<locals>.dfsñ  sG   ø€ Ø�D‰yØØ�H‰H�QŒKØ¡ q§v¡v£Ô/�Ù�I˜a‘LÕ!ð 0à�M‰M˜!Õr,   )	r   rÞ  r¾   Ú	base_typer¤   ÚgetÚsetÚreversedÚreverse)rY   rú  Ú
type_orderr÷  ÚkeyÚ	new_entryÚbaseÚbase_keyÚ
base_entryrö  ré   rø  rù  s    ` `     @@@@r*   Úsort_types_by_inheritancez$ModuleNode.sort_types_by_inheritanceß  s¿   ý€ Ü ¤Ó&ˆ
ÛˆCØ! #™ˆIà—>‘>×+Ñ+ˆDÚÙ! $›<�Ø˜8Ñ$×+Ñ+¨CÔ0Ø&Ÿ]™]¨8Ó4�
ØÐ%ØØ!—‘×0Ñ0�ó ð	 ô ‹uˆØˆ÷	ñ 	ô ˜JÖ'ˆCÙ�	˜#‘Õð (ð 	�‰ÔØˆr,   c                 ó>  — i g }}i g }}|D �]`  }|j                   D ]¾  }|j                  sŒ|j                  rŒ|j                  }	|	j                  }
|
sŒ8|
|v rmddlm} t        |j                  |«      sJ t        |j                  «      «       ‚t        ||
   j                  |«      rŒŒJ t        ||
   j                  «      «       ‚|||
<   |j                  |
«       ŒÀ ||u }|j                  D ]}  }|j                  sŒ|s|j                  sŒ|j                  }	|	j                  sŒ8|j                  rŒE|j                  }	|	j                  }
|
|vsJ |
«       ‚|||
<   |j                  |
«       Œ �Œc d„ }| j                  |||«      }d„ }| j                  |||«      }||fS )Nr   )ÚNonManglingModuleScopec                 ó   — | j                   S r%   )Úvtabstruct_cname©Ú
entry_types    r*   r
  z8ModuleNode.sort_type_hierarchy.<locals>.vtabstruct_cname  s   € Ø×.Ñ.Ð.r,   c                 ó   — | j                   S r%   )Úobjstruct_cnamer  s    r*   r  z7ModuleNode.sort_type_hierarchy.<locals>.objstruct_cname$  s   € Ø×-Ñ-Ð-r,   )r¼   ÚusedÚin_cincluder¾   r
  r
   r  r©   r1   rä  r¤   r  rí   Úis_extension_typer  r  )rY   rî  rC   Ú	vtab_dictÚvtab_dict_orderÚvtabslot_dictÚvtabslot_dict_orderrî   rÁ   r¾   r  r  Úall_defined_herer
  Ú	vtab_listr  Úvtabslot_lists                    r*   Úsort_type_hierarchyzModuleNode.sort_type_hierarchyÿ  s¦  € à%'¨�?ˆ	Ø-/°Ð*ˆä!ˆFØ×/Ô/�Ø—:“: e×&7Ó&7Ø Ÿ:™:�DØ×/Ñ/�CÙØ Ø˜iÑ'õ HÜ)¨%¯+©+Ð7MÔNÐ`ÔPSÐTY×T_ÑT_ÓP`Ó`ÐNÜ)¨)°C©.×*>Ñ*>Ð@VÕWÐrÔY\Ð]fÐgjÑ]k×]qÑ]qÓYrÓrÐWà).˜	 #™Ø'×.Ñ.¨sÕ3ð 0ð  &¨˜}ÐØ×,Ô,�Ø—:“:Ñ#3°u×7KÓ7KØ Ÿ:™:�DØ×-Ó-°e×6GÓ6GØ$Ÿz™z˜Ø"×2Ñ2˜Ø"¨-Ñ7Ð<¸Ó<Ð7Ø-2˜ cÑ*Ø+×2Ñ2°3Õ7ò -ð# "ò6	/à×2Ñ2Ø�Ð(8ó:ˆ	ò	.à×6Ñ6ØÐ.°óAˆð ˜=Ð)Ð)r,   c                 óþ   — t        j                  d«      }i g }}|j                  D ]5  } ||j                  «      }||vsJ |«       ‚|||<   |j	                  |«       Œ7 | j                  |||«      |j                  d d  y )Nr  )ÚoperatorÚ
attrgetterr¼   r¾   r¤   r  )rY   rC   Úkey_funcÚ
entry_dictÚentry_orderrÁ   r  s          r*   rå   zModuleNode.sort_cdef_classes+  sˆ   € Ü×&Ñ&Ð'8Ó9ˆØ"$ b�Kˆ
Ø×(Ô(ˆEÙ˜5Ÿ:™:Ó&ˆCØ˜jÑ(Ð-¨#Ó-Ð(Ø#ˆJ�s‰OØ×Ñ˜sÕ#ð	 )ð
 "&×!?Ñ!?Ø˜ Xó"/ˆ×Ñ™AÑr,   c                 ó
  — |D ]  }| j                  |j                  |«       Œ  t        |«      }t        «       }|D ]½  }	|	|u }
g }|	j                  D ]€  }|j                  j                  rH|j
                  r<|j                  |vsŒ4|j                  |j                  «       |j                  |«       Œa|
s|j                  sŒp|j                  |«       Œ‚ |D �cg c]	  }||vsŒ|‘Œ }}| j                  ||«       Œ¿ |D ]0  }| j                  |j                  |«       | j                  ||«       Œ2 |D ]J  }| j                  ||«       | j                  ||«       | j                  ||«       | j                  ||«       ŒL y c c}w r%   )Ú!generate_objstruct_predeclarationr¾   rý  r  Ú	is_ctupler  ru   ró  r¤   rí   r  Úgenerate_objstruct_definitionÚgenerate_typeobj_predeclarationÚgenerate_exttype_vtable_structÚ$generate_exttype_vtabptr_declarationÚ*generate_exttype_final_methods_declaration)rY   rC   r®  r  r  rf   rÁ   Úvtabslot_entriesÚctuple_namesrî   Ú
definitionr  Úts                r*   Úgenerate_type_definitionsz$ModuleNode.generate_type_definitions6  sb  € ã"ˆEØ×2Ñ2°5·:±:¸tÕDð #ä˜}Ó-ÐÜ“uˆÛˆFØ 3˜ˆJØˆLØ×,Ô,�Ø—:‘:×'Ò'¨E¯JªJØ—z‘z¨Ò5Ø$×(Ñ(¨¯©Ô4Ø$×+Ñ+¨EÕ2Ù 5×#7Ó#7Ø ×'Ñ'¨Õ.ð -ñ (4ÓQ¡| !°qÐ@PÒ7PšA |ˆLÐQØ×*Ñ*¨<¸Õ>ð ó #ˆEØ×.Ñ.¨u¯z©z¸4Ô@Ø×0Ñ0°¸Õ=ð #ó ˆEØ×0Ñ0°¸Ô=Ø×/Ñ/°°tÔ<Ø×5Ñ5°e¸TÔBØ×;Ñ;¸EÀ4ÕHñ	 ùò Rs   Ã	F Ã!F c                 ó~  — |d   }|j                  d«       |j                  d«       d|D �cg c]  }|j                  ‘Œ c}v rD|j                  d«       |j                  d«       |j                  d«       |j                  d«       | j                  ||«      \  }}| j                  |||||«       |d	   }|D ]}  }	|	|u }
|j                  d«       |j                  d
|	j                  j	                  «       z  «       | j                  |	||
|«       | j                  |	||
«       | j                  |	||
«       Œ y c c}w )Nrý   rH   z/*--- Type declarations ---*/zcpython.arrayz#ifndef _ARRAYARRAY_Hzstruct arrayobject;z'typedef struct arrayobject arrayobject;r  Úmodule_declarationsz!/* Module declarations from %s */)r  rB  r  r,  r$  Úgenerate_c_class_declarationsÚgenerate_cvariable_declarationsÚgenerate_cfunction_declarations)rY   rC   r®  rv   ÚtypecodeÚmr  r  Ú
modulecoderî   Údefined_heres              r*   r¦  z,ModuleNode.generate_declarations_for_modulesQ  s6  € ØÐ2Ñ3ˆØ�‰�rÔØ�‰Ð6Ô7ð ¹ÓA¹°A˜q×/Ó/¸ÑAÑAØ�N‰NÐ2Ô3Ø�N‰NÐ0Ô1Ø�N‰NÐDÔEØ�N‰N˜8Ô$Ø#'×#;Ñ#;¸GÀSÓ#IÑ ˆ	�=Ø×&Ñ&Ø�˜) ]°Hô	>à Ð!6Ñ7ˆ
ÛˆFØ! S˜=ˆLØ×Ñ˜RÔ Ø×ÑÐ@À6×CXÑCX×ClÑClÓCnÑnÔoØ×.Ñ.¨v°zÀ<ÐQ\Ô]Ø×0Ñ0°¸À\ÔRØ×0Ñ0°¸À\ÕRñ ùò Bs   ­D:c                 óN   — | j                  t        j                  |d«      «       y )Nr…  )rœ  r
   r�  )rf   ru   s     r*   Ú_put_setup_codezModuleNode._put_setup_codeh  s   € à×Ñœ;×+Ñ+¨DÐ2EÓFÕGr,   c                 óæ  — |j                  «        |rZ|j                  d«       |j                  t        j                  |dd¬«      «       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d	«       | j	                  |d
«       t        |j                  j                  «       t        j                  ¬«      D ]-  }|j                  |j                  k(  sŒ|j                  |«       Œ/ |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d   j                  d«       ddlm} |j                  d|j!                  dd«      › d�«       |j                  dt#        |«      z  «       |j                  dt$        j&                  |j(                  j*                  v z  «       |j                  j-                  t/        j0                  dd«      «       | j	                  |d«       |j(                  j2                  j4                  r| j	                  |d«       n| j	                  |d«       | j	                  |d «       | j	                  |d!«       d"t6        j8                  › d#t6        j:                  › d$t6        j8                  › d%t6        j<                  › d&t6        j<                  › d't6        j>                  › d(�}d)t6        j>                  › d#t6        j@                  › d*�}	d+}
|jB                  �tE        |jB                  «      }
|j                  d,«       |j                  d-|
› �«       |j                  d.«       |j                  d/«       |j                  d0«       |j                  d.«       |j                  d1«       |j                  ||	z  «       |j                  d«       |j                  |dz  «       |j                  d.«       |j                  d2«       |j                  d3«       |j                  d«       | jG                  ||jI                  «       «       |j                  d«       |j                  d4| jK                  t6        jL                  |«      z  «       |j                  d4| jK                  t6        jN                  |«      z  «       |j                  d5«       | jQ                  |||d6¬7«       |j                  d«       |j                  d8«       |j                  d9«       |j                  d.«       |j                  d«       |jR                  d:   rU|j                  d«       |j                  d;«       |j                  d<«       |j                  d.«       |j                  d«       |j                  d=«       |j                  d>«       |j                  d?«       |j                  d«       |j                  d@«       |j                  d.«       |j                  d«       |jR                  dA   rdBndC}|j                  dD|› �«       |j                  d.«       |jR                  dE   }|jR                  dF   }|dGvr|stU        | jV                  dH«       |j                  dItE        |dJk(  «      › �«       |j                  dKtE        |dLk(  «      › �«       |dMvr|j                  dN|› d�«       |dOk(  rdP}n|dQk(  rdR}n|jY                  «       }|j                  dS|› dT�«       |j                  dU|› dV�«       |j[                  t/        j\                  dWdX«      d+   «       |j-                  t/        j^                  dYdZ«      «       t`        jb                  je                  |«       t`        jb                  jg                  |«       t`        jh                  jg                  |«       |j[                  tj        jl                  «       | j	                  |d[«       |j                  d«       |j                  d\«       |j                  d]|jn                  z  «       tp        jr                  �"|j                  d^t6        jt                  z  «       |j                  d.«       |j                  d_t6        j<                  z  «       |j                  d`t6        j>                  z  «       |j                  dat6        jv                  ›d#t6        jx                  ›d*�«       |j                  dbt6        j8                  z  «       |j-                  t/        j^                  dcd«      «       |j-                  t/        j0                  ddd«      «       |j-                  t/        j^                  ded«      «       t{        |«      r&|j-                  t/        j^                  dfdg«      «       y y )hNz/* BEGIN: Cython Metadataé   T)rv  Ú	sort_keyszEND: Cython Metadata */rH   z#ifndef PY_SSIZE_T_CLEANz#define PY_SSIZE_T_CLEANz#endif /* PY_SSIZE_T_CLEAN */ÚInitLimitedAPI©r  z#ifndef Py_PYTHON_Hzg    #error Python headers needed to compile C extensions, please install development version of Python.z!#elif PY_VERSION_HEX < 0x03080000z'    #error Cython requires Python 3.8+.ú#elserþ   z#endif /* Py_PYTHON_H */r   )Ú__version__z#define __PYX_ABI_VERSION "r  Ú_Ú"z#define CYTHON_HEX_VERSION %sz!#define CYTHON_FUTURE_DIVISION %dÚCythonABIVersionr…  ÚCModulePreambleÚCppInitCodeÚ	CInitCodeÚPythonCompatibilityÚMathInitCodez/#define __PYX_MARK_ERR_POS(f_index, lineno)  { ú = z[f_index]; (void) z; z = lineno; (void) z;%s (void) z; }r7  r8  r   z)#ifndef CYTHON_CLINE_IN_TRACEBACK_RUNTIMEz*#define CYTHON_CLINE_IN_TRACEBACK_RUNTIME r  z!#ifndef CYTHON_CLINE_IN_TRACEBACKzC#define CYTHON_CLINE_IN_TRACEBACK CYTHON_CLINE_IN_TRACEBACK_RUNTIMEz#if CYTHON_CLINE_IN_TRACEBACKz.#define __PYX_ERR(f_index, lineno, Ln_error) \z:    { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; }z
#define %sz/* Early includes */F)ÚlatezL#if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS)z!#define CYTHON_WITHOUT_ASSERTIONSÚccomplexz#if !defined(CYTHON_CCOMPLEX)z#define CYTHON_CCOMPLEX 1z&#ifdef CYTHON_FREETHREADING_COMPATIBLEz##if CYTHON_FREETHREADING_COMPATIBLEz:#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_NOT_USEDz6#define __Pyx_FREETHREADING_COMPATIBLE Py_MOD_GIL_USEDÚfreethreading_compatibleÚPy_MOD_GIL_NOT_USEDÚPy_MOD_GIL_USEDz'#define __Pyx_FREETHREADING_COMPATIBLE Úc_string_typeÚc_string_encoding)ÚbytesÚ	bytearrayzGa default encoding must be provided if c_string_type is not a byte typez/#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII Úasciiz.#define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 Úutf8)rQ  rR  z'#define __PYX_DEFAULT_STRING_ENCODING "rP  Ú	ByteArrayrä  ÚUnicodez*#define __Pyx_PyObject_FromString __Pyx_PyÚ_FromStringz1#define __Pyx_PyObject_FromStringAndSize __Pyx_PyÚ_FromStringAndSizeÚTypeConversionszTypeConversion.cÚFormatTypeNamezObjectHandling.cÚPretendToInitializeú#if !CYTHON_USE_MODULE_STATEzstatic PyObject *%s = NULL;zstatic PyObject *%s;zstatic int %s;zstatic int %s = 0;zstatic const char * const zstatic const char *%s;ÚFastTypeChecksÚGetRuntimeVersionÚAddModuleRefÚPythranConversionzCppSupport.cpp)>r  r  ÚjsonÚdumpsr7  rÖ   r±   r²   r   ÚsortkeyÚlocationÚINITIALr§  rv   rH   r>  rC  r   r   ÚdivisionrQ   Úfuture_directivesrw   r
   r�  rD   Úcplusr   Úfilename_cnameÚfiletable_cnameÚlineno_cnameÚclineno_cnameÚline_c_macror=   Úintr  r  r  r  r  r  rB   r   rV   ÚtitlerL  rK  rx   r   Úc_long_typeÚcreate_to_py_utility_codeÚcreate_from_py_utility_codeÚ
c_int_typer   Úbranch_prediction_macrosÚmodule_cnamer   Ú
pre_importÚpreimport_cnameÚcfilenm_cnameÚfile_c_macror#   )rY   rC   rD   rí  Úmetadatarf   r¸   r>  Úmark_errpos_codeÚ
cline_infoÚdefault_cline_runtimeÚft_compatiblerM  rN  Úc_string_func_names                  r*   r‘  z#ModuleNode.generate_module_preamblel  s  € Ø×ÑÔÙØ�J‰JÐ2Ô3Ø�J‰J”t—z‘z (°1ÀÔEÔFØ�J‰JÐ0Ô1Ø�J‰J�rŒNà�
‰
Ð-Ô.Ø�
‰
Ð-Ô.Ø�
‰
Ð2Ô3Ø×Ñ˜TÐ#3Ô4ä˜#Ÿ.™.×/Ñ/Ó1´{×7JÑ7J×KˆCØ�|‰|˜sŸ{™{Ó*Ø—	‘	˜$•ð Lð 	�
‰
Ð(Ô)Ø�
‰
ð Cô 	Dà�
‰
Ð6Ô7Ø�
‰
Ð<Ô=Ø�
‰
�7ÔØ×Ñ˜Ñ×%Ñ%Ð&@ÔAå"Ø�
‰
Ð0°×1DÑ1DÀSÈ#Ó1NÐ0OÈqÐQÔRØ�
‰
Ð2Ô5FÀ{Ó5SÑSÔTØ�
‰
Ð6Ü�O‰O˜sŸ{™{×<Ñ<Ð<ñ>ô 	?ð 	×Ñ×)Ñ)Ü×ÑÐ/Ð1DÓEô	Gð 	×Ñ˜TÐ#4Ô5Ø�;‰;×Ñ×$Ò$Ø× Ñ   }Õ5à× Ñ   {Ô3Ø×Ñ˜TÐ#8Ô9Ø×Ñ˜T >Ô2ð
Ü×%Ñ%Ð& c¬&×*@Ñ*@Ð)Að BÜ×,Ñ,Ð-ð .Ü×#Ñ#Ð$ð %Ü×*Ñ*Ð+ð ,ä×+Ñ+Ð,ð -ðð 	ð œ×-Ñ-Ð.¨c´&×2EÑ2EÐ1FÀaÐHˆ
ð !"ÐØ×&Ñ&Ð2ä$'¨×(CÑ(CÓ$DÐ!à�
‰
Ð>Ô?Ø�
‰
Ð?Ð@UÐ?VÐWÔXØ�
‰
�8Ôà�
‰
Ð6Ô7Ø�
‰
ÐXÔYØ�
‰
�8Ôà�
‰
Ð2Ô3Ø�
‰
Ð# jÑ0Ô1Ø�
‰
�7ÔØ�
‰
Ð# bÑ(Ô)Ø�
‰
�8Ôà�
‰
ÐDÔEØ�
‰
ÐOÔPà�
‰
�2ŒØ×/Ñ/°°c·j±j³lÔCØ�
‰
�2Œà�
‰
�< $§-¡-´×0EÑ0EÀsÓ"KÑKÔLØ�
‰
�< $§-¡-´×0GÑ0GÈÓ"MÑMÔNØ�
‰
Ð)Ô*Ø×Ñ˜sÐ$5°tÀ%ÐÔHØ�
‰
�2ŒØ�
‰
ÐaÔbØ�
‰
Ð6Ô7Ø�
‰
�8ÔØ�
‰
�2Œà�>‰>˜*Ò%Ø�J‰J�rŒNØ�J‰JÐ6Ô7Ø�J‰JÐ2Ô3Ø�J‰J�xÔ Ø�J‰J�rŒNà�
‰
Ð;Ô<Ø�
‰
Ð8Ô9Ø�
‰
ÐOÔPØ�
‰
�7ÔØ�
‰
ÐKÔLØ�
‰
�8ÔØ�
‰
�7ÔØ14·±Ð@ZÒ1[Ñ-ÐarˆØ�
‰
Ð<¸]¸OÐLÔMØ�
‰
�8ÔàŸ™ Ñ7ˆØŸN™NÐ+>Ñ?ÐØÐ 6Ñ6Ñ?PÜ�$—(‘(ÐeÔfØ�
‰
ÐDÄSÐIZÐ^eÑIeÓEfÐDgÐhÔiØ�
‰
ÐCÄCÐHYÐ]cÑHcÓDdÐCeÐfÔgØÐ$5Ñ5Ø�J‰JÐ@ÐARÐ@SÐSTÐUÔVØ˜KÒ'Ø!,ÑØ˜eÒ#Ø!*Ñà!.×!4Ñ!4Ó!6ÐØ�
‰
Ð?Ð@RÐ?SÐS^Ð_Ô`Ø�
‰
ÐFÐGYÐFZÐZlÐmÔnØ�‰”×+Ñ+Ð,=Ð?QÓRÐSTÑUÔVØ×Ñœ[×4Ñ4Ð5EÐGYÓZÔ[ô 	×Ñ×8Ñ8¸Ô=Ü×Ñ×:Ñ:¸3Ô?Ü×Ñ×9Ñ9¸#Ô>à�‰”×/Ñ/Ô0à×Ñ˜TÐ#8Ô9Ø�
‰
�2ŒØ�
‰
Ð1Ô2Ø�
‰
Ð0°3×3CÑ3CÑCÔDÜ×ÑÐ)Ø�J‰JÐ-´×0FÑ0FÑFÔGØ�
‰
�8Ôà�
‰
Ð#¤f×&9Ñ&9Ñ9Ô:Ø�
‰
Ð'¬&×*>Ñ*>Ñ>Ô?Ø�
Š
¼6×;OÓ;OÔQW×QdÓQdÐeÔfØ�
‰
Ð+¬f×.CÑ.CÑCÔDà×Ñœ[×4Ñ4Ð5EÐGZÓ[Ô\Ø×Ñœ[×-Ñ-Ð.AÐCVÓWÔXØ×Ñœ[×4Ñ4°^ÐEXÓYÔZÜ˜#ÔØ× Ñ ¤×!8Ñ!8Ð9LÐN^Ó!_Õ`ð r,   c                 óœ  — t         j                  }|j                  d«       |j                  d|z  «       |j                  d|z  «       |j                  d|z  «       |j                  d«       |j                  d|z  «       |j                  d«       |j                  d|z  «       |j                  d	«       |j                  d
«       |r|j                  d|z  «       n[|j                  d«       |j                  d|z  «       |j                  d«       |j                  d|z  «       |j                  d«       |j                  d«       y )Nz#ifdef CYTHON_EXTERN_Cz    #undef %sz    #define %s CYTHON_EXTERN_Cz#elif defined(%s)z    #ifdef _MSC_VERzf    #pragma message ("Please do not define the '%s' macro externally. Use 'CYTHON_EXTERN_C' instead.")z	    #elsez[    #warning Please do not define the '%s' macro externally. Use 'CYTHON_EXTERN_C' instead.z
    #endifr=  z    #define %s extern "C++"z  #ifdef __cplusplusz    #define %s extern "C"z  #elsez    #define %s externz  #endifr  )r   r;  r  )rY   rf   r  ru   s       r*   r  z-ModuleNode.generate_extern_c_macro_definition  s  € Ü×$Ñ$ˆØ�
‰
Ð+Ô,à�
‰
�? TÑ)Ô*Ø�
‰
Ð3°dÑ:Ô;Ø�
‰
Ð&¨Ñ-Ô.Ø�
‰
Ð(Ô)Ø�
‰
Ð}ð  AEñ  Eô  	FØ�
‰
�;ÔØ�
‰
ÐpÐswÑwÔxØ�
‰
�<Ô Ø�
‰
�7ÔÙØ�J‰JÐ4°tÑ;Õ<à�J‰JÐ-Ô.Ø�J‰JÐ2°TÑ9Ô:Ø�J‰J�yÔ!Ø�J‰JÐ.°Ñ5Ô6Ø�J‰J�zÔ"Ø�
‰
�8Õr,   c                 ój   — |j                  d«       |j                  d«       |j                  d«       y )Nz#ifndef DL_IMPORTz  #define DL_IMPORT(_T) _Tr  )r  re   s     r*   r  z#ModuleNode.generate_dl_import_macro%  s(   € Ø�
‰
Ð&Ô'Ø�
‰
Ð/Ô0Ø�
‰
�8Õr,   c                 óT  — t        |j                  j                  «       t        j                  ¬«      D ]^  }|j
                  |j                  k(  r|sŒ|j                  |«       Œ1|j
                  |j                  k(  sŒK|sŒN|j                  |«       Œ` |r|j                  d«       y y )Nr<  z#include <omp.h>)
rÖ   r±   r²   r   ra  rb  ÚEARLYr§  ÚLATEÚputln_openmp)rY   rC   rí  rf   r€  rH  r¸   s          r*   r  zModuleNode.generate_includes*  s|   € Ü˜#Ÿ.™.×/Ñ/Ó1´{×7JÑ7J×KˆCØ�|‰|˜sŸy™yÒ(ÚØ—I‘I˜d•OØ—‘ §¡Ó)ÚØ—I‘I˜d•Oð Lñ Ø×ÑÐ0Õ1ð r,   c                 ó  — ddl m}m} |j                  d«       |j                  dt        j
                  z  «       |j                  j                  r”|j                  j                  D ]z  }|j                  «       } ||«      r|j                  «       }t        j                  |«      j                  «       }t        |«      }|j                  d|j                  «       z  «       Œ| n|j                  d«       |j                  d«       y )Nr   )Úisabsrô   rH   z!static const char* const %s[] = {ú%s,Ú0ú};)Úos.pathr…  rô   r  r   rh  rv   Úfilename_listÚget_filenametable_entryÚget_descriptionÚpathlibÚPathÚas_posixr&   r$  )rY   rf   r…  rô   r{  Ú	file_pathÚescaped_filenames          r*   r¥  z"ModuleNode.generate_filename_table5  sÇ   € ß+Ø�
‰
�2ŒØ�
‰
Ð6¼×9OÑ9OÑOÔPØ×Ñ×)Ò)Ø#×/Ñ/×=Ô=�Ø'×?Ñ?ÓA�	Ù˜Ô#à +× ;Ñ ;Ó =�Iä#ŸL™L¨Ó3×<Ñ<Ó>�	Ü#6°yÓ#AÐ Ø—
‘
˜5Ð#3×#GÑ#GÓ#IÑIÕJñ  >ð �J‰J�sŒOØ�
‰
�4Õr,   c                  ó   — y r%   r˜   ©rY   rC   rf   s      r*   Úgenerate_type_predeclarationsz(ModuleNode.generate_type_predeclarationsH  s   € Ør,   c                 ó8  — |D ]½  }|j                   rŒ|j                  }|j                  rŒ)|j                  s|j                  r| j                  ||«       ŒT|j                  r?|j                  s3|j                  r'| j                  |j                  j                  |«       ŒŸ|j                  sŒ¬| j                  ||«       Œ¿ |D �]R  }|j                   rŒ|j                  }|j                  r| j                  ||«       nÒ|j                  s|j                  r| j                  ||«       n§|j                  r| j!                  ||«       nˆ|j                  r?|j                  s3|j                  r'| j!                  |j                  j                  |«       n=|j                  r| j#                  ||«       n|j                  r| j%                  ||«       t'        |dd «      s�Œ|j(                  j*                  D ]  }|j,                  j/                  |«       Œ �ŒU y )Nr1   )r  r¾   Ú
is_typedefÚis_struct_or_unionÚis_cpp_classÚ$generate_struct_union_predeclarationr"  Úis_fusedr  Ústruct_entryr  r!  Úgenerate_typedefrÛ   rÜ   Úgenerate_enum_definitionÚ generate_struct_union_definitionÚgenerate_cpp_class_definitionr#  Úgetattrr1   r	  rv   r!  )rY   r  rf   rÁ   r¾   Ú	var_entrys         r*   r  z$ModuleNode.generate_type_header_codeK  s“  € ó "ˆEØ×$Ó$à—z‘z�Ø—?’?ØØ×,Ò,°×0AÒ0AØ×=Ñ=¸eÀTÕJØ—^’^¨D¯MªM¸e¿jºjØ×=Ñ=¸e¿j¹j×>UÑ>UÐW[Õ\Ø×+Ó+Ø×:Ñ:¸4ÀÕFð "ô "ˆEØ×$Ó$à—z‘z�Ø—?’?Ø×)Ñ)¨%°Õ6Ø—\’\ T×%5Ò%5Ø×1Ñ1°%¸Õ>Ø×,Ò,Ø×9Ñ9¸%ÀÕFØ—^’^¨D¯MªM¸e¿jºjØ×9Ñ9¸%¿*¹*×:QÑ:QÐSWÕXØ×&Ò&Ø×6Ñ6°u¸dÕCØ×+Ò+Ø×6Ñ6°t¸TÔBÜ˜4 ¨$Ö/Ø%)§Z¡Z×%;Ô%;˜	Ø×(Ñ(×?Ñ?À	ÕJò &<ñ# "r,   c                 óô   — |j                  d«       |j                  D ]X  }|j                  }|j                  rŒ|j                  }|j                  d«      r|dd  }n|}|j                  d|›d|›d�«       ŒZ y )NrH   Ú__pyx_é   útypedef struct z __pyx_gcc33_r8  )r  r¼   r¾   Útypedef_flagr  rÆ  )rY   rC   rf   rÁ   r¾   ru   r¿  s          r*   Úgenerate_gcc33_hackzModuleNode.generate_gcc33_hackp  sl   € à�
‰
�2ŒØ×(Ô(ˆEØ—:‘:ˆDØ×$Ó$Ø×+Ñ+�Ø—?‘? 8Ô,Ø  ˜8‘Dà�DØ—
’
Úš$ð õ !ñ )r,   c                 óP  — |j                   j                  }|j                  }|j                  r|j                  s	 |j
                  d   }n|}|j                  |j                  «       |j                  d|j                  |j                  «      z  «       y # t        $ r |}Y ŒVw xY w)NÚnumeric_typedefsztypedef %s;)r¾   Útypedef_base_typer1   Ú
is_numericÚis_cpp_class_scoperv   ÚKeyErrorÚmark_posrV   r  r<  r=  )rY   rÁ   rf   rû  Úenclosing_scopeÚwriters         r*   rœ  zModuleNode.generate_typedef~  sŽ   € Ø—J‘J×0Ñ0ˆ	ØŸ+™+ˆØ×Ò¨×(JÒ(JðØ×)Ñ)Ð*<Ñ=‘ð ˆFØ�‰˜Ÿ	™	Ô"Ø�‰�] Y×%?Ñ%?ÀÇÁÓ%LÑLÕMøô ò Ø’ðús   ¼B ÂB%Â$B%c           
      óL   — |j                   r|›d|›d|›d|›d|›d�
S |›d|›d�S )Nr7  z
;
typedef r8  )r¦  )rY   r¾   Úkindru   s       r*   Úsue_predeclarationzModuleNode.sue_predeclaration‹  s.   € Ø×Òâ’dÚ’dšDð"ð "ò  $¢TÐ*Ð*r,   c           
      óT  — |j                   }|j                  rU|j                  rI|j                  ddj	                  |j                  D �cg c]  }|j                  «       ‘Œ c}«      z  «       |j                  | j                  ||j                  |j                  «      «       y c c}w )Nztemplate <typename %s>z, typename )	r¾   r˜  Ú	templatesr  rÅ  re  r³  r²  r=  )rY   rÁ   rf   r¾   ÚTs        r*   r™  z/ModuleNode.generate_struct_union_predeclaration“  s†   € Ø�z‰zˆØ×Ò §¢Ø�J‰JÐ/°-×2DÑ2DØ59·^²^ÓD±^°�×)Ñ)Õ+°^ÑDó3Fñ Fô Gà�
‰
�4×*Ñ*¨4°·±¸D¿J¹JÓGÕHùò Es   Á
B%c                 ó   — |›d|›d�}d}||fS )Nr7  ú {rˆ  r˜   )rY   r¾   r²  ru   ÚheaderÚfooters         r*   Úsue_header_footerzModuleNode.sue_header_footerš  s   € Ú"¢DÐ)ˆØˆØ�vˆ~Ðr,   c                 ó˜  — |j                  |j                  «       |j                  }|j                  }|�r”|j                  }|j
                  xr |j                  }|r0|j                  ›dd›�}|j                  j                  t        «       | j                  |||j                  «      \  }}|rU|j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  |«       |j                  }	|	D ]9  }
|j                  d|
j                  j                  |
j                  «      z  «       Œ; |j                  |«       |rV|j                  d«       |j                  d	«       |j                  d«       |j                  d
«       |j                  d«       y y y )Nr7  Ú__Pyx_PACKEDz#if defined(__SUNPRO_C)z  #pragma pack(1)z#elif !defined(__GNUC__)z  #pragma pack(push, 1)r  ú%s;z  #pragma pack()z  #pragma pack(pop))r®  rV   r¾   r1   r²  Ú	is_structÚpackedrv   rw   Úpacked_struct_utility_coder»  r=  r  r	  r<  )rY   rÁ   rf   r¾   r1   r²  rÀ  r¹  rº  r	  Úattrs              r*   rž  z+ModuleNode.generate_struct_union_definitionŸ  sn  € Ø�‰�e—i‘iÔ Ø�z‰zˆØ—
‘
ˆÚØ—9‘9ˆDØ—^‘^Ò3¨¯©ˆFÙØ"&§)£)©^Ð<�Ø× Ñ ×1Ñ1Ô2LÔMà×&Ñ& t¨T°4·:±:Ó>ñ ˆF�FáØ—
‘
Ð4Ô5Ø—
‘
Ð.Ô/Ø—
‘
Ð5Ô6Ø—
‘
Ð4Ô5Ø—
‘
˜8Ô$Ø�J‰J�vÔØ×+Ñ+ˆKÛ#�Ø—
‘
Ø˜DŸI™I×6Ñ6°t·z±zÓBÑBõDð $ð �J‰J�vÔÙØ—
‘
Ð4Ô5Ø—
‘
Ð-Ô.Ø—
‘
Ð5Ô6Ø—
‘
Ð0Ô1Ø—
‘
˜8Õ$ð ð) r,   c                 ó  — |rÓ|j                  |j                  ›ddj                  |«      ›d�«       |xs |xr |j                  j                   }|r|j                  «        |r|D ]  }	|j                  |	d¬«       Œ |r0|j                  |j                  ›ddj                  |«      ›d�«       |r|j                  «        |j                  d«       y |j                  |j                  ›ddj                  |«      ›d�«       y )Nrm   r  z) {F©Únannyú);r  )r  r=  rÅ  r¾   ÚnogilÚput_ensure_gilÚput_init_var_to_py_noneÚput_release_ensured_gil)
rY   Ú	arg_declsÚ	arg_namesÚis_implementingÚpy_attrsÚconstructorr¾   rf   Ú	needs_gilrÂ  s
             r*   Úgenerate_cpp_constructor_codez(ModuleNode.generate_cpp_constructor_code¾  sË   € ÙØ�J‰J T§Z£Z°·±¸9Õ1EÐFÔGØ ÒP [Ò%O¸×9IÑ9I×9OÑ9OÐ5OˆIÙØ×#Ñ#Ô%ÙÛ$�DØ×0Ñ0°¸UÐ0ÕCð %áØ—
‘
¨×(9Ó(9¸4¿9¹9ÀYÕ;OÐPÔQÙØ×,Ñ,Ô.Ø�J‰J�s�Oà�J‰J D§J£J°·	±	¸)Õ0DÐEÕFr,   c           
      óÌ  — |j                  |j                  «       |j                  }|j                  }|�rŸ|j                  rI|j                  ddj                  |j                  D �cg c]  }|j                  «       ‘Œ c}«      z  «       |j                  d|j                  z  «       |j                  rKdj                  |j                  D �cg c]  }|j                  «       ‘Œ c}«      }|j                  d|z  «       |j                  d«       | j                  |j                  |«       |j                  j                  «       D �cg c]&  }|j                  j                  r|j                   s|‘Œ( }	}d}
d }d }|j"                  D ]Ó  }|j                  j$                  r(|j                  j&                  r|j                  d«       n\|j(                  d	k(  r|j+                  d	«      }n;|j(                  d
k(  r|}n)|j                  j$                  r|j                  d«       d}
|j                  d|j                  j-                  |j                  «      z  «       ŒÕ d|j.                  j0                  v }|s|	�rZ|�r<|j3                  «       D �]'  }g }g }|j                  j4                  d t7        |j                  j8                  «      |j                  j:                  z
   D ]<  }|j=                  |j-                  «       «       |j=                  |j                  «       Œ> |j                  j:                  ra|j=                  |j                  j>                  j-                  t@        jB                  «      «       |j=                  t@        jB                  «       |sd}g }| jE                  ||||	|||«       �Œ* ng }g }| jE                  ||||	|||«       |s|	s|
rÁ|
r|j                  d«       |rŽ|j                  d|j                  z  «       |	r|jG                  «        |r|j                  d|j                  z  «       |	r*|	D ]  }|jI                  |d¬«       Œ |jK                  «        |j                  d«       n|j                  d|j                  z  «       |	�r$|�rË|j                  |j                  ›d|j                  ›d�«       |jG                  «        |j"                  D ]W  }|j                  j$                  rŒ|j                  |j                  ›d|j                  ›d�«       |jM                  |d¬«       ŒY |jK                  «        |j                  d«       |j                  |j                  ›d|j                  ›d�«       |j                  d«       |jG                  «        |j"                  D ]j  }|j                  j$                  rŒ|jI                  |d¬«       |j                  |j                  ›d|j                  ›d�«       |jM                  |d¬«       Œl |jK                  «        |j                  d«       |j                  d«       |j                  d«       nV|j                  |j                  ›d|j                  ›d�«       |j                  |j                  ›d|j                  ›d�«       |j                  d«       y y c c}w c c}w c c}w )Nztemplate <class %s>z, class ú	struct %sz	, public z : public %sr¸  Fústatic z<init>z<del>zvirtual Tr¾  rˆ  z~%s() {z%s();rÄ  r  z~%s();z(const z& __Pyx_other) {z = __Pyx_other.r8  z& operator=(const zif (this != &__Pyx_other) {zreturn *this;z& __Pyx_other);rˆ  )'r®  rV   r¾   r1   rµ  r  rÅ  re  rL  r=  Úbase_classesr  r  r×   r²   Úis_pyobjectÚis_inheritedr	  Úis_cfunctionÚis_static_methodru   Úlookup_herer<  rv   r  Úall_alternativesÚoriginal_argsÚlenÚargsÚoptional_arg_countr¤   Úop_arg_structr   Úoptional_args_cnamerÑ  rÈ  Úput_var_xdecrefrÊ  Úput_var_incref)rY   rÁ   rf   r¾   r1   r¶  Ú
base_classÚbase_class_declrÔ  rÎ  Úhas_virtual_methodsrÏ  Ú
destructorrÂ  rÍ  Úconstructor_alternativerË  rÌ  ÚargÚdefault_constructors                       r*   rŸ  z(ModuleNode.generate_cpp_class_definitionÏ  s¬  € Ø�‰�e—i‘iÔ Ø�z‰zˆØ—
‘
ˆÚØ�~Š~Ø—
‘
Ð0°:·?±?Ø9=¿ºÓH¹°A�Q×-Ñ-Õ/¸ÑHó4Jñ Jô Kð �H‰H�[ 4§:¡:Ñ-Ô.Ø× Ò Ø"-×"2Ñ"2ØKO×K\ÒK\Ó]ÑK\¸Z�Z×6Ñ6Õ8ÐK\Ñ]ó#_�à—‘˜¨/Ñ9Ô:Ø�J‰J�tÔØ×*Ñ*¨5×+=Ñ+=¸tÔDØ#(§=¡=×#7Ñ#7Ô#9ó FÑ#9˜aØŸ6™6×-Ò-°a·n²nò Ð#9ˆHð Fà"'ÐØˆKØˆJØ×)Ô)�Ø—9‘9×)Ò)¨d¯i©i×.HÒ.HØ—H‘H˜YÕ'Ø—Y‘Y (Ò*Ø"'×"3Ñ"3°HÓ"=‘KØ—Y‘Y 'Ò)Ø!%‘JØ—Y‘Y×+Ò+Ø—H‘H˜ZÔ(Ø*.Ð'Ø—
‘
˜5 4§9¡9×#=Ñ#=¸d¿j¹jÓ#IÑIÕJð *ð ,¨t×/?Ñ/?×/EÑ/EÐEˆOášhÚØ3>×3OÑ3O×3QÐ/Ø$&˜	Ø$&˜	Ø#:×#?Ñ#?×#MÑ#MØ w¤Ð%<×%AÑ%A×%FÑ%FÓ!GÐH_×HdÑHd×HwÑHwÑ!wó$y˜Cà%×,Ñ,¨S×-AÑ-AÓ-CÔDØ%×,Ñ,¨S¯Y©YÕ7ð$yð 3×7Ñ7×JÒJØ%×,Ñ,Ð-D×-IÑ-I×-WÑ-W×-hÑ-hÔio÷  jDñ  jDó  .Eô  FØ%×,Ñ,¬V×-GÑ-GÔHÙ(Ø26Ð/Ø(*˜IØ×:Ñ:¸9ÀiÐQ`Ðbjð  mDð  FJð  LPö  Qñ 4Rð !#�IØ "�IØ×6Ñ6°yÀ)È_Ð^fÐhsÐuyÐ{ô  Aá™XÑ)<Ù&Ø—H‘H˜ZÔ(Ù"Ø—J‘J˜y¨4¯:©:Ñ5Ô6ÙØ×+Ñ+Ô-Ù!ØŸ
™
 7¨Z×-=Ñ-=Ñ#=Ô>ÙÛ$,˜DØ ×0Ñ0°¸UÐ0ÕCð %-à×4Ñ4Ô6Ø—J‘J˜s•Oà—J‘J˜x¨$¯*©*Ñ4Ô5Úâ"Ø—J‘JÀÇ
Ã
ÈDÏJËJÐWÔXØ×'Ñ'Ô)Ø %× 1Ô 1˜Ø#Ÿy™y×5Ó5Ø ŸJ™JÀÇÃÈTÏZËZÐ'XÔYØ ×/Ñ/°¸EÐ/ÕBð !2ð ×0Ñ0Ô2Ø—J‘J˜s”OØ—J‘JÈ4Ï:Ë:ÐW[×WaÓWaÐbÔcØ—J‘JÐ<Ô=Ø×'Ñ'Ô)Ø %× 1Ô 1˜Ø#Ÿy™y×5Ó5Ø ×0Ñ0°¸UÐ0ÔCØ ŸJ™JÀÇÃÈTÏZËZÐ'XÔYØ ×/Ñ/°¸EÐ/ÕBð	 !2ð
 ×0Ñ0Ô2Ø—J‘J˜s”OØ—J‘J˜Ô/Ø—J‘J˜s•Oà—J‘J¸t¿z»zÈ4Ï:Ë:ÐVÔWØ—J‘JÈ$Ï*Ë*ÐVZ×V`ÓV`ÐaÔbØ�J‰J�tÕð{ ùò Iùò
 ^ùòFs   Á([Ã[Å
+[!c                 ó~  — |j                  |j                  «       |j                  }|j                  xs |j                  xs d}|j                  j
                  rdnd}| j                  |||«      \  }}|j                  |«       |j                  }|st        |j                  d«       n»|d   }	|D ]*  }
|
j                  €Œ|
j                  j                  |«       Œ, |D ]‚  }
|
j                  €|
j                  j                  d«      d   }n;|
j                  j                  d«      d   ›d|
j                  j                  «       ›�}|
|	ur|dz  }|j                  |«       Œ„ |j                  |«       |j                  j                  r0|j                  j                  r|j                  d	|›d
|›d�«       y y y )NrH   z
enum classÚenumzDEmpty enum definition not allowed outside a 'cdef extern from' blockr‰  z::rG  Ú,ztypedef enum r7  r8  )r®  rV   r¾   r=  ru   rÜ   r»  r  Úenum_valuesr   Ú
value_nodeÚgenerate_evaluation_codeÚsplitré   rÛ   r¦  )rY   rÁ   rf   r¾   ru   r²  r¹  rº  rî  Ú
last_entryÚvalue_entryÚ
value_codes               r*   r�  z#ModuleNode.generate_enum_definition2  sƒ  € Ø�‰�e—i‘iÔ Ø�z‰zˆØ�{‰{Ò.˜eŸj™jÒ.¨Bˆà$Ÿz™z×5Ò5‰|¸6ˆØ×/Ñ/°°d¸DÓA‰ˆ�Ø�
‰
�6ÔØ×'Ñ'ˆÙÜ�%—)‘)ÐcÕdà$ R™ˆJã*�Ø×)Ñ)Ñ5Ø×*Ñ*×CÑCÀDÕIð  +ó  +�Ø×)Ñ)Ð1Ø!,×!2Ñ!2×!8Ñ!8¸Ó!>¸rÑ!B‘Jð $×)Ñ)×/Ñ/°Ó5°bÓ9Ø#×.Ñ.×5Ñ5Ô7ð#9�Jð  jÑ0Ø #Ñ%�JØ—
‘
˜:Õ&ð  +ð 	�
‰
�6Ôà�:‰:×ÒØ�z‰z×&Ò&à—
’
²Dº$Ð?Õ@ð 'ð r,   c                 ó   — |j                  d«       |j                  j                  }|r¥|j                  dk(  rI|j                  s=|j                  t
        j                  ›dt        j                  dd«      ›d|›d�«       y |j                  dk(  r=|j                  t
        j                  ›dt        j                  dd«      ›d|›d�«       y y y )	NrH   Úexternr7  rp  rq  r8  rø   Ú	DL_EXPORT)	r  r¾   r`  rù   r  r   r;  r   rr  )rY   rÁ   rf   ru   s       r*   r$  z*ModuleNode.generate_typeobj_predeclarationU  s©   € Ø�
‰
�2ŒØ�z‰z×'Ñ'ˆÙØ×Ñ 8Ò+°E×4EÒ4EØ—
‘
Ü×)Ó)Ü×*Ñ*¨>¸;ÕGÚðõ ð ×!Ñ! XÒ-Ø—
‘
Ü×)Ó)Ü×*Ñ*¨>¸;ÕGÚðõ ð .ð r,   c                 óà  — |j                   sy |j                  |j                  «       |j                  }|j                  }| j                  |«       |j                  �r|j                  d«       |j                  d|j                  z  «       |j                  rP|j                  j                  r:|j                  d|j                  j                  ›dt        j                  ›d�«       |j                  D ]d  }|j                  rŒ|j                  d|j                  j                  d|j                  z  «      z  «       |j                  j!                  |«       Œf |j                  d«       y y )	NrH   zstruct %s {ústruct r7  r8  r¾  z(*%s)rˆ  )r  r®  rV   r¾   r1   Úspecialize_fused_typesr
  r  rû  r   Úobj_base_cnamerì   r×  r<  r=  rv   r!  )rY   rÁ   rf   r¾   r1   Úmethod_entrys         r*   r%  z)ModuleNode.generate_exttype_vtable_structg  s  € Ø�zŠzØà�‰�e—i‘iÔ à�z‰zˆØ—
‘
ˆà×#Ñ# EÔ*à× Ó Ø�J‰J�rŒNØ�J‰J�} t×'<Ñ'<Ñ<Ô=Ø�~Š~ $§.¡.×"AÒ"AØ—
’
Ø—N‘N×3Ó3Ü×)Ó)ð+ô ,ð !&× 3Ô 3�Ø#×0Ó0Ø—J‘J˜u |×'8Ñ'8×'IÑ'IÈ'ÐT`×TfÑTfÑJfÓ'gÑgÔhØ×$Ñ$×;Ñ;¸LÕIð !4ð �J‰J�tÕð !r,   c                 óÞ   — |j                   sy |j                  |j                  «       |j                  }|j                  r-|j                  d|j                  ›d|j                  ›d�«       y y )Nústatic struct ú *r8  )r  r®  rV   r¾   Úvtabptr_cnamer  r
  )rY   rÁ   rf   r¾   s       r*   r&  z/ModuleNode.generate_exttype_vtabptr_declaration  sV   € Ø�zŠzØà�‰�e—i‘iÔ à�z‰zˆØ×ÒØ�JŠJØ×%Ó%Ø×"Ó"ð$õ %ð r,   c                 ó€  — |j                   sy |j                  |j                  «       |j                  j                  j
                  D ]s  }|j                  rŒ|j                  sŒ|j                  j                  |j                  «      }|j                  |j                  «      }|j                  d|›|›d�«       Œu y )NrÔ  r8  )r  r®  rV   r¾   r1   rì   r×  Úfinal_func_cnamer<  Úbuild_function_modifiersÚfunc_modifiersr  )rY   rÁ   rf   rü  ÚdeclarationÚ	modifierss         r*   r'  z5ModuleNode.generate_exttype_final_methods_declaration‹  s�   € Ø�zŠzØà�‰�e—i‘iÔ à!ŸJ™J×,Ñ,×:Ô:ˆLØ×,Ó,°×1NÓ1NØ*×/Ñ/×@Ñ@Ø ×1Ñ1ó3�à ×9Ñ9¸,×:UÑ:UÓV�	Ø—
’
©YºÐDÕEñ ;r,   c                 óv   — |j                   sy |j                  | j                  |d|j                  «      «       y )NÚstruct)r1   r  r³  r  )rY   r¾   rf   s      r*   r!  z,ModuleNode.generate_objstruct_predeclaration˜  s-   € Ø�zŠzØØ�
‰
�4×*Ñ*¨4°¸4×;OÑ;OÓPÕQr,   c                 ó$  — |j                  |j                  «       |j                  sy | j                  |d|j                  «      \  }}|j                  |«       |j                  }|rH|j                  }|dk(  rd}|j                  d|j                     ›|›dt        j                  ›d�«       n|j                  d«       |j                  rN|j                  r|j                  j                  s,|j                  d|j                  ›d	|j                  ›d�«       |j                  j                  D ]“  }|j                  rt        }n|j                  }|j                   r|j#                  |j$                  «      }	n|j'                  |j$                  «      }	|j(                  j+                  |«       |j                  d
|	z  «       Œ• |j                  |«       |j,                  �-|j                  d|j                  ›d|j,                  ›d�«       y y )Nr  rp  ÚPyHeapTypeObject)rù  rH   r7  r8  ÚPyObject_HEADrù  rÿ  r¾  r¥  )r®  rV   r1   r»  r  r  rû  r¦  r   rû  Úvtabslot_cnamer
  r	  Úis_declared_genericr	   r¾   Úis_cpp_optionalÚcpp_optional_declaration_coder=  r<  rv   r!  Úobjtypedef_cname)
rY   r¾   rf   r¹  rº  rû  Úbasestruct_cnamerÂ  Ú	attr_typeÚdecls
             r*   r#  z(ModuleNode.generate_objstruct_definition�  s©  € Ø�‰�d—h‘hÔð �zŠzØà×"Ñ" 4¨°4×3GÑ3GÓHñ 	ˆ�à�
‰
�6ÔØ—N‘Nˆ	ÙØ(×8Ñ8ÐØ >Ò1à#5Ð Ø�J‰Jà# I×$:Ñ$:Ò;Ú$Ü×)Ó)ð+õ,ð �J‰JØô!à×Ò¨¯ª¸4¿>¹>×;XÒ;XØ�JŠJà×)Ó)Ø×'Ó'ð)ô*ð —J‘J×*Ô*ˆDØ×'Ò'Ü*‘	à ŸI™I�	Ø×#Ò#Ø ×>Ñ>¸t¿z¹zÓJ‘à ×1Ñ1°$·*±*Ó=�Ø×Ñ×3Ñ3°DÔ9Ø�J‰J�u˜t‘|Õ$ð +ð 	�
‰
�6ÔØ× Ñ Ð,à�JŠJ°$×2FÓ2FÈ×H]ÓH]Ð^Õ_ð -r,   c                 ó”  — |d   }|d   }|d   }|j                  «       }|j                  D �]  }	|s|	j                  sŒ|j                  d|	j                  j
                  z  «       |j                  d|	j                  j
                  z  «       |j                  d|	j                  j
                  z  «       |	j                  j                  €Œ¢|j                  d|	j                  j                  z  «       |j                  d|	j                  j                  z  «       |j                  d|	j                  j                  z  «       �Œ y )Nrƒ  r†  r‡  zPyTypeObject *%s;ú!Py_CLEAR(clear_module_state->%s);z$Py_VISIT(traverse_module_state->%s);úPyObject *%s;)Úinsertion_pointr¼   rí   r  r¾   r_  r`  )
rY   rC   rf   r*  rv   rƒ  r†  r‡  Úmodule_state_typeobjrÁ   s
             r*   r/  z(ModuleNode.generate_c_class_declarationsÉ  s+  € Ø" >Ñ2ˆØ(Ð)=Ñ>ÐØ +Ð,CÑ DÐØ+×;Ñ;Ó=ÐØ×(Õ(ˆEÙ˜U×1Ó1Ø×"Ñ"Ð#6¸¿¹×9QÑ9QÑ#QÔRØ"×(Ñ(Ø7Ø—J‘J×,Ñ,ñ-ô.ð &×+Ñ+Ø:Ø—J‘J×,Ñ,ñ-ô.ð —:‘:×+Ñ+Ñ7Ø(×.Ñ.¨ÀÇÁ×AYÑAYÑ/YÔZØ&×,Ñ,Ø;ØŸ
™
×0Ñ0ñ2ô3ð *×/Ñ/Ø>ØŸ
™
×0Ñ0ñ2ö3ñ )r,   c                 ó`  — |j                   ry |j                  D �]  }|j                  s3|j                  s'|j                  dk(  r|j
                  s|j                  sŒDd }d }d }|j                  dk(  rt        j                  }d}nk|j                  dk(  rt        j                  }|rd}nGd}nD|j                  dk(  r5d}d }|j                  �%|j                  j                  |j                  «      }|j                  }|j                  }	|j
                  r=|s;d}d }t        |«      }|j                  t        j                  |j                   «      }	d}|r|j#                  d|z  «       |j$                  r#|j#                  |j'                  |	|¬	«      «       n"|j#                  |j)                  |	|¬	«      «       |�|j+                  d
|z  «       |j-                  d«       |j                  |	k7  r"|j-                  d|j                  ›d|	›d�«       |j.                  j1                  |«       �Œ y )NÚprivaterö  rq  rø   r÷  Ústaticr   z%s ©Údll_linkageú = %sr8  r  rQ  rn   )Úis_cython_builtinr	  r  Ú
in_closurerù   rí   r  r   r;  Úinitr¾   Úliteral_coder=  r   ra  Úvarptr_prefixru   rL  r  r  r<  Úput_safer  rv   r!  )
rY   rC   rf   r*  rÁ   Ústorage_classr  r!  r¾   r=  s
             r*   r0  z*ModuleNode.generate_cvariable_declarationsà  sç  € Ø× Ò ØØ—_•_ˆEØ×!Ò! U×%5Ò%5Ø×%Ñ%¨Ò2¸E×<PÒ<PÐTY×T^ÒT^Øà ˆMØˆKØˆDà×Ñ 8Ò+Ü &× 5Ñ 5�Ø)‘Ø×!Ñ! XÒ-Ü &× 5Ñ 5�ÙØ"-‘Kà"-‘KØ×!Ñ! YÒ.Ø (�Ø"�Ø—:‘:Ð)Ø Ÿ:™:×2Ñ2°5·:±:Ó>�DØ—:‘:ˆDØ—K‘KˆEà×#Ò#©JØ (�Ø"�Ü “~�ØŸ
™
¤6×#7Ñ#7¸¿¹ÓD�Ø�áØ—‘˜ Ñ.Ô/Ø×$Ò$Ø—‘˜×;Ñ;Ø {ð <ó 4õ 5ð —‘˜×.Ñ.Ø {ð /ó 4ô 5àÐØ—‘˜g¨™nÔ-Ø�J‰J�sŒOØ�{‰{˜eÒ#Ø—
’
°·³ºeÐDÔEØ×Ñ×3Ñ3°EÖ:ñ] %r,   c                 óÚ   — |j                   D ]\  }t        j                  xr |j                  dk(   }|j                  s|j                  dk(  s|j
                  s|sŒOt        ||||«       Œ^ y )Nrö  rø   )rì   r   Úcimport_from_pyxrù   r  rú   Úgenerate_cfunction_declaration)rY   rC   rf   r*  rÁ   Úfrom_pyxs         r*   r1  z*ModuleNode.generate_cfunction_declarations  s]   € Ø×&Ô&ˆEÜ×/Ñ/ÒT¸×8HÑ8HÈHÑ8TÐ4TˆHØ—
’
Ø×'Ñ'¨8Ò3Ø—y’yÚÜ.¨u°c¸4ÀÕLñ 'r,   c                 ót  — |j                   D ]©  }|j                  rŒ|j                  dk(  sŒ |j                  |j                  j                  |j                  «      «       |j                  �9|j                  j                  |j                  «      }|j                  d|z  «       |j                  d«       Œ« y )Nrø   r  r8  )r	  r  rù   rL  r¾   r<  r=  r!  r"  r$  r  )rY   rC   rf   rÁ   r!  s        r*   r—  z(ModuleNode.generate_variable_definitions  s‚   € Ø—_”_ˆEØ×$Ó$¨×)9Ñ)9¸XÓ)EØ—‘˜Ÿ™×4Ñ4°U·[±[ÓAÔBØ—:‘:Ð)Ø Ÿ:™:×2Ñ2°5·:±:Ó>�DØ—M‘M '¨D¡.Ô1Ø—
‘
˜3•ñ %r,   c                 ó€  — |j                   }|j                  D �]¢  }|j                  dk7  sŒ|j                  }|j                  }|sŒ/| j                  ||«       | j                  |||«       | j                  ||«       | j                  ||«       |j                  «       r6| j                  |||«       |j                  «       r| j                  |||«       |j                  dg«      r| j                  ||«       |j                  ddg«      r| j                  ||«       |j                  g d¢«      r(t!        | j"                  dd«       |j%                  d«       |j                  d	d
g«      r| j'                  ||«       |j                  ddg«      r| j)                  ||«       |j                  ddg«      r| j+                  ||«       |j                  dg«      r| j-                  ||«       |j                  ddg«      r| j/                  ||«       |j0                  s0|j2                  s$|j5                  dg«      r| j7                  ||«       |j                  t8        j:                  «      r| j=                  ||«       n.d|j>                  v r t!        |j@                  j"                  d«       t9        jB                  |jD                  j>                  «      jF                  D ]I  }|jH                  sŒ|j                  |jJ                  «      sŒ,| jM                  ||||j"                  «       ŒK | jO                  ||«       | jQ                  ||«       | jS                  ||«       |j%                  d«       | jU                  ||«       |j%                  d«       | jW                  |||«       |j%                  d«       �Œ¥ y )Nrö  Ú__getitem__Ú__setitem__Ú__delitem__)Ú__getslice__Ú__setslice__Ú__delslice__z�__getslice__, __setslice__, and __delslice__ are not supported by Python 3, use __getitem__, __setitem__, and __delitem__ insteadr   zN#error __getslice__, __setslice__, and __delslice__ not supported in Python 3.r0  r1  Ú__getattr__Ú__getattribute__Ú__setattr__Ú__delattr__Ú__get__Ú__set__Ú
__delete__Ú__dict__Útotal_orderingúMtotal_ordering directive used, but no comparison and equality methods definedú#if CYTHON_USE_TYPE_SPECSr=  r  ),rB  r¼   rù   r¾   r1   Úgenerate_exttype_vtableÚgenerate_new_functionÚgenerate_del_functionÚgenerate_dealloc_functionÚneeds_gcÚgenerate_traverse_functionÚneeds_tp_clearÚgenerate_clear_functionÚdefines_any_specialÚgenerate_getitem_int_functionÚgenerate_ass_subscript_functionr   rV   r  Úgenerate_ass_slice_functionÚgenerate_getattro_functionÚgenerate_setattro_functionÚgenerate_descr_get_functionÚgenerate_descr_set_functionÚis_closure_class_scopeÚis_defaults_class_scopeÚdefines_anyÚgenerate_dict_getter_functionr   Úrichcmp_special_methodsÚgenerate_richcmp_functionrB   Úparent_typeÚget_slot_tablerv   ÚPyNumberMethodsÚis_binopÚuser_methodsÚgenerate_binop_functionÚgenerate_property_accessorsrš  Úgenerate_getset_tableÚgenerate_typeobj_specÚgenerate_typeobj_definition)rY   rC   rf   r½   rÁ   r¾   r1   Úslots           r*   r™  z'ModuleNode.generate_typeobj_definitions%  s;  € Ø×-Ñ-ÐØ×(Õ(ˆEð ×Ñ 8Ó+Ø—z‘z�ØŸ
™
�ÚØ×0Ñ0°¸Ô=Ø×.Ñ.¨u°d¸EÔBØ×.Ñ.¨u°dÔ;Ø×2Ñ2°5¸$Ô?à—~‘~Ô'Ø×7Ñ7¸¸tÀUÔKØ ×/Ñ/Ô1Ø ×8Ñ8¸ÀÀeÔLØ×0Ñ0°-°ÔAØ×:Ñ:¸5À$ÔGØ×0Ñ0°-ÀÐ1OÔPØ×<Ñ<¸UÀDÔIØ×0Ñ0Ò1aÔbÜ §¡ð!XØYZô\ð Ÿ
™
Ð#sÔtØ×0Ñ0°.À.Ð1QÔRØ×8Ñ8¸ÀÔEØ×0Ñ0°-ÐASÐ1TÔUØ×7Ñ7¸¸tÔDØ×0Ñ0°-ÀÐ1OÔPØ×7Ñ7¸¸tÔDØ×0Ñ0°)°Ô=Ø×8Ñ8¸ÀÔEØ×0Ñ0°)¸\Ð1JÔKØ×8Ñ8¸ÀÔEØ!×8Ò8¸E×<YÒ<YÐ_d×_pÑ_pÐr|Ðq}Ô_~Ø×:Ñ:¸5À$ÔGà×0Ñ0´×1RÑ1RÔSØ×6Ñ6°u¸dÕCØ)¨U×-=Ñ-=Ñ=ä × 1Ñ 1× 5Ñ 5Ø oôqô !*× 8Ñ 8¸×9IÑ9I×9TÑ9TÓ U× eÔ e˜ØŸ=›=¨U×-FÑ-FÀt×GXÑGXÕ-YØ ×8Ñ8¸ÀÀdÈEÏIÉIÕVð !fð ×4Ñ4°U¸DÔAØ×.Ñ.¨u°dÔ;Ø×.Ñ.¨u°dÔ;Ø—J‘JÐ:Ô;Ø×.Ñ.¨u°dÔ;Ø—J‘J˜wÔ'Ø×4Ñ4Ð5EÀuÈdÔSØ—J‘J˜xÖ(ñq )r,   c                 óŽ   — |j                   }|j                  r-|j                  d|j                  ›d|j                  ›d�«       y y )Nrþ  r7  r8  )rS  Úvtable_cnamer  r
  ©rY   r1   rf   r¾   s       r*   r=  z"ModuleNode.generate_exttype_vtablea  s>   € à× Ñ ˆØ×ÒØ�JŠJØ×%Ó%Ø×!Ó!ð#õ $ð r,   c                 ó„   — |j                   }|j                  |j                  d«      ›d|j                  «       ›d�«       y )NÚpz = (z)o;)rS  r  r<  re  r`  s       r*   Úgenerate_self_castzModuleNode.generate_self_casti  s8   € Ø× Ñ ˆØ�
‰
à×%Ñ% cÕ*Ø×+Ñ+Õ-ð/õ	0r,   c                 ó"  — | j                   j                  t        j                  dd«      «       |j                  rd}nd}|j                  dd¬«      }| j                  |j                  «      }| j                  d|› d	|› d
|› d|› d|› d�«       y )NÚCheckTypeForFreelistsúExtensionTypes.cÚ$__PYX_CHECK_FINAL_TYPE_FOR_FREELISTSÚ__PYX_CHECK_TYPE_FOR_FREELISTSrH   T©Úderefzif (likely((int)(z) & rm   r  z	, sizeof(z)))))	rv   rw   r
   rx   Úis_final_typer<  Úname_in_slot_module_stater_  r  )rf   Ú
size_checkÚ
type_cnamer¾   Úfreelist_checkÚ
obj_structr_  s          r*   Úgenerate_freelist_conditionz&ModuleNode.generate_freelist_conditionp  s�   € à×Ñ×)Ñ)Ü×#Ñ#Ð$;Ð=OÓPô	Rà×ÒØC‰Nà=ˆNØ×*Ñ*¨2°TÐ*Ó:ˆ
Ø×6Ñ6°t×7IÑ7IÓJˆØ�
‰
Ø 
˜|¨4°Ð/?¸qÀÀÈBÈ}ÈoÐ]fÐgqÐfrÐrvÐwõ	yr,   c           
      óî  — t        j                  dd«      }|j                  d«      }|j                  |«      |k7  ry |j                  }|j
                  }|j                  «       \  }\  }	}
}|j                  j                  }|j                  rg }	|j                  D �cg c]  }|j                  j                  |«      r|‘Œ! }}|j                  d«      }|r|j                  sd }|s|r|j                  sd}nd}|rd}n|j                  j!                  dd«      }|j                  t"        j$                  «      }|j                  t"        j&                  «      }|r…|j(                  d   }|j+                  d«       |j+                  d«       |j+                  d	|j                  j-                  |«      |fz  «       |j+                  d
|z  «       |j+                  d«       |j/                  |t0        j2                  dd|› d|› d�d¬«       |j4                  xs |
xs |xs |	xs |}|r-|j+                  d|j                  j-                  d«      z  «       |r]t        j6                  ||«      }|j8                  }|j:                  s|j=                  |«      }|€d|› d�}|j+                  d|z  «       �nþ|j+                  d«       |�r¥|j(                  j?                  tA        jB                  dd«      «       |j+                  d«       |j=                  |«      }|j=                  |«      }| jE                  ||› d�d|«       |j+                  d«       |j+                  d|›d|›d�«       |j-                  dd¬«      }|j+                  d «       |j+                  d!«       |j+                  d«       |j+                  d"|z  «       |j+                  d#«       |j+                  d$«       |j+                  d%«       |j+                  d&«       |j+                  d«       |jG                  «       r|j+                  d'«       |j+                  d(«       |j+                  d«       |j+                  d«       |j(                  j?                  tA        jB                  d)d*«      «       |j+                  d+|d,›d-�«       |j+                  d.«       |r|s|j+                  d/«       |r#|j+                  d0|jI                  d1«      z  «       d2}|j4                  r—|}|j
                  rE|j
                  jJ                  r/|j
                  }|j
                  r|j
                  jJ                  rŒ/||urd3|jJ                  z  }nd}|j+                  d4|j4                  ›d5|›|jL                  ›d6�«       |D ]   }|j                  jO                  ||d4¬7«       Œ" |	D ]T  }|jP                  d8k(  r/d}|jS                  d4|jT                  ›d9|jT                  ›d:�«       ŒA|jW                  |d;d2¬<«       ŒV |D ]>  }|j+                  d=|jT                  z  «       |j+                  d>|jT                  z  «       Œ@ |
D ]   }|j+                  d?|jT                  z  «       Œ" |jT                  d@k(  r|j+                  dA«       |rX|j                  r&dBt"        jX                  › dCt"        jZ                  › dD�}ndE}d}|j+                  dF|j\                  ›dG|›dH�«       |j+                  dI«       |r:|j+                  dJ«       |j_                  d1t`        d2¬<«       |j+                  dK«       |j+                  d/«       |jc                  «        y c c}w )LNÚtp_newÚ	__cinit__rH   úCYTHON_UNUSED r   ÚfreelistÚmodule_state_contentsú#if CYTHON_USE_FREELISTSz%s[%d];zint %s;r  zPyTypeObject *t, zPyObject *a, zPyObject *kT)Úneeds_prototyper¾  rb  z__Pyx_PyType_GetSlot(z, tp_new, newfunc)zPyObject *o = %s(t, a, k);zPyObject *o;ÚIncludeStringHúStringTools.cz > 0r+  Ú{zo = (PyObject*)ú[--ú];ri  r<  zPy_DECREF(Py_TYPE(o));zmemset(o, 0, sizeof(%s));z##if CYTHON_COMPILING_IN_LIMITED_APIz(void) PyObject_Init(o, t);r=  z(void) PyObject_INIT(o, t);úPyObject_GC_Track(o);ú} elseÚAllocateExtensionTyperf  z#o = __Pyx_AllocateExtensionType(t, ré  rÆ  zif (unlikely(!o)) return 0;r  zp = %s;ÚoFz(struct %s*)úp->rG  r8  ©Úextra_access_coder9  z" = PyDict_New(); if (unlikely(!p->z)) goto bad;úp->%srÄ  zp->%s.data = NULL;zp->%s.memview = NULL;zp->%s.obj = NULL;Ú__pyx_memoryviewslicezp->from_slice.memview = NULL;zo, z->z, NULLzo, a, kzif (unlikely(rm   z) < 0)) goto bad;z	return o;r[  zreturn NULL;)2r   ÚConstructorSlotÚmangle_internalÚ	slot_coderS  rû  Úget_refcounted_entriesrk  Úis_internalr	  r¾   Úneeds_explicit_constructionrÚ  Ú
is_specialÚtrivial_signaturerB   rü  r   Úfreelist_nameÚfreecount_namerv   r  r<  Ústart_slotfuncr   Úpy_objptr_typer  Úget_base_slot_functionr_  Úis_builtin_typerl  rw   r
   rx   rq  rA  Ú	cast_coder
  r   Úgenerate_explicit_constructionru   rL  r=  rÉ  Úmodulestateglobal_cnameÚempty_tupleÚ
func_cnameÚput_decref_clearr	   r‘   )rY   r1   rf   Úcclass_entryÚtp_slotÚ	slot_funcr¾   rû  Úhave_entriesrÎ  Ú
py_buffersÚmemoryview_slicesrk  rÁ   Úexplicitly_constructable_attrsÚcinit_func_entryÚunused_markerÚfreelist_sizer�  r‘  rƒ  Úneed_self_castrs  Úbase_type_typeptr_cnamerp  Úneeds_error_cleanupÚvtab_base_typeÚstruct_type_castÚ
cinit_argss                                r*   r>  z ModuleNode.generate_new_function}  së  € Ü×+Ñ+¨H°kÓBˆØ×)Ñ)¨(Ó3ˆ	Ø×Ñ˜UÓ# yÒ0Øà× Ñ ˆØ—N‘Nˆ	ð ×4Ñ4Ó6ñ 	@ˆÑ?�x Ð->à×)Ñ)×7Ñ7ˆØ×ÒàˆHà$×0Ò0ó*
Ù0�eØ�z‰z×5Ñ5°eÔ<ò Ð0ð 	'ð *
ð
 !×,Ñ,¨[Ó9ÐÙÐ$4×$?Ò$?Ø#ÐáÑ)Ð2B×2TÒ2TØ‰Mà,ˆMáØ‰Mà!×,Ñ,×0Ñ0°¸QÓ?ˆMØ×-Ñ-¬f×.BÑ.BÓCˆØ×.Ñ.¬v×/DÑ/DÓEˆáØ×+Ñ+Ð,CÑDˆLØ×Ñ˜rÔ"Ø×ÑÐ9Ô:Ø×Ñ˜yØ×!Ñ!×2Ñ2°=ÓAØð,ñ  ô  ð ×Ñ˜y¨>Ñ9Ô:Ø×Ñ˜xÔ(à×ÑØ”:×,Ñ,¨hØ ˜¨m¸M¸?È+ÐVÐhlð 	ô 	nð ×-Ñ-ò 9Ø%ÒFÐ):ÒF¸hò9à8ð 	ñ Ø�J‰J�u˜u×0Ñ0×AÑAÀ#ÓFÑFÔGÙÜ×5Ñ5°e¸WÓEˆFØ&/×&=Ñ&=Ð#Ø×,Ò,Ø*.×*HÑ*HÐI`Ó*aÐ'Øˆ~Ø0Ð1HÐ0IÐI[Ð\�Ø�J‰JÐ3°fÑ<Ö=à�J‰J�~Ô&ÚØ× Ñ ×1Ñ1Ü×+Ñ+Ð,<¸oÓNôPà—
‘
Ð5Ô6Ø!%×!?Ñ!?ÀÓ!O�Ø $× >Ñ >¸}Ó M�Ø×0Ñ0°¸.Ð9IÈÐ7NÐPSÐUYÔZØ—
‘
˜3”Ø—
’
Ú!Ú"ð$ô %ð "×2Ñ2°2¸TÐ2ÓB�
Ø—
‘
Ð6Ô7ð —
‘
Ð3Ô4Ø—
‘
˜8Ô$Ø—
‘
Ð6¸ÑCÔDØ—
‘
Ð@ÔAð —
‘
Ð8Ô9Ø—
‘
˜7Ô#Ø—
‘
Ð8Ô9Ø—
‘
˜8Ô$Ø—>‘>Ô#Ø—J‘JÐ6Ô7Ø—
‘
˜8Ô$Ø—
‘
˜8Ô$Ø—
‘
˜3”Ø×Ñ×-Ñ-Ü×'Ñ'Ð(?ÐASÓTôð �J‰JÐ<¸]È1Ð<MÈRÐPÔQØ�
‰
Ð0Ô1Ù¡Ø�J‰J�sŒOÙØ�J‰J�y 4§>¡>°#Ó#6Ñ6Ô7ð
 $Ðà×ÒØ!ˆNØ ×*Ò*¨~×/GÑ/G×/XÒ/XØ!/×!9Ñ!9�ð !×*Ò*¨~×/GÑ/G×/XÓ/Xà TÑ)Ø#1°N×4SÑ4SÑ#SÑ à#%Ð Ø�JŠJØ×#Ó#Ù  $×"4Ó"4ð6ô 7ó 4ˆEØ�J‰J×5Ñ5Ø�e¨uð 6õ 6ð 4ó ˆEØ�z‰z˜ZÒ'Ø&*Ð#Ø—’Ø—K“K §£ð.õ /ð ×,Ñ,¨U°GÀ5Ð,ÕIð ó 'ˆEØ�J‰JÐ+¨e¯k©kÑ9Ô:Ø�J‰JÐ.°·±Ñ<Õ=ð 'ó  ˆEØ�J‰JÐ*¨U¯[©[Ñ8Õ9ð  ð ×ÑÐ!8Ò8Ø�J‰JÐ6Ô7áØ×1Ò1Ø"¤6×#AÑ#AÐ"BÀ"ÄV×EWÑEWÐDXÐX^Ð_‘
à&�
Ø"&ÐØ�JŠJØ ×+Ó+ªZð9ô :ð 	�
‰
Øô	áØ�J‰J�vÔØ×!Ñ! #¤~¸UÐ!ÔCØ�J‰J�~Ô&Ø�
‰
Øô	à×ÑÕùòe*
s   Â$]2c                 ó®  — t        j                  d|j                  «      }|j                  d«      }|j	                  |«      |k7  ry |j                  d«      }|�|j                  sy |j                  d«       |j                  r|j                  d|j                  z  «       |j                  |t        j                  ddd¬«       |j                  d«       |j                  d	«       |j                  d
|j                  z  «       |j                  d«       |j                  d«       |j                  «        |j                  r|j                  d«       y y )NÚtp_finalizeÚ__del__rH   z#if %súPyObject *oF©Úneeds_funcstateúPyObject *etype, *eval, *etb;ú!PyErr_Fetch(&etype, &eval, &etb);ú%s(o);ú PyErr_Restore(etype, eval, etb);r  r  )r   Úget_slot_by_namerB   r‰  rŠ  rÚ  rŽ  r  Ú
used_ifdefr’  r   rá   rš  r‘   )rY   r1   rf   r�  Úslot_func_cnamerÁ   s         r*   r?  z ModuleNode.generate_del_function   s  € Ü×,Ñ,¨]¸E×<LÑ<LÓMˆØ×/Ñ/°Ó>ˆØ×Ñ˜UÓ# Ò6Øà×!Ñ! )Ó,ˆØˆ= × 0Ò 0ØØ�
‰
�2Œà×ÒØ�J‰J�x '×"4Ñ"4Ñ4Ô5à×Ñ˜E¤:×#9Ñ#9¸=È-ÐinÐÔoØ�
‰
Ð2Ô3Ø�
‰
Ð6Ô7Ø�
‰
�8˜e×.Ñ.Ñ.Ô/Ø�
‰
Ð5Ô6Ø�
‰
�3ŒØ×ÑÔà×ÒØ�J‰J�xÕ ð r,   c           	      ó¨  — t        j                  dd«      }|j                  d«      }|j                  j                  }|j                  |«      |k7  ry |j                  d«      }|j                  |t        j                  dd«       |j                  j                  }|j                  «       }|j                  «       }	|j                  s|j                  s|j                  d«      nd }
|
|j                  vrd }
|j                  s|j                  s|j                  d«      nd }||j                  vrd }|j!                  «       \  }\  }}}|j                  D �cg c]  }|j"                  j%                  |«      r|‘Œ! }}|s|s|s|
s|r| j'                  ||«       |r|j)                  «       r„|j+                  d«       |rd}nd}|j+                  d	|z  «       |j+                  d
|z  «       |j+                  d«       |j+                  d«       |j+                  d«       |j+                  d«       |r|j+                  d«       |	rC|j,                  j/                  t1        j2                  dd«      «       |j+                  d|z  «       |
r|j+                  d«       | j5                  ||«       |r|j+                  d«       |D ]   }|j"                  j7                  ||d¬«       Œ" ||z   D ]/  }|j9                  d|j:                  z  |j"                  ddd¬«       Œ1 |�r€|j<                  }|j>                  s|jA                  |«      }t        jB                  ||«      }|�O|r7|jD                  r+|jD                  j                  «       r|j+                  d«       |j+                  d|z  «       �nì|j>                  rO|r7|jD                  r+|jD                  j                  «       r|j+                  d«       |j+                  d|z  «       �n‘|r|j+                  d|z  «       |j+                  d«       |j+                  d|›d |›d!�«       |j+                  d«       |j+                  d"|z  «       |j,                  j/                  t1        j2                  d#d«      «       �nü|jF                  jI                  d$d%«      }|rÿ|jA                  |j                  tJ        jL                  «      «      }|jA                  |j                  tJ        jN                  «      «      }|j                  }|j+                  d&«       | jQ                  ||› d'|› �d(|«       |j+                  d)«       |j+                  |›d*|›d+|jS                  d,«      ›d-�«       |j+                  d.«       |j+                  d«       |j+                  d)«       |j+                  d/«       |j+                  d0«       |j+                  d1«       |j+                  d2«       |j+                  d)«       |j+                  d3«       |j+                  d4«       |j+                  d«       |j+                  d«       |j+                  d5«       |j+                  d6«       |j+                  d«       |r|j+                  d«       |	r|j+                  d7«       |j+                  d«       |jU                  «        y c c}w )8NÚ
tp_deallocÚ__dealloc__r¯  Ú__weakref__r9  z#if CYTHON_USE_TP_FINALIZEz!!__Pyx_PyObject_GC_IsFinalized(o)z@(!PyType_IS_GC(Py_TYPE(o)) || !__Pyx_PyObject_GC_IsFinalized(o))zIif (unlikely(__Pyx_PyObject_GetSlot(o, tp_finalize, destructor)) && %s) {z>if (__Pyx_PyObject_GetSlot(o, tp_dealloc, destructor) == %s) {z1if (PyObject_CallFinalizerFromDealloc(o)) return;r  r  zPyObject_GC_UnTrack(o);Ú
PyTrashcanrf  z__Pyx_TRASHCAN_BEGIN(o, %s)z.if (p->__weakref__) PyObject_ClearWeakRefs(o);z+if (p->__dict__) PyDict_Clear(p->__dict__);rƒ  r„  r†  FT)rÅ  Úclear_before_decrefÚhave_gilr  r´  z4__Pyx_PyType_GetSlot(%s, tp_dealloc, destructor)(o);z+if (PyType_IS_GC(%s)) PyObject_GC_Track(o);rZ  úif (likely(z)) __Pyx_PyType_GetSlot(z", tp_dealloc, destructor)(o); elsez"__Pyx_call_next_tp_dealloc(o, %s);ÚCallNextTpDeallocrv  r   rx  z < z
Py_TYPE(o)r|  Ú[z++] = r‚  r8  r€  úPyTypeObject *tp = Py_TYPE(o);ú#if CYTHON_USE_TYPE_SLOTSú(*tp->tp_free)(o);r=  ú<freefunc tp_free = (freefunc)PyType_GetSlot(tp, Py_tp_free);úif (tp_free) tp_free(o);r<  úPy_DECREF(tp);Ú__Pyx_TRASHCAN_END)+r   rˆ  r‰  rS  rû  rŠ  r’  r   rá   rk  rA  Úneeds_trashcanrM  rN  rÚ  r	  r‹  r¾   Úneeds_explicit_destructionrc  Úmay_have_finalizer  rv   rw   r
   rx   Úgenerate_usr_dealloc_callÚgenerate_explicit_destructionÚput_xdecref_clearr=  r_  r•  rl  r”  r1   rB   rü  r   r�  r‘  rq  r–  r‘   )rY   r1   rf   r�  rž  rû  r¸  rk  rA  rÊ  Úweakref_slotÚ	dict_slotr?  rÎ  r¡  rÁ   Úexplicitly_destructable_attrsÚfinalised_checkÚ
base_cnamerº  r¥  r�  r‘  r¾   s                           r*   r@  z$ModuleNode.generate_dealloc_function9  sÿ  € Ü×+Ñ+¨L¸-ÓHˆØ×)Ñ)¨,Ó7ˆ	Ø×%Ñ%×/Ñ/ˆ	Ø×Ñ˜UÓ# yÒ0Øà×/Ñ/°Ó=ˆØ×Ñ˜E¤:×#9Ñ#9¸<ÈÔWà×)Ñ)×7Ñ7ˆØ—>‘>Ó#ˆØ×-Ñ-Ó/ˆà@E×@\Ò@\Ð`e×`}Ò`}�u×(Ñ(¨Ô7ð  EIˆØ˜u×0Ñ0Ñ0ØˆLà:?×:VÒ:VÐZ_×ZwÒZw�E×%Ñ% jÔ1ð  Cˆ	Ø˜E×-Ñ-Ñ-ØˆIà.3×.JÑ.JÓ.LÑ+ˆÑ+ˆH�aÐ*à$×0Ò0ó)
Ù0�eØ�z‰z×4Ñ4°UÔ;ò Ð0ð 	&ð )
ñ
 Ñ4Ñ8IÉ\Ñ]fØ×#Ñ# E¨4Ô0á × 7Ñ 7Ô 9à�J‰JÐ3Ô4ÙØ"E‘ð Wð  à�J‰JØ[Ð^mÑmôoð �J‰JÐWÐZiÑiÔjà�J‰JÐJÔKØ�J‰J�sŒOØ�J‰J�sŒOØ�J‰J�xÔ áð �J‰JÐ0Ô1áØ×Ñ×-Ñ-Ü×'Ñ'¨Ð6HÓIôKà�J‰JÐ4°ÑFÔGáð
 �J‰JÐGÔHð 	×&Ñ& u¨dÔ3áØ�J‰JÐDÔEã2ˆEØ�J‰J×4Ñ4°T¸5ÐTYÐ4ÕZð 3ð Ð!2Ô2ˆEØ×"Ñ" 7¨U¯[©[Ñ#8¸%¿*¹*ÈEØ7;Àdð #õ Lð 3ò Ø"×0Ñ0ˆJØ×,Ò,Ø!×;Ñ;¸JÓG�
Ü"×9Ñ9¸%ÀÓIˆJØÐ%Ù 	§¢°I·O±O×4LÑ4LÔ4Nð —J‘JÐ6Ô7Ø—
‘
˜8 jÑ0Ö1Ø×*Ò*Ù 	§¢°I·O±O×4LÑ4LÔ4Nð —J‘JÐ6Ô7Ø—
‘
ÐQÐT^Ñ^Ö_áð —J‘JÐLÈzÑYÔZð —
‘
Ð9Ô:Ø—
’
Ú¢
ð,ô -à—
‘
˜8Ô$Ø—
‘
Ð?À/ÑQÔRØ× Ñ ×1Ñ1Ü×+Ñ+Ð,?ÐASÓTöVð "×,Ñ,×0Ñ0°¸QÓ?ˆMÙØ $× >Ñ >Ø×)Ñ)¬&×*>Ñ*>Ó?ó!A�à!%×!?Ñ!?Ø×)Ñ)¬&×*?Ñ*?Ó@ó"B�ð ×(Ñ(�Ø—
‘
Ð5Ô6Ø×0Ñ0Ø˜^Ð,¨C°¨Ð?Ø  $ô(ð —
‘
˜3”Ø—
‘
Ú!Ú"Ø—N‘N 3Õ'ð)ô *ð —
‘
˜8Ô$Ø—
‘
˜8Ô$Ø—
‘
˜3”Ø�J‰JÐ7Ô8Ø�J‰JÐ2Ô3à�J‰JÐ+Ô,Ø�J‰J�wÔØ�J‰J�sŒOØ�J‰JÐUÔVØ�J‰JÐ1Ô2Ø�J‰J�sŒOØ�J‰J�xÔ Ø�J‰JÐ2Ô3à�J‰JÐ'Ô(Ø�J‰J�xÔ ÙØ—
‘
˜3”áØ�J‰JÐ+Ô,à�
‰
Øô	à×ÑÕùòW)
s   Å$[c                 ón  — |j                  d«      }|r|j                  sy |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d|j                  z  «       |j                  d«       |j                  d«       |j                  d	«       y )
Nr»  r|  r²  r³  z&__Pyx_SET_REFCNT(o, Py_REFCNT(o) + 1);r´  z&__Pyx_SET_REFCNT(o, Py_REFCNT(o) - 1);rµ  r  )rÚ  rŽ  r  rš  )rY   r1   rf   rÁ   s       r*   rÍ  z$ModuleNode.generate_usr_dealloc_callÝ  s�   € Ø×!Ñ! -Ó0ˆÙ˜E×,Ò,Øà�
‰
�3ŒØ�
‰
Ð2Ô3Ø�
‰
Ð6Ô7ð 	�
‰
Ð;Ô<Ø�
‰
�8˜e×.Ñ.Ñ.Ô/Ø�
‰
Ð;Ô<Ø�
‰
Ð5Ô6Ø�
‰
�3�r,   c                 ón  — t        j                  d«      }|j                  d«      }|j                  j                  }|j                  |«      |k7  ry |j                  |t        j                  dd«       |j                  d¬«      \  }\  }}	}
| }d}|j                  d«       |s|	r| j                  ||«       |�r€t        j                  ||«      }|r|j                  d|z  «       �nR|j                  rW|j                  }|j                  d«       |j                  d|› d	�«       |j                  d
«       |j                  d«       d}nï|j                  |j                  «      }|j                  d«       |j                  d«       |j                  d|z  «       |j                  d|› d	�«       |j                  d«       |j                  d«       |j                  d«       |j                  d|z  «       |j                  d«       |j                   j#                  t%        j&                  dd«      «       d}|s|r�|j                  d«       |j                  dt)        | «      › d�«       |j                  d«       |j                  d«       |j                   j#                  t%        j&                  dd«      «       |D ]o  }d|j*                  z  }t        j,                  t.        |j0                  |«      }|j                  d|z  «       |j                  d|z  «       |j                  d«       Œq |	D ]J  }|j*                  dz   }|j                  d|z  «       |j                  d|z  «       |j                  d«       ŒL |j                  d «       |j                  d«       |j3                  «        y )!NÚtp_traversez!PyObject *o, visitproc v, void *aF©Úinclude_gc_simplezint e;z!e = %s(o, v, a); if (e) return e;r|  z-traverseproc traverse = __Pyx_PyType_GetSlot(z, tp_traverse, traverseproc);z>if (!traverse); else { e = traverse(o,v,a); if (e) return e; }r  TrZ  ze = 0;úif (likely(%s)) {z(if (traverse) { e = traverse(o, v, a); }r€  r  z1{ e = __Pyx_call_next_tp_traverse(o, v, a, %s); }zif (e) return e;ÚCallNextTpTraverserf  z e = __Pyx_call_type_traverse(o, z, v, a);ÚCallTypeTraverser†  ú	if (%s) {z!e = (*v)(%s, a); if (e) return e;z.objzif (p->%s) {z$e = (*v)(p->%s, a); if (e) return e;rZ  )r   ÚGCDependentSlotr‰  rS  rû  rŠ  r’  r   Úc_returncode_typer‹  r  rc  r”  r•  r_  rl  rv   rw   r
   rx   rl  r=  Útypecastr	   r¾   r‘   )rY   r1   rf   rœ  r�  rž  rû  rŸ  rÎ  r   r¡  Úneeds_type_traverseÚmaybe_needs_type_traverseÚstatic_callrÔ  rÁ   Úvar_codeÚvar_as_pyobjectr=  s                      r*   rB  z%ModuleNode.generate_traverse_functioní  sH  € Ü×+Ñ+¨MÓ:ˆØ×)Ñ)¨-Ó8ˆ	Ø×%Ñ%×/Ñ/ˆ	Ø×Ñ˜UÓ# yÒ0Øà×Ñ˜E¤:×#?Ñ#?ÀÐPsÔtð ×(Ñ(¸5Ð(ÓAñ 	@ˆÑ?�x Ð->ð #,˜mÐà$)Ð!à�
‰
�8Ôá‘zØ×#Ñ# E¨4Ô0âä#×:Ñ:¸5À'ÓJˆKÙØ—
‘
Ð>ÀÑLÖMà×*Ò*Ø&×4Ñ4�
Ø—
‘
˜3”Ø—
‘
ØCÀJÀ<ÐOlÐmôoà—
‘
Ð[Ô\Ø—
‘
˜3”Ø,0Ñ)ð "×;Ñ;¸I×<SÑ<SÓT�
Ø—
‘
Ð9Ô:Ø—
‘
˜8Ô$Ø—
‘
Ð.°Ñ;Ô<Ø—
‘
ØCÀJÀ<ÐOlÐmôoà—
‘
ÐEÔFØ—
‘
˜8Ô$Ø—
‘
˜8Ô$Ø—
‘
ÐNÐQZÑZÔ[Ø—
‘
Ð-Ô.Ø× Ñ ×1Ñ1Ü×+Ñ+Ð,@ÐBTÓUôWà,0Ð)ÙÑ";Ø�J‰J�sŒOØ�J‰JÐ9¼#ÐB[Ð>[Ó:\Ð9]Ð]eÐfÔgØ�J‰JÐ)Ô*Ø�J‰J�sŒOØ×Ñ×-Ñ-Ü×'Ñ'Ð(:Ð<NÓOôQó ˆEØ §¡Ñ,ˆHÜ(×1Ñ1´.À%Ç*Á*ÈhÓWˆOØ�J‰J�{ XÑ-Ô.Ø�J‰JÐ:¸_ÑLÔMØ�J‰J�s�Oð ó  ˆEØ—K‘K &Ñ(ˆEØ�J‰J�~¨Ñ-Ô.Ø�J‰JÐ=ÀÑEÔFØ�J‰J�s�Oð	  ð 	�
‰
�;ÔØ�
‰
�3ŒØ×ÑÕr,   c                 óÐ  — t        j                  d|j                  «      }|j                  d«      }|j                  j
                  }|j                  |«      |k7  ry |j                  d¬«      \  }\  }}	}
|s|	s|rd}nd}|j                  |t        j                  d|› d�«       |r!t        j                  r|j                  d«       |s|	r| j                  ||«       |�rZt        j                  ||«      }|r|j                  d|z  «       �n,|j                   rU|j"                  }|j                  d	«       |j                  d
|› d�«       |j                  d«       |j                  d«       nË|j%                  |j"                  «      }|j                  d«       |j                  d|z  «       |j                  d
|› d�«       |j                  d«       |j                  d«       |j                  d«       |j                  d|z  «       |j&                  j)                  t+        j,                  dd«      «       t        j                  r|D ]y  }d|j.                  z  }|j                  d|z  «       |j0                  r|j3                  |t4        d¬«       n|j3                  ||j6                  d¬«       |j                  d«       Œ{ n%|D ]   }|j                  d|j.                  z  «       Œ" |	D ]   }|j                  d|j.                  z  «       Œ" |j.                  dk(  r|j                  d«       |j                  d«       |j                  d«       |j9                  «        y )NÚtp_clearFrØ  rH   ru  r¯  zPyObject* tmp;r´  r|  z%inquiry clear = __Pyx_PyType_GetSlot(z, tp_clear, inquiry);zif (clear) clear(o);r  rZ  rÚ  r€  r  z${ __Pyx_call_next_tp_clear(o, %s); }ÚCallNextTpClearrf  r†  ztmp = ((PyObject*)%s);rÄ  zPy_XDECREF(tmp);zPy_CLEAR(p->%s);zPy_CLEAR(p->%s.obj);r‡  z(__PYX_XCLEAR_MEMVIEW(&p->from_slice, 1);rZ  )r   r¶  rB   r‰  rS  rû  rŠ  r‹  r’  r   rß  r   Úclear_to_noner  rc  r”  r•  r_  rl  rv   rw   r
   rx   r=  r  Úput_init_to_py_noner	   r¾   r‘   )rY   r1   rf   rœ  r�  rž  rû  rŸ  rÎ  r   r¡  Úunusedrã  rÔ  rÁ   ru   s                   r*   rD  z"ModuleNode.generate_clear_functionD  sú  € Ü×,Ñ,¨Z¸×9IÑ9IÓJˆØ×)Ñ)¨*Ó5ˆ	Ø×%Ñ%×/Ñ/ˆ	Ø×Ñ˜UÓ# yÒ0Øð ×(Ñ(¸5Ð(ÓAñ 	@ˆÑ?�x Ð->ñ ‘z¡YØ‰Fà%ˆFà×Ñ˜E¤:×#?Ñ#?ÀÐPVÈxÐWbÐMcÔdáœ×-Ò-Ø�J‰JÐ'Ô(á‘zØ×#Ñ# E¨4Ô0âä#×:Ñ:¸5À'ÓJˆKÙØ—
‘
˜8 kÑ1Ö2Ø×*Ò*Ø&×4Ñ4�
Ø—
‘
˜3”Ø—
‘
ÐBÀ:À,ÐNcÐdÔeØ—
‘
Ð1Ô2Ø—
‘
˜3•ð "×;Ñ;¸I×<SÑ<SÓT�
Ø—
‘
Ð9Ô:Ø—
‘
Ð.°Ñ;Ô<Ø—
‘
ÐBÀ:À,ÐNcÐdÔeØ—
‘
Ð1Ô2Ø—
‘
˜8Ô$Ø—
‘
˜8Ô$Ø—
‘
ÐAÀIÑMÔNØ× Ñ ×1Ñ1Ü×+Ñ+Ð,=Ð?QÓRôTô × Ò Û!�Ø §¡Ñ,�Ø—
‘
Ð3°dÑ:Ô;Ø×,Ò,Ø×,Ñ,¨T´>ÈÐ,ÕOà×,Ñ,¨T°5·:±:ÀUÐ,ÔKØ—
‘
Ð-Õ.ñ "ó "�Ø—
‘
Ð-°·±Ñ;Õ<ð "ó  ˆEà�J‰JÐ-°·±Ñ;Õ<ð  ð ×ÑÐ!8Ò8Ø�J‰JÐAÔBà�
‰
�;ÔØ�
‰
�3ŒØ×ÑÕr,   c                 óÀ  — |j                  |t        j                  ddd¬«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d	«       |j                  d
«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j	                  «        y )NÚsq_itemzPyObject *o, Py_ssize_t iFr°  zPyObject *r;z5PyObject *x = PyLong_FromSsize_t(i); if(!x) return 0;z_#if CYTHON_USE_TYPE_SLOTS || (!CYTHON_USE_TYPE_SPECS && __PYX_LIMITED_VERSION_HEX < 0x030A0000)z2r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x);r=  zDr = ((binaryfunc)PyType_GetSlot(Py_TYPE(o), Py_mp_subscript))(o, x);r  zPy_DECREF(x);ú	return r;r  )r’  r   r“  r  r‘   )rY   r1   rf   s      r*   rF  z(ModuleNode.generate_getitem_int_function’  sÁ   € ð 	×Ñ˜E¤:×#<Ñ#<¸iÐIdÐv{ÐÔ|Ø�
‰
Øô	à�
‰
ØCô	Eð 	�
‰
ÐtÔuØ�
‰
Ø@ô	Bà�
‰
�7ÔØ�
‰
ÐYÔZØ�
‰
�8ÔØ�
‰
Øô	à�
‰
Øô	à�
‰
Øô	à×ÑÕr,   c                 óö  — |j                   j                  }|j                  d«      }|j                  d«      }|j                  |t        j
                  dd«       |j                  d«       |r|j                  d|j                  z  «       n||j                  d«       | j                  |ddd	d
|«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |r|j                  d|j                  z  «       n||j                  d«       | j                  |ddd	d
|«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  «        y )Nr-  r.  Úmp_ass_subscriptú%PyObject *o, PyObject *i, PyObject *vúif (v) {úreturn %s(o, i, v);z__Pyx_TypeName o_type_name;Útp_as_mappingÚobjobjargprocúo, i, vz=o_type_name = __Pyx_PyType_GetFullyQualifiedName(Py_TYPE(o));z'PyErr_Format(PyExc_NotImplementedError,zL  "Subscript assignment not supported by " __Pyx_FMT_TYPENAME, o_type_name);z#__Pyx_DECREF_TypeName(o_type_name);r\  r  úelse {úreturn %s(o, i);zJ  "Subscript deletion not supported by " __Pyx_FMT_TYPENAME, o_type_name);©
rS  rû  rÚ  r’  r   rß  r  rš  Úgenerate_guarded_basetype_callr‘   ©rY   r1   rf   rû  Ú	set_entryÚ	del_entrys         r*   rG  z*ModuleNode.generate_ass_subscript_function«  sÛ  € ð ×%Ñ%×/Ñ/ˆ	Ø×%Ñ% mÓ4ˆ	Ø×%Ñ% mÓ4ˆ	Ø×Ñ˜E¤:×#?Ñ#?ÐASÐU|Ô}Ø�
‰
Øô	áØ�J‰JÐ,¨y×/CÑ/CÑCÕDà�J‰JØ-ô/à×/Ñ/Ø˜?Ð,>ÀÐQZÐ\`ôbà�J‰JØOôQà�J‰JØ9ô;à�J‰JØ^ô`à�J‰JØ5ô7à�J‰JØôà�
‰
Øô	à�
‰
Øô	áØ�J‰JØ"Ø×(Ñ(ñ*õ+ð �J‰JØ-ô/à×/Ñ/Ø˜?Ð,>ÀÐQZÐ\`ôbà�J‰JØOôQà�J‰JØ9ô;à�J‰JØ\ô^à�J‰JØ5ô7à�J‰JØôà�
‰
Øô	à�
‰
Øô	à×ÑÕr,   c                 óø   — |rx|j                  |«      }|r!|j                  |› d|› d|› d|› d|› d�
«       n|j                  |› d|› d|› d|› d�«       |j                  d«       |j                  d|› d�«       y y )Nz  f = __Pyx_PyType_TryGetSubSlot(r  rÆ  z f = __Pyx_PyType_TryGetSlot(zif (f)z	return f()Útypeptr_cname_in_module_stater  )rY   rû  Úsubstructurer]  ÚfunctyperÞ  rf   Úbase_tpnames           r*   rú  z)ModuleNode.generate_guarded_basetype_callã  s¨   € áØ×<Ñ<¸YÓGˆKñ Ø—
‘
Ø�jÐ @ÀÀÈRÐP\È~Ð]_Ð`dÐ_eÐegÐhpÐgqÐqsÐtõvð —
‘
Ø�jÐ =¸k¸]È"ÈTÈFÐRTÐU]ÐT^Ð^`Ðaôcà�J‰J�xÔ Ø�J‰J˜ 4 &¨Ð+Õ,ð r,   c                 ó¨  — |j                  d«      ry |j                  |t        j                  dd«       |j	                  d«       g }|j
                  }|�p|j                  j                  dk(  sW|j                  |j                  «       |j                  j
                  j                  }|�|j                  j                  dk(  sŒW||v sJ ‚d }|r=|j                  j                  dk(  r$|j                  r|n|j
                  j                  }d|j                  v }i }t        j                  D ]#  }|D ]  }	|	j                  |«      }
|
€Œ|
||<    Œ# Œ% |r t        D ��cg c]  \  }}||v sŒ|‘Œ }}}|sLd|vr%d|vr!t!        |j
                  j"                  d	«       n t!        |j
                  j"                  d
«       d}n5d|vr&d|vr"t!        |j
                  j"                  d«       d}t%        |«      }t        j                  D �]¿  }|j'                  d«      j)                  «       }|j+                  |«      }
|
€|r|dv rŒ=|j	                  d|z  «       |
�€=|sJ ‚t        |f   \  }}}|j	                  d«       |j	                  d||   j,                  z  «       |j	                  d«       |j	                  d«       |j	                  d«       |j	                  d«       |��X|dk(  r;|j	                  d|rdndz  «       |j	                  d«       |j	                  d«       nN|dk(  r;|j	                  d|rdndz  «       |j	                  d«       |j	                  d«       nt/        d|›�«      ‚d|v rd}nd}| }|j	                  d||   j,                  z  «       |j	                  d«       |j	                  d «       |j	                  d«       |j	                  d!«       |r|j	                  d"«       n|j	                  d#«       |j	                  d$«       |j	                  d%«       |j	                  d%«       n6|r|j	                  d&«       n|j	                  d'«       |j	                  d$«       |j	                  d%«       |j	                  d(«       n|j	                  d)|
j,                  z  «       |j	                  d%«       �ŒÂ d|v râd|vrÞ|sÜ|j	                  d*«       |j	                  d«       |j	                  d|d   j,                  z  «       |j	                  d«       |j	                  d+«       |j	                  d«       |j	                  d,«       |j	                  d-«       |j	                  d$«       |j	                  d%«       |j	                  d(«       |j	                  d%«       |j	                  d.«       |r8|j                  r,|j	                  d/|j                  ›d0|j                  ›d1�«       |j	                  d2«       |j	                  d%«       |j	                  d%«       |j	                  d%«       |j1                  «        y c c}}w )3NÚ__richcmp__Útp_richcomparez"PyObject *o1, PyObject *o2, int opzswitch (op) {rö  r:  Ú__eq__Ú__ne__r;  z@total_ordering directive used, but no comparison methods definedFz=total_ordering directive used, but no equality method definedr?  )ÚNEÚEQzcase Py_%s: {zPyObject *ret;zret = %s(o1, o2);z.if (likely(ret && ret != Py_NotImplemented)) {z+int order_res = __Pyx_PyObject_IsTrue(ret);zPy_DECREF(ret);z)if (unlikely(order_res < 0)) return NULL;rF   zif (%s order_res) {z!!Ú!zret = __Pyx_NewRef(Py_False);z} else {rG   rH   zret = __Pyx_NewRef(Py_True);zUnknown op z(int eq_res = __Pyx_PyObject_IsTrue(ret);z&if (unlikely(eq_res < 0)) return NULL;z"ret = eq_res ? Py_False : Py_True;z"ret = eq_res ? Py_True : Py_False;zPy_INCREF(ret);r  z%ret = order_res ? Py_False : Py_True;z%ret = order_res ? Py_True : Py_False;zreturn ret;zreturn %s(o1, o2);zcase Py_NE: {z#int b = __Pyx_PyObject_IsTrue(ret);z!if (unlikely(b < 0)) return NULL;zret = (b) ? Py_False : Py_True;z
default: {rÀ  z->tp_richcompare)) return z->tp_richcompare(o1, o2, op);z'return __Pyx_NewRef(Py_NotImplemented);)rÚ  r’  r   r“  r  rS  rÁ   rù   r¤   r1   rû  r_  rB   r   rQ  ÚTOTAL_ORDERINGr   rV   ÚmaxÚstripÚupperrü  rš  ÚAssertionErrorr‘   )rY   r1   rf   Úclass_scopesÚclsÚextern_parentr:  Ú
comp_entryÚ
cmp_methodÚclass_scoperÁ   Ú	from_nameÚto_nameÚ
comp_namesÚordering_sourceÚcmp_typeÚinvert_compÚcomp_opÚinvert_equalsÚeq_funcs                       r*   rR  z$ModuleNode.generate_richcmp_functionò  s�  € Ø×Ñ˜]Ô+àà×Ñ˜E¤:×#<Ñ#<Ð>NÐPtÔuØ�
‰
�?Ô#àˆØ×ÑˆØˆo c§i¡i×&:Ñ&:¸hÒ&FØ×Ñ §	¡	Ô*Ø—)‘)×'Ñ'×1Ñ1ˆCð ˆo c§i¡i×&:Ñ&:¸hÓ&Fð ˜Ñ$Ð$Ð$àˆÙ�3—9‘9×'Ñ'¨8Ò3à#&×#4Ò#4™C¸%×:KÑ:K×:UÑ:UˆMà)¨U×-=Ñ-=Ð=ˆàˆ
ä#×;Ô;ˆJÛ+�Ø#×/Ñ/°
Ó;�ØÑ$Ø-2�J˜zÑ*Ùñ	  ,ð <ñ å>LÔh¹nÑ(:¨	°7ÐPYÐ]gÒPgš)¸nˆJÑhÙØ :Ñ-°(À:Ñ2MÜ˜E×-Ñ-×1Ñ1Økõmô ˜E×-Ñ-×1Ñ1Ø\ô^à!&‘à :Ñ-°(À*Ñ2LÜ˜E×-Ñ-×1Ñ1Ð3rÔsØ%*�Nô #& j£/�ä#×;Õ;ˆJØ!×'Ñ'¨Ó,×2Ñ2Ó4ˆHØ—N‘N :Ó.ˆEØˆ}¡n¸ÀLÑ8Pð à�J‰J�¨Ñ1Ô2Ø‰}Ù%Ð%�~ä6DÀ_ÐV`ÐE`Ñ6aÑ3�˜W mð —
‘
Ð+Ô,Ø—
‘
Ð.°¸OÑ1L×1WÑ1WÑWÔXØ—
‘
ÐKÔLØ—
‘
ÐHÔIØ—
‘
Ð,Ô-Ø—
‘
ÐFÔGà Ñ,à $’ØŸ
™
Ð#8ÁK¹DÐUXÑ#YÔZØŸ
™
Ð#BÔCØŸ
™
 :Õ.Ø  DšØŸ
™
Ð#8Á;¹CÐTVÑ#WÔXØŸ
™
Ð#AÔBØŸ
™
 :Õ.å,ÁÐ-JÓKÐKØ :Ñ-Ø"*™ð #+˜Ø,9Ð(9˜à—J‘JÐ2°ZÀÑ5H×5SÑ5SÑSÔTØ—J‘JÐOÔPØ—J‘JÐIÔJØ—J‘JÐ0Ô1Ø—J‘JÐGÔHÙ$ØŸ
™
Ð#GÕHàŸ
™
Ð#GÔHØ—J‘JÐ0Ô1Ø—J‘J˜s”OØ—J‘J˜s•Oñ #ØŸ
™
Ð#JÕKàŸ
™
Ð#JÔKØ—J‘JÐ0Ô1Ø—
‘
˜3”Ø—
‘
˜=Õ)à—
‘
Ð/°%×2BÑ2BÑBÔCØ�J‰J�sŽOðA <ðD �zÑ! h°jÑ&@ÉØ�J‰J�Ô'Ø�J‰JÐ'Ô(ð �J‰JÐ*¨Z¸Ñ-A×-LÑ-LÑLÔMØ�J‰JÐGÔHØ�J‰JÐ<Ô=Ø�J‰JÐ(Ô)Ø�J‰JÐ:Ô;Ø�J‰JÐ8Ô9Ø�J‰JÐ(Ô)Ø�J‰J�sŒOØ�J‰J�}Ô%Ø�J‰J�sŒOà�
‰
�<Ô Ù˜]×8Ò8Ø�JŠJØ×+Ó+¨]×-HÓ-HðJô Kà�
‰
Ð<Ô=Ø�
‰
�3Œà�
‰
�3ŒØ�
‰
�3ŒØ×ÑÕùó[ is   ÅYÅ+Yc                 óÊ  ‡‡‡‡‡— ‰j                  |j                  «      Š‰j                  d   r1‰j                  d‰›d|j                  j                  ‰«      ›�«       y |j                  j                  t        j                  t        j                  fv rd}dxŠ}nM|j                  j                  t        j                  t        j                  fv rd}dŠd}nt        |d	|z  «       y ˆfd
„Šˆˆˆˆˆfd„} ‰|j                  j                  «      rW ‰|j                  j                  «      s;t        |d|j                  j                  ›d|j                  j                  ›d�«       ‰j                  «        |j!                  «       }|r‰j                  |«       ‰j#                  ‰«       t%        t'         ‰|j                  j                  «      «      «      }	t%        t'         ‰|j                  j                  «      «      «      }
‰j(                  j*                  }‰j(                  j,                  r‰j/                  |«      }‰j                  t1        j2                  dd‰|j                  |	|
 ||j                  j                  d¬«       ||j                  j                  d¬«      ||‰|dœ
¬«      d   «       ‰j5                  «        |r‰j                  d«       y y )NÚc_api_binop_methodsr  r7  Ú
binaryfuncrH   Úternaryfuncz, extra_argz, PyObject* extra_argz"Unexpected type slot signature: %sc                 ó^   •— ‰j                  | «      }|r|j                  r|j                  S d S r%   )ÚlookuprŽ  rš  )Úmethod_namerÁ   r1   s     €r*   Úget_slot_method_cnamezAModuleNode.generate_binop_function.<locals>.get_slot_method_cname“	  s,   ø€ Ø—L‘L Ó-ˆEÙ',°×1AÒ1A�5×#Ñ#ÐKÀtÐKr,   c                 ó�   •—  ‰| «      }|r|›d|rdnd›‰›d�S ‰›d‰j                  ‰j                  j                  «      ›d‰›d�S )Nrm   zright, leftzleft, rightrn   z&_maybe_call_slot(__Pyx_PyType_GetSlot(z', tp_base, PyTypeObject*), left, right )Úname_in_module_staterS  r_  )r%  rÿ  rš  rf   Ú	extra_argÚ	func_namer&  r1   s      €€€€€r*   Úcall_slot_methodz<ModuleNode.generate_binop_function.<locals>.call_slot_method—	  sV   ø€ Ù.¨{Ó;ˆJÙâÙ%,‘M°-Ð?Úðð ò Ø×-Ñ-¨e×.?Ñ.?×.MÑ.MÕNÚðð r,   zExtension type implements z() but not zœ(). The behaviour has changed from previous Cython versions to match Python semantics. You can implement both special methods in a backwards compatible way.Ú	BinopSlotrf  F)rÿ  T)
r*  Ú	slot_nameÚoverloads_leftÚoverloads_rightÚ	call_leftÚ
call_rightrn  Ú	slot_typer)  Úextra_arg_decl©rQ   r   r  )r‰  r-  rB   r  Ú	left_slotrŠ  Ú	signaturer   r!  ÚibinaryfuncÚpowternaryfuncÚipowternaryfuncr   r%  Ú
right_slotr   Úpreprocessor_guard_coder�   rl  rP   rS  r_  r  r(  r    rK  r‘   )rY   r1   r]  rf   rV   r2  r3  r+  Úpreprocessor_guardr.  r/  Úparent_type_cnamer)  r*  r&  s    ` `        @@@r*   rX  z"ModuleNode.generate_binop_function‚	  sd  ü€ Ø×)Ñ)¨$¯.©.Ó9ˆ	Ø×ÑÐ1Ò2Ø�JŠJª)°T·^±^×5MÑ5MÈeÔ5TÐUÔVØà�>‰>×#Ñ#¬	×(<Ñ(<¼i×>SÑ>SÐ'TÑTØ$ˆIØ)+Ð+ˆI™Ø�^‰^×%Ñ%¬)×*BÑ*BÄI×D]ÑD]Ð)^Ñ^Ø%ˆIØ%ˆIØ4‰Nä�#Ð;¸dÑBÔCØô	L÷	ð 	ñ ! §¡×!;Ñ!;Ô<ÑEZÐ[_×[jÑ[j×[vÑ[vÔEwÜ‘Cð —‘×*Ó*Ø—‘×+Ó+ð	ô ð 	�
‰
ŒØ!×9Ñ9Ó;ÐÙØ�J‰JÐ)Ô*Ø×Ñ˜uÔ%äœTÑ"7¸¿¹×8RÑ8RÓ"SÓTÓUˆÜœdÑ#8¸¿¹×9TÑ9TÓ#UÓVÓWˆØ!×-Ñ-×;Ñ;ÐØ×Ñ×.Ò.Ø $× 9Ñ 9Ð:KÓ LÐØ�
‰
Ü×-Ñ-ØÐ/à!*Ø!%§¡Ø&4Ø'6Ù!1°$·.±.×2LÑ2LÐV[Ô!\Ù"2°4·?±?×3NÑ3NÐX\Ô"]Ø"3Ø!*Ø!*Ø&4ñôð ñô	ð  	×ÑÔÙØ�J‰J�xÕ ð r,   c                 óì  ‡‡— dˆˆfd„	Š ‰d«      } ‰d«      }|j                  ‰t        j                  ddd¬«       |�|j                  d|j                  z  «       n|j                  d	«       |�Q|j                  d
«       |j                  d«       |j                  d|j                  z  «       |j                  d«       |j                  d«       |j                  d«       |j                  «        y )Nc                 ó¼   •— |€‰j                   }|j                  j                  | «      }|€/|j                  r|�|S |j                  � ‰| |j                  «      S |S r%   )rS  r1   rÚ  Úis_externalrû  )ÚnÚtpÚextern_returnÚrÚlookup_here_or_baser1   s       €€r*   rE  zBModuleNode.generate_getattro_function.<locals>.lookup_here_or_baseÒ	  s^   ø€ àˆzØ×&Ñ&�Ø—‘×$Ñ$ QÓ'ˆAØˆyØ—>’> mÐ&?Ø(Ð(Ø—<‘<Ð+Ù.¨q°"·,±,Ó?Ð?ØˆHr,   r2  r3  Útp_getattrozPyObject *o, PyObject *nFr°  zPyObject *v = %s(o, n);z,PyObject *v = PyObject_GenericGetAttr(o, n);z9if (!v && PyErr_ExceptionMatches(PyExc_AttributeError)) {zPyErr_Clear();zv = %s(o, n);r  z	return v;)NN)r’  r   r“  r  rš  r‘   )rY   r1   rf   Úgetattr_entryÚgetattribute_entryrE  s    `   @r*   rI  z%ModuleNode.generate_getattro_functionË	  só   ù€ ö
	ñ ,¨MÓ:ˆÙ0Ð1CÓDÐà×Ñ˜E¤:×#<Ñ#<¸mÐMgÐy~ÐÔØÐ)Ø�J‰JØ)Ø&×1Ñ1ñ3õ4ð �J‰JØ>ô@àÐ$Ø�J‰JØKôMà�J‰JØ ô"à�J‰JØØ!×,Ñ,ñ.ô/ð �J‰JØôà�
‰
Øô	à�
‰
Øô	à×ÑÕr,   c                 ó¢  — |j                   j                  }|j                  d«      }|j                  d«      }|j                  |t        j
                  dd«       |j                  d«       |r|j                  d|j                  z  «       n'| j                  |d ddd|«       |j                  d	«       |j                  d
«       |j                  d«       |r|j                  d|j                  z  «       n'| j                  |d ddd|«       |j                  d«       |j                  d
«       |j                  d
«       |j                  «        y )Nr4  r5  Útp_setattroz%PyObject *o, PyObject *n, PyObject *vrò  zreturn %s(o, n, v);Úsetattrofunczo, n, vz(return PyObject_GenericSetAttr(o, n, v);r  r÷  zreturn %s(o, n);z(return PyObject_GenericSetAttr(o, n, 0);rù  rû  s         r*   rJ  z%ModuleNode.generate_setattro_functionù	  sA  € ð ×%Ñ%×/Ñ/ˆ	Ø×%Ñ% mÓ4ˆ	Ø×%Ñ% mÓ4ˆ	à×Ñ˜E¤:×#?Ñ#?ÀÐPwÔxØ�
‰
Øô	áØ�J‰JØ%Ø×(Ñ(ñ*õ+ð ×/Ñ/Ø˜4 °À	È4ôQà�J‰JØ:ô<à�
‰
Øô	à�
‰
Øô	áØ�J‰JØ"Ø×(Ñ(ñ*õ+ð ×/Ñ/Ø˜4 °À	È4ôQà�J‰JØ:ô<à�
‰
Øô	à�
‰
Øô	à×ÑÕr,   c                 ót  — |j                  d«      }|j                  |t        j                  ddd¬«       |j	                  d«       |j	                  d«       |j	                  d«       |j	                  d	|j
                  z  «       |j	                  d
«       |j	                  d«       |j                  «        y )Nr6  Útp_descr_getz%PyObject *o, PyObject *i, PyObject *cFr°  zPyObject *r = 0;zif (!i) i = Py_None;zif (!c) c = Py_None;zr = %s(o, i, c);rî  r  )rÚ  r’  r   r“  r  rš  r‘   )rY   r1   rf   Úuser_get_entrys       r*   rK  z&ModuleNode.generate_descr_get_function 
  s´   € ð
 ×*Ñ*¨9Ó5ˆà×Ñ˜E¤:×#<Ñ#<¸nÐNuð  HMÐô  	NØ�
‰
Øô	 à�
‰
Ø"ô	$à�
‰
Ø"ô	$ð 	�
‰
ØØ×)Ñ)ñ+ô	,ð
 	�
‰
Øô	à�
‰
Øô	à×ÑÕr,   c                 óæ  — |j                   j                  }|j                  d«      }|j                  d«      }|j                  |t        j
                  dd«       |j                  d«       |r|j                  d|j                  z  «       n8| j                  |d ddd|«       |j                  d	«       |j                  d
«       |j                  d«       |j                  d«       |r|j                  d|j                  z  «       n8| j                  |d ddd|«       |j                  d«       |j                  d
«       |j                  d«       |j                  d«       |j                  «        y )Nr7  r8  Útp_descr_setrñ  rò  ró  Údescrsetfuncrö  ú6PyErr_SetString(PyExc_NotImplementedError, "__set__");r\  r  r÷  rø  z9PyErr_SetString(PyExc_NotImplementedError, "__delete__");rù  )rY   r1   rf   rû  Úuser_set_entryÚuser_del_entrys         r*   rL  z&ModuleNode.generate_descr_set_function;
  sa  € ð ×%Ñ%×/Ñ/ˆ	Ø×*Ñ*¨9Ó5ˆØ×*Ñ*¨<Ó8ˆà×Ñ˜E¤:×#?Ñ#?ÀÐQxÔyØ�
‰
Øô	áØ�J‰JØ%Ø"×-Ñ-ñ/õ0ð ×/Ñ/Ø˜4 °ÀÈDôRà�J‰JØHôJà�J‰JØôà�
‰
Øô	à�
‰
Øô	áØ�J‰JØ"Ø"×-Ñ-ñ/õ0ð ×/Ñ/Ø˜4 °ÀÈDôRà�J‰JØKôMà�J‰JØôà�
‰
Øô	à�
‰
Øô	à×ÑÕr,   c                 óÒ   — |j                   D ]X  }|j                  }|j                  dg«      r| j                  ||«       |j                  ddg«      sŒG| j	                  ||«       ŒZ y )Nr6  r7  r®  )Úproperty_entriesr1   rO  Úgenerate_property_get_functionÚgenerate_property_set_function)rY   Úcclass_scoperf   rÁ   Úproperty_scopes        r*   rY  z&ModuleNode.generate_property_accessorsf
  s^   € Ø!×2Ô2ˆEØ"Ÿ[™[ˆNØ×)Ñ)¨9¨+Ô6Ø×3Ñ3°E¸4Ô@Ø×)Ñ)¨9°iÐ*@ÕAØ×3Ñ3°E¸4Õ@ñ 3r,   c                 ól  — |j                   }|j                  j                  t        j                  |j
                  «      |_        |j                  d«      }|j                  d«       |j                  d|j                  z  «       |j                  d|j                  z  «       |j                  d«       y )Nr6  rH   ú9static PyObject *%s(PyObject *o, CYTHON_UNUSED void *x) {úreturn %s(o);r  )
r1   Úparent_scopera  r   Úprop_get_prefixru   Úgetter_cnamerÚ  r  rš  )rY   Úproperty_entryrf   rZ  Ú	get_entrys        r*   rW  z)ModuleNode.generate_property_get_functionn
  sŸ   € Ø'×-Ñ-ˆØ&4×&AÑ&A×&HÑ&HÜ×"Ñ" N×$7Ñ$7ó'9ˆÔ#à"×.Ñ.¨yÓ9ˆ	à�
‰
�2ŒØ�
‰
ØGØ×+Ñ+ñ-ô	.ð 	�
‰
ØØ×$Ñ$ñ&ô	'ð 	�
‰
Øõ	r,   c                 óæ  — |j                   }|j                  j                  t        j                  |j
                  «      |_        |j                  d«      }|j                  d«      }|j                  d«       |j                  d|j                  z  «       |j                  d«       |r|j                  d|j                  z  «       n"|j                  d«       |j                  d«       |j                  d	«       |j                  d
«       |r|j                  d|j                  z  «       n"|j                  d«       |j                  d«       |j                  d	«       |j                  d	«       y )Nr7  r®  rH   z@static int %s(PyObject *o, PyObject *v, CYTHON_UNUSED void *x) {rò  zreturn %s(o, v);rR  r\  r  r÷  r]  z6PyErr_SetString(PyExc_NotImplementedError, "__del__");)
r1   r^  ra  r   Úprop_set_prefixru   Úsetter_cnamerÚ  r  rš  )rY   ra  rf   rZ  rü  rý  s         r*   rX  z)ModuleNode.generate_property_set_function~
  sN  € Ø'×-Ñ-ˆØ&4×&AÑ&A×&HÑ&HÜ×"Ñ" N×$7Ñ$7ó'9ˆÔ#à"×.Ñ.¨yÓ9ˆ	Ø"×.Ñ.¨yÓ9ˆ	à�
‰
�2ŒØ�
‰
ØNØ×+Ñ+ñ-ô	.ð 	�
‰
Øô	áØ�J‰JØ"Ø×(Ñ(ñ*õ+ð �J‰JØHôJà�J‰JØôà�
‰
Øô	à�
‰
Øô	áØ�J‰JØØ×(Ñ(ñ*õ+ð �J‰JØHôJà�J‰JØôà�
‰
Øô	à�
‰
Øõ	r,   c           	      ó2  — |j                   }|j                  }t        j                  d|j                  j
                  «      }|j                  ||«       t        j                  d|j                  j
                  «      }|j                  |«      s4|j                  d«       |j                  ||«       |j                  d«       |j                  r|j                  }nd|j                  z  }|j                  s|j                  d«      nd }|r|j                  rd }t        |«      }	|	�rP|j                  j!                  t#        j$                  dd«      «       |j                  d	|j&                  z  «       |j                  d
«       |r"|j                  d|›d|j(                  ›d�«       |j                  d«       |j                  d«       |j                  d«       |r™t+        |j,                  «      }
|
› d�}|j                  d«       |j                  d«       |j                  d|› d�«       |j                  d«       |j                  d|› d�«       |j                  d«       |j                  d«       |j                  d|j&                  z  «       t        j.                  |j                  j
                  «      D ]  }|j1                  ||«       Œ |	r|j                  d|j&                  z  «       |j                  d«       |j                  d«       |j2                  j5                  «       }|j                  d|j&                  z  «       |j                  d| j6                  ›d|j9                  dd«      ›d�«       |j                  d|z  «       |j                  d «       |j                  d!t        j                  d"|j
                  «      j;                  |«      z  «       |j                  d#|j&                  z  «       |j                  d«       y )$NÚ
tp_membersÚtp_as_bufferz$#if !CYTHON_COMPILING_IN_LIMITED_APIr  rÓ  r¼  ÚIncludeStructmemberHr…  z#static PyMemberDef %s_members[] = {z#if !CYTHON_USE_TYPE_SLOTSz,{"__weaklistoffset__", T_PYSSIZET, offsetof(r  z), READONLY, 0},ú{0, 0, 0, 0, 0}rˆ  zL: __weakref__ is unsupported in the Limited API when running on Python <3.9.zM#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x03090000z+#if defined(__GNUC__) || defined(__clang__)z
#warning "r@  r  z#pragma message("z")z!static PyType_Slot %s_slots[] = {z#{Py_tp_members, (void*)%s_members},z{0, 0},zstatic PyType_Spec %s_spec = {r  rH   z",zsizeof(%s),z0,r†  Útp_flagsz	%s_slots,)r¾   r1   r   r¶  rv   rB   Úgenerate_substructure_specÚis_emptyr  Úgenerate_substructurer¦  r  rM  rÚ  r×  rP   rw   r
   rx   r`  r=  r   rV   rT  Úgenerate_specÚ
class_namer$  r½   rC  rŠ  )rY   rÁ   rf   Úext_typer1   Úmembers_slotÚbuffer_slotÚ	objstructÚweakref_entryÚgenerate_membersÚpositionÚweakref_warn_mesager]  Ú	classnames                 r*   r[  z ModuleNode.generate_typeobj_spec¦
  s\  € Ø—:‘:ˆØ—‘ˆä ×1Ñ1°,À×@PÑ@P×@[Ñ@[Ó\ˆØ×/Ñ/°°tÔ<ä×0Ñ0°À×AQÑAQ×A\ÑA\Ó]ˆØ×#Ñ# EÔ*Ø�J‰JÐ=Ô>Ø×-Ñ-¨e°TÔ:Ø�J‰J�xÔ à× Ò Ø ×0Ñ0‰Ià# h×&>Ñ&>Ñ>ˆIà@E×@\Ò@\˜×)Ñ)¨-Ô8ÐbfˆÙ˜]×7Ò7Ø ˆMÜ Ó.ÐÚØ×Ñ×-Ñ-Ü×'Ñ'Ð(>Ð@SÓTôVà�J‰JÐ<¸x×?UÑ?UÑUÔVØ�J‰JÐ3Ô4Ùð
 —
’
Ú'¨×)<Ó)<ð>ô ?à�J‰J�xÔ Ø�J‰JÐ(Ô)Ø�J‰J�tÔáÜ*¨=×+<Ñ+<Ó=�à�jð !.ð .ð $ð
 —
‘
ÐjÔkØ—
‘
ÐHÔIØ—
‘
˜ZÐ(;Ð'<¸AÐ>Ô?Ø—
‘
Ð4Ô5Ø—
‘
Ð.Ð/BÐ.CÀ2ÐFÔGØ—
‘
˜8Ô$Ø—
‘
˜8Ô$ð 	�
‰
Ð6¸×9OÑ9OÑOÔPÜ×,Ñ,¨T×-=Ñ-=×-HÑ-HÖIˆDØ×Ñ˜u dÕ+ð JáØ�J‰JÐ<¸x×?UÑ?UÑUÔVØ�
‰
�9ÔØ�
‰
�4Ôà×$Ñ$×8Ñ8Ó:ˆ	Ø�
‰
Ð3°h×6LÑ6LÑLÔMØ�
Š
 ×!6Ó!6¸	×8IÑ8IÈ#ÈrÕ8RÐSÔTØ�
‰
�= 9Ñ,Ô-Ø�
‰
�4ÔØ�
‰
�5œ9×5Ñ5°jÀ%×BRÑBRÓS×]Ñ]Ð^cÓdÑdÔeØ�
‰
�; ×!7Ñ!7Ñ7Ô8Ø�
‰
�4Õr,   c                 ó$  — |j                   }|j                  }t        j                  |j                  j
                  «      j                  D ]  }|j                  ||«       Œ |j                  d«       |j                  dk(  rd}nd}|j                  ||j                  z  «       |j                  d«       |j                  j                  «       }|j                  d| j                  ›d|›d�«       |j                  r|j                  }	nd	|j                  z  }	|j                  d
|	z  «       |j                  d«       t        j                  |j                  j
                  «      D ]  }
|
j!                  ||«       Œ |j                  d«       y )NrH   rø   zDL_EXPORT(PyTypeObject) %s = {zstatic PyTypeObject %s = {zPyVarObject_HEAD_INIT(0, 0)r@  z."z, /*tp_name*/rÓ  zsizeof(%s), /*tp_basicsize*/z0, /*tp_itemsize*/rˆ  )r¾   r1   r   rT  rv   rB   Úsubstructuresrn  r  rù   r`  rp  r$  r½   r¦  r  Úgenerate)rY   ÚmodnamerÁ   rf   r¾   r1   Úsuiter¹  ry  rt  r]  s              r*   r\  z&ModuleNode.generate_typeobj_definitioní
  sN  € Ø�z‰zˆØ—
‘
ˆÜ×-Ñ-¨d×.>Ñ.>×.IÑ.IÓJ×XÔXˆEØ×'Ñ'¨¨tÕ4ð Yà�
‰
�2ŒØ×Ñ˜xÒ'Ø5‰Fà1ˆFà�
‰
�6˜D×.Ñ.Ñ.Ô/Ø�
‰
Ø)ô	+à×$Ñ$×8Ñ8Ó:ˆ	Ø�
Š
à×%Ó%Úðô	ð ×ÒØ×,Ñ,‰Ià# d×&:Ñ&:Ñ:ˆIØ�
‰
Ø*¨YÑ6ô	8à�
‰
Ø ô	"ä×,Ñ,¨T×-=Ñ-=×-HÑ-HÖIˆDØ�M‰M˜% Õ&ð Jà�
‰
Øõ	r,   c                 óÜ  — |j                   r|j                  sy |j                  d   }|j                  d«       |j	                  «       }|j                  d|j
                  z  «       |j                  D ]2  }|j                  rŒ|r|j                  rŒ|j                  |d|¬«       Œ4 |j                  d«       |j                  d«       |j                  «       r|j                  d«       y y )NÚbindingrH   zstatic PyMethodDef %s[] = {rí  )Úwrapper_code_writerz{0, 0, 0, 0}rˆ  )
Úis_c_class_scopeÚpyfunc_entriesrB   r  r  Úmethod_table_cnameÚfused_cfunctionÚis_overridableÚput_pymethoddefÚgetvalue)rY   rC   rf   r€  r�  rÁ   s         r*   rš  z ModuleNode.generate_method_table  s×   € Ø×Ò¨×(:Ò(:ØØ—.‘. Ñ+ˆà�
‰
�2ŒØ"×2Ñ2Ó4Ðà�
‰
Ø)Ø×&Ñ&ñ(ô	)ð ×'Ô'ˆEØ×(Ó(±'¸e×>RÓ>RØ×$Ñ$ U¨CÐEXÐ$ÕYð (ð 	�
‰
Øô	à�
‰
Øô	ð ×'Ñ'Ô)Ø×%Ñ% bÕ)ð *r,   c                 ó`  — |j                  d«      }|r|j                  sy |j                  d«      }|j                  }|j	                  d«       |j	                  d«       |j	                  d|z  «       | j                  ||«       |j	                  d|z  «       |j	                  d|z  «       |j	                  d«       |j	                  d	|z  «       |j	                  d
|z  «       |j	                  d«       |j	                  d«       |j	                  d|› d�«       |j	                  d«       y )Nr9  Ú__dict__getterrH   zM#if CYTHON_COMPILING_IN_LIMITED_API && __PYX_LIMITED_VERSION_HEX < 0x030A0000r\  zif (unlikely(!p->%s)){zp->%s = PyDict_New();r  zPy_XINCREF(p->%s);zreturn p->%s;r=  r  z PyObject_GenericGetDictr  )rÚ  Úis_variabler‰  r=  r  rc  )rY   r1   rf   Ú	dict_attrr*  Ú	dict_names         r*   rP  z(ModuleNode.generate_dict_getter_function#  s  € Ø×%Ñ% jÓ1ˆ	Ù 	× 5Ò 5ØØ×)Ñ)Ð*:Ó;ˆ	Ø—O‘Oˆ	à�
‰
�2ŒØ�
‰
ÐbÔcØ�
‰
ÐNÐQZÑZÔ[Ø×Ñ  tÔ,Ø�
‰
Ð+¨iÑ7Ô8Ø�
‰
Ð*¨YÑ6Ô7Ø�
‰
�3ŒØ�
‰
Ð'¨)Ñ3Ô4Ø�
‰
�? YÑ.Ô/Ø�
‰
�3ŒØ�
‰
�7Ôð 	�
‰
�X˜i˜[Ð(@ÐAÔBØ�
‰
�8Õr,   c                 ó  — |j                   rõ|j                  d«       |j                  d|j                  z  «       |j                   D ]”  }|j                  }|r0|j                  r|j                  «       }d|j                  «       z  }nd}|j                  d|j                  j                  «       ›d|j                  xs d›d|j                  xs d›d|›d�	«       Œ– |j                  d«       |j                  d	«       y y )
NrH   z"static struct PyGetSetDef %s[] = {zPyDoc_STR(%s)r‡  r|  r  z, 0},rj  rˆ  )
rV  r  Úgetset_table_cnamerË   Ú
is_unicodeÚas_utf8_stringr$  ru   r`  re  )rY   rC   rf   rÁ   rË   Údoc_codes         r*   rZ  z ModuleNode.generate_getset_table;  sé   € Ø×ÒØ�J‰J�rŒNØ�J‰JØ4Ø×&Ñ&ñ'ô(ð ×-Ô-�Ø—i‘i�ÙØ—~’~Ø!×0Ñ0Ó2˜Ø.°×1HÑ1HÓ1JÑJ‘Hà"�HØ—
’
àŸ
™
×6Ñ6Õ8Ø×*Ñ*Ò1¨cÑ1Ø×*Ñ*Ò1¨cÑ1Ú ð	"õ#ð .ð �J‰JØ!ô#à�J‰JØõð+  r,   c                 óò   — t        |j                  j                  «       «      D ]Q  \  }}|j                  sŒ|j                  sŒ |j
                  j                  rŒ7|j
                  j                  |«       ŒS y r%   )rÖ   r×   rØ   Ú
is_cglobalr  r¾   rÖ  rp  rÞ   s       r*   rÕ   z5ModuleNode.create_import_star_conversion_utility_codeT  sR   € ô " #§+¡+×"3Ñ"3Ó"5Ö6‰KˆD�%Ø×Ó E§J£JØ—z‘z×-Ó-Ø—J‘J×:Ñ:¸3Õ?ñ 7r,   c           
      ó|
  — |j                  t        j                  dd«      «       |j                  dt        j
                  › dt        j                  › dt        j                  › d�«       |j                  d«       t        |j                  j                  «       «      D ]&  \  }}|j                  sŒ|j                  d|z  «       Œ( |j                  d	«       |j                  d
«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  «       }|j                  d«       d}t        |j                  j                  «       «      D �]R  \  }}|j                  sŒ|j                  sŒ!|j                   j"                  rŒ8|dz  }|dz  dk(  r3|j                  d«       |j                  d«       |j                  d«       |j                  d|z  «       |j                   j$                  r÷|j                   j&                  s|j                   j(                  rM|j                   j+                  |d«      }|j                  d|›d|j-                  |j.                  «      ›d�«       |j                  d«       |j1                  |j2                  |j                   d¬ «       |j                  |j2                  ›d!t5        j6                  |j                   t8        d«      ›d�«       n©|j                   j;                  |«      rB|j                  |j                   j=                  d|j2                  |j.                  |«      «       nL|j                  d"|›d#|j                   ›d$�«       |j                  |j-                  |j.                  «      «       |j                  d«       �ŒU |j                  d%«       |j                  d&t        j>                  z  «       |j                  d«       |j                  d'«       |jA                  |jB                  «      r?|jE                  |jB                  «       |jG                  tI        | jJ                  «      «       ||_!        |j                  d(«       |j                  d)«       |j                  d«       |j                  d*«       |jM                  t        jN                  d+d,«      «       |jQ                  «        y )-NÚCStringEqualsr{  úint rm   rÿ  z2,PyObject *o, PyObject* py_name, const char *name)z,static const char* internal_type_names[] = {z"%s",r‡  rˆ  z-const char** type_name = internal_type_names;zwhile (*type_name) {z$if (__Pyx_StrEq(name, *type_name)) {zBPyErr_Format(PyExc_TypeError, "Cannot overwrite C type %s", name);rW  r  ztype_name++;zif (0);r   r   éd   z#ifdef _MSC_VERz)if (0);  /* Workaround for MSVC C1061. */r  z#else if (__Pyx_StrEq(name, "%s")) {r‚  zif (!(ú)) r8  zPy_INCREF(o);FrÄ  rG  z<PyErr_Format(PyExc_TypeError, "Cannot convert Python object ú to z");r÷  z3if (PyObject_SetAttr(%s, py_name, o) < 0) goto bad;rZ  r[  r\  rH   Ú
ImportStarrp   ))rw   r
   rx   Ústart_initcfuncr   Úimport_star_setÚmodulestatetype_cnameÚmodulestatevalue_cnamer  rÖ   r×   rØ   rÚ   Únew_error_labelr”  r  r¾   Úis_constrÖ  r  r•  Útype_test_codeÚ
error_gotorV   Ú
put_decrefr=  r   rà  r	   rp  Úfrom_py_call_coders  Ú
label_usedÚerror_labelÚ	put_labelÚput_add_tracebackr   r½   rœ  r�  r‘   )rY   rC   rf   ru   rÁ   Úold_error_labelÚ
msvc_countÚ	type_tests           r*   r›  zModuleNode.generate_import_star\  sà  € Ø×Ñœ[×4Ñ4°_ÀoÓVÔWØ×ÑØ”6×)Ñ)Ð*¨!Ü×+Ñ+Ð,¨B¬v×/LÑ/LÐ.Mð N@ð@ô	Að
 	�
‰
ÐAÔBÜ! #§+¡+×"3Ñ"3Ó"5Ö6‰KˆD�%Ø�}‹}Ø—
‘
˜7 T™>Õ*ð 7ð 	�
‰
�3ŒØ�
‰
�4Ôà�
‰
ÐBÔCØ�
‰
Ð)Ô*Ø�
‰
Ð9Ô:Ø�
‰
ÐWÔXØ�
‰
�;ÔØ�
‰
�3ŒØ�
‰
�>Ô"Ø�
‰
�3Œà×.Ñ.Ó0ˆØ�
‰
�9ÔØˆ
Ü! #§+¡+×"3Ñ"3Ó"5×6‰KˆD�%Ø×Ó E§J£J°u·z±z×7JÓ7JØ˜a‘�
Ø Ñ# qÒ(Ø—J‘JÐ0Ô1Ø—J‘JÐJÔKØ—J‘J˜xÔ(Ø—
‘
Ð@À4ÑGÔHØ—:‘:×)Ò)Ø—z‘z×3Ò3°u·z±z×7QÒ7QØ$)§J¡J×$=Ñ$=Ø ó%&˜	àŸ
š
Ú%Ø ŸO™O¨E¯I©IÕ6ð$8ô 9ð —J‘J˜Ô/Ø—O‘O E§K¡K°·±À5�OÔIØ—J‘JØŸ›Ü"×+Ñ+¨E¯J©J¼ÈÕLð Nõ Oð —Z‘Z×;Ñ;¸CÔ@à—J‘J˜uŸz™z×;Ñ;Ø˜UŸ[™[¨%¯)©)°Tó ;õ <ð —J’JÚ˜eŸj›jð *ô +à—J‘J˜tŸ™¨u¯y©yÓ9Ô:Ø—
‘
˜3–ð9 7ð: 	�
‰
�8ÔØ�
‰
ÐHÌ6×K^ÑK^Ñ^Ô_Ø�
‰
�3ŒØ�
‰
�;ÔØ�?‰?˜4×+Ñ+Ô,Ø�N‰N˜4×+Ñ+Ô,à×"Ñ"¤=°×1FÑ1FÓ#GÔHØ*ˆÔØ�
‰
�6ÔØ�
‰
�<Ô Ø�
‰
�3ŒØ�
‰
�2ŒØ×Ñœ;×+Ñ+¨LÐ:JÓKÔLØ×ÑÕr,   c                 ó  — |j                  d«       |j                  d|j                  z  «       |j                  dt        j                  z  «       |j                  dt        j                  z  «       |j                  dt        j
                  z  «       |j                  dt        j                  z  «       |j                  dt        j                  z  «       t        j                  �#|j                  dt        j                  z  «       y y )Nztypedef struct {r  )r  Úmodule_dict_cnamer   Úbuiltins_cnameÚcython_runtime_cnamer™  Úempty_bytesÚempty_unicoder   rt  ru  r“  s      r*   rž  z&ModuleNode.generate_module_state_start£  sÁ   € à�
‰
Ð%Ô&Ø�
‰
�? S×%:Ñ%:Ñ:Ô;Ø�
‰
�?¤V×%:Ñ%:Ñ:Ô;Ø�
‰
�?¤V×%@Ñ%@Ñ@ÔAØ�
‰
�?¤V×%7Ñ%7Ñ7Ô8Ø�
‰
�?¤V×%7Ñ%7Ñ7Ô8Ø�
‰
�?¤V×%9Ñ%9Ñ9Ô:Ü×ÑÐ)Ø�J‰J�¬×)?Ñ)?Ñ?Õ@ð *r,   c           	      óÞ  — |d   }|d   }|d   }|j                  dt        j                  z  «       |j                  d«       |j                  t	        j
                  dd«      «       |j                  d«       |j                  d	«       |j                  d
«       |j                  dt        j                  z  «       |j                  d«       |j                  d«       |j                  dt        j                  z  «       |j                  d«       |j                  d«       |j                  dt        j                  ›dt        j                  ›d�«       |j                  d«       |j                  d|j                  ›dt        j                  ›d�«       |j                  d«       |j                  dt        j                  ›dt        j                  ›d�«       |j                  d	«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  dt        j                  ›dt        j                  ›dt        j                  ›d�«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       y )NÚmodule_state_endÚmodule_state_clear_endÚmodule_state_traverse_endz} %s;rH   ÚMultiPhaseInitModuleStater…  ú#if CYTHON_USE_MODULE_STATEú#ifdef __cplusplusúnamespace {zextern struct PyModuleDef %s;ú} /* anonymous namespace */r=  zstatic struct PyModuleDef %s;r  r  z2 (__Pyx_PyModule_GetState(__Pyx_State_FindModule(&z)))z (__Pyx_State_FindModule(&z))rÔ  r7  z	_static =z    {};z    {0};z	 * const ú = &z_static;rZ  r  )	r  r   rž  rw   r
   r�  Úpymoduledef_cnamer˜  rs  )rY   rC   r®  rv   rƒ  r†  r‡  s          r*   r©  z$ModuleNode.generate_module_state_end¯  ss  € Ø"Ð#5Ñ6ˆØ(Ð)AÑBÐØ +Ð,GÑ HÐØ×Ñ˜7¤V×%AÑ%AÑAÔBØ×Ñ˜2ÔØ×$Ñ$Ü×ÑÐ8Ð:MÓNô	
ð 	×ÑÐ8Ô9Ø×ÑÐ/Ô0Ø×Ñ˜=Ô)Ø×ÑÐ:¼V×=UÑ=UÑUÔVØ×ÑÐ8Ô9Ø×Ñ˜7Ô#Ø×ÑÐ:¼V×=UÑ=UÑUÔVØ×Ñ˜8Ô$Ø×Ñ˜2ÔØ×ÒÜ×*Ó*Ü×$Ó$ð&ô 	'ð 	×Ñ˜2ÔØ×ÒØ×ÓÜ×$Ó$ð&ô 	'ð 	×Ñ˜7Ô#Ø×ÒÜ×(Ó(Ü×*Ó*ð
ô 	ð 	×ÑÐ/Ô0ð 	×Ñ˜9Ô%Ø×Ñ˜7Ô#Ø×Ñ˜:Ô&Ø×Ñ˜8Ô$Ø×ÒÜ×(Ó(Ü×*Ó*Ü×*Ó*ð
ô 	ð
 	×Ñ˜8Ô$Ø× Ñ  Ô-Ø× Ñ  Ô%Ø× Ñ  Ô*Ø×#Ñ# KÔ0Ø×#Ñ# CÔ(Ø×#Ñ# HÕ-r,   c                 óÆ  — |j                  d«       |j                  dt        j                  z  «       |j                  t        j                  › d�«       |j                  d«       |j                  d|j                  z  «       |j                  dt        j
                  z  «       |j                  dt        j                  z  «       |j                  dt        j                  z  «       |j                  dt        j                  z  «       |j                  dt        j                  z  «       |j                  d«       |j                  d«       |j                  d«       y )	Nr¸  z4static CYTHON_SMALL_CODE int %s_clear(PyObject *m) {z2 *clear_module_state = __Pyx_PyModule_GetState(m);z"if (!clear_module_state) return 0;r  ú"#if CYTHON_PEP489_MULTI_PHASE_INITz__Pyx_State_RemoveModule(NULL);r  ©
r  r   rs  rž  r®  r¯  r°  r™  r±  r²  r“  s      r*   rŸ  z&ModuleNode.generate_module_state_clearâ  s%  € Ø�
‰
Ð0Ô1Ø�
‰
ÐIÌF×L_ÑL_Ñ_Ô`Ø�
‰
”f×2Ñ2Ð3Ð3eÐfÔgØ�
‰
Ð7Ô8Ø�
‰
Ð6Ø×!Ñ!ñ"ô 	#à�
‰
Ð6Ü×!Ñ!ñ"ô 	#à�
‰
Ð6Ü×'Ñ'ñ(ô 	)à�
‰
Ð6Ü×Ññô 	 à�
‰
Ð6Ü×Ññô 	 à�
‰
Ð6Ü× Ñ ñ!ô 	"à�
‰
Ð7Ô8ð 	�
‰
Ð4Ô5Ø�
‰
�8Õr,   c                 ól  — |j                  d«       |j                  dt        j                  z  «       |j                  t        j                  › d�«       |j                  d«       |j                  d|j                  › d�«       |j                  dt        j
                  › d�«       |j                  dt        j                  › d�«       |j                  dt        j                  › d�«       |j                  dt        j                  › d�«       |j                  dt        j                  › d�«       y )Nr¸  zSstatic CYTHON_SMALL_CODE int %s_traverse(PyObject *m, visitproc visit, void *arg) {z5 *traverse_module_state = __Pyx_PyModule_GetState(m);z%if (!traverse_module_state) return 0;z Py_VISIT(traverse_module_state->rÆ  z)__Pyx_VISIT_CONST(traverse_module_state->rÀ  r“  s      r*   r   z)ModuleNode.generate_module_state_traverseù  s  € Ø�
‰
Ð0Ô1Ø�
‰
ÐhÔkq×k~Ñk~Ñ~ÔØ�
‰
”f×2Ñ2Ð3Ð3hÐiÔjØ�
‰
Ð:Ô;Ø�
‰
Ð5°c×6KÑ6KÐ5LÈBÐOÔPØ�
‰
Ð5´f×6KÑ6KÐ5LÈBÐOÔPØ�
‰
Ð5´f×6QÑ6QÐ5RÐRTÐUÔVØ�
‰
Ð>¼v×?QÑ?QÐ>RÐRTÐUÔVØ�
‰
Ð>¼v×?QÑ?QÐ>RÐRTÐUÔVØ�
‰
Ð>¼v×?SÑ?SÐ>TÐTVÐWÕXr,   c                 ó  — | j                  | j                  | j                  |«      }| j                  ||«       |j	                  | j                  «       |j                  d«       |j                  t        j                  dd«      «       t        d|j                  › �«      }d| j                  d|«      z  }|j                  d|z  «       | j                  j                  rF|j                  d«       |j                  d	| j                  d|«      z  «       |j                  d
«       | j                  |j                  «      }|r6|j                  d«       |j                  d|z  «       |j                  d
«       |j                  |«       |j                  d«       |j                  d«       |j                  dt        j                  z  «       |j                  d«       t        j                  dd«      }	|j                  |	«       |j                  d«       |j                  d| j!                  «       ›dt        j"                  ›d�«       |j                  d
«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d
«       |j                  t        j$                  › dt        j&                  › d�«       |j)                  «       }
|j*                  j,                  d   }|j*                  j,                  d   }|s|rA|r|j/                  «        |j*                  j1                  t        j2                  dd«      «       |j5                  «        |j                  d«       |j                  dt        j6                  z  «       |j                  dt        j6                  ›dt        j"                  ›d �«       |j                  d!|j                  j9                  «       d"d# z  «       |j                  d$«       |j                  d«       |j                  d%«       |j                  dt        j6                  ›d&t        j6                  ›d'�«       |j                  d
«       |j                  d(«       | j;                  ||«       |s|r |
j=                  «        |j?                  «        t        j                  d)d«      }|j                  |«       |jA                  |«       |j                  d*«       |j1                  t        j                  d+d«      «       |jC                  | j                  d,«       |jE                  t        jF                  «      }|j                  |›d-|jI                  || j                  «      ›�«       |jE                  t        jJ                  «      }|j                  |›d.|jI                  || j                  «      ›�«       |jE                  t        jL                  «      }|j                  |›d/|jI                  || j                  «      ›�«       |j                  d0«       |j,                  d1   r|jC                  | j                  d2«       |j                  d3«       |jC                  | j                  d4t        j&                  › d�«       |j                  d5«       |jC                  | j                  d6«       |j                  d| jO                  «       z  «       |jC                  | j                  d7|j6                  ›d8|jQ                  t        d9«      «      ›d8|jQ                  t        d:«      «      ›d�«       |j                  d«       | jS                  ||«       tT        jV                  r?|j                  d;«       |jC                  | j                  d<t        j&                  › d�«       |j                  d=«       |jC                  | j                  d>t        j&                  › d�«       |jC                  | j                  d?t        j&                  › d�«       |j                  d@«        |dA«      5 }| jY                  ||«       d d d «        |dB«      5 }| j[                  ||«       d d d «        |dC«      5 }| j]                  ||«       d d d «       |j_                  |«        |dD«      5 }| ja                  ||«       d d d «        |dE«      5 }|D ]  }| jc                  |||«       Œ 	 d d d «        |dF«      5 }|D ]  }| je                  |||«       Œ 	 d d d «        |dG«      5 }|D ]&  }| jg                  |«       | ji                  |||«       Œ( 	 d d d «       |jk                  |«       |j                  dH«       |jm                  d «       |s|rE|jn                  jp                  sJ ‚|js                  || j                  «       dI|jn                  _:        |jm                  d «       | jv                  jy                  |«       |jm                  d «       |s|rVdJ|jn                  _:        |jn                  jp                  sJ ‚|j{                  dK| j                  ¬L«       |j}                  «        |j                  «        |j                  dM«       | j                  ||«       |j                  «        tT        j€                  r\|j*                  j1                  t        j2                  dNd«      «       |j                  dO|jƒ                  | j                  «      z  «       |j…                  |j†                  «       |j‰                  |jŠ                  «       |jn                  j�                  «       D ]  \  }}|j�                  ||«       Œ |s|r+|j‘                  «        |j“                  | j                  «       |j                  d|j6                  z  «       |j                  d|jE                  |j”                  «      › dP�«       |j—                  t        dQ|j˜                  z  «      «       |j*                  j1                  tš        jœ                  «       |j                  d«       |j                  dR«       |jŸ                  |j6                  t         dJdI¬S«       |j                  d%«       |j£                  |j6                  t         dJ¬T«       |j                  dU«       |j                  dV«       |j                  dW«       |j                  dXt        j                  z  «       |j                  dY«       |j                  d«       |j                  d
«       |j                  dZ«       |j                  d[|j˜                  j9                  «       d"d# z  «       |j                  d«       |j‰                  |j†                  «       |j¥                  «        |j                  d«       |j                  d\|j6                  z  «       |j                  d%«       |j                  d]|j6                  z  «       |j                  d
«       |j                  d«       |
j§                  |jn                  «       |j©                  «        y # 1 sw Y   �Œ8xY w# 1 sw Y   �Œ"xY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒåxY w# 1 sw Y   �ŒÆxY w# 1 sw Y   �Œ§xY w# 1 sw Y   �ŒwxY w)^NrH   ÚPyModInitFuncTyper…  ÚPyInit_z__Pyx_PyMODINIT_FUNC %s(void)r  z%s CYTHON_SMALL_CODE; /*proto*/zc#if !defined(CYTHON_NO_PYINIT_EXPORT) && (defined(_WIN32) || defined(WIN32) || defined(MS_WINDOWS))z;__Pyx_PyMODINIT_FUNC PyInit___init__(void) { return %s(); }r  zHvoid %s(void) {} /* workaround for https://bugs.python.org/issue39432 */r¿  r|  zreturn PyModuleDef_Init(&%s);r  ÚModuleCreationPEP489zstatic CYTHON_SMALL_CODE int z(PyObject *rn   zint stringtab_initialized = 0;r¸  zint pystate_addmodule_run = 0;rÿ  z = NULL;ÚprofileÚ	linetraceÚProfilez	Profile.crÝ  zif (z == z) return 0;zrPyErr_SetString(PyExc_RuntimeError, "Module '%s' has already been imported. Re-initialisation is not supported.");r   r‰  r\  r=  z) return __Pyx_NewRef(rÆ  z /*--- Module creation code ---*/ÚImportRefnannyAPIz__Pyx_init_runtime_version();ÚCheckBinaryVersionzs__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API)z = PyTuple_New(0); z% = PyBytes_FromStringAndSize("", 0); z' = PyUnicode_FromStringAndSize("", 0); z)/*--- Library function declarations ---*/Ú
np_pythranz_import_array()z4/*--- Initialize various global constants etc. ---*/z__Pyx_InitConstants(zstringtab_initialized = 1;z__Pyx_InitGlobals()zPyObject_SetAttr(r  r“   Ú__main__z/*--- Builtin init code ---*/z__Pyx_InitCachedBuiltins(z/*--- Constants init code ---*/z__Pyx_InitCachedConstants(z__Pyx_CreateCodeObjects(z*/*--- Global type/function init code ---*/zGlobal init codezVariable export codezFunction export codezType init codezType import codezVariable import codezFunction import codez/*--- Execution code ---*/TFÚPy_None)rV   z/*--- Wrapped vars code ---*/ÚRegisterModuleCleanupzif (__Pyx_RegisterCleanup()) %sz && stringtab_initialized) {zinit %srZ  ©rÅ  r¾  rÄ  zif (pystate_addmodule_run) {zPyObject *tp, *value, *tb;zPyErr_Fetch(&tp, &value, &tb);zPyState_RemoveModule(&%s);zPyErr_Restore(tp, value, tb);z} else if (!PyErr_Occurred()) {z.PyErr_SetString(PyExc_ImportError, "init %s");zreturn (%s != NULL) ? 0 : -1;z
return %s;)UrZ   rV   r1   Úgenerate_pymoduledef_structr�   r  rœ  r
   r�  r   r¿   r#  Ú
is_packageÚwrong_punycode_module_namer   r½  Úmodule_init_func_cnameÚpymodinit_module_argrž  rŸ  r  rv   rB   Úuse_fast_gil_utility_coderw   rx   Úput_declare_refcount_contextrs  r$  Úgenerate_module_creation_codeÚput_trace_declarationsÚput_trace_frame_initÚput_setup_refcount_contextÚput_error_if_negÚ name_in_main_c_code_module_stater™  Úerror_goto_if_nullr±  r²  r”  Úintern_identifierÚgenerate_module_import_setupr   Úcache_builtinsÚgenerate_global_init_codeÚgenerate_c_variable_export_codeÚgenerate_c_function_export_coderj   Úgenerate_type_init_codeÚ$generate_type_import_code_for_moduleÚ*generate_c_variable_import_code_for_modulerú  Ú*generate_c_function_import_code_for_modulerg   r®  Ú	funcstateÚ	gil_ownedÚput_trace_startÚ	can_tracer›   Úgenerate_execution_codeÚput_trace_returnÚput_trace_exitÚgenerate_wrapped_entries_codeÚgenerate_cleanup_coder£  Úput_gotoÚreturn_labelr¨  r§  Úall_managed_tempsÚput_xdecrefÚput_trace_exception_propagatingÚput_trace_unwindr®  r©  rB  r   Útraceback_utility_coder›  r	   r¤  Úput_finish_refcount_contextÚput_temp_declarationsr‘   )rY   rV  r±  rC   rf   ÚsubfunctionÚmodinit_func_nameÚheader3rÒ  Úmod_create_funcÚtempdecl_coderÆ  rÇ  Úrefnanny_import_coder™  r±  r²  rŠ   rî   r=  r¾   s                        r*   r¡  z$ModuleNode.generate_module_init_func  s  € Ø×/Ñ/°·±¸$¿*¹*ÀdÓKˆà×(Ñ(¨¨dÔ3à×Ñ˜tŸz™zÔ*Ø�
‰
�2ŒØ×Ñœ;×+Ñ+Ð,?ÐATÓUÔVä)¨G°C·O±OÐ3DÐ*EÓFÐØ1°D×4LÑ4LÈXÐWZÓ4[Ñ[ˆà�
‰
Ð4°wÑ>Ô?Ø�:‰:× Ò Ø�J‰JÐ|Ô}Ø�J‰JÐTØ×(Ñ(¨°3Ó7ñ9ô :à�J‰J�xÔ ð &*×%DÑ%DÀSÇ_Á_Ó%UÐ"Ù%Ø�J‰JÐ|Ô}Ø�J‰JÐaÐd~Ñ~ÔØ�J‰J�xÔ Ø�
‰
�7Ôð 	�
‰
Ð7Ô8Ø�
‰
�3ŒØ�
‰
Ð2´V×5MÑ5MÑMÔNØ�
‰
�3Œä%×*Ñ*Ð+AÐCVÓWˆØ×Ñ˜?Ô+à�
‰
�2Œà�
Š
Ø×'Ñ'Õ)Ü×'Ó'ð)ô 	*ð 	�
‰
�8Ôð 	�
‰
�3ŒØ�
‰
Ð3Ô4Ø�
‰
Ð0Ô1Ø�
‰
Ð3Ô4Ø�
‰
�8ÔØ�
‰
”f×2Ñ2Ð3°2´f×6SÑ6SÐ5TÐT\Ð]Ô^à×,Ñ,Ó.ˆà×"Ñ"×-Ñ-¨iÑ8ˆØ×$Ñ$×/Ñ/°Ñ<ˆ	Ù‘iÙØ×.Ñ.Ô0Ø×Ñ×-Ñ-¬k×.EÑ.EÀiÐQ\Ó.]Ô^à×)Ñ)Ô+Ø�
‰
Ð7Ô8ð 	�
‰
�;¤×!4Ñ!4Ñ4Ô5à�
Š
Ü×ÓÜ×'Ó'ð
ô 	ð 	�
‰
ð gà—?‘?×6Ñ6Ó8¸¸2Ð>ñ?ô 	@ð 	�
‰
�<Ô Ø�
‰
�3ŒØ�
‰
�7Ôà�
Š
Ü×ÓÜ×Óð
ô 	ð 	�
‰
�8Ôà�
‰
Ð5Ô6Ø×*Ñ*¨3°Ô5á‘iØ×0Ñ0Ô2Ø×%Ñ%Ô'ä*×/Ñ/Ð0CÐEXÓYÐØ×ÑÐ/Ô0Ø×'Ñ'Ð(9Ô:à�
‰
Ð2Ô3Ø×Ñœ[×-Ñ-Ð.BÐDWÓXÔYØ×Ñ˜dŸh™hð )Kô 	
ð ×;Ñ;¼F×<NÑ<NÓOˆØ�
‰
Ú˜×0Ñ0°¸d¿h¹hÔGðIô 	Jà×;Ñ;¼F×<NÑ<NÓOˆØ�
‰
Ú˜×0Ñ0°¸d¿h¹hÔGðIô 	Jà×=Ñ=¼f×>RÑ>RÓSˆØ�
‰
Ú˜4×2Ñ2°=À$Ç(Á(ÔKðMô 	Nð 	�
‰
Ð>Ô?Ø�>‰>˜,Ò'Ø×!Ñ! $§(¡(Ð,=Ô>à�
‰
ÐIÔJØ×Ñ˜dŸh™hÐ*>¼v×?\Ñ?\Ð>]Ð]^Ð(_Ô`Ø�
‰
Ð/Ô0Ø×Ñ˜dŸh™hÐ(=Ô>à�
‰
�; ×!?Ñ!?Ó!AÑAÔBØ×Ñ˜dŸhšhØ×ÓØ×"Ñ"¤=°Ó#<Õ=Ø×"Ñ"¤=°Ó#<Õ=ð)?ô 	@ð 	�
‰
�3Œð 	×)Ñ)¨#¨tÔ4ä×!Ò!Ø�J‰JÐ6Ô7Ø×!Ñ!Ø—‘Ø+¬F×,IÑ,IÐ+JÈ!ÐLôNð 	�
‰
Ð4Ô5Ø×ÑØ�H‰HØ(¬×)FÑ)FÐ(GÀqÐIô	Kð 	×ÑØ�H‰HØ&¤v×'DÑ'DÐ&EÀQÐGô	Ið 	�
‰
Ð?Ô@áÐ+Ô,°
Ø×*Ñ*¨3°
Ô;÷ -ñ Ð/Ô0°JØ×0Ñ0°°jÔA÷ 1ñ Ð/Ô0°JØ×0Ñ0°°jÔA÷ 1ð 	 ×0Ñ0°Ô6áÐ)Ô*¨jØ×(Ñ(¨¨jÔ9÷ +ñ Ð+Ô,°
Û*�Ø×9Ñ9¸&À#ÀzÕRñ +÷ -ñ Ð/Ô0°JÛ*�Ø×?Ñ?ÀÈÈZÕXñ +÷ 1ñ Ð/Ô0°JÛ*�Ø×+Ñ+¨FÔ3Ø×?Ñ?ÀÈÈZÕXñ +÷ 1ð
 	 ×0Ñ0°Ô6à�
‰
Ð/Ô0Ø�‰�dÔá‘iØ—>‘>×+Ò+Ð+Ð+Ø× Ñ Ð!2°D·H±HÔ=Ø'+ˆD�N‰NÔ$à�‰�dÔØ�	‰	×)Ñ)¨$Ô/Ø�‰�dÔá‘iØ',ˆD�N‰NÔ$Ø—>‘>×+Ò+Ð+Ð+Ø×!Ñ! )°·±Ð!Ô:Ø×ÑÔ!à�
‰
ŒØ�
‰
Ð2Ô3Ø×*Ñ*¨3°Ô5Ø�
‰
Œä×(Ò(Ø×Ñ×-Ñ-Ü×'Ñ'Ð(?ÐATÓUôWà�J‰JÐ8¸4¿?¹?È4Ï8É8Ó;TÑTÔUà�‰�d×'Ñ'Ô(Ø�‰�t×'Ñ'Ô(ØŸ>™>×;Ñ;Ö=‰KˆE�4Ø×Ñ˜U DÕ)ð >ñ ‘iØ×0Ñ0Ô2Ø×!Ñ! $§(¡(Ô+à�
‰
�; ×!1Ñ!1Ñ1Ô2Ø�
‰
Ø�4×8Ñ8¸×9NÑ9NÓOÐPÐPmÐnô	pð 	×Ñœ}¨Y¸×9KÑ9KÑ-KÓLÔMØ×Ñ×)Ñ)¬%×*FÑ*FÔGð 	�
‰
�3ŒØ�
‰
Ð1Ô2Ø×Ñ˜c×.Ñ.´ÀeÐaeÐÔfØ�
‰
�7Ôð 	�‰˜×(Ñ(¬.ÀˆÔFð 	�
‰
Ð1Ô2Ø�
‰
Ð/Ô0Ø�
‰
Ð3Ô4Ø�
‰
Ð/´&×2JÑ2JÑJÔKØ�
‰
Ð2Ô3Ø�
‰
�3ŒØ�
‰
�8ÔØ�
‰
Ð4Ô5Ø�
‰
ÐCØ×%Ñ%×9Ñ9Ó;¸A¸bÐAñBô 	Cà�
‰
�3ŒØ�‰�t×(Ñ(Ô)à×(Ñ(Ô*à�
‰
Ð7Ô8Ø�
‰
Ð2°S×5EÑ5EÑEÔFØ�
‰
�7ÔØ�
‰
�< #×"2Ñ"2Ñ2Ô3Ø�
‰
�8ÔØ�
‰
�3Œà×+Ñ+¨D¯N©NÔ;à×ÑÕ÷_ -Ñ,ú÷ 1Ñ0ú÷ 1Ñ0ú÷
 +Ñ*ú÷ -Ñ,ú÷ 1Ñ0ú÷ 1Ñ0úsT   á+z4â{â1{ã%{ä{(ä4{5å ,|ú4z>û{û{û{%û({2û5{?ü|c                 óL   ‡‡‡‡— ‰j                  «       Š G ˆˆˆˆfd„d«      }|S )a‰  
        Return a context manager that allows deviating the module init code generation
        into a separate function and instead inserts a call to it.

        Can be reused sequentially to create multiple functions.
        The functions get inserted at the point where the context manager was created.
        The call gets inserted where the context manager is used (on entry).
        c                   ó4   •— e Zd Zd„ Zd„ Zˆ ˆˆfd„Zˆ ˆfd„Zy)ú;ModuleNode.mod_init_subfunction.<locals>.ModInitSubfunctionc                 óÌ   — dj                  |j                  «       j                  «       «      }t        j                  d|«      sJ ‚d|z  | _        || _        d | _        d | _        y )Nr?  z^[a-z0-9_]+$z__Pyx_modinit_%s)	rÅ  Úlowerrñ  r   ÚmatchÚ
cfunc_nameÚdescriptionrþ  Ú	call_code)rY   Ú	code_typer=  s      r*   r[   zDModuleNode.mod_init_subfunction.<locals>.ModInitSubfunction.__init__  sW   € ØŸ™ §¡Ó!2×!8Ñ!8Ó!:Ó;�Ü—x‘x °Ô6Ð6Ð6Ø"4°uÑ"<�”Ø#,�Ô Ø%)�Ô"Ø!%�•r,   c                 ó.   — |j                  «       | _        y r%   )r  r  re   s     r*   rd   zIModuleNode.mod_init_subfunction.<locals>.ModInitSubfunction.set_call_code   s   € Ø!%×!5Ñ!5Ó!7�•r,   c           	      óÊ  •— | j                   €‰j                  «       | _         ‰}|j                  d| j                  › dt        j
                  › dt        j                  › d�‰d¬«       |j                  dt        j                  › d�«       |j                  «       | _        |j                  t        | j                  «      «       |j                  d	| j                  z  «       |S )
Nr—  rm   rÿ  rn   T)ÚrefnannyzCYTHON_UNUSED_VAR(rÆ  z/*--- %s ---*/)r  r  rœ  r  r   rž  rŸ  r  rþ  rÚ  r   r  )rY   rf   Úfunction_codeÚ	orig_coder1   s     €€€r*   Ú	__enter__zEModuleNode.mod_init_subfunction.<locals>.ModInitSubfunction.__enter__#  sÊ   ø€ Ø—>‘>Ð)Ø%.×%>Ñ%>Ó%@�D”NØ$�Ø×$Ñ$Ø˜4Ÿ?™?Ð+¨1¬V×-IÑ-IÐ,JÈ"ÌV×MjÑMjÐLkÐklÐmØ Dð %ô *ð —
‘
Ð/´×0MÑ0MÐ/NÈbÐQÔRØ%)×%9Ñ%9Ó%;�Ô"Ø×/Ñ/´¸d¿o¹oÓ0NÔOà—
‘
Ð+¨d×.>Ñ.>Ñ>Ô?Ø�r,   c                 ó^  •— |�d x| _         | _        y ‰}|j                  «        |j                  d«       | j                   j	                  |j
                  «       d | _         |j                  |j                  «      }|rp|j                  |j                  «       |j
                  j                  «       D ]  \  }}|j                  ||«       Œ |j                  «        |j                  d«       |j                  d«       |j                  «        |r[| j                  j                  | j                  j                  | j                  ›dt        j                  ›d�‰	«      «       d | _        y | j                  j                  d| j                  › dt        j                  › d�«       d | _        y )NrZ  r\  r  rm   rn   z(void)rÆ  )rþ  r  rø  r  rù  rè  r¦  r§  r¨  ró  rô  r‘   Úerror_goto_if_negr  r   rŸ  )
rY   Úexc_typeÚ	exc_valueÚexc_tbrf   Úneeds_error_handlingr=  r¾   r  rV   s
           €€r*   Ú__exit__zDModuleNode.mod_init_subfunction.<locals>.ModInitSubfunction.__exit__1  sb  ø€ ØÐ'à:>Ð>�DÔ&¨¬Øà$�Ø×0Ñ0Ô2Ø—
‘
˜;Ô'à×"Ñ"×8Ñ8¸¿¹ÔHØ%)�Ô"à'+§¡°t×7GÑ7GÓ'HÐ$Ù'Ø—N‘N 4×#3Ñ#3Ô4Ø'+§~¡~×'GÑ'GÖ'I™˜˜tØ×(Ñ(¨°Õ5ð (Jà×4Ñ4Ô6Ø—J‘J˜|Ô,Ø—
‘
˜3”Ø×%Ñ%Ô'á'Ø—N‘N×(Ñ(ØŸ™×8Ñ8Ø ŸO›O¬V×-JÓ-Jð:LØMPóRôSð "&�•ð —N‘N×(Ñ(Ø  §¡Ð 1°´6×3PÑ3PÐ2QÐQSÐTôVà!%�•r,   N)r“   r”   r•   r[   rd   r  r  )r  r  rV   r1   s   €€€€r*   ÚModInitSubfunctionr    s   ø„ ò&ò8öö&r,   r  )r  )rY   rV   r1   r  r  r  s    ``` @r*   rZ   zModuleNode.mod_init_subfunction  s&   û€ ð "×1Ñ1Ó3ˆ÷8	&ö 8	&ðt "Ð!r,   c                 ó8  — |j                   d   }|dk(  r| j                  d   j                  }|�rÇ|j                  d«       |j                  d|j                  ›d|j                  t        t        |«      «      «      ›d|j                  | j                  «      ›d�«       |j                  d	«       |j                  �ræ|j                  d«       |j                  j                  t        d
«      }|j                  |›d|j                  t        t        t        j                  j                  |«      «      «      «      ›d|j!                  || j                  «      ›�«       |j#                  |t        «       |j                  d|j                  ›d|›d|j                  | j                  «      ›d�«       |j%                  |t        «       |j                  j'                  |«       |j                  d	«       n­|j                  r¡|j                  d«       |j(                  j+                  t-        j.                  dd«      «       |j                  |j1                  d|j                  t        | j2                  «      «      z  | j                  «      «       |j                  d	«       | j2                  }|j5                  d«      rt        |d t7        d«        «      }|j9                  «       }|j                  d«       |j                  d|j!                  d| j                  «      z  «       |j                  d|z  «       |j                  |j1                  d|›d|j                  ›d�| j                  «      «       |j                  d	«       |j                  d	«       y )NÚset_initial_pathÚ
SOURCEFILEr   z&if (!CYTHON_PEP489_MULTI_PHASE_INIT) {úif (PyObject_SetAttrString(z, "__file__", ú) < 0) r8  r  Tz = Py_BuildValue("[O]", ú); z, "__path__", ÚSetPackagePathFromImportLibrp   z%__Pyx_SetPackagePathFromImportLib(%s)z	.__init__r|  z0PyObject *modules = PyImport_GetModuleDict(); %sr®  z)if (!PyDict_GetItemString(modules, %s)) {zPyDict_SetItemString(modules, r  rn   )rB   rV   rà  r  rs  Úget_py_string_constr   r   r£  rÑ  rè  Úallocate_tempr	   ró   r'   rÄ  rÝ  Ú
put_gotrefr›  Úrelease_temprv   rw   r
   r�  r  r½   ÚendswithrÝ  r$  )rY   rC   rf   Úmodule_pathÚtempÚfq_module_nameÚfq_module_name_cstrings          r*   rß  z'ModuleNode.generate_module_import_setupS  sâ  € Ø—n‘nÐ%7Ñ8ˆØ˜,Ò&ØŸ(™( 1™+×.Ñ.ˆKâØ�J‰JÐ?Ô@Ø�JŠJØ× Ó Ø×(Ñ(Ü!¤/°+Ó">Ó?õAà—‘ §¡Õ)ð	+ô ,ð
 �J‰J�sŒOà�~‹~à—
‘
ÐCÔDØ—~‘~×3Ñ3´NÀDÓI�Ø—
‘
ÚØ×,Ñ,Ü%¤oÜŸG™GŸO™O¨KÓ8ó':ó ;õ<ð ×+Ñ+¨D°$·(±(Ô;ð=ô >ð —‘ ¤nÔ5Ø—
’
à×(Ó(ª$°·±ÀÇÁÕ0IðKôLð ×%Ñ% d¬NÔ;Ø—‘×+Ñ+¨DÔ1Ø—
‘
˜3•à�^Š^ð �J‰JÐ?Ô@Ø×Ñ×-Ñ-¬k×.>Ñ.>Ø-Ð/?ó/Aô Bà�J‰J�t×-Ñ-Ø7Ø×,Ñ,Ü% d×&;Ñ&;Ó<ó>ñ?ð —‘ó	ô ð
 �J‰J�sŒOð ×.Ñ.ˆØ×"Ñ" ;Ô/Ü*¨>Ð:L¼CÀÓ<LÐ;LÐ+MÓNˆNØ!/×!CÑ!CÓ!EÐØ�
‰
�3ŒØ�
‰
ÐEØ×*Ñ*¨9°d·h±hÓ?ñ@ô 	Aà�
‰
Ð>ÐAWÑWÔXØ�
‰
�4×)Ò)Ú" C×$4Ó$4ð+6Ø7;·x±xóAô 	Bà�
‰
�3ŒØ�
‰
�3�r,   c                 ó˜  — t         j                  sy |j                  dt        j                  z  «       |j                  |«       |j                  t        j                  › dt        j                  › d�«       |j                  d«       |j                  dt        j                  › d�«       |j                  d«       |j                  t        j                  › d�«       t         j                  d	k\  rú|j                  d
«       t        |j                  «      }|j                  «        |D ]¿  }|j                  dk7  sŒ|j                  j                  r_|j                  rS|j                   r|j"                  }n|j%                  |j"                  «      }|j'                  ||j                  dd¬«       |j                  j)                  |«      sŒ¤|j                  j+                  ||«       ŒÁ |j                  dt        j                  › d�«       t         j                  dk\  rp|j                  d«       t-        |j.                  t1        j2                  d«      ¬«      D ]2  }|j5                  |j6                  «      }|j'                  ||dd¬«       Œ4 t         j8                  rO|j                  d«       |j:                  D ]/  }|j'                  |j"                  t<        j>                  dd¬«       Œ1 |j                  d«       |jA                  |j5                  t        jB                  «      › t<        j>                  dd¬«       |jD                  D �]À  }|j                  }|jF                  s|jH                  rŒ)|jJ                  jL                  jO                  dd«      sŒP|jJ                  }	|j5                  |	jQ                  t        jR                  «      «      }
|j5                  |	jQ                  t        jT                  «      «      }|j                  d«       |j                  d|z  «       |j                  d|
›d|›d�«       |j                  d«       |j                  d«       |j                  d «       |j                  d!«       |j                  d"«       |j                  d#«       |j                  d«       |j                  d$«       |j                  d%«       |j                  d«       |j                  d&«       |j                  d«       �ŒÃ t         jV                  �'|jA                  t        jX                  t>        dd¬'«       t        jZ                  t        j\                  fD ],  }|j5                  |«      }|jA                  |t>        dd¬'«       Œ. |jA                  |j5                  |j^                  «      t>        dd¬'«       y )(Nz.static void %s(CYTHON_UNUSED PyObject *self) {rÿ  r8  r¸  zif (!__Pyx_State_FindModule(&z
)) return;r  z! = __Pyx_PyModule_GetState(self);r   z/*--- Global cleanup code ---*/rö  TF)r¾  rÅ  z__Pyx_CleanupGlobals(rÆ  é   z$/*--- Type import cleanup code ---*/r_  r<  z /*--- Builtin cleanup code ---*/z/*--- Intern cleanup code ---*/rv  r   rx  zwhile (%s > 0) {zPyObject* o = (PyObject*)r}  r~  rÃ  rÄ  rÅ  r=  rÆ  rÇ  r<  rÈ  r  rÏ  )0r   rð  r  r   Úcleanup_cnamer�   rž  rŸ  r½  rÞ  r	  rÿ  rù   r¾   rÖ  r  r”  r=  r(  rÏ  rË  rÎ  rÖ   Útypes_importedr  r  rÜ  r_  rà  Úcached_builtinsr   r	   r›  r™  r¼   r@  rû  r1   rB   rü  r‰  r�  r‘  rt  ru  r°  r¯  r®  )rY   rC   rf   Úrev_entriesrÁ   Úentry_cnamerq  r_  Úcclass_typer1   r�  r‘  r=  s                r*   r¢  z'ModuleNode.generate_module_cleanup_funcŽ  s¾  € Ü×,Ò,Øà�
‰
ÐCÜ×'Ñ'ñ(ô 	)à×Ñ˜sÔ#Ø�
‰
”f×2Ñ2Ð3°2´f×6SÑ6SÐ5TÐTUÐVÔWð 	�
‰
Ð0Ô1Ø�
‰
Ð2´6×3KÑ3KÐ2LÈJÐWÔXØ�
‰
�8ÔØ�
‰
”f×3Ñ3Ð4Ð4UÐVÔWä×(Ñ(¨AÒ-Ø�J‰JÐ8Ô9Ü˜sŸ™Ó/ˆKØ×ÑÔ!Û$�Ø×#Ñ# xÓ/Ø—z‘z×-Ò-°%·*²*Ø ×+Ò+à*/¯+©+™Kà*.×*CÑ*CÀEÇKÁKÓ*P˜KØ×.Ñ.Ø'¨¯©Ø04Ø"'ð /ô )ð —z‘z×<Ñ<¸SÕAØŸ
™
×@Ñ@ÀÀuÕMð %ð 	�
‰
Ð*¬6×+HÑ+HÐ*IÈÐLÔMÜ×(Ñ(¨AÒ-Ø�J‰JÐ=Ô>Ü" 3×#5Ñ#5¼8×;NÑ;NÈÓ;_×`�Ø $× EÑ EÀh×F\ÑF\Ó ]�Ø×&Ñ&Ø! 8Ø(,Øð 'õ !ð aô ×!Ò!Ø�J‰JÐ9Ô:Ø×,Ô,�Ø×&Ñ&Ø—K‘K¤×!:Ñ!:Ø(,Øð 'õ !ð -ð
 	�
‰
Ð4Ô5Ø×Ñ ×!FÑ!FÄv×GYÑGYÓ!ZÐ [Ü(×7Ñ7Ø26Ø$)ð 	ô 	+ð ×(Õ(ˆEØŸ*™*ˆKØ×&Ò&¨+×*?Ò*?ØØ× Ñ ×+Ñ+×/Ñ/°
¸AÕ>Ø#×)Ñ)�Ø $× EÑ EØ×)Ñ)¬&×*>Ñ*>Ó?ó!A�à!%×!FÑ!FØ×)Ñ)¬&×*?Ñ*?Ó@ó"B�à—
‘
Ð5Ô6Ø—
‘
Ð-°Ñ>Ô?Ø—
’
Ú!¢>ð3ô 4à—
‘
Ð;Ô<Ø—
‘
Ð6Ô7Ø—
‘
Ð/Ô0Ø—
‘
˜7Ô#à—
‘
ÐYÔZØ—
‘
Ð5Ô6Ø—
‘
˜8Ô$Ø—
‘
Ð6Ô7à—
‘
Ð+Ô,Ø—
‘
˜8Ô$Ø—
‘
˜3”Ø—
‘
˜8Ö$ð7 )ôR ×ÑÐ)Ø×!Ñ!¤&×"8Ñ"8¼.Ø(-À4ð "ô Iä×1Ñ1´6×3HÑ3HÓIˆEØ×9Ñ9¸%Ó@ˆEØ×!Ñ! %¬¸uÐZ^Ð!Õ_ð Jð 	×ÑØ×1Ñ1°#×2GÑ2GÓHÜ %¸Tð 	õ 	Cr,   c                 ó@  — | j                  «       }t        j                  dk(  rd}nt        j                  }t        j                  dd|j
                  |t        j                  |t        t        j                  «      dœ¬«      }|j                  j                  |«       y )NÚmainÚwmainÚMainFunctionzEmbed.c)r¿   r°  r‹  Úwmain_methodÚembed_modulesr4  )
r”  r   r£  r    rx   r¿   Útupler5  rv   rw   )rY   rC   rf   r°  r2  r‹  s         r*   r¤  zModuleNode.generate_main_methodü  s~   € Ø×7Ñ7Ó9ˆÜ�=‰=˜FÒ"Ø‰Eä—M‘MˆEÜ(×4Ñ4Ø 	à#&§?¡?Ø&4Ü#*§=¡=Ø$)Ü%*¬7×+@Ñ+@Ó%AñCôDˆð 	×Ñ×)Ñ)¨+Õ6r,   c                 ó    — |j                  «       rd|z   }n3d|j                  d«      j                  dd«      j                  d«      z   }|›|›�S )Nr?  ÚU_Úpunycodeó   -ó   _rQ  ©ÚisasciiÚencoderC  Údecode)rY   rD  ru   s      r*   rA  zModuleNode.punycode_module_name  sJ   € à�<‰<Œ>Ø˜‘:‰Dà˜$Ÿ+™+ jÓ1×9Ñ9¸$ÀÓE×LÑLÈWÓUÑUˆDÙ¡Ð&Ð&r,   c                 ó�   — |j                  «       ry dd|z   j                  d«      j                  dd«      j                  d«      z   S )NÚPyInitUr?  r9  r:  r;  rQ  r<  )rY   ru   s     r*   rÒ  z%ModuleNode.wrong_punycode_module_name  sA   € à�<‰<Œ>ØØ˜C ™H×,Ñ,¨ZÓ8×@Ñ@ÀÀtÓL×SÑSÐT[Ó\Ñ\Ð\r,   c                 ó:   — | j                  ||j                  «      S r%   )rA  r¿   )rY   rD  rC   s      r*   r#  zModuleNode.mod_init_func_cname  s   € à×(Ñ(¨°·±ÓAÐAr,   c                 óZ   — | j                   }| j                  t        j                  |«      S r%   )r1   r#  r   Úpymodule_exec_func_cname)rY   rC   s     r*   rÓ  z!ModuleNode.module_init_func_cname"  s$   € Ø�j‰jˆØ×'Ñ'¬×(GÑ(GÈÓMÐMr,   c                 óô	  — |j                   rd|j                  |j                   «      z  }nd}t        j                  rdt        j
                  z  }nd}|j                  d«       |j                  d«       | j                  «       }|j                  dt        j                  z  «       |j                  d|z  «       |j                  d	t        j                  z  «       |j                  d
t        j                  z  «       |j                  d|z  «       |j                  d«       |j                  d«       |j                  d«       |j                  d«       ddddœj                  |j                  d   «      }|j                  d|z  «       |j                  d«       |j                  d«       |j                  d«       |j                  j                  «       s"|j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  dt        j                  z  «       |j                  d«       |j                  dt        j                  z  «       |j                  d«       |j                  d«       |j                  d «       |j                  d!|j                  j                  «       z  «       |j                  d"|z  «       |j                  d#«       |j                  d$t        j                   › d%�«       |j                  d«       |j                  d&«       |j                  d«       |j                  d'|j"                  z  «       |j                  d«       |j                  d(t        j                  z  «       |j                  d«       |j                  d)«       |j                  d«       |j                  d#«       |j                  d*t        j$                  z  «       |j                  d+t        j$                  z  «       |j                  d,|z  «       |j                  d«       |j                  d-«       |j                  d.«       |j                  d,|z  «       |j                  d«       |j                  d«       |j                  d«       |j                  d/«       |j                  d«       y )0Nú%sr‡  z(freefunc)%sÚNULLrH   r¿  z@static PyObject* %s(PyObject *spec, PyModuleDef *def); /*proto*/z*static int %s(PyObject* module); /*proto*/z static PyModuleDef_Slot %s[] = {z{Py_mod_create, (void*)%s},z{Py_mod_exec, (void*)%s},ú-#if CYTHON_COMPILING_IN_CPYTHON_FREETHREADINGz-{Py_mod_gil, __Pyx_FREETHREADING_COMPATIBLE},r  z;#if PY_VERSION_HEX >= 0x030C0000 && CYTHON_USE_MODULE_STATEÚ*Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTEDÚ&Py_MOD_MULTIPLE_INTERPRETERS_SUPPORTEDÚ$Py_MOD_PER_INTERPRETER_GIL_SUPPORTED)ÚnoÚ
shared_gilÚown_gilÚsubinterpreters_compatiblez#{Py_mod_multiple_interpreters, %s},z	{0, NULL}rˆ  z*#else /* CYTHON_PEP489_MULTI_PHASE_INIT */zT#error "Unicode module names are only supported with multi-phase init as per PEP489"r¹  rº  zstruct PyModuleDef %s =r=  zstatic struct PyModuleDef %s =r|  z  PyModuleDef_HEAD_INIT,z  %s,z  %s, /* m_doc */r¸  z	  sizeof(z), /* m_size */z9  (CYTHON_PEP489_MULTI_PHASE_INIT) ? 0 : -1, /* m_size */z  %s /* m_methods */,z  %s, /* m_slots */z  NULL, /* m_reload */z  %s_traverse, /* m_traverse */z  %s_clear, /* m_clear */z  %s /* m_free */z  NULL, /* m_traverse */z  NULL, /* m_clear */r»  )rË   Úget_string_constr   rð  r   r*  r  rÓ  Úpymodule_create_func_cnameÚpymoduledef_slots_cnamerü  rB   r¿   r=  r½  r$  rž  r„  rs  )rY   rC   rf   rË   Úcleanup_funcÚexec_func_cnameÚsubinterp_options          r*   rÐ  z&ModuleNode.generate_pymoduledef_struct&  sÔ  € Ø�7Š7Ø˜×.Ñ.¨s¯w©wÓ7Ñ7‰CàˆCÜ×(Ò(Ø)¬F×,@Ñ,@Ñ@‰Là!ˆLà�
‰
�2ŒØ�
‰
Ð7Ô8Ø×5Ñ5Ó7ˆØ�
‰
ÐUÜ×4Ñ4ñ5ô 	6à�
‰
Ð?À/ÑQÔRà�
‰
Ð5¼×8VÑ8VÑVÔWØ�
‰
Ð0´6×3TÑ3TÑTÔUØ�
‰
Ð.°Ñ@ÔAØ�
‰
ÐBÔCØ�
‰
ÐBÔCØ�
‰
�8ÔØ�
‰
ÐPÔQà>ØBØ=ñ
÷ ‰#ˆc�n‰nÐ9Ñ:Ó
;ð	 	ð
 	�
‰
Ð8Ð;KÑKÔLØ�
‰
�8ÔØ�
‰
�;ÔØ�
‰
�4ÔØ�‰×&Ñ&Ô(Ø�J‰JÐCÔDØ�J‰Jð )ô *à�
‰
�8Ôà�
‰
�2ŒØ�
‰
Ð'Ô(Ø�
‰
�=Ô!Ø�
‰
Ð,¬v×/GÑ/GÑGÔHØ�
‰
�7ÔØ�
‰
Ð3´f×6NÑ6NÑNÔOØ�
‰
�8ÔØ�
‰
�3ŒØ�
‰
Ð-Ô.Ø�
‰
�7˜SŸ_™_×@Ñ@ÓBÑBÔCØ�
‰
Ð&¨Ñ,Ô-Ø�
‰
Ð0Ô1Ø�
‰
�Yœv×;Ñ;Ð<¸OÐLÔMØ�
‰
�7ÔØ�
‰
ÐNÔOØ�
‰
�8ÔØ�
‰
Ð*¨S×-CÑ-CÑCÔDØ�
‰
Ð7Ô8Ø�
‰
Ð(¬6×+IÑ+IÑIÔJØ�
‰
�7ÔØ�
‰
Ð+Ô,Ø�
‰
�8ÔØ�
‰
Ð0Ô1Ø�
‰
Ð4´v×7JÑ7JÑJÔKØ�
‰
Ð.´×1DÑ1DÑDÔEØ�
‰
Ð&¨Ñ5Ô6Ø�
‰
�7ÔØ�
‰
Ð-Ô.Ø�
‰
Ð*Ô+Ø�
‰
Ð&¨Ñ5Ô6Ø�
‰
�8ÔØ�
‰
�4ÔØ�
‰
Ð'Ô(Ø�
‰
Ð0Ô1Ø�
‰
�8Õr,   c           
      óú  — |j                   rd|j                  |j                   «      z  }nd}|j                  j                  t        d¬«      }|j                  d«       |j                  |›dt        j                  ›d�«       |j                  |t        d¬«       |j                  d	«       |j                  |›d
t        j                  ›d|j                  || j                  «      ›�«       |j                  d«       |j                  d«       |j                  d«       |j                  d|›dt        j                  ›d�«       |j                  |›d|›d|j                  j                  «       ›d�«       |j                  |j                  d| j                  «      «       |j                  d«       |j                  d«       |j                  d	«       |j                  |j                  › d|› d�«       |j                  d«       |j                  j!                  |«       |j                  d«       |j"                  d   rdnd}|j                  d|j                  › d|› d�«       |j                  d«       |j                  t        j$                  › dt        j&                  › d�«       |j                  d|z  «       |j)                  |j*                  «      }|j                  |›d|j                  ›d|j                  || j                  «      ›�«       |j                  |t        d¬«       |j)                  t        j,                  «      }|j                  |›d |j                  || j                  «      ›�«       |j)                  t        j.                  «      }|j                  |›d!|j                  || j                  «      ›�«       |j                  d"|j                  ›d#|›d$|j1                  | j                  «      ›�«       t2        j4                  �^|j                  t        j6                  ›d%t2        j4                  ›d&|j                  t        j6                  | j                  «      ›�«       y y )'NrF  r‡  F©Ú
manage_refr¿  rG  r8  rÄ  r=  z = PyModule_Create(&r  r  r¸  r|  z.int add_module_result = __Pyx_State_AddModule(z, &rÆ  z! = 0; /* transfer ownership from rš  z pseudovariable */Úadd_module_resultzpystate_addmodule_run = 1;r  rH  rJ  rK  rL  zPyUnstable_Module_SetGIL(r  zCYTHON_UNUSED_VAR(%s);z = PyModule_GetDict(z; = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); z2 = __Pyx_PyImport_AddModuleRef("cython_runtime"); r  z, "__builtins__", r  z  = __Pyx_PyImport_AddModuleRef("z"); )rË   rP  rè  r   r	   r  r   rÔ  Ú
put_increfr½  rÝ  rV   r¿   r$  r  rs  r"  rB   rŸ  r˜  rÜ  r®  r¯  r°  r£  r   rt  ru  )	rY   rC   rf   rË   Úmodule_tempÚ
gil_optionÚ
dict_cnamer¯  Úruntime_cnames	            r*   r×  z(ModuleNode.generate_module_creation_codeq  sš  € ð �7Š7Ø˜×.Ñ.¨s¯w©wÓ7Ñ7‰CàˆCð —n‘n×2Ñ2´>ÈeÐ2ÓTˆØ�
‰
Ð7Ô8Ø�
‰
ÚÜ×'Ó'ð)ô 	*ð 	�‰˜¤^¸5ˆÔAØ�
‰
�7ÔØ�
‰
âÜ×(Ó(Ø×'Ñ'¨°T·X±XÔ>ð@ô	Að
 	�
‰
�8Ôà�
‰
Ð0Ô1Ø�
‰
�3Œà�
Š
Úœ×1Ó1ð3ô 	4à�
‰
Úš c§o¡o×&IÑ&IÕ&Kð
ô 	ð 	�
‰
�4×)Ñ)Ð*=¸t¿x¹xÓHÔIØ�
‰
Ð/Ô0Ø�
‰
�3ŒØ�
‰
�7ÔØ�
‰
�c×&Ñ&Ð' s¨;¨-°qÐ9Ô:Ø�
‰
�8ÔØ�‰×#Ñ# KÔ0à�
‰
ÐBÔCàŸ™Ð(BÒCñ ,à,ð 	ð 	�
‰
Ð.¨s×/?Ñ/?Ð.@ÀÀ:À,ÈbÐQÔRØ�
‰
�8Ôà�
‰
”f×3Ñ3Ð4°C¼×8VÑ8VÐ7WÐWXÐYÔZØ�
‰
Ð+¨kÑ9Ô:à×:Ñ:¸3×;PÑ;PÓQˆ
Ø�
‰
â˜C×,Ó,Ø×'Ñ'¨
°D·H±HÔ=ð?ô	@ð 	�‰˜
¤N¸%ˆÔ@à×>Ñ>¼v×?TÑ?TÓUˆØ�
‰
âØ×'Ñ'¨¸¿¹ÔAðCô	Dð ×=Ñ=¼f×>YÑ>YÓZˆØ�
‰
âØ×'Ñ'¨°t·x±xÔ@ðBô	Cð 	�
Š
à× Ó ÚØ—‘ §¡Ô)ð+ô	,ô
 ×ÑÐ)Ø�J‰Jä×*Ó*Ü×&Ó&Ø×+Ñ+¬F×,BÑ,BÀDÇHÁHÔMðOõPð *r,   c                 ó  — |j                   D ]r  }|j                  dk7  sŒ|j                  r|j                  j	                  ||«       |j                  j                  |«      sŒW|j                  j                  ||«       Œt y ©Nrö  )r	  rù   r  r¾   Úglobal_init_coder�  r—  )rY   rC   rf   rÁ   s       r*   rá  z$ModuleNode.generate_global_init_codeÂ  sa   € ð —_”_ˆEØ×Ñ 8Ó+Ø—:’:Ø—J‘J×/Ñ/°°tÔ<Ø—:‘:×9Ñ9¸#Õ>à—J‘J×=Ñ=¸dÀEÕJñ %r,   c                 ó®  — t        |j                  j                  «       «      D �].  \  }}|j                  sŒ|j                  rŒ!|j
                  |u sŒ0|j                  j                  |«      s#t        |j                  d|j                  z  «       |j                  d«       |j                  d|j                  j                  ›d|j                  ›d�«       |j                  |j                  d|j                  «      «       |j                  d|j                  ›d|›d	|j                  |j                  «      ›d
�«       |j                  d«       �Œ1 y )Nz$Cannot convert '%s' to Python objectr|  zPyObject* wrapped = rm   rÆ  Úwrappedr  rU  z", wrapped) < 0) r8  r  )rÖ   r×   rØ   rÙ   rÚ   r1   r¾   ro  r   rV   r  Úto_py_functionr=  rÝ  rs  r£  )rY   rC   rf   ru   rÁ   s        r*   rï  z(ModuleNode.generate_wrapped_entries_codeÍ  sñ   € Ü! #§+¡+×"3Ñ"3Ó"5×6‰KˆD�%Ø×$Ó$Ø!ŸM›MØŸ™ sÒ*Ø—z‘z×;Ñ;¸CÔ@Ü˜%Ÿ)™)Ð%KÈeÏjÉjÑ%XÔYØ—
‘
˜3”Ø—
’
Ø—J‘J×-Ó-Ø—K“Kð!ô "ð —
‘
˜4×2Ñ2°9¸e¿i¹iÓHÔIØ—
’
à×(Ó(ÚØŸ™¨¯	©	Õ2ð4ô5ð
 —
‘
˜3–ñ! 7r,   c                 óš   — |D �cg c];  }|j                   s+|j                  st        j                  r|j                  dk7  r|‘Œ= c}S c c}w r`  )rú   rí   r   r'  rù   )rY   Úall_entriesrÁ   s      r*   Ú_select_exported_entriesz#ModuleNode._select_exported_entriesà  sL   € á*ó
Ù*�eØ�yŠy˜E×0Ò0´W×5MÒ5MÐRW×RbÑRbÐfnÒRnò ˜{ñ
ð 	
ùò 
s   …A Ac                 óV  — | j                  |j                  «      }|sy|D �cg c]3  }|j                  j                  «       |j                  |j
                  f‘Œ5 }}|j                  j                  t        j                  dd«      «       t        || j                  |dd«       yc c}w )úOGenerate code to create PyCFunction wrappers for exported C functions.
        NÚVoidPtrExportrp   Ú__Pyx_ExportVoidPtrzvoid *{name})rg  r	  r¾   re  ru   r=  rv   rw   r
   rx   ry   rV   ©rY   rC   rf   r×   rÁ   r{   s         r*   râ  z*ModuleNode.generate_c_variable_export_codeæ  s¢   € ð ×/Ñ/°·±Ó@ˆÙØñ
 !ó
ñ !�ð �Z‰Z×.Ñ.Ó0°%·*±*¸e¿k¹kÒJØ ð 	ð 
ð
 	×Ñ×)Ñ)Ü×#Ñ# OÐ5EÓFô	Hô 	˜d D§H¡H¨gÐ7LÈnÕ]ùò
ó   £8B&c                 óV  — | j                  |j                  «      }|sy|D �cg c]3  }|j                  j                  «       |j                  |j
                  f‘Œ5 }}|j                  j                  t        j                  dd«      «       t        || j                  |dd«       yc c}w )ri  Nro   rp   rq   rr   )rg  rì   r¾   rd  ru   r=  rv   rw   r
   rx   ry   rV   rl  s         r*   rã  z*ModuleNode.generate_c_function_export_code÷  s¦   € ð ×/Ñ/°×0AÑ0AÓBˆÙØñ
 !ó
ñ !�ð �Z‰Z×(Ñ(Ó*¨E¯J©J¸¿¹ÒDØ ð 	ð 
ð
 	×Ñ×)Ñ)Ü×#Ñ#Ð$4Ð6FÓGô	Iô 	˜d D§H¡H¨gÐ7MÐOeÕfùò
rm  c           	      óÔ   — t        |«      5 }|j                  D ]8  }|j                  sŒ| j                  ||j                  |j
                  ||«       Œ: 	 d d d «       y # 1 sw Y   y xY wr%   )rf  r¼   rí   Úgenerate_type_import_coder¾   rV   )rY   rî   rC   rf   rn  rÁ   s         r*   rå  z/ModuleNode.generate_type_import_code_for_module  sS   € ô # 4Ô(Ð,<Ø×/Ô/�Ø×'Ó'Ø×2Ñ2°3¸¿
¹
ÀEÇIÁIÈtÐUeÕfñ 0÷ )×(Ñ(ús   ŒA©+AÁA'c                 óŽ   — |j                   dd D ]3  }|j                  j                  sŒ|j                  j                  «        Œ5 y)a  
        If fused c(p)def functions are defined in an imported pxd, but not
        used in this implementation file, we still have fused entries and
        not specialized ones. This method replaces any fused entries with their
        specialized ones.
        N)rì   r¾   rš  Ú"get_all_specialized_function_types)rY   Úpxd_envrÁ   s      r*   rú  z!ModuleNode.specialize_fused_types  s6   € ð ×*Ñ*©1Ó-ˆEØ�z‰z×"Ó"à—
‘
×=Ñ=Õ?ñ .r,   c                 ó`   — |D �cg c]  }|j                   r|r|j                  r|‘Œ  c}S c c}w r%   )rí   r  )rY   rf  Ú	used_onlyrÁ   s       r*   Ú_select_imported_entriesz#ModuleNode._select_imported_entries  s7   € á*ó
Ù*�eØ×#Ò#©Y¸%¿*º*ò ˜{ñ
ð 	
ùò 
rH  c           	      óò  — | j                  |j                  d¬«      }|sy||u }|D �cg c]_  }|j                  j                  «       |j                  |r|j
                  n)|j                  t        j                  |j                  «      f‘Œa }}|j                  j                  t        j                  dd«      «       t        || j                  ||j                  dt        j                   › �d«       yc c}w )úQGenerate import code for all exported C functions in a cimported module.
        F©ru  NrR  rp   Ú__Pyx_ImportVoidPtr_zvoid **{name})rv  r	  r¾   re  ru   r=  ra  r   r#  rv   rw   r
   rx   rƒ   rV   rB  r‚   )rY   rî   rC   rf   r×   Úis_module_scoperÁ   r„   s           r*   ræ  z5ModuleNode.generate_c_variable_import_code_for_module#  sñ   € ð ×/Ñ/°×0BÑ0BÈeÐ/ÓTˆÙØà ˜-ˆñ !ó
ñ
 !�ð �Z‰Z×.Ñ.Ó0Ø�Z‰ZÙ+ˆU�[Š[°·±¼v×?SÑ?SÐUZ×U_ÑU_Ó1`òbð !ð 	ð 
ð 	×Ñ×)Ñ)Ü×#Ñ# OÐ5EÓFô	Hô 	Ø�$—(‘(˜G V×%:Ñ%:Ð>RÔSY×ScÑScÐRdÐ<eÐgvõ	xùò
s   ©A$C4c                 ó’  — | j                  |j                  d¬«      }|sy|D �cg c]3  }|j                  j                  «       |j                  |j
                  f‘Œ5 }}|j                  j                  t        j                  dd«      «       t        || j                  ||j                  dt        j                  › �d«       yc c}w )rx  Try  Nr   rp   r€   r�   )rv  rì   r¾   rd  ru   r=  rv   rw   r
   rx   rƒ   rV   rB  r   r‚   )rY   rî   rC   rf   r×   rÁ   r„   s          r*   rç  z5ModuleNode.generate_c_function_import_code_for_module8  sÇ   € ð ×/Ñ/°×0DÑ0DÐPTÐ/ÓUˆÙØñ
 !ó
ñ !�ð �Z‰Z×(Ñ(Ó*¨E¯J©J¸¿¹ÒDØ ð 	ð 
ð
 	×Ñ×)Ñ)Ü×#Ñ#Ð$4Ð6FÓGô	Iô 	Ø�$—(‘(˜G V×%:Ñ%:Ð>SÔTZ×TdÑTdÐSeÐ<fÐhõ	Aùò
s   ¥8Cc           	      ó�  — t        |«      5 }|j                  D ]–  }|j                  dk(  r6|j                  s*| j	                  ||j
                  |j                  ||«       ŒH| j                  ||||«       | j                  ||«       |j
                  j                  sŒ…| j                  ||«       Œ˜ 	 d d d «       y # 1 sw Y   y xY wr`  )rf  r¼   rù   Úutility_code_definitionrp  r¾   rV   Úgenerate_base_type_import_codeÚ!generate_exttype_vtable_init_codeÚ
early_initÚgenerate_type_ready_code)rY   rC   rf   rn  rÁ   s        r*   rä  z"ModuleNode.generate_type_init_codeJ  s¢   € ô # 4Ô(Ð,<Ø×,Ô,�Ø×#Ñ# xÒ/¸×8UÒ8UØ×2Ñ2°3¸¿
¹
ÀEÇIÁIÈtÐUeÕfà×7Ñ7¸¸UÀDÐJZÔ[Ø×:Ñ:¸5À$ÔGØ—z‘z×,Ó,Ø×5Ñ5°e¸TÕBñ -÷ )×(Ñ(ús   ŒBB<ÂB<Â<Cc                 óö   — |j                   j                  }|ra|j                  |j                  k7  rG|j                  s:|j
                  s-|j                  s | j                  ||| j                  ||«       y y y y y y r%   )	r¾   rû  r¿   rB  r•  Úis_cython_builtin_typer~  rp  rV   )rY   rC   rÁ   rf   rn  rû  s         r*   r  z)ModuleNode.generate_base_type_import_codeW  sr   € Ø—J‘J×(Ñ(ˆ	Ù˜)×/Ñ/°3×3EÑ3EÒEØ×*Ò*¨i×.NÒ.NØ×6Ò6Ø×*Ñ*¨3°	¸4¿8¹8ÀTÐK[Õ\ð 7ð /OÐ*ð FˆIr,   c                 óT  — ||j                   v ry |j                  t        j                  vr/|j                  j                  t        j                  dd«      «       | j                  ||||¬«       |j                  r’|j                  j                  t        j                  dd«      «       |j                  |j                  ›d|j                  ›d|j                  |j                  «      ›d|j                  |j                  |«      ›�«       |j                   j                  |«       y )NrS  rp   )Ú	error_posÚ	GetVTablez = (struct z*)__Pyx_GetVtable(r  )r+  ru   r   Úctypedef_builtins_maprv   rw   r
   rx   rg  r   r  r
  rÜ  r_  rÝ  ró  )rY   rC   r¾   rV   rf   rn  s         r*   rp  z$ModuleNode.generate_type_import_code^  sù   € ð �3×%Ñ%Ñ%ØØ�9‰9œD×6Ñ6Ñ6à×Ñ×-Ñ-Ü×'Ñ'¨Ð6FÓGôIà×&Ñ& t¨TÐ3CÈsÐ&ÔSØ×ÒØ×Ñ×-Ñ-Ü×'Ñ'¨Ð5EÓFôHà�J‰JØ×"Ó"Ø×%Ó%Ø×5Ñ5°d×6HÑ6HÕIØ×'Ñ'¨×(:Ñ(:¸CÔ@ð	Bô Cð
 	×Ñ×Ñ˜tÕ$r,   c                 óÞ  — |j                   r|j                  nd|j                  › �x}}|j                  }	|j                  }
|	dv }|sd|	› d�}	n |
t        j
                  v rB|j                  |j                  |j                  «      › dt        j
                  |
   › d�«       y d}	|
t        j                  v rt        j                  |
   }
|t        j                  v rt        j                  |   }|s|€J ‚|j                  |«      }|j                  |	|«      }|j                  }|s|j                  |«      }|j                  |› dt        j                  › d|› d	|	› d	|j                  j!                  «       › d
�
«       dt        j                  › �}|j                  d«       |j                  d|› d|› d|› d�«       |j                  d«       |r|j                  d«       n|j                  d|› d|› d|› d�«       |j                  d«       |j                  d|› d|› d|› d�«       |j                  d«       |j"                  r|j"                  dv r|j"                  }nC|j$                  r|j&                  rd}n(t)        d|j"                  › d|	› d|j                  › �«      ‚|j+                  d|j-                  «       › dt        j                  › d�«       |j                  d|› d|› �«       y )Nrù  )Ú__builtin__Úbuiltinsr@  rG  r8  Ú__Pyx_BUILTIN_MODULE_NAMEz = __Pyx_ImportType_rm   r  rí  Ú__PYX_GET_STRUCT_ALIGNMENT_z>#if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000zsizeof(z), z),z%#elif CYTHON_COMPILING_IN_LIMITED_APIz0, 0,r=  r  )r   ÚwarnÚignorer   zinvalid value for check_size 'z' when compiling r  Ú__Pyx_ImportType_CheckSize_r?  rÆ  z if (!z) )r¦  r  r¿   ru   r   rˆ  r  r(  r_  Úrenamed_py2_builtins_mapÚbasicsize_builtins_mapr£  rð  rÜ  r   r‚   r$  Ú
check_sizer@  Úis_subclassedÚRuntimeErrorrL  rm  )rY   r¾   rf   rn  rX  r†  rY  Úsizeof_objstructrt  r¿   Ú	type_nameÚ
is_builtinrî   r_  Úalignment_funcr“  s                   r*   rg  z$ModuleNode.generate_type_import_calls  sö  € Ø?C×?PÒ?P t×';Ò';ÐX_Ð`d×`tÑ`tÐ_uÐVvÐvÐ˜9Ø×&Ñ&ˆØ—I‘Iˆ	Ø Ð$?Ð?ˆ
ÙØ˜k˜]¨!Ð,‰KØœ$×4Ñ4Ñ4à�J‰JØ×,Ñ,¨T×-?Ñ-?Ó@ÐAÀÄT×E_ÑE_Ð`iÑEjÐDkÐklÐmôoàà5ˆKØœD×9Ñ9Ñ9Ü ×9Ñ9¸)ÑD�	ØœD×7Ñ7Ñ7ä#'×#>Ñ#>¸yÑ#IÐ áØÐ(Ð(Ð(ØŸ™¨Ó3ˆJà!×1Ñ1°+¸zÓJˆØ×*Ñ*ˆÙØ ×AÑAÀ-ÓPˆMà�
‰
ØˆoÐ1´&×2BÑ2BÐ1CÀ1Øˆh�b˜˜ R¨¯	©	×(EÑ(EÓ(GÐ'HÈðKô	
ð
 7´v×7GÑ7GÐ6HÐIˆØ�
‰
ÐSÔTØ�
‰
�W˜Y˜K s¨>Ð*:¸!¸I¸;ÀbÐIÔJØ�
‰
Ð:Ô;Ùð
 �J‰J�wÕà�J‰J˜  ¨3¨~Ð.>¸aÀ	¸{È"ÐMÔNØ�
‰
�7ÔØ�
‰
�WÐ-Ð.¨c°.Ð1AÀÐCSÐBTÐTVÐWÔXØ�
‰
�8Ôð �?Š?˜tŸ™Ð2MÑMØŸ™‰JØ×!Ò! T×%7Ò%7Ø ‰JäØ0°·±Ð0AÐARÐS^ÐR_Ð_`Ðae×ajÑajÐ`kÐlónð nà�‰Ð.¨z×/?Ñ/?Ó/AÐ.BÀ!ÄF×DTÑDTÐCUÐUWÐXÔYà�
‰
�V˜M˜?¨"¨Z¨LÐ9Õ:r,   c                 óD   — t         j                  j                  ||«       y r%   )r   ÚCClassDefNoder‚  )rY   rÁ   rf   s      r*   r‚  z#ModuleNode.generate_type_ready_code°  s   € Ü×Ñ×4Ñ4°U¸DÕAr,   c                 óz   — | j                   j                  dd«      }| j                  t        j                  |«      S r?  )r½   rC  rA  r   r°  )rY   r½   s     r*   r”  z$ModuleNode.is_main_module_flag_cname³  s5   € Ø×0Ñ0×8Ñ8¸¸dÓCÐØ×(Ñ(¬×)>Ñ)>Ð@PÓQÐQr,   c           
      ó¢  — |j                   }|j                  �r1|j                  |j                  ›d|j                  ›d�«       |j                  r\|j                  j                  rF|j                  |j                  ›dt
        j                  ›d|j                  j                  ›d�«       |j                  j                  D �cg c]  }|j                  r|‘Œ }}|rl|D ]f  }|j                  xs |j                   }|j                  «       }|j                  |j                  ›d|j                  ›d|›|j                  ›d�«       Œh y y y c c}w )Nr¼  r8  r  z = *rG  )r¾   r_  r  r   rû  r   rû  r1   rì   rš  Úvtable_typeÚsignature_cast_stringr=  )rY   rÁ   rf   r¾   Úc_method_entriesÚ
meth_entryrž  Úcasts           r*   r€  z,ModuleNode.generate_exttype_vtable_init_code·  s"  € ð �z‰zˆØ×ÓØ�J‰Jà×&Ó&Ø×%Ó%ð'ô(ð �~Š~ $§.¡.×">Ò">Ø—
‘
à×)Ó)Ü×-Ó-ØŸ™×4Ó4ð6ô7ð $(§:¡:×#;Ò#;ó %Ù#;˜%Ø×#Ò#ò Ð#;ð ð  %ñ  Û"2�JØ",×"8Ñ"8Ò"K¸J¿O¹O�KØ&×<Ñ<Ó>�DØ—J‘Jà ×-Ó-Ø&×,Ó,Ù Ø&×1Ó1ð	3õ4ñ #3ð  ð ùò %s   ÃEr]  )F)TT)NNF)yr“   r”   r•   Úchild_attrsrB   r«   r¬   Úpropertyrž   r¹   rÂ   rÄ   rÏ   rß   rê   rï   rõ   rç   r"  r  rè   r  r   ræ   r­  r¬  rä   r  r  rå   r,  r¦  Ústaticmethodr7  r‘  r  r  r  r¥  r”  r  r§  rœ  r³  r™  r»  rž  rÑ  rŸ  r�  r$  r%  r&  r'  r!  r#  r/  r0  r1  r—  r™  r=  rc  rq  r>  r?  r@  rÍ  rB  rD  rF  rG  rú  rR  rX  rI  rJ  rK  rL  rY  rW  rX  r[  r\  rš  rP  rZ  rÕ   r›  rž  r©  rŸ  r   r¡  rZ   rß  r¢  r¤  rA  rÒ  r#  rÓ  rÐ  r×  rá  rï  rg  râ  rã  rå  rú  rv  ræ  rç  rä  r  rp  rg  r‚  r”  r€  r˜   r,   r*   rš   rš   ¾   sÔ  „ ð �(€KØ€Jà€IØÐàñó ðò)JóV#òòò6	4ò5òó2ò`(òDDò+òeòN!òòfDòP$\òLò*$òò@**òX	/òIò6Sð. ñHó ðHò`aòDò.ó
	2òò&ò#KòJ!òNò+òIòò
%ò>Gò"aòF!AòFò$ò0
%òFòRò
*`òX3ò.1;òfMò ò:)òx$ò0ð ñ
yó ð
yòa òF!ò2b òHò U ònL ò\ ò26 òp-òN ò`G!òR, ò\% òN ò6) òVAòò &òPEòNò@*ò,ò0ò2@òE òN
Aò0.òfò.
YòE òNE"òN9òvlCò\7ò 'ò]òBòNòIòVOPòb	Kò ò&
ò^ò"gò"gò
@ó
òxò*Aò$Cò]ò%ó*<;òzBòRó4r,   rš   c                 ó�   — t        t        | «      Ž \  }}}t        |«      }d }t        |«      D ]  \  }}||k(  rd||<   Œ|}Œ |||fS )NrH   )ÚziprÖ   rÞ  rß  )Úitem_tuplesÚ
signaturesÚnamesrØ   Úlast_sigÚir6  s          r*   Ú_deduplicate_inout_signaturesr­  Ø  sa   € ô  #¤F¨;Ó$7Ð8Ñ€J��uÜ�jÓ!€Jà€HÜ! *Ö-‰ˆˆ9Ø˜Ò ØˆJ�qŠMà ‰Hð	 .ð �u˜eÐ#Ð#r,   rf   c                 ór  — t        |«      \  }}	}
t        j                  › |rdnd› d�}|j                  d¬«      }dj	                  |«      j                  d«      }dj	                  |	«      j                  d«      }|
D �cg c]
  }d|› d	|› �‘Œ }}t        |d
z   |z   d«      }|rn| j                  d|› d| j                  |«      › d�«       | j                  d«       | j                  | j                  |› d�|«      «       | j                  d«       n&| j                  d|› d|j                  «       › d�«       | j                  d|› d|› dt        |«      dz   › d�«       | j                  |j                  d|› d�¬«      › ddj	                  |«      › d|› d�«       | j                  j                  t        j                  dd«      «       | j                  |j                  d|› d�¬«      › d |› d!�«       | j                  d"|› d#|› d$�«       | j                  d%|› d&�«       | j!                  ||› d|› d|› d'|› d(|› d)�
«       | j                  d*|› d+�«       | j                  |› d,|› d-�«       | j                  |› d.|› d/�«       | j                  d0|› d1|› d#|› d$�«       | j                  d2«       y c c}w )3NrT  Úexportr?  rH   )ru   Ú zutf-8rm   z)&ó    zconst char * z#signature = __Pyx_PyBytes_AsString(rÆ  z#if !CYTHON_ASSUME_SAFE_MACROSr6  r  zsignature = r8  zname = zsignature + r   zconst z
pointers[]z = {r  z, (z) NULL};rz  r{  zconst *ÚpointerrG  z	pointers;zconst char *zcurrent_signature = z
signature;zwhile (*z
pointer) {zname, *z	pointer, zcurrent_signature)z++zpointer;zname = strchr(zname, '\0') + 1;zsignature = strchr(zsignature, '\0') + 1;zif (*zsignature != '\0') r  )r­  r   Úpyrex_prefixÚformatrÅ  r>  r!   r  r  rÝ  r$  rÝ  rv   rw   r
   rx   rÛ  )rf   rV   Úinout_item_tuplesÚper_item_funcÚtargetÚpointer_declÚuse_pybytesÚ	is_importr©  rª  Úinout_itemsÚpyxÚpointer_castÚ	sig_bytesÚnames_bytesÚ
item_cnameÚpointersÚsigs_and_names_bytess                     r*   Ú_generate_import_export_coderÃ  è  sé  € Ü%BÐCTÓ%UÑ"€J��{ä× Ñ Ð!©i¡(¸XÐ!FÀaÐ
H€Cà×&Ñ&¨BÐ&Ó/€LØ—	‘	˜*Ó%×,Ñ,¨WÓ5€IØ—)‘)˜EÓ"×)Ñ)¨'Ó2€KÙCNÓOÁ;°Z�!�L�>  J <Ò0À;€HÐOä(¨°UÑ):¸[Ñ)HÈ'ÓRÐÙØ�
‰
�] 3 %Ð'JÈ4×KcÑKcÐdxÓKyÐJzÐz|Ð}Ô~Ø�
‰
Ð3Ô4Ø�
‰
�4×*Ñ*¨c¨U°)Ð+<¸cÓBÔCØ�
‰
�8Õà�
‰
�] 3 % |Ð4H×4\Ñ4\Ó4^Ð3_Ð_`ÐaÔbà‡J�J�˜s˜e 7¨3¨%¨|¼CÀ	»NÈQÑ<NÐ;OÈqÐQÔRØ‡J�J�,×%Ñ%¨V°C°5¸
Ð+CÐ%ÓDÐEÀUÈ4Ï9É9ÐU]ÓK^ÐJ_Ð_bÐcoÐbpÐpyÐzÔ{à×Ñ×%Ñ%Ü×ÑÐ 0°/ÓBôDð 	‡J�J�,×%Ñ%¨W°S°E¸Ð+AÐ%ÓBÐCÀ3ÀsÀeÈ9ÐUÔVØ‡J�J�˜c˜UÐ"6°s°e¸:ÐFÔGØ‡J�J�˜#˜˜kÐ*Ô+à×ÑØØˆ/˜˜6˜( " S E¨°°°Y¸s¸eÐCUÐVôð 	‡J�J��C�5˜Ð!Ô"Ø‡J�J�#��n S EÐ):Ð;Ô<Ø‡J�J�#�Ð)¨#¨Ð.DÐEÔFà‡J�J��s�eÐ/°¨uÐ4HÈÈÈZÐXÔYà‡J�Jˆs…Oùò? Ps   Á?J4c           
      óè  — | j                  d«       | j                  j                  t        d¬«      }| j                  j                  t        j                  dd«      «       | j                  |› d| j                  ||«      › �«       | j                  |t        «       t        | |||||dd¬«       | j                  |t        «       | j                  j                  |«       | j                  d	«       y
)zqGenerate function/pointer export code.

    'exports' is a list of (signature, name, exported_cname) tuples.
    r|  TrW  Ú
GetApiDictrp   z! = __Pyx_ApiExport_GetApiDict(); F©r¹  rº  r  N)r  rè  r   r	   rv   rw   r
   rx   rÝ  r!  rÃ  r›  r"  )rf   rV   r{   Úexport_funcr¸  Úapi_dicts         r*   ry   ry     sÏ   € ð
 	‡J�Jˆs„Oà�~‰~×+Ñ+¬NÀtÐ+ÓL€HØ×Ñ×%Ñ%Ü×Ñ Ð.>Ó?ôAà‡J�JØˆ*Ð5Ø×"Ñ" 8¨SÓ1Ð
2ð	4ôð 	‡O�O�HœnÔ-ä   s¨G°[À(ÈLÐfjÐv{Õ|à×Ñ˜(¤NÔ3Ø‡N�N×Ñ Ô)à‡J�Jˆs…Or,   c           
      ó¬  — | j                  d«       | j                  j                  t        d¬«      }| j                  |› d|j	                  «       › d| j                  ||«      › �«       | j                  |t        «       t        | |||||dd¬«       | j                  |t        «       | j                  j                  |«       | j                  d«       y)	zqGenerate function/pointer import code.

    'imports' is a list of (signature, name, imported_cname) tuples.
    r|  TrW  ú = PyImport_ImportModule(r  rÆ  r  N)
r  rè  r   r	   r$  rÝ  r!  rÃ  r›  r"  )rf   rV   r„   Úqualified_module_namer…   r¸  Ú
module_refs          r*   rƒ   rƒ   *  s»   € ð
 	‡J�Jˆs„Oà—‘×-Ñ-¬nÈÐ-ÓN€JØ‡J�JØˆ,Ð/Ð0E×0YÑ0YÓ0[Ð/\Ð\_Ø×"Ñ" :¨sÓ3Ð
4ð	6ôð 	‡O�O�J¤Ô/ä   s¨G°[À*ÈlÐhlÐx|Õ}à×Ñ˜*¤nÔ5Ø‡N�N×Ñ 
Ô+à‡J�Jˆs…Or,   c                   ó*   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zy)rf  z°
    Helper to generate module import while importing external types.
    This is used to avoid excessive re-imports of external modules when multiple types are looked up.
    Nc                 ó†   — || _         i | _        |r*|j                  «       D ]  \  }}|| j                  d|z  <   Œ g | _        y )Nz"%s")rf   ÚimportedrØ   Útemps)rY   rf   rV  ru   r=  s        r*   r[   zModuleImportGenerator.__init__G  sC   € ØˆŒ	ØˆŒÙØ/×5Ñ5Ö7‘��eØ/4�—‘˜f t™mÒ,ð  8àˆ�
r,   c           	      óR  — || j                   v r| j                   |   S | j                  }|j                  j                  t        d¬«      }| j
                  j                  |«       |j                  |›d|›d|›d|›�«       |j                  |t        «       || j                   |<   |S )NTrW  rÊ  z); if (unlikely(!r™  )	rÏ  rf   rè  r   r	   rÐ  r¤   r  r!  )rY   Úmodule_name_stringrX  rf   r%  s        r*   rð  z%ModuleImportGenerator.imported_moduleO  s�   € Ø §¡Ñ.Ø—=‘=Ð!3Ñ4Ð4à�y‰yˆØ�~‰~×+Ñ+¬NÀtÐ+ÓLˆØ�
‰
×Ñ˜$ÔØ�
‰
ÚÒ$¢d©Jð8ô 	9à�‰˜œnÔ-Ø,0ˆ�‰Ð(Ñ)Øˆr,   c                 ó   — | S r%   r˜   r�   s    r*   r  zModuleImportGenerator.__enter__\  s   € Øˆr,   c                 ó    — | j                   }| j                  D ]3  }|j                  |t        «       |j                  j                  |«       Œ5 y r%   )rf   rÐ  r›  r	   rè  r"  )rY   Úexcrf   r%  s       r*   r  zModuleImportGenerator.__exit___  s;   € Ø�y‰yˆØ—J”JˆDØ×!Ñ! $¬Ô7Ø�N‰N×'Ñ'¨Õ-ñ r,   r%   )r“   r”   r•   r–   r[   rð  r  r  r˜   r,   r*   rf  rf  B  s   „ ñóòòó.r,   rf  c                 ó¦  — | j                   xr | j                  }| j                   r| j                  s,| j                  �s|s| j                  s| j
                  dk(  s|rò| j
                  dk(  rt        j                  }d}n:| j
                  dk(  rt        j                  }d }n| j
                  dk(  rd}d }nd}d }| j                  }| j                  r|sd}d }t        |«      }|j                  | j                  |¬«      }|j                  | j                  «      }	|j                  |›d|	›|›d�«       |j                  j!                  | «       y y y )	Nrö  rq  rø   r  r  r  r7  z; /*proto*/)r  r~  Úinline_func_in_pxdr  rí   rù   r   r;  r¾   r   r<  r=  r  r  r  rv   r!  )
rÁ   rC   rf   r*  Úfrom_cy_utilityr%  r  r¾   r¹  r  s
             r*   r(  r(  f  s>  € Ø—j‘jÒB U×%BÑ%B€OØ‡z‚z�e×.Ò.°u×7HÓ7HÙ˜%×.Ò.°%×2BÑ2BÀhÒ2NÑRaØ×Ñ˜xÒ'Ü"×1Ñ1ˆMØ%‰KØ×Ñ Ò)Ü"×1Ñ1ˆMØ‰KØ×Ñ Ò*Ø$ˆMØ‰Kà$ˆMØˆKØ�z‰zˆà×Ò©
Ø$ˆMØˆKÜ˜D“>ˆDà×&Ñ&Ø�K‰K [ð 'ó 2ˆà×1Ñ1°%×2FÑ2FÓGˆ	Ø�
‰
ÚÙÚðô 	ð 	×Ñ×/Ñ/°Õ6ð7 Sbð 8Ir,   ÚRefnannyr…  zj
#if defined(__GNUC__)
#define __Pyx_PACKED __attribute__((__packed__))
#else
#define __Pyx_PACKED
#endif
rH   Úutility_code_proto_before_types)rN  rO  Úproto_block)AÚcythonÚdeclareÚobjectÚcollectionsr   r_  r  ró   r�  r   r.   Útypingr   r   r   rH   r   r   r   r   r   r   r   r   ÚErrorsr   r   r   r   r	   r   ÚUtilsr   r   r   r   r   r
   r   r    ÚStringEncodingr   r!   r"   r#   r+   r&   r5   r9   rE   r  rN   ÚNodeÚ	BlockNoderš   r­  r  rÃ  ry   rƒ   rf  r(  r�  r“  rÁ  r˜   r,   r*   Ú<module>ræ     si  ðó Ø €‡��f f¸È6Ø V¸FÐPVØ#¨õ0õ $Û Û Û 	Û Û 	Û 
Ý å  Ý Ý Ý Ý Ý Ý Ý Ý Ý ç AÓ Aß 8ß oÕ oß >Ñ >ß YÑ YÝ #ò(ò
Nòò
ò9ð, -à.à*ð .à-à*ð -à.à*ð .à-à*ñ7€÷<L ñ L ô^U<4�—‘˜UŸ_™_ô U<4òtx$ð ' t×'7Ñ'7ó 'ðT × 0Ñ 0ó ò0÷0!.ñ !.òH7ðL )˜×(Ñ(¨Ð5HÓIÐ á(ð 0ð Ð;ô=Ñ r,   