§
    cÒ³gWÿ  ã                   óÂ  — 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	k    pej        d
k     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(  Úwin32)é   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/mpstechhub/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+   r3   r   r   )r   Ú	size_exprs     r   Úas_field_python_exprzFieldExpr.as_field_python_expr/   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   rA   rB   r   rC   rD   rE   rF   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 */ r5   z},)	r   rA   rB   r   rC   rE   r0   rF   rD   r   s    r   r   zStructUnionExpr.as_c_exprF   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>O   s4   € ð 5ð 5ð 5Ø"ð ×3Ò3Ñ5Ô5ð 5ð 5ð 5r   z(b'ú',ú,ú))ÚevalrB   ÚG_FLAGSrF   r;   rA   r   Újoin)r   rB   Úfields_exprs      r   r    zStructUnionExpr.as_python_exprM   s}   € Ý�T”Z¥Ñ)Ô)ˆð5ð 5Ø&*¤mð5ñ 5ô 5ˆˆõ ˜dœoÑ.Ô.Ð.Ý˜eÑ$Ô$Ð$ØŒIˆIˆIØ�HŠH�[Ñ!Ô!Ð!Ð!ð	#ð 	#r   Nr!   r%   r   r   r?   r?   :   sA   € € € € € ð	!ð 	!ð 	!ðð ð ð#ð #ð #ð #ð #r   r?   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚEnumExprc                 óL   — || _         || _        || _        || _        || _        d S r   ©r   rA   r   ÚsignedÚallenums)r   r   rA   r   rX   rY   s         r   r   zEnumExpr.__init__X   s)   € ØˆŒ	Ø$ˆŒØˆŒ	ØˆŒØ ˆŒˆˆr   c                 óH   — d| j         | j        | j        | j        | j        fz  S )Nz1  { "%s", %d, _cffi_prim_int(%s, %s),
    "%s" },rW   r   s    r   r   zEnumExpr.as_c_expr_   s/   € ðØ!%¤¨D¬OØ!%¤¨D¬K¸¼ð!HñHð 	I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   )r\   r   )é   r   )r]   r   )é   r   )r^   r   r6   z\x00r7   )Ú
PRIM_UINT8Ú	PRIM_INT8ÚPRIM_UINT16Ú
PRIM_INT16ÚPRIM_UINT32Ú
PRIM_INT32ÚPRIM_UINT64Ú
PRIM_INT64r   rX   r;   rA   r   rY   )r   Ú
prim_indexs     r   r    zEnumExpr.as_python_exprd   sr   € å­)Ý­*Ý­*Ý­*ð	ð ð
 Œi˜œÐ$ô&ˆ
