o
    àý°jÄ ã                   @   sx  d dl mZ d dl mZ d dlmZmZmZ d dlmZ d dl	Z	d dl
Z	d dlZd dlZd dl	mZ d dlmZmZmZmZmZmZ d dlmZmZmZmZmZmZmZmZmZ d d	lm Z  d d
l!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0m1Z1 d dl2m3Z3m4Z4 d dl5m6Z6m7Z7 �dÐdd„Z8G dd„ de.ƒZ9dZ:dZ;dZ<dZ=dZ>dZ?dZ@dZAdZBdZCdZDdZEdZFdZGdZHdZIddd d!d"d#d$d%d&d'd(d)œZJd ddd*dd+d,d-d.d/d0d1œZKG d2d3„ d3e6ƒZLeLZMeLZNG d4d5„ d5e6ƒZOdZPePZQeQZRG d6d7„ d7e6ƒZSG d8d9„ d9e6ƒZTdZUd:ZVG d;d<„ d<eWƒZXG d=d>„ d>e,ƒZYi eYjZj[d?“eYj\j[d“eYj]j[d@“eYj^j[dA“eYj_j[dB“eYj`j[d“eYjaj[dC“eYjbj[dD“eYjcj[dE“eYjdj[dF“eYjej[dA“eYjfj[eP“eYjgj[eP“eYjhj[eP“eYjij[dA“eYjjj[eP“Zki eYjZj[dG“eYj\j[dH“eYj]j[dI“eYj^j[dJ“eYj_j[dK“eYj`j[dL“eYjaj[dM“eYjbj[dN“eYjcj[dO“eYjdj[dP“eYjej[dQ“eYjfj[dR“eYjgj[dS“eYjhj[dT“eYjij[dU“eYjjj[dV“ZleYjij[eYjej[eYjZj[eYj\j[eYj]j[eYj^j[eYj_j[eYj`j[eYjaj[eYjbj[eYjcj[eYjdj[fZmeQZndZoeUZpG dWdX„ dXe6ƒZqeqZrG dYdZ„ dZe6ƒZsG d[d\„ d\e6ƒZtetZudZveQZwePZxG d]d^„ d^e6ƒZydZzdAZ{dZ|dZ}etZ~G d_d`„ d`e6ƒZdaZ€G dbdc„ dce6ƒZ�dZ‚G ddde„ dee6ƒZƒeƒZ„G dfdg„ dge6ƒZ…dAZ†dAZ‡eQZˆdZ‰dhZŠdZ‹ePZŒeŒZ�ePZŽeŽZ�e�Z�e�Z‘eƒZ’G didj„ dje6ƒZ“G dkdl„ dle6ƒZ”G dmdn„ dne6ƒZ•e•Z–dZ—eQZ˜dZ™e™ZšG dodp„ dpe•ƒZ›dZœG dqdr„ dre6ƒZ�G dsdt„ dte6ƒZžeƒZŸG dudv„ dve6ƒZ e•Z¡e•Z–G dwdx„ dxe6ƒZ¢G dydz„ dze6ƒZ£G d{d|„ d|e6ƒZ¤G d}d~„ d~e6ƒZ¥e3dƒZ¦e3d€ƒZ§e3d�ƒZ¨e4d‚ƒZ©e4dƒƒZªe4d„ƒZ«e4d…ƒZ¬e4d†ƒZ­e4d‡ƒZ®e4dˆƒZ¯e4d‰ƒZ°e4dŠƒZ±e4d‹ƒZ²e4dŒƒZ³e4d�ƒ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ÅG d”d•„ d•eƒZÆG d–d—„ d—eƒZÇG d˜d™„ d™eƒZÈe(ZÉG dšd›„ d›eƒZÊG dœd�„ d�eƒZËG dždŸ„ dŸeƒZÌG d d¡„ d¡eƒZÍG d¢d£„ d£eƒZÎG d¤d¥„ d¥eƒZÏG d¦d§„ d§eƒZÐG d¨d©„ d©eƒZÑG dªd«„ d«eƒZÒG d¬d­„ d­eƒZÓG d®d¯„ d¯e6ƒZÔG d°d±„ d±e6ƒZÕG d²d³„ d³e6ƒZÖG d´dµ„ dµe6ƒZ×G d¶d·„ d·e6ƒZØG d¸d¹„ d¹eƒZÙG dºd»„ d»eƒZÚG d¼d½„ d½eƒZÛG d¾d¿„ d¿e6ƒZÜG dÀdÁ„ dÁeƒZÝG dÂdÃ„ dÃeƒZÞG dÄdÅ„ dÅeƒZßG dÆdÇ„ dÇeƒZàG dÈdÉ„ dÉeƒZáG dÊdË„ dËeƒZâG dÌdÍ„ dÍeƒZãG dÎdÏ„ dÏeƒZäG dÐdÑ„ dÑeƒZåG dÒdÓ„ dÓeƒZæG dÔdÕ„ dÕeƒZçG dÖd×„ d×eƒZèG dØdÙ„ dÙeƒZéG dÚdÛ„ dÛeƒZêG dÜdÝ„ dÝeƒZëG dÞdß„ dßeƒZìG dàdá„ dáeƒZíG dâdã„ dãeƒZîG dädå„ dåeƒZïG dædç„ dçeƒZðG dèdé„ déeƒZñG dêdë„ dëeƒZòG dìdí„ díeƒZóG dîdï„ dïeƒZôG dðdñ„ dñeƒZõG dòdó„ dóeƒZöG dôdõ„ dõeƒZ÷G död÷„ d÷eƒZøG dødù„ dùeƒZùG dúdû„ dûeƒZúG düdý„ dýeƒZûG dþdÿ„ dÿeƒZüG �d �d„ �deƒZýG �d�d„ �deƒZþG �d�d„ �deƒZÿG �d�d„ �deƒ�Z G �d�d	„ �d	eƒ�ZG �d
�d„ �deƒ�ZG �d�d„ �deƒ�ZG �d�d„ �deƒ�ZG �d�d„ �deƒ�ZG �d�d„ �deƒ�ZG �d�d„ �deƒ�ZG �d�d„ �deƒ�ZG �d�d„ �deƒ�Z	G �d�d„ �deƒ�Z
G �d�d„ �deƒ�ZG �d�d„ �deƒ�ZG �d �d!„ �d!eƒ�ZG �d"�d#„ �d#eƒ�ZG �d$�d%„ �d%eƒ�ZG �d&�d'„ �d'eƒ�ZG �d(�d)„ �d)eƒ�ZG �d*�d+„ �d+eƒ�ZG �d,�d-„ �d-eƒ�ZG �d.�d/„ �d/eƒ�ZG �d0�d1„ �d1eƒ�ZG �d2�d3„ �d3eƒ�ZG �d4�d5„ �d5eƒ�ZG �d6�d7„ �d7eƒ�ZG �d8�d9„ �d9eƒ�ZG �d:�d;„ �d;eƒ�ZG �d<�d=„ �d=eƒ�ZG �d>�d?„ �d?eƒ�ZG �d@�dA„ �dAeƒ�ZG �dB�dC„ �dCeƒ�ZG �dD�dE„ �dEeƒ�ZG �dF�dG„ �dGeƒ�Z G �dH�dI„ �dIeƒ�Z!G �dJ�dK„ �dKeƒ�Z"G �dL�dM„ �dMeƒ�Z#G �dN�dO„ �dOeƒ�Z$G �dP�dQ„ �dQeƒ�Z%G �dR�dS„ �dSeƒ�Z&G �dT�dU„ �dUeƒ�Z'G �dV�dW„ �dWeƒ�Z(G �dX�dY„ �dYeƒ�Z)G �dZ�d[„ �d[eƒ�Z*G �d\�d]„ �d]eƒ�Z+G �d^�d_„ �d_eƒ�Z,G �d`�da„ �daeƒ�Z-G �db�dc„ �dceƒ�Z.G �dd�de„ �deeƒ�Z/G �df�dg„ �dgeƒ�Z0G �dh�di„ �dieƒ�Z1G �dj�dk„ �dkeƒ�Z2G �dl�dm„ �dmeƒ�Z3G �dn�do„ �doeƒ�Z4G �dp�dq„ �dqeƒ�Z5G �dr�ds„ �dseƒ�Z6G �dt�du„ �dueƒ�Z7G �dv�dw„ �dweƒ�Z8G �dx�dy„ �dyeƒ�Z9G �dz�d{„ �d{eƒ�Z:G �d|�d}„ �d}eƒ�Z;G �d~�d„ �deƒ�Z<G �d€�d�„ �d�eƒ�Z=G �d‚�dƒ„ �dƒeƒ�Z>G �d„�d…„ �d…eƒ�Z?G �d†�d‡„ �d‡eƒ�Z@G �dˆ�d‰„ �d‰eƒ�ZAG �dŠ�d‹„ �d‹eƒ�ZBG �dŒ�d�„ �d�eƒ�ZCG �dŽ�d�„ �d�eƒ�ZDG �d��d‘„ �d‘eƒ�ZEG �d’�d“„ �d“eƒ�ZFG �d”�d•„ �d•eƒ�ZGG �d–�d—„ �d—eƒ�ZHG �d˜�d™„ �d™eƒ�ZIG �dš�d›„ �d›eƒ�ZJG �dœ�d�„ �d�eƒ�ZKG �dž�dŸ„ �dŸeƒ�ZLG �d �d¡„ �d¡eƒ�ZMG �d¢�d£„ �d£eƒ�ZNG �d¤�d¥„ �d¥eƒ�ZOG �d¦�d§„ �d§eƒ�ZPG �d¨�d©„ �d©eƒ�ZQG �dª�d«„ �d«eƒ�ZRG �d¬�d­„ �d­eƒ�ZSG �d®�d¯„ �d¯eƒ�ZTG �d°�d±„ �d±eƒ�ZUG �d²�d³„ �d³eƒ�ZVG �d´�dµ„ �dµeƒ�ZWG �d¶�d·„ �d·eƒ�ZXG �d¸�d¹„ �d¹eƒ�ZYi �ZZ�dº�d»„ �Z[G �d¼�d½„ �d½eƒ�Z\G �d¾�d¿„ �d¿eƒ�Z]G �dÀ�dÁ„ �dÁeƒ�Z^G �dÂ�dÃ„ �dÃeƒ�Z_G �dÄ�dÅ„ �dÅeƒ�Z`G �dÆ�dÇ„ �dÇeƒ�ZaG �dÈ�dÉ„ �dÉeƒ�ZbG �dÊ�dË„ �dËeƒ�ZcG �dÌ�dÍ„ �dÍeƒ�Zd�ee�dÎk�	rº�dÏ�ZfdS dS (Ñ  é    )Údivision)Úprint_function)ÚunpackÚcalcsizeÚpack)ÚpartialN)ÚOrderedDict)Ú	NDRSTRUCTÚNDRUniConformantArrayÚ
NDRPOINTERÚNDRUniConformantVaryingArrayÚNDRUNIONÚNDRENUM)	ÚDCOMCALLÚ
DCOMANSWERÚIRemUnknownÚPMInterfacePointerÚ	INTERFACEÚPMInterfacePointer_ARRAYÚ
BYTE_ARRAYÚPPMInterfacePointerÚOBJREF_CUSTOM)ÚBSTR)	ÚULONGÚDWORDÚNULLÚLPWSTRÚLONGÚHRESULTÚPGUIDÚLPCSTRÚGUID)ÚEnum)ÚDCERPCException)Úhresult_errorsÚLOG)Ústring_to_binÚuuidtup_to_bin)Ú	StructureÚhexdumpc                 C   sà   d}t | tjjƒrEtdd„ t|  ¡ ƒD ƒƒ}t|  ¡ ƒD ]&\}}dd|  d|tt	|ƒƒ   t	|ƒ }||d t
||| d� 7 }q|S t | tjjƒrjt | t	ƒsj| D ]}|dd|  d t
||d	 d� 7 }qS|S t	| ƒ}|S )
NÚ c                 S   s   g | ]}t t|ƒƒ‘qS © )ÚlenÚstr)Ú.0Úxr+   r+   úŽ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/impacket/dcerpc/v5/dcom/wmi.pyÚ
<listcomp>3   s    z$format_structure.<locals>.<listcomp>Ú
ú z: )Úlevelz- é   )Ú
isinstanceÚcollectionsÚabcÚMappingÚmaxÚlistÚkeysÚitemsr,   r-   Úformat_structureÚIterable)Údr4   r/   ÚlenkÚkÚvÚkey_textÚer+   r+   r0   r>   0   s   (û&ÿr>   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚDCERPCSessionErrorNc                 C   s   t  | |||¡ d S ©N)r#   Ú__init__)ÚselfÚerror_stringÚ
error_codeÚpacketr+   r+   r0   rH   ?   s   zDCERPCSessionError.__init__c                 C   sl   | j tjv rtj| j  d }tj| j  d }d| j ||f S zd| j t | j ¡jf W S    d| j   Y S )Nr   é   z&WMI SessionError: code: 0x%x - %s - %sz"WMI Session Error: code: 0x%x - %sz*WMI SessionError: unknown error code: 0x%x)rK   r$   ÚERROR_MESSAGESÚ
WBEMSTATUSÚ	enumItemsÚname)rI   Úerror_msg_shortÚerror_msg_verboser+   r+   r0   Ú__str__B   s   zDCERPCSessionError.__str__)NNN)Ú__name__Ú
__module__Ú__qualname__rH   rT   r+   r+   r+   r0   rF   >   s    
rF   rM   é   é   é    é@   é€   úB=0r5   z<L=0x12345678ú<L=0ú"ÚkeyÚNADAÚreadÚwriteÚvolatileÚproviderÚdynamicÚcimwin32r   ÚCIMTYPE)r   rM   rX   é   r5   é   é   é   é   é	   é
   ri   rj   rk   rl   rm   rn   ro   )r_   r`   ra   rb   rc   rd   re   rf   rg   r   rh   c                   @   s0   e Zd ZdeffZdZdZd
dd„Zdd	„ ZdS )ÚENCODED_STRINGÚEncoded_String_Flag))Ú	CharacterÚz))rr   ÚuNr   c                 C   s®   t  | ||¡ |d urN|  |¡ d| _d| _t|ƒdkrL| d dkr>|  j| j7  _|dd …  d¡}|d |d d … }n| j| _d| _|  |¡ d S d S | j| _d | _	d S )Nr+   FrM   rq   r   ó    T)
r(   rH   Ú
fromStringÚ	structureÚ	isUnicoder,   ÚtasciiÚfindÚtunicodeÚdata)rI   r|   Ú	alignmentÚindexr+   r+   r0   rH   ›   s    
ö
zENCODED_STRING.__init__c                 C   s*   |dkr| j r| jd  d¡S t | |¡S )Nrr   úutf-16le)rx   ÚfieldsÚdecoder(   Ú__getitem__)rI   r`   r+   r+   r0   r‚   ±   s   zENCODED_STRING.__getitem__©Nr   )	rU   rV   rW   ÚENCODED_STRING_FLAGÚ	commonHdrry   r{   rH   r‚   r+   r+   r+   r0   rp   Ž   s    ÿ
rp   c                   @   ó    e Zd ZddefddeffZdS )Ú
DECORATIONÚDecServerNameú:ÚDecNamespaceNameN)rU   rV   rW   ÚDEC_SERVER_NAMEÚDEC_NAMESPACE_NAMErw   r+   r+   r+   r0   r‡   ¾   ó    þr‡   c                   @   ó(   e Zd ZdefdefdefdeffZdS )ÚCLASS_HEADERÚEncodingLengthÚReservedOctetÚClassNameRefÚNdTableValueTableLengthN)rU   rV   rW   ÚENCODING_LENGTHÚRESERVED_OCTETÚCLASS_NAME_REFÚNDTABLE_VALUE_TABLE_LENGTHrw   r+   r+   r+   r0   r�   Î   ó    ür�   c                   @   ó   e Zd ZdefddfZdS )ÚDERIVATION_LISTr�   )Ú_ClassNameEncodingz_-ClassNameEncodingúself["EncodingLength"]-4)ÚClassNameEncodingr‰   N)rU   rV   rW   r”   rw   r+   r+   r+   r0   rš   ×   s
    ýrš   i    c                   @   s   e Zd Zdd„ ZdS )ÚEnumTypec                 C   s   | j | jS rG   )rP   Úvalue)rI   Úattrr+   r+   r0   Ú__getattr__ã   ó   zEnumType.__getattr__N)rU   rV   rW   r¡   r+   r+   r+   r0   rž   â   s    rž   c                   @   sŒ   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 S )!ÚCIM_TYPE_ENUMrY   é   rX   é   ri   é   é   é   r5   rj   é   rm   ée   éf   ég   é   i   i   i   i   i   i	   i
   i   i   i   i   ie   if   ig   i   N)#rU   rV   rW   ÚCIM_TYPE_SINT8ÚCIM_TYPE_UINT8ÚCIM_TYPE_SINT16ÚCIM_TYPE_UINT16ÚCIM_TYPE_SINT32ÚCIM_TYPE_UINT32ÚCIM_TYPE_SINT64ÚCIM_TYPE_UINT64ÚCIM_TYPE_REAL32ÚCIM_TYPE_REAL64ÚCIM_TYPE_BOOLEANÚCIM_TYPE_STRINGÚCIM_TYPE_DATETIMEÚCIM_TYPE_REFERENCEÚCIM_TYPE_CHAR16ÚCIM_TYPE_OBJECTÚCIM_ARRAY_SINT8ÚCIM_ARRAY_UINT8ÚCIM_ARRAY_SINT16ÚCIM_ARRAY_UINT16ÚCIM_ARRAY_SINT32ÚCIM_ARRAY_UINT32ÚCIM_ARRAY_SINT64ÚCIM_ARRAY_UINT64ÚCIM_ARRAY_REAL32ÚCIM_ARRAY_REAL64ÚCIM_ARRAY_BOOLEANÚCIM_ARRAY_STRINGÚCIM_ARRAY_DATETIMEÚCIM_ARRAY_REFERENCEÚCIM_ARRAY_CHAR16ÚCIM_ARRAY_OBJECTr+   r+   r+   r0   r£   æ   sB    r£   zb=0z<h=0z<H=0z<l=0z<q=0z<Q=0z<f=0z<d=0Úsint8Úuint8Úsint16Úuint16Úsint32Úuint32Úsint64Úuint64Úreal32Úreal64ÚboolÚstringÚdatetimeÚ	referenceÚchar16Úobjectc                   @   s"   e Zd ZdeffZedd„ ƒZdS )ÚENCODED_VALUEÚQualifierNamec                 C   sn  |t tB  @ }|t @ }|dk�r5||d … }|t @ rÏttd d… ƒ}ttd d… |d |… ƒd }||d … }tƒ }t| d d… }	t|	ƒ}
