o
    jy                     @   s  d dl mZmZ d dl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mZmZmZmZmZ d dlmZ d dlmZmZ d dlmZ edZG dd	 d	eZ eZ!eZ"eZ#eZ$e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>dZ?d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/d0 d0eZMG d1d2 d2eZNG d3d4 d4eZOG d5d6 d6eZPG d7d8 d8eZQG d9d: d:eZRG d;d< d<eZSG d=d> d>eZTG d?d@ d@eZUG dAdB dBeZVG dCdD dDeZWG dEdF dFeZXG dGdH dHeZYG dIdJ dJeZZG dKdL dLeZ[G dMdN dNeZ\G dOdP dPeZ]G dQdR dReZ^G dSdT dTeZ_G dUdV dVeZ`G dWdX dXeZaG dYdZ dZeZbG d[d\ d\eZcG d]d^ d^eZdG d_d` d`eZeG dadb dbeZfG dcdd ddeZgG dedf dfeZhG dgdh dheZiG didj djeZjG dkdl dleZkG dmdn dneZlG dodp dpeZmG dqdr dreZnG dsdt dteZoG dudv dveZpG dwdx dxeZqG dydz dzeZrG d{d| d|eZsG d}d~ d~eZtG dd deZuG dd deZvG dd deZwG dd deZxG dd deZyG dd deZzG dd deZ{G dd deZ|G dd deZ}G dd deZ~G dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZi d eIeJfd
