+
     h;i  c                   sP    ^ RI t ^ RIt^ RIt^RIHt ^RIHt  ! R R]4      tRt	R# )    N)modelVerificationErrorc                   sR  a  ] tR t^t o RtRtR tR tR tR t	R.R lt
R tR/R	 ltR
 tR tR tR tR t]t]t]tR t]tR tR tR tR tR tR tR tR tR tR t R t!R t"R t#R t$R0R lt%R  t&]t'R1R! lt(R" t)R# t*R$ t+R% t,R2R& lt-R2R' lt.R( t/R) t0]t1R* t2R+ t3]t4R, t5R-t6V t7R# )3VGenericEngineZgFc                sP    Wn         VP                  V n        . V n        / V n        R # N)verifierffiexport_symbols_struct_pending_verification)selfr      &&7/usr/lib64/python3.14/site-packages/cffi/vengine_gen.py__init__ZVGenericEngine.__init__   s"     << ,.)    c                s>    VP                  R V P                  4       R# )r   N)Z
setdefaultr   )r
   kwdsr   r   patch_extension_kwdsZ#VGenericEngine.patch_extension_kwds   s     	($*=*=>r   c                s    V Fr  pW,           pVf   \         P                  pV FM  p\        P                  P                  We4      p\        P                  P	                  V4      '       g   KI  Vu u # 	  Kt  	  R # r   )syspathosjoinZisfile)r
   Zmodule_namer   Zso_suffixesZ	so_suffixZbasenameZdirnamefilename   &&&&    r   find_moduleZVGenericEngine.find_module   sV    $I".H|xx77<<:77>>(++#O  	 %r   c                    R # r    )r
   s   &r   collect_typesZVGenericEngine.collect_types%       r   c                sJ    V P                   P                  VR ,           4       R# )Z
N)Z_fZwrite)r
   Zwhatr   r   _prntZVGenericEngine._prnt(   s    dTk"r   c                sF   V P                   pV! \        4       V! V P                  P                  4       V P	                  R 4       \
        P                  R8X  dG   \
        P                  R8  d   RpMRpV P                  P                  4       pV! RV: V: R24       R# R# )ZdeclZwin32ZPyInit_Zinitzvoid z(void) { }
N   )	r   cffimod_headerr   Zpreamble	_generater   Zplatformversion_infoZget_module_name)r
   prntprefixZmodnames   &   r   write_source_to_fZ VGenericEngine.write_source_to_f+   s}    zz^T]]##$ 	v
 <<7"4'"mm335GFG<= #r   c                sv  a aa S P                   P                  p\        P                  P	                  \        P
                  S P                  P                  4      pVP                  W14      oS P                  SR 4        ! VVV 3R lR\        P                  4      oS! R4      pS P                  SRVR7       V# )Zloadingc                   sR   <a  ] tR t^Pt o  Zt ZP
                  t. tV3R ltRt	V t
R# )/VGenericEngine.load_library.<locals>.FFILibraryc                s   < SP                   # r   )	_cffi_dir)r
   
FFILibrary   &r   __dir__Z7VGenericEngine.load_library.<locals>.FFILibrary.__dir__T   s    !+++r   r   N)__name__
__module____qualname____firstlineno__Z_cffi_generic_moduler   Z	_cffi_ffir&   r)   __static_attributes____classdictcell__)__classdict__r'   moduler
   s   @r   r'   r%   P   s#     #) II, ,r   r'    Zloaded)library)r   _backendr   r   r   Zcurdirr   Zmodulefilenameload_library_loadtypesZ
ModuleType)r
   Zflagsbackendr   r3   r'   r1   s   f&   @@r   r5   ZVGenericEngine.load_libraryA   s    ((##77<<		4==+G+GH%%h6 	

69%	, 	,)) 	, R. 	

68W
5r   c                s    V P                   P                  P                  P                  4        UUUu. uF  w  pw  r#W3NK  	  ppppVP	                  4        V# u upppi r   )r   Z_parserZ_declarationsZitemsZsort)r
   ZkeytpZqualZlsts   &    r   _get_declarationsZ VGenericEngine._get_declarations]   sY     $ 0 0 > > D D FH F /c:By F 	 H

