Uname: Linux server.digisquadtech.com 4.18.0-553.100.1.el8_10.x86_64 #1 SMP Mon Feb 2 04:13:33 EST 2026 x86_64
User: 1091 (madhavfluid)
Group: 1090 (madhavfluid)
Disabled functions: NONE
Safe mode: On[ PHPinfo ]
//usr/lib64/python3.6/site-packages///cffi/__pycache__      ( Reset | Go to )
File Name: recompiler.cpython-36.pyc
3
MZ@sddlZddlZddlZddlmZmZddlmZddlTdZ    dZ
dZ Gd    d
d
Z Gd d d Z Gd ddZGdddZGdddZGdddZejd0krejZnGdddejZddZd1ddZd2ddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd3d,d-Zd.d/ZdS)4N) ffiplatformmodel)VerificationError)*i&i'i(c@s&eZdZd    ddZddZddZdS)

GlobalExprrcCs"||_||_||_||_||_dS)N)nameaddresstype_opsize check_value)selfrr    r
r r r"/usr/lib64/python3.6/recompiler.py__init__ s
zGlobalExpr.__init__cCsd|j|j|jj|jfS)Nz'  { "%s", (void *)%s, %s, (void *)%s },)rr    r
    as_c_exprr )r rrrrszGlobalExpr.as_c_exprcCsd|jj|j|jfS)Nz
b'%s%s',%d)r
as_python_bytesrr )r rrras_python_exprszGlobalExpr.as_python_exprN)rr)__name__
__module__ __qualname__rrrrrrrr s
rc@s,eZdZddZddZddZddZd    S)
    FieldExprcCs"||_||_||_||_||_dS)N)r field_offset
field_sizefbitsize field_type_op)r rrrrrrrrrs
zFieldExpr.__init__cCs>dt|j}d|j|jfd||jfd||jjfS)N z  { "%s", %s,
z     %s   %s,
z     %s   %s },)lenrrrrr)r Zspacesrrrr#szFieldExpr.as_c_exprcCstdS)N)NotImplementedError)r rrrr)szFieldExpr.as_python_exprcCsD|jjtkrd}n|jjtkr*t|j}ntd|jj||jfS)Nz    b'%s%s%s')    ropOP_NOOP OP_BITFIELDformat_four_bytesrrrr)r Z    size_exprrrras_field_python_expr,s   
zFieldExpr.as_field_python_exprN)rrrrrrr$rrrrrsrc@s$eZdZddZddZddZdS)StructUnionExprc        Cs4||_||_||_||_||_||_||_||_dS)N)r
type_indexflagsr     alignmentcommentfirst_field_indexc_fields)    r rr&r'r r(r)r*r+rrrr8szStructUnionExpr.__init__cCsPd|j|j|jfd|j|jfd|jt|jf|jrFd|jnddS)Nz  { "%s", %d, %s,z
    %s, %s, z%d, %d z    /* %s */ rz},)    rr&r'r r(r*rr+r))r rrrrCszStructUnionExpr.as_c_exprcCs>t|jt}dd|jD}dt|jt||jdj|fS)NcSsg|] }|jqSr)r$).0Zc_fieldrrr
<listcomp>Lsz2StructUnionExpr.as_python_expr.<locals>.<listcomp>z(b'%s%s%s',%s),)evalr'ZG_FLAGSr+r#r&rjoin)r r'Z fields_exprrrrrJs 
zStructUnionExpr.as_python_exprN)rrrrrrrrrrr%7s r%c@s$eZdZddZddZddZdS)EnumExprcCs"||_||_||_||_||_dS)N)rr&r signedallenums)r rr&r r2r3rrrrUs
zEnumExpr.__init__cCsd|j|j|j|j|jfS)Nz1  { "%s", %d, _cffi_prim_int(%s, %s),
    "%s" },)rr&r r2r3)r rrrr\szEnumExpr.as_c_exprcCsNdtdtd    td
td td td tdti|j|j    f}dt
|j t
||j |j fS)Nrrzb'%s%s%s\x00%s')rr)rr)r4r)r4r)r5r)r5r)r6r)r6r)Z
PRIM_UINT8Z    PRIM_INT8Z PRIM_UINT16Z
PRIM_INT16Z PRIM_UINT32Z
PRIM_INT32Z PRIM_UINT64Z
PRIM_INT64r r2r#r&rr3)r
prim_indexrrrras

