+
    ,i  c                   s   a  R
 t0 t ^ RIt^ RIt^ RIt^ RIHtHt ^ RIt^RIHtH	t	 ^RI
Ht ^RIHtHt ^RIHt Rt] ^ k  ! R R	4      tR# )i    N)datetimetimezone)InvalidCheckerConfigInvalidCheckerModule)SELinuxPolicy)CHECKER_REGISTRYCheckerModule)CHECK_TYPE_KEYz;---------------------------------------------------------

c                   s   a  ] tR t^t o RtV 3R lR lt]V 3R lR l4       t]P                  V 3R lR l4       t]	P                  3V 3R lR	 lltR
tV tR# )PolicyCheckerz;Configuration file-driven automated policy analysis checks.c                s*   < V ^8  d   QhRS[ RS[RR/# )   policy
configpathreturnN)r   strformat__classdict__   ">/usr/lib64/python3.14/site-packages/setools/checker/checker.py__annotate__PolicyChecker.__annotate__   s"     ! !} !# !$ !    c                sj    \         P                  ! \        4      V n        Wn        . V n        W n        R # N)loggingZ	getLogger__name__logr
   checksconfig)selfr
   r   s   &&&r   __init__ZPolicyChecker.__init__   s'     $$X.+- r   c                s    < V ^8  d   QhRS[ /# )r	   r   r   r   r   r   r   r   #   s          r   c                s    V P                   # r   )_configpath)r   s   &r   r   PolicyChecker.config"   s    r   c                s$   < V ^8  d   QhRS[ RR/# )r	   r   r   Nr   r   r   r   r   r   '   s     % % % %r   c                s   V P                   P                  R V R24        \        VRRR7      ;_uu_ 4       p\        P                  ! 4       pVP                  W!R7       RRR4       T P                   P                  R	4       . pXP                  4        FZ  w  rgT\        P                  8X  d   K   T\        ,          p \        T,          ! T P                  Yg4      p	TP                  T	4       K\  	  T'       g   \        RT R24      hT P                   P!                  R\#        T P$                  4       R24       T P                   P                  RT R24       Yn        YPn        Y0n        R#   + '       g   i     EL; i  \         d   p\        RT RT 24      ThRp?ii ; i  \         d   p\        T R
\         R24      ThRp?ii ; i  \         d   p\        T RT 24      ThRp?ii ; i)zOpening policy checker config .Zrzutf-8)Zencoding)ZsourceNzUnable to parse checker config : z"Validating configuration settings.z
: Missing z option.z: Unknown policy check type: zNo checks found in z
Validated  checks.z*Successfully opened policy checker config )r   infoZopenconfigparserZConfigParserZ	read_file	Exceptionr   ZitemsZDEFAULTSECTr   ZKeyErrorr   r   r
   appenddebuglenr   r   _config)
r   r   Zfdr   er   	checknameZcheckconfig
check_typeZnewchecks
   &&        r   r   r    &   s   6zl!DE	cj#88B%224   7 9 	:;&,lln"IL444d(8
T+J7Y\
 MM(#! '5$ &)<ZL'JKKC$4#5X>?B:,aPQ%E 988  	c&)HTVWXVY'Z[abb	c  d*i[
>BRRZ+[\bccd
  T* k!>zlKMRSTTsd   F (E.F 1F'?G.E?	9F ?F F$FF$'G2GGG1G,,G1c                s:   < V ^8  d   QhRS[ P                  RS[/# )r	   outputr   )typingZTextIOZintr   r   r   r   r   N   s     7 7&-- 7 7r   c                s   ^ pVP                  \        4       VP                  RV P                   R24       VP                  RV P                   R24       VP                  R\        P
                  ! \        P                  4       R24       . pV P                   EF  p^ p VP                  \        4       VP                  RVP                   R24       VP                  '       d    VP                  RVP                   R24       VP                  '       d   VP                  RVP                   R24       VP                  VP                  R	VP                   R
234       V P                  P                  RVP                   RVP                   24       K  V P                  P                  RVP                   RVP                   R24       Wn        V\#        VP%                  4       4      ,          pVP                  R4       V'       d4   VP                  R4       VP                  VP                  RV R234       M.VP                  R4       VP                  VP                  R34       W%,          pEK  	  VP                  \        4       VP                  R4       V F  w  rxVP                  VR RV R24       K  	  VP                  RV R24       VP                  RV P                   R24       VP                  RV P                   R24       VP                  R\        P
                  ! \        P                  4       R24       V P                  P)                  V R\#        V P                  4       R 24       V#   \&         dG   pTP                  RT R24       T P                  P                  RTR7       T^,          p Rp?ELRp?ii ; i)!zCRun all configured checks and print report to the file-like output.zPolicy check configuration: Z
zPolicy being checked: zStart time: z

zCheck name: zDescription: zCheck DISABLED.  Reason: z
DISABLED (Z)zSkipping disabled check r"   zRunning check z, type r!   zUnexpected error: z.  Failing check.

zException info)Zexc_infoNzCheck FAILED

zFAILED (z
 failures)zCheck PASSED

ZPASSEDzResult Summary:

z<39Z z failure(s) found.

z
End time: z failures found in r#   )ZwriteSECTION_SEPr   r
   r    Znowr   Zutcr   r,   ZdescZdisabler'   r   r(   r-   r.   r)   runr&   r$   )	r   r.   ZfailuresZresult_summaryZcheckZcheck_failuresr+   r,   Zresults	   &&       r   r1   ZPolicyChecker.runN   s!    	[!3DKK=CD-dkk]"=>|HLL$>#?tDE[[EN$[)|EOO+<DAB:::LL=D!AB===LL#<U]]O4!PQ"))5??jWX<Y*Z[HHNN%=eoo=NbQVQ^Q^P_#`a/@HXHXGYYZ[\%#eiik"22T" /0%%u(>BRR\8]&^_/0%%u&AB&H? !B 	[!*+!/ILLIc?!F8267 "0 	r(#9:;3DKK=CD-dkk]"=>z(,,x||"<!=R@A
"5c$++6F5GxPQ1  $1!4IJK/!<!#$s'   "A6NA?NA-NO;OO)r*   r   r   r   r   r
   N)r   Z
__module__Z__qualname__Z__firstlineno__Z__doc__r   Zpropertyr   ZsettersysZstdoutr1   Z__static_attributes__Z__classdictcell__)r      @r   r   r      sW     E! !     ]]% %N +.** 7 7 7r   r   c                sj    V ^8  d   Qh/ ^ \         9   d   \        P                  \        ,          ;R&   # )r	   r0   )__conditional_annotations__r/   ZFinalr   )r   s   "r   r   r      s"    

 a `V\\# ` r   )r4   r2   r%   r   r    r   r/   Z	exceptionr   r   Z	policyrepr   Zcheckermoduler   r   Z
globalkeysr   r0   r   r   )r4   r3   r   <module>r5      s<    
   '  B % : & "a `o or   