ˆ
õ &7°t´Ñ%GÔ%GÐ%GÝ%6°zÑ%BÔ%BÐ%BØ%)¤Y Y Y°´°°ð?ð 	?r   Nr!   r%   r   r   rU   rU   W   sD   € € € € € ð!ð !ð !ðIð Ið Ið
	?ð 	?ð 	?ð 	?ð 	?r   rU   c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ÚTypenameExprc                 ó"   — || _         || _        d S r   ©r   rA   )r   r   rA   s      r   r   zTypenameExpr.__init__p   s   € ØˆŒ	Ø$ˆŒˆˆr   c                 ó$   — d| j         | j        fz  S )Nz  { "%s", %d },rk   r   s    r   r   zTypenameExpr.as_c_exprt   s   € Ø  D¤I¨t¬Ð#?Ñ?Ð?r   c                 ó@   — dt          | j        ¦  «        ›| j        ›d�S )Nr6   r7   )r;   rA   r   r   s    r   r    zTypenameExpr.as_python_exprw   s"   € € Ý-¨d¬oÑ>Ô>Ð>ÀÄ	À	À	ÐJÐJr   Nr!   r%   r   r   ri   ri   o   sI   € € € € € ð%ð %ð %ð@ð @ð @ðKð Kð Kð Kð Kr   ri   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   rq   rr   rs   s       r   r   zRecompiler.__init__�   s$   € ØˆŒØ&ˆÔØ 0ˆÔÝ$ˆŒˆˆr   c                 ó:   — t          | j        |¦  «        | _        d S r   )Úmaxru   )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_functionr0   ÚappendÚ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Úmethodr8   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   )rs   Ú
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›   Úfldtypesrq   Ú_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 )Nr.   r   Ú_generate_cpy_r¶   z"not implemented in recompile(): %r)rq   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º   r0   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   r5   c                 ó@   — | j                              |dz   ¦  «         d S )Nú
)Ú_fÚwrite)r   Úwhats     r   Ú_prntzRecompiler._prnt  s    € ØŒ�Š�d˜T‘kÑ"Ô"Ð"Ð"Ð"r   c                 ó~   — | j         r|�J ‚|                      |¦  «         d S |€J ‚|                      ||¦  «         d S r   )rs   Ú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¦  «        }|                     ¦   «         }|                     ¦   «          |S )NÚr)ÚopenÚosÚpathrR   ÚdirnameÚ__file__Ú	readlinesÚclose)r   ÚfilenameÚgÚliness       r   Ú_rel_readlineszRecompiler._rel_readlines!  sN   € Ý•”—’�bœgŸošo­hÑ7Ô7¸ÑBÔBÀCÑHÔHˆØ—’‘”ˆØ	�Š‰	Œ	ˆ	Øˆr   c           	      óx  — || _         | 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¦  «        }|                      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  ¦  «         Œ |d0|z  ¦  «         Œ,| j        D ]}|d1k    r |d2|
|         |fz  ¦  «         Œ| j        j        r |d3¦  «         n |d4¦  «          |d5t3          | j        ¦  «        fz  ¦  «         d }| j        d k    s| j        j        �|dz  } |d6|z  ¦  «          |d¦  «          |¦   «           |d7¦  «          |d8¦  «          |d¦  «          |¦   «           |d¦  «          |d9¦  «          |d:|›d;�¦  «          |d<¦  «         |dz  r! |d=¦  «          |d>¦  «          |d?¦  «          |d@| j        z  ¦  «          |dA¦  «          |dB¦  «          |dC¦  «          |d¦  «          |dD¦  «          |dE¦  «          |dF¦  «          |dG¦  «          |dH|›dI�¦  «          |dJ¦  «          |dK|›dL�¦  «          |dM¦  «          |dM¦  «          |d¦  «          |d9¦  «          |dN|›dO�¦  «          |d<¦  «          |dP| j        | j        fz  ¦  «          |dD¦  «          |d¦  «          |d9¦  «          |dQ|›dO�¦  «          |d<¦  «          |dR| j        | j        fz  ¦  «          |dD¦  «          |d¦  «          |¦   «           |d7¦  «          |dS¦  «          |d¦  «         d | _        d S )TNz#define _CFFI_USE_EMBEDDINGz#define _CFFI_NO_LIMITED_APIz_cffi_include.hz#include "parse_c_type.h"
zparse_c_type.hr   r5   ú.éÿÿÿÿz#define _CFFI_MODULE_NAME  "ú"z1static const char _CFFI_PYTHON_STARTUP_CODE[] = {z0 };z#ifdef PYPY_VERSIONz3# define _CFFI_PYTHON_STARTUP_FUNC  _cffi_pypyinit_z#elif PY_MAJOR_VERSION >= 3z+# define _CFFI_PYTHON_STARTUP_FUNC  PyInit_ú#elsez(# define _CFFI_PYTHON_STARTUP_FUNC  initú#endifz_embedding.hz#include "_cffi_errors.h"
z_cffi_errors.hz>/************************************************************/zstatic void *_cffi_types[] = {c                 ó   — g | ]	\  }}||f‘Œ
S r%   r%   ©rJ   rƒ   r¤   s      r   rL   z2Recompiler.write_c_source_to_f.<locals>.<listcomp>W  ó    € Ð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[] = {r\   ú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;z#if PY_MAJOR_VERSION >= 3ú    return NULL;Ú}z#  ifdef _MSC_VERz     PyMODINIT_FUNCz#  if PY_MAJOR_VERSION >= 3z     PyInit_z(void) { return NULL; }z#  elsez	     initz
(void) { }z#  endifÚPyInit_ú(void)z5  return _cffi_init("%s", 0x%x, &_cffi_type_context);Úinitz.  _cffi_init("%s", 0x%x, &_cffi_type_context);z#  pragma GCC visibility pop) rØ   rÛ   rq   Ú
_embeddingÚUSE_LIMITED_APIrî   ÚindexrR   rr   r»   Ú_print_string_literal_in_arrayry   ÚVERSION_EMBEDDEDÚdictrˆ   rº   r�   rŒ   Ú_get_c_namer   rÑ   Ú_seen_constantsr‰   rÐ   rÏ   r0   Ú_included_ffisÚ_assigned_sourcer¼   r   Ú_num_externpyru   )r   rß   rà   Úprntrí   r¤   Úbase_module_nameÚtypeindex2typer8   rD   ÚnumsrÀ   rÁ   rÎ   Úffi_to_includeÚincluded_module_nameÚincluded_sourcerB   s                     r   rÞ   zRecompiler.write_c_source_to_f'  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Ð.Ñ/Ô/Ð/Øˆ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ØˆÐ-°´Ñ=Ñ>Ô>Ð>ØˆÐ.Ñ/Ô/Ð/ØˆÐ(Ñ)Ô)Ð)ØˆÐÑ Ô Ð ØˆˆX‰ŒˆØˆˆS‰	Œ	ˆ	ð 	ˆÐ Ñ!Ô!Ð!ØˆÐ"Ñ#Ô#Ð#ØˆÐ*Ñ+Ô+Ð+ØˆˆÐ8HÐ8HÐ8HÐJÑKÔKÐKØˆˆY‰ŒˆØˆˆÐ(8Ð(8Ð(8Ð:Ñ;Ô;Ð;ØˆˆZÑÔÐØˆˆZÑÔÐØˆÐ*Ñ+Ô+Ð+ØˆÐÑÔÐØˆˆÐ"2Ð"2Ð"2Ð4Ñ5Ô5Ð5ØˆˆS‰	Œ	ˆ	ØˆÐDØÔ˜dœmðH-ñ -ñ 	.ô 	.ð 	.àˆˆS‰	Œ	ˆ	ØˆˆW‰ŒˆØˆÐÑÔÐØˆˆÐ/Ð/Ð/Ð1Ñ2Ô2Ð2ØˆˆS‰	Œ	ˆ	ØˆÐ=ØÔ˜dœmðA-ñ -ñ 	.ô 	.ð 	.àˆˆS‰	Œ	ˆ	ØˆˆX‰ŒˆØˆ‰ŒˆØˆÐÑÔÐØˆÐ+Ñ,Ô,Ð,ØˆˆX‰ŒˆØˆŒˆˆs   Î7O
Ï
&O0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 )	Nr6   r7   c                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS r%   )Ú_to_py)rJ   Úitemr   s     €r   rL   z%Recompiler._to_py.<locals>.<listcomp>Ø  s%   ø€ Ð3Ð3Ð3¨�4—;’;˜tÑ$Ô$Ð3Ð3Ð3r   r   r5   ú(rN   rO   )r�   r‹   Úlistr¡   r0   rŽ   rR   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%   r\   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('rM   z    _version = 0x%x,c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r%   )r   )rJ   r8   s     r   rL   z3Recompiler.write_py_source_to_f.<locals>.<listcomp>þ  s$   € ÐDÐDÐD¨b�R×'Ò'Ñ)Ô)ÐDÐDÐDr   z    _types = r5   rN   c                 ó   — g | ]	\  }}||f‘Œ
S r%   r%   rö   s      r   rL   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%   ©rJ   r¤   s     r   rL   z3Recompiler.write_py_source_to_f.<locals>.<listcomp>  s   € ÐEÐEÐE¨A˜8 a™<ÐEÐEÐEr   z,),rO   )rØ   rÛ   r0   rq   r  Úranger  r¼   r   rr   ru   r¡   rŒ   r  rR   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        ¦  «        st          |t          j        ¦  «        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 )Nr5   Ú_BoolÚ_cffi_to_c_intz, %sr  z)_cffi_to_c_doublez)_cffi_to_c_r.   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 == (rO   z && PyErr_Occurred()))r�   r   r’   Úis_complex_typeÚis_integer_typer   ÚUnknownFloatTypeÚ
get_c_nameÚreplacery   ÚVERSION_CHAR16CHAR32r“   Ú"_convert_funcarg_to_c_ptr_or_arrayr”   rÛ   r'  r•   r3   )	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å˜�UÔ6Ñ7Ô7ð 	*Ý˜�UÔ4Ñ5Ô5ð	*ð �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_variablesC  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 ? (r5   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'  r4  )r   rƒ   r8  r9  r:  s        r   r7  z-Recompiler._convert_funcarg_to_c_ptr_or_arrayJ  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   rO   z_cffi_from_c_double(úlong doubler.   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))r7   z' is used as z, but is opaquez0_cffi_from_c_struct((char *)&%s, _cffi_type(%d)))r�   r   r’   r2  r   r3  r1  r5  ry   r6  r'  r“   r•   Ú	ArrayTyper  r›   ÚfldnamesÚ	TypeErrorr
  rœ   r3   )r   rƒ   ÚvarÚcontextr=  s        r   Ú_convert_expr_from_czRecompiler._convert_expr_from_cX  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_type{  s!   € Ø× Ò   °T°T°TÐ%;Ñ<Ô<Ð<r   c                 óX   — |                       |                      ||¦  «        ¦  «         d S r   )r­   rR  rQ  s      r   Ú!_generate_cpy_typedef_collecttypez,Recompiler._generate_cpy_typedef_collecttype~  s,   € Ø×Ò˜d×0Ò0°°TÑ:Ô:Ñ;Ô;Ð;Ð;Ð;r   c                 ó   — d S r   r%   rQ  s      r   Ú_generate_cpy_typedef_declz%Recompiler._generate_cpy_typedef_decl�  ó   € Øˆr   c                 ó|   — | j         |         }| j        d                              t          ||¦  «        ¦  «         d S )NrÊ   )rˆ   rÏ   rŽ   ri   )r   rƒ   r   rA   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)r]  Ú	named_ptr)	rR  rY  rž   Ú_struct_ctxr   r�   r   ÚNamedPointerTypeÚtotyperQ  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®   Úellipsisrs   rQ  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   Úvoidr.   r5   Ú_cffi_d_r  rO   ústatic rþ   zreturn r/  r0  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   rL   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 )rj  r%   r!  s     r   rL   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›   ÚPrimitiveTyper1  )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ô   )rs   r�   r   r•   rd  Ú_generate_cpy_constant_declrÛ   r0   r�   r�   rŽ   r4  rR   Úabirt  r‘   rÑ   rD  rŠ   r"  r?  rN  ÚinsertÚ	void_type)r   rƒ   r   r  ÚnumargsÚargnameÚ	argumentsÚcall_argumentsrM  r¤   r&  Úrepr_argumentsry  Úname_and_argumentsÚresult_codeÚargrB  rC  rø   Úresult_declÚrngÚfreelinerw  Ú
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   )rd  rs   Ú_generate_cpy_constant_ctxrˆ   r®   r0   r�   ÚOP_DLOPEN_FUNCÚOP_CPYTHON_BLTN_NÚOP_CPYTHON_BLTN_OÚOP_CPYTHON_BLTN_VrÏ   rŽ   r   r    )r   rƒ   r   rA   r|  Ú	meth_kinds         r   Ú_generate_cpy_function_ctxz%Recompiler._generate_cpy_function_ctx;  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)->rO   ú%s[0])r�   r   rI  r—   r4  r²   r  )r   Ú	tp_structÚ
field_nameÚtp_fieldÚactual_lengthÚptr_struct_nameÚtp_items          r   r²   zRecompiler._field_typeQ  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­   rs   Úanonymous_struct_fieldsÚ_struct_collecttype)r   rƒ   Úfldtypes      r   rŸ  zRecompiler._struct_collecttype]  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   r5   z  (void)((p->z) | 0);  /* check that 'rð   z' is an integer */r”  z[0]rs  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ª   r2  r�   r   rI  r—   r  r4  r   r‹   )r   rƒ   r=  r]  r  ÚcheckfuncnameÚfnameÚftyper+   ÚfqualrÅ   s              r   Ú_struct_declzRecompiler._struct_decld  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ð   r7   r   z%d /* bits */z
(size_t)-1z	sizeof(((r   r•  rO   z((char *)&((z)4096)->z) - (char *)4096z	offsetof(r5   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   Ú	UnionTyperŽ   r¯   rq   r°   r±   ÚpartialÚanyrž  Úpackedr3   rR   r  rª   r²   Ú_check_not_opaquer   r9   r:   rI  r—   r4  r'   r    r0   rÏ   Úextendr?   rÒ   rA  )r   rƒ   r=  r]  r^  rA   Úreason_for_not_expandingrB   rF   r¨   Úfldnamer   r+   r¨  r8   r   ÚoffsetrE   ÚalignrD   s                       r   r_  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   rI  r  r›   r¯   rK  )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·  r3   r   Ú
startswithÚisdigitÚ	forcenamerY  r_  )r   rÁ   rƒ   Úorderr]  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Ÿ  rQ  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 )Nr5   r.   r¶   )r4  r5  )r   rƒ   r=  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Ï  rQ  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   )r_  rÏ  rQ  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Ÿ  rQ  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©  rQ  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_ctxr_  rQ  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 'r7   Ú_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 = ro  )r  r   rA  rÛ   r4  )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   )r2  rs   r­   ©r   rƒ   r   râ  s       r   Ú"_generate_cpy_constant_collecttypez-Recompiler._generate_cpy_constant_collecttypeD  sI   € Ø×#Ò#Ñ%Ô%ˆØð 	&˜Ô.ð 	&Ø×!Ò! "Ñ%Ô%Ð%Ð%Ð%ð	&ð 	&r   c                 ó\   — |                      ¦   «         }|                      |||¦  «         d S r   )r2  rå  rç  s       r   rx  z&Recompiler._generate_cpy_constant_declI  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)
rs   r2  r    ÚOP_CONSTANT_INTÚOP_DLOPEN_CONSTÚOP_CONSTANTrˆ   rÏ   rŽ   r   )r   rƒ   r   r   Ú
const_kindrA   s         r   rŒ  z%Recompiler._generate_cpy_constant_ctxM  s¦   € ØÔ$ð 	5¨×);Ò);Ñ)=Ô)=ð 	5Ý�_¨bÑ1Ô1ˆGˆGàÔ$ð )Ý,�
�
å(�
Øœ¨Ô,ˆJÝ˜Z¨Ñ4Ô4ˆGØŒ
�8Ô×#Ò#Ý�tÐ-°Ñ4°gÑ>Ô>ñ	@ô 	@ð 	@ð 	@ð 	@r   c                 ó0   — |                       |¦  «         d S r   )r­   rQ  s      r   rÕ  z)Recompiler._generate_cpy_enum_collecttype]  s   € Ø×Ò˜bÑ!Ô!Ð!Ð!Ð!r   c                 óF   — |j         D ]}|                      d|¦  «         Œd S )NT)Úenumeratorsrå  )r   rƒ   r   Ú
enumerators       r   rÚ  z"Recompiler._generate_cpy_enum_decl`  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   rN   rÉ   )rˆ   r    ÚOP_ENUMrs   Úcheck_not_partialÚziprò  Ú
enumvaluesrÏ   rŽ   r   Úbuild_baseinttyperq   ÚsizeofÚintÚcastrR   rU   r   )r   rƒ   r=  rA   r   ró  Ú	enumvaluer   rX   ÚbasetprY   s              r   rÝ  zRecompiler._enum_ctxd  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
  rQ  s      r   Ú_generate_cpy_enum_ctxz!Recompiler._generate_cpy_enum_ctxy  s&   € Ø�Š�r˜2Ÿ>š>Ñ+Ô+Ñ,Ô,Ð,Ð,Ð,r   c                 ó   — d S r   r%   rQ  s      r   Ú_generate_cpy_macro_collecttypez*Recompiler._generate_cpy_macro_collecttype  rW  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_decl‚  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õ  )rs   r   r    rì  rÏ   rŽ   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(rO   r–  )r�   r   rI  r—   rP  r  )r   rƒ   Úglobal_namerš  rœ  s        r   rP  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­   rP  rQ  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 )Nr5   ú&z*_cffi_var_r  rm  r¤  rþ   z	  return r  r0  r   )	rÛ   rP  r�   r   rI  r—   r  r4  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)	rP  rˆ   rs   ÚOP_GLOBAL_VARÚOP_GLOBAL_VAR_FrÏ   rŽ   r   r    )r   rƒ   r   rA   r8   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­   rQ  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³  rp  z(int)sizeof(r5   rO   z3static struct _cffi_externpy_s _cffi_externpy__%s =r   rð   r/   z	, 0, 0 };ri  z a%dr   rk  r  Ú	__stdcallz_cffi_stdcall c                 óL   — t          | t          j        ¦  «        o
