+
    i_                       R t ^ RIHt ^ RIHt ]'       g   R]9   d   ^RIH	t	 M^ RI	t	 ^ RI
tR tR tR tR	 t ! R
 R]4      t^ RIt]	P(                  t^ RIHtHtHt ^ RItR7R R lltR8R R lltR8R R lltR8R R lltR R ltR R lt]	P@                  t ]	PB                  t!]	PD                  t" ]	PF                  t# ]	PH                  t$ ]	PJ                  t% ]	PL                  t& R R lt'R R lt(R8R R llt)R R  lt*R8R! R" llt+R# R$ lt,R% R& lt-R9R' R( llt.R8R) R* llt/R8R+ R, llt0R8R- R. llt1R8R/ R0 llt2R8R1 R2 llt3R8R3 R4 llt4R5 R6 lt5R#   ] d	    ^ RIt EL6i ; i):a`  Registry related functions.

IDA uses the registry to store global configuration options that must persist after IDA has been closed.
On Windows, IDA uses the Windows registry directly. On Unix systems, the registry is stored in a file (typically ~/.idapro/ida.reg).
The root key for accessing IDA settings in the registry is defined by ROOT_KEY_NAME.
)annotations)version_info.)_ida_registryNc                     R V P                   P                  4       ,           pRV P                  P
                  : RV P                  P                  : RV: R2#   \        P                   d    Rp LPi ; i)z	proxy of  <r   z; z >)this__repr____builtin__	Exception	__class__
__module____name__)selfstrthiss   & DC:\Users\user\Downloads\ida93sp2\portable_win\python\ida_registry.py
_swig_reprr      sg    		 2 2 44 "^^669     s   !A A43A4c                   a  V 3R  lpV# )c                  < VR 8X  d   S! WV4       R# VR8X  d   V P                   P                  V4       R# \        W4      '       d5   \        \	        \        V 4      V4      \        4      '       d   S! WV4       R# \        RV ,          4      h)r	   thisownz(You cannot add instance attributes to %sN)r	   ownhasattr
isinstancegetattrtypepropertyAttributeError)r   namevaluesets   &&&r   set_instance_attrE_swig_setattr_nondynamic_instance_variable.<locals>.set_instance_attr   su    6>E"YIIMM% T  ZT
D0I& &E" !K"       )r    r!   s   f r   *_swig_setattr_nondynamic_instance_variabler%      s    
 r#   c                   a  V 3R  lpV# )c                   < \        W4      '       d+   \        \        W4      \        4      '       g   S! WV4       R# \	        R V ,          4      h)z%You cannot add class attributes to %sN)r   r   r   r   r   )clsr   r   r    s   &&&r   set_class_attr?_swig_setattr_nondynamic_class_variable.<locals>.set_class_attr.   s:    3j1CX&N&N5! !H3!NOOr#   r$   )r    r)   s   f r   '_swig_setattr_nondynamic_class_variabler+   ,   s    P
 r#   c                   a  V 3R lpV# )zlClass decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclassc                p   < S! V P                   V P                  V P                  P                  4       4      # N)r   	__bases____dict__copy)r(   	metaclasss   &r   wrapper$_swig_add_metaclass.<locals>.wrapper9   s'    s}}cll6G6G6IJJr#   r$   )r2   r3   s   f r   _swig_add_metaclassr5   6   s    KNr#   c                  >    ] tR t^>tRt]! ]P                  4      tRtR# )_SwigNonDynamicMetazKMeta class to enforce nondynamic attributes (no new attributes) for a classr$   N)	r   r   __qualname____firstlineno____doc__r+   r   __setattr____static_attributes__r$   r#   r   r7   r7   >   s    U9$:J:JKKr#   r7   )TupleListUnionc               (    V ^8  d   QhRRRRRRRR/# )   r   strsubkey_defreturn'PyObject *'r$   )formats   "r   __annotate__rH   I   s)     = =# =s =s ==r#   c                0    \         P                  ! WV4      # )zlRead a string from the registry. 
        