zEnumExpr.as_python_exprN)rrrrrrrrrrr1Tsr1c@s$eZdZddZddZddZdS) TypenameExprcCs||_||_dS)N)rr&)r rr&rrrrmszTypenameExpr.__init__cCsd|j|jfS)Nz  { "%s", %d },)rr&)r rrrrqszTypenameExpr.as_c_exprcCsdt|j|jfS)Nzb'%s%s')r#r&r)r rrrrtszTypenameExpr.as_python_exprN)rrrrrrrrrrr8lsr8c@seZdZdZdddZddZddZd    d
Zd d Zd ddddgZ    ddZ
dddZ ddZ ddZ ddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<Zd=d>Zd?d@Z ddBdCZ!dDdEZ"dFdGZ#dHdIZ$e$Z%dJdKZ&dLdMZ'e'Z(dNdOZ)e)Z*dPdQZ+dRdSZ,dTdUZ-ddWdXZ.dYdZZ/d[d\Z0d]d^Z1d_d`Z2ddadbZ3dcddZ4dedfZ5dgdhZ6didjZ7dkdlZ8dmdnZ9dodpZ:dqdrZ;dsdtZ<dudvZ=e=Z>Z?dwdxZ@dydzZAd{d|ZBd}d~ZCddZDeDZEZFddZGddZHddZIddZJddZKddZLddZMeMZNeMZOddZPddZQddZReRZSddZTdAS)
RecompilerrFcCs||_||_||_t|_dS)N)ffi module_nametarget_is_python VERSION_BASE_version)r r:r;r<rrrr~szRecompiler.__init__cCst|j||_dS)N)maxr>)r Zverrrr needs_versionszRecompiler.needs_versionc    CsPi|_|jdt|jtd}g|_x|D]}|jr*|j|dksFtt|j|j|<|jj|xZ|j    D]P}t
|t j t j t jt jt jfst|j|dkrt|j|j|<|jj|qjW|jjdq*WxZ|D]R}|j o|j|dkrt|j|j|<|jj||jr|jdk    r|jjdqWd|jjks>ti|_i|_x@|D]8}t
|t jrnd|j|<nt
|t jrPd|j|<qPWx.tt|jdddD]\}}||j|<qWx.tt|jdddD]\}}||j|<qWx0|D](}t|d|jj}|||j|qWx |jD]}t
|ts&tq&Wt|j|_dS)    NZ collecttype)keyZENDLENcSs|jS)N)r)tprrr<lambda>sz/Recompiler.collect_type_table.<locals>.<lambda>cSs|jS)N)r)rCrrrrDsZ_emit_bytecode_)
_typesdict    _generatesortedstr
cffi_typesZis_raw_functionAssertionErrorrappendargs
isinstancerVoidTypeBasePrimitiveType PointerTypeStructOrUnionOrEnumFunctionPtrTypeZ is_array_typelengthvalues_struct_unions_enums StructOrUnionEnumType    enumerategetattr    __class__rCffiOptuple)r Z    all_declsrCtp1imethodr rrrcollect_type_tablesZ

  
 
 


 zRecompiler.collect_type_tablecCst|tjs2t|tr.x|D]}|j|qWdS||jkrd|j|<t|tjrb|j|jntt|tjr|j    dk    r||j
