
    b                     &   d dl Z d Z e j        d          Zd Zd Zd Zd Zd Ze	d	k    rdd dl
Z
	 e
j        d
         Zn;# e$ r3  ede
j        d          z  e
j                    e
j        d
           Y nw xY w e ee                     dS dS )    Nc                     |}	 |                                  }|dd         dk    r|dk    r|dk    sJ ||z   }n|dk    r
|}|dk    rnn|}nJ||fS )z+Read a line from an LDIF file, unfolding itTN     
)readline)fbufferlinels       =/usr/lib/python3/dist-packages/samba/ms_display_specifiers.py__read_folded_liner      s    DJJLLRaR5C<< 2::$$,,,, !8DD rzz77  14 &>    z^([A-Za-z][A-Za-z0-9-]*):c              #     K   d}	 g }	 t          | |          \  }}|dd         dk    r#|dk    s|dk    rn~t                              |          }|r.|dd         dk    r
|dd         }|                    |           n3t	          d|z  d	t
          j        
           t          j        d           t          |          r|V  |dk    rdS )z(Read an LDIF entry, only unfolding linesr   TNr   #r   zInvalid line: %sr   )endfile)	r   attr_type_rematchappendprintsysstderrexitlen)r	   r
   entryr   ms        r   __read_raw_entriesr   >   s       F	,Q77KQ!u||DyyAGG""1%%A RSS6T>>#2#AQ(1,#CJGGGG%	( u:: 	KKK77E7r   c                     |                      d          dk    r,|                     dd          } |                     dd          S | S )z"Fix a string DN to use ${CONFIGDN}z%<Configuration NC Distinguished Name>r   z
 r   z${CONFIGDN})findreplace)dns    r   fix_dnr$   a   sI     
ww6772==ZZr""zzA=QQQ	r   c                     g }| D ][}|d         dk    r'|                     |d         d|d                    5|                     |d         d|d                    \d                    |          S )zWrite out entry as LDIF   r   : r   :: r   )r   join)r   outr   s      r   __write_ldif_oner+   k   s    
C 1 1Q4199JJ1Q4441.//// JJAaDDD!A$$/000099S>>r   c                 z   g }| D ]2}g }|                     d          dk    r,|                    dd          }|                    d           n+|                    dd          }|                    d           |d                                         }|dk    r|dk    r|d	k    r|d
k    r|dk    r|dk    r|dk    rF|d                                                                                                         }|dk    rt          |d                   |d<   |                    |           4|} | S )z?Perform required transformations to the Microsoft-provided LDIFz::r   r(   r   r'   r   
changetypedistinguishednameinstancetypenamecnobjectcategoryshowinadvancedviewonlyTRUE)r!   splitr   lowerupperlstriprstripr$   )r   
temp_entryr   tkeyvalues         r   __transform_entryr>   y   sR    J ( (66$<<2q!!AHHQKKKKa  AHHQKKKdjjll,%%%.  &==$;;"""***aDJJLL''))0022E ad||!!ELr   c                     g }ddl m}  || dd          }t          |          D ]1}|                    t	          t          |                               2d                    |          dz   S )z0Read and transform Microsoft-provided LDIF file.r   )openrzlatin-1)encodingz

)ior@   r   r   r+   r>   r)   )filenamer*   r@   r	   r   s        r   read_ms_ldifrE      s     CXsY///A#A&& ? ?

#$5e$<$<==>>>>;;sf$$r   __main__r   z*Usage: %s display-specifiers-ldif-file.txt)r   )rer   compiler   r   r$   r+   r>   rE   __name__r   argvdisplay_specifiers_file
IndexErrorr   r   r    r   r   <module>rN      s)  * 
			  F rz566     F    1 1 1h
% 
% 
% zJJJ"%(1+   :chqkJQTQ[\\\\ 
E,,.
/
/00000 s   A   5A87A8