:param name: value name
:param subkey: key name
:returns: success)r   reg_read_string)r   rC   rD   s   &&&r   rJ   rJ   I   s     ((t<<r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   rB   rC   rE   z'regval_type_t'r$   )rG   s   "r   rH   rH   S   s!     5 5 5S 5 5r#   c                .    \         P                  ! W4      # )zGet data type of a given value. 
        
:param name: value name
:param subkey: key name
:returns: false if the [key+]value doesn't exist)r   reg_data_typer   rC   s   &&r   rM   rM   S   s     &&t44r#   c               $    V ^8  d   QhRRRRRR/# )rA   r   rB   rC   rE   rF   r$   )rG   s   "r   rH   rH   \   s!     7 7# 7s 7< 7r#   c                .    \         P                  ! W4      # )zRead binary data from the registry. 
        
:param name: value name
:param subkey: key name
:returns: false if 'data' is not large enough to hold all data present. in this case 'data' is left untouched.)r   reg_read_binaryrN   s   &&r   rQ   rQ   \   s     ((66r#   c               (    V ^8  d   QhRRRRRRRR/# )rA   r   rB   py_bytesrF   rC   rE   r$   )rG   s   "r   rH   rH   e   s/     B B3 B, B BBr#   c                0    \         P                  ! WV4      # )z\Write binary data to the registry. 
        
:param name: value name
:param subkey: key name)r   reg_write_binary)r   rS   rC   s   &&&r   rU   rU   e   s     ))$&AAr#   c                    V ^8  d   QhRRRR/# rA   r   rB   rE   rF   r$   )rG   s   "r   rH   rH   n   s     2 2S 2L 2r#   c                .    \         P                  ! V 4      # )z#Get all subkey names of given key.
)r   reg_subkey_subkeysr   s   &r   rY   rY   n   s     ++D11r#   c                    V ^8  d   QhRRRR/# rW   r$   )rG   s   "r   rH   rH   t   s     1 1C 1< 1r#   c                .    \         P                  ! V 4      # )z%Get all value names under given key.
)r   reg_subkey_valuesrZ   s   &r   r]   r]   t        **400r#   c                    V ^8  d   QhRRRR/# rA   r   rB   rE   boolr$   )rG   s   "r   rH   rH           1 1C 14 1r#   c                .    \         P                  ! V 4      # )z Delete a key from the registry.
)r   reg_delete_subkeyrZ   s   &r   rd   rd      r^   r#   c                    V ^8  d   QhRRRR/# r`   r$   )rG   s   "r   rH   rH      s     / /# / /r#   c                .    \         P                  ! V 4      # )z$Delete a subtree from the registry.
)r   reg_delete_treerZ   s   &r   rg   rg      s     ((..r#   c               $    V ^8  d   QhRRRRRR/# rA   r   rB   rC   rE   ra   r$   )rG   s   "r   rH   rH      s!     2 2S 2# 2d 2r#   c                .    \         P                  ! W4      # )zoDelete a value from the registry. 
        
:param name: value name
:param subkey: parent key
:returns: success)r   
reg_deleterN   s   &&r   rk   rk      s     ##D11r#   c                    V ^8  d   QhRRRR/# r`   r$   )rG   s   "r   rH   rH      rb   r#   c                .    \         P                  ! V 4      # )z,Is there already a key with the given name?
)r   reg_subkey_existsrZ   s   &r   rn   rn      r^   r#   c               $    V ^8  d   QhRRRRRR/# ri   r$   )rG   s   "r   rH   rH      s!     2 2S 2# 2d 2r#   c                .    \         P                  ! W4      # )ziIs there already a value with the given name? 
        
:param name: value name
:param subkey: parent key)r   
reg_existsrN   s   &&r   rq   rq      s    
 ##D11r#   c                    V ^8  d   QhRRRR/# )rA   rC   rB   rE   	List[str]r$   )rG   s   "r   rH   rH      s     2 2S 2I 2r#   c                .    \         P                  ! V 4      # )zRetrieve all string values associated with the given key.

:param subkey: a key from which to read the list of items
:returns: the list of items)r   reg_read_strlist)rC   s   &r   ru   ru      s    
 ))&11r#   c                    V ^8  d   QhRRRR/# )rA   itemsrs   rC   rB   r$   )rG   s   "r   rH   rH      s     8 8Y 8 8r#   c                8    \         P                  ! \        V4      # )zWrite string values associated with the given key.

:param items: the list of items to write
:param subkey: a key under which to write the list of items)r   reg_write_strlist_in)rw   rC   s   &&r   ry   ry      s    
 **377r#   c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
