o
    j                     @   s   d Z ddlT dZee  ZdZdZdZdZ	dZ
dZe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!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Z0dZ1dZ2d'Z3dZ4d"Z5d$Z6dZ7dZ8dZ9d&Z:dZ;d(Z<d)Z=d*Z>G d+d, d,e?Z@G d-d. d.e?ZAG d/d0 d0e?ZBG d1d2 d2e?ZCeDe@ZEeDeAZFeDeBZGeDeCZHeEZIeFZJeGZKeEZLdZMdZNdZOd&ZPdZQd(ZRd)ZSd*ZTd'ZUd3ZVd4ZWd5ZXd6ZYd7ZZd8Z[d9Z\d$Z]d:Z^d;Z_d<Z`d=Zad>Zbd?Zcd@ZddAZedBZfdCZgdDZhdEZidFZjdGZkdHZld"ZmdIZndJZodKZpdLZqdMZrdNZsdOZtdPZudQZvdRZwdSZxeTZyeUZzemZ{enZ|dTZ}dUZ~dVZdWZdXZdYZdZZd[Zd\Zd]Zd^Zd_Zd`ZdaZdbZdcZddZdeZdfZdgZdhZdiZdjZdkZdlZdmZdnZdoZdpZdqZdrZdsZdtZduZdvZdwZdxZdyZdzZd{Zd|Zd}Zd~ZdZdZdZd#ZdZdZdZdZdZdZd&ZdZd(Zd)Zd*Zd'Zd3Zd4Zd=ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZG dd de?ZG dd deӃZG dd de?Ze֠DeաZdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZeeeZdd Zdd Zdd Zdd Zdd ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZeZeZeZeZeZeZeZeZeZeZ eZeeeeeeeeeeeeeeeeeeeeeei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eZeZeZeZeZeZeZe	Ze
ZeZeZeZeZ eZ!eZ"eZ#eZ$eZ%dd Z&dd Z'dd Z(dddZ)dd Z*e& Z+e' Z,e( Z-e Z.e)e.Z/e*e.Z0e0d$? Z1dZ2dZ3dZ4d'Z5d$Z6d"Z7dZ8dZ9dZ:d&Z;dZ<dZ=dZ>dZ?dZ@dZAdZBdZCdZDdZEdZFdZGdZHd&ZIdZJd(ZKd)ZLd*ZMdZNdZOdZPd&ZQdZRd(ZSd)ZTd*ZUd'ZVd3ZWd4ZXd5ZYd6ZZdZ[dZ\d&Z]G dd de?Z^eDe^Z_e_Z`dd Zadd ZbeeaebZcdd Zddd ZeeedeeZfee  geZdd eD Zhehi  dS )z
Detect the current architecture and operating system.

Some functions here are really from kernel32.dll, others from version.dll.
   )*Ni  i i  i  i   i i i  i i i i  i  i  i  i  i   i   l                      i   i @     @   i          i       i                  c                   @   8   e Zd Zdefdefdefdefdefded fgZdS )	OSVERSIONINFOAdwOSVersionInfoSizedwMajorVersiondwMinorVersiondwBuildNumberdwPlatformIdszCSDVersionr   N)__name__