|tjj	kru|d| d … }t
|ƒD ]}t|ƒ}| |d ¡ |t| ¡ ƒd … }qY|}|S |tjj	kr°||| d … }t
|ƒD ]$}t|ƒ}tƒ }|d |d< |d |d< | |¡ ||d d d … }q‡|}|S t
|ƒD ]}| t|	|d |
… ƒd ¡ ||
d … }q´|}|S |tjj	krá|d	krÝd
}|S d}|S |tjj	krþt|ƒ}tƒ }|d |d< |d |d< |}|S |tjj	tjj	tjj	fv�r|}|S z	t|ƒd }W |S  t�y4   t ¡ jtjk�r3t d¡ t|ƒ ‚ w d S )Nì   ÿÿ éþÿÿÿr   r5   rr   r�   ÚObjectEncodingLengthÚObjectBlockiÿÿ  ÚTrueÚFalsezUnicode Error: dumping heapData)ÚCIM_ARRAY_FLAGÚ	Inheritedr   ÚHEAPREFr   r;   ÚCIM_TYPES_REFr£   rÉ   rŸ   Úrangerp   Úappendr,   ÚgetDatarÍ   ÚMETHOD_SIGNATURE_BLOCKÚENCODING_UNITr¸   r½   r¹   rº   r»   ÚUnicodeDecodeErrorÚloggingÚ	getLoggerr4   ÚDEBUGr%   Údebugr)   )ÚclsÚcimTypeÚentryÚheapÚpTypeÚheapDataÚdataSizeÚnumItemsÚarrayÚunpackStrArrayÚdataSizeArrayÚ_ÚitemÚmsbÚunitrŸ   r+   r+   r0   ÚgetValueG  s~   

Ô
ßäèéôÿ
øú
üÆzENCODED_VALUE.getValueN)rU   rV   rW   ÚQUALIFIER_NAMErw   Úclassmethodr  r+   r+   r+   r0   rÞ   B  s
    ÿrÞ   c                   @   s,   e Zd ZdefdefdeffZddd„ZdS )	Ú	QUALIFIERrß   ÚQualifierFlavorÚQualifierTypeNr   c                 C   sR   t  | ||¡ |d ur$|  |¡ dt| d t @  ff| _|  |¡ d S d | _d S )NÚQualifierValuer  )r(   rH   rv   ré   ræ   rw   r|   ©rI   r|   r}   r+   r+   r0   rH   ˜  s   

zQUALIFIER.__init__rƒ   )rU   rV   rW   r  ÚQUALIFIER_FLAVORÚQUALIFIER_TYPEr…   rH   r+   r+   r+   r0   r  ’  s    ýr  c                   @   s"   e Zd ZdefddfZdd„ ZdS )ÚQUALIFIER_SETr�   )Ú
_Qualifierz_-Qualifierrœ   )Ú	Qualifierr‰   c                 C   s¨   | d }t ƒ }t|ƒdkrRt|ƒ}|d dkrd}n|d d@ r)t|d d@  }nt||d d … ƒd }t |d	 |d
 |¡}|||< |t|ƒd … }t|ƒdks|S )Nr  r   rß   rà   ó    ì        éÿÿÿrr   r  r	  )Údictr,   r  ÚDICTIONARY_REFERENCErp   rÞ   r  )rI   r÷   r|   Ú
qualifiersÚitemnÚqNamerŸ   r+   r+   r0   ÚgetQualifiersª  s   õzQUALIFIER_SET.getQualifiersN)rU   rV   rW   r”   rw   r  r+   r+   r+   r0   r  £  s    ýr  c                   @   ó   e Zd ZdefdeffZdS )ÚPropertyLookupÚPropertyNameRefÚPropertyInfoRefN)rU   rV   rW   ÚPROPERTY_NAME_REFÚPROPERTY_INFO_REFrw   r+   r+   r+   r0   r  É  ó    þr  c                   @   s0   e Zd ZdefdefdefdefddeffZdS )ÚPROPERTY_INFOÚPropertyTypeÚDeclarationOrderÚValueTableOffsetÚClassOfOriginÚPropertyQualifierSetr‰   N)	rU   rV   rW   ÚPROPERTY_TYPEÚDECLARATION_ORDERÚVALUE_TABLE_OFFSETÚCLASS_OF_ORIGINÚPROPERTY_QUALIFIER_SETrw   r+   r+   r+   r0   r   ß  s    ûr   i @  c                   @   s,   e Zd Zeeƒ ƒZdefddfZdd„ ZdS )ÚPROPERTY_LOOKUP_TABLEÚPropertyCount)Ú_PropertyLookupz_-PropertyLookupz-self["PropertyCount"]*self.PropertyLookupSize)r  r‰   c                 C   s¬  | d }t ƒ }t| d ƒD ]º}t ƒ }t|ƒ}|d d@ r%t|d d@  }nt||d d … ƒd }t||d d … ƒ}|d }	|	t M }	|	t M }	t|	 }
|
|d	< ||d
< |d |d< |d |d< |d t@ |d< d |d< t ƒ }|d d }t	|ƒdkr¸t
|ƒ}|d d@ r�t|d d@  }nt||d d … ƒd }t |d |d |¡}|t	|ƒd … }|||< t	|ƒdks|||d< |||< || jd … }qttt| ¡ ƒdd„ d�ƒS )Nr  r,  r  r  r  rr   r  r!  ÚstyperQ   Útyper"  ÚorderÚ	inheritedrŸ   r%  r  r   rß   r  r	  r  c                 S   s   | d d S )NrM   r0  r+   ©r/   r+   r+   r0   Ú<lambda>  ó    z5PROPERTY_LOOKUP_TABLE.getProperties.<locals>.<lambda>©r`   )r  rê   r  r  rp   r   ræ   rç   ÚCIM_TYPE_TO_NAMEr,   r  rÞ   r  ÚPropertyLookupSizer   Úsortedr;   r=   )rI   r÷   Ú	propTableÚ
propertiesÚpropertyÚpropItemDictÚpropItemÚpropNameÚpropInforø   ÚsTyper  ÚqualifiersBufÚrecordÚqualifierNameÚqualifierValuer+   r+   r0   ÚgetPropertiesô  sD   

ø
z#PROPERTY_LOOKUP_TABLE.getPropertiesN)	rU   rV   rW   r,   r  r7  ÚPROPERTY_COUNTrw   rE  r+   r+   r+   r0   r+  ì  s    
ýr+  c                   @   r™   )ÚHEAPÚ
HeapLength)Ú	_HeapItemz
_-HeapItemzself["HeapLength"]&0x7fffffff)ÚHeapItemr‰   N)rU   rV   rW   ÚHEAP_LENGTHrw   r+   r+   r+   r0   rG  "  s
    úrG  c                	   @   sP   e Zd Zddefddefddefddefddddefd	d
f	Zdd„ Z	dd„ Z
dS )Ú
CLASS_PARTÚClassHeaderr‰   ÚDerivationListÚClassQualifierSetÚPropertyLookupTable)Ú_NdTable_ValueTableú_-NdTable_ValueTablez.self["ClassHeader"]["NdTableValueTableLength"]©ÚNdTable_ValueTabler‰   Ú	ClassHeap)Ú_Garbagez	_-Garbagez/self["ClassHeader"]["EncodingLength"]-len(self))ÚGarbagez:=b""c                 C   s   | d   | d d ¡S )NrO  rU  rJ  ©r  ©rI   r+   r+   r0   r  <  s   zCLASS_PART.getQualifiersc                    s0  | d d }| d   | d d ¡‰ ttˆ  ¡ ƒ‡ fdd„d�}tˆ ƒd d d }| d	 |d … }|D ]b}ˆ | d
 ttB  @ }ˆ | d
 t@ rOtd d… }nt| d d… }t	|ƒ}zt
||d |… ƒd }	W n   t d¡ d}	Y |	dkr�|	dkr�t ˆ | d
 |	|¡}
d|
 ˆ | d< ||d … }q3ˆ S )NrU  rJ  rP  c                    ó   ˆ |  d S ©Nr0  r+   ©rB   ©r:  r+   r0   r3  B  r4  z*CLASS_PART.getProperties.<locals>.<lambda>r5  rM   r5   rT  r/  rá   r   z getProperties: Error unpacking!!rà   z%srŸ   )rE  r8  r;   r<   r,   ræ   rç   rè   ré   r   r   r%   ÚerrorrÞ   r  )rI   r÷   Úsorted_propsÚvalueTableOffÚ
