a
    ˜Æàg;i  ã                   @   sH   d dl Z d dlZd dlZddlmZ ddlmZ G dd„ deƒZdZ	dS )é    Né   )Úmodel©ÚVerificationErrorc                   @   s„  e Zd ZdZdZdd„ Zdd„ Zdd„ Zd	d
„ ZdZdd„Z	dd„ Z
d[dd„Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZeZeZeZdd„ ZeZdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Z d5d6„ Z!d7d8„ Z"d9d:„ Z#d\d=d>„Z$d?d@„ Z%eZ&d]dAdB„Z'dCdD„ Z(dEdF„ Z)dGdH„ Z*dIdJ„ Z+d^dLdM„Z,d_dNdO„Z-dPdQ„ Z.dRdS„ Z/eZ0dTdU„ Z1dVdW„ Z2eZ3dXdY„ Z4d;S )`ÚVGenericEngineÚgFc                 C   s   || _ |j| _g | _i | _d S ©N)ÚverifierÚffiÚexport_symbolsÚ_struct_pending_verification)Úselfr	   © r   úI/var/www/sistema_ama/venv/lib/python3.9/site-packages/cffi/vengine_gen.pyÚ__init__   s    zVGenericEngine.__init__c                 C   s   |  d| j¡ d S )Nr   )Ú
setdefaultr   )r   Úkwdsr   r   r   Úpatch_extension_kwds   s    z#VGenericEngine.patch_extension_kwdsc                 C   sT   |D ]J}|| }|d u rt j}|D ]*}tj ||¡}tj |¡r"|    S q"qd S r   )ÚsysÚpathÚosÚjoinÚisfile)r   Úmodule_namer   Zso_suffixesZ	so_suffixÚbasenameÚdirnameÚfilenamer   r   r   Úfind_module   s    zVGenericEngine.find_modulec                 C   s   d S r   r   ©r   r   r   r   Úcollect_types%   s    zVGenericEngine.collect_typesÚ c                 C   s   | j  |d ¡ d S )NÚ
)Ú_fÚwrite)r   Úwhatr   r   r   Ú_prnt(   s    zVGenericEngine._prntc                 C   s`   | j }|tƒ || jjƒ |  d¡ tjdkr\tjdkr>d}nd}| j ¡ }|d||f ƒ d S )NÚdeclÚwin32©é   ZPyInit_Úinitzvoid %s%s(void) { }
)	r%   Úcffimod_headerr	   ÚpreambleÚ	_generater   ÚplatformÚversion_infoZget_module_name)r   ÚprntÚprefixÚmodnamer   r   r   Úwrite_source_to_f+   s    



z VGenericEngine.write_source_to_fr   c                    sj   ˆj j}tj tjˆjj¡}| ||¡‰ˆ 	ˆd¡ G ‡ ‡‡fdd„dt
jƒ‰ ˆ dƒ}ˆj	ˆd|d� |S )NZloadingc                       s&   e Zd Z”Z”jZg Z‡ fdd„ZdS )z/VGenericEngine.load_library.<locals>.FFILibraryc                    s   ˆ j S r   )Ú	_cffi_dirr   )Ú
FFILibraryr   r   Ú__dir__T   s    z7VGenericEngine.load_library.<locals>.FFILibrary.__dir__N)Ú__name__Ú
__module__Ú__qualname__Z_cffi_generic_moduler
   Z	_cffi_ffir4   r6   r   ©r5   Úmoduler   r   r   r5   P   s   r5   r    Zloaded©Úlibrary)r
   Ú_backendr   r   r   Úcurdirr	   ZmodulefilenameÚload_libraryÚ_loadÚtypesÚ
ModuleType)r   ÚflagsÚbackendr   r=   r   r:   r   r@   A   s    zVGenericEngine.load_libraryc                 C   s$   dd„ | j jj ¡ D ƒ}| ¡  |S )Nc                 S   s   g | ]\}\}}||f‘qS r   r   )Ú.0ÚkeyÚtpZqualr   r   r   Ú
<listcomp>^   ó    z4VGenericEngine._get_declarations.<locals>.<listcomp>)r
   Ú_parserZ_declarationsÚitemsÚsort)r   Úlstr   r   r   Ú_get_declarations]   s
    ÿz VGenericEngine._get_declarationsc                 C   sž   |   ¡ D ]�\}}| dd¡\}}zt| d||f ƒ}W n tyT   td| ƒ‚Y n0 z|||ƒ W q ty– } zt ||¡ ‚ W Y d }~qd }~0 0 qd S )Nú r   z_generate_gen_%s_%sznot implemented in verify(): %r)rO   ÚsplitÚgetattrÚAttributeErrorr   Ú	Exceptionr   Úattach_exception_info)r   Ú	step_nameÚnamerH   ÚkindÚrealnameÚmethodÚer   r   r   r-   c   s    ÿÿ
zVGenericEngine._generatec           
      K   s„   |   ¡ D ]v\}}| dd¡\}}t| d||f ƒ}z||||fi |¤Ž W q ty| }	 zt |	|¡ ‚ W Y d }	~	qd }	~	0 0 qd S )NrP   r   z
_%s_gen_%s)rO   rQ   rR   rT   r   rU   )
r   r;   rV   r   rW   rH   rX   rY   rZ   r[   r   r   r   rA   r   s    zVGenericEngine._loadc                 C   s   d S r   r   ©r   rH   rW   r   r   r   Ú_generate_nothing|   s    z VGenericEngine._generate_nothingc                 K   s   d S r   r   ©r   rH   rW   r;   r   r   r   r   Ú_loaded_noop   s    zVGenericEngine._loaded_noopc                    s„  t |tjƒsJ ‚|jr(|  d||¡ d S | j}t|jƒ}g }t|jƒD ].\}}d}t |tj	ƒrbd}| 
d||f ¡ qFd| ‰ ‡ fdd„t|j|ƒD ƒ}	|j}
t |
tj	ƒrÄ|	 d|
 d	ˆ ¡¡ tj}
d
 |	¡pÐd}	d| }| j 
|¡ |jrø|jd }nd}d|||	f }d| ‰ ||
 |ˆ ¡ƒ |dƒ t |jtj	ƒ�r@d}nt |jtjƒ�sVd}nd}|d||d
 |¡f ƒ |dƒ |ƒ  d S )NFr    Ú*z%sx%dzargument of %sc                    s    g | ]\}}|  d | ˆ ¡‘qS )z %s)Ú
get_c_name)rF   ÚtypeÚarg©Úcontextr   r   rI   �   s   ÿz>VGenericEngine._generate_gen_function_decl.<locals>.<listcomp>r   z *rz, Úvoidú
_cffi_f_%srP   z	 %s%s(%s)zresult of %sÚ{z*r = zreturn z  %s%s(%s);Ú})Ú
isinstancer   ÚFunctionPtrTypeÚellipsisÚ_generate_gen_constr%   ÚlenÚargsÚ	enumerateÚStructOrUnionÚappendÚzipÚresultÚinsertra   Ú	void_typer   r   ÚabiZVoidType)r   rH   rW   r0   ZnumargsÚargnamesÚirb   ZindirectionZarglistZtpresultÚwrappernamerw   ZfuncdeclZresult_coder   rd   r   Ú_generate_gen_function_declŒ   sL    


ÿz*VGenericEngine._generate_gen_function_declc                 C   sj  t |tjƒsJ ‚|jr*|  d|||¡}�n g }|}tdd„ |jD ƒƒsVt |jtjƒ�r
g }t	|jƒD ]6\}	}
t |
tjƒr�t 
|
¡}
| |	|
f¡ | |
¡ qd|j}t |tjƒrö|jd u rÊtd| ¡ f ƒ‚t 
|¡}| d|¡ | dd|f¡ tj}t t|ƒ||j¡}| j |¡}d| }| ||¡}|D ]\}	}
|  ||	|
|¡}�q.t|||ƒ t|ƒj |¡ d S )NFc                 s   s   | ]}t |tjƒV  qd S r   )rj   r   rq   )rF   Útypr   r   r   Ú	<genexpr>Â   rJ   z6VGenericEngine._loaded_gen_function.<locals>.<genexpr>z*'%s' is used as result type, but is opaquer   rt   rg   )rj   r   rk   rl   Ú_load_constantÚanyro   rt   rq   rp   ÚPointerTyperr   ZfldtypesÚ	TypeErrorÚ_get_c_nameru   rv   Útupler
   Ú_get_cached_btypeÚload_functionÚ_make_struct_wrapperÚsetattrrb   r4   )r   rH   rW   r;   r=   ZnewfunctionZindirectionsÚbase_tpZindirect_argsry   r|   Zindirect_resultÚBFuncrz   r   r   r   Ú_loaded_gen_function»   sJ    ÿ

ÿÿ

ÿ
ÿz#VGenericEngine._loaded_gen_functionc                    sP   | j j‰| j  |¡‰ ˆdkr4| j ‰‡ ‡‡fdd„}n‡ ‡‡‡fdd„}||_|S )Nrt   c                     s"   ˆ  ˆ ¡}ˆ|g| ¢R Ž  |d S ©Nr   )Únew)ro   Úres)ÚBTyper
   Úoldfuncr   r   Únewfuncä   s    
z4VGenericEngine._make_struct_wrapper.<locals>.newfuncc                     s6   | d ˆ… ˆ  ˆ | ˆ ¡f | ˆd d …  } ˆ| Ž S )Nr   )Únewp)ro   )rŽ   rE   ry   r�   r   r   r�   é   s    .)r
   r>   r„   Z_cffi_base_type)r   r�   ry   rH   rˆ   r�   r   )rŽ   rE   r
   ry   r�   r   r†   ß   s    z#VGenericEngine._make_struct_wrapperc                 C   s    ||j ksJ ‚|  |d|¡ d S ©NÚstruct©rW   Ú_generate_struct_or_union_declr\   r   r   r   Ú_generate_gen_struct_declò   s    z(VGenericEngine._generate_gen_struct_declc                 C   s   |   |d||¡ d S r’   ©Ú_loading_struct_or_union©r   rH   rW   r;   r   r   r   Ú_loading_gen_structö   s    z"VGenericEngine._loading_gen_structc                 K   s   |   |¡ d S r   ©Ú_loaded_struct_or_unionr^   r   r   r   Ú_loaded_gen_structù   s    z!VGenericEngine._loaded_gen_structc                 C   s    ||j ksJ ‚|  |d|¡ d S ©NÚunionr”   r\   r   r   r   Ú_generate_gen_union_declü   s    z'VGenericEngine._generate_gen_union_declc                 C   s   |   |d||¡ d S rž   r—   r™   r   r   r   Ú_loading_gen_union   s    z!VGenericEngine._loading_gen_unionc                 K   s   |   |¡ d S r   r›   r^   r   r   r   Ú_loaded_gen_union  s    z VGenericEngine._loaded_gen_unionc                 C   s  |j d u rd S d||f }d||f }d||f  ¡ }| j}|d||f ƒ |dƒ |dƒ |dƒ | ¡ D ]�\}}	}
}t|	tjƒrŒ|	 ¡ s”|
dkr¢|d	| ƒ qlz$|d
|	jdd| |d�|f ƒ W ql t	yú } z|dt
|ƒ ƒ W Y d }~qld }~0 0 ql|dƒ | j |¡ |d|f ƒ |dƒ |d| ƒ |dƒ |d| ƒ |dƒ | ¡ D ]h\}}	}
}|
dk�rr�qX|d||f ƒ t|	tjƒ�r®|	jd u �r®|d|	 ¡  ƒ n|d||f ƒ �qX|dƒ |dƒ |dƒ |dƒ |d|f ƒ |dƒ |ƒ  d S )Nz_cffi_check_%s_%sú_cffi_layout_%s_%sú%s %szstatic void %s(%s *p)rh   z8  /* only to generate compile-time warnings or errors */z
  (void)p;r   z  (void)((p->%s) << 1);z  { %s = &p->%s; (void)tmp; }z*tmpzfield %r)Zqualsz
  /* %s */ri   zintptr_t %s(intptr_t i)z,  struct _cffi_aligncheck { char x; %s y; };z  static intptr_t nums[] = {z    sizeof(%s),z)    offsetof(struct _cffi_aligncheck, y),z    offsetof(%s, %s),z    0,  /* %s */z    sizeof(((%s *)0)->%s),z    -1z  };z  return nums[i];z3  /* the next line is not executed, but compiled */z  %s(0);)ÚfldnamesÚstripr%   Ú
enumfieldsrj   r   ÚPrimitiveTypeÚis_integer_typera   r   Ústrr   rr   Ú	ArrayTypeÚlengthr‚   )r   rH   r1   rW   ZcheckfuncnameÚlayoutfuncnameÚcnamer0   ÚfnameÚftypeÚfbitsizeÚfqualr[   r   r   r   r•     s\    
ÿÿþ(
z-VGenericEngine._generate_struct_or_union_declc                 C   s  |j d u rd S d||f }| j d¡d }| ||¡}g }d}	||	ƒ}
|
dk rPqd| |
¡ |	d7 }	q>t|tjƒrâ|jrâ|d }|d }|dd d… }|dd d… }| 	¡  t
|ƒt
|ƒ  krÌt
|j ƒksÒn J ‚||||f|_nd||f  ¡ }||f| j|< d S )Nr£   zintptr_t(*)(intptr_t)r   r   é   r)   r¤   )r¥   r
   Ú_typeof_lockedr…   rr   rj   r   rq   ÚpartialZforce_flattenrn   Zfixedlayoutr¦   r   )r   rH   r1   rW   r;   r­   r‰   ÚfunctionÚlayoutÚnumÚxZ	totalsizeZtotalalignmentZfieldofsZ	fieldsizer®   r   r   r   r˜   7  s*    



(z'VGenericEngine._loading_struct_or_unionc                 C   s  |j d u rd S | j |¡ || jv �rdd„ }| j}| |¡}| j |¡\}}||d | |¡dƒ ||d | |¡dƒ d}| ¡ D ]v\}}	}
}|
dkrœq†||| | ||¡d|f ƒ ||d  dkrô| |	¡}|||d  | |¡d	|f ƒ |d7 }q†|t	|ƒk�sJ ‚d S )
Nc                 S   s   | |krt d||| f ƒ‚d S )Nz'%s (we have %d, but C compiler says %d)r   )Z	realvalueZexpectedvalueÚmsgr   r   r   ÚcheckZ  s    ÿÿz5VGenericEngine._loaded_struct_or_union.<locals>.checkr   zwrong total sizer   zwrong total alignmentr³   zwrong offset for field %rzwrong size for field %r)
r¥   r
   r„   r   ÚpopÚsizeofZalignofr§   Zoffsetofrn   )r   rH   r»   r
   ZBStructr·   r®   ry   r¯   r°   r±   r²   ZBFieldr   r   r   rœ   S  s0    

ÿ
ÿ
z&VGenericEngine._loaded_struct_or_unionc                 C   s.   t |tjƒr|  ||d¡ n|  |d|¡ d S ©Nr    )rj   r   ÚEnumTypeÚ_generate_gen_enum_declr•   r\   r   r   r   Ú_generate_gen_anonymous_declu  s    z+VGenericEngine._generate_gen_anonymous_declc                 C   s2   t |tjƒr|  |||d¡ n|  |d||¡ d S r¾   )rj   r   r¿   Ú_loading_gen_enumr˜   r™   r   r   r   Ú_loading_gen_anonymous{  s    z%VGenericEngine._loading_gen_anonymousc                 K   s2   t |tjƒr$| j|||fi |¤Ž n
|  |¡ d S r   )rj   r   r¿   Ú_loaded_gen_enumrœ   r^   r   r   r   Ú_loaded_gen_anonymous�  s    z$VGenericEngine._loaded_gen_anonymousNÚconstc           
      C   sF  | j }d||f }| j |¡ |d url|s.J ‚|dks:J ‚|d| ƒ |dƒ |  ||¡ |dƒ |dƒ nÐ|r¶|dks|J ‚|d| ƒ |dƒ |d|f ƒ |d	|f ƒ |dƒ n†|d usÂJ ‚|d u sÎJ ‚|d
krÜd}nd}d}	|dk�rt|tjƒ�rd}	d}|| d|	|f |¡ƒ |dƒ |d||f ƒ |dƒ |ƒ  d S )Nz_cffi_%s_%srÆ   úint %s(char *out_error)rh   ú  return 0;ri   zint %s(long long *out_value)z  *out_value = (long long)(%s);z  return (%s) <= 0;Úvarú&r    zconst *z %s%s(void)z  return (%s%s);)r%   r   rr   Ú_check_int_constant_valuerj   r   rq   ra   )
r   Úis_intrW   rH   ÚcategoryÚcheck_valuer0   ÚfuncnameZ	ampersandÚextrar   r   r   rm   Š  s@    

z"VGenericEngine._generate_gen_constc                 C   s&   t |tjƒo| ¡ }|  |||¡ d S r   )rj   r   r¨   r©   rm   )r   rH   rW   rÌ   r   r   r   Ú_generate_gen_constant_decl¯  s    z*VGenericEngine._generate_gen_constant_declc                 C   s  d| }|d ur*|sJ ‚|   ||¡ |}nê|r°| j d¡d }| j d¡d }	| |	|¡}
| j |¡}|
|ƒ}t|d ƒ}|dk r®|s®| j d¡d }|dd| j |¡ > 7 }nd|d u s¼J ‚d}t|tj	ƒrÔd	| }| j | 
||¡¡d }	| |	|¡}
|
ƒ }t|tj	ƒ�r|d }|S )
Nz_cffi_const_%sz
long long*r   zint(*)(long long*)z	long longr   é   z	(*)(void)r`   )Ú_load_known_int_constantr
   r´   r…   rŒ   Úintr½   rj   r   rq   ra   )r   rÌ   rH   rW   r;   rÎ   rÏ   ÚvaluerŽ   r‰   r¶   ÚpÚnegativeZ	BLongLongZfntypeextrar   r   r   r~   µ  s2    zVGenericEngine._load_constantc                 C   sD   t |tjƒo| ¡ }|  ||||¡}t|||ƒ t|ƒj |¡ d S r   )	rj   r   r¨   r©   r~   r‡   rb   r4   rr   )r   rH   rW   r;   r=   rÌ   rÕ   r   r   r   Ú_loaded_gen_constantÑ  s    z#VGenericEngine._loaded_gen_constantc                 C   sœ   | j }|dkr"|d|||f ƒ n|d|||f ƒ |dƒ |d| ƒ |d| ƒ |dƒ |d| ƒ |d	ƒ |d