__module____qualname__DWORDCHAR_fields_ r    r    /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pypykatz/commons/readers/local/common/version.pyr   y       
r   c                   @   r   )	OSVERSIONINFOWr   r   r   r   r   r   r   N)r   r   r   r   WCHARr   r    r    r    r!   r#      r"   r#   c                   @   V   e Zd Zdefdefdefdefdefded fdefd	efd
efdefdefgZdS )OSVERSIONINFOEXAr   r   r   r   r   r   r   wServicePackMajorwServicePackMinor
wSuiteMaskwProductType	wReservedN)r   r   r   r   r   WORDBYTEr   r    r    r    r!   r&          
r&   c                   @   r%   )OSVERSIONINFOEXWr   r   r   r   r   r   r   r'   r(   r)   r*   r+   N)r   r   r   r   r$   r,   r-   r   r    r    r    r!   r/      r.   r/   	   
                                                               !   "   #   $   %   &   '   (   )   *   +   ,   -   .   /   0   1   2   3   4   5   6   7   8   9   :   ;   <   =   >   ?   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   V   W   X   Y   [   \   ]   i   i   i   i  i  i  iJ  i  i!  i  iHR  iY  i[  i\  il  i'  i'  i'  i5  g   h   i
  i   i   i 	  iq iOI  c                   @   s   e Zd ZdefdefgZdS )_SYSTEM_INFO_OEM_ID_STRUCTwProcessorArchitecturer+   N)r   r   r   r,   r   r    r    r    r!   r   g      r   c                   @   s   e Zd ZdefdefgZdS )_SYSTEM_INFO_OEM_IDdwOemIdwN)r   r   r   r   r   r   r    r    r    r!   r   m  r   r   c                   @   s   e Zd Zdefdefdefdefdefdefdefdefd	efd
efg
Zdd Z	dd Z
ee	e
Zdd Zdd ZeeeZdS )SYSTEM_INFOid
dwPageSizelpMinimumApplicationAddresslpMaximumApplicationAddressdwActiveProcessorMaskdwNumberOfProcessorsdwProcessorTypedwAllocationGranularitywProcessorLevelwProcessorRevisionc                 C   s   | j jS Nr   r   selfr    r    r!   __get_dwOemId  s   zSYSTEM_INFO.__get_dwOemIdc                 C   s   || j _d S r   r   r   valuer    r    r!   __set_dwOemId  s   zSYSTEM_INFO.__set_dwOemIdc                 C   s
   | j jjS r   r   r   r   r   r    r    r!   __get_wProcessorArchitecture  s   
z(SYSTEM_INFO.__get_wProcessorArchitecturec                 C   s   || j j_d S r   r   r   r    r    r!   __set_wProcessorArchitecture  s   z(SYSTEM_INFO.__set_wProcessorArchitectureN)r   r   r   r   r   LPVOID	DWORD_PTRr,   r   _SYSTEM_INFO__get_dwOemId_SYSTEM_INFO__set_dwOemIdpropertyr   (_SYSTEM_INFO__get_wProcessorArchitecture(_SYSTEM_INFO__set_wProcessorArchitecturer   r    r    r    r!   r   s  s$    
r   c                  C   ,   t jj} tg| _d | _t }| t| |S r   )windllkernel32GetSystemInfoLPSYSTEM_INFOargtypesrestyper   byref)_GetSystemInfosysinfor    r    r!   r        r   c                  C   r   r   )r   r   GetNativeSystemInfor   r   r   r   r   )_GetNativeSystemInfor   r    r    r!   r     r   r   c                 C   s"   t jj}tjg|_tj|_|| S r   )r   user32GetSystemMetricsctypesc_intr   r   )nIndex_GetSystemMetricsr    r    r!   r     s   
r   c                  C      t jj} g | _t| _|  S r   )r   r   GetLargePageMinimumr   SIZE_Tr   )_GetLargePageMinimumr    r    r!   r     s   r   c                  C   r   r   )r   r   GetCurrentProcessr   HANDLEr   )_GetCurrentProcessr    r    r!   r        r   c                  C   r   r   )r   r   GetCurrentThreadr   r   r   )_GetCurrentThreadr    r    r!   r     r   r   c                 C   s<   t jj}ttg|_t|_t|_	t
t}|| t| t|S r   )r   r   IsWow64Processr   PBOOLr   boolr   RaiseIfZeroerrcheckBOOLFALSEr   )hProcess_IsWow64ProcessWow64Processr    r    r!   r     s   
r   c                  C   sh   t jj} g | _t| _t| _|  }|d@ }|d@ d? }|d@ dkr'|d@ d? }nd }t|t|t|fS )Nr   r   r   l        r   i  r   )	r   r   
GetVersionr   r   r   r   r   int)_GetVersion	dwVersionr   r   dwBuildr    r    r!   r     s   r   c                  C      t jj} ttg| _t| _t| _	t }t
||_z	| t| W |S  ty?   t }t
||_ttg| _| t| Y |S w r   )r   r   GetVersionExAPOINTERr&   r   r   r   r   r   sizeofr   r   WindowsErrorr   )_GetVersionExAosir    r    r!   r         