rA   rC   rB   addzUnion[str, None]maxrecsintrem
ignorecasera   r$   )rG   s   "r   rH   rH      s2     
 
s 
)9 
C 
	
,0
r#   c                2    \         P                  ! WW#V4      # )aT  Add and/or remove items from the list, and possibly trim that list.

:param subkey: the key under which the list is located
:param add: an item to add to the list, or None
:param maxrecs: the maximum number of items the list should hold
:param rem: an item to remove from the list, or None
:param ignorecase: ignore case for 'add' and 'rem')r   reg_update_strlist)rC   r|   r}   r   r   s   &&&&&r   r   r      s     ++F r#   c               (    V ^8  d   QhRRRRRRRR/# )rA   r   rB   utf8rC   rE   Noner$   )rG   s   "r   rH   rH      s(     > >3 >c >3 >t >r#   c                0    \         P                  ! WV4      # )zzWrite a string to the registry. 
        
:param name: value name
:param utf8: utf8-encoded string
:param subkey: key name)r   reg_write_string)r   r   rC   s   &&&r   r   r      s     ))$f==r#   c               (    V ^8  d   QhRRRRRRRR/# )rA   r   rB   defvalr~   rC   rE   r$   )rG   s   "r   rH   rH      s(     < <s <C < <S <r#   c                0    \         P                  ! WV4      # )zRead integer value from the registry. 
        
:param name: value name
:param defval: default value
:param subkey: key name
:returns: the value read from the registry, or 'defval' if the read failed)r   reg_read_intr   r   rC   s   &&&r   r   r      s     %%dF;;r#   c               (    V ^8  d   QhRRRRRRRR/# rA   r   rB   r   r~   rC   rE   r   r$   )rG   s   "r   rH   rH      s(     < < <C < <T <r#   c                0    \         P                  ! WV4      # )z{Write integer value to the registry. 
        
:param name: value name
:param value: value to write
:param subkey: key name)r   reg_write_intr   r   rC   s   &&&r   r   r      s     &&tF;;r#   c               (    V ^8  d   QhRRRRRRRR/# )rA   r   rB   r   ra   rC   rE   r$   )rG   s   "r   rH   rH      s(     = = =T =3 =t =r#   c                0    \         P                  ! WV4      # )zRead boolean value from the registry. 
        
:param name: value name
:param defval: default value
:param subkey: key name
:returns: boolean read from registry, or 'defval' if the read failed)r   reg_read_boolr   s   &&&r   r   r      s     &&tV<<r#   c               (    V ^8  d   QhRRRRRRRR/# r   r$   )rG   s   "r   rH   rH      s(     = = =S =# =d =r#   c                0    \         P                  ! WV4      # )zWrite boolean value to the registry. 
        
:param name: value name
:param value: boolean to write (nonzero = true)
:param subkey: key name)r   reg_write_boolr   s   &&&r   r   r      s     ''V<<r#   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )	rA   rC   rB   r|   r}   r~   r   rE   r   r$   )rG   s   "r   rH   rH      s7     K K3 KS K3 KS KKr#   c                0    \         P                  ! WW#4      # )zbUpdate registry with a file list. Case sensitivity will vary depending on the target OS. 
        )r   reg_update_filestrlist)rC   r|   r}   r   s   &&&&r   r   r      s     //WJJr#   c                    V ^8  d   QhRRRR/# r`   r$   )rG   s   "r   rH   rH     s     1 1C 14 1r#   c                .    \         P                  ! V 4      # r.   )r   set_registry_namerZ   s   &r   r   r     s    **400r#   )NNr.   )NF)6r:   
__future__r   sysr   _swig_python_version_info__package__r   r   r   builtinsr   ImportErrorr   r%   r+   r5   r   r7   weakrefSWIG_PYTHON_LEGACY_BOOLtypingr=   r>   r?   
ida_idaapirJ   rM   rQ   rU   rY   r]   IDA_REGISTRY_NAMEHVUI_REGISTRY_NAMEROOT_KEY_NAMEreg_unknownreg_sz
reg_binary	reg_dwordrd   rg   rk   rn   rq   ru   ry   r   r   r   r   r   r   r   r   r$   r#   r   <module>r      sO   # 9#/"
 L$ L
 '??  % % =57B21 "33 "55 ++''			%%
##	1/21228
><<==K1i  s   E E%$E%