eKeLfdeMeNfdeOePfdeQeRfdeSeTfdeUeVfdeWeXfdeYeZfde[e\fde]e^fde_e`fdeaebfdecedfdeeeffdegehfdeiejfekelfemenfeoepfeqerfesetfeuevfewexfeyezfe{e|fe}e~feefeefeefeefdZdd Zdd Zdd ZefddZefddZefddZefddZefddZdd Zed
eee;fddZdd ZefddZdddĄZddƄ ZefddȄZddʄ Zdd̄ Zd
efdd΄ZddЄ Zddd҄ZddԄ Ze>fddքZefdd؄Zddڄ Zdd܄ ZefddބZdd Zed
fddZefddZefddZdd ZdS )    )unpackpack)NDRCALL	NDRSTRUCT
NDRPOINTERNDRUniConformantVaryingArrayNDRUniConformantArray)DWORDUUIDULONGLPULONGBOOLEANSECURITY_INFORMATION	PFILETIMERPC_UNICODE_STRINGFILETIMENULLMAXIMUM_ALLOWEDOWNER_SECURITY_INFORMATIONPWCHARPRPC_UNICODE_STRING)DCERPCException)system_errorsLOG)uuidtup_to_bin)z$338CD001-2244-31F1-AAAA-900038001003z1.0c                   @   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packet r!   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/impacket/dcerpc/v5/rrp.pyr   (   s   zDCERPCSessionError.__init__c                 C   sF   | j }|tjv rtj| d }tj| d }d| j ||f S d| j  S )Nr      z&RRP SessionError: code: 0x%x - %s - %sz*RRP SessionError: unknown error code: 0x%x)r   r   ERROR_MESSAGES)r   keyerror_msg_shorterror_msg_verboser!   r!   r"   __str__+   s   

zDCERPCSessionError.__str__)NNN)__name__
__module____qualname__r   r(   r!   r!   r!   r"   r   '   s    
r   r#                      i                 c                   @   s.   e Zd ZdefdeffZd	ddZdd ZdS )
RPC_HKEYcontext_handle_attributescontext_handle_uuidNFc                 C   s   t | || d| d< d S )N                   r9   )r   r   )r   dataisNDR64r!   r!   r"   r   r   s   zRPC_HKEY.__init__c                 C   s   | d dkS )Nr9   r:   r!   )r   r!   r!   r"   isNullv   s   zRPC_HKEY.isNull)NF)r)   r*   r+   r   r
   	structurer   r=   r!   r!   r!   r"   r7   l   s    
r7   c                   @   s(   e Zd ZdefdefdefdeffZdS )RVALENTve_valuenameve_valuelenve_valueptrve_typeN)r)   r*   r+   PRRP_UNICODE_STRINGr	   r>   r!   r!   r!   r"   r?   z       r?   c                   @   s   e Zd ZeZdS )RVALENT_ARRAYN)r)   r*   r+   r?   itemr!   r!   r!   r"   rF      s    rF   c                   @   s   e Zd ZdS )
BYTE_ARRAYN)r)   r*   r+   r!   r!   r!   r"   rH      s    rH   c                   @      e Zd ZdeffZdS )PBYTE_ARRAYDataN)r)   r*   r+   rH   referentr!   r!   r!   r"   rJ          rJ   c                   @   s"   e Zd ZdefdefdeffZdS )RPC_SECURITY_DESCRIPTORlpSecurityDescriptorcbInSecurityDescriptorcbOutSecurityDescriptorN)r)   r*   r+   rJ   r	   r>   r!   r!   r!   r"   rN      
    rN   c                   @   "   e Zd ZdefdefdeffZdS )RPC_SECURITY_ATTRIBUTESnLengthRpcSecurityDescriptorbInheritHandleN)r)   r*   r+   r	   rN   r   r>   r!   r!   r!   r"   rT      rR   rT   c                   @   rI   )PRPC_SECURITY_ATTRIBUTESrK   N)r)   r*   r+   rT   rL   r!   r!   r!   r"   rX      rM   rX   c                   @       e Zd ZdZdefdeffZdS )OpenClassesRootr   
ServerName
samDesiredNr)   r*   r+   opnumPREGISTRY_SERVER_NAMEREGSAMr>   r!   r!   r!   r"   rZ      
    rZ   c                   @      e Zd ZdefdeffZdS )OpenClassesRootResponsephKey	ErrorCodeNr)   r*   r+   r7   error_status_tr>   r!   r!   r!   r"   rc          rc   c                   @   rY   )OpenCurrentUserr#   r[   r\   Nr]   r!   r!   r!   r"   ri      ra   ri   c                   @   rb   )OpenCurrentUserResponserd   re   Nrf   r!   r!   r!   r"   rj      rh   rj   c                   @   rY   )OpenLocalMachiner,   r[   r\   Nr]   r!   r!   r!   r"   rk      ra   rk   c                   @   rb   )OpenLocalMachineResponserd   re   Nrf   r!   r!   r!   r"   rl      rh   rl   c                   @   rY   )OpenPerformanceDatar2   r[   r\   Nr]   r!   r!   r!   r"   rm      ra   rm   c                   @   rb   )OpenPerformanceDataResponserd   re   Nrf   r!   r!   r!   r"   rn      rh   rn   c                   @   rY   )	OpenUsersr-   r[   r\   Nr]   r!   r!   r!   r"   ro      ra   ro   c                   @   rb   )OpenUsersResponserd   re   Nrf   r!   r!   r!   r"   rp      rh   rp   c                   @      e Zd ZdZdeffZdS )BaseRegCloseKeyr3   hKeyNr)   r*   r+   r^   r7   r>   r!   r!   r!   r"   rr          rr   c                   @   rb   )BaseRegCloseKeyResponsers   re   Nrf   r!   r!   r!   r"   rv      rh   rv   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 )
BaseRegCreateKeyr4   rs   lpSubKeylpClass	dwOptionsr\   lpSecurityAttributeslpdwDispositionN)r)   r*   r+   r^   r7   RRP_UNICODE_STRINGr	   r`   rX   r   r>   r!   r!   r!   r"   rw          rw   c                   @   rS   )BaseRegCreateKeyResponse	phkResultr|   re   N)r)   r*   r+   r7   r   rg   r>   r!   r!   r!   r"   r     rR   r   c                   @   rY   )BaseRegDeleteKeyr5   rs   rx   Nr)   r*   r+   r^   r7   r}   r>   r!   r!   r!   r"   r     ra   r   c                   @   rI   )BaseRegDeleteKeyResponsere   Nr)   r*   r+   rg   r>   r!   r!   r!   r"   r     rM   r   c                   @   rY   )BaseRegDeleteValuer.   rs   lpValueNameNr   r!   r!   r!   r"   r     ra   r   c                   @   rI   )BaseRegDeleteValueResponsere   Nr   r!   r!   r!   r"   r   !  rM   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 )BaseRegEnumKey	   rs   dwIndexlpNameIn	lpClassInlpftLastWriteTimeN)
r)   r*   r+   r^   r7   r	   r}   rD   r   r>   r!   r!   r!   r"   r   '      r   c                   @   (   e Zd ZdefdefdefdeffZdS )BaseRegEnumKeyResponse	lpNameOutlplpClassOutr   re   N)r)   r*   r+   r}   rD   r   rg   r>   r!   r!   r!   r"   r   1  rE   r   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 )
BaseRegEnumValue
   rs   r   lpValueNameInlpTypelpDatalpcbDatalpcbLenN)