valueTabler`   rø   Ú	unpackStrrú   Ú	itemValuerŸ   r+   r]  r0   rE  ?  s*   
zCLASS_PART.getPropertiesN)rU   rV   rW   r�   rš   ÚCLASS_QUALIFIER_SETr+  Ú
CLASS_HEAPr…   r  rE  r+   r+   r+   r0   rL  0  s    ÷rL  z3s=b''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fZ
dS )	ÚMETHOD_DESCRIPTIONÚ
MethodNameÚMethodFlagsÚMethodPaddingÚMethodOriginÚMethodQualifiersÚInputSignatureÚOutputSignatureN)rU   rV   rW   ÚMETHOD_NAMEÚMETHOD_FLAGSÚMETHOD_PADDINGÚMETHOD_ORIGINÚMETHOD_QUALIFIERSÚINPUT_SIGNATUREÚOUTPUT_SIGNATURErw   r+   r+   r+   r0   rf  �  s    ùrf  c                   @   s@   e Zd Zeeƒ ƒZdefdefdefdddde	ffZ
dd	„ Zd
S )ÚMETHODS_PARTr�   ÚMethodCountÚMethodCountPadding)Ú_MethodDescriptionz_-MethodDescriptionz.self["MethodCount"]*self.MethodDescriptionSize)ÚMethodDescriptionr‰   Ú
MethodHeapr‰   c                 C   sv  t ƒ }| d }| d d }t| d ƒD ]¥}t ƒ }t|ƒ}|d t@ r#	 t||d d … ƒd |d< |d	 |d
< |d dkrPt||d d … ƒ}| |¡}||d< |d dkr}t||d d … ƒ}	|	d dkry|	d d d  ¡ |d< |	d |d< nd |d< |d dkrªt||d d … ƒ}
|
d dkr¦|
d d d  ¡ |d< |
d |d< nd |d< |t	|ƒd … }|||d < q|S )Nry  rz  rJ  rv  rh  rg  rr   rQ   rj  Úoriginrk  rà   r  rl  r�   r   rã   Ú	ClassTypeÚCurrentClassÚInParamsÚInParamsRawrm  Ú	OutParamsÚOutParamsRaw)
r   rê   rf  ÚWBEM_FLAVOR_ORIGIN_PROPAGATEDrp   r  r  rí   rE  r,   )rI   Úmethodsr|   r÷   ÚmethodÚ
methodDictr  ÚqualifiersSetr  ÚinputSignatureÚoutputSignaturer+   r+   r0   Ú
getMethods˜  s:   
zMETHODS_PART.getMethodsN)rU   rV   rW   r,   rf  ÚMethodDescriptionSizer”   ÚMETHOD_COUNTÚMETHOD_COUNT_PADDINGÚMETHOD_HEAPrw   r‰  r+   r+   r+   r0   ru  �  s    
ú	ru  c                   @   s@   e Zd ZddefddeffZdd„ Zdd„ Zdd	„ Zd
d„ Z	dS )ÚCLASS_AND_METHODS_PARTÚ	ClassPartr‰   ÚMethodsPartc                 C   s¨   | d d d }| d d d }|dkrdS ||d … }|s dS t |ƒd	 }| d d
 d }t|ƒdkrRt |ƒd	 }|d| 7 }|tt |ƒƒd d … }t|ƒdks4|S )Nr�  rM  r’   rU  rJ  rà   ÚNoner*   rr   rN  r�   r   z : %s r5   )rp   r,   )rI   Ú
pClassNameÚcHeapÚbufferÚ	classNameÚderivationListÚ
superClassr+   r+   r0   ÚgetClassNameÇ  s   ýz#CLASS_AND_METHODS_PART.getClassNamec                 C   ó   | d   ¡ S ©Nr�  rX  rY  r+   r+   r0   r  Ø  r¢   z$CLASS_AND_METHODS_PART.getQualifiersc                 C   r™  rš  )rE  rY  r+   r+   r0   rE  Û  s   z$CLASS_AND_METHODS_PART.getPropertiesc                 C   r™  )Nr�  )r‰  rY  r+   r+   r0   r‰  ß  r¢   z!CLASS_AND_METHODS_PART.getMethodsN)
rU   rV   rW   rL  ru  rw   r˜  r  rE  r‰  r+   r+   r+   r0   rŽ  Á  s    þrŽ  c                   @   s    e Zd ZddeffZdd„ ZdS )ÚCURRENT_CLASS_NO_METHODSr�  r‰   c                 C   s   dS )Nr+   r+   rY  r+   r+   r0   r‰  ø  s   z#CURRENT_CLASS_NO_METHODS.getMethodsN)rU   rV   rW   rL  rw   r‰  r+   r+   r+   r0   r›  ô  s    ÿr›  c                   @   s,   e Zd ZdeffZddeffZddd„ZdS )	ÚINSTANCE_PROP_QUALIFIER_SETÚInstPropQualSetFlagÚQualifierSetr‰   Nr   c                 C   sR   t  | ||¡ d| _|d ur$|  |¡ | d dkrtdƒ‚|  |¡ d S d | _d S )Nr+   r�  rX   z self['InstPropQualSetFlag'] == 2)r(   rH   rw   rv   Ú	Exceptionr|   r
  r+   r+   r0   rH     s   

z$INSTANCE_PROP_QUALIFIER_SET.__init__rƒ   )rU   rV   rW   ÚINST_PROP_QUAL_SET_FLAGr…   r  ÚtailrH   r+   r+   r+   r0   rœ  ý  s    ÿýrœ  c                   @   r†   )ÚINSTANCE_QUALIFIER_SETrž  r‰   ÚInstancePropQualifierSetN)rU   rV   rW   r  rœ  rw   r+   r+   r+   r0   r¢    r�   r¢  c                
   @   sd   e Zd Zddefdefdefdefddddefd	deffZ	ddd„Z
dd„ Zedd„ ƒZdd„ Zd
S )ÚINSTANCE_TYPEr}  r‰   r�   ÚInstanceFlagsÚInstanceClassName)rQ  rR  zKself["CurrentClass"]["ClassPart"]["ClassHeader"]["NdTableValueTableLength"]rS  ÚInstanceQualifierSetÚInstanceHeapNr   c                 C   s`   t  | ||¡ d| _|d ur+|  |¡ | d d d d d d d | _|  |¡ d S d | _d S )Nr+   r}  r�  rP  r,  rM   r5   )r(   rH   rw   rv   ÚNdTableSizer|   r
  r+   r+   r0   rH   ,  s   
"
zINSTANCE_TYPE.__init__c                 C   s~   t |ƒd d d }| d d |… }dd„ t |¡D ƒ}|D ]}||| d  }t|d@ ƒ|| d< t|d@ ƒ|| d	< q|S )
NrM   r5   rT  c                 S   s"   g | ]}d D ]}||? d@ ‘qqS ))r   rX   r5   rk   ri   r+   )r.   ÚbyteÚshiftr+   r+   r0   r1   <  s   " z2INSTANCE_TYPE.__processNdTable.<locals>.<listcomp>r0  Únull_defaultrX   Úinherited_default)r,   ÚsixÚ	iterbytesrØ   )rI   r:  Ú
octetCountÚpackedNdTableÚunpackedNdTabler`   ÚndEntryr+   r+   r0   Ú__processNdTable9  s   zINSTANCE_TYPE.__processNdTablec                 C   s   | d t  @ tv o| d  S )Nr/  r¬  )rç   ÚCIM_NUMBER_TYPES)Úpropr+   r+   r0   Ú__isNonNullNumberD  s   zINSTANCE_TYPE.__isNonNullNumberc                    s0  | d d }|   ˆ ¡}| d |d … }ttˆ  ¡ ƒ‡ fdd„d�}|D ]r}ˆ | d ttB  @ }ˆ | d t@ r?td d… }nt| d d… }t|ƒ}	zt	||d |	… ƒd	 }
W n   t
 d
¡ d}
Y |
d	kso|  ˆ | ¡r�t ˆ | d |
|¡}|ˆ | d< nˆ | d d	kr�d ˆ | d< ||	d … }q#ˆ S )Nr¨  rJ  rT  c                    rZ  r[  r+   r\  r]  r+   r0   r3  L  r4  z)INSTANCE_TYPE.getValues.<locals>.<lambda>r5  r/  rá   r   zgetValues: Error Unpacking!rà   rŸ   r1  )Ú_INSTANCE_TYPE__processNdTabler8  r;   r<   ræ   rç   rè   ré   r   r   r%   r^  Ú_INSTANCE_TYPE__isNonNullNumberrÞ   r  )rI   r:  r÷   r`  ra  r_  r`   rø   rb  rú   rc  rŸ   r+   r]  r0   Ú	getValuesH  s,   

zINSTANCE_TYPE.getValuesrƒ   )rU   rV   rW   r›  r”   ÚINSTANCE_FLAGSÚINSTANCE_CLASS_NAMEr¢  ÚINSTANCE_HEAPr…   rH   r¸  Ústaticmethodr¹  rº  r+   r+   r+   r0   r¤    s    ÷

r¤  c                   @   r†   )Ú
CLASS_TYPEÚParentClassr‰   r}  N)rU   rV   rW   ÚPARENT_CLASSÚCURRENT_CLASSrw   r+   r+   r+   r0   r¿  j  r�   r¿  c                   @   sp   e Zd ZdeffZddeffZddeffZdde	ffZ
ddd	„Zd
d„ Zddd„Zddd„Zdd„ Zdd„ ZdS )ÚOBJECT_BLOCKÚObjectFlagsÚ
Decorationr‰   ÚInstanceTyper|  Nr   c                 C   sš   t  | ||¡ d | _d | _|d urHd| _t|dd… ƒd@ r&|  j| j7  _t|dd… ƒd@ r9|  j| j7  _n|  j| j7  _|  	|¡ d S d | _
d S )Nr+   r   rM   r5   )r(   rH   ÚctParentÚ	ctCurrentrw   ÚordÚ
decorationÚ	classTypeÚinstanceTyperv   r|   r
  r+   r+   r0   rH   �  s   
zOBJECT_BLOCK.__init__c                 C   s   | d t @ rdS dS )NrÄ  FT)Ú	CIM_CLASSrY  r+   r+   r0   Ú
isInstance•  s   zOBJECT_BLOCK.isInstancec              	   C   s
  |  ¡ }|D ]}td| ƒ q| ¡ }td| ƒ | ¡ }|d ur&| |¡}|D ]‡}|| d }|D ]}|dkrBtd||| f ƒ q2td|| d || d f d	d
� || d d ur«|| d t @ }	|	tjjkrqtdƒ q(|	tj	jkr || d dkrŠtd|| d  ƒ q(tdt
dd„ tt|| d ƒƒD ƒƒ ƒ q(td|| d  ƒ q(tdƒ q(tƒ  | ¡ }
|
D ]Å}|
| d D ]}td| ƒ qÁ|
| d d u râ|
| d d u râtdd|f ƒ |
| d d u �rt|
| d ƒdk�rtd|
| d d d |f ƒ q¹d}|
| d d u�r%d|
| d v �r%|
| d d d }td||f d	d
� |
| d d u�rR|
| d D ]}td|
| d | d |f ƒ �q>|
| d d u�rz|
| d D ]}|dk�rxtd|
| d | d |f ƒ �qatdƒ q¹tdƒ d S ) Nz[%s]zclass %s 
{r  rh   z		[%s(%s)]z	%s %sr.  rQ   r3   )ÚendrŸ   r/  z= IWbemClassObject
r   z= %s
c                 s   s   � | ]}d V  qdS )ÚIWbemClassObjectNr+   )r.   rÿ   r+   r+   r0   Ú	<genexpr>·  s   € z*OBJECT_BLOCK.printClass.<locals>.<genexpr>r2   z	[%s]r~  r€  z
	%s %s();
ÚvoidrM   ÚReturnValuer  z	%s %s(
z		[in]    %s %s,z		[out]    %s %s,z	);
Ú})r  Úprintr˜  rE  rº  rç   r£   r½   rŸ   rÍ   r;   rê   r,   r‰  )rI   ÚpClassÚ	cInstancer  Ú	qualifierr•  r:  ÚpNamer  rõ   rƒ  Ú
methodNameÚreturnValuer+   r+   r0   Ú
printClassš  sb   
€$
,
 ("$
 €
zOBJECT_BLOCK.printClassc                 C   s`   t ƒ }| ¡ |d< | ¡ |d< | ¡ |d< | ¡ |d< |d ur*| |d ¡|d< |S d |d< |S )NrQ   r  r:  rƒ  Úvalues)r   r˜  r  rE  r‰  rº  )rI   rÖ  r×  Ú	classDictr+   r+   r0   Ú
parseClassÝ  s   þzOBJECT_BLOCK.parseClassc                 C   sš   | d t @ dkr!| d d }| ¡ }|d ur|  || d ¡| _d S | d d }| d d }| ¡ }|d ur;|  |¡| _| ¡ }|d urK|  |¡| _d S d S ©NrÄ  r   rÆ  r}  r|  rÀ  )rÍ  r˜  rß  rÈ  rÇ  ©rI   rÈ  ÚcurrentNamerÇ  Ú
parentNamer+   r+   r0   ÚparseObjectê  s   ÿzOBJECT_BLOCK.parseObjectc                 C   s”   | d t @ dkr | d d }| ¡ }|d ur|  || d ¡ d S | d d }| d d }| ¡ }|d ur9|  |¡ | ¡ }|d urH|  |¡ d S d S rà  )rÍ  r˜  rÜ  rá  r+   r+   r0   ÚprintInformationþ  s   
ÿzOBJECT_BLOCK.printInformationrƒ   rG   )rU   rV   rW   ÚOBJECT_FLAGSr…   r‡   rÊ  r¤  rÌ  r¿  rË  rH   rÎ  rÜ  rß  rä  rå  r+   r+   r+   r0   rÃ  q  s    ÿÿÿÿ