Hs   Ac                s2   V P                  4        F7  w  r#VP                  R ^4      w  rE \        V RV: RV: 24      p T! Y54       K9  	  R#   \         d    \	        RT,          4      hi ; i  \
         d   p\        P                  ! Yr4       h Rp?ii ; i) Z_generate_gen__znot implemented in verify(): %rN)r:   splitgetattrZAttributeErrorr   	Exceptionr   attach_exception_info)r
   	step_namenamer9   kindrealnamemethodes   &&      r   r    ZVGenericEngine._generatec   s    ..0HD!ZZQ/ND> @I(K L
r$ 1
 " >'5<> >>
  ++A4s#   A A/A,/B:BBc                s    V P                  4        F8  w  rEVP                  R ^4      w  rg\        V RV: RV: 24      p V! WWV3/ VB  K:  	  R#   \         d   p	\        P
                  ! Y4       h Rp	?	ii ; i)r;   r<   Z_gen_N)r:   r=   r>   r?   r   r@   )
r
   r1   rA   r   rB   r9   rC   rD   rE   rF   s
   &&&,      r   r6   ZVGenericEngine._loadr   sq    ..0HD!ZZQ/NDT9d#CDFrV4t4	 1
  ++A4s   
AA6A11A6c                r   r   r   r
   r9   rB      &&&r   _generate_nothingZ VGenericEngine._generate_nothing|   r   r   c                r   r   r   r
   r9   rB   r1   r      &&&&,r   _loaded_noopZVGenericEngine._loaded_noop   r   r   c           	     sB   \        V\        P                  4      '       g   Q hVP                  '       d   V P	                  R W!4       R# V P
                  p\        VP                  4      p. p\        VP                  4       FB  w  rgRp\        V\        P                  4      '       d   RpVP                  RW3,          4       KD  	  RV,          p	\        VP                  V4       UU