r)   r*   r+   r^   r7   r	   r}   r   rJ   r>   r!   r!   r!   r"   r   :  r~   r   c                   @   s4   e 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 )BaseRegEnumValueResponselpValueNameOutr   r   r   r   re   N)r)   r*   r+   r}   r   rJ   rg   r>   r!   r!   r!   r"   r   F  s    r   c                   @   rq   )BaseRegFlushKeyr6   rs   Nrt   r!   r!   r!   r"   r   Q  ru   r   c                   @   rI   )BaseRegFlushKeyResponsere   Nr   r!   r!   r!   r"   r   W  rM   r   c                   @   &   e Zd ZdZdefdefdeffZdS )BaseRegGetKeySecurity   rs   SecurityInformationpRpcSecurityDescriptorInNr)   r*   r+   r^   r7   r   rN   r>   r!   r!   r!   r"   r   ]      r   c                   @   rb   )BaseRegGetKeySecurityResponsepRpcSecurityDescriptorOutre   N)r)   r*   r+   rN   rg   r>   r!   r!   r!   r"   r   e  rh   r   c                   @   s&   e Zd ZdZdefdefdeffZdS )BaseRegLoadKey   rs   rx   lpFileNr   r!   r!   r!   r"   r   l  r   r   c                   @   rI   )BaseRegLoadKeyResponsere   Nr   r!   r!   r!   r"   r   t  rM   r   c                   @   ,   e Zd ZdZdefdefdefdeffZdS )BaseRegOpenKey   rs   rx   rz   r\   N)	r)   r*   r+   r^   r7   r}   r	   r`   r>   r!   r!   r!   r"   r   z      r   c                   @   rb   )BaseRegOpenKeyResponser   re   Nrf   r!   r!   r!   r"   r     rh   r   c                   @   rY   )BaseRegQueryInfoKey   rs   r   Nr   r!   r!   r!   r"   r     ra   r   c                   @   sL   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f
ZdS )BaseRegQueryInfoKeyResponse
lpClassOut
lpcSubKeyslpcbMaxSubKeyLenlpcbMaxClassLen	lpcValueslpcbMaxValueNameLenlpcbMaxValueLenlpcbSecurityDescriptorr   re   N)r)   r*   r+   r   r	   r   rg   r>   r!   r!   r!   r"   r     s    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 )	BaseRegQueryValue   rs   r   r   r   r   r   N)	r)   r*   r+   r^   r7   r}   r   rJ   r>   r!   r!   r!   r"   r     s    r   c                   @   s.   e Zd ZdefdefdefdefdeffZdS )BaseRegQueryValueResponser   r   r   r   re   N)r)   r*   r+   r   rJ   rg   r>   r!   r!   r!   r"   r     s    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 )BaseRegReplaceKey   rs   rx   	lpNewFile	lpOldFileNr   r!   r!   r!   r"   r     r   r   c                   @   rI   )BaseRegReplaceKeyResponsere   Nr   r!   r!   r!   r"   r     rM   r   c                   @   r   )BaseRegRestoreKey   rs   r   FlagsN)r)   r*   r+   r^   r7   r}   r	   r>   r!   r!   r!   r"   r     r   r   c                   @   rI   )BaseRegRestoreKeyResponsere   Nr   r!   r!   r!   r"   r     rM   r   c                   @   r   )BaseRegSaveKey   rs   r   pSecurityAttributesN)r)   r*   r+   r^   r7   r}   rX   r>   r!   r!   r!   r"   r     r   r   c                   @   rI   )BaseRegSaveKeyResponsere   Nr   r!   r!   r!   r"   r     rM   r   c                   @   r   )BaseRegSetKeySecurity   rs   r   pRpcSecurityDescriptorNr   r!   r!   r!   r"   r     r   r   c                   @   rI   )BaseRegSetKeySecurityResponsere   Nr   r!   r!   r!   r"   r     rM   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 )BaseRegSetValue   rs   r   dwTyper   cbDataN)	r)   r*   r+   r^   r7   r}   r	   r   r>   r!   r!   r!   r"   r     r   r   c                   @   rI   )BaseRegSetValueResponsere   Nr   r!   r!   r!   r"   r     rM   r   c                   @   rY   )BaseRegUnLoadKey   rs   rx   Nr   r!   r!   r!   r"   r     ra   r   c                   @   rI   )BaseRegUnLoadKeyResponsere   Nr   r!   r!   r!   r"   r     rM   r   c                   @   rq   )BaseRegGetVersion   rs   Nrt   r!   r!   r!   r"   r     ru   r   c                   @   rb   )BaseRegGetVersionResponselpdwVersionre   N)r)   r*   r+   r	   rg   r>   r!   r!   r!   r"   r     rh   r   c                   @   rY   )OpenCurrentConfig   r[   r\   Nr]   r!   r!   r!   r"   r     ra   r   c                   @   rb   )OpenCurrentConfigResponserd   re   Nrf   r!   r!   r!   r"   r     rh   r   c                   @   r   )BaseRegQueryMultipleValues   rs   
val_listInnum_vals
lpvalueBuf
ldwTotsizeN	r)   r*   r+   r^   r7   rF   r	   rJ   r>   r!   r!   r!   r"   r   &  r   r   c                   @   r   )"BaseRegQueryMultipleValuesResponseval_listOutr   r   re   Nr)   r*   r+   rF   rJ   r	   rg   r>   r!   r!   r!   r"   r   0  rE   r   c                   @   r   )BaseRegSaveKeyEx   rs   r   r   r   N)	r)   r*   r+   r^   r7   r}   rX   r	   r>   r!   r!   r!   r"   r   9  r   r   c                   @   rI   )BaseRegSaveKeyExResponsere   Nr   r!   r!   r!   r"   r   B  rM   r   c                   @   rY   )OpenPerformanceTextr/   r[   r\   Nr]   r!   r!   r!   r"   r   H  ra   r   c                   @   rb   )OpenPerformanceTextResponserd   re   Nrf   r!   r!   r!   r"   r   O  rh   r   c                   @   rY   )OpenPerformanceNlsText!   r[   r\   Nr]   r!   r!   r!   r"   r   V  ra   r   c                   @   rb   )OpenPerformanceNlsTextResponserd   re   Nrf   r!   r!   r!   r"   r   ]  rh   r   c                   @   r   )BaseRegQueryMultipleValues2"   rs   r   r   r   r   Nr   r!   r!   r!   r"   r   d  r   r   c                   @   r   )#BaseRegQueryMultipleValues2Responser   r   ldwRequiredSizere   Nr   r!   r!   r!   r"   r   n  rE   r   c                   @   r   )BaseRegDeleteKeyEx#   rs   rx   
AccessMaskReservedN)	r)   r*   r+   r^   r7   r}   r`   r	   r>   r!   r!   r!   r"   r   w  r   r   c                   @   rI   )BaseRegDeleteKeyExResponsere   Nr   r!   r!   r!   r"   r     rM   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r/   r   r   r   c                 C   s(   | t kr| S | dd  dkr| d S | S )N )r   )stringr!   r!   r"   checkNullString  s
   r   c                 C   sf  | t krtd|}|S | tkrtd|}|S | tkr=z