|d d… |f ƒ |dƒ |dƒ d S )Nr   z&  if ((%s) > 0 || (long)(%s) != %dL) {z1  if ((%s) <= 0 || (unsigned long)(%s) != %dUL) {z    char buf[64];z    if ((%s) <= 0)z)        sprintf(buf, "%%ld", (long)(%s));z    elsez2        sprintf(buf, "%%lu", (unsigned long)(%s));z:    sprintf(out_error, "%s has the real value %s, not %s",z            "%s", buf, "%d");éd   z    return -1;z  })r%   )r   rW   rÕ   r0   r   r   r   rË   Ú  s&    ÿ
ÿÿz(VGenericEngine._check_int_constant_valuec                 C   sr   | j  d¡d }| j  d¡d }| ||¡}| j  |d¡}||ƒdk rn| j  |¡}tjdkrft|dƒ}t|ƒ‚d S )Nzchar[]r   zint(*)(char*)é   r(   zutf-8)	r
   r´   r…   rŒ   Ústringr   r/   rª   r   )r   r;   rÏ   rŽ   r‰   r¶   rÖ   Úerrorr   r   r   rÓ   í  s    

z'VGenericEngine._load_known_int_constantc                 C   s   |  dd¡}d||f S )Nú$Z___D_z_cffi_e_%s_%s)Úreplace)r   r1   rW   r   r   r   Ú_enum_funcnameø  s    zVGenericEngine._enum_funcnameÚenumc                 C   s’   |j r"|jD ]}|  d|¡ qd S |  ||¡}| j |¡ | j}|d| ƒ |dƒ t|j|jƒD ]\}}|  	||¡ qb|dƒ |dƒ |ƒ  d S )NTrÇ   rh   rÈ   ri   )
rµ   Úenumeratorsrm   rß   r   rr   r%   rs   Ú
enumvaluesrË   )r   rH   rW   r1   Ú
enumeratorrÏ   r0   Ú	enumvaluer   r   r   rÀ   ý  s    
z&VGenericEngine._generate_gen_enum_declc                    sL   ˆj r0‡ ‡‡fdd„ˆjD ƒ}t|ƒˆ_dˆ_nˆ ||¡}ˆ ˆ |¡ d S )Nc                    s   g | ]}ˆ  d ˆ|ˆ ¡‘qS )T)r~   )rF   rã   ©r;   r   rH   r   r   rI     s   ÿz4VGenericEngine._loading_gen_enum.<locals>.<listcomp>T)rµ   rá   rƒ   râ   Zpartial_resolvedrß   rÓ   )r   rH   rW   r;   r1   râ   rÏ   r   rå   r   rÂ     s    ÿ
z VGenericEngine._loading_gen_enumc                 C   s8   t |j|jƒD ]$\}}t|||ƒ t|ƒj |¡ qd S r   )rs   rá   râ   r‡   rb   r4   rr   )r   rH   rW   r;   r=   rã   rä   r   r   r   rÄ     s    zVGenericEngine._loaded_gen_enumc                 C   s&   |dkrd }n|}| j d||d� d S ©Nz...T)rÎ   )rm   )r   rH   rW   rÎ   r   r   r   Ú_generate_gen_macro_decl   s    z'VGenericEngine._generate_gen_macro_declc                 C   sF   |dkrd }n|}| j d||||d�}t|||ƒ t|ƒj |¡ d S ræ   )r~   r‡   rb   r4   rr   )r   rH   rW   r;   r=   rÎ   rÕ   r   r   r   Ú_loaded_gen_macro)  s    ÿz VGenericEngine._loaded_gen_macroc                 C   s–   t |tjƒrv| ¡ rZ| j}d|f }| j |¡ |d| ƒ |dƒ |d|f ƒ |dƒ t |j¡}|  	d||¡ nt |¡}| j	d||dd� d S )	Nú_cffi_sizeof_%szsize_t %s(void)rh   z  return sizeof(%s);ri   FrÉ   )rÍ   )
rj   r   r«   Úlength_is_unknownr%   r   rr   r€   Úitemrm   )r   rH   rW   r0   rÏ   Útp_ptrr   r   r   Ú_generate_gen_variable_decl6  s    

