§
    Æ‡tjtþ  ã                   ó  — d dl Z d dlZd dlZd dlZddlmZmZ ddlmZ ddl	T dZ
dZdZ ej        d	¦  «        Zej        d
k    sej        dk     sej        dk    oe p
ej        dk    Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Z G d„ d¦  «        Zej        dk    re j        Zn G d„ de j        ¦  «        Zd„ Zd„ Zd+d „Zd+d!„Zd"„ Zd#„ Z d$„ Z!d%„ Z"d&„ Z#	 	 	 	 d,d*„Z$dS )-é    Né   )ÚffiplatformÚmodel)ÚVerificationError)Ú*i&  i'  i(  ÚPy_GIL_DISABLEDÚwin32)é   r   )r
   é   )r
   é   c                   ó"   — e Zd Zdd„Zd„ Zd„ ZdS )Ú
GlobalExprr   c                 óL   — || _         || _        || _        || _        || _        d S ©N)ÚnameÚaddressÚtype_opÚsizeÚcheck_value)Úselfr   r   r   r   r   s         úM/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/cffi/recompiler.pyÚ__init__zGlobalExpr.__init__   s,   € ØˆŒ	ØˆŒØˆŒØˆŒ	Ø&ˆÔÐÐó    c           	      ól   — d| j         ›d| j        ›d| j                             ¦   «         ›d| j        ›d�	S )Nú  { "z", (void *)ú, z
, (void *)ú },)r   r   r   Ú	as_c_exprr   ©r   s    r   r   zGlobalExpr.as_c_expr   s?   € € àŒIˆIˆI�t”|�|�| T¤\×%;Ò%;Ñ%=Ô%=Ð%=Ð%=¸t¼y¸y¸yðJð 	Jr   c                 óT   — d| j                              ¦   «         | j        | j        fz  S )Nz
b'%s%s',%d)r   Úas_python_bytesr   r   r   s    r   Úas_python_exprzGlobalExpr.as_python_expr   s.   € Ø˜tœ|×;Ò;Ñ=Ô=¸t¼yØ#Ô/ð1ñ 1ð 	1r   N)r   r   ©Ú__name__Ú
__module__Ú__qualname__r   r   r"   © r   r   r   r      sI   € € € € € ð'ð 'ð 'ð 'ðJð Jð Jð1ð 1ð 1ð 1ð 1r   r   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )Ú	FieldExprc                 óL   — || _         || _        || _        || _        || _        d S r   )r   Úfield_offsetÚ
field_sizeÚfbitsizeÚfield_type_op)r   r   r+   r,   r-   r.   s         r   r   zFieldExpr.__init__!   s-   € ØˆŒ	Ø(ˆÔØ$ˆŒØ ˆŒØ*ˆÔÐÐr   c                 ó¶   — dt          | j        ¦  «        z  }d| j        ›d| j        ›d�d|›d| j        ›d�z   d|›d| j                             ¦   «         ›d�z   S )Nú r   ú", z,
z     z   r   )Úlenr   r+   r,   r.   r   )r   Úspacess     r   r   zFieldExpr.as_c_expr(   sy   € Ø•s˜4œ9‘~”~Ñ%ˆˆØ%)¤Y Y Y°Ô0AÐ0AÐ0AÐBÐBØ%+ V V¨T¬_¨_¨_Ð=ñ>ð >à%+ V V¨TÔ-?×-IÒ-IÑ-KÔ-KÐ-KÐ-KÐLñMð 	Nr   c                 ó   — t           ‚r   )ÚNotImplementedErrorr   s    r   r"   zFieldExpr.as_python_expr.   s   € Ý!Ð!r   c                 óà   — | j         j        t          k    rd}n1| j         j        t          k    rt	          | j        ¦  «        }nt          ‚d| j                              ¦   «         ›|›| j        ›d�S )NÚ úb'ú')	r.   ÚopÚOP_NOOPÚOP_BITFIELDÚformat_four_bytesr-   r5   r!   r   )r   Ú	size_exprs     r   Úas_field_python_exprzFieldExpr.as_field_python_expr1   sp   € ØÔÔ ¥GÒ+Ð+ØˆIˆIØÔÔ"¥kÒ1Ð1Ý)¨$¬-Ñ8Ô8ˆIˆIå%Ð%øØ"Ô0×@Ò@ÑBÔBÐBØ'˜iØ"œi˜i˜ið)ð 	)r   N)r$   r%   r&   r   r   r"   r?   r'   r   r   r)   r)       sS   € € € € € ð+ð +ð +ðNð Nð Nð"ð "ð "ð	)ð 	)ð 	)ð 	)ð 	)r   r)   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚStructUnionExprc	                 óv   — || _         || _        || _        || _        || _        || _        || _        || _        d S r   )r   Ú
type_indexÚflagsr   Ú	alignmentÚcommentÚfirst_field_indexÚc_fields)	r   r   rC   rD   r   rE   rF   rG   rH   s	            r   r   zStructUnionExpr.__init__=   s?   € àˆŒ	Ø$ˆŒØˆŒ
ØˆŒ	Ø"ˆŒØˆŒØ!2ˆÔØ ˆŒˆˆr   c                 óÄ   — d| j         | j        | j        fz  d| j        ›d| j        ›d�z   d| j        t          | j        ¦  «        fz  z   | j        r
d| j        z  ndz   dz   S )Nz  { "%s", %d, %s,z
    r   z%d, %d z	/* %s */ r7   z},)	r   rC   rD   r   rE   rG   r2   rH   rF   r   s    r   r   zStructUnionExpr.as_c_exprH   s�   € Ø# t¤y°$´/À4Ä:Ð&NÑNÐNØ&*¤i i i°´°°Ð@ñAà˜tÔ5µs¸4¼=Ñ7IÔ7IÐJÑJñKð 26´ÐE�; ¤Ñ-Ð-À2ñGð ñ	ð 	r   c                 óà   — t          | j        t          ¦  «        }d„ | j        D ¦   «         }dt	          | j        ¦  «        ›t	          |¦  «        ›| j        ›dd                     |¦  «        ›d�S )Nc                 ó6   — g | ]}|                      ¦   «         ‘ŒS r'   )r?   )Ú.0Úc_fields     r   ú
<listcomp>z2StructUnionExpr.as_python_expr.<locals>.<listcomp>Q   s4   € ð 5ð 5ð 5Ø"ð ×3Ò3Ñ5Ô5ð 5ð 5ð 5r   z(b'ú',ú,ú))ÚevalrD   ÚG_FLAGSrH   r=   rC   r   Újoin)r   rD   Úfields_exprs      r   r"   zStructUnionExpr.as_python_exprO   s}   € Ý�T”Z¥Ñ)Ô)ˆð5ð 5Ø&*¤mð5ñ 5ô 5ˆˆõ ˜dœoÑ.Ô.Ð.Ý˜eÑ$Ô$Ð$ØŒIˆIˆIØ�HŠH�[Ñ!Ô!Ð!Ð!ð	#ð 	#r   Nr#   r'   r   r   rA   rA   <   sA   € € € € € ð	!ð 	!ð 	!ðð ð ð#ð #ð #ð #ð #r   rA   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚEnumExprc                 óL   — || _         || _        || _        || _        || _        d S r   )r   rC   r   ÚsignedÚallenums)r   r   rC   r   rY   rZ   s         r   r   zEnumExpr.__init__Z   s)   € ØˆŒ	Ø$ˆŒØˆŒ	ØˆŒØ ˆŒˆˆr   c                 óÈ  — d| j         | j        | j        | j        fz  g}d}t	          | j        ¦  «        |dz   k    rm| j                             d|dz   ¦  «        }|dk     rnH|dz  }|                     d| j        ||…         ›d�¦  «         |}t	          | j        ¦  «        |dz   k    °m|                     d| j        |d …         ›d	�¦  «         d
                     |¦  «        S )Nz%  { "%s", %d, _cffi_prim_int(%s, %s),r   én   rP   éd   r   z    "ú"z" },ú
)	r   rC   r   rY   r2   rZ   ÚfindÚappendrT   )r   ÚlinesÚpendingÚjs       r   r   zEnumExpr.as_c_expra   sü   € Ø8¸D¼IÀtÄØ<@¼IÀtÄ{ð<Uñ Uð VˆàˆÝ�$”-Ñ Ô  7¨S¡=Ò0Ð0Ø”×"Ò" 3¨°#©Ñ6Ô6ˆAØ�1ŠuˆuØØ�‰FˆAØ�LŠLˆL t¤}°W¸Q°YÔ'?Ð'?Ð'?ÐAÑBÔBÐBØˆGõ �$”-Ñ Ô  7¨S¡=Ò0Ð0ð 	�Šˆ d¤m°G°H°HÔ&=Ð&=Ð&=Ð?Ñ@Ô@Ð@Ø�yŠy˜ÑÔÐr   c           	      óø   — t           t          t          t          t          t
          t          t          dœ| j        | j	        f         }dt          | j        ¦  «        ›t          |¦  «        ›| j        ›d| j        ›d�S )N))r   r   )r   r   )é   r   )rf   r   )é   r   )rg   r   )é   r   )rh   r   r8   z\x00r9   )Ú
PRIM_UINT8Ú	PRIM_INT8ÚPRIM_UINT16Ú
PRIM_INT16ÚPRIM_UINT32Ú
PRIM_INT32ÚPRIM_UINT64Ú
PRIM_INT64r   rY   r=   rC   r   rZ   )r   Ú
prim_indexs     r   r"   zEnumExpr.as_python_expro   sr   € å­)Ý­*Ý­*Ý­*ð	ð ð
 Œi˜œÐ$ô&ˆ
ˆ
õ &7°t´Ñ%GÔ%GÐ%GÝ%6°zÑ%BÔ%BÐ%BØ%)¤Y Y Y°´°°ð?ð 	?r   Nr#   r'   r   r   rW   rW   Y   sA   € € € € € ð!ð !ð !ð ð  ð  ð	?ð 	?ð 	?ð 	?ð 	?r   rW   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTypenameExprc                 ó"   — || _         || _        d S r   ©r   rC   )r   r   rC   s      r   r   zTypenameExpr.__init__{   s   € ØˆŒ	Ø$ˆŒˆˆr   c                 ó$   — d| j         | j        fz  S )Nz  { "%s", %d },ru   r   s    r   r   zTypenameExpr.as_c_expr   s   € Ø  D¤I¨t¬Ð#?Ñ?Ð?r   c                 ó@   — dt          | j        ¦  «        ›| j        ›d�S )Nr8   r9   )r=   rC   r   r   s    r   r"   zTypenameExpr.as_python_expr‚   s"   € € Ý-¨d¬oÑ>Ô>Ð>ÀÄ	À	À	ÐJÐJr   Nr#   r'   r   r   rs   rs   z   sI   € € € € € ð%ð %ð %ð@ð @ð @ðKð Kð Kð Kð Kr   rs   c                   óú  — e Zd ZdZdNd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	g d	¢Z
d
„ ZdOd„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d„ Zd„ Zd„ Zd„ Zd „ Z d!„ Z!dPd#„Z"d$„ Z#d%„ Z$d&„ Z%e%Z&d'„ Z'd(„ Z(e(Z)d)„ Z*e*Z+d*„ Z,d+„ Z-d,„ Z.	 	 dQd.„Z/d/„ Z0d0„ Z1d1„ Z2d2„ Z3dPd3„Z4d4„ Z5d5„ Z6d6„ Z7d7„ Z8d8„ Z9d9„ Z:d:„ Z;d;„ Z<d<„ Z=d=„ Z>e>xZ?Z@d>„ ZAd?„ ZBd@„ ZCdA„ ZDdB„ ZEeExZFZGdC„ ZHdD„ ZIdE„ ZJdF„ ZKdG„ ZLdH„ ZMdI„ ZNeNZOeNZPdJ„ ZQdK„ ZRdL„ ZSeSZTdM„ ZUd"S )RÚ
Recompilerr   Fc                 óH   — || _         || _        || _        t          | _        d S r   )ÚffiÚmodule_nameÚtarget_is_pythonÚVERSION_BASEÚ_version)r   r{   r|   r}   s       r   r   zRecompiler.__init__Œ   s$   € ØˆŒØ&ˆÔØ 0ˆÔÝ$ˆŒˆˆr   c                 ó:   — t          | j        |¦  «        | _        d S r   )Úmaxr   )r   Úvers     r   Úneeds_versionzRecompiler.needs_version’   s   € Ý˜DœM¨3Ñ/Ô/ˆŒˆˆr   c           
      ó  — i | _         |                      d¦  «         t          | j         t          ¬¦  «        }g | _        |D ]þ}|j        rõ| j         |         �J ‚t          | j        ¦  «        | j         |<   | j                             |¦  «         |j        D ]Ž}t          |t          j        t          j        t          j        t          j        t          j        f¦  «        sJ ‚| j         |         €t          | j        ¦  «        | j         |<   | j                             |¦  «         Œ�| j                             d¦  «         Œÿ|D ]t}|j        sk| j         |         €^t          | j        ¦  «        | j         |<   | j                             |¦  «         |j        r!|j        �| j                             d¦  «         Œud | j                              ¦   «         vsJ ‚i | _        i | _        |D ]K}t          |t          j        ¦  «        rd | j        |<   Œ't          |t          j        ¦  «        r
d | j        |<   ŒLt/          t          | j        d„ ¬¦  «        ¦  «        D ]\  }}|| j        |<   Œt/          t          | j        d„ ¬¦  «        ¦  «        D ]\  }}|| j        |<   Œ|D ]6}t1          | d|j        j        z   ¦  «        } ||| j         |         ¦  «         Œ7| j        D ]}t          |t6          ¦  «        sJ ‚Œt9          | j        ¦  «        | _        d S )NÚcollecttype©ÚkeyÚENDÚLENc                 ó   — | j         S r   ©r   ©Útps    r   ú<lambda>z/Recompiler.collect_type_table.<locals>.<lambda>¿   ó   € °R´W€ r   c                 ó   — | j         S r   r‹   rŒ   s    r   rŽ   z/Recompiler.collect_type_table.<locals>.<lambda>Â   r�   r   Ú_emit_bytecode_)Ú
_typesdictÚ	_generateÚsortedÚstrÚ
cffi_typesÚis_raw_functionr2   ra   ÚargsÚ
isinstancer   ÚVoidTypeÚBasePrimitiveTypeÚPointerTypeÚStructOrUnionOrEnumÚFunctionPtrTypeÚis_array_typeÚlengthÚvaluesÚ_struct_unionsÚ_enumsÚStructOrUnionÚEnumTypeÚ	enumerateÚgetattrÚ	__class__r$   ÚCffiOpÚtuple)r   Ú	all_declsr�   Útp1ÚiÚmethodr:   s          r   Úcollect_type_tablezRecompiler.collect_type_table•   sS  € ØˆŒØ�Š�}Ñ%Ô%Ð%å˜4œ?µÐ4Ñ4Ô4ˆ	ð ˆŒØð 	.ð 	.ˆBØÔ!ð .Ø” rÔ*Ð2Ð2Ð2Ý&)¨$¬/Ñ&:Ô&:�” Ñ#Ø”×&Ò& rÑ*Ô*Ð*Øœ7ð 0ð 0�CÝ% c­E¬NÝ,1Ô,CÝ,1Ô,=Ý,1Ô,EÝ,1Ô,Að	,Cñ Dô Dð Dð Dð Dð
 ” sÔ+Ð3Ý/2°4´?Ñ/CÔ/C˜œ¨Ñ,Ø”O×*Ò*¨3Ñ/Ô/Ð/Ð/Ø”×&Ò& uÑ-Ô-Ð-øð ð 	2ð 	2ˆBØÔ%ð 2¨$¬/¸"Ô*=Ð*EÝ&)¨$¬/Ñ&:Ô&:�” Ñ#Ø”×&Ò& rÑ*Ô*Ð*ØÔ#ð 2¨¬	Ð(=Ø”O×*Ò*¨5Ñ1Ô1Ð1øØ˜4œ?×1Ò1Ñ3Ô3Ð3Ð3Ð3Ð3ð !ˆÔØˆŒØð 	'ð 	'ˆBÝ˜"�eÔ1Ñ2Ô2ð 'Ø*.�Ô# BÑ'Ð'Ý˜B¥¤Ñ/Ô/ð 'Ø"&�”˜B‘øÝ�v dÔ&9Ø*<Ð*<ð >ñ  >ô  >ñ ?ô ?ð 	(ð 	(‰EˆAˆrà&'ˆDÔ Ñ#Ð#Ý�v d¤kØ*<Ð*<ð >ñ  >ô  >ñ ?ô ?ð 	 ð 	 ‰EˆAˆràˆDŒK˜‰OˆOð ð 	,ð 	,ˆBÝ˜TÐ#4°r´|Ô7LÑ#LÑMÔMˆFØˆF�2�t” rÔ*Ñ+Ô+Ð+Ð+ð ”/ð 	*ð 	*ˆBÝ˜b¥&Ñ)Ô)Ð)Ð)Ð)Ð)Ý ¤Ñ0Ô0ˆŒˆˆr   c                 ó<   — | j          }|                     |¦  «        S r   )r}   Ú