CrÃ  c                   @   s.   e Zd ZdeffZdddeffZd	dd„ZdS )
rí   r�   )Ú_ObjectBlockú_-ObjectBlockzself["EncodingLength"]rã   r‰   Nr   c                 C   sZ   t  | ||¡ |d ur(|  |¡ | d dkr!d| _|  j| j7  _|  |¡ d S d | _d S )Nr�   r   r+   )r(   rH   rv   rw   r¡  r|   r
  r+   r+   r0   rH     s   

zMETHOD_SIGNATURE_BLOCK.__init__rƒ   )rU   rV   rW   r”   r…   rÃ  r¡  rH   r+   r+   r+   r0   rí     s    ÿþrí   c                   @   s&   e Zd ZdefdefdddeffZdS )rî   Ú	Signaturerâ   )rç  rè  zself["ObjectEncodingLength"]rã   r‰   N)rU   rV   rW   Ú	SIGNATUREÚOBJECT_ENCODING_LENGTHrÃ  rw   r+   r+   r+   r0   rî   (  s    ürî   z$8BC3F05E-D86B-11D0-A075-00C04FB68820z$C49E32C6-BC8B-11D2-85D4-00105A1F8304z$4590F812-1D3A-11D0-891F-00AA004B2E24)z$F309AD18-D86A-11d0-A075-00C04FB68820ú0.0)z$d4781cd6-e5d3-44df-ad94-930efe48a887rì  )z$541679AB-2E5F-11d3-B34E-00104BCC4B4Arì  )z$9556DC99-828C-11CF-A37E-00AA003240C7rì  )z$C49E32C7-BC8B-11d2-85D4-00105A1F8304rì  )z$A359DEC5-E813-4834-8A2A-BA7F1D777D76rì  )z$DC12A681-737F-11CF-884D-00AA004B2E24rì  )z$44aca674-e8fc-11d0-a07c-00c04fb68820rì  )z$027947e1-d731-11ce-a357-000000000001rì  )z$44aca675-e8fc-11d0-a07c-00c04fb68820rì  )z$1C1C45EE-4395-11d2-B60B-00104B703EFDrì  )z$423EC01E-2E35-11d2-B604-00104B703EFDrì  é   é   é ð é   é   rà   c                   @   ó   e Zd ZdZdS )ÚUCHAR_ARRAY_CVÚcN)rU   rV   rW   r   r+   r+   r+   r0   ró  ]  ó    ró  c                   @   ó   e Zd ZdeffZdS )ÚPUCHAR_ARRAY_CVÚDataN)rU   rV   rW   ró  Úreferentr+   r+   r+   r0   r÷  `  ó    ÿr÷  c                   @   ó   e Zd ZeZdS )ÚPMInterfacePointer_ARRAY_CVN)rU   rV   rW   r   r   r+   r+   r+   r0   rü  e  rõ  rü  c                   @   rû  )ÚULONG_ARRAYN)rU   rV   rW   r   r   r+   r+   r+   r0   rý  j  rõ  rý  c                   @   rö  )ÚPULONG_ARRAYrø  N)rU   rV   rW   rý  rù  r+   r+   r+   r0   rþ  m  rú  rþ  c                   @   ó    e Zd ZdZG dd„ deƒZdS )ÚWBEM_CHANGE_FLAG_TYPE©)rø  ú<Lc                   @   s    e Zd ZdZdZdZdZdZdS )zWBEM_CHANGE_FLAG_TYPE.enumItemsr   rM   rX   rZ   r[   N)rU   rV   rW   ÚWBEM_FLAG_CREATE_OR_UPDATEÚWBEM_FLAG_UPDATE_ONLYÚWBEM_FLAG_CREATE_ONLYÚWBEM_FLAG_UPDATE_SAFE_MODEÚWBEM_FLAG_UPDATE_FORCE_MODEr+   r+   r+   r0   rP   x  s    rP   N©rU   rV   rW   rw   r"   rP   r+   r+   r+   r0   r   s  ó    r   c                   @   rÿ  )ÚWBEM_GENERIC_FLAG_TYPEr  c                   @   s4   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S )z WBEM_GENERIC_FLAG_TYPE.enumItemsr   rY   rZ   r[   r\   rí  rî  rï  rð  rñ  N)rU   rV   rW   ÚWBEM_FLAG_RETURN_WBEM_COMPLETEÚWBEM_FLAG_RETURN_IMMEDIATELYÚWBEM_FLAG_FORWARD_ONLYÚWBEM_FLAG_NO_ERROR_OBJECTÚWBEM_FLAG_SEND_STATUSÚWBEM_FLAG_ENSURE_LOCATABLEÚWBEM_FLAG_DIRECT_READÚWBEM_MASK_RESERVED_FLAGSÚ WBEM_FLAG_USE_AMENDED_QUALIFIERSÚWBEM_FLAG_STRONG_VALIDATIONr+   r+   r+   r0   rP   …  s    rP   Nr  r+   r+   r+   r0   r
  €  r	  r
  c                   @   ó   e Zd ZG dd„ deƒZdS )ÚWBEM_STATUS_TYPEc                   @   ó   e Zd ZdZdZdZdS )zWBEM_STATUS_TYPE.enumItemsr   rM   rX   N)rU   rV   rW   ÚWBEM_STATUS_COMPLETEÚWBEM_STATUS_REQUIREMENTSÚWBEM_STATUS_PROGRESSr+   r+   r+   r0   rP   “  ó    rP   N©rU   rV   rW   r"   rP   r+   r+   r+   r0   r  ’  ó    r  c                   @   rÿ  )ÚWBEM_TIMEOUT_TYPEr  c                   @   ó   e Zd ZdZdZdS )zWBEM_TIMEOUT_TYPE.enumItemsr   rà   N)rU   rV   rW   ÚWBEM_NO_WAITÚWBEM_INFINITEr+   r+   r+   r0   rP   ž  ó    rP   Nr  r+   r+   r+   r0   r  ™  r	  r  c                   @   rÿ  )ÚWBEM_QUERY_FLAG_TYPEr  c                   @   r  )zWBEM_QUERY_FLAG_TYPE.enumItemsr   rM   rX   N)rU   rV   rW   ÚWBEM_FLAG_DEEPÚWBEM_FLAG_SHALLOWÚWBEM_FLAG_PROTOTYPEr+   r+   r+   r0   rP   ¨  r  rP   Nr  r+   r+   r+   r0   r#  £  r	  r#  c                   @   rÿ  )ÚWBEM_BACKUP_RESTORE_FLAGSr  c                   @   rò  )z#WBEM_BACKUP_RESTORE_FLAGS.enumItemsrM   N)rU   rV   rW   Ú'WBEM_FLAG_BACKUP_RESTORE_FORCE_SHUTDOWNr+   r+   r+   r0   rP   ³  rõ  rP   Nr  r+   r+   r+   r0   r'  ®  r	  r'  c                   @   rÿ  )rO   r  c                   @   s   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#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d:Z<d;Z=d<Z>d=Z?d>Z@d?ZAd@ZBdAZCdBZDdCZEdDZFdEZGdFS )GzWBEMSTATUS.enumItemsr   rM   i  iÿ  i  l     l     l     l     l     l     l     l     l   	  l   
  l     l     l     l     l     l     l     l     l     l      l   3  l   @   l     l     l     l     l     l     l   $  l   %  l   &  l   (  l   -  l   .  l   /  l   1  l   2  l   :  l   ;  l   =  l   l  l   E  l   U  l   V  l   X  l   Y  l   Z  l   [  l   \  l   ]  l   `  l   a  l   b  l   c  l   e  l   f  l   z  l   �  l   ‡  l   ˆ  l   ‰  l   Š  l      l      N)HrU   rV   rW   ÚWBEM_S_NO_ERRORÚWBEM_S_FALSEÚWBEM_S_TIMEDOUTÚWBEM_S_NEW_STYLEÚWBEM_S_PARTIAL_RESULTSÚWBEM_E_FAILEDÚWBEM_E_NOT_FOUNDÚWBEM_E_ACCESS_DENIEDÚWBEM_E_PROVIDER_FAILUREÚWBEM_E_TYPE_MISMATCHÚWBEM_E_OUT_OF_MEMORYÚWBEM_E_INVALID_CONTEXTÚWBEM_E_INVALID_PARAMETERÚWBEM_E_NOT_AVAILABLEÚWBEM_E_CRITICAL_ERRORÚWBEM_E_NOT_SUPPORTEDÚWBEM_E_PROVIDER_NOT_FOUNDÚ$WBEM_E_INVALID_PROVIDER_REGISTRATIONÚWBEM_E_PROVIDER_LOAD_FAILUREÚWBEM_E_INITIALIZATION_FAILUREÚWBEM_E_TRANSPORT_FAILUREÚWBEM_E_INVALID_OPERATIONÚWBEM_E_ALREADY_EXISTSÚWBEM_E_UNEXPECTEDÚWBEM_E_INCOMPLETE_CLASSÚWBEM_E_SHUTTING_DOWNÚ	E_NOTIMPLÚWBEM_E_INVALID_SUPERCLASSÚWBEM_E_INVALID_NAMESPACEÚWBEM_E_INVALID_OBJECTÚWBEM_E_INVALID_CLASSÚWBEM_E_INVALID_QUERYÚWBEM_E_INVALID_QUERY_TYPEÚWBEM_E_PROVIDER_NOT_CAPABLEÚWBEM_E_CLASS_HAS_CHILDRENÚWBEM_E_CLASS_HAS_INSTANCESÚWBEM_E_ILLEGAL_NULLÚWBEM_E_INVALID_CIM_TYPEÚWBEM_E_INVALID_METHODÚ WBEM_E_INVALID_METHOD_PARAMETERSÚWBEM_E_INVALID_PROPERTYÚWBEM_E_CALL_CANCELLEDÚWBEM_E_INVALID_OBJECT_PATHÚWBEM_E_OUT_OF_DISK_SPACEÚ WBEM_E_UNSUPPORTED_PUT_EXTENSIONÚWBEM_E_QUOTA_VIOLATIONÚWBEM_E_SERVER_TOO_BUSYÚWBEM_E_METHOD_NOT_IMPLEMENTEDÚWBEM_E_METHOD_DISABLEDÚWBEM_E_UNPARSABLE_QUERYÚWBEM_E_NOT_EVENT_CLASSÚWBEM_E_MISSING_GROUP_WITHINÚWBEM_E_MISSING_AGGREGATION_LISTÚWBEM_E_PROPERTY_NOT_AN_OBJECTÚWBEM_E_AGGREGATING_BY_OBJECTÚ%WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNINGÚWBEM_E_QUEUE_OVERFLOWÚWBEM_E_PRIVILEGE_NOT_HELDÚWBEM_E_INVALID_OPERATORÚWBEM_E_CANNOT_BE_ABSTRACTÚWBEM_E_AMENDED_OBJECTÚWBEM_E_VETO_PUTÚWBEM_E_PROVIDER_SUSPENDEDÚ$WBEM_E_ENCRYPTED_CONNECTION_REQUIREDÚWBEM_E_PROVIDER_TIMED_OUTÚWBEM_E_NO_KEYÚWBEM_E_PROVIDER_DISABLEDÚWBEM_E_REGISTRATION_TOO_BROADÚWBEM_E_REGISTRATION_TOO_PRECISEr+   r+   r+   r0   rP   ¼  sŒ    rP   Nr  r+   r+   r+   r0   rO   ·  r	  rO   c                   @   rÿ  )ÚWBEM_CONNECT_OPTIONSr  c                   @   r  )zWBEM_CONNECT_OPTIONS.enumItemsr[   rí  N©rU   rV   rW   Ú!WBEM_FLAG_CONNECT_REPOSITORY_ONLYÚWBEM_FLAG_CONNECT_PROVIDERSr+   r+   r+   r0   rP   	  r"  rP   Nr  r+   r+   r+   r0   rn    r	  rn  c                   @   rò  )ÚObjectArray))ÚdwByteOrderingr^   )ÚabSignaturez8s="WBEMDATA")ÚdwSizeOfHeader1z<L=0x1a)ÚdwDataSize1r^   )ÚdwFlagsr^   )ÚbVersionzB=1)ÚbPacketTyper]   )ÚdwSizeOfHeader2ú<L=8)ÚdwDataSize2r  zlen(self["wbemObjects"])+12)ÚdwSizeOfHeader3z<L=12)ÚdwDataSize3r  zlen(self["dwDataSize2"])-12))ÚdwNumObjectsr^   )Ú_wbemObjectsz_-wbemObjectszself["dwDataSize3"])ÚwbemObjectsr‰   N©rU   rV   rW   rw   r+   r+   r+   r0   rr    rõ  rr  c                   @   rò  )ÚWBEM_DATAPACKET_OBJECT))ÚdwSizeOfHeaderz<L=9)ÚdwSizeOfDatar  zlen(self["Object"]))ÚbObjectTyper]   )Ú_Objectz_-Objectúself["dwSizeOfData"])ÚObjectr‰   Nr‚  r+   r+   r+   r0   rƒ  !  rõ  rƒ  c                   @   rò  )ÚWBEMOBJECT_CLASS))r„  r{  ©r…  r  zlen(self["ObjectData"])©Ú_ObjectDataz_-ObjectDatarˆ  ©Ú
ObjectDatar‰   Nr‚  r+   r+   r+   r0   rŠ  +  rõ  rŠ  c                   @   rò  )ÚWBEMOBJECT_INSTANCE©)r„  z<L=0x18r‹  )ÚclassIDz16s=b" "*16rŒ  rŽ  Nr‚  r+   r+   r+   r0   r�  4  rõ  r�  c                   @   rò  )ÚWBEMOBJECT_INSTANCE_NOCLASSr‘  Nr‚  r+   r+   r+   r0   r“  >  rõ  r“  c                   @   s(   e Zd ZdefdefdefdeffZdS )ÚWBEM_REFRESHED_OBJECTÚm_lRequestIdÚm_lBlobTypeÚm_lBlobLengthÚm_pBlobN)rU   rV   rW   r   r   rw   r+   r+   r+   r0   r”  H  r˜   r”  c                   @   rû  )ÚWBEM_REFRESHED_OBJECT_ARRAYN)rU   rV   rW   r”  r   r+   r+   r+   r0   r™  P  rõ  r™  c                   @   rö  )ÚPWBEM_REFRESHED_OBJECT_ARRAYrø  N)rU   rV   rW   r™  rù  r+   r+   r+   r0   rš  S  rú  rš  c                   @   rò  )ÚWBEM_INSTANCE_BLOB))ÚVersionz<L=0x1)Ú
numObjectsr^   )ÚObjectsr‰   Nr‚  r+   r+   r+   r0   r›  Y  rõ  r›  c                   @   rÿ  )ÚWBEM_INSTANCE_BLOB_TYPEr  c                   @   r  )z!WBEM_INSTANCE_BLOB_TYPE.enumItemsr[   rí  Nro  r+   r+   r+   r0   rP   f  r"  rP   Nr  r+   r+   r+   r0   rŸ  a  r	  rŸ  c                   @   r  )Ú_WBEM_REFRESH_INFO_NON_HIPERFÚm_wszNamespaceÚm_pTemplateN)rU   rV   rW   r   r   rw   r+   r+   r+   r0   r   k  r  r   c                   @   ó"   e Zd ZdefdefdeffZdS )Ú_WBEM_REFRESH_INFO_REMOTEÚm_pRefresherr¢  Úm_GuidN)rU   rV   rW   r   r!   rw   r+   r+   r+   r0   r¤  r  ó
    ýr¤  c                   @   r  )ÚWBEM_REFRESH_TYPEc                   @   r  )zWBEM_REFRESH_TYPE.enumItemsr   ri   rk   N)rU   rV   rW   ÚWBEM_REFRESH_TYPE_INVALIDÚWBEM_REFRESH_TYPE_REMOTEÚWBEM_REFRESH_TYPE_NON_HIPERFr+   r+   r+   r0   rP   {  r  rP   Nr  r+   r+   r+   r0   r¨  z  r  r¨  c                   @   s8   e Zd ZdeffZejdefejde	fej
defiZdS )Ú_WBEM_REFRESH_INFO_UNIONÚtagÚm_RemoteÚm_NonHiPerfÚm_hresN)rU   rV   rW   r   r…   r¨  rª  r¤  r«  r   r©  r   Úunionr+   r+   r+   r0   r¬  �  s    ÿ


ýr¬  c                   @   s"   e Zd ZdefdefdeffZdS )Ú_WBEM_REFRESH_INFOÚm_lTypeÚm_InfoÚm_lCancelIdN)rU   rV   rW   r   r¬  rw   r+   r+   r+   r0   r²  Œ  r§  r²  c                   @   ó"   e Zd ZdefdefdeffZdS )Ú_WBEM_REFRESHER_IDÚm_szMachineNameÚm_dwProcessIdÚm_guidRefresherIdN)rU   rV   rW   r    r   r!   rw   r+   r+   r+   r0   r·  ”  r§  r·  c                   @   r  )Ú_WBEM_RECONNECT_INFOr³  Ú
m_pwcsPathN)rU   rV   rW   r    r   rw   r+   r+   r+   r0   r»  œ  r  r»  c                   @   rû  )Ú_WBEM_RECONNECT_INFO_ARRAYN©rU   rV   rW   r»  r   r+   r+   r+   r0   r½  ¢  rõ  r½  c                   @   r  )Ú_WBEM_RECONNECT_RESULTSÚm_lIdÚm_hrN)rU   rV   rW   r   r   rw   r+   r+   r+   r0   r¿  ¦  r  r¿  c                   @   rû  )Ú_WBEM_RECONNECT_RESULTS_ARRAYNr¾  r+   r+   r+   r0   rÂ  ¬  rõ  rÂ  c                   @   ó    e Zd ZdZdefdeffZdS )Ú"IWbemLevel1Login_EstablishPositionri   Ú	reserved1Ú	reserved2N)rU   rV   rW   Úopnumr   r   rw   r+   r+   r+   r0   rÄ  µ  ó
    þrÄ  c                   @   r  )Ú*IWbemLevel1Login_EstablishPositionResponseÚLocaleVersionÚ	ErrorCodeN©rU   rV   rW   r   Úerror_status_trw   r+   r+   r+   r0   rÉ  ¼  r  rÉ  c                   @   ó    e Zd ZdZdefdeffZdS )Ú!IWbemLevel1Login_RequestChallenger5   rÅ  rÆ  N)rU   rV   rW   rÇ  r   rw   r+   r+   r+   r0   rÏ  Ã  rÈ  rÏ  c                   @   r  )Ú)IWbemLevel1Login_RequestChallengeResponseÚ	reserved3rË  N©rU   rV   rW   ró  rÍ  rw   r+   r+   r+   r0   rÐ  Ê  r  rÐ  c                   @   ó,   e Zd ZdZdefdefdefdeffZdS )ÚIWbemLevel1Login_WBEMLoginrj   rÅ  rÆ  rÑ  Ú	reserved4N)	rU   rV   rW   rÇ  r   r÷  r   r   rw   r+   r+   r+   r0   rÔ  Ñ  ó    ürÔ  c                   @   r  )Ú"IWbemLevel1Login_WBEMLoginResponseÚ	reserved5rË  NrÒ  r+   r+   r+   r0   r×  Ú  r  r×  c                   @   ó,   e Zd ZdZdefdefdefdeffZdS )ÚIWbemLevel1Login_NTLMLoginrk   ÚwszNetworkResourceÚwszPreferredLocaleÚlFlagsÚpCtxN)rU   rV   rW   rÇ  r   r   r   rw   r+   r+   r+   r0   rÚ  á  rÖ  rÚ  c                   @   r  )Ú"IWbemLevel1Login_NTLMLoginResponseÚppNamespacerË  N©rU   rV   rW   r   rÍ  rw   r+   r+   r+   r0   rß  ê  r  rß  c                   @   rÃ  )ÚIWbemObjectSink_Indicateri   ÚlObjectCountÚ