z*VGenericEngine._generate_gen_variable_declc                    s\  t |tjƒrè| ¡ rˆd|f }| j d¡d }| ||¡}|ƒ }| j |j¡}	t	|| j 
|	¡ƒ\}
}|dkr~td||jf ƒ‚| |
¡}t |j¡}|  d|||¡}|jd urÈ| j |¡}| j ||¡}t|||ƒ t|ƒj |¡ d S d| }| j | d|¡¡d }| ||¡}|ƒ ‰ ‡ fdd	„}‡ fd
d„}tt|ƒ|t||ƒƒ t|ƒj |¡ d S )Nré   zsize_t(*)(void)r   z/bad size: %r does not seem to be an array of %sFz_cffi_var_%sz
*(*)(void)c                    s   ˆ d S r‹   r   r<   ©Úptrr   r   Úgetterg  s    z3VGenericEngine._loaded_gen_variable.<locals>.getterc                    s   |ˆ d< d S r‹   r   )r=   rÕ   rî   r   r   Úsetteri  s    z3VGenericEngine._loaded_gen_variable.<locals>.setter)rj   r   r«   rê   r
   r´   r…   r„   rë   Údivmodr½   r   Zresolve_lengthr€   r~   r¬   Úcastr‡   rb   r4   rr   ra   Úproperty)r   rH   rW   r;   r=   rÏ   r‰   r¶   ÚsizeZ	BItemTyper¬   Úrestrì   rÕ   ZBArrayrð   rñ   r   rî   r   Ú_loaded_gen_variableH  s>    