t|d}W |S  ty<   dd l}||	 d}Y |S w | t
krrzt|}|dd dkrR|d }|d}W |S  tyq   dd l}||	 d}Y |S w | tkr}td|}|S | tkrtd	|}|S | tkrz
t|d}W |S  ty   dd l}||	 d}Y |S w |}|S )
N<L>Lutf-16ler   r   r   <Q>Q)	REG_DWORDr   REG_DWORD_BIG_ENDIANREG_EXPAND_SZr   encodeUnicodeDecodeErrorsysdecodegetfilesystemencodingREG_MULTI_SZ	REG_QWORDREG_QWORD_LITTLE_ENDIANREG_SZ)	valueTypevalueretDatar	  vr!   r!   r"   	packValue  sX   
 



r  c                 C   s   | t krtdd|d }|S | tkr tdd|d }|S | tkr.d|d}|S | tkr<d|d}|S | tkrLtdd|d }|S | tkr\tdd|d }|S | t	krjd|d}|S d|}|S )Nr       r   r   r   r  r  )
r  r   joinr  r  r
  r  r  r  r  )r  r  r  r!   r!   r"   unpackValue  s.   

r  c                 C       t  }t|d< ||d< | |S Nr[   r\   )rZ   r   requestdcer\   r  r!   r!   r"   hOpenClassesRoot     
r  c                 C   r  r  )ri   r   r  r  r!   r!   r"   hOpenCurrentUser  r  r  c                 C   r  r  )rk   r   r  r  r!   r!   r"   hOpenLocalMachine  r  r   c                 C   r  r  )rm   r   r  r  r!   r!   r"   hOpenPerformanceData   r  r!  c                 C   r  r  )ro   r   r  r  r!   r!   r"   
hOpenUsers  r  r"  c                 C      t  }||d< | |S Nrs   )rr   r  r  rs   r  r!   r!   r"   hBaseRegCloseKey     
r&  c           	      C   sj   t  }||d< t||d< t||d< ||d< ||d< |tkr(t|d d d< n||d< ||d	< | |S )
Nrs   rx   ry   rz   r\   r{   rV   rO   r|   )rw   r   r   r  )	r  rs   rx   ry   rz   r\   r{   r|   r  r!   r!   r"   hBaseRegCreateKey  s   
r(  c                 C   $   t  }||d< t||d< | |S Nrs   rx   )r   r   r  r  rs   rx   r  r!   r!   r"   hBaseRegDeleteKey      
r,  c                 C   s\   t  }||d< ||d< d|jd jd< d|jd jd jd jd< d	|d
< ||d< | |S )Nrs   r      r   MaximumLengthr1   rK   MaximumCountz@                                                                r   r   )r   fieldsr  )r  rs   r   r   r  r!   r!   r"   hBaseRegEnumKey&  s   
r2  c              
   C   s   t  }||d< ||d< d}	 z/|d |jd jd< ||jd jd jd jd	< d