apObjArrayN)rU   rV   rW   rÇ  r   r   rw   r+   r+   r+   r0   râ  ò  rÈ  râ  c                   @   rö  )Ú IWbemObjectSink_IndicateResponserË  N©rU   rV   rW   rÍ  rw   r+   r+   r+   r0   rå  ù  rú  rå  c                   @   rÓ  )ÚIWbemObjectSink_SetStatusr5   rÝ  ÚhResultÚstrParamÚ	pObjParamN)	rU   rV   rW   rÇ  r   r   r   r   rw   r+   r+   r+   r0   rç  ÿ  rÖ  rç  c                   @   rö  )Ú!IWbemObjectSink_SetStatusResponserË  Nræ  r+   r+   r+   r0   rë    rú  rë  c                   @   ó2   e Zd ZdZdefdefdefdefdeffZdS )ÚIWbemServices_OpenNamespaceri   ÚstrNamespacerÝ  rÞ  ÚppWorkingNamespaceÚppResultN©rU   rV   rW   rÇ  r   r   r   rw   r+   r+   r+   r0   rí    ó    ûrí  c                   @   r£  )Ú#IWbemServices_OpenNamespaceResponserï  rð  rË  N©rU   rV   rW   r   rÍ  rw   r+   r+   r+   r0   ró    r§  ró  c                   @   ó   e Zd ZdZdeffZdS )ÚIWbemServices_CancelAsyncCallr5   ÚIWbemObjectSinkN©rU   rV   rW   rÇ  r   rw   r+   r+   r+   r0   rö  !  ó    ÿrö  c                   @   rö  )Ú%IWbemServices_CancelAsyncCallResponserË  Nræ  r+   r+   r+   r0   rú  '  rú  rú  c                   @   rõ  )ÚIWbemServices_QueryObjectSinkrj   rÝ  N©rU   rV   rW   rÇ  r   rw   r+   r+   r+   r0   rû  -  rù  rû  c                   @   r  )Ú%IWbemServices_QueryObjectSinkResponseÚppResponseHandlerrË  Nrá  r+   r+   r+   r0   rý  3  r  rý  c                   @   rì  )ÚIWbemServices_GetObjectrk   ÚstrObjectPathrÝ  rÞ  ÚppObjectÚppCallResultNrñ  r+   r+   r+   r0   rÿ  :  rò  rÿ  c                   @   r£  )ÚIWbemServices_GetObjectResponser  r  rË  Nrô  r+   r+   r+   r0   r  D  r§  r  c                   @   ó,   e Zd ZdZdefdefdefdeffZdS )ÚIWbemServices_GetObjectAsyncrl   r   rÝ  rÞ  ÚpResponseHandlerNrñ  r+   r+   r+   r0   r  L  rÖ  r  c                   @   rö  )Ú$IWbemServices_GetObjectAsyncResponserË  Nræ  r+   r+   r+   r0   r  U  rú  r  c                   @   s2   e Zd ZdZdefdefdefdefdeffZdS )ÚIWbemServices_PutClassrm   ÚpObjectrÝ  rÞ  r  r  N©rU   rV   rW   rÇ  r   r   rw   r+   r+   r+   r0   r  [  rò  r  c                   @   r  )ÚIWbemServices_PutClassResponser  rË  Nrô  r+   r+   r+   r0   r  e  r  r  c                   @   ó,   e Zd ZdZdefdefdefdeffZdS )ÚIWbemServices_PutClassAsyncrn   r	  rÝ  rÞ  r  Nr
  r+   r+   r+   r0   r  l  rÖ  r  c                   @   rö  )Ú#IWbemServices_PutClassAsyncResponserË  Nræ  r+   r+   r+   r0   r  u  rú  r  c                   @   r  )ÚIWbemServices_DeleteClassro   ÚstrClassrÝ  rÞ  r  Nrñ  r+   r+   r+   r0   r  {  rÖ  r  c                   @   r  )Ú!IWbemServices_DeleteClassResponser  rË  Nrô  r+   r+   r+   r0   r  „  r  r  c                   @   r  )ÚIWbemServices_DeleteClassAsyncr©   r  rÝ  rÞ  r  Nrñ  r+   r+   r+   r0   r  ‹  rÖ  r  c                   @   rö  )Ú&IWbemServices_DeleteClassAsyncResponserË  Nræ  r+   r+   r+   r0   r  ”  rú  r  c                   @   ó&   e Zd ZdZdefdefdeffZdS )ÚIWbemServices_CreateClassEnumé   ÚstrSuperClassrÝ  rÞ  Nrñ  r+   r+   r+   r0   r  š  ó    ýr  c                   @   r  )Ú%IWbemServices_CreateClassEnumResponseÚppEnumrË  Nrá  r+   r+   r+   r0   r  ¢  r  r  c                   @   r  )Ú"IWbemServices_CreateClassEnumAsyncr­   r  rÝ  rÞ  r  Nrñ  r+   r+   r+   r0   r  ©  rÖ  r  c                   @   rö  )Ú*IWbemServices_CreateClassEnumAsyncResponserË  Nræ  r+   r+   r+   r0   r  ²  rú  r  c                   @   r  )ÚIWbemServices_PutInstanceé   ÚpInstrÝ  rÞ  r  Nr
  r+   r+   r+   r0   r  ¸  rÖ  r  c                   @   r  )Ú!IWbemServices_PutInstanceResponser  rË  Nrô  r+   r+   r+   r0   r   Á  r  r   c                   @   r  )ÚIWbemServices_PutInstanceAsyncé   r  rÝ  rÞ  r  Nr
  r+   r+   r+   r0   r!  È  rÖ  r!  c                   @   rö  )Ú&IWbemServices_PutInstanceAsyncResponserË  Nræ  r+   r+   r+   r0   r#  Ñ  rú  r#  c                   @   r  )ÚIWbemServices_DeleteInstancerY   r   rÝ  rÞ  r  Nrñ  r+   r+   r+   r0   r$  ×  rÖ  r$  c                   @   r  )Ú$IWbemServices_DeleteInstanceResponser  rË  Nrô  r+   r+   r+   r0   r%  à  r  r%  c                   @   r  )Ú!IWbemServices_DeleteInstanceAsyncr¤   r   rÝ  rÞ  r  Nrñ  r+   r+   r+   r0   r&  ç  rÖ  r&  c                   @   rö  )Ú)IWbemServices_DeleteInstanceAsyncResponserË  Nræ  r+   r+   r+   r0   r'  ð  rú  r'  c                   @   r  )Ú IWbemServices_CreateInstanceEnumr¥   r  rÝ  rÞ  Nrñ  r+   r+   r+   r0   r(  ö  r  r(  c                   @   r  )Ú(IWbemServices_CreateInstanceEnumResponser  rË  Nrá  r+   r+   r+   r0   r)  þ  r  r)  c                   @   r  )Ú%IWbemServices_CreateInstanceEnumAsyncr¦   r  rÝ  rÞ  r  Nrñ  r+   r+   r+   r0   r*    rÖ  r*  c                   @   rö  )Ú-IWbemServices_CreateInstanceEnumAsyncResponserË  Nræ  r+   r+   r+   r0   r+    rú  r+  c                   @   rÙ  )ÚIWbemServices_ExecQueryr§   ÚstrQueryLanguageÚstrQueryrÝ  rÞ  Nrñ  r+   r+   r+   r0   r,    rÖ  r,  c                   @   r  )ÚIWbemServices_ExecQueryResponser  rË  Nrá  r+   r+   r+   r0   r/    r  r/  c                   @   ó2   e Zd ZdZdefdefdefdefdeffZdS )ÚIWbemServices_ExecQueryAsyncr¨   r-  r.  rÝ  rÞ  r  Nrñ  r+   r+   r+   r0   r1  $  rò  r1  c                   @   rö  )Ú$IWbemServices_ExecQueryAsyncResponserË  Nræ  r+   r+   r+   r0   r2  .  rú  r2  c                   @   rÙ  )Ú#IWbemServices_ExecNotificationQueryé   r-  r.  rÝ  rÞ  Nrñ  r+   r+   r+   r0   r3  4  rÖ  r3  c                   @   r  )Ú+IWbemServices_ExecNotificationQueryResponser  rË  Nrá  r+   r+   r+   r0   r5  =  r  r5  c                   @   r0  )Ú(IWbemServices_ExecNotificationQueryAsyncé   r-  r.  rÝ  rÞ  r  Nrñ  r+   r+   r+   r0   r6  D  rò  r6  c                   @   rö  )Ú0IWbemServices_ExecNotificationQueryAsyncResponserË  Nræ  r+   r+   r+   r0   r8  N  rú  r8  c                   @   s>   e Zd ZdZdefdefdefdefdefdefdeffZd	S )
