
    _$e9                     P    d Z d ZddZd Zd ZddZddZd Zdd	Zdd
Z	d Z
dS )z@Network Data Representation (NDR) marshalling and unmarshalling.c                 `    t          | dd          }|t          d| z             |            S )zmPack a NDR object.

    :param object: Object to pack
    :return: String object with marshalled object.
    __ndr_pack__N%r is not a NDR objectgetattr	TypeError)objectndr_packs     +/usr/lib/python3/dist-packages/samba/ndr.pyr	   r	      s;     v~t44H069:::8::    Fc                 ~     |             }t          |dd          }|t          d|z             |||           |S )zNDR unpack an object.

    :param cls: Class of the object to unpack
    :param data: Buffer to unpack
    :param allow_remaining: allows remaining data at the end (default=False)
    :return: Unpacked object
    __ndr_unpack__Nr   allow_remainingr   )clsdatar   r   
ndr_unpacks        r
   r   r   $   sU     SUUF!1488J069:::Jt_5555Mr   c                 `    t          | dd           }|t          d| z             |            S )N__ndr_print__r   r   )r   	ndr_prints     r
   r   r   4   s9    66I069:::9;;r   c                     t          | dd          }|t          d| z             |            }t          |           } |            }t          |dd          }|t          d|z             ||d           |S )zzCreate a deep copy of a NDR object, using pack/unpack

    :param object: Object to copy
    :return: The object copy
    r   Nr   r   Fr   )r   r   type)r   r	   r   r   copyr   s         r
   ndr_deepcopyr   ;   s     v~t44H069:::8::D
v,,C355D/66J047888JtU++++Kr   c                 f    t          | dd          }|t          d| z             |||          S )zPack the input of an NDR function object.

    :param object: Object to pack
    :param bigendian: use LIBNDR_FLAG_BIGENDIAN (default=False)
    :param ndr64: use LIBNDR_FLAG_NDR64 (default=False)
    :return: String object with marshalled object.
    __ndr_pack_in__N%r is not a NDR function object	bigendianndr64r   )r   r   r   ndr_pack_in_fns       r
   ndr_pack_inr!   N   sE     V%6==N9FBCCC>IU;;;;r   c                 n    t          | dd          }|t          d| z             |||||           | S )ac  Unpack the input of an NDR function object.

    :param cls: Class of the object to unpack
    :param data: Buffer to unpack
    :param bigendian: use LIBNDR_FLAG_BIGENDIAN (default=False)
    :param ndr64: use LIBNDR_FLAG_NDR64 (default=False)
    :param allow_remaining: allows remaining data at the end (default=False)
    :return: Unpacked object
    __ndr_unpack_in__Nr   r   r   r   r   )r   r   r   r   r   ndr_unpack_in_fns         r
   ndr_unpack_inr&   \   sY     v':DAA9FBCCCTYe%46 6 6 6Mr   c                 `    t          | dd           }|t          d| z             |            S )N__ndr_print_in__r   r   )r   ndr_print_in_fns     r
   ndr_print_inr*   n   s<    f&8$??O9FBCCC?r   c                 f    t          | dd          }|t          d| z             |||          S )zPack the output of an NDR function object.

    :param object: Object to pack
    :param bigendian: use LIBNDR_FLAG_BIGENDIAN (default=False)
    :param ndr64: use LIBNDR_FLAG_NDR64 (default=False)
    :return: String object with marshalled object.
    __ndr_pack_out__Nr   r   r   )r   r   r   ndr_pack_out_fns       r
   ndr_pack_outr.   u   sE     f&8$??O9FBCCC?Ye<<<<r   c                 n    t          | dd          }|t          d| z             |||||           | S )ad  Unpack the output of an NDR function object.

    :param cls: Class of the object to unpack
    :param data: Buffer to unpack
    :param bigendian: use LIBNDR_FLAG_BIGENDIAN (default=False)
    :param ndr64: use LIBNDR_FLAG_NDR64 (default=False)
    :param allow_remaining: allows remaining data at the end (default=False)
    :return: Unpacked object
    __ndr_unpack_out__Nr   r$   r   )r   r   r   r   r   ndr_unpack_out_fns         r
   ndr_unpack_outr2      sY      (<dCC 9FBCCCdiu&57 7 7 7Mr   c                 `    t          | dd           }|t          d| z             |            S )N__ndr_print_out__r   r   )r   ndr_print_out_fns     r
   ndr_print_outr6      s>    v':DAA9FBCCCr   N)F)FF)FFF)__doc__r	   r   r   r   r!   r&   r*   r.   r2   r6    r   r
   <module>r9      s   * G F	 	 	        &< < < <   $  = = = =   $    r   