enumfields)r   r�   Úexpand_anonymous_struct_unions      r   Ú_enum_fieldszRecompiler._enum_fieldsÏ   s#   € ð -1Ô,AÐ(AÐ%Ø�}Š}Ð:Ñ;Ô;Ð;r   c                 ó¬  — t          |t          j        ¦  «        s1t          |t          ¦  «        r|D ]}|                      |¦  «         Œd S || j        vrýd | j        |<   t          |t          j        ¦  «        r)|                      |                     ¦   «         ¦  «         d S t          |t          j        ¦  «        rg|j	        �Z|| j
        j        j        vrI|                      |¦  «        D ]5\  }}}}|                      |                      |||¦  «        ¦  «         Œ2d S d S d S |                     ¦   «         D ]\  }}|                      |¦  «         Œd S d S r   )r™   r   ÚBaseTypeByIdentityrª   Ú_do_collect_typer’   rž   Úas_raw_functionr¤   Úfldtypesr{   Ú_parserÚ_included_declarationsr³   Ú_field_typeÚ
_get_items)r   r�   ÚxÚname1r¬   Ú_s         r   r¶   zRecompiler._do_collect_typeÚ   s‰  € Ý˜"�eÔ6Ñ7Ô7ð 	Ý˜"�eÑ$Ô$ð -Øð -ð -�AØ×)Ò)¨!Ñ,Ô,Ð,Ð,ØˆFØ�T”_Ð$Ð$Ø"&ˆDŒO˜BÑÝ˜"�eÔ3Ñ4Ô4ð 	-Ø×%Ò% b×&8Ò&8Ñ&:Ô&:Ñ;Ô;Ð;Ð;Ð;Ý˜B¥Ô 3Ñ4Ô4ð -Ø”;Ð*Ø $¤(Ô"2Ô"IÐIÐIØ,0×,=Ò,=¸bÑ,AÔ,Að Pð PÑ(˜˜s A qØ×-Ò-¨d×.>Ò.>¸rÀ5È#Ñ.NÔ.NÑOÔOÐOÐOð +Ð*ØIÐIðPð Pð ŸMšM™OœOð -ð -‘D�A�qØ×)Ò)¨!Ñ,Ô,Ð,Ð,ð %Ð$ð-ð -r   c                 ó–  — | j         j        j                             ¦   «         }t	          |¦  «        D ]•\  }\  }}|                     dd¦  «        \  }}	 t          | d|›d|›�¦  «        }n # t          $ r t          d|z  ¦  «        ‚w xY w	 || _	         |||¦  «         Œn# t          $ r}	t          j        |	|¦  «         ‚ d }	~	ww xY wd S )Nr0   r   Ú_generate_cpy_r¿   z"not implemented in recompile(): %r)r{   r¹   Ú_declarationsÚitemsr”   Úsplitr§   ÚAttributeErrorr   Ú_current_qualsÚ	Exceptionr   Úattach_exception_info)
r   Ú	step_nameÚlstr   r�   ÚqualsÚkindÚrealnamer®   Úes
             r   r“   zRecompiler._generateí   s  € ØŒhÔÔ,×2Ò2Ñ4Ô4ˆÝ!'¨¡¤ð 	ð 	ÑˆD‘+�2�uØ!ŸZšZ¨¨QÑ/Ô/‰NˆD�(ðAÝ   ÀÀÀØ@IÀ	ð(Kñ Lô L��øå!ð Að Að AÝ'Ø8¸4Ñ?ñAô Að AðAøøøðØ&+�Ô#Ø��r˜8Ñ$Ô$Ð$Ð$øÝð ð ð ÝÔ+¨A¨tÑ4Ô4Ð4Øøøøøðøøøð	ð 	s$   ÁA,Á,B	ÂB!Â!
CÂ+CÃC)ÚglobalÚfieldÚstruct_unionÚenumÚtypenamec                 óJ  — i | _         | j        D ]}g | j         |<   Œt          ¦   «         | _        |                      d¦  «         |                      ¦   «          | j        D ]C}| j         |         }|dk    r|                     d„ ¬¦  «         t          |¦  «        | j         |<   ŒD| j         d         }| j         	                    ¦   «         D ]2\  }}|t          |¦  «        k     sJ ‚||         j        |j        k    sJ ‚Œ3t          |¦  «        t          | j        ¦  «        k    sJ ‚| j         d         }| j         	                    ¦   «         D ]2\  }}|t          |¦  «        k     sJ ‚||         j        |j        k    sJ ‚Œ3t          |¦  «        t          | j        ¦  «        k    sJ ‚d S )NÚctxrÐ   c                 ó   — | j         S r   r‹   )Úentrys    r   rŽ   z0Recompiler.collect_step_tables.<locals>.<lambda>  s   € ¨5¬:€ r   r†   rÑ   rÒ   )Ú_lstsÚ	ALL_STEPSÚsetÚ_seen_struct_unionsr“   Ú_add_missing_struct_unionsÚsortrª   r¢   rÃ   r2   r   r£   )r   rÉ   rÊ   r�   r­   s        r   Úcollect_step_tableszRecompiler.collect_step_tables  s²  € àˆŒ
Øœð 	'ð 	'ˆIØ$&ˆDŒJ�yÑ!Ð!Ý#&¡5¤5ˆÔ Ø�Š�uÑÔÐØ×'Ò'Ñ)Ô)Ð)àœð 	/ð 	/ˆIØ”*˜YÔ'ˆCØ˜GÒ#Ð#Ø—’Ð5Ð5�Ñ6Ô6Ð6Ý$)¨#¡J¤JˆDŒJ�yÑ!Ð!ð Œj˜Ô(ˆØÔ(×.Ò.Ñ0Ô0ð 	*ð 	*‰EˆB�Ø•s˜3‘x”x’<�<�<�<Ø�q”6”; "¤'Ò)Ð)Ð)Ð)Ð)Ý�3‰xŒx�3˜tÔ2Ñ3Ô3Ò3Ð3Ð3Ð3àŒj˜Ô ˆØ”[×&Ò&Ñ(Ô(ð 	*ð 	*‰EˆB�Ø•s˜3‘x”x’<�<�<�<Ø�q”6”; "¤'Ò)Ð)Ð)Ð)Ð)Ý�3‰xŒx�3˜tœ{Ñ+Ô+Ò+Ð+Ð+Ð+Ð+Ð+r   r7   c                 ó@   — | j                              |dz   ¦  «         d S )Nr_   )Ú_fÚwrite)r   Úwhats     r   Ú_prntzRecompiler._prnt!  s    € ØŒ�Š�d˜T‘kÑ"Ô"Ð"Ð"Ð"r   c                 ó~   — | j         r|�J ‚|                      |¦  «         d S |€J ‚|                      ||¦  «         d S r   )r}   Úwrite_py_source_to_fÚwrite_c_source_to_f)r   ÚfÚpreambles      r   Úwrite_source_to_fzRecompiler.write_source_to_f$  s[   € ØÔ ð 	2ØÐ#Ð#Ð#Ø×%Ò% aÑ(Ô(Ð(Ð(Ð(àÐ'Ð'Ð'Ø×$Ò$ Q¨Ñ1Ô1Ð1Ð1Ð1r   c                 óþ   — t          t          j                             t          j                             t
          ¦  «        |¦  «        d¦  «        5 }|                     ¦   «         cd d d ¦  «         S # 1 swxY w Y   d S )NÚr)ÚopenÚosÚpathrT   ÚdirnameÚ__file__Ú	readlines)r   ÚfilenameÚgs      r   Ú_rel_readlineszRecompiler._rel_readlines,  sœ   € Ý•"”'—,’,�rœwŸš­xÑ8Ô8¸(ÑCÔCÀSÑIÔIð 	!ÈQØ—;’;‘=”=ð	!ð 	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s   ÁA2Á2A6Á9A6c           	      ó  — || _         | j        }| j        j        � |d¦  «         t          s |d¦  «         |                      d¦  «        }|                     d¦  «        }|                      d¦  «        |||dz   …<    |d                     |¦  «        ¦  «         | j         	                    d¦  «        d	         }| j        j        �� |d
| j        ›d�¦  «          |d¦  «         |  
                    | j        j        ¦  «          |d¦  «          |d¦  «          |d|›�¦  «          |d¦  «          |d|›�¦  «          |d¦  «         |                      d¦  «        }|                     d¦  «        }|                      d¦  «        |||dz   …<    |d                     |¦  «        ¦  «         |                      t          ¦  «          |d¦  «          |¦   «           ||¦  «          |¦   «           |d¦  «          |¦   «           |d¦  «         t          d„ | j                             ¦   «         D ¦   «         ¦  «        }t!          | j        ¦  «        D ]K\  }}d}	||v rd||                              ¦   «         z   }	 |d||                     ¦   «         |	fz  ¦  «         ŒL| j        s |d¦  «          |d¦  «          |¦   «          t)          ¦   «         | _        |                      d¦  «         i }