| j        dk    S )NrG  )r�   r   rv  r   r‚   s    r   Úmay_need_128_bitsz9Recompiler._extern_python_decl.<locals>.may_need_128_bitsê  s&   € Ý˜r¥5Ô#6Ñ7Ô7ð -Ø”G˜}Ò,ð.r   r^   é   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�   rt  r   r‘   r4  rr   r�   r�   rŽ   rR   ry  rw   r0   r›   r“   r  )r   rƒ   r   Útag_and_spacer  Úsize_of_resultrM  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 )Nrm  ©r  rQ  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   rQ  s      r   Ú#_generate_cpy_dllexport_python_declz.Recompiler._generate_cpy_dllexport_python_decl
  s!   € Ø× Ò   TÐ+<Ñ=Ô=Ð=Ð=Ð=r   c                 ó4   — |                       ||d¦  «         d S )Nr5   r   rQ  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)
rs   r   rd  r3   rˆ   r    ÚOP_EXTERN_PYTHONrÏ   rŽ   r   )r   rƒ   r   rA   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                 ór  — | j         } |d¦  «         t          |t          ¦  «        s|                     d¦  «        }n|                     d¦  «         	 |                     d¦  «         n# t
          $ r d|z   }Y nw xY w|                     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-8Úasciis   # -*- encoding: utf8 -*-
