
    [
#g
                         d Z ddlmZmZ ddlmZ  G d de      Z G d de      Z G d d	e	      Z
 G d
 de	      Zd Zd Zd Zd Zy)a6  The official list of format hints that text renderers and plugins can rely
upon existing within the framework.

These hints allow a plugin to indicate how they would like data from a particular column to be represented.

Text renderers should attempt to honour all hints provided in this module where possible
    )TypeUnion)
interfacesc                       e Zd ZdZy)BinzWA class to indicate that the integer value should be represented as a
    binary value.N__name__
__module____qualname____doc__     ^/home/panchajanya/Development/work/volatility3/volatility3/framework/renderers/format_hints.pyr   r      s    r   r   c                       e Zd ZdZy)Hexz\A class to indicate that the integer value should be represented as a
    hexadecimal value.Nr   r   r   r   r   r      s    r   r   c                       e Zd ZdZy)HexByteszA class to indicate that the bytes should be display in an extended
    format showing hexadecimal and ascii printable display.Nr   r   r   r   r   r      s    ?r   r   c                        e Zd ZdZ	 	 	 dded    deeef   dede	de	dd f fdZ
	 	 	 ddedede	de	dd	f
d
Z fdZ xZS )MultiTypeDatazFThe contents are supposed to be a string, but may contain binary data.clsoriginalencodingsplit_nullsshow_hexreturnc                 ~    t        |t              rt        |      j                  |      }n|}t        |   | |      S N)
isinstanceintstrencodesuper__new__)r   r   r   r   r   data	__class__s         r   r#   zMultiTypeData.__new__"   s9     h$x=''1DDwsD))r   Nc                     d| _         t        |t              rd| _         || _        || _        || _        t        j                  |       y )NFT)converted_intr   r   r   r   r   bytes__init__)selfr   r   r   r   s        r   r)   zMultiTypeData.__init__/   s@     $)h$!%D & x r   c                 N   t        || j                        xr t               t        | j                  |      k(  xrj | j                  |j                  k(  xrO | j                  |j                  k(  xr4 | j
                  |j
                  k(  xr | j                  |j                  k(  S r   )r   r%   r"   r'   r   r   r   )r*   otherr%   s     r   __eq__zMultiTypeData.__eq__>   s    udnn- 05770""e&9&990 /0   E$5$55	0
 /	
r   )z	utf-16-leFF)r	   r
   r   r   r   r   r   r(   r    boolr#   r)   r-   __classcell__)r%   s   @r   r   r      s    P
 $!*/"*U
#* * 	*
 * 
*  $!!! ! 	!
 ! 
!
 
r   r   c                 d    t        | t        j                  j                        st	        |       S | S r   )r   r   	renderersBaseAbsentValuer   xs    r   <lambda>r5   I   &    Q
 4 4 D DECFL1Lr   c                 d    t        | t        j                  j                        st	        |       S | S r   )r   r   r1   r2   r   r3   s    r   r5   r5   L   r6   r   c                 d    t        | t        j                  j                        st	        |       S | S r   )r   r   r1   r2   r   r3   s    r   r5   r5   O   s'    !!Z%9%9%I%IJHQKQPQQr   c                 d    t        | t        j                  j                        st	        |       S | S r   )r   r   r1   r2   r   r3   s    r   r5   r5   R   s(    &q**>*>*N*NOM!VUVVr   N)r   typingr   r   volatility3.frameworkr   r   r   r   r(   r   r   BinOrAbsentHexOrAbsentHexBytesOrAbsentMultiTypeDataOrAbsentr   r   r   <module>r@      sa     ,# 
# 
?u ?
'
E '
T  r   