ÚIWbemServices_ExecMethodé   r   ÚstrMethodNamerÝ  rÞ  Ú	pInParamsÚppOutParamsr  N)	rU   rV   rW   rÇ  r   r   r   r   rw   r+   r+   r+   r0   r9  T  s    ùr9  c                   @   r£  )Ú IWbemServices_ExecMethodResponser=  r  rË  Nrô  r+   r+   r+   r0   r>  `  r§  r>  c                   @   s8   e Zd ZdZdefdefdefdefdefdeffZdS )	ÚIWbemServices_ExecMethodAsyncé   r   r;  rÝ  rÞ  r<  r  Nrñ  r+   r+   r+   r0   r?  h  s    úr?  c                   @   rö  )Ú%IWbemServices_ExecMethodAsyncResponserË  Nræ  r+   r+   r+   r0   rA  s  rú  rA  c                   @   r  )ÚIEnumWbemClassObject_Resetri   r+   N©rU   rV   rW   rÇ  rw   r+   r+   r+   r0   rB  z  r"  rB  c                   @   rö  )Ú"IEnumWbemClassObject_ResetResponserË  Nræ  r+   r+   r+   r0   rD    rú  rD  c                   @   rÎ  )ÚIEnumWbemClassObject_Nextr5   ÚlTimeoutÚuCountN)rU   rV   rW   rÇ  r   rw   r+   r+   r+   r0   rE  …  rÈ  rE  c                   @   r¶  )Ú!IEnumWbemClassObject_NextResponseÚ	apObjectsÚ
puReturnedrË  N)rU   rV   rW   rü  r   rÍ  rw   r+   r+   r+   r0   rH  Œ  r§  rH  c                   @   rÃ  )ÚIEnumWbemClassObject_NextAsyncrj   rF  ÚpSinkN)rU   rV   rW   rÇ  r   r   rw   r+   r+   r+   r0   rK  ”  rÈ  rK  c                   @   rö  )Ú&IEnumWbemClassObject_NextAsyncResponserË  Nræ  r+   r+   r+   r0   rM  ›  rú  rM  c                   @   r  )ÚIEnumWbemClassObject_Clonerk   r+   NrC  r+   r+   r+   r0   rN  ¡  r"  rN  c                   @   r  )Ú"IEnumWbemClassObject_CloneResponser  rË  Nrá  r+   r+   r+   r0   rO  ¦  r  rO  c                   @   rÃ  )ÚIEnumWbemClassObject_Skiprl   rF  rG  N)rU   rV   rW   rÇ  r   r   rw   r+   r+   r+   r0   rP  ­  rÈ  rP  c                   @   rö  )Ú!IEnumWbemClassObject_SkipResponserË  Nræ  r+   r+   r+   r0   rQ  ´  rú  rQ  c                   @   rõ  )ÚIWbemCallResult_GetResultObjectri   rF  Nrü  r+   r+   r+   r0   rR  »  rù  rR  c                   @   r  )Ú'IWbemCallResult_GetResultObjectResponseÚppResultObjectrË  Nrá  r+   r+   r+   r0   rS  Á  r  rS  c                   @   rõ  )ÚIWbemCallResult_GetResultStringr5   rF  Nrü  r+   r+   r+   r0   rU  È  rù  rU  c                   @   r  )Ú'IWbemCallResult_GetResultStringResponseÚpstrResultStringrË  N)rU   rV   rW   r   rÍ  rw   r+   r+   r+   r0   rV  Î  r  rV  c                   @   rõ  )Ú!IWbemCallResult_GetResultServicesrj   rF  Nrü  r+   r+   r+   r0   rX  Õ  rù  rX  c                   @   r  )Ú)IWbemCallResult_GetResultServicesResponseÚ
ppServicesrË  Nrá  r+   r+   r+   r0   rY  Û  r  rY  c                   @   rõ  )ÚIWbemCallResult_GetCallStatusrk   rF  Nrü  r+   r+   r+   r0   r[  â  rù  r[  c                   @   r  )Ú%IWbemCallResult_GetCallStatusResponseÚplStatusrË  N)rU   rV   rW   r   rÍ  rw   r+   r+   r+   r0   r\  è  r  r\  c                   @   r  )Ú IWbemFetchSmartEnum_GetSmartEnumri   r+   NrC  r+   r+   r+   r0   r^  ð  r"  r^  c                   @   r  )Ú(IWbemFetchSmartEnum_GetSmartEnumResponseÚppSmartEnumrË  Nrá  r+   r+   r+   r0   r_  õ  r  r_  c                   @   r  )ÚIWbemWCOSmartEnum_Nextri   Ú	proxyGUIDrF  rG  N)rU   rV   rW   rÇ  ÚREFGUIDr   r   rw   r+   r+   r+   r0   ra  ý  r  ra  c                   @   s(   e Zd ZdefdefdefdeffZdS )ÚIWbemWCOSmartEnum_NextResponserJ  ÚpdwBuffSizeÚpBufferrË  N)rU   rV   rW   r   r   rÍ  rw   r+   r+   r+   r0   rd    r˜   rd  c                   @   s&   e Zd ZdZdefdefdeffZdS )Ú IWbemLoginClientID_SetClientInfori   ÚwszClientMachineÚlClientProcIdÚ	lReservedN©rU   rV   rW   rÇ  r   r   rw   r+   r+   r+   r0   rg    r  rg  c                   @   rö  )Ú(IWbemLoginClientID_SetClientInfoResponserË  Nræ  r+   r+   r+   r0   rl    rú  rl  c                   @   rõ  )ÚIWbemLoginHelper_SetEventri   ÚsEventToSetN)rU   rV   rW   rÇ  r    rw   r+   r+   r+   r0   rm    rù  rm  c                   @   rö  )Ú!IWbemLoginHelper_SetEventResponserË  Nræ  r+   r+   r+   r0   ro  $  rú  ro  c                   @   rÃ  )ÚIWbemBackupRestore_Backupri   ÚstrBackupToFilerÝ  Nrk  r+   r+   r+   r0   rp  ,  rÈ  rp  c                   @   rö  )Ú!IWbemBackupRestore_BackupResponserË  Nræ  r+   r+   r+   r0   rr  3  rú  rr  c                   @   rÃ  )ÚIWbemBackupRestore_Restorer5   ÚstrRestoreFromFilerÝ  Nrk  r+   r+   r+   r0   rs  9  rÈ  rs  c                   @   rö  )Ú"IWbemBackupRestore_RestoreResponserË  Nræ  r+   r+   r+   r0   ru  @  rú  ru  c                   @   r  )ÚIWbemBackupRestoreEx_Pauserj   r+   NrC  r+   r+   r+   r0   rv  G  r"  rv  c                   @   rö  )Ú"IWbemBackupRestoreEx_PauseResponserË  Nræ  r+   r+   r+   r0   rw  L  rú  rw  c                   @   r  )ÚIWbemBackupRestoreEx_Resumerk   r+   NrC  r+   r+   r+   r0   rx  R  r"  rx  c                   @   rö  )Ú#IWbemBackupRestoreEx_ResumeResponserË  Nræ  r+   r+   r+   r0   ry  W  rú  ry  c                   @   ó2   e Zd ZdZdefdefdefdefdeffZ	dS )Ú,IWbemRefreshingServices_AddObjectToRefresherri   ÚpRefresherIdÚwszPathrÝ  ÚpContextÚdwClientRefrVersionN©
rU   rV   rW   rÇ  r·  r   r   r   r   rw   r+   r+   r+   r0   r{  ^  rò  r{  c                   @   r¶  )Ú4IWbemRefreshingServices_AddObjectToRefresherResponseÚpInfoÚpdwSvrRefrVersionrË  N©rU   rV   rW   r²  r   rÍ  rw   r+   r+   r+   r0   r�  h  r§  r�  c                   @   s2   e Zd ZdZdefdefdefdefdeffZdS )Ú6IWbemRefreshingServices_AddObjectToRefresherByTemplater5   r|  Ú	pTemplaterÝ  r~  r  N)	rU   rV   rW   rÇ  r·  r   r   r   rw   r+   r+   r+   r0   r…  p  rò  r…  c                   @   r¶  )Ú>IWbemRefreshingServices_AddObjectToRefresherByTemplateResponser‚  rƒ  rË  Nr„  r+   r+   r+   r0   r‡  z  r§  r‡  c                   @   rz  )Ú*IWbemRefreshingServices_AddEnumToRefresherrj   r|  ÚwszClassrÝ  r~  r  Nr€  r+   r+   r+   r0   rˆ  ‚  rò  rˆ  c                   @   r¶  )Ú2IWbemRefreshingServices_AddEnumToRefresherResponser‚  rƒ  rË  Nr„  r+   r+   r+   r0   rŠ  Œ  r§  rŠ  c                   @   s,   e Zd ZdZdefdefdefdeffZdS )Ú1IWbemRefreshingServices_RemoveObjectFromRefresherrk   r|  ÚlIdrÝ  r  N©rU   rV   rW   rÇ  r·  r   r   rw   r+   r+   r+   r0   r‹  ”  rÖ  r‹  c                   @   r  )Ú9IWbemRefreshingServices_RemoveObjectFromRefresherResponserƒ  rË  NrÌ  r+   r+   r+   r0   rŽ  �  r  rŽ  c                   @   r  )Ú*IWbemRefreshingServices_GetRemoteRefresherrl   r|  rÝ  r  Nr�  r+   r+   r+   r0   r�  ¤  r  r�  c                   @   rŽ   )Ú2IWbemRefreshingServices_GetRemoteRefresherResponseÚppRemRefresherÚpGuidrƒ  rË  N)rU   rV   rW   r   r!   r   rÍ  rw   r+   r+   r+   r0   r�  ¬  r˜   r�  c                   @   s2   e Zd ZdZdefdefdefdefdeffZdS )Ú0IWbemRefreshingServices_ReconnectRemoteRefresherrm   r|  rÝ  ÚlNumObjectsr  ÚapReconnectInfoN)	rU   rV   rW   rÇ  r·  r   r   r½  rw   r+   r+   r+   r0   r“  µ  rò  r“  c                   @   r¶  )Ú8IWbemRefreshingServices_ReconnectRemoteRefresherResponseÚapReconnectResultsrƒ  rË  N)rU   rV   rW   rÂ  r   rÍ  rw   r+   r+   r+   r0   r–  ¿  r§  r–  c                   @   rõ  )Ú"IWbemRemoteRefresher_RemoteRefreshri   rÝ  Nrü  r+   r+   r+   r0   r˜  È  rù  r˜  c                   @   r¶  )Ú*IWbemRemoteRefresher_RemoteRefreshResponseÚplNumObjectsÚ	paObjectsrË  N)rU   rV   rW   rÂ  rš  rÍ  rw   r+   r+   r+   r0   r™  Î  r§  r™  c                   @   s&   e Zd ZdZdefdefdeffZdS )Ú#IWbemRemoteRefresher_StopRefreshingr5   ÚlNumIdsÚaplIdsrÝ  N)rU   rV   rW   rÇ  r   rþ  rw   r+   r+   r+   r0   rœ  Ö  r  rœ  c                   @   rö  )Ú+IWbemRemoteRefresher_StopRefreshingResponserË  Nræ  r+   r+   r+   r0   rŸ  Þ  rú  rŸ  c                   @   r  )ÚIWbemShutdown_Shutdownri   rÅ  rÆ  rÑ  N)rU   rV   rW   rÇ  r   r   r   rw   r+   r+   r+   r0   r   å  r  r   c                   @   rö  )ÚIWbemShutdown_ShutdownResponserË  Nræ  r+   r+   r+   r0   r¡  í  rú  r¡  c                   @   rõ  )Ú$IUnsecuredApartment_CreateObjectStubri   rÅ  Nrø  r+   r+   r+   r0   r¢  ô  rù  r¢  c                   @   r  )Ú,IUnsecuredApartment_CreateObjectStubResponserÆ  rË  Nrá  r+   r+   r+   r0   r£  ú  r  r£  c                   @   r  )Ú&IWbemUnsecuredApartment_CreateSinkStubri   rÅ  rÆ  rÑ  N)rU   rV   rW   rÇ  r   r   r   rw   r+   r+   r+   r0   r¤  	  r  r¤  c                   @   r  )Ú.IWbemUnsecuredApartment_CreateSinkStubResponserÕ  rË  Nrá  r+   r+   r+   r0   r¥  
	  r  r¥  c                 C   s(   | t kr| S | dd … dkr| d S | S )Néÿÿÿÿú )r   )rÙ   r+   r+   r0   ÚcheckNullString	  s
   r¨  c                   @   s”   e Zd Zd"dd„Zdd„ Zd"dd„Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zedd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zd d!„ ZdS )#rÐ  Nc                 C   sˆ   t  | |¡ t| _|| _d | _|  ¡ }t|ƒ}t|d ƒ| _	|  
¡  | j	d  ¡ s;d | _g | _|  |  ¡ |  ¡ ¡ d S |  |  ¡ ¡ d S )NÚpObjectDatarã   )r   rH   ÚIID_IWbemClassObjectÚ_iidÚ _IWbemClassObject__iWbemServicesÚ_IWbemClassObject__methodsÚ
get_objRefr   rî   ÚencodingUniträ  rÎ  Ú!_IWbemClassObject__new_class_nameÚ!_IWbemClassObject__new_attributesÚcreateMethodsr˜  r‰  ÚcreatePropertiesrE  )rI   Ú	interfaceÚiWbemServicesÚobjRefr+   r+   r0   rH   #	  s   zIWbemClassObject.__init__c                 C   s    | j d  ¡ s|| _d S tdƒ‚)Nrã   z-Cannot set class name for an instance object.)r¯  rÎ  r°  rŸ  )rI   rŸ   r+   r+   r0   ÚsetClassName4	  s   
zIWbemClassObject.setClassNamec                 C   s8   | j d  ¡ s| j |||f¡ t| ||ƒ d S tdƒ‚)Nrã   z/Cannot add new attribute to an instance object.)r¯  rÎ  r±  rë   ÚsetattrrŸ  )rI   rQ   r/  Údefault_valuer+   r+   r0   ÚaddNewAttribute:	  s   z IWbemClassObject.addNewAttributec                 C   sö   |  d¡sr|  ¡ }d }|D ]}d|| d v r|}q|d u r$t d¡ nN| jd u r8| j |  ¡ ¡\}}| ¡ | _|| jv rr|  ¡ | d dkrWd|  ¡ ||  ¡ | d f }nd	|  ¡ ||  ¡ | d f }|  	|| j¡ t
| |ƒS td
| j|f ƒ‚)NÚ__r`   r  z(I don't have a key property in this set!r.  rÙ   z%s.%s=%srŸ   z
%s.%s="%s"z%r object has no attribute %r)Ú
startswithrE  r%   r^  r­  r¬  Ú	GetObjectr˜  r‰  r²  ÚgetattrÚAttributeErrorÚ	__class__)rI   r    r:  ÚkeyPropertyrÙ  ÚclassObjectrÿ   ÚinstanceNamer+   r+   r0   r¡   A	  s2   
€


ÿÿ
ÿzIWbemClassObject.__getattr__c                 C   s   | j d  ¡  d S ©Nrã   )r¯  rä  rY  r+   r+   r0   rä  a	  s   zIWbemClassObject.parseObjectc                 C   s
   | j d S rÄ  )r¯  rY  r+   r+   r0   Ú	getObjectd	  ó   
zIWbemClassObject.getObjectc                 C   sN   | j d  ¡ s| j d d d  ¡  d¡d S | j d d d  ¡  d¡d S )Nrã   r|  r}  r3   r   rÆ  )r¯  rÎ  r˜  ÚsplitrY  r+   r+   r0   r˜  g	  s     zIWbemClassObject.getClassNamec                 C   s   | j d  ¡ S rÄ  )r¯  rå  rY  r+   r+   r0   rå  m	  s   z!IWbemClassObject.printInformationc                 C   ó$   | j d jd u r
dS | j d jd S )Nrã   r+   r:  ©r¯  rÈ  rY  r+   r+   r0   rE  p	  ó   zIWbemClassObject.getPropertiesc                 C   rÈ  )Nrã   r+   rƒ  rÉ  rY  r+   r+   r0   r‰  u	  rÊ  zIWbemClassObject.getMethodsc                 C   s   t |ƒd> t |ƒB d|  > S )NrM   rX   )rØ   )r~   r¬  r­  r+   r+   r0   Ú	__ndEntryz	  s   zIWbemClassObject.__ndEntryc                 C   s¸   d|d< t ƒ }tƒ }td dB |d< d|d< tjj|d< d	t|d t @  ff|_| 	¡ |d
< t
| 	¡ ƒ|d< t
|ƒt
|ƒ t
| 	¡ ƒ |d	< | 	¡ |d
< tƒ }t|d  |d< ||fS )Nr  r%  rh   r  rß   r   r  r  r	  r  r�   r!  rr   )r  r  ÚDICTIONARY_REFERENCE_TO_VALUEr£   r¹   rŸ   ré   ræ   rw   rì   r,   rp   r6  )rI   r÷   ÚpropertyInfoÚqualifierSetrØ  ÚcimTypeStringr+   r+   r0   Ú__createCimTypeQualifierSet	  s    z,IWbemClassObject.__createCimTypeQualifierSetc           +      C   s€	  | j d  ¡ �r
d}d}d}tƒ }|  ¡ |d< || ¡ 7 }t|ƒ}|  ¡ }t|ƒD �]Z\}}|| }	t| |ƒ}
|	d }t	d||
f ƒ |	d t
tB  @ }|	d t
@ rYtd d… }nt| d d… }|	d t
@ rµ|
d u r|||  |d	|¡O }|t|dƒ7 }q)|td
|ƒ7 }ttd d… t|
ƒƒ}t| d d… }d}tt|
ƒƒD ]}|t||
| ƒ7 }qž||| 7 }t|ƒ}q)|tjjtjjtjjtjjfv rä|
d u rÚ||  |d	|¡O }|t|dƒ7 }q)|t|t|
ƒƒ7 }q)|tjjfv �r|
d u �r||  |d	|¡O }|t|dƒ7 }q)|t|t|
ƒƒ7 }q)|tjjtjjtjjtjjfv�r;|
d u �r3||  |d	|¡O }|t|dƒ7 }q)|t||
ƒ7 }q)|tjjk�rW|t ¡ 7 }|
d u �rV||  |d	d	¡O }q)|
dk�rl||  |d	d	¡O }|t ¡ 7 }q)tƒ }|
|d< |td
|ƒ7 }|| ¡ 7 }t|ƒ}q)t|ƒd d d }d}t|ƒD ]}|td|d@ ƒ7 }|dL }�q•|  ¡ }t |ƒ}t!|d ƒ}|d d d }d|d d d< || |d d d< t|ƒdB |d d d d< ||d d d d< t|d d ƒ|d d d< ||d d d< t|d ƒ|d< ||d< |S |  "¡ }|d d d }|d d }| j#�r6t|ƒ|d  d!< tƒ }| j#|d< || ¡ 7 }|d" d# }|dk�rJ|d d d }nd}|d d |… }|d |d … }d}tt|ƒƒD ]}||| d| > O }�qd|}|d" d#  t| j$ƒ7  < t%| j$d$d%„ d&�} t| ƒD �]¹\}}!|!\}"}#}$|| }%|d" d'  tt&d d… t|ƒƒ7  < tƒ }&|"|&d< ||& ¡ 7 }|d" d'  tt'd d… t|ƒƒ7  < t(ƒ }'|#j|'d(< |%|'d)< t|ƒ|'d*< d|'d+< |  )||'¡\}(})|(|'d,< ||' ¡ 7 }||) ¡ 7 }t|ƒ}|#jt
tB  @ }|$}
|#jt@ }|#jt
@ �rtd d… }nt| d d… }|#jt
@ �r}|
d u �rB||  |%d	|¡O }|t|dƒ7 }�qŽ|td
|ƒ7 }ttd d… t|
ƒƒ}t| d d… }d}tt|
ƒƒD ]}|t||
| ƒ7 }�qd||| 7 }t|ƒ}�qŽ|tjjtjjtjjtjjfv �r°|
d u �r¥||  |%d	|¡O }|t|dƒ7 }�qŽ|t|t|
ƒƒ7 }�qŽ|tjjfv �rÚ|
d u �rÏ||  |%d	|¡O }|t|dƒ7 }�qŽ|t|t|
ƒƒ7 }�qŽ|tjjtjjtjjtjjfv�r|
d u �r||  |%d	|¡O }|t|dƒ7 }�qŽ|t||
ƒ7 }�qŽ|tjjk�r(|t ¡ 7 }|
d u �r&||  |%d	d	¡O }�qŽ|
d k�r/d}
tƒ }|
|d< |td
|ƒ7 }|| ¡ 7 }t|ƒ}�qŽt|ƒdB |d d< ||d d< |d" d# }*|*dk�rl|*d d d nd}d}t|ƒD ]}|td|d@ ƒ7 }|dL }�qtt|| ƒ|d  d-< || |d< t|ƒ|d  d< ||d d d< t|ƒ| j d< || j d< |  ¡ }t |ƒ}| j |d< |S ).Nrã   r  r   rr   r1  zPropName %r, Value: %rr/  rá   Tr  Fr¦  r*   rM   r5   ÚBéÿ   rm   r©  rÆ  r}  rT  r  r¨  rH  rJ  r�   râ   r|  r�  rU  rM  r’   rP  r,  c                 S   s   | d S rƒ   r+   r2  r+   r+   r0   r3  
  s    z,IWbemClassObject.marshalMe.<locals>.<lambda>r5  r  r!  r"  r#  r$  r%  r“   )*r¯  rÎ  rp   r˜  rì   r,   rE  Ú	enumerater¾  rÕ  ræ   rç   rè   ré   Ú_IWbemClassObject__ndEntryr   rê   r£   r¯   rŸ   r±   r³   rµ   Úintr¸   rØ   r¹   rº   r»   r½   r   r®  r   rî   rÅ  r°  r±  r8  r  r  r   Ú,_IWbemClassObject__createCimTypeQualifierSet)+rI   ÚinstanceHeapra  ÚndTableÚparametersClassÚ
curHeapPtrr:  Úir>  Ú
propRecordrc  ÚpropIsInheritedrø   ÚpackStrÚ	arraySizeÚpackStrArrayÚ
arrayItemsÚjÚstrInÚ
ndTableLenr±  r¶  r¯  ÚcurrentClassÚobjUnitÚ	classPartr“  r•  ÚexistingPropCountÚexistingNdTableLenÚexistingNdTableBytesÚexistingValueTableÚsorted_attrsr    Úattribute_nameÚattribute_typeÚattribute_default_valueÚ	propIndexÚattrNamerÍ  rÎ  rõ   ÚtotalPropCountr+   r+   r0   Ú	marshalMe–	  sv  