j j krxN|j D] \}}}}|j|j|||qWn x|jD]\}}|j|qWdS)N)rMrZBaseTypeByIdentityr]_do_collect_typerErRas_raw_functionrWfldtypesr:_parser_included_declarations
enumfields _field_typeZ
_get_items)r rCxZname1r^_rrrrbs  



  
zRecompiler._do_collect_typec
Cs|jjjj}xt|D]\}\}}|jdd\}}yt|d||f}Wn tk
rjtd|YnXy||_    |||Wqt
k
r}    zt j |    |WYdd}    ~    XqXqWdS)Nrrz_generate_cpy_%s_%sz"not implemented in recompile(): %r) r:reZ _declarationsitemsrGsplitrZAttributeErrorr_current_quals    ExceptionrZattach_exception_info)
r     step_namelstrrCqualsZkindZrealnamer`errrrFs zRecompiler._generateglobalfield struct_unionenumtypenamecCs:i|_x|jD]}g|j|<qWt|_|jd|jx>|jD]4}|j|}|dkrh|jdddt||j|<qBW|jd}x:|jj    D],\}}|t
|kst ||j |j kst qWt
|t
|jkst |jd}x<|j j    D].\}}|t
|kst ||j |j kst qWt
|t
|j ks6t dS)NZctxrucSs|jS)N)r)entryrrrrDsz0Recompiler.collect_step_tables.<locals>.<lambda>)rArvrw)_lsts    ALL_STEPSset_seen_struct_unionsrF_add_missing_struct_unionssortr]rUrkrrJrrV)r rprqrCr_rrrcollect_step_tabless* 
 


zRecompiler.collect_step_tablesrcCs|jj|ddS)N
)_fwrite)r Zwhatrrr_prntszRecompiler._prntcCs:|jr|dkst|j|n|dk    s*t|j||dS)N)r<rJwrite_py_source_to_fwrite_c_source_to_f)r fpreamblerrrwrite_source_to_f s
   zRecompiler.write_source_to_fcCs0ttjjtjjt|d}|j}|j|S)Nr)openospathr0dirname__file__    readlinesclose)r filenameglinesrrr_rel_readlinesszRecompiler._rel_readlinesc Csz||_|j}|jjdk    r |d|jd}|jd}|jd|||d<|dj||jjddI}|jjdk    r0|d|jf|d    |j    |jj|d
|d |d |f|d |d|f|d|d|f|d|jd}|jd}|jd|||d<|dj||j
t |d|||||d||dt dd|j jD}xLt|jD]>\}}d}    ||krd||j}    |d||j|    fqW|js|d|d|t|_|jdi}
xn|jD]d} |j| } t| |
| <|
| dkr|d| | fx| D]} || jqBW|d|qW|jjr|d xr|jjD]f}y|jdd!\}}Wn(tk
rtd"|j|fYnX|dkrtd#|d$|fqW|d%|d||d&|d'x8|jD].} |
| dkr@|d(| n |d)| q Wx.|jD]$} | d*krZ|d+|
| | fqZW|jjr|d,n|d-|d.t|jfd}|jr|dO}|d/||d||d0|d1|d||d |d2|d3|f|d4|jrD|d5|d6|d7|d8|j|d9|d:|d;|d|d<|d=|d>|d?|d@|f|dA|dB|f|dC|dC|d |d2|dD|f|d4|dE|j|jf|d<|d|d2|dF|f|d4|dG|j|jf|d<|d||d0|dH|dd|_dS)JNz#define _CFFI_USE_EMBEDDINGz_cffi_include.hz#include "parse_c_type.h"
zparse_c_type.hrr.z#define _CFFI_MODULE_NAME  "%s"z1static const char _CFFI_PYTHON_STARTUP_CODE[] = {z0 };z#ifdef PYPY_VERSIONz5# define _CFFI_PYTHON_STARTUP_FUNC  _cffi_pypyinit_%sz#elif PY_MAJOR_VERSION >= 3z-# define _CFFI_PYTHON_STARTUP_FUNC  PyInit_%sz#elsez*# define _CFFI_PYTHON_STARTUP_FUNC  init%sz#endifz _embedding.hz#include "_cffi_errors.h"
z_cffi_errors.hz>/************************************************************/zstatic void *_cffi_types[] = {cSsg|]\}}||fqSrr)r,rCr_rrrr-Gsz2Recompiler.write_c_source_to_f.<locals>.<listcomp>z // z/* %2d */ %s,%sz  0z};declrz.static const struct _cffi_%s_s _cffi_%ss[] = {z.static const char * const _cffi_includes[] = {r4zQffi object %r includes %r, 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  "%s",z  NULLz?static const struct _cffi_type_context_s _cffi_type_context = {z  _cffi_types,z   _cffi_%ss,z  NULL,  /* no %ss */ruz  %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= */ZPyMODINIT_FUNCz"_cffi_pypyinit_%s(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 >= 3z    return NULL;}z#  ifdef _MSC_VERz     PyMODINIT_FUNCz#  if PY_MAJOR_VERSION >= 3z%     PyInit_%s(void) { return NULL; }z#  elsez     init%s(void) { }z#  endifzPyInit_%s(void)z5  return _cffi_init("%s", 0x%x, &_cffi_type_context);z init%s(void)z.  _cffi_init("%s", 0x%x, &_cffi_type_context);z#  pragma GCC visibility pop)rrr:
_embeddingrindexr0r;rl_print_string_literal_in_arrayr@VERSION_EMBEDDEDdictrErkrYrI _get_c_namerr|_seen_constantsrFr{rzr_included_ffis_assigned_sourcermr _num_externpyr>)r rrprntrr_Zbase_module_nametypeindex2typer r)Znumsrprqryffi_to_includeincluded_module_nameincluded_sourcer'rrrrs 









 
  
 

  


 zRecompiler.write_c_source_to_fcsbt|trd|fSt|ttfrZfdd|D}t|dkrJ|jdddj|fS|jS)Nzb'%s'csg|]}j|qSr)_to_py)r,item)r rrr-sz%Recompiler._to_py.<locals>.<listcomp>rrz(%s)r.)rMrHlistr]rrKr0r)r riZrepr)r rrs

 
zRecompiler._to_pyc Cs||_|j}|d|dt|jjp(f}xzt|D]n}|jj|}y|jdd\}}Wn&tk
rtd|j|fYnX|dk    rtd|d||fq6W||d|j    f|d|j
fd|_
t |j |_ d    d
|j D}|d |j d j|ftd d
|jjD}    xH|jD]>}
|j|
} t| dkr*|
dkr*|d|
|j | fq*W|dkr|ddjdd
t|Df|ddS)Nz# auto-generated filezimport _cffi_backendr4zQffi object %r includes %r, but the latter has not been prepared with set_source()zMnot implemented yet: ffi.include() of a C-based ffi inside a Python-based ffizfrom %s import ffi as _ffi%dzffi = _cffi_backend.FFI('%s',z    _version = 0x%x,cSsg|] }|jqSr)r)r,r rrrr-sz3Recompiler.write_py_source_to_f.<locals>.<listcomp>z    _types = %s,rcSsg|]\}}||fqSrr)r,rCr_rrrr-srruz    _%ss = %s,z    _includes = (%s,),z, cSsg|] }d|qS)z_ffi%dr)r,r_rrrr-s))rrrr:rrangerrmrr;r>r]rIrr0rrErkr{rz) r rrZ num_includesr_rrrZ    types_lstrrprqrrrrsB   

zRecompiler.write_py_source_to_fcCs
|j|S)N)rE)r typerrr _gettypenumszRecompiler._gettypenumc    Cspd}t|tjr|j r|jr<|jdkr<d}d|j}nPt|tjrZd|jdf}n2|jd}d||jjddf}|dkr|j    t
d }nt|tj r|j ||||dSt|tj st|tjr|jd ||j||f|jd |dSt|tjr&d|jd}d|j|}d}nt||jd||||f|jd||jd|f|jd |dS)Nr_BoolZ_cffi_to_c_intz, %sz(%s)_cffi_to_c_doublez(%s)_cffi_to_c_%srrjchar16_tchar32_tz-1z6  if (_cffi_to_c((char *)&%s, _cffi_type(%d), %s) < 0)z    %s;z(%s)_cffi_to_c_pointerz, _cffi_type(%d)ZNULLz  %s = %s(%s%s);z'  if (%s == (%s)%s && PyErr_Occurred()))rr)rMrrOis_complex_typeis_integer_typerUnknownFloatType
get_c_namereplacer@VERSION_CHAR16CHAR32rP"_convert_funcarg_to_c_ptr_or_arrayrQrrrRr)    r rCfromvartovarerrcodeZextraargZ    convertercnameZerrvaluerrr_convert_funcarg_to_cs@  

   z Recompiler._convert_funcarg_to_ccCst|tjr|jddS)NzPy_ssize_t datasize)rMrrPadd)r rC    localvarsrrr_extra_local_variables3s z!Recompiler._extra_local_variablescCs|jd|jd|j|||f|jd|jd|jd||jd||jdf|jd|f|jd    ||j||f|jd||jd
dS) Nz1  datasize = _cffi_prepare_pointer_call_argument(z(      _cffi_type(%d), %s, (char **)&%s);z  if (datasize != 0) {z    if (datasize < 0)z          %s;z&    %s = (%s)alloca((size_t)datasize);rz,    memset((void *)%s, 0, (size_t)datasize);zL    if (_cffi_convert_array_from_object((char *)%s, _cffi_type(%d), %s) < 0)z  })rrr)r rCrrrrrrr7s


z-Recompiler._convert_funcarg_to_c_ptr_or_arraycCsLt|tjr|jr,|jdkr,d||jfSt|tjrBd|fS|jdkr|j r|jjdd}|dkrv|jt    d    ||fSd
||j
|fSnt|tj tj frd ||j
|fSt|tj rd ||j
tj |jfSt|tjr |jdkrtd |j|fd ||j
|fSt|tjr@d
||j
|fSt|dS)Nrz_cffi_from_c_int(%s, %s)z_cffi_from_c_double(%s)z long doublerrjrrz_cffi_from_c_%s(%s)z/_cffi_from_c_deref((char *)&%s, _cffi_type(%d))z0_cffi_from_c_pointer((char *)%s, _cffi_type(%d))z!'%s' is used as %s, but is opaquez0_cffi_from_c_struct((char *)&%s, _cffi_type(%d)))rr)rMrrOrrrrrr@rrrPrR    ArrayTyperrWZfldnames    TypeErrorrrXr)r rCvarcontextrrrr_convert_expr_from_cGs8  

   zRecompiler._convert_expr_from_ccCs|j|d|fS)Nz
(*(%s *)0)) _global_type)r rCrrrr _typedef_typejszRecompiler._typedef_typecCs|j|j||dS)N)rbr)r rCrrrr!_generate_cpy_typedef_collecttypemsz,Recompiler._generate_cpy_typedef_collecttypecCsdS)Nr)r rCrrrr_generate_cpy_typedef_declpsz%Recompiler._generate_cpy_typedef_declcCs$|j|}|jdjt||dS)Nrx)rErzrKr8)r rCrr&rrr _typedef_ctxss
zRecompiler._typedef_ctxcCsf|j||}|j||t|dddkr<|j||jddn&t|tjrb|j|j|jj|j|ddS)NoriginZ unknown_type)
approxname)r    named_ptr)    rrrZ _struct_ctxrrMrZNamedPointerTypetotype)r rCrrrr_generate_cpy_typedef_ctxws   z$Recompiler._generate_cpy_typedef_ctxcCs*|j|j|jr&|j r&|j|dS)N)rbrcellipsisr<)r rCrrrr"_generate_cpy_function_collecttypesz-Recompiler._generate_cpy_function_collecttypecCs|j s tt|tjst|jr2|j||dS|j}t|j    }|dkrPd}n|dkr^d}nd}g}g}d|}x:t
|j    D],\}    }
|j |
j d|    ||j d|    q~Wd    j |} | pd
} |jr|jd } nd } d | || f} |d|jj | f|dd    j |}d}t|jtjr$d }|d|||f|d|d|d|d||f|dd|}x4t
|j    D]&\}    }
|
j d|    |}|d|qzWt}x|j    D]}
|j|
|qWx|D]}|d|fqWt|jtjsd}d|}d|jj d|}||nd}d }t|j    dkrtt|j    }x|D]}    |d|    qJW||d|t|t|d    j dd|Df|d|x6t
|j    D](\}    }
|j|
d|    d|    d |qW|d!|d"d#dtt|j    D}d    j |}|d$|||f|d%|d&||d'|dkrL|d(|rl|d)|j|jd*d+n|d,|d-|d|d.d/d0}d1}g}g}d|}x^t
|j    D]P\}    }
d }||
rd2}d3}|
j d4||    f|}|j ||j d5||    fqW|j}||rJd|}|j d6|}|jd|tj}d}d7}d3}|rd    j |} | pbd
} d8| || f} |d|j | f|d|r||d    j |}|d$|||f|r|d9|dn|d:||f|d;|dS)<NrZnoargrZarg0rLzargument of %sz x%dzx%dz, voidrrz%s_cffi_d_%s(%s)z    static %srzreturn z   %s%s(%s);rz#ifndef PYPY_VERSIONzstatic PyObject *z(_cffi_f_%s(PyObject *self, PyObject *%s)z  %s;z    result = z result of %sz resultz  PyObject *arg%d;z1  if (!PyArg_UnpackTuple(args, "%s", %d, %d, %s))cSsg|] }d|qS)z&arg%dr)r,r_rrrr-sz:Recompiler._generate_cpy_function_decl.<locals>.<listcomp>z    return NULL;zarg%dz return NULLz  Py_BEGIN_ALLOW_THREADSz  _cffi_restore_errno();cSsg|] }d|qS)zx%dr)r,r_rrrr-sz  { %s%s(%s); }z  _cffi_save_errno();z  Py_END_ALLOW_THREADSz  (void)self; /* unused */z  (void)noarg; /* unused */z   return %s;resultz result typez  Py_INCREF(Py_None);z  return Py_None;z#elsecSs t|tjpt|tjo|jS)N)rMrrW PrimitiveTyper)rrrrneed_indirections  z@Recompiler._generate_cpy_function_decl.<locals>.need_indirectionFrTz %sx%dz%sx%dz *resultz
*result = z%s_cffi_f_%s(%s)z  return result;z#  define _cffi_f_%s _cffi_d_%sz#endif)r<rJrMrrRr_generate_cpy_constant_declrrrLrYrKrr0abirrNr|rrrrinsertZ    void_type)r rCrrnumargsZargname    argumentsZcall_argumentsrr_rrepr_argumentsrname_and_argumentsZ result_codeargrrZ result_declrngr
differenceZ indirectionZ    tp_resultrrr_generate_cpy_function_decls  

 
 


 




  



z&Recompiler._generate_cpy_function_declcCs|jr|j r|j||dS|j|j}t|j}|jrBt}n |dkrPt}n|dkr^t    }nt
}|j dj t |d|t||d|ddS)Nrrrtz
_cffi_f_%sz
_cffi_d_%s)r )rr<_generate_cpy_constant_ctxrErcrrLZOP_DLOPEN_FUNCZOP_CPYTHON_BLTN_NZOP_CPYTHON_BLTN_OZOP_CPYTHON_BLTN_VrzrKrr\)r rCrr&rZ    meth_kindrrr_generate_cpy_function_ctx#s  


z%Recompiler._generate_cpy_function_ctxcCsTt|tjrP|j}|dkr0|jd}d||f}|j|d||j}tj||}|S)Nz...rz_cffi_array_len(((%s)0)->%s)z%s[0])rMrrrSrrhr)r Z    tp_structZ
field_nameZtp_field actual_lengthZptr_struct_nametp_itemrrrrh9s 

  zRecompiler._field_typecCs0|j||jr,x|jD]}|j|qWdS)N)rbr<anonymous_struct_fields_struct_collecttype)r rCfldtyperrrrEs
zRecompiler._struct_collecttypec Cs<|jdkrdS|j}d|f}|d|d||f|d|d|dx|jD]\}}}}    y||jsv|dkr|d|||fwXx2t|tjr|jdks|jd    kr|j}|d
}qW|d |j    d d ||    d|fWqXt
k
r}
z|dt |
WYdd}
~
XqXXqXW|d|d||f|dS)Nz_cffi_checkfld_%sZ_CFFI_UNUSED_FNzstatic void %s(%s *p)rz8  /* only to generate compile-time warnings or errors */z
  (void)p;rz>  (void)((p->%s) | 0);  /* check that '%s.%s' is an integer */z...z[0]z  { %s = &p->%s; (void)tmp; }z*tmpzfield %r)rrz
  /* %s */rz(struct _cffi_align_%s { char x; %s y; };) rdrrgrrMrrrSrrrrH) r rCrrrZ checkfuncnameZfnameZftyperfqualrsrrr _struct_declLs6

 &zRecompiler._struct_declNc Cs|j|}d}g}t|tjr(|jd|jdkr@|jdd}||jjjkr|dksd||jjjkr|jdkrpn|j    st
|j rn
|jd|j r|jdn|jdd}dj |pd    }g}|dkrZ|j }    t|j|    }
x
|
D]\} } } }|j|| | } |j| d
|j| ft}| d kr6t}d | }nL|dksZt| tjr`| jdkr`d }n"d|dkrv|jdn|j| f}|dks| d krd }n,|dk    rd|j| f}nd|jd| f}|jt| ||| t||j| qWt|jd}|jdj||dkr$d}d}d}n4|dk    r@d|jf}d}nd|f}d|f}d}nd }d}d}|}|jdjt|j||||||||jj |dS) NZ _CFFI_F_UNIONZ_CFFI_F_OPAQUEZopaqueZ_CFFI_F_CHECK_FIELDSZ_CFFI_F_PACKEDZ_CFFI_F_EXTERNALZexternal|0z field '%s.%s'rz %d /* bits */z
(size_t)-1zsizeof(((%s)0)->%s)rz"((char *)&((%s)0)->%s) - (char *)0zoffsetof(%s, %s)rruz
(size_t)-2r4Zunnamedzsizeof(*(%s)0)z-1 /* unknown alignment */z
sizeof(%s)z"offsetof(struct _cffi_align_%s, y)rrvrr)!rErMrZ    UnionTyperKrdr:rerfpartialanyrZpackedr0r<rrgrh_check_not_opaquerr!r"rrSrrr\rrzextendr%r}r)r rCrrrr&Zreason_for_not_expandingr'r+Zexpand_anonymous_struct_unionrgZfldnamerrrr r offsetr*Zalignr)rrrrms
 




 




 



 



zRecompiler._struct_ctxcCs>xt|tjr|j}qWt|tjr:|jdkr:td|dS)Nz0%s is of an opaque type (not declared in cdef()))rMrrrrWrdr)r rClocationrrrrs

zRecompiler._check_not_opaquecCst|jj}|jdddx|D]\}}||jkr$|jrJtd|f|jjdrx|jddj    rx|jdd}n4|jdkr|j
dkrd}|j |dntd    |f|j |d|q$WdS)
NcSs|dS)Nrr)Ztp_orderrrrrDsz7Recompiler._add_missing_struct_unions.<locals>.<lambda>)rAzDinternal inconsistency: %r is partial but was not seen at this point$rZ_IO_FILEFILEzinternal inconsistency: %r) rrUrkrr}rrr
startswithisdigitZ    forcenamerr)r rqrCorderrrrrr~s


z%Recompiler._add_missing_struct_unionscCs|j|dS)N)r)r rCrrrr _generate_cpy_struct_collecttypesz+Recompiler._generate_cpy_struct_collecttypecCs2|jd}d|kr"||jddfS|d|fSdS)Nrrrj)rr)r rCrrrr _struct_namess
zRecompiler._struct_namescCs|j|f|j|dS)N)rr)r rCrrrr_generate_cpy_struct_declsz$Recompiler._generate_cpy_struct_declcCs|j|f|j|dS)N)rr)r rCrrrr_generate_cpy_struct_ctxsz#Recompiler._generate_cpy_struct_ctxcCs(t|tjr|j||n
|j|dS)N)rMrrX_generate_cpy_enum_collecttyper)r rCrrrr#_generate_cpy_anonymous_collecttypes z.Recompiler._generate_cpy_anonymous_collecttypecCs.t|tjr|j|n|j||d|dS)Ntypedef_)rMrrX_generate_cpy_enum_declr)r rCrrrr_generate_cpy_anonymous_decls  z'Recompiler._generate_cpy_anonymous_declcCs0t|tjr|j||n|j||d|dS)Nr)rMrrX    _enum_ctxr)r rCrrrr_generate_cpy_anonymous_ctxs z&Recompiler._generate_cpy_anonymous_ctxconstcCs||f|jkrtd||f|jj||f|j}d||f}|r|d||d|d|f|d||f|dk    r|dkrd|f}|d    |f|d
|d |d n>|dkst|d ||d|d|jd|f|d |dS)Nz duplicate declaration of %s '%s'z _cffi_%s_%sz$static int %s(unsigned long long *o)rz  int n = (%s) <= 0;zI  *o = (unsigned long long)((%s) | 0);  /* check that %s is an integer */rz%dUz"  if (!_cffi_check_int(*o, n, %s))z     n |= 2;z   return n;rzstatic void %s(char *o)z  *(%s)o = %s;r)rrrrrJr)r is_intrrCcategoryr rfuncnamerrr_generate_cpy_consts2   

  zRecompiler._generate_cpy_constcCs"|j}| s|jr|j|dS)N)rr<rb)r rCrrrrr"_generate_cpy_constant_collecttype&s z-Recompiler._generate_cpy_constant_collecttypecCs|j}|j|||dS)N)rr
)r rCrrrrrr+sz&Recompiler._generate_cpy_constant_declcCs`|j r|jrttd}n$|jr(t}nt}|j|}t||}|jdjt    |d||dS)Nrrtz_cffi_const_%sr)
r<rr\OP_CONSTANT_INTZOP_DLOPEN_CONSTZ OP_CONSTANTrErzrKr)r rCrr
Z
const_kindr&rrrr/s 


