HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //snap/certbot/current/lib/python3.12/site-packages/cffi/__pycache__/vengine_cpy.cpython-312.pyc
�

�F�h���J�ddlZddlmZddlmZddlmZGd�de�ZdZ	y)	�N�)�model��VerificationError)�_imp_emulationc��eZdZdZdZd�Zd�Zd�Zd�Zd7d�Z	d�Z
d	�Zd
�Zd8d�Z
d
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZeZeZeZeZeZd�Zd�Zd�ZeZd�Z eZ!d�Z"d�Z#d�Z$d�Z%eZ&d�Z'd�Z(d �Z)d!�Z*d"�Z+d#�Z,d$�Z-d%�Z.eZ/d&�Z0d'�Z1d(�Z2d)�Z3			d9d*�Z4d+�Z5d,�Z6eZ7eZ8eZ9d7d-�Z:d.�Z;d:d/�Z<eZ=eZ>d0�Z?d1�Z@d2�ZAeZBeZCeZDeZEd3�ZFd4�ZGeZHeZId5�ZJd6�ZKy);�VCPythonEngine�xTc�P�||_|j|_i|_i|_y�N)�verifier�ffi�_struct_pending_verification�_types_of_builtin_functions)�selfr
s  ��/build/snapcraft-certbot-c9aaebe726f8beb59a0eb2d8e1671bc4/parts/certbot/install/lib/python3.12/site-packages/cffi/vengine_cpy.py�__init__zVCPythonEngine.__init__s$�� ��
��<�<���,.��)�+-��(�c��yr�)r�kwdss  r�patch_extension_kwdsz#VCPythonEngine.patch_extension_kwds���rc��	tj||�\}}}|�|j�|d|vry|S#t$rYywxYw�Nr)�imp�find_module�ImportError�close)r�module_name�path�so_suffixes�f�filename�descrs       rrzVCPythonEngine.find_modulesX��	�!$����d�!C��A�x��
�=�
�G�G�I���8�;�&������	��	�s�8�	A�Ac�4�i|_|jd�y)N�collecttype)�
_typesdict�	_generate)rs r�
collect_typeszVCPythonEngine.collect_types%s��������}�%rc�@�|jj|dz�y)N�
)�_f�write)r�whats  r�_prntzVCPythonEngine._prnt)s�����
�
�d�T�k�"rc� �|j|Sr)r()r�types  r�_gettypenumzVCPythonEngine._gettypenum,s�����t�$�$rc��t|tj�r|jdk(r4||jvr%t|j�}||j|<yyy)N�long double)�
isinstancer�
PrimitiveType�namer(�len)r�tp�nums   r�_do_collect_typezVCPythonEngine._do_collect_type0sP���B�� 3� 3�4����=�(��d�o�o�-��d�o�o�&�C�"%�D�O�O�B��.�)rc�j�|j�ddg|_|j}|t�|�||jj
�|�|j
d�|j�|�|d�|j
d�|d�|d�|d�|�|jj�}|jd}|d	�|�|d
�|d�|d|z�|d
�|d�|d�|d�|d�|�|d�|d|z�|d�|d�|d�|d�|d�|d|�d��|d�|d�|d�|d�|d�|�|d�|�|d�|d|z�|d�|d�|d |z�|d�|d!�|d|�d"��|d!�|d#�|d�|�|d$�y)%Nz
((void)lib,0)�declz&static PyMethodDef _cffi_methods[] = {�methodz3  {"_cffi_setup", _cffi_setup, METH_VARARGS, NULL},z)  {NULL, NULL, 0, NULL}    /* Sentinel */z};Fz#if PY_MAJOR_VERSION >= 3z.static struct PyModuleDef _cffi_module_def = {z  PyModuleDef_HEAD_INIT,z  "%s",z  NULL,z  -1,z  _cffi_methods,z  NULL, NULL, NULL, NULL�PyMODINIT_FUNCzPyInit_%s(void)�{z  PyObject *lib;z+  lib = PyModule_Create(&_cffi_module_def);z  if (lib == NULL)�    return NULL;�  if (z < 0 || _cffi_init() < 0) {z    Py_DECREF(lib);�  }z
  return lib;�}z#elsezinit%s(void)z+  lib = Py_InitModule("%s", _cffi_methods);z    return;z < 0 || _cffi_init() < 0)z	  return;z#endif)	r*�_chained_list_constantsr0�cffimod_headerr
�preambler)�_generate_setup_custom�get_module_name)r�prnt�modname�	constantss    r�write_source_to_fz VCPythonEngine.write_source_to_f7s������")8��'I��$��z�z���^�����T�]�]�
#�
#�$���	
���v��	
�#�#�%���
	
�
5�6����x� ��
B�C��
8�9��T�
����-�-�/�/�1���0�0��7�	��
(�)����
=�>��
'�(��Y��
 �!��Y���W�
��
� ��
'�(��T�
����
���
��
(�)��S�	��
� ��
:�;��
!�"��
� ��i�
A�B��
"�#��
� ��U���_���S�	����W�
����
���^�g�
%�&��S�	��
� ��
:�W�
D�E��
!�"��]���I�
?�@��]���[���S�	����X�rNc�2���
�tj�	ttd�rtj�}	ttd�r|�tj
|�tj�jj��jj��
	ttd�rtj