u. uF  w  rzVP                  RV
,          V	4      NK   	  ppp
VP                  p\        V\        P                  4      '       d3   VP                  ^ VP                  RV	4      4       \        P                  pRP!                  V4      ;'       g    R	pR
V,          pV P"                  P                  V4       VP$                  '       d   VP$                  R,           pMRpRV: V: RV: R2pRV,          p	V! VP                  W4      4       V! R4       \        VP                  \        P                  4      '       d   RpM/\        VP                  \        P&                  4      '       g   RpMRpV! RV: V: RRP!                  V4      : R24       V! R4       V! 4        R# u up
pi )FNr2   *z%sx%dzargument of %sz %sz *r, Zvoid
_cffi_f_%sr;   (Z)zresult of %s{z*r = zreturn   );})
isinstancer   FunctionPtrTypeellipsis_generate_gen_constr   lenargs	enumerateStructOrUnionappendzip
get_c_nameresultinsert	void_typer   r   abiZVoidType)r
   r9   rB   r"   ZnumargsZargnamesitypeZindirectionZcontextZargZarglistZtpresultwrappernamerc   ZfuncdeclZresult_codes   &&&              r   _generate_gen_function_declZ*VGenericEngine._generate_gen_function_decl   s   "e334444;;; $$UD5zzbgg, )GAK$ 3 344!OOG{&667	 *
 #T)$'$:<$:yt ??53;8$: 	 <99h 3 344NN1h11%ABH))G$.."T)"";/666&&3,CC"%{G< 4'X  34S	bii!4!455!KBIIu~~66#KKk481DEFS	5<s   )$Jc                s&   \        V\        P                  4      '       g   Q hVP                  '       d   V P	                  R WV4      pEM. pTp\
        ;QJ d&    R VP                   4       F  '       g   K   RM	  R M! R VP                   4       4      '       g,   \        VP                  \        P                  4      '       EdH   . p\        VP                  4       F^  w  r\        V
\        P                  4      '       d)   \        P                  ! V
4      p
VP                  W34       VP                  V
4       K`  	  VP                  p\        V\        P                  4      '       dy   VP                  f   \        RVP                  4       : R24      h\        P                  ! V4      pVP                  ^ V4       VP                  ^ RV34       \        P                   p\        P                  ! \#        V4      WP                  4      pV P$                  P'                  V4      pRV,          pVP)                  W4      pV F  w  rV P+                  WYV
V4      pK  	  \-        WBV4       \/        V4      P0                  P                  V4       R# )Fc              3   sV   "   T F  p\        V\        P                  4      x  K!  	  R # 5ir   )rU   r   r\   )Z.0typs   & r   Z	<genexpr>Z6VGenericEngine._loaded_gen_function.<locals>.<genexpr>   s      LGSJsE$7$788Gs   ')TNZ'z'' is used as result type, but is opaquer`   rO   )rU   r   rV   rW   _load_constantZanyrZ   r`   r\   r[   PointerTyper]   ZfldtypesZ	TypeError_get_c_namera   rb   tupler   _get_cached_btypeload_function_make_struct_wrappersetattrre   r&   )r
   r9   rB   r1   r3   ZnewfunctionZindirectionsbase_tpZindirect_argsrd   rh   Zindirect_resultBFuncrf   s   &&&&&         r   _loaded_gen_functionZ#VGenericEngine._loaded_gen_function   s   "e334444;;;--eRvFKLGLBGGLLBGGLLL!"))U-@-@AA "'0FA!#u':':;;#//4$++QH5!((-	 1
 #%))ou/B/BCC&//7',;,G,G,I)L M M ',&7&7&HO!((O< ''Ho+FG&+ooO**5+?+:KKIHH..r2E&-K ..uBK&"778?A ' 	{+W&&t,r   c                s   aaaaa V P                   P                  oV P                   P                  V4      oSR 8X  d   V P                   oVVV3R lpM	VVVV3R lpWEn        V# )r`   c                  sL   < SP                  S4      pS! V.V O5!   V^ ,          # r    )new)rZ   ZresBTyper   oldfuncs   * r   newfunc4VGenericEngine._make_struct_wrapper.<locals>.newfunc   s&    ggen#d#1vr   c                  sz   < V R S SP                  SV S,          4      3,           V S^,           R  ,           p S! V !  # r   )Znewp)rZ   rv   r8   rd   rw   s   *r   rx   ry      s>    BQx7<<tAw#?"AAD1JN~%r   )r   r4   rm   Z_cffi_base_type)	r
   rw   rd   r9   rq   rx   rv   r8   r   s	   &ff&& @@@r   ro   Z#VGenericEngine._make_struct_wrapper   sW    ((##**2.=((C 
& & #*r   c                P    W!P                   8X  g   Q hV P                  VR V4       R# ZstructNrB   _generate_struct_or_union_declrG   rH   r   _generate_gen_struct_declZ(VGenericEngine._generate_gen_struct_decl   s"    ww++B$?r   c                ,    V P                  VR W#4       R# r{   _loading_struct_or_unionr
   r9   rB   r1      &&&&r   _loading_gen_structZ"VGenericEngine._loading_gen_struct   s    %%b(DAr   c                (    V P                  V4       R # r   _loaded_struct_or_unionrJ   rK   r   _loaded_gen_structZ!VGenericEngine._loaded_gen_struct       $$R(r   c                rz   ZunionNr|   rG   rH   r   _generate_gen_union_declZ'VGenericEngine._generate_gen_union_decl   s"    ww++B>r   c                r   r   r   r   r   r   _loading_gen_unionZ!VGenericEngine._loading_gen_union   s    %%b'4@r   c                r   r   r   rJ   rK   r   _loaded_gen_unionZ VGenericEngine._loaded_gen_union  r   r   c           
     s   VP                   f   R # RV: RV: 2pRV: RV: 2pV: RV: 2P                  4       pV P                  pV! RV: RV: R24       V! R4       V! R	4       V! R
4       VP                  4        F  w  rr\	        V	\
        P                  4      '       d   V	P                  4       '       g   V