| j        D ]v}| j        |         }t3          |¦  «        |
|<   |
|         dk    rI |d|›d |›d!�¦  «         |D ]} ||                     ¦   «         ¦  «         Œ  |d¦  «          |¦   «          Œw| j        j        r— |d"¦  «         | j        j        D ]_}	 |j        d d#…         \  }}n)# t8          $ r t;          d$| j        ›d%|›d&�¦  «        ‚w xY w|€t;          d'¦  «        ‚ |d(|›d)�¦  «         Œ` |d*¦  «          |d¦  «          |¦   «           |d+¦  «          |d,¦  «         | j        D ]+}|
|         dk    r |d-|z  ¦  «         Œ |d.|z  ¦  «         Œ,| j        D ]}|d/k    r |d0|
|         |fz  ¦  «         Œ| j        j        r |d1¦  «         n |d2¦  «          |d3t3          | j        ¦  «        fz  ¦  «         d}| j        dk    s| j        j        �|dz  } |d4|z  ¦  «          |d¦  «          |¦   «           |d5¦  «          |d6¦  «          |d¦  «          |¦   «           |d¦  «          |d7¦  «          |d8|›d9�¦  «          |d:¦  «         |dz  r! |d;¦  «          |d<¦  «          |d=¦  «          |d>| j        z  ¦  «          |d?¦  «          |d@¦  «          |dA¦  «          |dB¦  «          |dC¦  «          |dD|›dE�¦  «          |dF¦  «          |d¦  «          |d7¦  «          |dG|›dH�¦  «          |d:¦  «          |dI| j        | j        fz  ¦  «          |dA¦  «          |d¦  «          |¦   «           |d5¦  «          |dJ¦  «          |d¦  «         d | _        d S )KNz#define _CFFI_USE_EMBEDDINGz#define _CFFI_NO_LIMITED_APIz_cffi_include.hz#include "parse_c_type.h"
zparse_c_type.hr   r7   ú.éÿÿÿÿz#define _CFFI_MODULE_NAME  "r^   z1static const char _CFFI_PYTHON_STARTUP_CODE[] = {z0 };z#ifdef PYPY_VERSIONz3# define _CFFI_PYTHON_STARTUP_FUNC  _cffi_pypyinit_ú#elsez+# define _CFFI_PYTHON_STARTUP_FUNC  PyInit_ú#endifz_embedding.hz#include "_cffi_errors.h"
z_cffi_errors.hz>/************************************************************/zstatic void *_cffi_types[] = {c                 ó   — g | ]	\  }}||f‘Œ
S r'   r'   ©rL   r�   r­   s      r   rN   z2Recompiler.write_c_source_to_f.<locals>.<listcomp>]  ó    € ÐNÐNÐN©7¨B°  2˜wÐNÐNÐNr   z // z/* %2d */ %s,%sz  0z};Údeclr   zstatic const struct _cffi_z	_s _cffi_zs[] = {z.static const char * const _cffi_includes[] = {rf   úffi object ú
 includes ú8, but the latter has not been prepared with set_source()zMnot implemented yet: ffi.include() of a Python-based ffi inside a C-based ffiz  "z",z  NULLz?static const struct _cffi_type_context_s _cffi_type_context = {z  _cffi_types,z  _cffi_%ss,z  NULL,  /* no %ss */rÐ   z  %d,  /* num_%ss */z  _cffi_includes,z  NULL,  /* no includes */z  %d,  /* num_types */z  %d,  /* flags */z#ifdef __GNUC__z?#  pragma GCC visibility push(default)  /* for -fvisibility= */ÚPyMODINIT_FUNCÚ_cffi_pypyinit_z(const void *p[])Ú{z%    if (((intptr_t)p[0]) >= 0x0A03) {zQ        _cffi_call_python_org = (void(*)(struct _cffi_externpy_s *, char *))p[1];z    }z    p[0] = (const void *)0x%x;z    p[1] = &_cffi_type_context;ú    return NULL;Ú}z#  ifdef _MSC_VERz     PyMODINIT_FUNCz     PyInit_z(void) { return NULL; }z#  endifÚPyInit_ú(void)z5  return _cffi_init("%s", 0x%x, &_cffi_type_context);z#  pragma GCC visibility pop) rà   rã   r{   Ú
_embeddingÚUSE_LIMITED_APIrô   ÚindexrT   r|   rÄ   Ú_print_string_literal_in_arrayrƒ   ÚVERSION_EMBEDDEDÚdictr’   rÃ   r¦   r–   Ú_get_c_namer   rÚ   Ú_seen_constantsr“   rÙ   rØ   r2   Ú_included_ffisÚ_assigned_sourcerÅ   r   Ú_num_externpyr   )r   rç   rè   Úprntrb   r­   Úbase_module_nameÚtypeindex2typer:   rF   ÚnumsrÉ   rÊ   r×   Úffi_to_includeÚincluded_module_nameÚincluded_sourcerD   s                     r   ræ   zRecompiler.write_c_source_to_f0  s—  € ØˆŒØŒzˆØŒ8ÔÐ*ØˆDÐ.Ñ/Ô/Ð/Ýð 	1ØˆDÐ/Ñ0Ô0Ð0ð ×#Ò#Ð$5Ñ6Ô6ˆØ�KŠKÐ5Ñ6Ô6ˆØ×*Ò*Ð+;Ñ<Ô<ˆˆa��!‘ˆe‰ØˆˆR�WŠW�U‰^Œ^ÑÔÐð  Ô+×1Ò1°#Ñ6Ô6°rÔ:ÐØŒ8ÔÑ*ØˆDˆD°dÔ6FÐ6FÐ6FÐHÑIÔIÐIØˆDÐDÑEÔEÐEØ×/Ò/°´Ô0CÑDÔDÐDØˆD�‰LŒLˆLØˆDÐ&Ñ'Ô'Ð'ØˆDˆDØ Ð ð#ñ $ô $ð $àˆD�‰MŒMˆMØˆDˆDØ Ð ð#ñ $ô $ð $àˆD�‰NŒNˆNØ×'Ò'¨Ñ7Ô7ˆEØ—’Ð9Ñ:Ô:ˆAØ×.Ò.Ð/?Ñ@Ô@ˆE�!�A�a‘C�%‰LØˆD�—’˜‘”Ñ Ô Ð Ø×ÒÕ/Ñ0Ô0Ð0ð 	ˆÐMÑNÔNÐNØˆ‰ŒˆØˆˆX‰ŒˆØˆ‰ŒˆØˆÐMÑNÔNÐNØˆ‰Œˆð 	ˆÐ-Ñ.Ô.Ð.ÝÐNÐN°d´o×6KÒ6KÑ6MÔ6MÐNÑNÔNÑOÔOˆÝ˜tœÑ/Ô/ð 	Cð 	C‰EˆAˆrØˆGØ�NÐ"Ð"Ø  >°!Ô#4×#@Ò#@Ñ#BÔ#BÑB�ØˆDÐ" a¨¯ª©¬¸Ð%AÑAÑBÔBÐBÐBØŒð 	ØˆD�‰KŒKˆKØˆˆT‰
Œ
ˆ
Øˆ‰Œˆõ  #™uœuˆÔØ�Š�vÑÔÐð ˆØœð 		ð 		ˆIØ”*˜YÔ'ˆCÝ! #™hœhˆD�‰OØ�IŒ Ò"Ð"Ø��Ø�I�I˜y˜y˜yð*ñ +ô +ð +à ð ,ð ,�EØ�D˜ŸšÑ*Ô*Ñ+Ô+Ð+Ð+Ø��T‘
”
�
Ø�‘”�øð Œ8Ô"ð 	ØˆDÐAÑBÔBÐBØ"&¤(Ô"9ð :ð :�ð8à&Ô7¸¸¸Ô;ñ :Ð(¨/¨/øå%ð 8ð 8ð 8Ý+Ð+ð !œH˜H˜H n n nð7ñ8ô 8ð 8ð8øøøð
 #Ð*Ý+ð3ñ4ô 4ð 4ð ��Ð"6Ð"6Ð"6Ð8Ñ9Ô9Ð9Ð9ØˆD�‰NŒNˆNØˆD�‰JŒJˆJØˆD‰FŒFˆFð 	ˆÐNÑOÔOÐOØˆÐÑÔÐØœð 	:ð 	:ˆIØ�IŒ Ò"Ð"Ø��^ iÑ/Ñ0Ô0Ð0Ð0à�Ð,¨yÑ8Ñ9Ô9Ð9Ð9Øœð 	Lð 	LˆIØ˜GÒ#Ð#Ø�Ð+¨t°I¬À	Ð.JÑJÑKÔKÐKøØŒ8Ô"ð 	/ØˆDÐ$Ñ%Ô%Ð%Ð%àˆDÐ-Ñ.Ô.Ð.ØˆÐ%­¨T¬_Ñ)=Ô)=Ð(?Ñ?Ñ@Ô@Ð@ØˆØÔ Ò!Ð! T¤XÔ%8Ð%DØ�Q‰JˆEØˆÐ! EÑ)Ñ*Ô*Ð*ØˆˆT‰
Œ
ˆ
Øˆ‰Œˆð 	ˆÐÑÔÐØˆÐNÑOÔOÐOØˆˆX‰ŒˆØˆ‰ŒˆØˆÐ"Ñ#Ô#Ð#ØˆÐÑÔÐØˆˆÐ5EÐ5EÐ5EÐGÑHÔHÐHØˆˆS‰	Œ	ˆ	Ø�1‰9ð 	ØˆDÐ8Ñ9Ô9Ð9ØˆDð Eñ Fô Fð FàˆD�‰MŒMˆMØˆÐ-°´Ñ=Ñ>Ô>Ð>ØˆÐ.Ñ/Ô/Ð/ØˆÐÑ Ô Ð ØˆˆS‰	Œ	ˆ	ð 	ˆÐ Ñ!Ô!Ð!ØˆÐ"Ñ#Ô#Ð#ØˆˆÐ8HÐ8HÐ8HÐJÑKÔKÐKØˆˆZÑÔÐØˆˆW‰ŒˆØˆÐÑÔÐØˆˆÐ"2Ð"2Ð"2Ð4Ñ5Ô5Ð5ØˆˆS‰	Œ	ˆ	ØˆÐDØÔ˜dœmðH-ñ -ñ 	.ô 	.ð 	.àˆˆS‰	Œ	ˆ	ØˆˆX‰ŒˆØˆ‰ŒˆØˆÐÑÔÐØˆÐ+Ñ,Ô,Ð,ØˆˆX‰ŒˆØˆŒˆˆs   ÎN1Î1&Oc                 ó8  ‡ — t          |t          ¦  «        rd|›d�S t          |t          t          f¦  «        rOˆ fd„|D ¦   «         }t	          |¦  «        dk    r|                     d¦  «         dd                     |¦  «        ›d�S |                     ¦   «         S )	Nr8   r9   c                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r'   )Ú_to_py)rL   Úitemr   s     €r   rN   z%Recompiler._to_py.<locals>.<listcomp>Ñ  s%   ø€ Ð3Ð3Ð3¨�4—;’;˜tÑ$Ô$Ð3Ð3Ð3r   r   r7   ú(rP   rQ   )r™   r•   Úlistrª   r2   ra   rT   r"   )r   r½   Úreps   `  r   r  zRecompiler._to_pyÍ  s�   ø€ Ý�a�ÑÔð 	"ð 	"Ø˜a˜a�>Ð!Ý�a�$¥˜Ñ'Ô'ð 	-Ø3Ð3Ð3Ð3°Ð3Ñ3Ô3ˆCÝ�3‰xŒx˜1Š}ˆ}Ø—
’
˜2‘”�øØ ŸXšX c™]œ]˜]˜]Ð,Ð,Ø×ÒÑ!Ô!Ð!r   c           	      óV  — || _         | j        } |d¦  «          |d¦  «         t          | j        j        pd¦  «        }t          |¦  «        D ]r}| j        j        |         }	 |j        d d…         \  }}n)# t          $ r t          d| j        ›d|›d�¦  «        ‚w xY w|�t          d¦  «        ‚ |d	||fz  ¦  «         Œs |¦   «           |d
| j	        ›d�¦  «          |d| j
        fz  ¦  «         d | _
        t          | j        ¦  «        | _        d„ | j        D ¦   «         } |d|                      d                     |¦  «        ¦  «        ›d�¦  «         t          d„ | j                             ¦   «         D ¦   «         ¦  «        }	| j        D ]M}
| j        |
         }t          |¦  «        dk    r+|
dk    r% |d|
›d|                      |¦  «        ›d�¦  «         ŒN|dk    r9 |dd                     d„ t          |¦  «        D ¦   «         ¦  «        ›d�¦  «          |d¦  «         d S )Nz# auto-generated filezimport _cffi_backendr'   rf   rþ   rÿ   r   zMnot implemented yet: ffi.include() of a C-based ffi inside a Python-based ffizfrom %s import ffi as _ffi%dzffi = _cffi_backend.FFI('rO   z    _version = 0x%x,c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r'   )r!   )rL   r:   s     r   rN   z3Recompiler.write_py_source_to_f.<locals>.<listcomp>÷  s$   € ÐDÐDÐD¨b�R×'Ò'Ñ)Ô)ÐDÐDÐDr   z    _types = r7   rP   c                 ó   — g | ]	\  }}||f‘Œ
S r'   r'   rû   s      r   rN   z3Recompiler.write_py_source_to_f.<locals>.<listcomp>ù  rü   r   r   rÐ   z    _zs = z    _includes = (r   c                 ó   — g | ]}d |z  ‘ŒS )z_ffi%dr'   ©rL   r­   s     r   rN   z3Recompiler.write_py_source_to_f.<locals>.<listcomp>  s   € ÐEÐEÐE¨A˜8 a™<ÐEÐEÐEr   z,),rQ   )rà   rã   r2   r{   r  Úranger  rÅ   r   r|   r   rª   r–   r  rT   r  r’   rÃ   rÙ   rØ   )r   rç   r  Únum_includesr­   r  r  r  Ú	types_lstr  rÉ   rÊ   s               r   rå   zRecompiler.write_py_source_to_f×  s¾  € ØˆŒØŒzˆð 	ˆÐ$Ñ%Ô%Ð%ØˆÐ#Ñ$Ô$Ð$õ ˜4œ8Ô2Ð8°bÑ9Ô9ˆÝ�|Ñ$Ô$ð 	Mð 	MˆAØ!œXÔ4°QÔ7ˆNð4à"Ô3°B°Q°BÔ7ñ 6Ð$ o oøå!ð 4ð 4ð 4Ý'Ð'ð œ˜˜ . . .ð3ñ4ô 4ð 4ð4øøøð
 Ð*Ý'ð4ñ5ô 5ð 5ð ˆDÐ/Ð3GÈÐ2KÑKÑLÔLÐLÐLØˆ‰ŒˆØˆˆ°Ô0@Ð0@Ð0@ÐBÑCÔCÐCØˆÐ# t¤}Ð&6Ñ6Ñ7Ô7Ð7ØˆŒõ   ¤Ñ0Ô0ˆŒØDÐD°D´OÐDÑDÔDˆ	Øˆˆ 4§;¢;¨r¯wªw°yÑ/AÔ/AÑ#BÔ#BÐ#BÐ#BÐDÑEÔEÐEÝÐNÐN°d´o×6KÒ6KÑ6MÔ6MÐNÑNÔNÑOÔOˆð œð 	Gð 	GˆIØ”*˜YÔ'ˆCÝ�3‰xŒx˜!Š|ˆ| 	¨WÒ 4Ð 4Ø��¨¨¨°D·K²KÀÑ4DÔ4DÐ4DÐ4DÐEÑFÔFÐFøð ˜!ÒÐØˆDˆDØ—	’	ÐEÐEµ°|Ñ1DÔ1DÐEÑEÔEÑFÔFÐFÐFðIñ Jô Jð Jð 	ˆˆS‰	Œ	ˆ	ˆ	ˆ	s   Á$A7Á7&Bc                 ó   — | j         |         S r   )r’   )r   Útypes     r   Ú_gettypenumzRecompiler._gettypenum  s   € àŒ˜tÔ$Ð$r   c           
      ó¦  — d}t          |t          j        ¦  «        rË|                     ¦   «         s·|                     ¦   «         r|j        dk    rd}d|j        z  }nˆt          |t          j        ¦  «        rd|                     d¦  «        ›d�}nT|                     d¦  «        }d|›d|j                             dd	¦  «        ›�}|d