z%Recompiler._generate_cpy_constant_ctxcCs|j|dS)N)rb)r rCrrrrr?sz)Recompiler._generate_cpy_enum_collecttypecCs x|jD]}|jd|qWdS)NT) enumeratorsr
)r rCr
enumeratorrrrrBs z"Recompiler._generate_cpy_enum_declc Cs|j|}ttd }|jr"|jx:t|j|jD](\}}|jdj    t
|d|||dq2W|dk    rd|kr|j rd|}d|}n4|j |j g}    |j j |    }tt|j j|    d dk}d    j|j}
|jd
j    t|j||||
dS) Nrrtz_cffi_const_%s)r rz
sizeof(%s)z ((%s)-1) <= 0rr.rwrr)rEr\OP_ENUMr<Zcheck_not_partialzipr Z
enumvaluesrzrKrZbuild_baseinttyper:Zsizeofintcastr0r1r) r rCrr&r
rZ    enumvaluer r2Zbasetpr3rrrrFs"


 
  
zRecompiler._enum_ctxcCs|j||jdS)N)rr)r rCrrrr_generate_cpy_enum_ctx[sz!Recompiler._generate_cpy_enum_ctxcCsdS)Nr)r rCrrrr_generate_cpy_macro_collecttypeasz*Recompiler._generate_cpy_macro_collecttypecCs&|dkrd}n|}|jd||ddS)Nz...T)r )r
)r rCrr rrr_generate_cpy_macro_decldsz#Recompiler._generate_cpy_macro_declcCsT|dkr"|jrtd|fd}n|}ttd}|jdjt|d|||ddS)Nz...zGcannot use the syntax '...' in '#define %s ...' when using the ABI moderrtz_cffi_const_%s)r r)r<rr\r rzrKr)r rCrr r
rrr_generate_cpy_macro_ctxks


 z"Recompiler._generate_cpy_macro_ctxcCsFt|tjrB|j}|dkr$d|f}|j|jd|}tj||}|S)Nz...z_cffi_array_len(%s)z%s[0])rMrrrSrr)r rCZ global_namerrrrrr|s 
 zRecompiler._global_typecCs|j|j||dS)N)rbr)r rCrrrr"_generate_cpy_variable_collecttypesz-Recompiler._generate_cpy_variable_collecttypecCs|j}|j||}t|tjr4|jdkr4|j}d}nd}d|f}|d|j||jd|d|d||f|d|dS)    Nr&z*_cffi_var_%s(void)zstatic )rrrz  return %s(%s);r)    rrrMrrrSrrrn)r rCrrZ    ampersandrrrr_generate_cpy_variable_decls     