^ 8  d   V! RV,          4       KT   V! RV	P                  RRV,          VR7      : RV: R24       K  	  V! R4       V P                  P                  V4       V! RV: R24       V! R4       V! RV,          4       V! R4       V! RV,          4       V! R4       VP                  4        F~  w  rrV
^ 8  d   K  V! RV: RV: R24       \	        V	\
        P                  4      '       d.   V	P                  f    V! RV	P                  4       ,          4       Km  V! RV: RV: R24       K  	  V! R 4       V! R!4       V! R"4       V! R#4       V! R$V: R%24       V! R4       V! 4        R #   \         d%   pT! R\        T4      ,          4        R p?EK  R p?ii ; i)&NZ_cffi_check_r<   _cffi_layout_r;   zstatic void rP   z *p)rQ   z8  /* only to generate compile-time warnings or errors */z
  (void)p;z  (void)((p->%s) << 1);z  { z*tmpzfield %r)Zqualsz = &p->z; (void)tmp; }z
  /* %s */rT   z	intptr_t z(intptr_t i)z,  struct _cffi_aligncheck { char x; %s y; };z  static intptr_t nums[] = {z    sizeof(%s),z)    offsetof(struct _cffi_aligncheck, y),z    offsetof(rN   z),z    0,  /* %s */z    sizeof(((z *)0)->z    -1z  };z  return nums[i];z3  /* the next line is not executed, but compiled */rR   z(0);)fldnamesstripr   
enumfieldsrU   r   PrimitiveTypeis_integer_typer_   r   strr   r]   	ArrayTypelengthrk   )r
   r9   r#   rB   Zcheckfuncnamelayoutfuncnamecnamer"   fnameftypefbitsizefqualrF   s   &&&&         r   r}   Z-VGenericEngine._generate_struct_or_union_decl  s	   ;; /5t<17>"D)002zzu=>S	GH\-/]]_)E(5%"5"566))++A.670((E1A(O   .= 	S	"">2.:;S	;eCD+,&'89-/]]_)E(1}E59:%11ell6J'%*;*;*==>UEBC .= 	XV !BC=*+S	1 ) 0A.//0s   *H::I)I$$I)c                s   VP                   f   R # RV: RV: 2pV P                  P                  R4      ^ ,          pVP                  We4      p. p^ p	 V! V	4      p
V
^ 8  d   MVP	                  V
4       V	^,          p	K-  \        V\        P                  4      '       d   VP                  '       dy   V^ ,          pV^,          pVR,          pVR,          pVP                  4        \        V4      \        V4      u;8X  d   \        VP                   4      8X  g   Q h Q hWW3Vn        R # V: RV: 2P                  4       pW3V P                  V&   R # )Nr   r<   zintptr_t(*)(intptr_t):   Nr   :r   Nr   r;   )r   r   _typeof_lockedrn   r]   rU   r   r\   partialZforce_flattenrY   Zfixedlayoutr   r	   )r
   r9   r#   rB   r1   r   rr   functionlayoutZnumZxZ	totalsizeZtotalalignmentZfieldofsZ	fieldsizer   s   &&&&&           r   r   Z'VGenericEngine._loading_struct_or_union7  s$   ;; 17>''(?@C''>A1ueMM!1HCb%--..2::: q	I#AYNd|HtIx=C	NFc"++6FFFFFF%)KBN &-446E4:MD--b1r   c                s   VP                   f   R # V P                  P                  V4       WP                  9   Ed2   R pV P                  pVP                  V4      pV P                  P	                  V4      w  rVV! V^ ,          VP                  V4      R4       V! V^,          VP                  V4      R4       ^pVP                  4        F  w  rrV