�	tj��j�
d�t�jj!�D��cgc]	\}}||f��c}}�}t#t%|��D�cgc]}||��	}	}t't)�j*j,|	��}	G��
�fd�dt.����}
�
j1|	t|
�r0ddl}|j5d	�jj�z��j�
d
|
���j*�
_�j8�
_|
S#t$r,}d�jj�d|��}t|��d}~wwxYw#ttd�rtj
�wwxYw#tj�wxYwcc}}wcc}w)N�getdlopenflags�setdlopenflagsz
importing z: �loadingc�<��eZdZW�ZW�jZgZ�fd�Zy)�/VCPythonEngine.load_library.<locals>.FFILibraryc�H���jt|j�zSr)�	_cffi_dir�list�__dict__)r�
FFILibrarys �r�__dir__z7VCPythonEngine.load_library.<locals>.FFILibrary.__dir__�s���!�+�+�d�4�=�=�.A�A�ArN)�__name__�
__module__�__qualname__�_cffi_python_moduler�	_cffi_ffirVrZ)rY�modulers���rrYrT�s���"(�����I��I�
BrrYrz0reimporting %r might overwrite older definitions�loaded)�library)r�acquire_lock�hasattr�sysrPrQ�load_dynamicr
rJ�modulefilenamerr�release_lock�_load�dictr(�items�ranger9rW�mapr�_get_cached_btype�object�_cffi_setup�warnings�warn�_cffi_original_ffir�_cffi_types_of_builtin_funcs)r�flags�previous_flags�e�error�key�value�
revmapping�i�lstrbrqrYr`s`           @@r�load_libraryzVCPythonEngine.load_library�s���	����	��s�,�-�!$�!3�!3�!5��

7��3� 0�1�e�6G��&�&�u�-��)�)�$�-�-�*G�*G�*I�*.�-�-�*F�*F�H���3� 0�1��&�&�~�6�����	
�
�
�6�9�%��/3���/D�/D�/F�H�+��U�"�3�<�H�I�
�&+�C�
�O�&<�=��z�!�}�=��=��3�t�x�x�1�1�3�7�8��	B�	B��	B��,�����c�#4�g�>���M�M�L�!�]�]�:�:�<�>�
?�	
�
�
�6�8�W�
�5�$(�H�H��!�.2�.N�.N��+����Y�
/�.2�m�m�.J�.J�A�N��'��.�.��
/���3� 0�1��&�&�~�6�2��
�����H��=sG�$I5�A)H�(&I5�J
�J�	I�'I�I�I
�
(I2�2I5�5Jc���|jjjj�D���cgc]\}\}}||f��}}}}|j	�|Scc}}}wr)r�_parser�
_declarationsrk�sort)rryr:�qualr}s     r�_get_declarationsz VCPythonEngine._get_declarations�s^�� $��� 0� 0� >� >� D� D� F�H�H�.�c�:�B���R�y�H��H����
��
��Hs�Ac��|j�D]7\}}|jdd�\}}	t|d|�d|���}	|||��9y#t$rt	d|z��wxYw#t
$r}t
j||��d}~wwxYw)N� r�_generate_cpy_�_znot implemented in verify(): %r)r��split�getattr�AttributeErrorr�	Exceptionr�attach_exception_info)r�	step_namer8r:�kind�realnamer?rws        rr)zVCPythonEngine._generate�s����.�.�0�	�H�D�"�!�Z�Z��Q�/�N�D�(�
>� ���@I�(K�L��

��r�8�$�	��
"�
>�'�5��<�>�>�
>��
�
��+�+�A�t�4���
�s#�A�	A'�A$�'	B�0B�Bc���|j�D]8\}}|jdd�\}}t|d|�d|���}	||||fi|���:y#t$r}	t	j
|	|��d}	~	wwxYw)Nr�rr��_cpy_)r�r�r�r�rr�)
rr`r�rr8r:r�r�r?rws
          rrizVCPythonEngine._load�s~���.�.�0�	�H�D�"�!�Z�Z��Q�/�N�D�(��T�9�d�#C�D�F�
��r�8�V�4�t�4�		��
�
��+�+�A�t�4���
�s�A
�
	A2�A-�-A2c��yrr�rr:r8s   r�_generate_nothingz VCPythonEngine._generate_nothing�rrc��yrr�rr:r8r`rs     r�_loaded_noopzVCPythonEngine._loaded_noop�rrc