Tz//r   rñ   z// r5   éL   z%d,)rÛ   r�   ÚbytesÚencodeÚdecodeÚUnicodeDecodeErrorÚ
splitlinesr&  ÚmapÚordr*  Úrstripr0   )r   Úsr  ÚlinerD   Úprinted_lineÚcs          r   r  z)Recompiler._print_string_literal_in_array  su  € ØŒzˆØˆÐLÑMÔMÐMÝ˜!�UÑ#Ô#ð 	Ø—’˜Ñ!Ô!ˆAˆAà�HŠH�WÑÔÐð	2Ø�HŠH�WÑÔÐÐøÝ!ð 	2ð 	2ð 	2Ø-°Ñ1ˆAˆAˆAð	2øøøà—L’L Ñ&Ô&ð 	ð 	ˆDØˆGÝ�D‰zŒz�UÐ"Ð"Ý�3 ‘~”~��õ   ™.œ.¨¨2¨Ô.�ØˆD�%˜'‘/×)Ò)Ñ+Ô+Ñ,Ô,Ð,ØˆLØð -ð -�Ý�|Ñ$Ô$¨Ò*Ð*Ø�D˜Ñ&Ô&Ð&Ø#%�LØ ¨¨¡Ñ,��ØˆD�ÑÔÐÐð	ð 	s   ÁA* Á*A<Á;A<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_VoidType=  s   € Ý!'­µiÑ!@Ô!@ˆŒ˜ÑÐÐr   c                 ód   — t           |j                 }t          t          |¦  «        | j        |<   d S r   )ÚPRIMITIVE_TO_INDEXr   r    r9  rŒ   )r   rƒ   r  rg   s       r   Ú_emit_bytecode_PrimitiveTypez'Recompiler._emit_bytecode_PrimitiveType@  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    r9  rŒ   ©r   rƒ   r  r4  s       r   Ú!_emit_bytecode_UnknownIntegerTypez,Recompiler._emit_bytecode_UnknownIntegerTypeD  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 */
         )rA  rB  s       r   Ú_emit_bytecode_UnknownFloatTypez*Recompiler._emit_bytecode_UnknownFloatTypeJ  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  r\   zabi=)r    ÚOP_FUNCTIONrˆ   rt  rŒ   r�   r�   r   rv  r?  r9   rü  rd  ry  r3   ÚOP_FUNCTION_END)r   rƒ   r  r£   Ú	realindexrB   s         r   Ú_emit_bytecode_RawFunctionTypez)Recompiler._emit_bytecode_RawFunctionTypeP  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ˆ   ra  rŒ   r;  s      r   Ú_emit_bytecode_PointerTypez%Recompiler._emit_bytecode_PointerTypec  s'   € Ý!'­
