+
                                a  R t0 t ^ RIHt ^ RIHt ^ RIHt ^RIHt ^RI	H
t
 ^RIHt ^RIHtHt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)suppress)	dataclass)NoCommon)ObjClass)DiffResultDescriptor)
DifferenceDifferenceResultSymbolWrapper)SymbolCacheT)frozenorderc                   0   a  ] tR t^t o RtV 3R ltRtV tR# )ModifiedObjClassz/Difference details for a modified object class.c                z   < V ^8  d   Qh/ S[ ;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   # )   class_added_permsremoved_permsmatched_perms)r   setstr)format__classdict__s   "</usr/lib64/python3.14/site-packages/setools/diff/objclass.py__annotate__ModifiedObjClass.__annotate__   sE     
   S  s8  s8      N)__name__
__module____qualname____firstlineno____doc____annotate_func____static_attributes____classdictcell__r   s   @r   r   r      s      :  r   r   c                F    V ^8  d   QhR\         R\        \         ,          /# )r   r   return)r   r   )r   s   "r   r   r      s      ( }X/F r   c                     \         V P                  ,          V ,          #   \         d+    \        T 4      pT\         T P                  ,          T &   Tu # i ; i)zl
Wrap class from the specified policy.

This caches results to prevent duplicate wrapper
objects in memory.
)_class_cachepolicyKeyErrorr   )r   cs   & r   class_wrapper_factoryr0      sL    FMM*622 &!./V]]#F+s     2AAc                      a  ] tR t^/t 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# )ObjClassDifferencezB
Determine the difference in object classes
between two policies.
c                   < V ^8  d   QhRR/# r   r*   Nr   )r   r   s   "r   r   ObjClassDifference.__annotate__6   s      N  Nd  Nr   c           	        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 F  w  r#VP                  p\        \        4      ;_uu_ 4        WBP                  P                  ,          pRRR4       VP                  p\        \        4      ;_uu_ 4        WSP                  P                  ,          pRRR4       V P	                  VVRR7      w  rgpV'       g   V'       g   K  V P                  P                  \        VVVV4      4       K  	  R#   + '       g   i     L; i  + '       g   i     Ly; i)z?Generate the difference in object classes between the policies.z"Generating class differences from z to c              3   8   "   T F  p\        V4      x  K  	  R # 5iNr   .0r/   s   & r   	<genexpr>2ObjClassDifference.diff_classes.<locals>.<genexpr>=   s     B'A!]1'A   c              3   8   "   T F  p\        V4      x  K  	  R # 5ir8   r9   r:   s   & r   r<   r=   >   s     C'B!]1'Br>   NF)unwrap)loginfoleft_policyright_policy	_set_diffclassesadded_classesremoved_classeslistr   modified_classespermsr   r   commonappend)	selfmatched_classes
left_classright_class
left_permsright_permsr   r   r   s	   &        r   diff_classesObjClassDifference.diff_classes6   sl    	01A1A0B$tGXGXFYZ	\ EINNBt'7'7'?'?'ABCt'8'8'@'@'BCEEAD0/ !%%5 6 8'6#J $))J(##//555
 $ &++K(##11777 $ 9=zGRNS 9G 9U5K mm%%,,-=j>I>K>K.M N# (7
 $# $#s   F!F/F,/F?c                   < V ^8  d   QhRR/# r4   r   )r   r   s   "r   r   r5   _   s     " "T "r   c                H    V P                   P                  R4       V =V =V =R# )z%Reset diff results on policy changes.z"Resetting object class differencesN)rA   debugrG   rH   rJ   )rN   s   &r   _reset_diffObjClassDifference._reset_diff_   s%    ;< !r   )rG   rJ   rH   N)r    r!   r"   r#   r$   rT   r   r   rG   rH   r   rJ   rY   r&   r'   r(   s   @r   r2   r2   /   sR     
 N  ND )2<@M*84\BO+,<=lK
" "r   r2   c                V    V ^8  d   Qh/ ^ \         9   d   \        \        ,          ;R&   # )r   r,   )__conditional_annotations__r   r   )r   s   "r   r   r      s     # # 8 7k(# 7 $r   N)r\   collectionsr   
contextlibr   dataclassesr   	exceptionr   	policyrepr   descriptorsr   
differencer	   r
   r   typingr   dictr,   r   r0   r2   r   )r\   s   @r   <module>rf      sg    $ #  !     - C C &1$&7 7 $d#'  $ 5" 5"r   