ÿ
ÿ

€

  �ô


&&


ÿ

ÿ

€


zIWbemClassObject.marshalMec                 C   s&  | j d  ¡ du �r‘tƒ }tƒ }| jtj7  _| jtj7  _ttB |d< | j d d  	¡ |d< t
ƒ }d|d< d}d}tƒ }|  ¡ |d< || 	¡ 7 }t|ƒ}d}|  ¡ }	t|	ƒD ]z\}
}|	| }|d	 ttB  @ }|d	 t@ rwtd d
… }nt| d d
… }|d	 t@ r�|t|dƒ7 }qY|tjjtjjtjjtjjfvr¥|t|dƒ7 }qY|tjjkr»|t 	¡ 7 }||  |
dd¡O }qYtƒ }d|d< |td|ƒ7 }|| 	¡ 7 }t|ƒ}qYt|	ƒd d d }d}t|ƒD ]}
|td|d@ ƒ7 }|dL }qä|| |d< d|d< tƒ |d< ||d d< t|ƒdB |d d< t|ƒ|d< | j d d d d |d< | 	¡ |d< ||d< t|ƒ|d< tƒ }| j |d< t!|d < d|d!< t|ƒ|d"< ||d#< dd l"}| #| ¡}| $| 	¡ ¡ | %| 	¡ ¡ t| 	¡ ƒ|_ | &¡  |j d  ¡ du �rˆ| '| ¡ | (¡ ¡ |S | )| ¡ ¡ |S | S )$Nrã   FrÄ  rÅ  r  r}  rr   r   r/  rá   Tr*   r  rM   r5   rÑ  rÒ  rm   rT  ó      r§  r¨  rJ  r  rH  r�   r|  r�  rÆ  râ   ÚiidÚclsidÚcbExtensionÚObjectReferenceSizer©  )*r¯  rÎ  rî   rÃ  rw   rÊ  rÌ  ÚCIM_INSTANCEÚCIM_DECORATIONrì   r¤  rp   r˜  r,   rE  rÓ  ræ   rç   rè   ré   r   r£   r¹   rŸ   rº   r»   r½   r   rÔ  rê   rG  r   r«  ÚCLSID_WbemClassObjectÚcopyÚdeepcopyÚ
set_objRefÚprocess_interfacerä  r²  r‰  r³  )rI   r¯  ÚinstanceDatarÌ  r×  ra  rÙ  rÚ  rØ  r:  rÛ  r>  rÜ  rø   rÞ  rã  rä  r±  ÚobjRefCustomInrü  ÚnewObjr+   r+   r0   ÚSpawnInstanceŽ
  sŒ   ÿ




þzIWbemClassObject.SpawnInstancec              
   C   sz  |D ]¸}|| d t  @ }|tjjkrU|| d d krUtƒ }| j|d< t|d< d|d< t|| d  ¡ ƒ|d< || d |d< t	t
|  ¡ | ¡ |  ¡ |  ¡ |  ¡ d	�ƒ}n_|tjjkr®t|| d tƒr§tƒ }|| d D ]8}tƒ }| j|d< t|d< d|d< t| ¡ ƒ|d< ||d< t	t
|  ¡ | ¡ |  ¡ |  ¡ |  ¡ d	�ƒ}| |¡ qmn|| d }n|| d }t| ||ƒ qd S )
Nr/  rŸ   rõ  rö  r   r÷  rø  r©  ©ÚoxidÚtarget)rç   r£   r½   rŸ   r   r«  rû  r,   rì   rÐ  r   Úget_cinstanceÚget_ipidRemUnknownÚget_oxidÚ
get_targetrÍ   r6   r;   rë   r¸  )rI   r:  r;  rõ   r¶  rŸ   r   Ú	wbemClassr+   r+   r0   r³  ÷
  sB   

ÿ
ÿÿõàz!IWbemClassObject.createPropertiesc                    sL   G dd„ dƒ}|‡ fdd„ƒ}|D ]}||_ tˆ |j |||| f ƒ qd S )Nc                   @   ó   e Zd Zdd„ Zdd„ ZdS )z4IWbemClassObject.createMethods.<locals>.FunctionPoolc                 S   s
   || _ d S rG   )Úfunction)rI   r  r+   r+   r0   rH     rÆ  z=IWbemClassObject.createMethods.<locals>.FunctionPool.__init__c                 S   s   t | j|ƒS rG   )r   r  )rI   r   r+   r+   r0   r‚     r¢   z@IWbemClassObject.createMethods.<locals>.FunctionPool.__getitem__N)rU   rV   rW   rH   r‚   r+   r+   r+   r0   ÚFunctionPool  s    r  c           $   
      s~  | d }| d }|d d u�rŸt |ƒt |d ƒkr*t dt |ƒt |d ƒf ¡ d S tƒ }tƒ }| jtj7  _t|d< d|d< tƒ }d|d< d	|d
< d}d}t	ƒ }	d|	d< ||	 
¡ 7 }t |ƒ}
d}tt |ƒƒD �]ª}t|d  ¡ ƒ| }|| }|d ttB  @ }|d t@ r�td d… }nt| d d… }|d t@ �rŒ|d u rª|t|dƒ7 }qh|tjjtjjtjjtjjfv �rdttd d… t |ƒƒ}g }tt |ƒƒD ]R}|| }|tjjkrûd}| ¡ }|td|d d ƒ7 }||d d  
¡ 7 }| |¡ qÎt	ƒ }t|ƒtu �rd|d< |j|_| d¡|d< n||d< | | 
¡ ¡ qÎ|
d }d}d}tt |ƒƒD ] }|td|dt |ƒ|   t |ƒ ƒ7 }||| 7 }|d7 }�q/|td|
ƒ7 }||| | 7 }t |ƒ}
qhttd d… t |ƒƒ}|td|
ƒ7 }||7 }|D ]
}|t||ƒ7 }�q|t |ƒ}
qh|tjjtjjtjjtjjfv�r¥|t||ƒ7 }qh|tjjk�rä|d u �r¿|d7 }|ˆ  |dd¡O }qh|td|
ƒ7 }| ¡ }|td|d d ƒ7 }||d d  
¡ 7 }t |ƒ}
qht	ƒ }t|ƒtu �rþd|d< |j|_| d¡|d< n||d< |td|
ƒ7 }|| 
¡ 7 }t |ƒ}
qht |ƒd d d }d}t|ƒD ]}|td|d@ ƒ7 }|dL }�q$|| |d< t ƒ }t |ƒdB |d< ||d< ||d< t |ƒ|d < |d! d" d d# }t |d! d" d d#  
¡ ƒ|d$ d < ||d< | 
¡ |d%< ||d< t |ƒ|d< t!ƒ }ˆ j"|d&< t#|d'< d|d(< t |ƒ|d)< ||d< nt$}tƒ }tƒ } |  jtj7  _t%| d< d| d< tƒ }d|d< d|d< d|d
< d|d< t |ƒ|d < |d* d" d d#  
¡ |d< | 
¡ | d%< | |d< t | ƒ|d< t!ƒ }!ˆ j"|!d&< t#|!d'< d|!d(< t |ƒ|!d)< ||!d< zˆ j&j'||d+ |d,�W S  t(�y> }" ztj)t*j+k�r,dd l,}#|# -¡  t t|"ƒ¡ W Y d }"~"d S d }"~"ww )-Nr   rM   r~  z1Function called with %d parameters instead of %d!rÄ  r  rÅ  r}  rô  r§  Ú__PARAMETERSrr   r/  rá   r  r©  râ   rã   rq   r   r5   s       TrÑ  rÒ  rm   rT  r  rH  rJ  r¨  r�   r  r|  r�  rM  rÆ  rõ  rö  r÷  rø  r�  rQ   )r<  ).r,   r%   r^  rî   rÃ  rw   rÌ  rù  r¤  rp   rì   rê   r;   rÝ  ræ   rç   rè   ré   r   r£   r¹   rŸ   rº   r»   r½   ró  rë   r/  r-   r{   ÚencoderÔ  rG  r   r«  rû  r   rÍ  r¬  Ú
ExecMethodrŸ  r4   rð   rò   Ú	tracebackÚ	print_exc)$Ú
staticArgsÚargsÚclassOrInstanceÚmethodDefinitionr¯  ÚinParamsrÌ  r×  ra  rÙ  rÚ  rØ  rÛ  ÚparamDefinitionÚinArgrø   rÞ  rß  rá  râ  ÚcurValÚ	curObjectÚmarshaledObjectrã  ÚcurStrHeapPtrÚarrayHeapPtrValuesÚarrayValueTablerä  r±  Ú
heapRecordÚ	inMethodsr  Ú	outParamsÚobjRefCustomrE   r  rY  r+   r0   ÚinnerMethod!  s$  ÿ
&

ÿ


ÿ


€üz3IWbemClassObject.createMethods.<locals>.innerMethod)rU   r¸  )rI   r  rƒ  r  r%  rÚ  r+   rY  r0   r²    s    >þzIWbemClassObject.createMethodsrG   )rU   rV   rW   rH   r·  rº  r¡   rä  rÅ  r˜  rå  rE  r‰  r¾  rÔ  rÖ  ró  r  r³  r²  r+   r+   r+   r0   rÐ  "	  s&    

 
 yi#rÐ  c                   @   s   e Zd Zdd„ Zddd„ZdS )ÚIWbemLoginClientIDc                 C   ó   t  | |¡ t| _d S rG   )r   rH   ÚIID_IWbemLoginClientIDr«  ©rI   r´  r+   r+   r0   rH   æ  ó   
zIWbemLoginClientID.__init__éÒ  c                 C   s<   t ƒ }t|ƒ|d< ||d< d|d< | j|| j|  ¡ d�}|S )Nrh  ri  r   rj  ©rõ  Úuuid)rg  r¨  Úrequestr«  Úget_iPid)rI   rh  ri  r.  Úrespr+   r+   r0   ÚSetClientInfoê  s   z IWbemLoginClientID.SetClientInfoN)r+  )rU   rV   rW   rH   r1  r+   r+   r+   r0   r&  å  s    r&  c                   @   r  )ÚIWbemLoginHelperc                 C   r'  rG   )r   rH   ÚIID_IWbemLoginHelperr«  r)  r+   r+   r0   rH   ó  r*  zIWbemLoginHelper.__init__c                 C   ó0   t ƒ }||d< | j|| j|  ¡ d�}| ¡  |S )Nrn  r,  )rm  r.  r«  r/  Údump)rI   rn  r.  r0  r+   r+   r0   ÚSetEvent÷  ó
   zIWbemLoginHelper.SetEventN)rU   rV   rW   rH   r6  r+   r+   r+   r0   r2  ò  ó    r2  c                   @   r  )ÚIWbemWCOSmartEnumc                 C   r'  rG   )r   rH   ÚIID_IWbemWCOSmartEnumr«  r)  r+   r+   r0   rH      r*  zIWbemWCOSmartEnum.__init__c                 C   ó@   t ƒ }||d< ||d< ||d< | j|| j|  ¡ d�}| ¡  |S )Nrb  rF  rG  r,  )ra  r.  r«  r/  r5  )rI   rb  rF  rG  r.  r0  r+   r+   r0   ÚNext  ó   zIWbemWCOSmartEnum.NextN)rU   rV   rW   rH   r<  r+   r+   r+   r0   r9  ÿ  r8  r9  c                   @   r  )ÚIWbemFetchSmartEnumc                 C   r'  rG   )r   rH   ÚIID_IWbemFetchSmartEnumr«  r)  r+   r+   r0   rH     r*  zIWbemFetchSmartEnum.__init__c                 C   s(   t ƒ }| j|| j|  ¡ d�}| ¡  |S ©Nr,  )r^  r.  r«  r/  r5  ©rI   rF  r.  r0  r+   r+   r0   ÚGetSmartEnum  ó   z IWbemFetchSmartEnum.GetSmartEnumN)rU   rV   rW   rH   rB  r+   r+   r+   r0   r>    r8  r>  c                   @   ó4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚIWbemCallResultc                 C   r'  rG   )r   rH   ÚIID_IWbemCallResultr«  r)  r+   r+   r0   rH     r*  zIWbemCallResult.__init__c                 C   r4  ©NrF  r,  )rR  r.  r«  r/  r5  rA  r+   r+   r0   ÚGetResultObject  r7  zIWbemCallResult.GetResultObjectc                 C   r4  rG  )rU  r.  r«  r/  r5  rA  r+   r+   r0   ÚGetResultString$  r7  zIWbemCallResult.GetResultStringc                 C   r4  rG  )rX  r.  r«  r/  r5  rA  r+   r+   r0   ÚGetResultServices+  r7  z!IWbemCallResult.GetResultServicesc                 C   ó,   t ƒ }||d< | j|| j|  ¡ d�}|d S )NrF  r,  r]  )r[  r.  r«  r/  rA  r+   r+   r0   ÚGetCallStatus2  ó   zIWbemCallResult.GetCallStatusN)rU   rV   rW   rH   rH  rI  rJ  rL  r+   r+   r+   r0   rE    s    rE  c                   @   s>   e Zd Zddd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ ZdS )ÚIEnumWbemClassObjectNc                 C   s   t  | |¡ t| _|| _d S rG   )r   rH   ÚIID_IEnumWbemClassObjectr«  Ú$_IEnumWbemClassObject__iWbemServices)rI   r´  rµ  r+   r+   r0   rH   9  s   
zIEnumWbemClassObject.__init__c                 C   ó(   t ƒ }| j|| j|  ¡ d�}| ¡  |S r@  )rB  r.  r«  r/  r5  ©rI   r.  r0  r+   r+   r0   ÚReset>  rC  zIEnumWbemClassObject.Resetc                 C   s~   t ƒ }||d< ||d< | j|| j|  ¡ d�}tƒ }|d D ]}| tt|  ¡ d 	|d ¡|  
¡ |  ¡ |  ¡ d�| jƒ¡ q|S )NrF  rG  r,  rI  r  ÚabDatar  )rE  r.  r«  r/  r;   rë   rÐ  r   r  Újoinr  r	  r
  rP  )rI   rF  rG  r.  r0  Ú