v r|  	                    t          ¦  «         d}nþt          |t          j        ¦  «        r|                      ||||¦  «         d S t          |t          j        t          j        f¦  «        rH|                      d||                      |¦  «        |fz  ¦  «         |                      d|z  ¦  «         d S t          |t          j        ¦  «        r3d|                     d¦  «        z  }d|                      |¦  «        z  }d}nt#          |¦  «        ‚|                      d|›d|›d|›|›d�¦  «         |                      d|›d|                     d¦  «        ›d|›d�¦  «         |                      d|z  ¦  «         d S )Nr7   Ú_BoolÚ_cffi_to_c_intz, %sr  z)_cffi_to_c_doublez)_cffi_to_c_r0   r¿   ©Úchar16_tÚchar32_tz-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 = ú);z  if (z == (rQ   z && PyErr_Occurred()))r™   r   r›   Úis_complex_typeÚis_integer_typer   ÚUnknownFloatTypeÚ
get_c_nameÚreplacerƒ   ÚVERSION_CHAR16CHAR32rœ   Ú"_convert_funcarg_to_c_ptr_or_arrayr�   rã   r+  rž   r5   )	r   r�   ÚfromvarÚtovarÚerrcodeÚextraargÚ	converterÚcnameÚerrvalues	            r   Ú_convert_funcarg_to_cz Recompiler._convert_funcarg_to_c  sŒ  € ØˆÝ�b�%Ô1Ñ2Ô2ð #	*¸2×;MÒ;MÑ;OÔ;Oð #	*Ø×!Ò!Ñ#Ô#ð =¨¬°7Ò(:Ð(:Ø,�	Ø! B¤GÑ+��Ý˜B¥Ô 6Ñ7Ô7ð 	=ð 	=ð 8:·}²}ÀRÑ7HÔ7HÐ7HÐ7HÐJ�	�	àŸš bÑ)Ô)��Ø38°5°5Ø35´7·?²?À3ÈÑ3LÔ3LÐ3LðN�	àÐ4Ð4Ð4Ø×&Ò&Õ';Ñ<Ô<Ð<ØˆHˆHå˜�EÔ-Ñ.Ô.ð 	*Ø×3Ò3°B¸Ø49¸7ñDô Dð DàˆFå˜�eÔ7½Ô9PÐQÑRÔRð 	*ð �JŠJÐOØ × 0Ò 0°Ñ 4Ô 4°gÐ>ñ?ñ @ô @ð @à�JŠJ�y 7Ñ*Ñ+Ô+Ð+ØˆFå˜�EÔ1Ñ2Ô2ð 	*Ø0°2·=²=ÀÑ3DÔ3DÑDˆIØ)¨D×,<Ò,<¸RÑ,@Ô,@Ñ@ˆHØˆHˆHõ & bÑ)Ô)Ð)à�
Š
ˆ
¨¨¨°	°	°	¸7¸7ÀHÀHÀHÐMÑNÔNÐNØ�
Š
ˆ
ØˆEˆE�2—=’= Ñ$Ô$Ð$Ð$ h h hð0ñ 	1ô 	1ð 	1à�
Š
�9˜wÑ&Ñ'Ô'Ð'Ð'Ð'r   c                 ó¼   — t          |t          j        ¦  «        rA|                     d¦  «         |                     d¦  «         |                     d¦  «         d S d S )NzPy_ssize_t datasizez-struct _cffi_freeme_s *large_args_free = NULLzIif (large_args_free != NULL) _cffi_free_array_arguments(large_args_free);)r™   r   rœ   Úadd)r   r�   Ú	localvarsÚ	freeliness       r   Ú_extra_local_variablesz!Recompiler._extra_local_variables;  su   € Ý�b�%Ô+Ñ,Ô,ð 	KØ�MŠMÐ/Ñ0Ô0Ð0Ø�MŠMÐIÑJÔJÐJØ�MŠMð Jñ Kô Kð Kð Kð Kð	Kð 	Kr   c                 óô  — |                       d¦  «         |                       d|                      |¦  «        ||fz  ¦  «         |                       d¦  «         |                       d|›d|                     d¦  «        ›d�¦  «         |                       d|                      |¦  «        ||fz  ¦  «         |                       d	¦  «         |                       d
|z  ¦  «         |                       d¦  «         d S )Nz1  datasize = _cffi_prepare_pointer_call_argument(z(      _cffi_type(%d), %s, (char **)&%s);z  if (datasize != 0) {z    z  = ((size_t)datasize) <= 640 ? (r7   z!)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;z  })rã   r+  r8  )r   r�   r<  r=  r>  s        r   r;  z-Recompiler._convert_funcarg_to_c_ptr_or_arrayB  s  € Ø�
Š
ÐFÑGÔGÐGØ�
Š
Ð=Ø×Ò˜RÑ Ô  '¨5ðA2ñ 2ñ 	3ô 	3ð 	3à�
Š
Ð+Ñ,Ô,Ð,Ø�
Š
ˆ
àˆEˆE�2—=’= Ñ$Ô$Ð$Ð$ð&ñ 	'ô 	'ð 	'ð 	�
Š
ð #Ø&*×&6Ò&6°rÑ&:Ô&:¸GÀUÐ%KñLñ 	Mô 	Mð 	Mà�
Š
ÐAÑBÔBÐBØ�
Š
�; Ñ(Ñ)Ô)Ð)Ø�
Š
�5ÑÔÐÐÐr   c                 ó(  — t          |t          j        ¦  «        rÈ|                     ¦   «         r|j        dk    rd|›d|j        ›d�S t          |t          j        ¦  «        rd|›d�S |j        dk    rV|                     ¦   «         sB|j                             dd¦  «        }|d	v r|                      t          ¦  «         d
|›d|›d�S d||  
                    |¦  «        fz  S t          |t          j        t          j        f¦  «        rd||  
                    |¦  «        fz  S t          |t          j        ¦  «        r1d||  
                    t          j        |j        ¦  «        ¦  «        fz  S t          |t          j        ¦  «        rI|j        €(t#          d|                     ¦   «         ›d|›d�¦  «        ‚d||  
                    |¦  «        fz  S t          |t          j        ¦  «        rd||  
                    |¦  «        fz  S t)          |¦  «        ‚)Nr-  z_cffi_from_c_int(r   rQ   z_cffi_from_c_double(úlong doubler0   r¿   r/  Ú_cffi_from_c_r  z/_cffi_from_c_deref((char *)&%s, _cffi_type(%d))z0_cffi_from_c_pointer((char *)%s, _cffi_type(%d))r9   z' is used as z, but is opaquez0_cffi_from_c_struct((char *)&%s, _cffi_type(%d)))r™   r   r›   r6  r   r7  r5  r9  rƒ   r:  r+  rœ   rž   Ú	ArrayTyper  r¤   ÚfldnamesÚ	TypeErrorr  r¥   r5   )r   r�   ÚvarÚcontextrA  s        r   Ú_convert_expr_from_czRecompiler._convert_expr_from_cP  sP  € Ý�b�%Ô1Ñ2Ô2ð 	*Ø×!Ò!Ñ#Ô#ð /¨¬°7Ò(:Ð(:Ð(:Ø58°S°S¸"¼'¸'¸'ÐBÐBÝ˜B¥Ô 6Ñ7Ô7ð 	/ð 	/Ø47°C°CÐ9Ð9Ø”˜MÒ)Ð)°"×2DÒ2DÑ2FÔ2FÐ)ØœŸš¨¨SÑ1Ô1�ØÐ4Ð4Ð4Ø×&Ò&Õ';Ñ<Ô<Ð<øØ05°°°s°s°sÐ;Ð;àHØ˜×)Ò)¨"Ñ-Ô-ðL/ñ /ð /å˜�UÔ.µÔ0EÐFÑGÔGð 	*ØEØ�T×%Ò% bÑ)Ô)ðI+ñ +ð +å˜�EœOÑ,Ô,ð 	*ØEØ�T×%Ò%¥eÔ&7¸¼Ñ&@Ô&@ÑAÔAðICñ Cð Cå˜�EÔ/Ñ0Ô0ð 
	*ØŒ{Ð"Ý�iØ—N’NÑ$Ô$Ð$Ð$ g g gð!/ñ 0ô 0ð 0àEØ�T×%Ò% bÑ)Ô)ðI+ñ +ð +å˜�EœNÑ+Ô+ð 	*ØDØ�T×%Ò% bÑ)Ô)ðH+ñ +ð +õ & bÑ)Ô)Ð)r   c                 ó6   — |                       |d|›d�¦  «        S )Nz(*(z *)0))Ú_global_type©r   r�   r   s      r   Ú_typedef_typezRecompiler._typedef_types  s!   € Ø× Ò   °T°T°TÐ%;Ñ<Ô<Ð<r   c                 óX   — |                       |                      ||¦  «        ¦  «         d S r   )r¶   rV  rU  s      r   Ú!_generate_cpy_typedef_collecttypez,Recompiler._generate_cpy_typedef_collecttypev  s,   € Ø×Ò˜d×0Ò0°°TÑ:Ô:Ñ;Ô;Ð;Ð;Ð;r   c                 ó   — d S r   r'   rU  s      r   Ú_generate_cpy_typedef_declz%Recompiler._generate_cpy_typedef_decly  ó   € Øˆr   c                 ó|   — | j         |         }| j        d                              t          ||¦  «        ¦  «         d S )NrÓ   )r’   rØ   ra   rs   )r   r�   r   rC   s       r   Ú_typedef_ctxzRecompiler._typedef_ctx|  s9   € Ø”_ RÔ(ˆ
ØŒ
�:Ô×%Ò%¥l°4¸Ñ&DÔ&DÑEÔEÐEÐEÐEr   c                 óX  — |                       ||¦  «        }|                      ||¦  «         t          |dd ¦  «        dk    r|                      ||j        d ¬¦  «         d S t          |t          j        ¦  «        r/|                      |j        |j        j        |j        |¬¦  «         d S d S )NÚoriginÚunknown_type)Ú
approxname)ra  Ú	named_ptr)	rV  r]  r§   Ú_struct_ctxr   r™   r   ÚNamedPointerTypeÚtotyperU  s      r   Ú_generate_cpy_typedef_ctxz$Recompiler._generate_cpy_typedef_ctx€  s¾   € Ø×Ò  DÑ)Ô)ˆØ×Ò˜"˜dÑ#Ô#Ð#Ý�2�x Ñ&Ô&¨.Ò8Ð8Ø×Ò˜R ¤°TÐÑ:Ô:Ð:Ð:Ð:Ý˜�EÔ2Ñ3Ô3ð 	+Ø×Ò˜RœY¨¬	¬À2Ä7Ø')ð ñ +ô +ð +ð +ð +ð	+ð 	+r   c                 ó¢   — |                       |                     ¦   «         ¦  «         |j        r| j        s|                       |¦  «         d S d S d S r   )r¶   r·   Úellipsisr}   rU  s      r   Ú"_generate_cpy_function_collecttypez-Recompiler._generate_cpy_function_collecttypeŒ  sd   € Ø×Ò˜b×0Ò0Ñ2Ô2Ñ3Ô3Ð3ØŒ;ð 	&˜tÔ4ð 	&Ø×!Ò! "Ñ%Ô%Ð%Ð%Ð%ð	&ð 	&ð 	&ð 	&r   c           
      ó,  — | j         rJ ‚t          |t          j        ¦  «        sJ ‚|j        r|                      ||¦  «         d S | j        }t          |j        ¦  «        }|dk    rd}n|dk    rd}nd}g }g }d|z  }t          |j        ¦  «        D ]I\  }	}
| 
                    |
                     d|	z  |¦  «        ¦  «         | 
                    d|	z  ¦  «         ŒJd	                     |¦  «        }|pd
}|j        r|j        dz   }nd}|›d|›d|›d�} |d|j                             |¦  «        ›�¦  «          |d¦  «         d	                     |¦  «        }d}t          |j        t          j        ¦  «        rd} |d|›|›d|›d�¦  «          |d¦  «          |d¦  «          |d¦  «          |d|›d|›d�¦  «          |d¦  «         d|z  }t          |j        ¦  «        D ],\  }	}
|
                     d|	z  |¦  «        } |d|z  ¦  «         Œ-t!          ¦   «         }t!          ¦   «         }|j        D ]}