| |d< ||d< ||d< | |}W 	 |S  tyk } z"|dkrOtd  | tjkrf|d7 }|	 d }W Y d }~q d }~ww )Nrs   r   r#   Tr,   r   r/  rK   r0      r   r   r   z9Too many retries when calling hBaseRegEnumValue, aborting)
r   r1  r  r   r   debugget_error_coder   ERROR_MORE_DATA
get_packet)r  rs   r   dataLenr  retriesresper!   r!   r"   hBaseRegEnumValue1  s2   
r<  c                 C   r#  r$  )r   r  r%  r!   r!   r"   hBaseRegFlushKeyT  r'  r=  c                 C   s8   t  }||d< ||d< t|d d< d|d d< | |S )Nrs   r   r   rO   r.  rP   )r   r   r  )r  rs   securityInformationr  r!   r!   r"   hBaseRegGetKeySecurityY  s   
r?  c                 C   s0   t  }||d< t||d< t||d< | |S )Nrs   rx   r   )r   r   r  )r  rs   rx   r   r  r!   r!   r"   hBaseRegLoadKeyb  s
   
r@  c                 C   r)  r*  )r   r   r  r+  r!   r!   r"   hBaseRegUnLoadKeyi  r-  rA  c                 C   4   t  }||d< t||d< ||d< ||d< | |S )Nrs   rx   rz   r\   )r   r   r  )r  rs   rx   rz   r\   r  r!   r!   r"   hBaseRegOpenKeyo     
rC  c                 C   sD   t  }||d< d|jd jd< d|jd jd jd jd< | |S )Nrs   r.  r   r/  r1   rK   r0  )r   r1  r  r%  r!   r!   r"   hBaseRegQueryInfoKeyw  s
   
rE  c              
   C   s   t  }||d< t||d< d}	 zd| |d< ||d< ||d< | |}W n* tyO } z|dkr7td	  | tjkrJ|	 d }W Y d }~q d }~ww 	 |d
 t