��d}t|tj�r�|j�r!|jdk7rd}d|jz}nL|j�rt
d��d|jd��d|jjdd	���}d
}n�t|tj�r|j||||�yt|tjtjf�r;|jd||j|�|fz�|jd|z�yt|tj�r+d
|jd�z}d|j|�z}d}nt!|��|jd|�d|�d|�|�d��|jd|�d|jd��d|�d��|jd|z�y)N��_Bool�_cffi_to_c_intz, %sz*not implemented in verify(): complex types�(z)_cffi_to_c_r�r�z-1z6  if (_cffi_to_c((char *)&%s, _cffi_type(%d), %s) < 0)z    %s;z(%s)_cffi_to_c_pointerz, _cffi_type(%d)�NULL�  z = �);rCz == (�)z && PyErr_Occurred()))r6rr7�is_integer_typer8�is_complex_typer�
get_c_name�replace�PointerType�"_convert_funcarg_to_c_ptr_or_array�
StructOrUnion�EnumTyper0r3�FunctionPtrType�NotImplementedError)rr:�fromvar�tovar�errcode�extraarg�	converter�errvalues        r�_convert_funcarg_to_cz$VCPythonEngine._convert_funcarg_to_c�s������b�%�-�-�.��!�!�#����7�(:�,�	�!�B�G�G�+���#�#�%�'�@�B�B�&�46�=�=��3D�35�7�7�?�?�3��3L�N�	��H�
��E�-�-�
.��3�3�B��49�7�
D��
��U�0�0�%�.�.�A�
B��J�J�O��� 0� 0�� 4�g�>�?�
@��J�J�y�7�*�+��
��E�1�1�
2�0�2�=�=��3D�D�I�)�D�,<�,<�R�,@�@�H��H�&�b�)�)��
�
��	�7�H�M�N��
�
��2�=�=��$�h�0�	1��
�
�9�w�&�'rc��t|tj�r4|jd�|jd�|jd�yy)NzPy_ssize_t datasizez-struct _cffi_freeme_s *large_args_free = NULLzIif (large_args_free != NULL) _cffi_free_array_arguments(large_args_free);)r6rr��add)rr:�	localvars�	freeliness    r�_extra_local_variablesz%VCPythonEngine._extra_local_variablessD���b�%�+�+�,��M�M�/�0��M�M�I�J��M�M�J�
K�-rc�v�|jd�|jd|j|�||fz�|jd�|jd|�d��|jd|j|�||fz�|jd�|jd|z�|jd	�y)
Nz1  datasize = _cffi_prepare_pointer_call_argument(z(      _cffi_type(%d), %s, (char **)&%s);z  if (datasize != 0) {z    z? = ((size_t)datasize) <= 640 ? alloca((size_t)datasize) : NULL;zF    if (_cffi_convert_array_argument(_cffi_type(%d), %s, (char **)&%s,z,            datasize, &large_args_free) < 0)z	      %s;rD)r0r3)rr:r�r�r�s     rr�z1VCPythonEngine._convert_funcarg_to_c_ptr_or_array!s����
�
�F�G��
�
�=����R� �'�5�A2�2�	3��
�
�+�,��
�
�9>�A�	B��
�
�#�&*�&6�&6�r�&:�G�U�%K�L�	M��
�
�A�B��
�
�;��(�)��
�
�5�rc�r�t|tj�rz|j�r"|jdk7rd|�d|j�d�S|jdk7r#d|jjdd��d	|�d�Sd
||j
|�fzSt|tjtjf�rd||j
|�fzSt|tj�r3d||j
tj|j��fzSt|tj�rB|j� td|j��d
|�d���d||j
|�fzSt|tj�rd
||j
|�fzSt!|��)Nr�z_cffi_from_c_int(�, r�r5�
_cffi_from_c_r�r�r�z/_cffi_from_c_deref((char *)&%s, _cffi_type(%d))z0_cffi_from_c_pointer((char *)%s, _cffi_type(%d))�'z
' is used as z, but is opaquez0_cffi_from_c_struct((char *)&%s, _cffi_type(%d)))r6rr7r�r8r�r3r�r��	ArrayType�itemr��fldnames�	TypeError�_get_c_namer�r�)rr:�var�contexts    r�_convert_expr_from_cz#VCPythonEngine._convert_expr_from_c.s����b�%�-�-�.��!�!�#����7�(:�58�"�'�'�B�B����M�)�02������S�0I�3�O�O�H���)�)�"�-�L/�/�/�
��U�.�.��0E�0E�F�
G�E��T�%�%�b�)�I+�+�
+�
��E�O�O�
,�E��T�%�%�e�&7�&7����&@�A�IC�C�
C�
��E�/�/�
0��{�{�"���N�N�$�g�!/�0�0�E��T�%�%�b�)�I+�+�
+�
��E�N�N�
+�D��T�%�%�b�)�H+�+�
+�&�b�)�)rc���t|tj�sJ�|jr|j	|�y|j
D]}|j	|��|j	|j�yr)r6rr��ellipsisr<�args�result)rr:r8r2s    r�"_generate_cpy_function_collecttypez1VCPythonEngine._generate_cpy_function_collecttypeUsb���"�e�3�3�4�4�4�
�;�;��!�!�"�%����
,���%�%�d�+�
,��!�!�"�)�)�,rc��t|tj�sJ�|jr|j	d||�y|j
}t
|j�}|dk(rd}n
|dk(rd}nd}|d�|d|�d	|�d
��|d�d|z}t|j�D]#\}}|d
|jd|z|�z��%t�}	t�}
|jD]}|j||	|
��t|	�D]}|d|�d���t|jtj�s5d}d|z}|d
|jjd|�z�|d�nd}t
|j�dkDrttt
|j��}
|
D]
}|d|z��|�|dd|z�d|�ddj!|
D�cgc]}d|z��	c}��d��|d�|�t|j�D]&\}}|j#|d|zd |zd!�|��(|d"�|d#�|d$|�|�d%dj!tt
|j��D�cgc]}d |z��	c}��d&��|d'�|d(�|�|d)�|dk(r|d*�|rA|d+|j%|jd,d-�z�|
D]
}|d|z��|d.�n"|
D]
}|d|z��|d/�|d0�|d1�|�ycc}wcc}w)2NFr�noargr�arg0r��static PyObject *�_cffi_f_z(PyObject *self, PyObject *r�rAzargument of %s�  %s;z x%dr��;z	result = zresult of %sz resultz  PyObject *pyresult;r�z  PyObject *arg%d;z  if (!PyArg_ParseTuple(args, "�O�:�", r�z&arg%dz))rBzarg%dzx%dzreturn NULLz  Py_BEGIN_ALLOW_THREADSz  _cffi_restore_errno();�  { r�z); }z  _cffi_save_errno();z  Py_END_ALLOW_THREADS�  (void)self; /* unused */�  (void)noarg; /* unused */z  pyresult = %s;r�zresult typez  return pyresult;z  Py_INCREF(Py_None);z  return Py_None;rE)r6rr�r��_generate_cpy_constr0r9r��	enumerater��setr��sortedr��VoidTyperl�joinr�r�)rr:r8rK�numargs�argnamer�r|r2r�r�r>�result_code�rng�freelines               r�_generate_cpy_function_declz*VCPythonEngine._generate_cpy_function_decl`sI���"�e�3�3�4�4�4�
�;�;�
�$�$�U�D�"�5���z�z���b�g�g�,���a�<��G�
��\��G��G��
 �!��4��
I�J��S�	�"�T�)�� ����)�	A�G�A�t���4�?�?�6�A�:�w�?�?�@�	A��E�	��E�	��G�G�	D�D��'�'��i��C�	D��9�%�	$�D��D�"�#�	$��"�)�)�U�^�^�4�%�K�$�t�+�G���2�9�9�/�/�	�7�C�C�D��(�)��K��r�w�w�<�!����B�G�G��%�C��
/���)�A�-�.�
/��F���g�
�t�T�Y�Y�c�/J���1��/J�%K�M�
N��#�$��� ����)�	�G�A�t��&�&�t�W�q�[�%�!�)�'4�
6��F�	�
	
�
'�(��
'�(�����I�I�%��B�G�G��*=�>�Q�u�q�y�>�?�A�	B�	
�
$�%��
%�&����
)�*��a�<��.�/���#��*�*�2�9�9�h�
�N�O�
P�%�
&���T�H�_�%�
&��%�&�%�
&���T�H�_�%�
&��(�)��$�%��S�	����C0K��?s�(M
�Mc	��|jryt|j�}|dk(rd}n
|dk(rd}nd}|jd|�d|�d|�d	��y)
Nr�METH_NOARGSr�METH_O�METH_VARARGS�  {"z", _cffi_f_r�z, NULL},)r�r9r�r0)rr:r8r��meths     r�_generate_cpy_function_methodz,VCPythonEngine._generate_cpy_function_method�sI��
�;�;���b�g�g�,���a�<� �D�
��\��D�!�D��
�
��d�D�I�Jrc�n�|jryt||�}t|||�||j|<yr)r�r��setattrr)rr:r8r`rb�funcs      r�_loaded_cpy_functionz#VCPythonEngine._loaded_cpy_function�s4��
�;�;���v�t�$�����t�$�13��(�(��.rc�L�||jk(sJ�|j|d|�y�N�struct�r8�_generate_struct_or_union_declr�s   r�_generate_cpy_struct_declz(VCPythonEngine._generate_cpy_struct_decl�s$���r�w�w�����+�+�B��$�?rc�*�|j|d|�yr��� _generate_struct_or_union_methodr�s   r�_generate_cpy_struct_methodz*VCPythonEngine._generate_cpy_struct_method�s���-�-�b�(�D�Arc�,�|j|d||�yr���_loading_struct_or_union�rr:r8r`s    r�_loading_cpy_structz"VCPythonEngine._loading_cpy_struct�s���%�%�b�(�D�&�Arc�&�|j|�yr��_loaded_struct_or_unionr�s     r�_loaded_cpy_structz!VCPythonEngine._loaded_cpy_struct�����$�$�R�(rc�L�||jk(sJ�|j|d|�y�N�unionr�r�s   r�_generate_cpy_union_declz'VCPythonEngine._generate_cpy_union_decl�s$���r�w�w�����+�+�B���>rc�*�|j|d|�yrr�r�s   r�_generate_cpy_union_methodz)VCPythonEngine._generate_cpy_union_method�s���-�-�b�'�4�@rc�,�|j|d||�yrr�r�s    r�_loading_cpy_unionz!VCPythonEngine._loading_cpy_union�s���%�%�b�'�4��@rc�&�|j|�yrr�r�s     r�_loaded_cpy_unionz VCPythonEngine._loaded_cpy_union�rrc	�<�|j�yd|�d|��}d|�d|��}|�d|��j�}|j}|d|�d|�d��|d�|d	�|d
�|j�D]g\}}	}
}t	|	t
j�r|	j�s|
dk\r|d|z��C	|d
|	jdd|z|���d|�d���i|d�|d�||�d��|d�|d|z�|d�|d|z�|d�|j�D]k\}}	}
}|
dk\r�|d|�d|�d��t	|	t
j�r&|	j�|d|	j�z��]|d|�d |�d���m|d!�|d"�|d#�|d$�|d%�|d&�|d'|�d(��|d�|�y#t$r}|dt|�z�Yd}~���d}~wwxYw))N�_cffi_check_r��
_cffi_layout_r�zstatic void r�z *p)rAz8  /* only to generate compile-time warnings or errors */z
  (void)p;rz  (void)((p->%s) << 1);r�z*tmpzfield %r)�qualsz = &p->z; (void)tmp; }z
  /* %s */rEr�z!(PyObject *self, PyObject *noarg)z,  struct _cffi_aligncheck { char x; %s y; };z  static Py_ssize_t nums[] = {z    sizeof(%s),z)    offsetof(struct _cffi_aligncheck, y),z
    offsetof(r�z),z    0,  /* %s */z
    sizeof(((z *)0)->z    -1z  };r�r�z'  return _cffi_get_struct_layout(nums);z3  /* the next line is not executed, but compiled */r�z(0);)r��stripr0�
enumfieldsr6rr7r�r�r�strr��lengthr�)
rr:�prefixr8�
checkfuncname�layoutfuncname�cnamerK�fname�ftype�fbitsize�fqualrws
             rr�z-VCPythonEngine._generate_struct_or_union_decl�s��
�;�;����/5�t�<�
�17��>��"�D�)�0�0�2���z�z���
�u�
=�>��S�	��
G�H��\��-/�]�]�_�	0�)�E�5�(�E��5�%�"5�"5�6��)�)�+��A�
��.��6�7�0���(�(���E�1A��(�O��� �	0�	
�S�	��
 �!��n�
F�G��S�	��
;�e�
C�D��
-�.��
��
&�'��
8�9�-/�]�]�_�	D�)�E�5�(�E��1�}���E�5�9�:��%����1�e�l�l�6J��'�%�*;�*;�*=�=�>��U�E�B�C�	D�	
�X���V���
)�*��
*�+��
6�7��
B�C��=�
*�+��S�	����5)�0����A��.�/�/��0�s�:$G3�3	H�<H�Hc�^�|j�yd|�d|��}|jd|�d|�d��y)Nrr�r�r�z, METH_NOARGS, NULL},)r�r0)rr:rr8rs     rr�z/VCPythonEngine._generate_struct_or_union_methods6��
�;�;����17��>���
�
��9G�I�	Jrc���|j�yd|�d|��}t||�}|�}t|tj�rw|j
rk|d}|d}	|ddd�}
|ddd�}|j
�t|
�t|�cxk(rt|j�k(sJ�J�|
|||	f|_y|�d|��j�}||f|j|<y)Nrr�rr��r�)r�r�r6rr��partial�
force_flattenr9�fixedlayoutrr)
rr:rr8r`r�function�layout�	totalsize�totalalignment�fieldofs�	fieldsizers
             rr�z'VCPythonEngine._loading_struct_or_unions���
�;�;����17��>���6�>�2������b�%�-�-�.�2�:�:��q�	�I�#�A�Y�N��a�d��d�|�H��q�t�!�t��I������x�=�C�	�N�F�c�"�+�+�6F�F�F�F�F�F�%�y�)�^�K�B�N� &��-�4�4�6�E�4:�E�M�D�-�-�b�1rc��|j�y|jj|�||jv�rd�}|j}|j|�}|jj	|�\}}||d|j|�d�||d|j
|�d�d}|j�D]p\}}	}
}|
dk\r�||||j||�d|���||dzdk7r3|j|	�}|||dz|j|�d|���|dz
}�r|t|�k(sJ�yy)	Nc�0�||k7rtd|||fz��y)Nz'%s (we have %d, but C compiler says %d)r)�	realvalue�
expectedvalue�msgs   r�checkz5VCPythonEngine._loaded_struct_or_union.<locals>.check4s.���
�-�+�A��
�y�9�:�;�;�.rrzwrong total sizerzwrong total alignmentrzwrong offset for field zwrong size for field )
r�rrnr�pop�sizeof�alignofr�offsetofr9)
rr:r.r�BStructr$rr|rrrr�BFields
             rr�z&VCPythonEngine._loaded_struct_or_union-sQ��
�;�;������"�"�2�&�
��2�2�2�
;�
�(�(�C��+�+�B�/�G� �=�=�A�A�"�E�M�F�E��&��)�S�Z�Z��0�2D�E��&��)�S�[�[��1�3J�K��A�13����	
�-��u�h���q�=���f�Q�i����g�u�!=�5:�<�>��!�A�#�;�!�#� �2�2�5�9�F��&��1��+�s�z�z�&�'9�7<�>�@��Q���	
���F��#�#�#�/3rc��t|tj�r|j||d�y|j	|d|�y�Nr�)r6rr��_generate_cpy_enum_declr�r�s   r�_generate_cpy_anonymous_declz+VCPythonEngine._generate_cpy_anonymous_declQs4���b�%�.�.�)��(�(��T�2�6��/�/��B��=rc�`�t|tj�s|j|d|�yyr6)r6rr�r�r�s   r�_generate_cpy_anonymous_methodz-VCPythonEngine._generate_cpy_anonymous_methodWs'���"�e�n�n�-��1�1�"�b�$�?�.rc��t|tj�r|j|||�y|j	|d||�yr6)r6rr��_loading_cpy_enumr�r�s    r�_loading_cpy_anonymousz%VCPythonEngine._loading_cpy_anonymous[s6���b�%�.�.�)��"�"�2�t�V�4��)�)�"�b�$��?rc��t|tj�r|j|||fi|��y|j	|�yr)r6rr��_loaded_cpy_enumr�r�s     r�_loaded_cpy_anonymousz$VCPythonEngine._loaded_cpy_anonymousas7���b�%�.�.�)�!�D�!�!�"�d�F�;�d�;��(�(��,rc	���|j}	d|�d|��}
|	d|
z�|	d�|	d�|	d�|s |	d|xs|jd|�z�n|d	k(sJ�|�|j||�|s:|d
k(rd|z}n|}|	d|�d
��|	d|j|dd��d��|s
J�|	d|z�|	d�|	d�|r<|	d�|	d�|	d|�d��|	d�|	d�|	d�|	d�|	d|z�|	d�|	d�|	d�|	d |j|z�|
d!z|j|<|	d"�|	�y)#N�_cffi_r��static int %s(PyObject *lib)rAz  PyObject *o;z
  int res;r�z i�constr��&z  i = (r�z  o = r|z
variable typer�z!  o = _cffi_from_c_int_const(%s);z  if (o == NULL)�    return -1;z  {z    PyObject *o1 = o;z3    o = Py_BuildValue("On", o1, (Py_ssize_t)sizeof(z));z    Py_DECREF(o1);z    if (o == NULL)z      return -1;rDz-  res = PyObject_SetAttrString(lib, "%s", o);z  Py_DECREF(o);z  if (res < 0)�  return %s;�(lib)rE)r0r��_check_int_constant_valuer�rF)r�is_intr8r:�category�vartp�delayed�size_too�check_valuerK�funcname�realexprs            rr�z"VCPythonEngine._generate_cpy_constjs����z�z��$,�d�3���
+�h�
6�7��S�	��
���\�����E�K�R�3�3�D�$�?�?�@��w�&�&�&��"��*�*�4��=���5� ���:�����(�,�-��� 9� 9�"�c�:I�!K�M�
N��N�7��4�t�;�<��
� ��
�����K��(�)����
��%�&��%�&��#�$���K��
<�t�
C�D��
���
���
���^�d�:�:�7�C�
C�D�08�7�0B��$�$�W�-��S�	��rc��t|tj�xr|j�}|s|j	|�yyr)r6rr7r�r<�rr:r8rJs    r�"_generate_cpy_constant_collecttypez1VCPythonEngine._generate_cpy_constant_collecttype�s8���B�� 3� 3�4�M��9K�9K�9M����!�!�"�%�rc��t|tj�xr|j�}|j	|||�yr)r6rr7r�r�rSs    r�_generate_cpy_constant_declz*VCPythonEngine._generate_cpy_constant_decl�s4���B�� 3� 3�4�M��9K�9K�9M��� � ���r�2rc��|j}|dkr|d|||fz�n|d|||fz�|d�|d|z�|d|z�|d�|d|z�|d	�|d
�|d|||fz�|d�|d
�y)Nrz&  if ((%s) > 0 || (long)(%s) != %dL) {z1  if ((%s) <= 0 || (unsigned long)(%s) != %dUL) {z    char buf[64];z    if ((%s) <= 0)z.        snprintf(buf, 63, "%%ld", (long)(%s));z    elsez7        snprintf(buf, 63, "%%lu", (unsigned long)(%s));z)    PyErr_Format(_cffi_VerificationError,z6                 "%s%s has the real value %s, not %s",z(                 "%s", "%s", buf, "%d");rFrD)r0)rr8rz�
err_prefixrKs     rrIz(VCPythonEngine._check_int_constant_value�s����z�z���A�:��9��d�E�=#�#�
$�
�D��d�E�H#�#�
$��
 �!��
!�D�
(�)��
=��
D�E��Z���
F�
��	��
8�9��
E�F��
7���e�;%�%�	&��
���U�rc�6�|jdd�}d|�d|��S)N�$�___D_�_cffi_e_r�)r�)rrr8s   r�_enum_funcnamezVCPythonEngine._enum_funcname�s���|�|�C��)��"(�$�/�/rc��|jr&|jD]}|jd|d���y|j||�}|j}|d|z�|d�t|j|j�D]\}}|j||d|z��|d|jdz�|dz|jd<|d	�|�y)
NTF)rMrCrAz	enum %s: rGrHrE)	r �enumeratorsr�r]r0�zip�
enumvaluesrIrF)rr:r8r�
enumeratorrPrK�	enumvalues        rr7z&VCPythonEngine._generate_cpy_enum_decl�s���
�:�:� �n�n�
J�
��(�(��z�5�(�I�
J���&�&�v�t�4���z�z���
+�h�
6�7��S�	�%(�������%G�	?�!�J�	��*�*�:�y�+6��+=�
?�	?�	
�^�d�:�:�4�@�
@�A�-5��-?��$�$�T�*��S�	��rc��|jr;|jD�cgc]}t||���}}t|�|_d|_yycc}w)NT)r r_r��tuplera�partial_resolved)rr:r8r`rbras      rr<z VCPythonEngine._loading_cpy_enum�sO��
�:�:�,.�N�N�<�(�"�&�*�5�<�J�<�!�*�-�B�M�"&�B��	��<s�A	c�n�t|j|j�D]\}}t|||��yr)r`r_rar�)rr:r8r`rbrbrcs       rr?zVCPythonEngine._loaded_cpy_enum�s1��%(�������%G�	4�!�J�	��G�Z��3�	4rc�@�|dk(rd}n|}|jd||��y)Nz...T)rO)r�)rr:r8rOs    r�_generate_cpy_macro_declz'VCPythonEngine._generate_cpy_macro_decl�s(��
��;��K��K�� � ��t�� �Erc���t|tj�r tj|j�}ntj|�}|j|�yr)r6rr�r�r�r<�rr:r8�tp_ptrs    r�"_generate_cpy_variable_collecttypez1VCPythonEngine._generate_cpy_variable_collecttype�sB���b�%�/�/�*��&�&�r�w�w�/�F��&�&�r�*�F����f�%rc��t|tj�rDtj|j�}|jd||||j
���ytj|�}|jd||d��y)NF)rLrNr�)rK)r6rr�r�r�r��length_is_unknownrks    r�_generate_cpy_variable_declz*VCPythonEngine._generate_cpy_variable_decl�su���b�%�/�/�*��&�&�r�w�w�/�F��$�$�U�D�"�F�02�0D�0D�0F�
%�
H��&�&�r�*�F��$�$�U�D�&�5�$�Irc��
�t||�}t|tj�r�|j	�r�t|t
�sJ�|\}}|jj|j�}t||jj|��\}}	|	dk7rtd|�d|j����|j|�}|j�D|jj|�}
|jj|
|�}t|||�y|�
t!||��
fd�}�
fd�}tt#|�|t%||��t#|�j&j)|�y)Nrz
bad size: z! does not seem to be an array of c����dSrr)rb�ptrs �r�getterz3VCPythonEngine._loaded_cpy_variable.<locals>.getter"s����q�6�Mrc���|�d<yrr)rbrzrss  �r�setterz3VCPythonEngine._loaded_cpy_variable.<locals>.setter$s����C��Fr)r�r6rr�rorerrnr��divmodr0r�resolve_lengthr�castr��delattrr2�propertyrV�append)rr:r8r`rbrz�size�	BItemTyper�rest�BArrayrtrvrss             @r�_loaded_cpy_variablez#VCPythonEngine._loaded_cpy_variable	s8������&���b�%�/�/�*��#�#�%�!�%��/�/�/� %�
��� �H�H�6�6�r�w�w�?�	�%�d�D�H�H�O�O�I�,F�G�����1�9�+��r�w�w�(�)�)��&�&�v�.���y�y�$����3�3�B�7�����
�
�f�e�4�����u�-��������	�	���W�
�t�X�f�f�%=�>��W�
���&�&�t�,rc�|�|j}|d�|d�|d|jdz�|d�y)Nz,static int _cffi_setup_custom(PyObject *lib)rArGTrE)r0rF)rrKs  rrIz%VCPythonEngine._generate_setup_custom+s:���z�z���
;�<��S�	��^�d�:�:�4�@�
@�A��S�	r)r�r)NrDNTFN)�enum)Lr[r\r]�
_class_key�_gen_python_modulerrrr*r0r3r<rNr~r�r)rir�r�r�r�r�r��!_generate_cpy_typedef_collecttype�_generate_cpy_typedef_decl�_generate_cpy_typedef_method�_loading_cpy_typedef�_loaded_cpy_typedefr�r�r��_loading_cpy_functionr�� _generate_cpy_struct_collecttyper�r�r�r�_generate_cpy_union_collecttyperrr	rr�r�r�r��#_generate_cpy_anonymous_collecttyper8r:r=r@r�rTrV�_generate_cpy_constant_method�_loading_cpy_constant�_loaded_cpy_constantrIr]r7�_generate_cpy_enum_collecttype�_generate_cpy_enum_methodr<r?ri�_generate_cpy_macro_collecttype�_generate_cpy_macro_method�_loading_cpy_macro�_loaded_cpy_macrormrp�_generate_cpy_variable_method�_loading_cpy_variabler�rIrrrr	r	
s����J���.�
��&�#�%�&�Y�v8�t�
��
�
�
%(�NK��*�<):�%�#4��#4� �#/��#/��
	-�N�`
K�)��4�(9�$�@�B�B�)�'8�#�?�A�A�)�1�fJ�B�*$�D+<�'�>�@�@�-�CJ�?D�(,�.�`&�
3�%6�!�(��(��
�*0�
�$&7�"� 1��'�4�F�'8�#�!2��%��%��
&�J�%6�!�(��-�Drr	a�)
#include <Python.h>
#include <stddef.h>

/* 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

#if PY_MAJOR_VERSION < 3
# undef PyCapsule_CheckExact
# undef PyCapsule_GetPointer
# define PyCapsule_CheckExact(capsule) (PyCObject_Check(capsule))
# define PyCapsule_GetPointer(capsule, name) \
    (PyCObject_AsVoidPtr(capsule))
#endif

#if PY_MAJOR_VERSION >= 3
# define PyInt_FromLong PyLong_FromLong
#endif

#define _cffi_from_c_double PyFloat_FromDouble
#define _cffi_from_c_float PyFloat_FromDouble
#define _cffi_from_c_long PyInt_FromLong
#define _cffi_from_c_ulong PyLong_FromUnsignedLong
#define _cffi_from_c_longlong PyLong_FromLongLong
#define _cffi_from_c_ulonglong PyLong_FromUnsignedLongLong
#define _cffi_from_c__Bool PyBool_FromLong

#define _cffi_to_c_double PyFloat_AsDouble
#define _cffi_to_c_float PyFloat_AsDouble

#define _cffi_from_c_int_const(x)                                        \
    (((x) > 0) ?                                                         \
        ((unsigned long long)(x) <= (unsigned long long)LONG_MAX) ?      \
            PyInt_FromLong((long)(x)) :                                  \
            PyLong_FromUnsignedLongLong((unsigned long long)(x)) :       \
        ((long long)(x) >= (long long)LONG_MIN) ?                        \
            PyInt_FromLong((long)(x)) :                                  \
            PyLong_FromLongLong((long long)(x)))

#define _cffi_from_c_int(x, type)                                        \
    (((type)-1) > 0 ? /* unsigned */                                     \
        (sizeof(type) < sizeof(long) ?                                   \
            PyInt_FromLong((long)x) :                                    \
         sizeof(type) == sizeof(long) ?                                  \
            PyLong_FromUnsignedLong((unsigned long)x) :                  \
            PyLong_FromUnsignedLongLong((unsigned long long)x)) :        \
        (sizeof(type) <= sizeof(long) ?                                  \
            PyInt_FromLong((long)x) :                                    \
            PyLong_FromLongLong((long long)x)))

#define _cffi_to_c_int(o, type)                                          \
    ((type)(                                                             \
     sizeof(type) == 1 ? (((type)-1) > 0 ? (type)_cffi_to_c_u8(o)        \
                                         : (type)_cffi_to_c_i8(o)) :     \
     sizeof(type) == 2 ? (((type)-1) > 0 ? (type)_cffi_to_c_u16(o)       \
                                         : (type)_cffi_to_c_i16(o)) :    \
     sizeof(type) == 4 ? (((type)-1) > 0 ? (type)_cffi_to_c_u32(o)       \
                                         : (type)_cffi_to_c_i32(o)) :    \
     sizeof(type) == 8 ? (((type)-1) > 0 ? (type)_cffi_to_c_u64(o)       \
                                         : (type)_cffi_to_c_i64(o)) :    \
     (Py_FatalError("unsupported size for type " #type), (type)0)))

#define _cffi_to_c_i8                                                    \
                 ((int(*)(PyObject *))_cffi_exports[1])
#define _cffi_to_c_u8                                                    \
                 ((int(*)(PyObject *))_cffi_exports[2])
#define _cffi_to_c_i16                                                   \
                 ((int(*)(PyObject *))_cffi_exports[3])
#define _cffi_to_c_u16                                                   \
                 ((int(*)(PyObject *))_cffi_exports[4])
#define _cffi_to_c_i32                                                   \
                 ((int(*)(PyObject *))_cffi_exports[5])
#define _cffi_to_c_u32                                                   \
                 ((unsigned int(*)(PyObject *))_cffi_exports[6])
#define _cffi_to_c_i64                                                   \
                 ((long long(*)(PyObject *))_cffi_exports[7])
#define _cffi_to_c_u64                                                   \
                 ((unsigned long long(*)(PyObject *))_cffi_exports[8])
#define _cffi_to_c_char                                                  \
                 ((int(*)(PyObject *))_cffi_exports[9])
#define _cffi_from_c_pointer                                             \
    ((PyObject *(*)(char *, CTypeDescrObject *))_cffi_exports[10])
#define _cffi_to_c_pointer                                               \
    ((char *(*)(PyObject *, CTypeDescrObject *))_cffi_exports[11])
#define _cffi_get_struct_layout                                          \
    ((PyObject *(*)(Py_ssize_t[]))_cffi_exports[12])
#define _cffi_restore_errno                                              \
    ((void(*)(void))_cffi_exports[13])
#define _cffi_save_errno                                                 \
    ((void(*)(void))_cffi_exports[14])
#define _cffi_from_c_char                                                \
    ((PyObject *(*)(char))_cffi_exports[15])
#define _cffi_from_c_deref                                               \
    ((PyObject *(*)(char *, CTypeDescrObject *))_cffi_exports[16])
#define _cffi_to_c                                                       \
    ((int(*)(char *, CTypeDescrObject *, PyObject *))_cffi_exports[17])
#define _cffi_from_c_struct                                              \
    ((PyObject *(*)(char *, CTypeDescrObject *))_cffi_exports[18])
#define _cffi_to_c_wchar_t                                               \
    ((wchar_t(*)(PyObject *))_cffi_exports[19])
#define _cffi_from_c_wchar_t                                             \
    ((PyObject *(*)(wchar_t))_cffi_exports[20])
#define _cffi_to_c_long_double                                           \
    ((long double(*)(PyObject *))_cffi_exports[21])
#define _cffi_to_c__Bool                                                 \
    ((_Bool(*)(PyObject *))_cffi_exports[22])
#define _cffi_prepare_pointer_call_argument                              \
    ((Py_ssize_t(*)(CTypeDescrObject *, PyObject *, char **))_cffi_exports[23])
#define _cffi_convert_array_from_object                                  \
    ((int(*)(char *, CTypeDescrObject *, PyObject *))_cffi_exports[24])
#define _CFFI_NUM_EXPORTS 25

typedef struct _ctypedescr CTypeDescrObject;

static void *_cffi_exports[_CFFI_NUM_EXPORTS];
static PyObject *_cffi_types, *_cffi_VerificationError;

static int _cffi_setup_custom(PyObject *lib);   /* forward */

static PyObject *_cffi_setup(PyObject *self, PyObject *args)
{
    PyObject *library;
    int was_alive = (_cffi_types != NULL);
    (void)self; /* unused */
    if (!PyArg_ParseTuple(args, "OOO", &_cffi_types, &_cffi_VerificationError,
                                       &library))
        return NULL;
    Py_INCREF(_cffi_types);
    Py_INCREF(_cffi_VerificationError);
    if (_cffi_setup_custom(library) < 0)
        return NULL;
    return PyBool_FromLong(was_alive);
}

union _cffi_union_alignment_u {
    unsigned char m_char;
    unsigned short m_short;
    unsigned int m_int;
    unsigned long m_long;
    unsigned long long m_longlong;
    float m_float;
    double m_double;
    long double m_longdouble;
};

struct _cffi_freeme_s {
    struct _cffi_freeme_s *next;
    union _cffi_union_alignment_u alignment;
};

#ifdef __GNUC__
  __attribute__((unused))
#endif
static int _cffi_convert_array_argument(CTypeDescrObject *ctptr, PyObject *arg,
                                        char **output_data, Py_ssize_t datasize,
                                        struct _cffi_freeme_s **freeme)
{
    char *p;
    if (datasize < 0)
        return -1;

    p = *output_data;
    if (p == NULL) {
        struct _cffi_freeme_s *fp = (struct _cffi_freeme_s *)PyObject_Malloc(
            offsetof(struct _cffi_freeme_s, alignment) + (size_t)datasize);
        if (fp == NULL)
            return -1;
        fp->next = *freeme;
        *freeme = fp;
        p = *output_data = (char *)&fp->alignment;
    }
    memset((void *)p, 0, (size_t)datasize);
    return _cffi_convert_array_from_object(p, ctptr, arg);
}

#ifdef __GNUC__
  __attribute__((unused))
#endif
static void _cffi_free_array_arguments(struct _cffi_freeme_s *freeme)
{
    do {
        void *p = (void *)freeme;
        freeme = freeme->next;
        PyObject_Free(p);
    } while (freeme != NULL);
}

static int _cffi_init(void)
{
    PyObject *module, *c_api_object = NULL;

    module = PyImport_ImportModule("_cffi_backend");
    if (module == NULL)
        goto failure;

    c_api_object = PyObject_GetAttrString(module, "_C_API");
    if (c_api_object == NULL)
        goto failure;
    if (!PyCapsule_CheckExact(c_api_object)) {
        PyErr_SetNone(PyExc_ImportError);
        goto failure;
    }
    memcpy(_cffi_exports, PyCapsule_GetPointer(c_api_object, "cffi"),
           _CFFI_NUM_EXPORTS * sizeof(void *));

    Py_DECREF(module);
    Py_DECREF(c_api_object);
    return 0;

  failure:
    Py_XDECREF(module);
    Py_XDECREF(c_api_object);
    return -1;
}

#define _cffi_type(num) ((CTypeDescrObject *)PyList_GET_ITEM(_cffi_types, num))

/**********/
)
rer�rrxrrrror	rGrrr�<module>r�s*����$�#�f�V�f�PJ�r