|                      |
||¦  «         Œt%          |¦  «        D ]} |d|›d�¦  «         Œt          |j        t          j        ¦  «        s<d}d|z  }d|j                             d|¦  «        z  } ||¦  «          |d¦  «         nd }d}t          |j        ¦  «        dk    r’t'          t          |j        ¦  «        ¦  «        }|D ]}	 |d |	z  ¦  «         Œ |¦   «           |d!|t          |¦  «        t          |¦  «        d	                     d"„ |D ¦   «         ¦  «        fz  ¦  «          |d#¦  «          |¦   «          t          |j        ¦  «        D ]-\  }	}
|                      |
d$|	z  d|	z  d%¦  «          |¦   «          Œ. |d&¦  «          |d'¦  «         d(„ t'          t          |j        ¦  «        ¦  «        D ¦   «         }d	                     |¦  «        } |d)|›|›d|›d*�¦  «          |d+¦  «          |d,¦  «          |¦   «           |d-¦  «         |dk    r |d.¦  «         |rG |d/|                      |j        d0d1¦  «        z  ¦  «         |D ]} |d|z   ¦  «         Œ |d2¦  «         n)|D ]} |d|z   ¦  «         Œ |d3¦  «          |d4¦  «          |d¦  «          |d5¦  «         d6„ }d7}g }g }d|z  }t          |j        ¦  «        D ]`\  }	}
d} ||
¦  «        rd8}d9}|
                     d:||	fz  |¦  «        }| 
                    |¦  «         | 
                    d;||	fz  ¦  «         Œa|j        } ||¦  «        rCd|z  }|                     d<|¦  «        }|                     d|¦  «         t          j        }d }d=}d9}|rŸd	                     |¦  «        }|pd
}|›d|›d|›d�} |d|                     |¦  «        ›�¦  «          |d¦  «         |r ||¦  «         d	                     |¦  «        } |d)|›|›d|›d*�¦  «         |r |d>¦  «          |d¦  «         n |d?|›d@|›�¦  «          |dA¦  «          |¦   «          d S )BNr   Únoargr   Úarg0r˜   úargument of %sz x%dúx%dr   Úvoidr0   r7   Ú_cffi_d_r  rQ   ústatic r  zreturn r3  r4  r  z#ifndef PYPY_VERSIONzstatic PyObject *Ú_cffi_f_z(PyObject *self, PyObject *z  %s;ú;z	result = úresult of %sz resultz  PyObject *pyresult;z  PyObject *arg%d;z1  if (!PyArg_UnpackTuple(args, "%s", %d, %d, %s))c                 ó   — g | ]}d |z  ‘ŒS )z&arg%dr'   r%  s     r   rN   z:Recompiler._generate_cpy_function_decl.<locals>.<listcomp>Þ  s   € Ð5Ð5Ð5¨A˜8 a™<Ð5Ð5Ð5r   r  zarg%dzreturn NULLz  Py_BEGIN_ALLOW_THREADSz  _cffi_restore_errno();c                 ó   — g | ]}d |z  ‘ŒS )rn  r'   r%  s     r   rN   z:Recompiler._generate_cpy_function_decl.<locals>.<listcomp>é  s   € ÐAÐAÐA¨˜% !™)ÐAÐAÐAr   ú  { z); }z  _cffi_save_errno();z  Py_END_ALLOW_THREADSz  (void)self; /* unused */z  (void)noarg; /* unused */z  pyresult = %s;Úresultzresult typez  return pyresult;z  Py_INCREF(Py_None);z  return Py_None;rø   c                 ó’   — t          | t          j        ¦  «        p-t          | t          j        ¦  «        o|                      ¦   «         S r   )r™   r   r¤   ÚPrimitiveTyper5  )r*  s    r   Úneed_indirectionz@Recompiler._generate_cpy_function_decl.<locals>.need_indirection  s@   € Ý˜t¥UÔ%8Ñ9Ô9ð -Ý ¥eÔ&9Ñ:Ô:ð ,Ø×)Ò)Ñ+Ô+ð.r   Fr   Tz %sx%dz%sx%dz *resultz
*result = z  return result;z#  define _cffi_f_z	 _cffi_d_rù   )r}   r™   r   rž   rh  Ú_generate_cpy_constant_declrã   r2   r˜   r¦   ra   r8  rT   Úabirx  rš   rÚ   rH  r”   r&  rC  rR  ÚinsertÚ	void_type)r   r�   r   r  ÚnumargsÚargnameÚ	argumentsÚcall_argumentsrQ  r­   r*  Úrepr_argumentsr}  Úname_and_argumentsÚresult_codeÚargrF  rG  rý   Úresult_declÚrngÚfreeliner{  Ú
differenceÚindirectionÚ	tp_results                             r   Ú_generate_cpy_function_declz&Recompiler._generate_cpy_function_decl‘  sw  € ØÔ(Ð(Ð(Ð(Ý˜"�eÔ3Ñ4Ô4Ð4Ð4Ð4ØŒ;ð 	ð ×,Ò,¨R°Ñ6Ô6Ð6ØˆFØŒzˆÝ�b”g‘,”,ˆØ�aŠ<ˆ<ØˆGˆGØ˜Š\ˆ\ØˆGˆGàˆGð ˆ	ØˆØ" TÑ)ˆÝ  ¤Ñ)Ô)ð 	-ð 	-‰GˆAˆtØ×Ò˜TŸ_š_¨V°a©Z¸ÑAÔAÑBÔBÐBØ×!Ò! %¨!¡)Ñ,Ô,Ð,Ð,ØŸš 9Ñ-Ô-ˆØ'Ð1¨6ˆØŒ6ð 	Ø”&˜3‘,ˆCˆCàˆCØ36°3°3¸¸¸¸n¸n¸nÐMÐØˆˆ˜BœI×0Ò0Ð1CÑDÔDÐDÐFÑGÔGÐGØˆˆS‰	Œ	ˆ	ØŸš >Ñ2Ô2ˆØˆÝ�b”i¥¤Ñ0Ô0ð 	ØˆKØˆˆ˜k˜k¨4¨4¨4°°°Ð@ÑAÔAÐAØˆˆS‰	Œ	ˆ	àˆÐ#Ñ$Ô$Ð$àˆÐ Ñ!Ô!Ð!Øˆˆ¸4¸4¸4ÀÀÀÐIÑJÔJÐJØˆˆS‰	Œ	ˆ	à" TÑ)ˆÝ  ¤Ñ)Ô)ð 	 ð 	 ‰GˆAˆtØ—/’/ &¨1¡*¨gÑ6Ô6ˆCØˆD�˜3‘ÑÔÐÐå‘E”Eˆ	Ý‘E”Eˆ	Ø”Gð 	Dð 	DˆDØ×'Ò'¨¨i¸ÑCÔCÐCÐCÝ˜9Ñ%Ô%ð 	$ð 	$ˆDØˆDˆD˜D˜D˜DÐ"Ñ#Ô#Ð#Ð#å˜"œ)¥U¤^Ñ4Ô4ð 	Ø%ˆKØ$ tÑ+ˆGØ! B¤I×$8Ò$8¸ÀGÑ$LÔ$LÑLˆKØˆD�ÑÔÐØˆDÐ(Ñ)Ô)Ð)Ð)àˆKØˆKåˆrŒw‰<Œ<˜!ÒÐÝ�˜BœG™œÑ%Ô%ˆCØð /ð /�Ø�Ð)¨AÑ-Ñ.Ô.Ð.Ð.ØˆD‰FŒFˆFØˆDÐDØ•c˜#‘h”h¥ C¡¤Ø—	’	Ð5Ð5°Ð5Ñ5Ô5Ñ6Ô6ðH8ñ 8ñ 9ô 9ð 9ð ˆDÐ#Ñ$Ô$Ð$Øˆ‰Œˆå  ¤Ñ)Ô)ð 	ð 	‰GˆAˆtØ×&Ò& t¨W°q©[¸%À!¹)Ø'4ñ6ô 6ð 6àˆD‰FŒFˆFˆFàˆÐ'Ñ(Ô(Ð(ØˆÐ'Ñ(Ô(Ð(ØAÐA­Uµ3°r´w±<´<Ñ-@Ô-@ÐAÑAÔAˆØŸš >Ñ2Ô2ˆØˆˆ + +¨t¨t¨t°^°^°^ÐDÑEÔEÐEØˆÐ$Ñ%Ô%Ð%ØˆÐ%Ñ&Ô&Ð&Øˆ‰ŒˆàˆÐ)Ñ*Ô*Ð*Ø�aŠ<ˆ<ØˆDÐ.Ñ/Ô/Ð/Øð 
	&ØˆDÐ#Ø×*Ò*¨2¬9°hÀÑNÔNñOñ Pô Pð Pà%ð &ð &�Ø��T˜H‘_Ñ%Ô%Ð%Ð%ØˆDÐ%Ñ&Ô&Ð&Ð&à%ð &ð &�Ø��T˜H‘_Ñ%Ô%Ð%Ð%ØˆDÐ(Ñ)Ô)Ð)ØˆDÐ$Ñ%Ô%Ð%ØˆˆS‰	Œ	ˆ	àˆˆW‰Œˆð	.ð 	.ð 	.ð ˆ
Øˆ	ØˆØ" TÑ)ˆÝ  ¤Ñ)Ô)ð 	>ð 	>‰GˆAˆtØˆKØÐ Ñ%Ô%ð "Ø!�Ø!�
Ø—/’/ (¨k¸1Ð-=Ñ"=¸wÑGÔGˆCØ×Ò˜SÑ!Ô!Ð!Ø×!Ò! '¨[¸!Ð,<Ñ"<Ñ=Ô=Ð=Ð=Ø”Iˆ	ØÐ˜IÑ&Ô&ð 	Ø$ tÑ+ˆGØ×&Ò& z°7Ñ;Ô;ˆCØ×Ò˜Q Ñ$Ô$Ð$ÝœˆIØˆKØ&ˆKØˆJØð 	CØ!ŸYšY yÑ1Ô1ˆNØ+Ð5¨vˆNØ7:°s°s¸D¸D¸DØ7E°~°~ð"GÐàˆDˆD 	× 4Ò 4Ð5GÑ HÔ HÐ HÐJÑKÔKÐKØˆD�‰IŒIˆIØð "Ø��[Ñ!Ô!Ð!Ø!ŸYšY ~Ñ6Ô6ˆNØˆDˆD k k°4°4°4¸¸¸ÐHÑIÔIÐIØð )Ø�Ð'Ñ(Ô(Ð(ØˆD�‰IŒIˆIˆIàˆDˆD°d°d°d¸D¸DÐAÑBÔBÐBàˆˆX‰ŒˆØˆ‰Œˆˆˆr   c           
      ó¦  — |j         r| j        s|                      ||¦  «         d S | j        |                     ¦   «                  }t          |j        ¦  «        }| j        rt          }n#|dk    rt          }n|dk    rt          }nt          }| j        d                              t          |d|z  t          ||¦  «        d|z  ¬¦  «        ¦  «         d S )Nr   r   rÏ   z
_cffi_f_%sz
_cffi_d_%s)r   )rh  r}   Ú_generate_cpy_constant_ctxr’   r·   r2   r˜   ÚOP_DLOPEN_FUNCÚOP_CPYTHON_BLTN_NÚOP_CPYTHON_BLTN_OÚOP_CPYTHON_BLTN_VrØ   ra   r   r©   )r   r�   r   rC   r€  Ú	meth_kinds         r   Ú_generate_cpy_function_ctxz%Recompiler._generate_cpy_function_ctx3  sæ   € ØŒ;ð 	˜tÔ4ð 	Ø×+Ò+¨B°Ñ5Ô5Ð5ØˆFØ”_ R×%7Ò%7Ñ%9Ô%9Ô:ˆ
Ý�b”g‘,”,ˆØÔ ð 	*Ý&ˆIˆIØ˜Š\ˆ\Ý)ˆIˆIØ˜Š\ˆ\Ý)ˆIˆIå)ˆIØŒ
�8Ô×#Ò#Ý�t˜\¨DÑ0Ý˜i¨Ñ4Ô4Ø(¨4Ñ/ð1ñ 1ô 1ñ	2ô 	2ð 	2ð 	2ð 	2r   c                 óø   — t          |t          j        ¦  «        r_|j        }|dk    r|                     d¦  «        }d|›d|›d�}|                      |d|z  |j        ¦  «        }t          j        ||¦  «        }|S )Nú...r   z_cffi_array_len(((ú)0)->rQ   ú%s[0])r™   r   rM  r    r8  r»   r  )r   Ú	tp_structÚ
field_nameÚtp_fieldÚactual_lengthÚptr_struct_nameÚtp_items          r   r»   zRecompiler._field_typeI  sŠ   € Ý�h¥¤Ñ0Ô0ð 	?Ø$œOˆMØ Ò%Ð%Ø"+×"6Ò"6°sÑ";Ô";��à#�O�O Z Z Zð!1�à×&Ò& y°'¸JÑ2FØ'/¤}ñ6ô 6ˆGå” w°Ñ>Ô>ˆHØˆr   c                 óš   — |                       |¦  «         | j        r,|                     ¦   «         D ]}|                      |¦  «         Œd S d S r   )r¶   r}   Úanonymous_struct_fieldsÚ_struct_collecttype)r   r�   Úfldtypes      r   r£  zRecompiler._struct_collecttypeU  sg   € Ø×Ò˜bÑ!Ô!Ð!ØÔ ð 	2à×5Ò5Ñ7Ô7ð 2ð 2�Ø×(Ò(¨Ñ1Ô1Ð1Ð1ð	2ð 	2ð2ð 2r   c           
      ó$  — |j         €d S | j        }d|›�} |d¦  «          |d|›d|›d�¦  «          |d¦  «          |d¦  «          |d¦  «         |                      |¦  «        D ]ÿ\  }}}}		 |                     ¦   «         s|d	k    r|d
k    r |d|›d|›d|›d�¦  «         Œ>t	          |t
          j        ¦  «        rJ|j        �|j        dk    r8|j        }|dz   }t	          |t
          j        ¦  «        r|j        ®-|j        dk    °8 |d| 	                    dd|z  |	¬¦  «        ›d|›d�¦  «         ŒÎ# t          $ r%}
 |dt          |
¦  «        z  ¦  «         Y d }
~
Œød }
~
ww xY w |d¦  «          |d|›d|›d�¦  «          |¦   «          d S )NÚ_cffi_checkfld_Ú_CFFI_UNUSED_FNzstatic void r  z *p)r  z8  /* only to generate compile-time warnings or errors */z
  (void)p;r   r7   z  (void)((p->z) | 0);  /* check that 'rö   z' is an integer */r˜  z[0]rw  z*tmpzfield %r©rË   z = &p->z; (void)tmp; }z
  /* %s */r  zstruct _cffi_align_z { char x; z y; };)r¸   rã   r³   r6  r™   r   rM  r    r  r8  r   r•   )r   r�   rA  ra  r  ÚcheckfuncnameÚfnameÚftyper-   ÚfqualrÎ   s              r   Ú_struct_declzRecompiler._struct_decl\  s;  € ØŒ;ÐØˆFØŒzˆˆØ/9¨zÐ;ˆØˆÐÑÔÐØˆˆ¨¨¨°u°u°uÐ=Ñ>Ô>Ð>ØˆˆS‰	Œ	ˆ	ØˆÐGÑHÔHÐHØˆˆ\ÑÔÐØ-1×->Ò->¸rÑ-BÔ-Bð 	,ð 	,Ñ)ˆE�5˜( Eð,Ø×(Ò(Ñ*Ô*ð ¨h¸!ªm¨mà ’{�{Ø˜˜Ø05°°°u°u°u¸e¸e¸eðEñ Fô Fð Fàõ " %­¬Ñ9Ô9ð *Ø!œLÐ0°E´LÀEÒ4IÐ4IØ!œJ�EØ! E™M�Eõ " %­¬Ñ9Ô9ð *Ø!œLÐ0°E´LÀEÒ4IÐ4Ið ��Ø×$Ò$ V¨Z¸Ñ-=ÀUÐ$ÑKÔKÐKÐKØ�E�Eðñ ô ð ð øõ %ð ,ð ,ð ,Ø��\¥C¨¡F¤FÑ*Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+øøøøð,øøøàˆˆS‰	Œ	ˆ	Øˆˆ¸:¸:¸:ÀuÀuÀuÐMÑNÔNÐNØˆ‰Œˆˆˆs   Á15D7Â'BD7Ä7
E&ÅE!Å!E&Nc                 óˆ  — | j         |         }d }g }t          |t          j        ¦  «        r|                     d¦  «         |j        €|                     d¦  «         d}|| j        j        j        vr�|�|| j        j        j        vrˆ|j        €n>|j	        s!t          |                     ¦   «         ¦  «        rn|                     d¦  «         |j        r:|j        dk    rt          |›d|j        ›d�¦  «        ‚|                     d¦  «         n|                     d	¦  «         d
}d                     |¦  «        pd}g }|�€¥t          |                      |¦  «        ¦  «        }	|	D �]\  }
}}}|                      ||
|¦  «        }|                      |d|j        ›d|
›d�¦  «         t(          }|dk    rt*          }d|z  }nK|�!t          |t          j        ¦  «        r
|j        €d}n%d|€|                     d¦  «        n|j        ›d|
›d�}|�|dk    rd}n-|�d|j        ›d|
›d�}nd|                     d¦  «        ›d|
›d�}|                     t3          |
|||t5          || j         |         ¦  «        ¦  «        ¦  «         �Œt7          | j        d         ¦  «        }| j        d                              |¦  «         |€d}d}d }n'|�d!|j        ›d"�}d#}nd$|›d�}d%|›d&�}d }nd}d'}d'}|}| j        d(                              t=          |j        |||||||¦  «        ¦  «         | j                              |¦  «         d S ))NÚ_CFFI_F_UNIONÚ_CFFI_F_OPAQUEÚopaqueÚ_CFFI_F_CHECK_FIELDSr   z is declared with 'pack=zi'; only 0 or 1 are supported in API mode (try to use "...;", which does not require a 'pack' declaration)Ú_CFFI_F_PACKEDÚ_CFFI_F_EXTERNALÚexternalú|Ú0zfield 'rö   r9   r   z%d /* bits */z
(size_t)-1z	sizeof(((r   r™  rQ   z(size_t)(((char *)&((z)4096)->z) - (char *)4096)z	offsetof(r7   r   rÐ   z
(size_t)-2éþÿÿÿÚunnamedz	sizeof(*(z)0)z-1 /* unknown alignment */zsizeof(zoffsetof(struct _cffi_align_z, y)r÷   rÑ   )!r’   r™   r   Ú	UnionTypera   r¸   r{   r¹   rº   ÚpartialÚanyr¢  Úpackedr5   rT   r  r³   r»   Ú_check_not_opaquer   r;   r<   rM  r    r8  r)   r©   r2   rØ   ÚextendrA   rÛ   rE  )r   r�   rA  ra  rb  rC   Úreason_for_not_expandingrD   rH   r±   Úfldnamer¤  r-   r¬  r:   r   ÚoffsetrG   ÚalignrF   s                       r   rc  zRecompiler._struct_ctx~  s  € Ø”_ RÔ(ˆ
Ø#'Ð ØˆÝ�b�%œ/Ñ*Ô*ð 	*Ø�LŠL˜Ñ)Ô)Ð)ØŒ;ÐØ�LŠLÐ)Ñ*Ô*Ð*Ø'/Ð$Ø�d”hÔ&Ô=Ð=Ð=ØÐ"Ø $¤(Ô"2Ô"IÐIÐIØŒ{Ð"ØØ”ð 5�s 2×#=Ò#=Ñ#?Ô#?Ñ@Ô@ð 5Øà—’Ð3Ñ4Ô4Ð4ØŒyð /Ø”9˜q’=�=Ý-ð ˜˜˜RœY˜Y˜Yð(ñ)ô )ð )ð
 —’Ð-Ñ.Ô.Ð.øà�LŠLÐ+Ñ,Ô,Ð,Ø'1Ð$Ø—’˜‘”Ð& 3ˆØˆØ#Ñ+Ý˜d×/Ò/°Ñ3Ô3Ñ4Ô4ˆJØ5?ð Eñ EÑ1�˜ (¨EØ×*Ò*¨2¨w¸Ñ@Ô@�Ø×&Ò& w wØ:<¼'¸'¸'À7À7À7Ð'KñMô Mð Mõ �Ø˜q’=�=Ý$�BØ*¨XÑ5�D�DØ�]Ý" 7­E¬OÑ<Ô<ð #àœÐ.Ø'�D�Døð /8Ð.?˜Ÿš cÑ*Ô*Ð*Ø09´ð?ð ?à˜˜ð!�Dð �= H°¢M MØ)�F�FØÐ*Ð*à!œ˜˜¨¨¨ð1�F�Fð +ð 46·=²=ÀÑ3DÔ3DÐ3DÐ3DÀgÀgÀgÐN�FØ—’Ý˜g v¨t°XÝ$ R¨¬¸Ô)AÑBÔBñDô DñEô Eð Eñ Eõ !$ D¤J¨wÔ$7Ñ 8Ô 8ÐØŒJ�wÔ×&Ò& xÑ0Ô0Ð0àˆ}Ø#�Ø�Ø#��àÐ(Ð(Ø/8¬~¨~¨~Ð?�DØ8�E�Eð )ð ,1¨5¨5Ð2�D�DØDNÀJÀJÐP�EØ��àˆDØˆEØ "ÐØ.ˆGØŒ
�>Ô"×)Ò)Ý˜BœG Z°¸¸eÀWØ-¨xñ9ô 9ñ	:ô 	:ð 	:ð 	Ô ×$Ò$ RÑ(Ô(Ð(Ð(Ð(r   c                 óæ   — t          |t          j        ¦  «        r!|j        }t          |t          j        ¦  «        °!t          |t          j        ¦  «        r|j        €t          d|z  ¦  «        ‚d S d S )Nz0%s is of an opaque type (not declared in cdef()))r™   r   rM  r  r¤   r¸   rO  )r   r�   Úlocations      r   r¾  zRecompiler._check_not_opaqueÔ  s   € Ý˜�Uœ_Ñ-Ô-ð 	Ø”ˆBõ ˜�Uœ_Ñ-Ô-ð 	å�b�%Ô-Ñ.Ô.ð 	O°2´;Ð3FÝØBÀXÑMñOô Oð Oð	Oð 	OÐ3FÐ3Fr   c                 ó  — t          | j                             ¦   «         ¦  «        }|                     d„ ¬¦  «         |D ]Ë\  }}|| j        vr½|j        rt          d|›d�¦  «        ‚|j                             d¦  «        r1|j        dd …          	                    ¦   «         r|j        dd …         }nA|j        dk    r$|j
        dk    rd}|                      |d¦  «         nt          d|›�¦  «        ‚|                      |d |¦  «         ŒÌd S )	Nc                 ó   — | d         S )Nr   r'   )Útp_orders    r   rŽ   z7Recompiler._add_missing_struct_unions.<locals>.<lambda>á  s
   €  h¨q¤k€ r   r†   zinternal inconsistency: z* is partial but was not seen at this pointú$r   Ú_IO_FILEÚFILE)r  r¢   rÃ   rÝ   rÛ   r»  r5   r   Ú
startswithÚisdigitÚ	forcenamer]  rc  )r   rÊ   r�   Úorderra  s        r   rÜ   z%Recompiler._add_missing_struct_unionsÛ  sJ  € õ
 �4Ô&×,Ò,Ñ.Ô.Ñ/Ô/ˆØ�ŠÐ1Ð1ˆÑ2Ô2Ð2Øð 	7ð 	7‰IˆB�Ø˜Ô1Ð1Ð1Ø”:ð DÝ-Ð-à>@¸b¸bð/Cñ Dô Dð Dð ”7×%Ò% cÑ*Ô*ð 5¨r¬w°q°r°r¬{×/BÒ/BÑ/DÔ/Dð 5Ø!#¤¨¨¨¤�J�JØ”W 
Ò*Ð*¨r¬|¸vÒ/EÐ/EØ!'�JØ×%Ò% b¨&Ñ1Ô1Ð1Ð1å-Ð-Ø/1¨rð/4ñ 5ô 5ð 5à× Ò   T¨:Ñ6Ô6Ð6øð	7ð 	7r   c                 ó0   — |                       |¦  «         d S r   )r£  rU  s      r   Ú _generate_cpy_struct_collecttypez+Recompiler._generate_cpy_struct_collecttypeò  s   € Ø× Ò  Ñ$Ô$Ð$Ð$Ð$r   c                 ór   — |                      d¦  «        }d|v r||                     dd¦  «        fS |d|z   fS )Nr7   r0   r¿   )r8  r9  )r   r�   rA  s      r   Ú_struct_nameszRecompiler._struct_namesö  sD   € Ø—’˜bÑ!Ô!ˆØ�%ˆ<ˆ<Ø˜%Ÿ-š-¨¨SÑ1Ô1Ð1Ð1à˜# ™+Ð%Ð%r   c                 óH   —  | j         |g|                      |¦  «        ¢R Ž  d S r   )r­  rÓ  rU  s      r   Ú_generate_cpy_struct_declz$Recompiler._generate_cpy_struct_declý  s1   € ØˆÔ˜"Ð6˜t×1Ò1°"Ñ5Ô5Ð6Ð6Ð6Ð6Ð6Ð6r   c                 óH   —  | j         |g|                      |¦  «        ¢R Ž  d S r   )rc  rÓ  rU  s      r   Ú_generate_cpy_struct_ctxz#Recompiler._generate_cpy_struct_ctx  s1   € ØˆÔ˜Ð5˜d×0Ò0°Ñ4Ô4Ð5Ð5Ð5Ð5Ð5Ð5r   c                 ó”   — t          |t          j        ¦  «        r|                      ||¦  «         d S |                      |¦  «         d S r   )r™   r   r¥   Ú_generate_cpy_enum_collecttyper£  rU  s      r   Ú#_generate_cpy_anonymous_collecttypez.Recompiler._generate_cpy_anonymous_collecttype	  sL   € Ý�b�%œ.Ñ)Ô)ð 	)Ø×/Ò/°°DÑ9Ô9Ð9Ð9Ð9à×$Ò$ RÑ(Ô(Ð(Ð(Ð(r   c                 óœ   — t          |t          j        ¦  «        r|                      |¦  «         d S |                      ||d|z   ¦  «         d S ©NÚtypedef_)r™   r   r¥   Ú_generate_cpy_enum_declr­  rU  s      r   Ú_generate_cpy_anonymous_declz'Recompiler._generate_cpy_anonymous_decl  sS   € Ý�b�%œ.Ñ)Ô)ð 	;Ø×(Ò(¨Ñ,Ô,Ð,Ð,Ð,à×Ò˜b $¨
°TÑ(9Ñ:Ô:Ð:Ð:Ð:r   c                 óž   — t          |t          j        ¦  «        r|                      ||¦  «         d S |                      ||d|z   ¦  «         d S rÜ  )r™   r   r¥   Ú	_enum_ctxrc  rU  s      r   Ú_generate_cpy_anonymous_ctxz&Recompiler._generate_cpy_anonymous_ctx  sS   € Ý�b�%œ.Ñ)Ô)ð 	:Ø�NŠN˜2˜tÑ$Ô$Ð$Ð$Ð$à×Ò˜R  z°DÑ'8Ñ9Ô9Ð9Ð9Ð9r   Úconstc                 óB  — ||f| j         v rt          d|›d|›d�¦  «        ‚| j                              ||f¦  «         | j        }d|›d|›�}|ry |d|z  ¦  «          |d¦  «          |d|›d	�¦  «          |d
|›d|›d�¦  «         |�&|dk    rd|fz  } |d|›d�¦  «          |d¦  «          |d¦  «          |d¦  «         nM|�J ‚ |d|z  ¦  «          |d¦  «          |d|                     d¦  «        ›d|›d�¦  «          |d¦  «          |¦   «          d S )Nzduplicate declaration of z 'r9   Ú_cffi_r¿   z$static int %s(unsigned long long *o)r  z  int n = (z) <= 0;z  *o = (unsigned long long)((z) | 0);  /* check that z is an integer */r   z%dUz  if (!_cffi_check_int(*o, n, z))z    n |= 2;z  return n;r  zstatic void %s(char *o)z  *(r   z)o = rs  )r  r   rE  rã   r8  )r   Úis_intr   r�   Úcategoryr   r  Úfuncnames           r   Ú_generate_cpy_constzRecompiler._generate_cpy_const  s½  € à�dÐ˜tÔ3Ð3Ð3Ý#Ð#Ø6>°h°hÀÀÀÐEñGô Gð GàÔ× Ò  (¨DÐ!1Ñ2Ô2Ð2àŒzˆˆØ$, H H¨d¨dÐ3ˆØð 	ØˆDÐ7¸(ÑBÑCÔCÐCØˆD�‰IŒIˆIØˆDˆD¨4¨4¨4Ð1Ñ2Ô2Ð2ØˆDˆDØ:>¸$¸$ÀÀÀðFñ Gô Gð GàÐ&Ø ’?�?Ø"'¨;¨.Ñ"8�KØ��¸[¸[¸[ÐJÑKÔKÐKØ��]Ñ#Ô#Ð#ØˆD�ÑÔÐØˆD�‰IŒIˆIˆIàÐ&Ð&Ð&ØˆDÐ*¨XÑ5Ñ6Ô6Ð6ØˆD�‰IŒIˆIØˆDˆD R§]¢]°3Ñ%7Ô%7Ð%7Ð%7¸¸¸Ð>Ñ?Ô?Ð?ØˆD�‰IŒIˆIØˆ‰Œˆˆˆr   c                 ón   — |                      ¦   «         }|r| j        r|                      |¦  «         d S d S r   )r6  r}   r¶   ©r   r�   r   ræ  s       r   Ú"_generate_cpy_constant_collecttypez-Recompiler._generate_cpy_constant_collecttype<  sI   € Ø×#Ò#Ñ%Ô%ˆØð 	&˜Ô.ð 	&Ø×!Ò! "Ñ%Ô%Ð%Ð%Ð%ð	&ð 	&r   c                 ó\   — |                      ¦   «         }|                      |||¦  «         d S r   )r6  ré  rë  s       r   r|  z&Recompiler._generate_cpy_constant_declA  s1   € Ø×#Ò#Ñ%Ô%ˆØ× Ò  ¨¨rÑ2Ô2Ð2Ð2Ð2r   c                 ó2  — | j         s*|                     ¦   «         rt          t          d¦  «        }n3| j         rt          }nt
          }| j        |         }t          ||¦  «        }| j        d                              t          |d|z  |¦  «        ¦  «         d S )Nr÷   rÏ   ú_cffi_const_%s)
r}   r6  r©   ÚOP_CONSTANT_INTÚOP_DLOPEN_CONSTÚOP_CONSTANTr’   rØ   ra   r   )r   r�   r   r   Ú
const_kindrC   s         r   r�  z%Recompiler._generate_cpy_constant_ctxE  s¦   € ØÔ$ð 	5¨×);Ò);Ñ)=Ô)=ð 	5Ý�_¨bÑ1Ô1ˆGˆGàÔ$ð )Ý,�
�
å(�
Øœ¨Ô,ˆJÝ˜Z¨Ñ4Ô4ˆGØŒ
�8Ô×#Ò#Ý�tÐ-°Ñ4°gÑ>Ô>ñ	@ô 	@ð 	@ð 	@ð 	@r   c                 ó0   — |                       |¦  «         d S r   )r¶   rU  s      r   rÙ  z)Recompiler._generate_cpy_enum_collecttypeU  s   € Ø×Ò˜bÑ!Ô!Ð!Ð!Ð!r   c                 óF   — |j         D ]}|                      d|¦  «         Œd S )NT)Úenumeratorsré  )r   r�   r   Ú
enumerators       r   rÞ  z"Recompiler._generate_cpy_enum_declX  s6   € Øœ.ð 	7ð 	7ˆJØ×$Ò$ T¨:Ñ6Ô6Ð6Ð6ð	7ð 	7r   c           	      óÔ  — | j         |         }t          t          d¦  «        }| j        r|                     ¦   «          t          |j        |j        ¦  «        D ]9\  }}| j        d          	                    t          |d|z  ||¬¦  «        ¦  «         Œ:|�d|vr| j        sd|z  }d|z  }nn|                     | j        g ¦  «        }	| j                             |	¦  «        }t          t          | j                             |	d¦  «        ¦  «        dk     ¦  «        }d	                     |j        ¦  «        }
| j        d
          	                    t#          |j        ||||
¦  «        ¦  «         d S )Nr÷   rÏ   rï  ©r   rÉ  z
sizeof(%s)z((%s)-1) <= 0r   rP   rÒ   )r’   r©   ÚOP_ENUMr}   Úcheck_not_partialÚziprö  Ú
enumvaluesrØ   ra   r   Úbuild_baseinttyper{   ÚsizeofÚintÚcastrT   rW   r   )r   r�   rA  rC   r   r÷  Ú	enumvaluer   rY   ÚbasetprZ   s              r   rá  zRecompiler._enum_ctx\  s{  € Ø”_ RÔ(ˆ
Ý� "Ñ%Ô%ˆØÔ ð 	#Ø× Ò Ñ"Ô"Ð"Ý%(¨¬¸¼Ñ%GÔ%Gð 	3ð 	3Ñ!ˆJ˜	ØŒJ�xÔ ×'Ò'Ý˜:Ð'7¸*Ñ'DÀgØ'0ð2ñ 2ô 2ñ3ô 3ð 3ð 3ð Ð ¨EÐ!1Ð!1¸$Ô:OÐ!1Ø %Ñ'ˆDØ$ uÑ,ˆFˆFà×)Ò)¨$¬(°BÑ7Ô7ˆFØ”8—?’? 6Ñ*Ô*ˆDÝ�˜TœXŸ]š]¨6°2Ñ6Ô6Ñ7Ô7¸!Ò;Ñ<Ô<ˆFØ—8’8˜BœNÑ+Ô+ˆØŒ
�6Ô×!Ò!Ý�R”W˜j¨$°¸ÑAÔAñ	Cô 	Cð 	Cð 	Cð 	Cr   c                 óV   — |                       ||                     ¦   «         ¦  «         d S r   )rá  r  rU  s      r   Ú_generate_cpy_enum_ctxz!Recompiler._generate_cpy_enum_ctxq  s&   € Ø�Š�r˜2Ÿ>š>Ñ+Ô+Ñ,Ô,Ð,Ð,Ð,r   c                 ó   — d S r   r'   rU  s      r   Ú_generate_cpy_macro_collecttypez*Recompiler._generate_cpy_macro_collecttypew  r[  r   c                 óL   — |dk    rd }n|}|                       d||¬¦  «         d S )Nr˜  Trù  )ré  )r   r�   r   r   s       r   Ú_generate_cpy_macro_declz#Recompiler._generate_cpy_macro_declz  s8   € Ø�Š;ˆ;ØˆKˆKàˆKØ× Ò   t¸Ð ÑEÔEÐEÐEÐEr   c                 óâ   — |dk    r| j         rt          d|›d�¦  «        ‚d }n|}t          t          d¦  «        }| j        d                              t          |d|z  ||¬¦  «        ¦  «         d S )Nr˜  z(cannot use the syntax '...' in '#define z ...' when using the ABI moder÷   rÏ   rï  rù  )r}   r   r©   rð  rØ   ra   r   )r   r�   r   r   r   s        r   Ú_generate_cpy_macro_ctxz"Recompiler._generate_cpy_macro_ctx�  sž   € Ø�Š;ˆ;ØÔ$ð 4Ý'Ð'à,0¨D¨Dð3ñ4ô 4ð 4ð ˆKˆKàˆKÝ�¨"Ñ-Ô-ˆØŒ
�8Ô×#Ò#Ý�tÐ-°Ñ4°gØ#.ð0ñ 0ô 0ñ	1ô 	1ð 	1ð 	1ð 	1r   c                 óÆ   — t          |t          j        ¦  «        rF|j        }|dk    rd|›d�}|                      |j        d|z  ¦  «        }t          j        ||¦  «        }|S )Nr˜  z_cffi_array_len(rQ   rš  )r™   r   rM  r    rT  r  )r   r�   Úglobal_namerž  r   s        r   rT  zRecompiler._global_type’  si   € Ý�b�%œ/Ñ*Ô*ð 	9ØœIˆMØ Ò%Ð%Ð%Ø9D¸¸Ð F�Ø×'Ò'¨¬°¸;Ñ1FÑGÔGˆGÝ” ¨-Ñ8Ô8ˆBØˆ	r   c                 óX   — |                       |                      ||¦  «        ¦  «         d S r   )r¶   rT  rU  s      r   Ú"_generate_cpy_variable_collecttypez-Recompiler._generate_cpy_variable_collecttype›  s,   € Ø×Ò˜d×/Ò/°°DÑ9Ô9Ñ:Ô:Ð:Ð:Ð:r   c                 óZ  — | j         }|                      ||¦  «        }t          |t          j        ¦  «        r|j        €
|j        }d}nd}d|›d�} |d|                     || j        ¬¦  «        z   ¦  «          |d¦  «          |d|›d	|›d
�¦  «          |d¦  «          |¦   «          d S )Nr7   ú&z*_cffi_var_r  rq  r¨  r  z	  return r  r4  r  )	rã   rT  r™   r   rM  r    r  r8  rÆ   )r   r�   r   r  Ú	ampersandrý   s         r   Ú_generate_cpy_variable_declz&Recompiler._generate_cpy_variable_declž  sË   € ØŒzˆØ×Ò˜r 4Ñ(Ô(ˆÝ�b�%œ/Ñ*Ô*ð 	¨r¬yÐ/@Ø”ˆBØˆIˆIàˆIøð )-¨¨Ð.ˆØˆˆY˜Ÿš t°4Ô3F˜ÑGÔGÑGÑHÔHÐHØˆˆS‰	Œ	ˆ	Øˆˆ 9 9 9¨d¨d¨dÐ3Ñ4Ô4Ð4ØˆˆS‰	Œ	ˆ	Øˆ‰Œˆˆˆr   c           
      óø   — |                       ||¦  «        }| j        |         }| j        rt          }nt          }| j        d                              t          |d|z  t          ||¦  «        ¦  «        ¦  «         d S )NrÏ   z_cffi_var_%s)	rT  r’   r}   ÚOP_GLOBAL_VARÚOP_GLOBAL_VAR_FrØ   ra   r   r©   )r   r�   r   rC   r:   s        r   Ú_generate_cpy_variable_ctxz%Recompiler._generate_cpy_variable_ctxµ  s†   € Ø×Ò˜r 4Ñ(Ô(ˆØ”_ RÔ(ˆ
ØÔ ð 	!ÝˆBˆBå ˆBØŒ
�8Ô×#Ò#Ý�t˜^¨dÑ2µF¸2¸zÑ4JÔ4JÑKÔKñ	Mô 	Mð 	Mð 	Mð 	Mr   c                 óh   — t          |t          j        ¦  «        sJ ‚|                      |¦  «         d S r   )r™   r   rž   r¶   rU  s      r   Ú'_generate_cpy_extern_python_collecttypez2Recompiler._generate_cpy_extern_python_collecttypeÂ  s5   € Ý˜"�eÔ3Ñ4Ô4Ð4Ð4Ð4Ø×Ò˜bÑ!Ô!Ð!Ð!Ð!r   c           	      óÔ  — | j         }t          |j        t          j        ¦  «        rd}n$d|z  }d|j                             d|¦  «        ›d�} |d|z  ¦  «          |d| j        ›d|›d	|›d
�¦  «          |¦   «          g }d|z  }t          |j        ¦  «        D ]3\  }}	|	                     d|z  |¦  «        }
| 	                    |
¦  «         Œ4d 
                    |¦  «        }|pd}|›d|›d�}|j        dk    rd|z   }d„ }t          t          |j        ¦  «        dz  d¦  «        } ||j        ¦  «        rt          |d¦  «        }t          |j        t          j        ¦  «        r9d|j                             d¦  «        ||j                             d¦  «        |fz  } ||›|j                             |¦  «        ›�¦  «          |d¦  «          |d|z  ¦  «          |d¦  «         t          |j        ¦  «        D ]o\  }}	d|z  }
t          |	t          j        ¦  «        s ||	¦  «        rd|
z   }
t          j        |	¦  «        }	 |d|	                     d¦  «        |dz  |
fz  ¦  «         Œp |d|z  ¦  «         t          |j        t          j        ¦  «        s' |d|j                             d¦  «        ›d�¦  «          |d ¦  «          |¦   «          | xj        d!z  c_        d S )"Nr·  rt  z(int)sizeof(r7   rQ   z3static struct _cffi_externpy_s _cffi_externpy__%s =r   rö   r1   z	, 0, 0 };rm  z a%dr   ro  r  Ú	__stdcallz_cffi_stdcall c                 óL   — t          | t          j        ¦  «        o
| j        dk    S )NrK  )r™   r   rz  r   rŒ   s    r   Úmay_need_128_bitsz9Recompiler._extern_python_decl.<locals>.may_need_128_bitsâ  s&   € Ý˜r¥5Ô#6Ñ7Ô7ð -Ø”G˜}Ò,ð.r   rh   é   z!sizeof(%s) > %d ? sizeof(%s) : %dr  z  char a[%s];z  char *p = a;za%dr  z  *(%s)(p + %d) = %s;r   z,  _cffi_call_python(&_cffi_externpy__%s, p);z  return *(z)p;r  r   )rã   r™   rx  r   rš   r8  r|   r¦   r˜   ra   rT   r}  r�   r2   r¤   rœ   r  )r   r�   r   Útag_and_spacer  Úsize_of_resultrQ  r‚  r­   r*  r‡  r„  r…  r  Ú	size_of_as                  r   Ú_extern_python_declzRecompiler._extern_python_declÉ  sl  € ØŒzˆÝ�b”i¥¤Ñ0Ô0ð 	4Ø ˆNˆNà$ tÑ+ˆGˆGà”	×$Ò$ R¨Ñ1Ô1Ð1Ð1ð4ˆNàˆÐBÀTÑIÑJÔJÐJØˆˆØÔÐÐ˜d˜d˜d N N Nð4ñ 	5ô 	5ð 	5àˆ‰Œˆàˆ	Ø" TÑ)ˆÝ  ¤Ñ)Ô)ð 	"ð 	"‰GˆAˆtØ—/’/ &¨1¡*¨gÑ6Ô6ˆCØ×Ò˜SÑ!Ô!Ð!Ð!àŸš 9Ñ-Ô-ˆØ'Ð1¨6ˆØ)-¨¨¨~¨~¨~Ð>ÐØŒ6�[Ò Ð Ø!1Ð4FÑ!FÐð	.ð 	.ð 	.õ �˜BœG™œ Q™¨Ñ*Ô*ˆ	ØÐ˜RœYÑ'Ô'ð 	+Ý˜I rÑ*Ô*ˆIÝ�b”i¥Ô!4Ñ5Ô5ð 	5Ø;Ø”	×$Ò$ RÑ(Ô(¨)Ø”	×$Ò$ RÑ(Ô(¨)ð?5ñ 5ˆIð 	ˆ�}�} b¤i×&:Ò&:Ð;MÑ&NÔ&NÐ&NÐOÑPÔPÐPØˆˆS‰	Œ	ˆ	Øˆˆ_˜yÑ(Ñ)Ô)Ð)ØˆÐÑÔÐÝ  ¤Ñ)Ô)ð 	Mð 	M‰GˆAˆtØ˜!‘)ˆCÝ˜4¥Ô!4Ñ5Ô5ð /Ø%Ð% dÑ+Ô+ð/à˜C‘i�ÝÔ(¨Ñ.Ô.�ØˆDÐ(¨D¯OªO¸CÑ,@Ô,@À!ÀAÁ#ÀsÐ+KÑKÑLÔLÐLÐLØˆÐ;¸dÑBÑCÔCÐCÝ˜"œ)¥U¤^Ñ4Ô4ð 	DØˆDˆD r¤y×';Ò';¸CÑ'@Ô'@Ð'@Ð'@ÐBÑCÔCÐCØˆˆS‰	Œ	ˆ	Øˆ‰ŒˆØÐÔ˜aÑÐÔÐÐr   c                 ó4   — |                       ||d¦  «         d S )Nrq  ©r"  rU  s      r   Ú _generate_cpy_extern_python_declz+Recompiler._generate_cpy_extern_python_declÿ  s    € Ø× Ò   T¨9Ñ5Ô5Ð5Ð5Ð5r   c                 ó4   — |                       ||d¦  «         d S )NzCFFI_DLLEXPORT r$  rU  s      r   Ú#_generate_cpy_dllexport_python_declz.Recompiler._generate_cpy_dllexport_python_decl  s!   € Ø× Ò   TÐ+<Ñ=Ô=Ð=Ð=Ð=r   c                 ó4   — |                       ||d¦  «         d S )Nr7   r$  rU  s      r   Ú'_generate_cpy_extern_python_plus_c_declz2Recompiler._generate_cpy_extern_python_plus_c_decl  s    € Ø× Ò   T¨2Ñ.Ô.Ð.Ð.Ð.r   c                 ó  — | j         rt          d¦  «        ‚|j        rt          d¦  «        ‚| j        |         }t          t          |¦  «        }| j        d                              t          |d|z  ||¦  «        ¦  «         d S )Nz,cannot use 'extern "Python"' in the ABI modez$a vararg function is extern "Python"rÏ   z&_cffi_externpy__%s)
r}   r   rh  r5   r’   r©   ÚOP_EXTERN_PYTHONrØ   ra   r   )r   r�   r   rC   r   s        r   Ú_generate_cpy_extern_python_ctxz*Recompiler._generate_cpy_extern_python_ctx  s¡   € ØÔ ð 	BÝ#Ø@ñBô Bð BàŒ;ð 	PÝ%Ð&NÑOÔOÐOØ”_ RÔ(ˆ
ÝÕ)¨:Ñ6Ô6ˆØŒ
�8Ô×#Ò#Ý�tÐ2°TÑ9¸7ÀDÑIÔIñ	Kô 	Kð 	Kð 	Kð 	Kr   c                 ó  — | j         } |d¦  «         t          |t          ¦  «        s|                     d¦  «        }n|                     d¦  «         |                     d¦  «        D ]¢}|}t          d¦  «        t          u rt          t          |¦  «        }nt          |¦  «        dd…         } |d|z    
                    ¦   «         ¦  «         d}|D ]+}t          |¦  «        d	k    r ||¦  «         d}|d
|fz  z  }Œ, ||¦  «         Œ£d S )Nz=// # NB. this is not a string because of a size limit in MSVCzutf-8Tz//r   r÷   z// r7   éL   z%d,)rã   r™   ÚbytesÚencodeÚdecodeÚ
splitlinesr*  ÚmapÚordÚasciiÚrstripr2   )r   Úsr  ÚlinerF   Úprinted_lineÚcs          r   r  z)Recompiler._print_string_literal_in_array  s2  € ØŒzˆØˆÐLÑMÔMÐMÝ˜!�UÑ#Ô#ð 	Ø—’˜Ñ!Ô!ˆAˆAà�HŠH�WÑÔÐØ—L’L Ñ&Ô&ð 	ð 	ˆDØˆGÝ�D‰zŒz�UÐ"Ð"Ý�3 ‘~”~��õ   ™.œ.¨¨2¨Ô.�ØˆD�%˜'‘/×)Ò)Ñ+Ô+Ñ,Ô,Ð,ØˆLØð -ð -�Ý�|Ñ$Ô$¨Ò*Ð*Ø�D˜Ñ&Ô&Ð&Ø#%�LØ ¨¨¡Ñ,��ØˆD�ÑÔÐÐð	ð 	r   c                 óJ   — t          t          t          ¦  «        | j        |<   d S r   )r©   ÚOP_PRIMITIVEÚ	PRIM_VOIDr–   ©r   r�   r
  s      r   Ú_emit_bytecode_VoidTypez"Recompiler._emit_bytecode_VoidType1  s   € Ý!'­µiÑ!@Ô!@ˆŒ˜ÑÐÐr   c                 ód   — t           |j                 }t          t          |¦  «        | j        |<   d S r   )ÚPRIMITIVE_TO_INDEXr   r©   r<  r–   )r   r�   r
  rq   s       r   Ú_emit_bytecode_PrimitiveTypez'Recompiler._emit_bytecode_PrimitiveType4  s*   € Ý'¨¬Ô0ˆ
Ý!'­°jÑ!AÔ!AˆŒ˜ÑÐÐr   c                 óv   — d|j         ›d|j         ›d|j         ›d�}t          t          |¦  «        | j        |<   d S )Nz_cffi_prim_int(sizeof(z), (
           ((z)-1) | 0 /* check that z' is an integer type */
         ) <= 0)©r   r©   r<  r–   ©r   r�   r
  r7  s       r   Ú!_emit_bytecode_UnknownIntegerTypez,Recompiler._emit_bytecode_UnknownIntegerType8  sD   € € ð $&¤7 7 7¨B¬G¨G¨G°R´W°W°Wð>ˆõ "(­°aÑ!8Ô!8ˆŒ˜ÑÐÐr   c                 óf   — d|j         ›d|j         ›d�}t          t          |¦  «        | j        |<   d S )Nz_cffi_prim_float(sizeof(z) *
           (((z6)1) / 2) * 2 /* integer => 0, float => 1 */
         )rD  rE  s       r   Ú_emit_bytecode_UnknownFloatTypez*Recompiler._emit_bytecode_UnknownFloatType>  s<   € € ð  œW˜W˜W b¤g g gð/ˆõ "(­°aÑ!8Ô!8ˆŒ˜ÑÐÐr   c                 ó
  — t          t          | j        |j                 ¦  «        | j        |<   |dz  }|j        D ]h}| j        |         }||k    rNt          |t          j        ¦  «        r|  	                    ||¦  «         nt          t          |¦  «        | j        |<   |dz  }Œit          |j        ¦  «        }|j        �(|j        dk    r|dz  }nt          d|j        ›�¦  «        ‚t          t          |¦  «        | j        |<   d S )Nr   r  rf   zabi=)r©   ÚOP_FUNCTIONr’   rx  r–   r˜   r™   r   rz  rB  r;   r   rh  r}  r5   ÚOP_FUNCTION_END)r   r�   r
  r¬   Ú	realindexrD   s         r   Ú_emit_bytecode_RawFunctionTypez)Recompiler._emit_bytecode_RawFunctionTypeD  s  € Ý!'­°T´_ÀRÄYÔ5OÑ!PÔ!PˆŒ˜ÑØ�‰
ˆØ”7ð 	ð 	ˆCØœ¨Ô,ˆIØ˜	Ò!Ð!Ý˜c¥5Ô#6Ñ7Ô7ð HØ×5Ò5°c¸5ÑAÔAÐAÐAå-3µG¸YÑ-GÔ-G�D”O EÑ*Ø�Q‰JˆEˆEÝ�B”KÑ Ô ˆØŒ6ÐØŒv˜Ò$Ð$Ø˜‘
��å)Ð)°b´f°fÐ*>Ñ?Ô?Ð?Ý!'­¸Ñ!?Ô!?ˆŒ˜ÑÐÐr   c                 ó`   — t          t          | j        |j                 ¦  «        | j        |<   d S r   )r©   Ú
OP_POINTERr’   re  r–   r>  s      r   Ú_emit_bytecode_PointerTypez%Recompiler._emit_bytecode_PointerTypeW  s'   € Ý!'­
°D´OÀBÄIÔ4NÑ!OÔ!OˆŒ˜ÑÐÐr   c                 ó~   — |                      ¦   «         }t          t          | j        |         ¦  «        | j        |<   d S r   )r·   r©   rO  r’   r–   )r   r�   r
  Úraws       r   Ú_emit_bytecode_FunctionPtrTypez)Recompiler._emit_bytecode_FunctionPtrType]  s6   € Ø× Ò Ñ"Ô"ˆÝ!'­