^ 8  d   K  V! WW,          VP                  WH4      RV: 24       WW^,           ,          ^ 8w  d<   VP                  V	4      pV! WW^,           ,          VP                  V4      RV: 24       V^,          pK  	  V\        V4      8X  g   Q hR # R # )Nc                 s:    W8w  d   \        R W!V 3,          4      hR# )z'%s (we have %d, but C compiler says %d)Nr   )Z	realvalueZexpectedvalueZmsgrH   r   checkZ5VGenericEngine._loaded_struct_or_union.<locals>.checkZ  s*    -+Ay9:; ; .r   zwrong total sizezwrong total alignmentzwrong offset for field zwrong size for field )
r   r   rm   r	   ZpopsizeofZalignofr   ZoffsetofrY   )r
   r9   r   r   ZBStructr   r   rd   r   r   r   r   ZBFields   &&           r   r   Z&VGenericEngine._loaded_struct_or_unionS  s=   ;;""2&222;
 ((C++B/G ==AA"EMF&)SZZ02DE&)S[[13JKA13-hq=fig!=5:<>A#;!# 2259F&1+szz&'97<>@Q 2A F###/ 3r   c                s    \        V\        P                  4      '       d   V P                  WR 4       R# V P	                  VR V4       R# r2   N)rU   r   EnumType_generate_gen_enum_declr}   rG   rH   r   _generate_gen_anonymous_declZ+VGenericEngine._generate_gen_anonymous_declu  s5    b%..))((26//B=r   c                s    \        V\        P                  4      '       d   V P                  WVR 4       R# V P	                  VR W#4       R# r   )rU   r   r   _loading_gen_enumr   r   r   r   _loading_gen_anonymousZ%VGenericEngine._loading_gen_anonymous{  s7    b%..))""2VR8))"b$?r   c                s    \        V\        P                  4      '       d   V P                  ! WV3/ VB  R # V P	                  V4       R # r   )rU   r   r   _loaded_gen_enumr   rJ   rK   r   _loaded_gen_anonymousZ$VGenericEngine._loaded_gen_anonymous  s6    b%..))!!"F;d;((,r   Nc                s   V P                   pR V: RV: 2pV P                  P                  V4       VeM   V'       g   Q hVR8X  g   Q hV! RV,          4       V! R4       V P                  W%4       V! R4       V! R4       MV'       dD   VR8X  g   Q hV! RV,          4       V! R4       V! R	V: R
24       V! RV: R24       V! R4       MVf   Q hVe   Q hVR8X  d   RpMRpRp	VR8X  d%   \	        V\
        P                  4      '       d   Rp	RpV! VP                  RV	: V: R2V4      4       V! R4       V! RV: V: R
24       V! R4       V! 4        R# )Z_cffi_r<   Nconstint %s(char *out_error)rQ     return 0;rT   zint %s(long long *out_value)z  *out_value = (long long)(rS   z
  return (z) <= 0;varZ&r2   zconst *r;   z(void))r   r   r]   _check_int_constant_valuerU   r   r\   r_   )
r
   is_intrB   r9   categorycheck_valuer"   funcnameZ	ampersandZextras
   &&&&&&    r   rX   Z"VGenericEngine._generate_gen_const  sB   zz$,d3""8,"M6w&&&*X56I**4=Iw&&&/(:;Id<=$01I>!>&&&5 		E7"z"e6I6I'J'J!	x@$GHIy$78Ir   c                s    \        V\        P                  4      ;'       d    VP                  4       pV P	                  W2V4       R # r   )rU   r   r   r   rX   )r
   r9   rB   r      &&& r   _generate_gen_constant_declZ*VGenericEngine._generate_gen_constant_decl  s5    B 3 34MM9K9K9M  r2r   c                s   R V,          pVe    V'       g   Q hV P                  WF4       TpV# V'       d   V P                  P                  R4      ^ ,          pV P                  P                  R4      ^ ,          p	VP                  W4      p
V P                  P	                  V4      pV
! V4      p\        V^ ,          4      pV^ 8  d[   V'       gS   V P                  P                  R4      ^ ,          pV^^V P                  P                  V4      ,          ,          ,          pV# Ve   Q hRp\        V\        P                  4      '       d
   RV,           pV P                  P                  VP                  W4      4      ^ ,          p	VP                  W4      p
V
! 4       p\        V\        P                  4      '       d
   V^ ,          pV# )z_cffi_const_%sz
long long*zint(*)(long long*)z	long longz	(*)(void)rM   )_load_known_int_constantr   r   rn   ru   Zintr   rU   r   r\   r_   )r
   r   r9   rB   r1   r   r   valuerv   rr   r   pZnegativeZ	BLongLongZfntypeextras   &&&&&&         r   ri   ZVGenericEngine._load_constant  sw   #d*"M6))&;E* ) HH++L9!<EHH++,@A!DE++E<HU#A{H!IEqy HH33K@C	!$((//)"< <=>  &&&%K"e1122!K/HH++BMM+,LMaPE++E<HJE"e1122ar   c                s    \        V\        P                  4      ;'       d    VP                  4       pV P	                  WQW#4      p\        WBV4       \        V4      P                  P                  V4       R # r   )	rU   r   r   r   ri   rp   re   r&   r]   )r
   r9   rB   r1   r3   r   r      &&&&&  r   _loaded_gen_constantZ#VGenericEngine._loaded_gen_constant  sY    B 3 34MM9K9K9M##F=u%W&&t,r   c                sL   V P                   pV^ 8:  d   V! RWV3,          4       MV! RWV3,          4       V! R4       V! RV,          4       V! RV,          4       V! R4       V! RV,          4       V! R4       V! R	VR