z&Recompiler._generate_cpy_variable_declcCsL|j||}|j|}|jr"t}nt}|jdjt|d|t||dS)Nrtz _cffi_var_%s)    rrEr<Z OP_GLOBAL_VARZOP_GLOBAL_VAR_FrzrKrr\)r rCrr&r rrr_generate_cpy_variable_ctxs 

z%Recompiler._generate_cpy_variable_ctxcCst|tjst|j|dS)N)rMrrRrJrb)r rCrrrr'_generate_cpy_extern_python_collecttypesz2Recompiler._generate_cpy_extern_python_collecttypecCs|j}t|jtjrd}nd|}d|jjd|f}|d||d|j||f|g}d|}x0t|jD]"\}}    |    jd||}
|j    |
qtWd    j
|} | pd
} d || f} |j d krd | } dd} t t |jdd}| |jrt |d}t|jtjr*d|jjd||jjd|f}|d||jj| f|d|d||dxft|jD]X\}}    d|}
t|    tjs| |    rd|
}
tj|    }    |d|    jd|d|
fqjW|d|t|jtjs|d|jjdf|d||jd7_dS)Nrz result of %sz(int)sizeof(%s)rz3static struct _cffi_externpy_s _cffi_externpy__%s =z  { "%s.%s", %s };zargument of %sz a%dz, rz%s(%s)    __stdcallz_cffi_stdcall cSst|tjo|jdkS)Nz long double)rMrrr)rCrrrmay_need_128_bitss z9Recompiler._extern_python_decl.<locals>.may_need_128_bitsr6z!sizeof(%s) > %d ? sizeof(%s) : %dz%s%srz   char a[%s];z  char *p = a;za%drz  *(%s)(p + %d) = %s;rz,  _cffi_call_python(&_cffi_externpy__%s, p);z  return *(%s)p;rr)rrMrrrNrr;rYrLrKr0rr?rrWrPr)r rCrZ tag_and_spacerZsize_of_resultrrr_rrrrrZ    size_of_arrr_extern_python_declsX 
 


  