°D´OÀCÔ4HÑ!IÔ!IˆŒ˜ÑÐÐr   c                 ó´  — | j         |j                 }|j        €t          t          |¦  «        | j        |<   d S |j        dk    r4t          dt          |¦  «                             dd¦  «        ›d�¦  «        ‚| j        |dz            dk    sJ ‚t          t          |¦  «        | j        |<   t          d t          |j        ¦  «        ¦  «        | j        |dz   <   d S )Nr˜  ztype z/*...*/zb badly placed: the '...' array length can only be used on global arrays or on fields of structuresr   r‰   )
r’   r  r    r©   ÚOP_OPEN_ARRAYr–   r   r•   r9  ÚOP_ARRAY)r   r�   r
  Ú
item_indexs       r   Ú_emit_bytecode_ArrayTypez#Recompiler._emit_bytecode_ArrayTypea  sÖ   € Ø”_ R¤WÔ-ˆ
ØŒ9ÐÝ%+­M¸:Ñ%FÔ%FˆDŒO˜EÑ"Ð"Ð"ØŒY˜%ÒÐÝ#Ð#õ ˜‘G”G—O’O I¨uÑ5Ô5Ð5Ð5ð8ñ9ô 9ð 9ð
 ”? 5¨1¡9Ô-°Ò6Ð6Ð6Ð6Ý%+­H°jÑ%AÔ%AˆDŒO˜EÑ"Ý)/°µc¸"¼)±n´nÑ)EÔ)EˆDŒO˜E A™IÑ&Ð&Ð&r   c                 óZ   — | j         |         }t          t          |¦  «        | j        |<   d S r   )r¢   r©   ÚOP_STRUCT_UNIONr–   )r   r�   r
  Ústruct_indexs       r   Ú_emit_bytecode_StructTypez$Recompiler._emit_bytecode_StructTypeo  s+   € ØÔ*¨2Ô.ˆÝ!'­¸Ñ!FÔ!FˆŒ˜ÑÐÐr   c                 óZ   — | j         |         }t          t          |¦  «        | j        |<   d S r   )r£   r©   rú  r–   )r   r�   r
  Ú