r   c                  C   r   r   )r   r   GetVersionExWr   r/   r   r   r   r   r   r   r   r   r   r#   )_GetVersionExWr   r    r    r!   r     r   r   c                 C   sF   t jj}tttttg|_t|_t|_	td}|| |||t
| |jS Nr   )r   r   GetProductInfor   PDWORDr   r   r   r   r   r   r   )dwOSMajorVersiondwOSMinorVersiondwSpMajorVersiondwSpMinorVersion_GetProductInfodwReturnedProductTyper    r    r!   r     s   r   c                 C   s4   t | trt| ||S t | trt| ||S td)NzBad OSVERSIONINFOEX structure)
isinstancer&   VerifyVersionInfoAr/   VerifyVersionInfoW	TypeError)lpVersionInfo
dwTypeMaskdwlConditionMaskr    r    r!   VerifyVersionInfo%  s
   

r   c                 C   *   t jj}tttg|_t|_|t	| ||S r   )
r   r   r   LPOSVERSIONINFOEXAr   	DWORDLONGr   r   r   r   )r   r   r   _VerifyVersionInfoAr    r    r!   r   ,     r   c                 C   r   r   )
r   r   r   LPOSVERSIONINFOEXWr   r   r   r   r   r   )r   r   r   _VerifyVersionInfoWr    r    r!   r   2  r   r   c                 C   s&   t jj}tttg|_t|_|| ||S r   )r   r   VerSetConditionMask	ULONGLONGr   r-   r   r   )r   dwTypeBitMaskdwConditionMask_VerSetConditionMaskr    r    r!   r   =  s   r   unknowni386mipsalphappcshxarmarm64thumbia64alpha64msilamd64sparcUnknown
Windows NTWindows 2000
Windows XPWindows XP (64 bits)Windows 2003Windows 2003 (64 bits)Windows 2003 R2Windows 2003 R2 (64 bits)Windows 2008Windows 2008 (64 bits)Windows 2008 R2Windows 2008 R2 (64 bits)Windows VistaWindows Vista (64 bits)	Windows 7Windows 7 (64 bits)c                   C   s   t td S )z
    Determines the current integer size in bits.

    This is useful to know if we're running in a 32 bits or a 64 bits machine.

    @rtype: int
    @return: Returns the size of L{SIZE_T} in bits.
    r   )r   r   r    r    r    r!   	_get_bits  s   	r  c                  C   sL   zt  } W n ty   t } Y nw zt| jjj W S  ty%   t Y S w )a9  
    Determines the current processor architecture.

    @rtype: str
    @return:
        On error, returns:

         - L{ARCH_UNKNOWN} (C{"unknown"}) meaning the architecture could not be detected or is not known to WinAppDbg.

        On success, returns one of the following values:

         - L{ARCH_I386} (C{"i386"}) for Intel 32-bit x86 processor or compatible.
         - L{ARCH_AMD64} (C{"amd64"}) for Intel 64-bit x86_64 processor or compatible.

        May also return one of the following values if you get both Python and
        WinAppDbg to work in such machines... let me know if you do! :)

         - L{ARCH_MIPS} (C{"mips"}) for MIPS compatible processors.
         - L{ARCH_ALPHA} (C{"alpha"}) for Alpha processors.
         - L{ARCH_PPC} (C{"ppc"}) for PowerPC compatible processors.
         - L{ARCH_SHX} (C{"shx"}) for Hitachi SH processors.
         - L{ARCH_ARM} (C{"arm"}) for ARM compatible processors.
         - L{ARCH_IA64} (C{"ia64"}) for Intel Itanium processor or compatible.
         - L{ARCH_ALPHA64} (C{"alpha64"}) for Alpha64 processors.
         - L{ARCH_MSIL} (C{"msil"}) for the .NET virtual machine.
         - L{ARCH_SPARC} (C{"sparc"}) for Sun Sparc processors.

        Probably IronPython returns C{ARCH_MSIL} but I haven't tried it. Python
        on Windows CE and Windows Mobile should return C{ARCH_ARM}. Python on
        Solaris using Wine would return C{ARCH_SPARC}. Python in an Itanium
        machine should return C{ARCH_IA64} both on Wine and proper Windows.
        All other values should only be returned on Linux using Wine.
    )	r   	Exceptionr   	_arch_mapr   r   r   KeyErrorARCH_UNKNOWN)sir    r    r!   	_get_arch  s   "

