
    5iD              	          d dl Z d dlmZ d Zd Zd Zd Zg dZeD ]BZ edez              e	ed                    5 Z
e
                    d	            e j        e
          Zddd           n# 1 swxY w Y    ed
            e	ed                   5 Z
 e j        e
          Zddd           n# 1 swxY w Y   dddiiZ eed                   Z ee          Zed         D ]sZe                    d           ed         D ]SZed         ed         k    r? eed         ee          D ]+\  ZZZeev reee         v r eed         de           ,TtDdS )    N)tqdmc                     | D ]o}t          |t                    st          d| d           +|D ](}|d         |d         k    r|d         |d         k    r n)t          d|d          d           pd S )NTYPE_MISSMATCH not a dictGUID
IsEnforcedMISSING_LINK
 not in l2
isinstancedictprintl1l2entryces       N/home/kali/Ninja/venv/lib/python3.11/site-packages/msldap/examples/jsontest.pycompare_linksr      s     D D%&& 	D"u$9$9$9:::: D Df:v..2l3Cu\GZ3Z3ZEnv&B&B&BCCCD D    c                 2   | D ]}t          |t                    st          d| d           +|D ]L}|d         |d         k    r8|d         |d         k    r&|d         |d         k    r|d         |d         k    r nMt          d|d          d           d S )	Nr   r   PrincipalSIDPrincipalType	RightNameIsInheritedMISSING_ACEr
   r   r   s       r   compare_acesr      s    	K 	K%&& 	K"u$9$9$9:::: K Kn%~)>>>2oCVZ_`oZpCpCpuw  yD  vE  IN  OZ  I[  v[  v[  `b  cp  `q  uz  {H  uI  `I  `IEmn(=%I%I%IJJJ	K 	Kr   c                     |D ]u}t          |t                    st          d| z  | d           .|D ](}|d         |d         k    r|d         |d         k    r n)t          d| z  |d          d           vd S )NzTYPE_MISSMATCH %sr   ObjectIdentifier
ObjectTypez
MISSING_%sr
   r   )ctyper   r   r   r   s        r   compare_objlistr"      s     	V 	V%&& 	V%-%/D/D/DEEEE V V()U3E-FFF2lK[_deq_rKrKrElU*u5G/H,T,T,TUUU	V 	Vr   c              #     K   |D ]v}||vr
d|| dfV  t          ||         t          t          t          t          f          r>||vrd|d| dfV  n.||         ||         k    rd|d| d||          d||          fV  t          ||         t
                    rh||vrd|d| dfV  nWt          ||         t
                    r t          ||                   t          ||                   k    rd|d| d| d	| d
fV  |dk    rt          ||         ||                    n|dk    rt          ||         ||                    n|dv rt          |||         ||                    nt          ||                   D ]d\  }}|t          ||                   k    rdd| d| dd| d| dfV  4|D ]-}|||         |         vrdd| d| d| dd| d| d| dfV  .end|| d||          d||          fV  t          ||         t                    rZ||vrd|d| dfV  -t          ||         t                    r$t          | d|||         ||                    ld|| dfV  xd S )NMISSING_PARAMz not in dict'z' not in dictNOT_EQz' value not equal in dict. D1: z D2: z#' length not equal in dict. D1: d1[z	] D2: d2[]LinksAces)ChildObjectsMembers[z]'z]' not in dictz][TYPE_MISMATCHz not a list in dict. D1:  -> z not a dict in dict)r   strintfloatboollistlenr   r   r"   	enumerater   compare_dict)labeld1d2kiitemk2s          r   r6   r6   (   s      ,J ,JB;;"1&8&8&89999bec3t455 	c{{&+?q+?+?+?@@@@@ a5BqE>>#Q(aA(a(abQRe(a(aZ\]^Z_(a(abbbb beT"" 	c{{&+?q+?+?+?@@@@@ beT** c2a5zzSAZZ//',f,f,fVW,f,fbc,f,f,fggggG||%beRU3333f$RUBqE2222999'"Q%A7777'0A'7'7 v vGAt C1JJ'6AG`1G`G`qG`G`G`&a a a a a*. !v !vB')Aq'9'9/>@SA@S@S@S@SR@S@S@SUtYZUtUt]^UtUtbdUtUtUt.u(u(u(u!v	v +A!/a/abQRe/a/aZ\]^Z_/a/abbbbbeT"" 	J{{&+?q+?+?+?@@@@@beT** J uuuaa!8"Q%AGGGG*A!/H/H/HIIIIY,J ,Jr   ))z4/home/webdev/Desktop/comparer/good/good_domains.jsonz1/home/webdev/Desktop/projects/msldap/domains.json)z3/home/webdev/Desktop/comparer/good/good_groups.jsonz0/home/webdev/Desktop/projects/msldap/groups.json)z6/home/webdev/Desktop/comparer/good/good_computers.jsonz3/home/webdev/Desktop/projects/msldap/computers.json)z7/home/webdev/Desktop/comparer/good/good_containers.jsonz4/home/webdev/Desktop/projects/msldap/containers.json)z1/home/webdev/Desktop/comparer/good/good_gpos.jsonz./home/webdev/Desktop/projects/msldap/gpos.json)z0/home/webdev/Desktop/comparer/good/good_ous.jsonz-/home/webdev/Desktop/projects/msldap/ous.jsonzComparing %s to %s   zLoading test file...   r&   whencreateddata)totalr   r.   )jsonr   r   r   r"   r6   filelist	filetupler   openfseekloadjson2json1bypass_diffr4   rB   pbarguserupdateuser	diff_type
param_namedesc r   r   <module>rU      s         	D 	D 	D
K 
K 
K
V 
V 
V.J .J .Jb    I II	E

*+++	il		 q	q				!               
E
 !!!	il		 q	!               	1
K CfE4eDv 
I 
IA&M 	I 	ID&'51C+DDD 4@<FX@Y[`bf3g3g I I/Iz4 K//%Y)???$E-?(@(@(@$$GHHHH	I
I%I Is#   &A11A5	8A5	B55B9	<B9	