interfacesr´  r+   r+   r0   r<  D  s   ÿþzIEnumWbemClassObject.Nextc                 C   ó8   t ƒ }||d< ||d< | j|| j|  ¡ d�}| ¡  |S )NrF  rL  r,  )rK  r.  r«  r/  r5  )rI   rF  rL  r.  r0  r+   r+   r0   Ú	NextAsyncQ  ó   zIEnumWbemClassObject.NextAsyncc                 C   rQ  r@  )rN  r.  r«  r/  r5  rR  r+   r+   r0   ÚCloneY  rC  zIEnumWbemClassObject.Clonec                 C   rW  )NrF  rG  r,  )rP  r.  r«  r/  r5  )rI   rF  rG  r.  r0  r+   r+   r0   ÚSkip_  rY  zIEnumWbemClassObject.SkiprG   )	rU   rV   rW   rH   rS  r<  rX  rZ  r[  r+   r+   r+   r0   rN  8  s    
rN  c                   @   sP  e Zd Zdd„ Zdefdd„Zdd„ Zdd	„ Zdefd
d„Zdefdd„Z	defdd„Z
defdd„Zdefdd„Zdefdd„Zdefdd„Zdefdd„Zdefdd„Zdefdd„Zdefdd„Zdefd d!„Zdefd"d#„Zdefd$d%„Zdefd&d'„Zdefd(d)„Zdefd*d+„Zdefd,d-„Zdeeefd.d/„Zdeefd0d1„Zd2S )3ÚIWbemServicesc                 C   r'  rG   )r   rH   ÚIID_IWbemServicesr«  r)  r+   r+   r0   rH   h  r*  zIWbemServices.__init__r   c                 C   sD   t ƒ }||d d< ||d< ||d< | j|| j|  ¡ d�}| ¡  |S )Nrî  ÚasDatarÝ  rÞ  r,  )rí  r.  r«  r/  r5  ©rI   rî  rÝ  rÞ  r.  r0  r+   r+   r0   ÚOpenNamespacel  s   zIWbemServices.OpenNamespacec                 C   rK  )Nr÷  r,  rË  )rö  r.  r«  r/  )rI   r÷  r.  r0  r+   r+   r0   ÚCancelAsyncCallu  rM  zIWbemServices.CancelAsyncCallc                 C   sN   t ƒ }d|d< | j|| j|  ¡ d�}t|  ¡ d |d d ¡|  ¡ |  ¡ d�S )Nr   rÝ  r,  r  rþ  rT  ©r  )	rû  r.  r«  r/  r   r  rU  r  r
  rR  r+   r+   r0   ÚQueryObjectSink{  s   ÿzIWbemServices.QueryObjectSinkc                 C   s¼   t ƒ }||d d< ||d< ||d< | j|| j|  ¡ d�}tt|  ¡ d |d d ¡|  ¡ |  	¡ |  
¡ d	�| ƒ}|d
 tkrXtt|  ¡ d |d d ¡|  ¡ |  
¡ d�ƒ}||fS t}||fS )Nr   r^  rÝ  rÞ  r,  r  r  rT  r  r  rb  )rÿ  r.  r«  r/  rÐ  r   r  rU  r  r	  r
  r   rE  )rI   r   rÝ  rÞ  r.  r0  r  ÚppcallResultr+   r+   r0   r½  ‚  s(   ÿþÿÿÿzIWbemServices.GetObjectc                 C   óH   t ƒ }t|ƒ|d d< ||d< ||d< | j|| j|  ¡ d�}| ¡  |S ©Nr   r^  rÝ  rÞ  r,  )r  r¨  r.  r«  r/  r5  r_  r+   r+   r0   ÚGetObjectAsync“  ó   zIWbemServices.GetObjectAsyncc                 C   ó�   t ƒ }|tu r||d< nt|ƒ|d d< t| ¡ ƒ|d d< ||d< ||d< | j|| j|  ¡ d�}tt	|  
¡ d |d d ¡|  ¡ |  ¡ d	�ƒS )
Nr	  Ú	ulCntDatarT  rÝ  rÞ  r,  r  r  rb  )r  r   r,   r;   rì   r.  r«  r/  rE  r   r  rU  r  r
  ©rI   r	  rÝ  rÞ  r.  r0  r+   r+   r0   ÚPutClassœ  s   
ÿÿzIWbemServices.PutClassc                 C   sn   t ƒ }|tu r||d< nt|ƒ|d d< t| ¡ ƒ|d d< ||d< ||d< | j|| j|  ¡ d�}| ¡  |S )Nr	  rj  rT  rÝ  rÞ  r,  )	r  r   r,   r;   rì   r.  r«  r/  r5  rk  r+   r+   r0   ÚPutClassAsyncª  s   
zIWbemServices.PutClassAsyncc                 C   ój   t ƒ }t|ƒ|d d< ||d< ||d< | j|| j|  ¡ d�}tt|  ¡ d |d d ¡|  	¡ |  
¡ d	�ƒS )
Nr  r^  rÝ  rÞ  r,  r  r  rT  rb  )r  r¨  r.  r«  r/  rE  r   r  rU  r  r
  ©rI   r  rÝ  rÞ  r.  r0  r+   r+   r0   ÚDeleteClass·  ó   ÿÿzIWbemServices.DeleteClassc                 C   re  )Nr  r^  rÝ  rÞ  r,  )r  r¨  r.  r«  r/  r5  ro  r+   r+   r0   ÚDeleteClassAsyncÁ  rh  zIWbemServices.DeleteClassAsyncc                 C   re  ©Nr  r^  rÝ  rÞ  r,  )r  r¨  r.  r«  r/  r5  ©rI   r  rÝ  rÞ  r.  r0  r+   r+   r0   ÚCreateClassEnumÊ  rh  zIWbemServices.CreateClassEnumc                 C   re  rs  )r  r¨  r.  r«  r/  r5  rt  r+   r+   r0   ÚCreateClassEnumAsyncÓ  rh  z"IWbemServices.CreateClassEnumAsyncc                 C   ri  )
Nr  rj  rT  rÝ  rÞ  r,  r  r  rb  )r  r   r,   r;   rì   r.  r«  r/  rE  r   r  rU  r  r
  ©rI   r  rÝ  rÞ  r.  r0  r+   r+   r0   ÚPutInstanceÜ  s   
ÿÿzIWbemServices.PutInstancec                 C   r;  )Nr  rÝ  rÞ  r,  )r!  r.  r«  r/  r5  rw  r+   r+   r0   ÚPutInstanceAsyncë  r=  zIWbemServices.PutInstanceAsyncc                 C   rn  )
Nr   r^  rÝ  rÞ  r,  r  r  rT  rb  )r$  r¨  r.  r«  r/  rE  r   r  rU  r  r
  ©rI   r   rÝ  rÞ  r.  r0  r+   r+   r0   ÚDeleteInstanceô  rq  zIWbemServices.DeleteInstancec                 C   re  rf  )r&  r¨  r.  r«  r/  r5  rz  r+   r+   r0   ÚDeleteInstanceAsyncþ  rh  z!IWbemServices.DeleteInstanceAsyncc                 C   sn   t ƒ }||d d< ||d< ||d< | j|| j|  ¡ d�}| ¡  tt|  ¡ d |d d ¡|  	¡ |  
¡ d	�ƒS )
Nr  r^  rÝ  rÞ  r,  r  r  rT  rb  )r(  r.  r«  r/  r5  rN  r   r  rU  r  r
  rt  r+   r+   r0   ÚCreateInstanceEnum  s   ÿÿz IWbemServices.CreateInstanceEnumc                 C   re  rs  )r*  r¨  r.  r«  r/  r5  rt  r+   r+   r0   ÚCreateInstanceEnumAsync  rh  z%IWbemServices.CreateInstanceEnumAsyncc                 C   ó|   t ƒ }tdƒ|d d< t|ƒ|d d< ||d< ||d< | j|| j|  ¡ d�}tt|  ¡ d |d	 d
 ¡|  	¡ |  
¡ d�| ƒS ©NÚWQLr-  r^  r.  rÝ  rÞ  r,  r  r  rT  rb  )r,  r¨  r.  r«  r/  rN  r   r  rU  r  r
  ©rI   r.  rÝ  rÞ  r.  r0  r+   r+   r0   Ú	ExecQuery  ó   ÿþzIWbemServices.ExecQueryc                 C   óX   t ƒ }tdƒ|d d< t|ƒ|d d< ||d< ||d< | j|| j|  ¡ d�}| ¡  |S ©Nr�  r-  r^  r.  rÝ  rÞ  r,  )r1  r¨  r.  r«  r/  r5  r‚  r+   r+   r0   ÚExecQueryAsync&  ó   zIWbemServices.ExecQueryAsyncc                 C   r  r€  )r3  r¨  r.  r«  r/  rN  r   r  rU  r  r
  r‚  r+   r+   r0   ÚExecNotificationQuery0  r„  z#IWbemServices.ExecNotificationQueryc                 C   r…  r†  )r6  r¨  r.  r«  r/  r5  r‚  r+   r+   r0   ÚExecNotificationQueryAsync;  rˆ  z(IWbemServices.ExecNotificationQueryAsyncc           	      C   s  t ƒ }t|ƒ|d d< t|ƒ|d d< ||d< ||d< |tu r$||d< nt|ƒ|d d< t| ¡ ƒ|d d< t|jd	< |tu rHt|jd
 jd< nt| ¡ ƒ|d
 d< t| ¡ ƒ|d
 d< | j|| j|  	¡ d�}t
t|  ¡ d |d
 d ¡|  ¡ |  ¡ |  ¡ d�ƒS )Nr   r^  r;  rÝ  rÞ  r<  rj  rT  r  r=  rø  r,  r  r  )r9  r¨  r   r,   r;   rì   r€   r.  r«  r/  rÐ  r   r  rU  r  r	  r
  )	rI   r   r;  rÝ  rÞ  r<  r=  r.  r0  r+   r+   r0   r  E  s(   

ÿÿzIWbemServices.ExecMethodc                 C   s`   t ƒ }t|ƒ|d d< t|ƒ|d d< ||d< ||d< ||d< | j|| j|  ¡ d�}| ¡  |S )Nr   r^  r;  rÝ  rÞ  r<  r,  )r?  r¨  r.  r«  r/  r5  )rI   r   r;  rÝ  rÞ  r<  r.  r0  r+   r+   r0   ÚExecMethodAsync\  s   zIWbemServices.ExecMethodAsyncN)rU   rV   rW   rH   r   r`  ra  rc  r½  rg  rl  rm  rp  rr  ru  rv  rx  ry  r{  r|  r}  r~  rƒ  r‡  r‰  rŠ  r  r‹  r+   r+   r+   r0   r\  g  s2    		
				
		

r\  c                   @   rD  )ÚIWbemLevel1Loginc                 C   r'  rG   )r   rH   ÚIID_IWbemLevel1Loginr«  r)  r+   r+   r0   rH   h  r*  zIWbemLevel1Login.__init__c                 C   s4   t ƒ }t|d< d|d< | j|| j|  ¡ d�}|d S )NrÅ  r   rÆ  r,  rÊ  )rÄ  r   r.  r«  r/  rR  r+   r+   r0   ÚEstablishPositionl  ó
   z"IWbemLevel1Login.EstablishPositionc                 C   s4   t ƒ }t|d< t|d< | j|| j|  ¡ d�}|d S )NrÅ  rÆ  r,  rÑ  )rÏ  r   r.  r«  r/  rR  r+   r+   r0   ÚRequestChallenges  r�  z!IWbemLevel1Login.RequestChallengec                 C   sD   t ƒ }t|d< t|d< d|d< t|d< | j|| j|  ¡ d�}|d S )NrÅ  rÆ  r   rÑ  rÕ  r,  rØ  )rÔ  r   r.  r«  r/  rR  r+   r+   r0   Ú	WBEMLoginz  s   zIWbemLevel1Login.WBEMLoginc                 C   sr   t ƒ }t|ƒ|d< t|ƒ|d< d|d< ||d< | j|| j|  ¡ d�}tt|  ¡ d |d d	 ¡|  	¡ |  
¡ d
�ƒS )NrÛ  rÜ  r   rÝ  rÞ  r,  r  rà  rT  rb  )rÚ  r¨  r.  r«  r/  r\  r   r  rU  r  r
  )rI   rÛ  rÜ  rÞ  r.  r0  r+   r+   r0   Ú	NTLMLoginƒ  s   ÿÿzIWbemLevel1Login.NTLMLoginN)rU   rV   rW   rH   rŽ  r�  r‘  r’  r+   r+   r+   r0   rŒ  g  s    	rŒ  Ú__main__sÈ   xV4Ð    DPRAVAT-DEV  ROOT     ÿÿÿÿ                 €          €f                       
   ÿÿÿÿ<  € Base  Id                 
  €   4     €   ÿÿ sint32      4    € €   ÿÿ sint32 )r   (g  Ú
__future__r   r   Ústructr   r   r   Ú	functoolsr   r7   Úcollections.abcrð   r®  r   Úimpacket.dcerpc.v5.ndrr	   r
   r   r   r   r   Úimpacket.dcerpc.v5.dcomrtr   r   r   r   r   r   r   r   r   Úimpacket.dcerpc.v5.dcom.oautr   Úimpacket.dcerpc.v5.dtypesr   r   r   r   r   r   r   r    r!   Úimpacket.dcerpc.v5.enumr"   Úimpacket.dcerpc.v5.rpcrtr#   Úimpacketr$   r%   Úimpacket.uuidr&   r'   Úimpacket.structurer(   r)   r>   rF   Ú%WBEM_FLAVOR_FLAG_PROPAGATE_O_INSTANCEÚ*WBEM_FLAVOR_FLAG_PROPAGATE_O_DERIVED_CLASSÚWBEM_FLAVOR_NOT_OVERRIDABLEr‚  ÚWBEM_FLAVOR_ORIGIN_SYSTEMÚWBEM_FLAVOR_AMENDEDræ  rÍ  rù  rú  rê  rë  r”   r„   r•   r—   r  rÌ  rp   r‹   rŒ   r‡   rè   ÚHEAP_STRING_REFr–   r�   rš   ÚCIM_TYPEræ   r/  rž   r£   r®   rŸ   r¯   r°   r±   r²   r³   r´   rµ   r¶   r·   r¸   r¹   rº   r»   r¼   r½   ré   r6  rµ  r  r  r  rÞ   ÚQUALIFIER_VALUEr  r  rd  rF  r  r  r  r&  r'  r(  r)  r*  r   rç   r+  rK  rG  re  rL  r‹  rŒ  rn  ro  rp  rq  ÚHEAP_QUALIFIER_SET_REFrr  ÚHEAP_METHOD_SIGNATURE_BLOCK_REFÚMETHOD_SIGNATURErs  rt  r�  rf  ru  rŽ  rÂ  r»  r¼  ÚNULL_AND_DEFAULT_FLAGÚNDTABLEr›  r   rœ  r¢  r½  r¤  rÁ  r¿  rÃ  rí   rî   ÚCLSID_WbemLevel1LoginÚCLSID_WbemBackupRestorerû  r�  r(  r3  r]  ÚIID_IWbemBackupRestoreÚIID_IWbemBackupRestoreExrª  ÚIID_IWbemContextrO  rF  r?  r:  rÍ  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r(  r!  ró  r÷  rü  rc  rý  rþ  r   r
  r  r  r#  r'  rO   rn  rr  rƒ  rŠ  r�  r“  r”  r™  rš  r›  rŸ  r   r¤  r¨  r¬  r²  r·  r»  r½  r¿  rÂ  rÄ  rÉ  rÏ  rÐ  rÔ  r×  rÚ  rß  râ  rå  rç  rë  rí  ró  rö  rú  rû  rý  rÿ  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r/  r1  r2  r3  r5  r6  r8  r9  r>  r?  rA  rB  rD  rE  rH  rK  rM  rN  rO  rP  rQ  rR  rS  rU  rV  rX  rY  r[  r\  r^  r_  ra  rd  rg  rl  rm  ro  rp  rr  rs  ru  rv  rw  rx  ry  r{  r�  r…  r‡  rˆ  rŠ  r‹  rŽ  r�  r�  r“  r–  r˜  r™  rœ  rŸ  r   r¡  r¢  r£  r¤  r¥  ÚOPNUMSr¨  rÐ  r&  r2  r9  r>  rE  rN  r\  rŒ  rU   Ú	baseClassr+   r+   r+   r0   Ú<module>   s*   ,,õõ*	#ÿþýüûúùø	÷
öõôóòñðÿþýüûúùø	÷
öõôóòñðú
M
4*4"F $
	M

	


				

	
										
	




		
			     H /  (þ