°D´OÀBÄIÔ4NÑ!OÔ!OˆŒ˜ÑÐÐr   c                 ó~   — |                      ¦   «         }t          t          | j        |         ¦  «        | j        |<   d S r   )r®   r    rL  rˆ   rŒ   )r   rƒ   r  Úraws       r   Ú_emit_bytecode_FunctionPtrTypez)Recompiler._emit_bytecode_FunctionPtrTypei  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‹   r5  ÚOP_ARRAY)r   rƒ   r  Ú
item_indexs       r   Ú_emit_bytecode_ArrayTypez#Recompiler._emit_bytecode_ArrayTypem  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_StructType{  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_EnumType€  s)   € Ø”[ ”_ˆ
Ý!'­°Ñ!<Ô!<ˆŒ˜ÑÐÐr   ©F)r5   r   )Nrß  N)Vr"   r#   r$   r  r   ry   r¦   rª   r­   r‰   rÐ   rÕ   rÛ   rá   rî   rÞ   r  rÝ   r'  r?  rD  r7  rN  rR  rT  rV  rY  rb  re  rŠ  r’  r²   rŸ  r©  r_  rº  rÓ   rÍ  Ú_generate_cpy_union_collecttyperÏ  rÑ  Ú_generate_cpy_union_declrÓ  Ú_generate_cpy_union_ctxrÖ  rÛ  rÞ  rå  rè  rx  rŒ  rÕ  rÚ  rÝ  r  r  r  r  rP  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<  r?  rC  rE  rJ  rM  Ú_emit_bytecode_ConstPointerTypeÚ_emit_bytecode_NamedPointerTyperP  rU  rY  Ú_emit_bytecode_UnionTyper\  r%   r   r   ro   ro   ~   sü  € € € € € Ø€Mð%ð %ð %ð %ð0ð 0ð 0ð81ð 81ð 81ðt	<ð 	<ð 	<ð-ð -ð -ð&ð ð ð& HÐGÐG€Ið,ð ,ð ,ð>#ð #ð #ð #ð2ð 2ð 2ðð ð ðkð kð kðZ"ð "ð "ð0ð 0ð 0ðh%ð %ð %ð+(ð +(ð +(ðZ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ð &ð&Ð&Ø,ðð ð ð<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   ro   )r	   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚNativeIOc                 ó¬   •— t          |t          ¦  «        r|                     d¦  «        }t          t          | ¦  «                             |¦  «         d S )Nr*  )r�   Úunicoder-  Úsuperri  rÙ   )r   r4  rŸ   s     €r   rÙ   zNativeIO.write‰  sJ   ø€ Ý˜!�WÑ%Ô%ð &Ø—H’H˜WÑ%Ô%�Ý•(˜DÑ!Ô!×'Ò'¨Ñ*Ô*Ð*Ð*Ð*r   )r"   r#   r$   rÙ   Ú__classcell__)rŸ   s   @r   ri  ri  ˆ  s8   ø€ € € € € ð	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+r   ri  c                 ó"   — t          | d¦  «        S )NrÙ   )Úhasattr)Ú	maybefiles    r   Ú_is_file_likerq  Ž  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 )rs   Trã   r   z(already up-to-date)Fz%s.~%dÚw)Úprintro   r¦   rÕ   rq  rá   ri  Úgetvaluerä   Úreadr0   ÚIOErrorrå   ÚgetpidrÙ   ÚrenameÚOSErrorÚunlink)
rq   rr   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‚  )rq   rr   rà   Útarget_c_filer}  s        r   Úmake_c_sourcer†  ±  s+   € ØÐÐÐÝ  [°(¸MØ 'ñ)ô )ð )r   c                 ó(   — t          | |d ||¦  «        S r   r„  )rq   rr   Ú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æ   rR   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ž   rŽ   Ú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 )Nr*  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 tor.   z.py)r�   r‹   r-  Ú_windows_unicodeÚ_apply_windows_unicoderq  rK  r  Ú_apply_embedding_fixr�  rå   ræ   rR   r   Úget_extensionr†  Úgetcwdr¬  r´  rt  ÚabspathÚchdirÚcompiler›  r‰  )rq   rr   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)"rå   r©  Úior5   r   r   Úerrorr   Úcffi_opcodert   r  r6  rª  Úversion_infor  r   r'   r?   rU   ri   ro   ÚStringIOri  ÚBytesIOrq  r‚  r†  r‰  r�  r—  r›  r¬  r´  rÎ  r%   r   r   ú<module>rÕ     s¬  ðØ Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð à€ØÐ ØÐ à”< 7Ò*ð .¨cÔ.>ÀÒ.Gð .ØÔ# vÒ-ð ð1ð 1ð 1ð 1ð 1ñ 1ô 1ð 1ð )ð )ð )ð )ð )ñ )ô )ð )ð8#ð #ð #ð #ð #ñ #ô #ð #ð:?ð ?ð ?ð ?ð ?ñ ?ô ?ð ?ð0	Kð 	Kð 	Kð 	Kð 	Kñ 	Kô 	Kð 	KðD=ð D=ð D=ð D=ð D=ñ D=ô D=ð D=ðN( Ô�tÒÐØŒ{€H€Hð+ð +ð +ð +ð +�2”:ñ +ô +ð +ð'ð 'ð 'ðð ð ð>)ð )ð )ð )ð
)ð )ð )ð )ð2ð 2ð 2ðð ð ð%ð %ð %ðDð Dð Dð./ð /ð /ð" GKØ;?Ø59Ø#ðC!ð C!ð C!ð C!ð C!ð C!r   