r  c                  C   s:   t dkrd} | S ztt } W | S  ty   d} Y | S w )aF  
    Determines if the current process is running in Windows-On-Windows 64 bits.

    @rtype:  bool
    @return: C{True} of the current process is a 32 bit program running in a
        64 bit version of Windows, C{False} if it's either a 32 bit program
        in a 32 bit Windows or a 64 bit program in a 64 bit Windows.
    r	   F)bitsr   r   r  )wow64r    r    r!   
_get_wow64  s   r  c                 C   sJ  | st  } | jtkr| jdkr| jdkrP| jdkr2| jtkr(tdks$tr&dS dS tdks.tr0dS dS | jd	krP| jtkrFtdksBtrDd
S dS tdksLtrNdS dS | jdkr| jdkrt	t
rhtdksdtrfdS dS | jttfv rytdksutrwdS dS | jtkrttkrdS tdkstrdS dS | jd	krdS | jdkrdS | jdkrdS dS )ad  
    Determines the current operating system.

    This function allows you to quickly tell apart major OS differences.
    For more detailed information call L{GetVersionEx} instead.

    @note:
        Wine reports itself as Windows XP 32 bits
        (even if the Linux host is 64 bits).
        ReactOS may report itself as Windows 2000 or Windows XP,
        depending on the version of ReactOS.

    @type  osvi: L{OSVERSIONINFOEXA}
    @param osvi: Optional. The return value from L{GetVersionEx}.

    @rtype: str
    @return:
        One of the following values:
         - L{OS_UNKNOWN} (C{"Unknown"})
         - L{OS_NT} (C{"Windows NT"})
         - L{OS_W2K} (C{"Windows 2000"})
         - L{OS_XP} (C{"Windows XP"})
         - L{OS_XP_64} (C{"Windows XP (64 bits)"})
         - L{OS_W2K3} (C{"Windows 2003"})
         - L{OS_W2K3_64} (C{"Windows 2003 (64 bits)"})
         - L{OS_W2K3R2} (C{"Windows 2003 R2"})
         - L{OS_W2K3R2_64} (C{"Windows 2003 R2 (64 bits)"})
         - L{OS_W2K8} (C{"Windows 2008"})
         - L{OS_W2K8_64} (C{"Windows 2008 (64 bits)"})
         - L{OS_W2K8R2} (C{"Windows 2008 R2"})
         - L{OS_W2K8R2_64} (C{"Windows 2008 R2 (64 bits)"})
         - L{OS_VISTA} (C{"Windows Vista"})
         - L{OS_VISTA_64} (C{"Windows Vista (64 bits)"})
         - L{OS_W7} (C{"Windows 7"})
         - L{OS_W7_64} (C{"Windows 7 (64 bits)"})
    r   r   r   r	   r  r  r  r  r   r  r  r  r  r   r   r  r  r
  r	  r  r  r  r  r  )GetVersionExr   VER_PLATFORM_WIN32_NTr   r   r*   VER_NT_WORKSTATIONr  r  r   SM_SERVERR2r)   VER_SUITE_STORAGE_SERVERVER_SUITE_WH_SERVERarch
ARCH_AMD64)osvir    r    r!   _get_os  sT   &









