+
        c                        a  R t0 t ^ RIHt ^ RIHt ^RIHt ^RIHtH	t	H
t
Ht ^RIHt ^RIHtHtHt ^RIHtHt ^RIHt ^R	IHt ]! ]4      t] ^ k ]! R
R
R7       ! R R]4      4       tR R lt ! R R]4      tR# )    )defaultdict)	dataclass)MLSDisabled)LevelRangeRoleUser)DiffResultDescriptor)
DifferenceDifferenceResultSymbolWrapper)LevelWrapperRangeWrapperrole_wrapper_factory)SymbolCacheT)frozenorderc                   0   a  ] tR t^t o RtV 3R ltRtV tR# )ModifiedUserz'Difference details for a modified user.c                "  < V ^8  d   Qh/ S[ ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          R,          ;R&   S[S[,          R,          ;R&   S[S[,          R,          ;R&   S[S[,          R,          ;R	&   # )
   useradded_rolesremoved_rolesmatched_rolesNadded_levelremoved_leveladded_rangeremoved_range)r	   setr   r   strr   )format__classdict__s   "9/usr/lib64/python3.14/site-packages/setools/diff/users.py__annotate__ModifiedUser.__annotate__   s     
 J  T  t9  t9  t##  3;%%  t##  3;%%      N)__name__
__module____qualname____firstlineno____doc____annotate_func____static_attributes____classdictcell__r$   s   @r%   r   r      s      2  r(   r   c                F    V ^8  d   QhR\         R\        \         ,          /# )r   r   return)r	   r   )r#   s   "r%   r&   r&   $   s      t d(; r(   c                     \         V P                  ,          V ,          #   \         d+    \        T 4      pT\         T P                  ,          T &   Tu # i ; i)zl
Wrap users from the specified policy.

This caches results to prevent duplicate wrapper
objects in memory.
)_users_cachepolicyKeyErrorr   )r   rs   & r%   user_wrapper_factoryr:   $   sL    DKK(.. $*+T[[!$'s     2AAc                      a  ] tR t^3t o RtV 3R lR lt]],          ! ]4      t]],          ! ]4      t	]]
,          ! ]4      tV 3R lR ltRtV tR# )UsersDifferencez7Determine the difference in users between two policies.c                   < V ^8  d   QhRR/# r   r4   Nr)   )r#   r$   s   "r%   r&   UsersDifference.__annotate__7   s     OH OHD OHr(   c                2   V P                   P                  RV P                   RV P                   24       V P	                  R V P                  P                  4        4       R V P                  P                  4        4       4      w  V n        V n        p\        \        ,          ! 4       V n
        V EF/  w  r#V P	                  R VP                   4       R VP                   4       4      w  rEp \        VP                  4      p\        VP                  4      pVP                  p	VP                  p
 \        VP                  4      p\        VP                  4      pVP                  pVP                  pW{8w  d   TpT	pMRpRpW8w  d   TpT
pMRpRpV'       g   V'       g   V'       g   V'       g   EK  V P                  P#                  \        VVVVVVVV4      4       EK2  	  R#   \          d    RpRpRp	Rp
 Li ; i  \          d    RpRpRpRp Li ; i)	z6Generate the difference in users between the policies.z!Generating user differences from z to c              3   8   "   T F  p\        V4      x  K  	  R # 5iNr:   .0r9   s   & r%   	<genexpr>-UsersDifference.diff_users.<locals>.<genexpr>>   s     G.F!!$$.F   c              3   8   "   T F  p\        V4      x  K  	  R # 5irB   rC   rD   s   & r%   rF   rG   ?   s     H.G!!$$.GrH   c              3   8   "   T F  p\        V4      x  K  	  R # 5irB   r   rD   s   & r%   rF   rG   I   s     B/Q%a((/rH   c              3   8   "   T F  p\        V4      x  K  	  R # 5irB   r   rD   s   & r%   rF   rG   J   s     C2BQ%a((2BrH   NzNone (MLS Disabled))loginfoleft_policyright_policy	_set_diffusersadded_usersremoved_userslistr   modified_usersrolesr   	mls_levelr   	mls_ranger   append)selfmatched_users	left_user
right_userr   r   r   left_level_wrapleft_range_wrap
left_level
left_rangeright_level_wrapright_range_wrapright_levelright_ranger   r   r   r    s   &                  r%   
diff_usersUsersDifference.diff_users7   s    	/0@0@/AdFWFWEXY	[ ?CnnGd.>.>.D.D.FGHd.?.?.E.E.GH?J;$,m #<02%2!I
 9=B)//BC*2B2BC9E5K$	3".y/B/B"C".y/B/B"C&00
&00
	4#/
0D0D#E #/
0D0D#E (22(22 2) *" $2) *" $m}##**<	8C8E8E8C8E8C8E,G Hy &38  3"&"&2
2
	3  4#' #' 33	4s&   /AG'2AH 'G=<G= HHc                   < V ^8  d   QhRR/# r>   r)   )r#   r$   s   "r%   r&   r?      s        T  r(   c                H    V P                   P                  R4       V =V =V =R# )z%Reset diff results on policy changes.zResetting user differencesN)rL   debugrR   rS   rU   )rZ   s   &r%   _reset_diffUsersDifference._reset_diff   s%    34r(   )rR   rU   rS   N)r*   r+   r,   r-   r.   rf   r
   r	   rR   rS   r   rU   rk   r0   r1   r2   s   @r%   r<   r<   3   sP     AOH OHb 't,Z8K(.z:M),7
CN
   r(   r<   c                V    V ^8  d   Qh/ ^ \         9   d   \        \        ,          ;R&   # )r   r6   )__conditional_annotations__r   r	   )r#   s   "r%   r&   r&      s     # # 4 3k$ 3 $r(   N)rn   collectionsr   dataclassesr   	exceptionr   	policyrepr   r   r   r	   descriptorsr
   
differencer   r   r   mlsr   r   rV   r   typingr   dictr6   r   r:   r<   r&   )rn   s   @r%   <module>rx      so    $ # ! # 0 0 - C C + ' "-d"3 3 $d#&# & $&a j a r(   