enum_indexs       r   Ú_emit_bytecode_EnumTypez"Recompiler._emit_bytecode_EnumTypet  s)   € Ø”[ ”_ˆ
Ý!'­°Ñ!<Ô!<ˆŒ˜ÑÐÐr   ©F)r7   r   )Nrã  N)Vr$   r%   r&   r  r   rƒ   r¯   r³   r¶   r“   rÙ   rÞ   rã   ré   rô   ræ   r  rå   r+  rC  rH  r;  rR  rV  rX  rZ  r]  rf  ri  rŽ  r–  r»   r£  r­  rc  r¾  rÜ   rÑ  Ú_generate_cpy_union_collecttyperÓ  rÕ  Ú_generate_cpy_union_declr×  Ú_generate_cpy_union_ctxrÚ  rß  râ  ré  rì  r|  r�  rÙ  rÞ  rá  r  r  r	  r  rT  r  r  r  r  Ú*_generate_cpy_dllexport_python_collecttypeÚ._generate_cpy_extern_python_plus_c_collecttyper"  r%  r'  r)  r,  Ú"_generate_cpy_dllexport_python_ctxÚ&_generate_cpy_extern_python_plus_c_ctxr  r?  rB  rF  rH  rM  rP  Ú_emit_bytecode_ConstPointerTypeÚ_emit_bytecode_NamedPointerTyperS  rX  r\  Ú_emit_bytecode_UnionTyper_  r'   r   r   ry   ry   ‰   sü  € € € € € Ø€Mð%ð %ð %ð %ð0ð 0ð 0ð81ð 81ð 81ðt	<ð 	<ð 	<ð-ð -ð -ð&ð ð ð& HÐGÐG€Ið,ð ,ð ,ð>#ð #ð #ð #ð2ð 2ð 2ð!ð !ð !ð[ð [ð [ðz"ð "ð "ð0ð 0ð 0ðh%ð %ð %ð*(ð *(ð *(ðXKð Kð Kðð ð ð*ð *ð *ðF=ð =ð =ð<ð <ð <ðð ð ðFð Fð Fð+ð +ð +ð&ð &ð &ð
`ð `ð `ðD2ð 2ð 2ð,
ð 
ð 
ð2ð 2ð 2ð ð  ð  ðDT)ð T)ð T)ð T)ðlOð Oð Oð7ð 7ð 7ð.%ð %ð %à&FÐ#ð&ð &ð &ð7ð 7ð 7à8Ðð6ð 6ð 6à6Ðð)ð )ð )ð;ð ;ð ;ð:ð :ð :ð CJØ(,ðð ð ð ð<&ð &ð &ð
3ð 3ð 3ð@ð @ð @ð "ð "ð "ð7ð 7ð 7ð 7ðCð Cð Cð*-ð -ð -ðð ð ðFð Fð Fð1ð 1ð 1ð"ð ð ð;ð ;ð ;ðð ð ð.Mð Mð Mð"ð "ð "ð
 .ð.Ð.Ø4ð4 ð 4 ð 4 ðl6ð 6ð 6ð>ð >ð >ð/ð /ð /ð	Kð 	Kð 	Kð &ð&Ð&Ø,ðð ð ð4Að Að AðBð Bð Bð9ð 9ð 9ð9ð 9ð 9ð@ð @ð @ð&Pð Pð Pð 'AÐ#Ø&@Ð#ðJð Jð JðFð Fð FðGð Gð Gð  9Ðð=ð =ð =ð =ð =r   ry   )r
   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚNativeIOc                 óž   •— t          |t          ¦  «        r|                     d¦  «        }t          ¦   «                              |¦  «         d S )Nr5  )r™   Úunicoder0  Úsuperrá   )r   r7  r¨   s     €r   rá   zNativeIO.write}  sB   ø€ Ý˜!�WÑ%Ô%ð &Ø—H’H˜WÑ%Ô%�Ý‰GŒG�MŠM˜!ÑÔÐÐÐr   )r$   r%   r&   rá   Ú__classcell__)r¨   s   @r   rl  rl  |  s8   ø€ € € € € ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r   rl  c                 ó"   — t          | d¦  «        S )Nrá   )Úhasattr)Ú	maybefiles    r   Ú_is_file_likert  ‚  s   € å�9˜gÑ&Ô&Ð&r   c                 ó¦  — |rt          d|›�¦  «         t          | ||d u ¬¦  «        }|                     ¦   «          |                     ¦   «          t	          |¦  «        r|                     ||¦  «         dS t          ¦   «         }|                     ||¦  «         |                     ¦   «         }	 t          |d¦  «        5 }| 	                    t          |¦  «        dz   ¦  «        |k    rt          ‚	 d d d ¦  «         n# 1 swxY w Y   |rt          d¦  «         dS # t          $ r© d|t          j        ¦   «         fz  }	t          |	d	¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   	 t          j        |	|¦  «         n9# t          $ r, t          j        |¦  «         t          j        |	|¦  «         Y nw xY wY dS w xY w)
Nzgenerating )r}   Trë   r   z(already up-to-date)Fz%s.~%dÚw)Úprintry   r¯   rÞ   rt  ré   rl  Úgetvaluerì   Úreadr2   ÚOSErrorrí   Úgetpidrá   ÚrenameÚunlink)
r{   r|   rè   Útarget_fileÚverboseÚ
recompilerrç   ÚoutputÚf1Útmp_files
             r   Ú_make_c_or_py_sourcer„  †  sw  € Øð 0Ýˆ  Ð.Ñ/Ô/Ð/Ý˜C Ø.6¸$Ð.>ðAñ Aô A€Jà×!Ò!Ñ#Ô#Ð#Ø×"Ò"Ñ$Ô$Ð$Ý�[Ñ!Ô!ð Ø×$Ò$ [°(Ñ;Ô;Ð;ØˆtÝ‰
Œ
€AØ× Ò   HÑ-Ô-Ð-Ø�ZŠZ‰\Œ\€FðÝ�+˜sÑ#Ô#ð 	 rØ�wŠw•s˜6‘{”{ Q‘Ñ'Ô'¨6Ò1Ð1Ý�ð 2ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ð 	*ÝÐ(Ñ)Ô)Ð)ØˆuøÝð 	ð 	ð 	Ø˜{­B¬I©K¬KÐ8Ñ8ˆÝ�(˜CÑ Ô ð 	 BØ�HŠH�VÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð	-ÝŒI�h Ñ,Ô,Ð,Ð,øÝð 	-ð 	-ð 	-ÝŒI�kÑ"Ô"Ð"ÝŒI�h Ñ,Ô,Ð,Ð,Ð,ð	-øøøð ˆtˆtð	øøøs~   Â1D Ã1C?Ã3D Ã?DÄD ÄDÄD Ä2GÅE1Å%GÅ1E5	Å5GÅ8E5	Å9GÅ=FÆGÆ3G	ÇGÇG	Ç	GÇGFc                 ó0   — |€J ‚t          | ||||¦  «        S r   ©r„  )r{   r|   rè   Útarget_c_filer  s        r   Úmake_c_sourcerˆ  ¥  s+   € ØÐÐÐÝ  [°(¸MØ 'ñ)ô )ð )r   c                 ó(   — t          | |d ||¦  «        S r   r†  )r{   r|   Útarget_py_filer  s       r   Úmake_py_sourcer‹  ª  s   € Ý  [°$¸Ø 'ñ)ô )ð )r   c                 ó  — |                      d¦  «        }	 t          j        t          j        j        | g|d d…         ¢R Ž ¦  «         n# t
          $ r Y nw xY w|dxx         |z  cc<   t          j        j        | g|¢R Ž |fS )Nrö   r÷   )rÄ   rí   Úmakedirsrî   rT   rz  )Ú	outputdirÚmodnameÚ	extensionÚpartss       r   Ú_modname_to_filer’  ®  sœ   € Ø�MŠM˜#ÑÔ€EðÝ
Œ•B”G”L Ð8¨U°3°B°3¬ZÐ8Ð8Ð8Ñ9Ô9Ð9Ð9øÝð ð ð Øˆðøøøà	ˆ"€I€I„I�Ñ€I€I�IÝŒ7Œ<˜	Ð* EÐ*Ð*Ð*¨EÐ1Ð1s   —1A	 Á	
AÁAc                 óx   — t          ||¦  «        }|                      |||f¦  «         t          |||¦  «         |S r   )r§   ra   Úsetattr)Ú	patchlistÚclsr   Únew_methÚolds        r   Ú_patch_methr™  ¼  sC   € Ý
�#�tÑ
Ô
€CØ×Ò�c˜4 Ð%Ñ&Ô&Ð&ÝˆC��xÑ Ô Ð Ø€Jr   c                 óT   — t          | ¦  «        D ]\  }}}t          |||¦  «         Œd S r   )Úreversedr”  )r•  r–  r   Úold_meths       r   Ú_unpatch_methsr�  Â  s?   € Ý'¨	Ñ2Ô2ð %ð %ÑˆˆT�8Ý��T˜8Ñ$Ô$Ð$Ð$ð%ð %r   c                 ó¼   ‡— t           j        dk    rddlm} |�t	          | |dd„ ¦  «         t           j        dk    rddlm} ˆfd„}t	          | |d	|¦  «        Šd S d S )
Nr	   r   )ÚMSVCCompilerÚ_remove_visual_c_refc                 ó   — |S r   r'   )r   Úmanifest_files     r   rŽ   z&_patch_for_embedding.<locals>.<lambda>Î  s   € °M€ r   Údarwin)Ú	CCompilerc                 ó¨   •— d| j         v r=t          | j         ¦  «        | _         | j                              d¦  «        }d| j         |<    ‰| g|¢R i |¤ŽS )Nz-bundlez-dynamiclib)Ú	linker_sor  r
  )r   r˜   Úkwdsr­   Úold_link_shared_objects       €r   Úmy_link_shared_objectz3_patch_for_embedding.<locals>.my_link_shared_objectÓ  sc   ø€ Ø˜DœNÐ*Ð*Ý!% d¤nÑ!5Ô!5�”Ø”N×(Ò(¨Ñ3Ô3�Ø$1�”˜qÑ!Ø)Ð)¨$Ð>°Ð>Ð>Ð>¸Ð>Ð>Ð>r   Úlink_shared_object)ÚsysÚplatformÚcffi._shimmed_dist_utilsrŸ  r™  r¤  )r•  rŸ  r¤  r©  r¨  s       @r   Ú_patch_for_embeddingr®  Æ  s²   ø€ Ý
„|�wÒÐð 	:Ð9Ð9Ð9Ð9Ð9ØÐ#Ý˜	 <Ð1GØAÐAñCô Cð Cõ „|�xÒÐà6Ð6Ð6Ð6Ð6Ð6ð	?ð 	?ð 	?ð 	?ð 	?õ "-¨Y¸	Ø-AØ-Bñ"Dô "DÐÐÐð  Ðr   c                 óÞ   ‡— ddl m} ‰                     d¦  «        r;‰d d…         Št          j        dk    r‰dz  Šnt          j        dk    r‰dz  Šn‰d	z  Št          | |d
ˆfd„¦  «         d S )Nr   )Ú	build_extz.*r¸  r	   z.dllr£  z.dylibz.soÚget_ext_filenamec                 ó   •— ‰S r   r'   )r   Úext_nameÚtargets     €r   rŽ   z#_patch_for_target.<locals>.<lambda>ë  s   ø€  v€ r   )r­  r°  Úendswithr«  r¬  r™  )r•  r´  r°  s    ` r   Ú_patch_for_targetr¶  Ý  s¢   ø€ Ø2Ð2Ð2Ð2Ð2Ð2ð ‡‚�tÑÔð Ø˜˜˜”ˆÝŒ<˜7Ò"Ð"Ø�fÑˆFˆFÝŒ\˜XÒ%Ð%Ø�hÑˆFˆFà�e‰OˆFÝ�	˜9Ð&8Ø-Ð-Ð-Ð-ñ/ô /ð /ð /ð /r   rö   Tú.cc                 óB  — t          |t          ¦  «        s|                     d¦  «        }| j        r|                      |¦  «         |��¦|rt          |¦  «        rt          d¦  «        ‚| j        d u}|r|                      |¦  «         |€0t          |||¦  «        \  }}|r|g|z   }t          j        j        |Ž }n|}|	€
|rd|z  }	nd}	|rt          j        ||fi |¤Ž}nd }t          | ||||¬¦  «        }|rôg }t          j        ¦   «         }	 |rt#          |¦  «         |	dk    rt%          ||	¦  «         |r<|dk    rd}nd}t'          |›d	t          j                             |¦  «        ›�¦  «         t          j        |¦  «         t          j        d|||
¦  «        }t          j        |¦  «         t/          |¦  «         n(# t          j        |¦  «         t/          |¦  «         w xY w|S ||fS |€t          ||d
¦  «        \  }}t1          | |||¬¦  «        }|r|S d |fS )Nr5  zGWriting to file-like objects is not supported with call_c_compiler=Truez%s.*r   )r  rö   zthe current directory isz setting the current directory tor0   z.py)r™   r•   r0  Ú_windows_unicodeÚ_apply_windows_unicodert  rO  r  Ú_apply_embedding_fixr’  rí   rî   rT   r   Úget_extensionrˆ  Úgetcwdr®  r¶  rw  ÚabspathÚchdirÚcompiler�  r‹  )r{   r|   rè   ÚtmpdirÚcall_c_compilerÚc_fileÚsource_extensionÚextradirÚcompiler_verboser´  ÚdebugÚuses_ffiplatformr§  Ú	embeddingr‘  Ú
ext_c_fileÚextÚupdatedr•  ÚcwdÚmsgÚoutputfilenamer¿   s                          r   Ú	recompilerÐ  î  s³  € õ �k¥3Ñ'Ô'ð 2Ø!×(Ò(¨Ñ1Ô1ˆØ
Ôð )Ø×"Ò" 4Ñ(Ô(Ð(ØÑØð 	9�}¨VÑ4Ô4ð 	9Ýð 8ñ 9ô 9ð 9à”^¨4Ð/ˆ	Øð 	+Ø×$Ò$ TÑ*Ô*Ð*Øˆ>Ý,¨V°[Ø-=ñ?ô ?‰MˆF�Eàð +Ø!˜
 UÑ*�Ýœœ uÐ-ˆJˆJàˆJàˆ>Øð Ø +Ñ-��à�àð 	ÝÔ+¨J¸ÐLÐLÀtÐLÐLˆCˆCàˆCÝ  [°(¸FØ(8ð:ñ :ô :ˆàð 	 ØˆIÝ”)‘+”+ˆCð*Øð 4Ý(¨Ñ3Ô3Ð3Ø˜S’=�=Ý% i°Ñ8Ô8Ð8Ø#ð DØ ’}�}Ø8˜˜à@˜Ý S S S­"¬'¯/ª/¸&Ñ*AÔ*AÐ*AÐBÑCÔCÐCÝ”˜Ñ Ô Ð Ý!,Ô!4°S¸#Ø5EÀuñ"Nô "N�õ ”˜‘”�Ý˜yÑ)Ô)Ð)Ð)øõ ”˜‘”�Ý˜yÑ)Ô)Ð)Ð)øøøØ!Ð!à˜�<Ðàˆ>Ý(¨°¸eÑDÔD‰IˆF�AÝ   k°6Ø)9ð;ñ ;ô ;ˆàð 	!ØˆMà˜�=Ð s   ÄBG Ç%G'r`  )	rö   TNr·  Nr   NNT)%Úiorí   r«  Ú	sysconfigr7   r   r   Úerrorr   Úcffi_opcoder~   r  r:  Úget_config_varÚFREE_THREADED_BUILDr¬  Úversion_infor	  r   r)   rA   rW   rs   ry   ÚStringIOrl  ÚBytesIOrt  r„  rˆ  r‹  r’  r™  r�  r®  r¶  rÐ  r'   r   r   ú<module>rÚ     sè  ðØ Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð à€ØÐ ØÐ à.�iÔ.Ð/@ÑAÔAÐ Ø”L GÒ+ð .¨sÔ/?À&Ò/Hð .ØÔ# vÒ-ðLð ,Ð+ÐJ¨sÔ/?À7Ò/Jð ð
1ð 1ð 1ð 1ð 1ñ 1ô 1ð 1ð )ð )ð )ð )ð )ñ )ô )ð )ð8#ð #ð #ð #ð #ñ #ô #ð #ð:?ð ?ð ?ð ?ð ?ñ ?ô ?ð ?ðB	Kð 	Kð 	Kð 	Kð 	Kñ 	Kô 	Kð 	Kðm=ð m=ð m=ð m=ð m=ñ m=ô m=ð m=ð`' Ô�tÒÐØŒ{€H€Hðð ð ð ð �2”:ñ ô ð ð'ð 'ð 'ðð ð ð>)ð )ð )ð )ð
)ð )ð )ð )ð2ð 2ð 2ðð ð ð%ð %ð %ðDð Dð Dð./ð /ð /ð" GKØ;?Ø59Ø#ðC!ð C!ð C!ð C!ð C!ð C!r   