r(  c                 C   sV   | st  } d}|| jd@ d> 7 }|| jd@ d> 7 }|| jd@ d> 7 }|| jd@ 7 }|S )aD  
    Determines the current operating system.

    This function allows you to quickly tell apart major OS differences.
    For more detailed information call L{kernel32.GetVersionEx} instead.

    @note:
        Wine reports itself as Windows XP 32 bits
        (even if the Linux host is 64 bits).
        ReactOS may report itself as Windows 2000 or Windows XP,
        depending on the version of ReactOS.

    @type  osvi: L{OSVERSIONINFOEXA}
    @param osvi: Optional. The return value from L{kernel32.GetVersionEx}.

    @rtype:  int
    @return: NTDDI version number.
    r   r   r>   r   r   )r  r   r   r'   r(   )r'  ntddir    r    r!   
_get_ntddi4  s   r*  i   i   i   i   i  i  i  i  i  c                   @   s^   e Zd Zdefdefdefdefdefdefdefdefd	efd
efdefdefdefgZdS )VS_FIXEDFILEINFOdwSignaturedwStrucVersiondwFileVersionMSdwFileVersionLSdwProductVersionMSdwProductVersionLSdwFileFlagsMaskdwFileFlagsdwFileOS
dwFileTypedwFileSubtypedwFileDateMSdwFileDateLSN)r   r   r   r   r   r    r    r    r!   r+    s    r+  c                 C   j   t jj}ttttg|_t|_t	|_
t jj}ttg|_t|_t	|_
|| d }t|}|| d|t| |S r   )r   versionGetFileVersionInfoALPSTRr   r   r   r   r   r   r   GetFileVersionInfoSizeAr   create_string_bufferr   )lptstrFilename_GetFileVersionInfoA_GetFileVersionInfoSizeAdwLenlpDatar    r    r!   r;       