" zRecompiler._extern_python_declcCs|j||ddS)Nzstatic )r)r rCrrrr _generate_cpy_extern_python_declsz+Recompiler._generate_cpy_extern_python_declcCs|j||ddS)NzCFFI_DLLEXPORT )r)r rCrrrr#_generate_cpy_dllexport_python_declsz.Recompiler._generate_cpy_dllexport_python_declcCs|j||ddS)Nr)r)r rCrrrr'_generate_cpy_extern_python_plus_c_declsz2Recompiler._generate_cpy_extern_python_plus_c_declcCsR|jrtd|jrtd|j|}tt|}|jdjt    |d|||dS)Nz,cannot use 'extern "Python"' in the ABI modez$a vararg function is extern "Python"rtz&_cffi_externpy__%s)
r<rrrrEr\ZOP_EXTERN_PYTHONrzrKr)r rCrr&r
rrr_generate_cpy_extern_python_ctxs


z*Recompiler._generate_cpy_extern_python_ctxcCsz|j}|dxf|jdD]X}|d|jd}x6|D].}t|dkrT||d}|dt|f7}q8W||qWdS)Nz=// # NB. this is not a string because of a size limit in MSVCTz// rLz%d,)r
splitlinesrstriprord)r srlineZ printed_linecrrrrs
 z)Recompiler._print_string_literal_in_arraycCsttt|j|<dS)N)r\ OP_PRIMITIVEZ    PRIM_VOIDrI)r rCrrrr_emit_bytecode_VoidTypesz"Recompiler._emit_bytecode_VoidTypecCst|j}tt||j|<dS)N)ZPRIMITIVE_TO_INDEXrr\r+rI)r rCrr7rrr_emit_bytecode_PrimitiveTypes