,          V3,          4       V! R4       V! R4       R# )r    z&  if ((%s) > 0 || (long)(%s) != %dL) {z1  if ((%s) <= 0 || (unsigned long)(%s) != %dUL) {z    char buf[64];z    if ((%s) <= 0)z)        sprintf(buf, "%%ld", (long)(%s));z    elsez2        sprintf(buf, "%%lu", (unsigned long)(%s));z:    sprintf(out_error, "%s has the real value %s, not %s",z            "%s", buf, "%d");:Nid   Nz    return -1;z  }N)r   )r
   rB   r   r"   r   r   r   Z(VGenericEngine._check_int_constant_value  s    zzA:9E=# # $ DEH# # $ !!D()84?@ZA 	IJ,T
E/BBCUr   c                s   V P                   P                  R 4      ^ ,          pV P                   P                  R4      ^ ,          pVP                  WB4      pV P                   P                  VR4      pV! V4      ^ 8  dH   V P                   P	                  V4      p\
        P                  R8  d   \        VR4      p\        V4      hR# )zchar[]zint(*)(char*)i   zutf-8Nr   )	r   r   rn   ru   Zstringr   r!   r   r   )r
   r1   r   rv   rr   r   r   errors   &&&     r   r   Z'VGenericEngine._load_known_int_constant  s    ''1!4''8;''8HHLL$A;?HHOOA&E4'E7+#E**	 r   c                s:    VP                  R R4      pRV: RV: 2# )Z$Z___D_Z_cffi_e_r<   )Zreplace)r
   r#   rB   rH   r   _enum_funcnameZVGenericEngine._enum_funcname  s    ||C)"($//r   c                s   VP                   '       d(   VP                   F  pV P                  R V4       K  	  R# V P                  W24      pV P                  P                  V4       V P                  pV! RV,          4       V! R4       \        VP                  VP                  4       F  w  rGV P                  WG4       K  	  V! R4       V! R4       V! 4        R# )TNr   rQ   r   rT   )
r   enumeratorsrX   r   r   r]   r   r^   
enumvaluesr   )r
   r9   rB   r#   
