
    Nj_                       d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	m
Z
 ddlmZ  e
e      j                  Zej                  dz  Z e
d      Zedz  Zd	Zd
ZddZddZddZddZddZddZedk(  r e e             y)z<Independent read-only verifier for sealed Task26 cleanup v4.    )annotationsN)Path)Anyz5task26-post-lifecycle-cleanup-v3-4a6c7ee5-st_01a00e50z)/home/cube/.hermes/profiles/dualcoachtestzEdata/post-lifecycle-cleanup-archives/task26-current-4a6c7ee5-20260817@9f5d72840b4cc1fcb57720a61ebc53529fa00202d9201615e4ebdbb3e047a635@84d937ef67c1517bfdbca4cabce9fb4bfbe39aa1165458bb3aedd14decc4bff0c                T    t        j                  | dd      dz   j                         S )NT,:	sort_keys
separators
)jsondumpsencode)values    `.omo/evidence/task26/task26-post-lifecycle-cleanup-v4-4a6c7ee5-st_01a00e68/independent_verify.pycanonr      s#    JJuDtKSSUU    c                H    t        j                  |       j                         S N)hashlibsha256	hexdigest)raws    r   shar      s    >>#((**r   c                    | st        |      y r   )RuntimeError)	conditionmessages     r   checkr"      s    7## r   c                   g }t        j                  | d      D ]  \  }}}|j                          |j                          |D ]  }t        |      |z  }|j	                         }t        t        j                  |j                        d|        |j                  |j                  |       j                         dt        j                  |j                        dd        |D ]  }t        |      |z  }|j	                         }t        t        j                  |j                        d|        |j                  |j                  |       j                         dt        j                  |j                        dt        |j                               d	         t        t!        |            t#        |      fS )
NF)followlinkszunsafe archive directory: D04o)pathtypemodezunsafe archive entry: F)r'   r(   r)   r   )oswalksortr   lstatr"   statS_ISDIRst_modeappendrelative_toas_posixS_IMODES_ISREGr   
read_bytesr   len)rootrowsbasedirsfilesnamer'   sts           r   	inventoryr@   $   s   !#DWWTu==dE		

D:$DB$,,rzz*.H,OPKK!1!1$!7!@!@!BC\`\h\hikisis\tux[y{|	 
 D:$DB$,,rzz*.DTF,KLKK!1!1$!7!@!@!BC\`\h\hikisis\tux[y  GJ  KO  KZ  KZ  K\  G]  ^  _	  > uT{SY&&r   c                    t        j                  t        dz  j                               } g }t        j                  |       D ]  t        t         j                        st        j                  t         j                        sCt        j                  j                  t         j                        srj                  j                  j                  dk(  sj                  j                  dk(  st        fdt        j                  |       D        d      }|j                  |        t        |dgk(  d|        y )Ncleanup_controller.pyr+   writec              3     K   | ]S  }t        |t        j                  t        j                  f      s.t        j                  |      v sF|j
                   U y wr   )
isinstanceastFunctionDefAsyncFunctionDefr,   r>   ).0itemnodes     r   	<genexpr>z'verify_write_surface.<locals>.<genexpr>;   sf       X*TTWTcTceheyeySzB{  AE  IL  IQ  IQ  RV  IW  AW$))s   /AAAmodule	write_allz unexpected os.write call sites: )rF   parseROOT	read_textr,   rE   Callfunc	Attributer   Nameidattrnextr2   r"   )treedirectownerrK   s      @r   verify_write_surfacer\   6   s3   99d44??ABDFdCHH%*TYY*NS]^b^g^g^m^morowowSx  ~B  ~G  ~G  ~M  ~M  ~P  ~P  TX  ~X  ]a  ]f  ]f  ]k  ]k  ov  ]v  X  X  Zb  cEMM%   
&[M
!%EfX#NOr   c                    t         dz  j                         } t        j                  |       }t        j                  t         dz  j	                               }|d   }t        |d   dk(  d       t        |d   d   d	k(  d
       t        |d   d   dk(  d       t        |d   du xr& |d   t        t         dz  j                               k(  d       t        |d   t        |       k(  d       t        t        t        dz  j                               t        cxk(  xr |d   k(  nc d       t        t        t        dz  j                               |d   k(  d       t        t        t        dz  j                               |d   k(  d       t        t              \  }}t        |t        cxk(  xr |d   k(  nc d       t        dz  j                         }t        j                  |      }t        t        |      |d    k(  d!       |j                  d"      }t        |t        t        |            k(  d#       ||d"<   |d$   D ]S  }	t        d%z  |	d&   z  j                         }
t        t        |
      |	d'   k(  xr t        |
      |	d(   k(  d)|	d&           U t        t        t        d*z  j                               |d+   k(  d,       t        t        t        d-z  j                               |d.   k(  d/       d0D ]'  }t        t        |z  j!                          d1|        ) t#        j$                  d2d3d4|d5   d6   d7gd8d8d89      }t'        d: |j(                  j+                         D              }t        |d;d<d=d>k(  d?       t-                d@dA||t        |      t        |d   d   |d   d   dBt        |d$         z   d8d8dd8d8dC}t/        t        j0                  |d8dDE             yF)GNzschema-contract-v4.jsonzpermission-seal-v4.jsoncompleted_cleanupschemaz)task26-post-lifecycle-cleanup-contract-v4zcontract schemabindingscandidate_digest@4a6c7ee54cf9526a30de8bb576c1d71b411938beba33a04914738f6e1b6ed1cb	candidatelifecycle_seal_sha256@50e7556e58a876d8136fbfb2023ede8bcb46ac816d97d4b85e1d0559f463d008zlifecycle sealexecute_allowed_onceFcontroller_sha256rB   zverification-only permissioncontract_sha256zpermission contract bindingz	SEAL.jsonv3_seal_sha256zv3 sealzinventory.jsonv3_inventory_sha256zv3 inventoryv3_controller_sha256zv3 controllerarchive_root_sha256zarchive rootzmanifest.jsonarchive_manifest_sha256zmanifest bindingevidence_digestzmanifest evidence sealentriespayloadr'   sizer   z	payload: zpoststate.jsonpoststate_sha256zpoststate bindingzconfig.yamlcurrent_config_sha256zcurrent config)
	customerszdata/customerszdata/onboardingzdata/owner-actionszgateway.lockzgateway.pidzgateway_state.jsonzstate.dbzstate.db-shmzstate.db-walzlive residue: z/usr/bin/systemctlz--usershowservicer>   z'--property=ActiveState,SubState,MainPIDT)capture_outputtextr"   c              3  J   K   | ]  }d |v s|j                  d d        yw)=   N)split)rI   lines     r   rL   zmain.<locals>.<genexpr>]   s%     Z2J$cUYk4::c1%2Js   	##0inactivedead)MainPIDActiveStateSubStatezservice statez1task26-post-lifecycle-independent-verification-v4PASS   )r_   statusrl   archive_entriesrm   ri   ra   rd   checkswrite_all_onlyclean_baselinecleanup_replayeddelivery_history_preservedactive_history_preservedr	   r   r   )rP   r7   r   loadsrQ   r"   r   V3EXPECTED_V3_SEALr@   ARCHIVEEXPECTED_ARCHIVE_ROOTpopr   r8   PROFILEexists
subprocessrundictstdout
splitlinesr\   printr   )contract_rawcontract
permission	completedarchive_rootr   manifest_rawmanifestclaimedrowr   relru   rv   results                  r   mainr   @   s   44@@BLzz,'HT$==HHJKJ,-I	(8
 K
KM^_	(:
1
26x
x  {F  G	(:
6
7;}
}  @P  Q	*+
,
5  P*EX:Y]`bf  jA  cA  bM  bM  bO  ^P  ;P  Rp  q	*&
'3|+<
<>[\	#rK++-
.2B
aiP`Fa
aclm	#r$$002
3yAV7W
WYgh	#r++779
:iH^>_
_apq$-g$6!L/	,/
S9=R3S
SUcdo-99;Lzz,'H	#l
y)BC
CEWXll,-G	'Sx)
)+CD")H	""S[0<<>c#h#f+%C#c(c(m*CyQTU[Q\P]E^_ # 
#w))557
8IFX<Y
Y[no	#w&224
5CZ9[
[]mn y7S=((**nSE,BC y>>/68ICVW]C^  aJ  K  \`  gk  sw  xDZ$++2H2H2JZZG	'ZVT
TVefKW]  wC  Xg  DG  HT  DU  iy  OW  Xb  Oc  dv  Ow  RZ  [e  Rf  g~  R  KM  PS  T\  ]f  Tg  Ph  Kh  |@  TX  ns  SW  uy  zF	$**Vt

CDr   __main__)r   r   returnbytes)r   r   r   str)r    boolr!   r   r   None)r9   r   r   ztuple[str, int])r   r   )r   int)__doc__
__future__r   rF   r   r   r+   r/   r   pathlibr   typingr   __file__parentrP   r   r   r   r   r   r   r   r"   r@   r\   r   __name__
SystemExit r   r   <module>r      s    B " 
   	    H~	[[JJ
:
;
[
[Z U V+$
'$P"J z
TV
 r   