z'Recompiler._emit_bytecode_PrimitiveTypecCs(d|j|j|jf}tt||j|<dS)Nzl_cffi_prim_int(sizeof(%s), (
           ((%s)-1) | 0 /* check that %s is an integer type */
         ) <= 0))rr\r+rI)r rCrr(rrr!_emit_bytecode_UnknownIntegerTypesz,Recompiler._emit_bytecode_UnknownIntegerTypecCs$d|j|jf}tt||j|<dS)Nzd_cffi_prim_float(sizeof(%s) *
           (((%s)1) / 2) * 2 /* integer => 0, float => 1 */
         ))rr\r+rI)r rCrr(rrr_emit_bytecode_UnknownFloatTypesz*Recompiler._emit_bytecode_UnknownFloatTypecCstt|j|j|j|<|d7}xR|jD]H}|j|}||krht|tjrX|j    ||ntt
||j|<|d7}q(Wt |j }|j dk    r|j dkr|dO}ntd|j ftt||j|<dS)Nrrr4zabi=%r)r\Z OP_FUNCTIONrErrIrLrMrrr-r!rrrrZOP_FUNCTION_END)r rCrr^Z    realindexr'rrr_emit_bytecode_RawFunctionType#s 
  



z)Recompiler._emit_bytecode_RawFunctionTypecCstt|j|j|j|<dS)N)r\
OP_POINTERrErrI)r rCrrrr_emit_bytecode_PointerType6sz%Recompiler._emit_bytecode_PointerTypecCs"|j}tt|j||j|<dS)N)rcr\r1rErI)r rCrrawrrr_emit_bytecode_FunctionPtrType<sz)Recompiler._emit_bytecode_FunctionPtrTypecCs|j|j}|jdkr(tt||j|<nf|jdkrNtdt|jddfn@|j|ddksdt    tt
||j|<tdt|j|j|d<dS)Nz...zitype %s badly placed: the '...' array length can only be used on global arrays or on fields of structuresz/*...*/rrB) rErrSr\Z OP_OPEN_ARRAYrIrrHrrJZOP_ARRAY)r rCrZ
item_indexrrr_emit_bytecode_ArrayType@s 