r;  c                 C   r9  r   )r   r:  GetFileVersionInfoWLPWSTRr   r   r   r   r   r   r   GetFileVersionInfoSizeWr   r>  r   )r?  _GetFileVersionInfoW_GetFileVersionInfoSizeWrB  rC  r    r    r!   rE    rD  rE  c                 C   V   t jj}tttttg|_t|_	t
|_td}td}|| |t|t| ||jfS r   )r   r:  VerQueryValueAr   r<  r   UINTr   r   r   r   r   r   r   )pBlock
lpSubBlock_VerQueryValueAlpBufferuLenr    r    r!   rK       
rK  c                 C   rJ  r   )r   r:  VerQueryValueWr   rF  r   rL  r   r   r   r   r   r   r   )rM  rN  _VerQueryValueWrP  rQ  r    r    r!   rS    rR  rS  c                 C   s   g | ]	}| d s|qS )_)
startswith).0_xr    r    r!   
<listcomp>
  s    rY  r   (j  __doc__defines_allsetvarskeys
NTDDI_WIN8NTDDI_WIN7SP1
NTDDI_WIN7
NTDDI_WS08NTDDI_VISTASP1NTDDI_VISTANTDDI_LONGHORNNTDDI_WS03SP2NTDDI_WS03SP1
NTDDI_WS03NTDDI_WINXPSP3NTDDI_WINXPSP2NTDDI_WINXPSP1NTDDI_WINXPNTDDI_WIN2KSP4NTDDI_WIN2KSP3NTDDI_WIN2KSP2NTDDI_WIN2KSP1NTDDI_WIN2KNTDDI_WINNT4OSVERSION_MASKSPVERSION_MASKSUBVERSION_MASKVER_PLATFORM_WIN32sVER_PLATFORM_WIN32_WINDOWSr   VER_SUITE_BACKOFFICEVER_SUITE_BLADEVER_SUITE_COMPUTE_SERVERVER_SUITE_DATACENTERVER_SUITE_ENTERPRISEVER_SUITE_EMBEDDEDNTVER_SUITE_PERSONALVER_SUITE_SINGLEUSERTSVER_SUITE_SMALLBUSINESS"VER_SUITE_SMALLBUSINESS_RESTRICTEDr#  VER_SUITE_TERMINALr$  VER_NT_DOMAIN_CONTROLLERVER_NT_SERVERr!  VER_BUILDNUMBERVER_MAJORVERSIONVER_MINORVERSIONVER_PLATFORMIDVER_PRODUCT_TYPEVER_SERVICEPACKMAJORVER_SERVICEPACKMINORVER_SUITENAME	VER_EQUALVER_GREATERVER_GREATER_EQUALVER_LESSVER_LESS_EQUALVER_ANDVER_OR	Structurer   r#   r&   r/   r   LPOSVERSIONINFOALPOSVERSIONINFOWr   r   POSVERSIONINFOAPOSVERSIONINFOWPOSVERSIONINFOEXAPOSVERSIONINFOEXWSM_CXSCREENSM_CYSCREENSM_CXVSCROLLSM_CYHSCROLLSM_CYCAPTIONSM_CXBORDERSM_CYBORDERSM_CXDLGFRAMESM_CYDLGFRAMESM_CYVTHUMBSM_CXHTHUMB	SM_CXICON	SM_CYICONSM_CXCURSORSM_CYCURSOR	SM_CYMENUSM_CXFULLSCREENSM_CYFULLSCREENSM_CYKANJIWINDOWSM_MOUSEPRESENTSM_CYVSCROLLSM_CXHSCROLLSM_DEBUGSM_SWAPBUTTONSM_RESERVED1SM_RESERVED2SM_RESERVED3SM_RESERVED4SM_CXMINSM_CYMIN	SM_CXSIZE	SM_CYSIZE
SM_CXFRAME
SM_CYFRAMESM_CXMINTRACKSM_CYMINTRACKSM_CXDOUBLECLKSM_CYDOUBLECLKSM_CXICONSPACINGSM_CYICONSPACINGSM_MENUDROPALIGNMENTSM_PENWINDOWSSM_DBCSENABLEDSM_CMOUSEBUTTONSSM_CXFIXEDFRAMESM_CYFIXEDFRAMESM_CXSIZEFRAMESM_CYSIZEFRAME	SM_SECURE	SM_CXEDGE	SM_CYEDGESM_CXMINSPACINGSM_CYMINSPACINGSM_CXSMICONSM_CYSMICONSM_CYSMCAPTIONSM_CXSMSIZESM_CYSMSIZESM_CXMENUSIZESM_CYMENUSIZE
SM_ARRANGESM_CXMINIMIZEDSM_CYMINIMIZEDSM_CXMAXTRACKSM_CYMAXTRACKSM_CXMAXIMIZEDSM_CYMAXIMIZED
SM_NETWORKSM_CLEANBOOT	SM_CXDRAG	SM_CYDRAGSM_SHOWSOUNDSSM_CXMENUCHECKSM_CYMENUCHECKSM_SLOWMACHINESM_MIDEASTENABLEDSM_MOUSEWHEELPRESENTSM_XVIRTUALSCREENSM_YVIRTUALSCREENSM_CXVIRTUALSCREENSM_CYVIRTUALSCREENSM_CMONITORSSM_SAMEDISPLAYFORMATSM_IMMENABLEDSM_CXFOCUSBORDERSM_CYFOCUSBORDERSM_TABLETPCSM_MEDIACENTER
SM_STARTERr"  SM_MOUSEHORIZONTALWHEELPRESENTSM_CXPADDEDBORDERSM_CMETRICSSM_REMOTESESSIONSM_SHUTTINGDOWNSM_REMOTECONTROLSM_CARETBLINKINGENABLEDPROCESSOR_ARCHITECTURE_UNKNOWNPROCESSOR_ARCHITECTURE_INTELPROCESSOR_ARCHITECTURE_MIPSPROCESSOR_ARCHITECTURE_ALPHAPROCESSOR_ARCHITECTURE_PPCPROCESSOR_ARCHITECTURE_SHXPROCESSOR_ARCHITECTURE_ARMPROCESSOR_ARCHITECTURE_IA64PROCESSOR_ARCHITECTURE_ALPHA64PROCESSOR_ARCHITECTURE_MSILPROCESSOR_ARCHITECTURE_AMD64$PROCESSOR_ARCHITECTURE_IA32_ON_WIN64PROCESSOR_ARCHITECTURE_SPARCPROCESSOR_INTEL_386PROCESSOR_INTEL_486PROCESSOR_INTEL_PENTIUMPROCESSOR_INTEL_IA64PROCESSOR_AMD_X8664PROCESSOR_MIPS_R4000PROCESSOR_ALPHA_21064PROCESSOR_PPC_601PROCESSOR_PPC_603PROCESSOR_PPC_604PROCESSOR_PPC_620PROCESSOR_HITACHI_SH3PROCESSOR_HITACHI_SH3EPROCESSOR_HITACHI_SH4PROCESSOR_MOTOROLA_821PROCESSOR_SHx_SH3PROCESSOR_SHx_SH4PROCESSOR_STRONGARMPROCESSOR_ARM720PROCESSOR_ARM820PROCESSOR_ARM920PROCESSOR_ARM_7TDMIPROCESSOR_OPTILr   Unionr   r   r   r   r   r   r   r   r   r   r   r   r   r   GuessStringTyper  r   r   r   r   r   r  	ARCH_I386	ARCH_MIPS
ARCH_ALPHAARCH_PPCARCH_SHXARCH_ARM
ARCH_ARM64
ARCH_THUMB	ARCH_IA64ARCH_ALPHA64	ARCH_MSILr&  
ARCH_SPARC	ARCH_IA32ARCH_X86ARCH_X64	ARCH_ARM7	ARCH_ARM8ARCH_T32ARCH_AARCH32ARCH_AARCH64ARCH_POWERPCARCH_HITACHIARCH_ITANIUMr  
OS_UNKNOWNOS_NTOS_W2KOS_XPOS_XP_64OS_W2K3
OS_W2K3_64	OS_W2K3R2OS_W2K3R2_64OS_W2K8
OS_W2K8_64	OS_W2K8R2OS_W2K8R2_64OS_VISTAOS_VISTA_64OS_W7OS_W7_64OS_SEVENOS_SEVEN_64OS_WINDOWS_NTOS_WINDOWS_2000OS_WINDOWS_XPOS_WINDOWS_XP_64OS_WINDOWS_2003OS_WINDOWS_2003_64OS_WINDOWS_2003_R2OS_WINDOWS_2003_R2_64OS_WINDOWS_2008OS_WINDOWS_2008_64OS_WINDOWS_2008_R2OS_WINDOWS_2008_R2_64OS_WINDOWS_VISTAOS_WINDOWS_VISTA_64OS_WINDOWS_SEVENOS_WINDOWS_SEVEN_64r  r  r  r(  r*  r  r%  r  _osviosNTDDI_VERSIONWINVERVS_FF_DEBUGVS_FF_PRERELEASEVS_FF_PATCHEDVS_FF_PRIVATEBUILDVS_FF_INFOINFERREDVS_FF_SPECIALBUILDVOS_UNKNOWNVOS__WINDOWS16	VOS__PM16	VOS__PM32VOS__WINDOWS32VOS_DOS	VOS_OS216	VOS_OS232VOS_NTVOS_DOS_WINDOWS16VOS_DOS_WINDOWS32VOS_NT_WINDOWS32VOS_OS216_PM16VOS_OS232_PM32VFT_UNKNOWNVFT_APPVFT_DLLVFT_DRVVFT_FONTVFT_VXDVFT_RESERVEDVFT_STATIC_LIBVFT2_UNKNOWNVFT2_DRV_PRINTERVFT2_DRV_KEYBOARDVFT2_DRV_LANGUAGEVFT2_DRV_DISPLAYVFT2_DRV_MOUSEVFT2_DRV_NETWORKVFT2_DRV_SYSTEMVFT2_DRV_INSTALLABLEVFT2_DRV_SOUNDVFT2_DRV_COMMVFT2_DRV_RESERVEDVFT2_DRV_VERSIONED_PRINTERVFT2_FONT_RASTERVFT2_FONT_VECTORVFT2_FONT_TRUETYPEr+  PVS_FIXEDFILEINFOLPVS_FIXEDFILEINFOr;  rE  GetFileVersionInforK  rS  VerQueryValue
difference__all__sortr    r    r    r!   <module>   s  
	

	


+
T