|d
 |d fS )Nrs   r   r#   Tr3  r   r   r   z:Too many retries when calling hBaseRegQueryValue, abortingr   )r   r   r  r   r   r4  r5  r   r6  r7  r  )r  rs   r   r8  r  r9  r:  r;  r!   r!   r"   hBaseRegQueryValue  s,   
rF  c                 C   s<   t  }||d< t||d< t||d< t||d< | |S )Nrs   rx   r   r   )r   r   r  )r  rs   rx   r   r   r  r!   r!   r"   hBaseRegReplaceKey  s   
rG  c                 C   ,   t  }||d< t||d< ||d< | |S )Nrs   r   r   )r   r   r  )r  rs   r   flagsr  r!   r!   r"   hBaseRegRestoreKey  
   
rJ  c                 C   rH  )Nrs   r   r   )r   r   r  )r  rs   r   r   r  r!   r!   r"   hBaseRegSaveKey  rK  rL  c                 C   sJ   t  }||d< t||d< ||d< t|||d< t|d |d< | |S )Nrs   r   r   r   r   )r   r   r  lenr  )r  rs   r   r   r   r  r!   r!   r"   hBaseRegSetValue  s   
rN  c                 C   r#  r$  )r   r  r%  r!   r!   r"   hBaseRegGetVersion  r'  rO  c                 C   r  r  )r   r   r  r  r!   r!   r"   hOpenCurrentConfig  r  rP  c                 C   s   t  }||d< |D ]&}t }t|d |d< t|d |d< t|d< |d |d< |d | q	t|d |d	< td
|d< d|d< | |}t }|d D ]'}t }|d |d< t	|d |d |d |d |d   |d< || qN|S )Nrs   	ValueNamer@   rA   rB   	ValueTyperC   r   r   s                                                                                                                                   r      r   r   	ValueData)
r   r?   r   rM  r   appendlistr  dictr  )r  rs   r   r  rG   itemnr:  retValr!   r!   r"   hBaseRegQueryMultipleValues  s(   
.rZ  c                 C   rB  )Nrs   r   r   r   )r   r   r  )r  rs   r   r   rI  r  r!   r!   r"   hBaseRegSaveKeyEx  rD  r[  c                 C   r  r  )r   r   r  r  r!   r!   r"   hOpenPerformanceText  r  r\  c                 C   r  r  )r   r   r  r  r!   r!   r"   hOpenPerformanceNlsText  r  r]  c                 C   r)  )Nrs   r   )r   r   r  )r  rs   r   r  r!   r!   r"   hBaseRegDeleteValue  r-  r^  N)r0   )r1   )structr   r   impacket.dcerpc.v5.ndrr   r   r   r   r   impacket.dcerpc.v5.dtypesr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   impacket.dcerpc.v5.rpcrtr   impacketr   r   impacket.uuidr   MSRPC_UUID_RRPr   r_   rg   r}   rD   r`   KEY_QUERY_VALUEKEY_SET_VALUEKEY_CREATE_SUB_KEYKEY_ENUMERATE_SUB_KEYSKEY_CREATE_LINKKEY_WOW64_64KEYKEY_WOW64_32KEYKEY_READ
REG_BINARYr  REG_DWORD_LITTLE_ENDIANr  r  REG_LINKr  REG_NONEr  r  r  REG_OPTION_BACKUP_RESTOREREG_OPTION_OPEN_LINKREG_CREATED_NEW_KEYREG_OPENED_EXISTING_KEYREG_WHOLE_HIVE_VOLATILEREG_REFRESH_HIVEREG_NO_LAZY_FLUSHREG_FORCE_RESTOREr7   r?   rF   rH   rJ   rN   rT   rX   rZ   rc   ri   rj   rk   rl   rm   rn   ro   rp   rr   rv   rw   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   OPNUMSr   r  r  r  r  r   r!  r"  r&  r(  r,  r2  r<  r=  r?  r@  rA  rC  rE  rF  rG  rJ  rL  rN  rO  rP  rZ  r[  r\  r]  r^  r!   r!   r!   r"   <module>   s~  @	
		
	

		
			
%	$
#	
		