ÿÿ

z#VGenericEngine._loaded_gen_variable)r    )r   )NrÆ   N)N)rà   )rà   )5r7   r8   r9   Z
_class_keyZ_gen_python_moduler   r   r   r   r%   r3   r@   rO   r-   rA   r]   r_   Z_generate_gen_typedef_declZ_loading_gen_typedefZ_loaded_gen_typedefr{   Z_loading_gen_functionrŠ   r†   r–   rš   r�   r    r¡   r¢   r•   r˜   rœ   rÁ   rÃ   rÅ   rm   rÑ   Z_loading_gen_constantr~   rØ   rË   rÓ   rß   rÀ   rÂ   rÄ   rç   Z_loading_gen_macrorè   rí   Z_loading_gen_variabler÷   r   r   r   r   r      sh   



-$1"	  ÿ
%
	


r   ac  
#include <stdio.h>
#include <stddef.h>
#include <stdarg.h>
#include <errno.h>
#include <sys/types.h>   /* XXX for ssize_t on some platforms */

/* this block of #ifs should be kept exactly identical between
   c/_cffi_backend.c, cffi/vengine_cpy.py, cffi/vengine_gen.py
   and cffi/_cffi_include.h */
#if defined(_MSC_VER)
# include <malloc.h>   /* for alloca() */
# if _MSC_VER < 1600   /* MSVC < 2010 */
   typedef __int8 int8_t;
   typedef __int16 int16_t;
   typedef __int32 int32_t;
   typedef __int64 int64_t;
   typedef unsigned __int8 uint8_t;
   typedef unsigned __int16 uint16_t;
   typedef unsigned __int32 uint32_t;
   typedef unsigned __int64 uint64_t;
   typedef __int8 int_least8_t;
   typedef __int16 int_least16_t;
   typedef __int32 int_least32_t;
   typedef __int64 int_least64_t;
   typedef unsigned __int8 uint_least8_t;
   typedef unsigned __int16 uint_least16_t;
   typedef unsigned __int32 uint_least32_t;
   typedef unsigned __int64 uint_least64_t;
   typedef __int8 int_fast8_t;
   typedef __int16 int_fast16_t;
   typedef __int32 int_fast32_t;
   typedef __int64 int_fast64_t;
   typedef unsigned __int8 uint_fast8_t;
   typedef unsigned __int16 uint_fast16_t;
   typedef unsigned __int32 uint_fast32_t;
   typedef unsigned __int64 uint_fast64_t;
   typedef __int64 intmax_t;
   typedef unsigned __int64 uintmax_t;
# else
#  include <stdint.h>
# endif
# if _MSC_VER < 1800   /* MSVC < 2013 */
#  ifndef __cplusplus
    typedef unsigned char _Bool;
#  endif
# endif
# define _cffi_float_complex_t   _Fcomplex    /* include <complex.h> for it */
# define _cffi_double_complex_t  _Dcomplex    /* include <complex.h> for it */
#else
# include <stdint.h>
# if (defined (__SVR4) && defined (__sun)) || defined(_AIX) || defined(__hpux)
#  include <alloca.h>
# endif
# define _cffi_float_complex_t   float _Complex
# define _cffi_double_complex_t  double _Complex
#endif
)
r   r   rB   r    r   rÜ   r   Úobjectr   r+   r   r   r   r   Ú<module>   s       g