enumeratorr   r"   	enumvaluer   r   r   Z&VGenericEngine._generate_gen_enum_decl  s    ::: nn
((z: -&&v4""8,zz&12S	%(%G!J**:A &H]S	r   c           	     s   VP                   '       dF   VP                   Uu. uF  pV P                  R WV4      NK  	  pp\        V4      Vn        R Vn        R# V P                  WB4      pV P                  W74       R# u upi )TN)r   r   ri   rl   r   Zpartial_resolvedr   r   )r
   r9   rB   r1   r#   r   r   r   s   &&&&&   r   r   Z VGenericEngine._loading_gen_enum  su    :::,.NN<,:j --dBFK,:  <!*-BM"&B**68H))&;<s   A<c                s    \        VP                  VP                  4       F5  w  rV\        WEV4       \	        V4      P
                  P                  V4       K7  	  R # r   )r^   r   r   rp   re   r&   r]   )r
   r9   rB   r1   r3   r   r   r   r   r   ZVGenericEngine._loaded_gen_enum  sA    %(%G!JG3M##**:6 &Hr   c                sD    VR 8X  d   RpMTpV P                  RW#R7       R# z...NT)r   )rX   )r
   r9   rB   r   r   r   _generate_gen_macro_declZ'VGenericEngine._generate_gen_macro_decl   s&    ;KK  t Er   c                s    VR 8X  d   RpMTpV P                  RWVVR7      p\        WBV4       \        V4      P                  P	                  V4       R# r   )ri   rp   re   r&   r]   )r
   r9   rB   r1   r3   r   r   r   r   _loaded_gen_macroZ VGenericEngine._loaded_gen_macro)  sS    ;KK##D"F0; $ =u%W&&t,r   c                s   \        V\        P                  4      '       d   VP                  4       '       dZ   V P                  pR V: 2pV P
                  P                  V4       V! RV,          4       V! R4       V! RV: R24       V! R4       \        P                  ! VP                  4      pV P                  RW%4       R	# \        P                  ! V4      pV P                  RW%RR7       R	# )
_cffi_sizeof_zsize_t %s(void)rQ   z  return sizeof(rS   rT   Fr   )r   N)
rU   r   r   length_is_unknownr   r   r]   rj   itemrX   )r
   r9   rB   r"   r   tp_ptrs   &&&   r   _generate_gen_variable_declZ*VGenericEngine._generate_gen_variable_decl6  s    b%//**##%%zz046##**84&12S	t56S	&&rww/F$$UD9&&r*F$$UD5$Ir   c                s  a \        V\        P                  4      '       Ed   VP                  4       '       d   R V: 2pV P                  P                  R4      ^ ,          pVP                  We4      pV! 4       pV P                  P                  VP                  4      p	\        WP                  P                  V	4      4      w  rV^ 8w  d   \        RV: RVP                  : 24      hVP                  V
4      p\        P                  ! VP                  4      pV P                  RWV4      pVP                  e7   V P                  P                  V4      pV P                  P!                  W4      p\#        WBV4       \%        V4      P&                  P)                  V4       R# RV,          pV P                  P                  VP+                  RV4      4      ^ ,          pVP                  We4      pV! 4       oV3R lpV3R	 lp\#        \%        V4      V\-        VV4      4       \%        V4      P&                  P)                  V4       R# )
r   zsize_t(*)(void)z
bad size: z! does not seem to be an array of FNz_cffi_var_%sz
*(*)(void)c                 s   < S^ ,          # rt   r   )r3   ptrr(   r   getterZ3VGenericEngine._loaded_gen_variable.<locals>.getterg  s    q6Mr   c                 s   < VS^ &   R# )r    Nr   )r3   r   r   s   &&r   setterZ3VGenericEngine._loaded_gen_variable.<locals>.setteri  s    CFr   )rU   r   r   r   r   r   rn   rm   r   Zdivmodr   r   Zresolve_lengthrj   ri   r   Zcastrp   re   r&   r]   r_   Zproperty)r
   r9   rB   r1   r3   r   rr   r   ZsizeZ	BItemTyper   Zrestr   r   ZBArrayr   r   r   s   &&&&&            @r   _loaded_gen_variableZ#VGenericEngine._loaded_gen_variableH  s   b%//**##%%046//0AB1E!//@z HH66rww?	%dHHOOI,FG19+rww() ) &&v.&&rww/F''vVDE yy$33B7f4G5)M##**40 "D(''lD(IJ1M''8j		WtXff%=>W&&t,r   )r	   r   r   r   )r2   rt   )Nr   Nr   )Zenum)8r*   r+   r,   r-   Z
_class_keyZ_gen_python_moduler   r   r   r   r   r$   r5   r:   r    r6   rI   rL   Z_generate_gen_typedef_declZ_loading_gen_typedefZ_loaded_gen_typedefrg   Z_loading_gen_functionrs   ro   r~   r   r   r   r   r   r}   r   r   r   r   r   rX   r   Z_loading_gen_constantri   r   r   r   r   r   r   r   r   Z_loading_gen_macror   r   Z_loading_gen_variabler   r.   r/   )r0   s   @r   r   r      s"    J/?$#>,8 $5#/#/
+Z )"-H&@B)?A)/bB8$D>@-#J3 )8-&	+0
"<7F &-J  )$- $-r   r   ac  
#include <stdio.h>
#include <stddef.h>
#include <stdarg.h>
#include <errno.h>
#include <sys/types.h>   /* XXX for ssize_t on some platforms */

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