z#Recompiler._emit_bytecode_ArrayTypecCs|j|}tt||j|<dS)N)rUr\ZOP_STRUCT_UNIONrI)r rCrZ struct_indexrrr_emit_bytecode_StructTypeNs
z$Recompiler._emit_bytecode_StructTypecCs|j|}tt||j|<dS)N)rVr\rrI)r rCrZ
enum_indexrrr_emit_bytecode_EnumTypeSs
z"Recompiler._emit_bytecode_EnumType)F)r)N)NrN)N)Urrrrrr@rarbrFr{rrrrrrrrrrrrrrrrrrrrrhrrrrr~rZ_generate_cpy_union_collecttyperrZ_generate_cpy_union_declrZ_generate_cpy_union_ctxrrrr
r rrrrrrrrrrrrrrZ*_generate_cpy_dllexport_python_collecttypeZ._generate_cpy_extern_python_plus_c_collecttyperr r!r"r#Z"_generate_cpy_dllexport_python_ctxZ&_generate_cpy_extern_python_plus_c_ctxrr,r-r.r/r0r2Z_emit_bytecode_ConstPointerTypeZ_emit_bytecode_NamedPointerTyper4r5r6Z_emit_bytecode_UnionTyper7rrrrr9{s
:
,
4-#  !
Q    

     5 r9cseZdZfddZZS)NativeIOcs(t|tr|jd}tt|j|dS)Nascii)rMZunicodeencodesuperr9r)r r()r[rrr\s

zNativeIO.write)rrrr __classcell__rr)r[rr9[sr9c
Cs|rtd|ft|||dkd}|j|jt}|j|||j}y@t|d }|jt    |d|krvt
WdQRX|rtddSt
k
rd|t j f}    t|    d}|j |WdQRXyt j|    |Wn,tk
r t j|t j|    |YnXd    SXdS)
Nz generating %s)r<rrz(already up-to-date)Fz%s.~%dwT)printr9rarr9rgetvaluerreadrIOErrorrgetpidrrenameOSErrorunlink)
r:r;rZ target_fileverboseZ
recompilerroutputf1Ztmp_filerrr_make_c_or_py_sourceas4    
rJFcCs|dk    s tt|||||S)N)rJrJ)r:r;rZ target_c_filerGrrr make_c_source}s 
rKcCst||d||S)N)rJ)r:r;Ztarget_py_filerGrrrmake_py_sources
rLc Csj|jd}y$tjtjj|f|ddWntk
rBYnX|d|7<tjj|f||fS)Nrrrr)rlrmakedirsrr0rE)Z    outputdirmodname    extensionpartsrrr_modname_to_files
$rQcCs*t||}|j|||ft||||S)N)rZrKsetattr)    patchlistclsrZnew_metholdrrr _patch_meths
 rVcCs(x"t|D]\}}}t|||q
WdS)N)reversedrR)rSrTrZold_methrrr_unpatch_methssrXcs\tjdkr(ddlm}t||dddtjdkrXddlm}fd    d
}t||d |dS) Nwin32r) MSVCCompilerZ_remove_visual_c_refcSs|S)Nr)r Z manifest_filerrrrDsz&_patch_for_embedding.<locals>.<lambda>darwin)    CCompilercs<d|jkr,t|j|_|jjd}d|j|<|f||S)Nz-bundlez -dynamiclib)Z    linker_sorr)r rLkwdsr_)old_link_shared_objectrrmy_link_shared_objects

  
z3_patch_for_embedding.<locals>.my_link_shared_objectZlink_shared_object)sysplatformZdistutils.msvc9compilerrZrVZdistutils.ccompilerr\)rSrZr\r_r)r^r_patch_for_embeddings
 

  rbcslddlm}jdrRdd tjdkr6d7ntjdkrJd7nd    7t||d
fd d dS)Nr)    build_extz.*r4rYz.dllr[z.dylibz.soZget_ext_filenamecsS)Nr)r Zext_name)targetrrrDsz#_patch_for_target.<locals>.<lambda>r)Zdistutils.command.build_extrcendswithr`rarV)rSrdrcr)rdr_patch_for_targets 
 



rfrT.cc  Kst|ts|jd}|jr$|j| |dk    r^|jdk    } | rF|j| |dkrzt|||\}} |rl|g| } tj    j
| }n|}|    dkr| rd|}    nd}    t j ||f| }t |||||d}|rTg}tj}zn| rt||    dkrt||    |r|dkrd}nd}td|tj    j|ftj|t jd|||
}Wdtj|t|X|S||fSn<|dkrxt||d    \}}t||||d}|r|Sd|fSdS)
Nr:z%s.*r)rGrzthe current directory isz setting the current directory toz%s %rz.py)rMrHr;Z_windows_unicodeZ_apply_windows_unicoderZ_apply_embedding_fixrQrrr0rZ get_extensionrKgetcwdrbrfr?abspathchdircompilerXrL)r:r;rtmpdirZcall_c_compilerZc_fileZsource_extensionZextradirZcompiler_verboserddebugr]Z    embeddingrPZ
ext_c_fileZextupdatedrScwdmsgoutputfilenamerjrrr    recompilesb












 



rrc Osddlm}ddl}|tjks,td|f|jdt|t|||f||}|j    ||}xFt
|j D]8}    |    j dsht |j |    }
|
t ||    tk    rht||    |
qhWdd} | |_x6t
|D]*}    |    j d rt|j |     rt||    tqW|jS)Nr)udirzmodule name conflict: %rrlrjc_stdS)N)r)rLr]rrrtypeof_disabledsz _verify.<locals>.typeof_disabled)Z testing.udirrsimpr`modulesrJ
setdefaultrHrrZ load_dynamicdirr:rrZobjectrRZ_typeofhasattrNotImplementedlib) r:r;rrLr]rsrurqmodulerattrrtrrr_verifys$ 
 
 r)r8)F)F)rTNrgNrNN) rr`iorrrerrorrZ cffi_opcoder=rrrrr%r1r8r9 version_infoStringIOr9BytesIOrJrKrLrQrVrXrbrfrrrrrrr<module>sH f



<

All system for education purposes only. For more tools: Telegram @jackleet

Mr.X Private Shell

Logo
-
New File | New Folder
Command
SQL