
    j`                       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	Z	ddl
Z
ddlmZ ddlmZ ddlmZ dZdZd	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'ejP                   e)edd      z  Z* ee+      jY                         jZ                  Z.e.j^                  d    Z0e0d!z  Z1e0d"z  d#ez   z  d$z  Z2e0d%z  Z3e1d&z  Z4e1d'z  Z5e1d(z  Z6e1d)z  Z7e1d*z  Z8d+Z9 G d, d-e:      Z;d@d.Z<dAd/Z=d0d1dBd2Z>d0d1dCd3Z?dDd4Z@dEd5ZAdFd6ZBdGd7ZCdHd8ZDdId9ZE	 	 	 	 	 	 	 	 dJd:ZFdEd;ZGdKd<ZHdLd=ZIdMd>ZJeKd?k(  r eL eJ             y)NzLV2 append-only adjudication of the claim and required disabled registration.    )annotationsN)datetime)Path)Any@2e0894eac92bc396cc4723bf1f18ebc653b95018dd41574df435941c235da925@af4a9d0a1ffffb6eb7551c1d6dc2b32853ca6d024332a4f8f5702bbf992f141b@d816dbbd6a27d5826b251d279a9831de096ef7cd79b5fd131ceff7253b7369be@ec6acee7743c4cd50c84fb28d2e2c2fafd0d62165cacbbaadc2a72e0307e206d@cda348a3a9500a541d9d8851ec8ebad51be4738dd6a6e8d5c629ec1e65e64a4c@cb9a7ecf2e2f5c2b730d66c1a418311bd15da21119cd8629bb39a4819540d8ee@fe4a8725be379e47b1b2fab3029147705d7def887d94af747e5057c93322c40f@c7c53db41858d53a6860baa98a1bc03f33e19a82048501c2a4b7c25dfddd3855@a9b73fcd6f46884857c14fdb94db0618f306225e9c17ed36b9a5b3a343bcdd48@ee05174e7287a87f9c5e40dae1034cf8b3228edc6b9516df8e6349667baffc7c@ebb97e82ac464abb900bc3a690a5c6c321c1cfd6401d3fdf40c283ae2faf8795@4415e362f61e7500f98f99c5b468828076f61f30a34eebe8b2863fc9faabeaadcb_v4olwxbpSQatMtVLR4QLmw@63bdc993abc7b4f0025e69b10246faf8b5f4da3b7c040f02987a77bef3fa7c59cb_PCczfFXoI4GjvCxLBs1oRA@53b4f95b5b4db9a611128976a7b951bbe22d9619e05b2ff07fadf5b02f9a5380%task26_live_2e_r2_20260815_8527916639
8527916639158159@145515d5e110dcebb94fcaa554bcee29544b3a75dcfe058fae944ea3b70042b2@cc0e4b697633150f3626daa8cf5bb4825bc96243f1a3dfadb6c9f540cad9906c@b41060dea28eb3bbb83217068f5218d5df2c879dba00e73c9ca4e577a6049dadz$hermes-gateway-dualcoachtest.service
O_NOFOLLOW   z9.omo/evidence/task26/task26-invite-harness-st_01a0056a-v3z.omo/evidence/task26z"task26-repaired-archive-successor-z.artifacts/hermes_agent-0.17.0-py3-none-any.whlz,.omo/plans/dualcoach-production-readiness.mdz+task26-live-2e-r2-preparation.redacted.jsonz'task26-live-2e-r2-dry-run.redacted.jsonzinvite_harness_v3.pyz-task26-live-2e-r2-customer-draft.private.jsonz-task26-live-2e-r2-invite-handoff.private.json)zdata/customersz(data/activation-completion-notices.jsonlz$data/customer-activation-audit.jsonlz%data/customer-activation-journal.jsonz%data/customer-activation-receipt.jsonz2data/nutrition-onboarding-projection-journal.jsonlzdata/scheduled-deliveries.jsonlz$data/scheduled-deliveries-fence.jsonzdata/customer-schedule-claimszdata/recovery-auditszdata/activation-readinessc                      e Zd Zy)AdjudicationErrorN)__name__
__module____qualname__     ^.omo/evidence/task26/task26-post-claim-adjudicator-v2-st_01a007d9/post_claim_adjudicator_v2.pyr!   r!   C   s    r&   r!   c                H    t        j                  |       j                         S N)hashlibsha256	hexdigest)raws    r'   shar.   G   s    >>#((**r&   c                T    t        j                  | dddd      j                  d      S )NFT),:)ensure_ascii	sort_keys
separators	allow_nanzutf-8)jsondumpsencode)values    r'   	canonicalr:   K   s&    ::e%4Jbghoopwxxr&   Tprivatec               H   t        j                  | t         j                  t        z        }	 t        j                  |      t        j                  j                        r0j                  dk7  s!j                  t        j                         k7  rt        d|        |r/t        j                  j                        dvrt        d|        g }t        j                  |d      x}r*|j                  |       t        j                  |d      x}r*t        j                  |      d}t        fd|D              t        fd|D              k7  rt        d	|        d
j!                  |      t        j"                  |       S # t        j"                  |       w xY w)N   zunsafe evidence file: >        znon-private evidence file: i   )st_devst_inost_modest_nlinkst_uidst_sizest_mtime_nsst_ctime_nsc              3  6   K   | ]  }t        |        y wr)   getattr).0keybefores     r'   	<genexpr>zread_regular.<locals>.<genexpr>\   s     8#%   c              3  6   K   | ]  }t        |        y wr)   rJ   )rL   rM   afters     r'   rO   zread_regular.<locals>.<genexpr>\   s     AhagZ]'%QTBUagrP   zevidence changed during read: r&   )osopenO_RDONLYO_FLAGSfstatstatS_ISREGrC   rD   rE   getuidr!   S_IMODEreadappendtuplejoinclose)pathr<   fdchunksblockfieldsrR   rN   s         @@r'   read_regularrf   O   sA   	r{{W,	-B"||FNN+v!/Cv}}XZXaXaXcGc#&<TF$CDDt||FNN3>I#&A$$HII wwr;//e/MM%  wwr;//e/o888EAhagAh<hh#&DTF$KLLxx
s   C&F
 AF
 
F!c                   	 t        j                  t        | |            }t        |t              st        d|        |S # t        t         j                  f$ r}t        d|        |d }~ww xY w)Nr;   zinvalid JSON: zJSON root is not an object: )r6   loadsrf   UnicodeDecodeErrorJSONDecodeErrorr!   
isinstancedict)ra   r<   r9   excs       r'   	read_jsonrn   c   st    B

<g>? eT"">tf EFFL	  4 45 B. 78cABs    A A/A**A/c                n   | j                   j                  ddd       | j                   j                         rt        d      t	        j
                  | t        j                  t        j                  z  t        j                  z  t        z  d      }	 t        |      dz   }t	        j                  |d       d}|t        |      k  r+|t	        j                  |||d        z  }|t        |      k  r+t	        j                  |       t	        j                  |       y # t	        j                  |       w xY w)Ni  T)modeparentsexist_okzreceipt directory is a symlinkr@      
r   )parentmkdir
is_symlinkr!   rS   rT   O_WRONLYO_CREATO_EXCLrV   r:   fchmodlenwritefsyncr`   )ra   r9   rb   r-   offsets        r'   exclusive_receiptr   m   s    KK5$>{{ @AA	r{{RZZ/"));gEu	MB&
		"es3xbhhr3vw<00F s3x

s   AD 2D D4c                    t         t        ft        t        ft        t
        ft        t        ft        t        ft        t        ft        t        ff} | D ]G  \  }}t        t        ||t         t        t        hv            |k7  s1t!        d|j"                          t%        t              t&        t        t        t(        t*        t,        ddt        t.        d
}t1        fd|j3                         D              rt!        d      t%        t              }|j5                  d      d	k7  sX|j5                  d
      dk7  sD|j5                  d      dk7  s0|j5                  d      t&        k7  s|j5                  d      t        k7  rt!        d      S )Nr;   zsealed input hash mismatch: r>   PREPARED)
candidate_digestwheel_sha256plan_sha256ledger_sha256
session_idsid_hash
generationstatehandoff_sha256start_token_sha256c              3  L   K   | ]  \  }}j                  |      |k7    y wr)   get)rL   rM   r9   preparations      r'   rO   z validate_pins.<locals>.<genexpr>   s&     
L;KZS%;??35(;K   !$zv3 preparation binding mismatchstatusPASSregistry_customer_countr   accepted_claim_countr   r   z+sealed zero-row pre-claim baseline mismatch)WHEELWHEEL_SHA256PLANPLAN_SHA256PREPARATIONPREPARATION_SHA256DRY_RUNDRY_RUN_SHA256
V3_HARNESSV3_HARNESS_SHA256DRAFTDRAFT_SHA256HANDOFFHANDOFF_SHA256r.   rf   r!   namern   	CANDIDATEPREPARATION_LEDGER_SHA256
SESSION_IDSID_HASHSTART_TOKEN_SHA256anyitemsr   )pinsra   wantedexpecteddry_runr   s        @r'   validate_pinsr   }   sL   L!D+#6FX8Yn%
4E'FL!G^#<>D f|D$udJ6O*OPQU[[#&B499+$NOO  K(K%|"5N ha~0H 
L8>>;K
LL ABB GH';;01Q6;;-.!3;;)*i7;;}%4 MNNr&   c                   | dz  }t        |      }|j                         }t        j                  |      }t	        |t
              rt        |      h dk7  rt        d      |d   |d   d}|d   dk7  s|d   t        t        |            k7  rt        d	      |d   t        k7  rt        d
      t	        |d   t              rt        |d         dk7  rt        d      ||fS )Nz:data/onboarding/telegram-customer-bootstrap-v1/ledger.json>   digestschemasessionszbootstrap ledger shape mismatchr   r   r   r   ztelegram-customer-bootstrap-v1r   z bootstrap ledger digest mismatchz,current bootstrap ledger is not sealed state   z&bootstrap session cardinality mismatch)rf   rX   r6   rh   rk   rl   setr!   r.   r:   CURRENT_LEDGER_DIGESTlistr{   )profilera   r-   infor9   payloads         r'   validate_ledgerr      s    QQD
t
C99;DJJsOEeT"c%j4T&T ABBxeJ6GHGX::eHoQTU^_fUgQh>h BCCX// NOOeJ'.#eJ6G2HA2M HII$;r&   c           
       
 | d   \  
t         t        ddg g dd dd	}t        
fd|j                         D              rt	        d      
j                  d      }t        |t              r|j                  d	      t	        d
      j                  d      t        k7  sj                  d      t        k7  rt	        d      t        t         k(  st        t        k(  rt	        d      dddg dt        d d}t        fd|j                         D              rt	        d      j                  d      }dt        t        dt        d}||gk7  rt	        d      t        t              }j                  d      }t        |t              st	        d      t        |      t        |      z  D ch c](  }|j                  |      |j                  |      k7  s'|* }	}|	d	hk7  s)|j                  d	      |j                  d	      t        k7  rt	        d      j                  d      t!        t#        |            k7  rt	        d      
|fS c c}w )Nr   EXPIREDr   r   )	r   r   r   r   role_claimsrecovery_attemptsconsent_publication_attemptconsent_card_message_idrecovery_attempt_generationc              3  L   K   | ]  \  }}j                  |      |k7    y wr)   r   )rL   rM   r9   priors      r'   rO   z!exact_sessions.<locals>.<genexpr>   s%     
L5KzsE599S>U"5Kr   zold EXPIRED session changedcustomer_draftcustomer_user_idz$old EXPIRED customer binding changedr   r   z%replacement identity binding mismatchz$replacement identity is not distinctAWAITING_CONSENT   r>   )r   r   r   r   r   r   failure_codec              3  L   K   | ]  \  }}j                  |      |k7    y wr)   r   )rL   rM   r9   replacements      r'   rO   z!exact_sessions.<locals>.<genexpr>   s&     
R;QZS%;??35(;Qr   z replacement final state mismatchr   customer0)roleuser_idchat_idtopic_id
message_idz>accepted role claim is not exactly one sealed private-DM claimz%replacement customer draft is invalidz4customer draft changed beyond customer_user_id claimcustomer_draft_digestz&claimed customer draft digest mismatch)PRIOR_SESSION_IDPRIOR_SID_HASHr   r   r!   r   rk   rl   r   r   CONSENT_CARDACTORCLAIM_MESSAGErn   r   r   r.   r:   )ledgerprior_expectedprior_draftexpected_finalclaimswanted_claimdraft_beforedraft_afterrM   changedr   r   s             @@r'   exact_sessionsr      sE   
+E;&NY'(T'(	N 
L^5I5I5K
LL =>>)),-Kk4(KOO<N,O,[ FGG|$
2kooj6QU]6] GHH%%^)C FGG#1UV#/N
 
R>;O;O;Q
RR BCC__]+F&5U #=BL, `aaU#L//"23Kk4( GHH!,/#k2BBtBslFVFVWZF[_j_n_nor_sFssBGt%&&,*:*:;M*N*Z^i^m^m  oA  _B  FK  _K VWW./3y7M3NN HII+|++ us   .(IIc                2   t        |      }|j                  |t        t        |            dd|d   g dd dg d
       | d   ||gd}i |dt        t        |            i}t        t        |            }|t        k7  rt        d	      ||d   | d   |d
   dS )Nr   r>   
created_atr   )
r   r   r   r   
updated_atr   r   r   r   r   r   r   r   z9preparation-to-current exact digest relationship mismatchr   )preparation_ledger_sha256prepared_payload_digestcurrent_payload_digestclaimed_draft_digest)rl   updater.   r:   r   r!   )r   r   r   draftpreparedr   prepared_documentreconstructeds           r'   digest_relationshipr      s    K HOO#i>N:O1K<U!#'   )x7HIGF7FHc)G2D.EF	"345M11 [\\%2#4X#>"("2 +,C D	 r&   c                   t        t              }|j                  d      }t        |t              r|j                  d      st        d      |j                  d      t        k7  s t        |j                               t        k7  rt        d      t        |dd  j                  d            t        k7  rt        d      g }| j                  d	      D ]`  }|j                         r|j                         r$	 |j                         t        |d
      v r|j!                  |j#                                b |t        j#                         gk7  rt        d      t        t        dddS # t        t$        t&        f$ r Y w xY w)Nstart_tokenrc1_z private handoff token is invalidr   z&private handoff token/session mismatchr   asciiz!private handoff SID hash mismatch*Fr;   z6raw invite token leaked outside sealed private handoffr>   T)token_sha256r   raw_token_hit_countraw_token_only_private_handoff)rn   r   r   rk   str
startswithr!   r   r.   r8   r   r   rglobis_filerv   rf   r]   resolveOSErrorPermissionError)evidence_roothandofftokenhitsra   s        r'   token_bindingr     sD    GKK&EeS!)9)9&)A BCC{{< J.#elln2EI[2[ HII
59G$%1 CDDD##C(||~!2	||~dE!BBDLLN+ ) !"" XYY.H#$N N	 "7O< 		s   7<E''E>=E>c                	   | dz  }t        |      }|j                  d      }t        |t              st	        d      t        |      dk7  st        |d   t              st	        dt        |             |j                  d      dk7  s=|j                  d	      dk7  s)|j                  d
      |j                  d      ddddk7  rt	        d      |d   }t        |      h dk7  rt	        d      |j                  d      t        k7  sn|j                  d      |j                  d      k7  sK|j                  d      dus8|j                  d      t        t        ddk7  s|j                  d      dd d dk7  rt	        d      |j                  d      d|j                  d      |j                  d      dk7  rt	        d      i d |j                  d       d!|j                  d!      d"|j                  d"      d#|j                  d#      d$|j                  d$      d%|j                  d%      d&|j                  d&      d'|j                  d'      d(|j                  d(      d)d d*d d+d d,g d-d d.d d/d }|j                  d0      |k7  rt	        d1      |j                  d2      }t        |t              r|j                  d3      nd }	|j                  d4      |j                  d5      |j                  d6      |j                  d7      |j                  d8      |j                  d9      d d d:t        |t              rs|j                  d;      |j                  d;      k7  sP|j                  d<      d=k7  s<t        |	t              r,t        |	      d>k7  st        fd?t        |	d      D              rt	        d@      t        D 
cg c]  }
| |
z  j                         s|
 }}
|rt	        dAdBj                  |      z         | dCz  }t        t!        |dD            t"        k7  rt	        dE      t%        j&                  |dF         j)                         }t%        j&                  |dG         j)                         }|j+                         j,                  }||cxk  r|k  st	        dH       t	        dH      dt        t        dIdddddt        t!        |            dJt.        t0        t"        dKdLS c c}
w )MNzcustomers/registry.json	customersz(customer registry cardinality is UNKNOWNr>   r   z6required exactly one canonical registry row, observed registry_modeordinary_v1versiondiagnostic_session_digestowner
8693203710r   )r   r   r   z*canonical registry root authority mismatch>   planenabledr   scheduletelegramcustomer_keydisplay_nameai_processing_consentz%canonical disabled row shape mismatchr  r  r  Fr  r  )grantedrecorded_onnotice_versionz4canonical disabled customer identity/status mismatchr  z08:00:00weekly_weekdaymonthly_day)
daily_timer  r  z5disabled registration schedule configuration mismatchprimary_goaldietary_restrictions	allergiesfood_preferencessupplementsdigestion_contextsleep_goal_hoursrecovery_goaltraining_contextbudget_bandcoach_notescooking_accessdisliked_foods
meal_countschedule_constraintsstarting_contextr   z1disabled registration profile projection mismatchr  weekscalories_kcal	protein_gmealscarbohydrate_gfat_gwater_liters)r+  r,  meal_structurer.  r/  r0  nutrition_focusrecovery_focus	starts_onfocusnutrition_90_training_10   c              3  :   K   | ]  \  }}|i d |ik7    yw)weekNr%   )rL   indexr9  expected_weeks      r'   rO   z(disabled_registration.<locals>.<genexpr>L  s*     _K^KE4t7-777K^s   z.disabled registration plan projection mismatchz9activation/checkin/generation/delivery authority exists: r0   z3workspace/checkin_cli/checkin_cli/customer_admin.pyr;   z3profile-local canonical registration bytes mismatchr   r   z7disabled row provenance timestamp is outside claim pathzdisabled/not_activatedTzosealed zero-row baseline -> candidate claim handler register_customer -> exact disabled row -> AWAITING_CONSENT)customer_registry_rowsr  r   r   r  consent_grantedschedule_delivery_countactivation_authorities'checkin_generation_delivery_authoritiesregistry_sha2563registry_mtime_between_preparation_and_final_ledger!zero_row_pre_claim_receipt_sha256$candidate_registration_source_sha256$profile_customer_admin_source_sha256
provenance)rn   r   rk   r   r!   r{   rl   r   CUSTOMER_KEYr   r   	enumerateABSENT_AUTHORITIESexistsr_   r.   rf   CUSTOMER_ADMIN_SHA256r   fromisoformat	timestamprX   st_mtimer   REGISTRATION_MODULE_SHA256)r   r   r   registry_pathregistryr  rowexpected_profiler  r*  relativepresentadmincreatedupdatedregistry_timer;  s                   @r'   disabled_registrationrZ    s   
 77M'H[)Ii& JKK
9~*Yq\4"@"XY\]fYgXh ijj_%6<<	"a'<<34@<< cf$gg LMM
A,C
3x  C  C GHH</77>"eii&??779U*77:eSV"WW77*+5QUim/nn VWW
wwz ))$45yy/ 
   WXX		.1		*@ A 	UYY{+ 	EII&89	
 	uyy/ 	UYY':; 	EII&89 	?3 	EII&89 	t 	t 	$ 	" 	d 	  	D!$ wwy-- STT776?D!+D$!7DHHWTE?3YY{+))G,))$457#		.1	M tT"88K EIIk$::88G ::%&u:_9UZ\]K^__ PQQ(:\(:Hw?Q>Y>Y>[x(:G\ [^a^f^fgn^o oppKKE
<u-.2GG UVV$$[%>?IIKG$$[%>?IIKG!&&(11M],W, YZZ - YZZ"#$!* #$"#34|M:;?C-;0J0E H  ]s   S6$S6c                 b   t        j                  dddt        ddddddg
ddd	
      } t        d | j                  j                         D              }| j                  s(|j                  d      dk7  s|j                  d      dk7  rt        d      	 t        |j                  dd            }t        d| d      j                         j                  d      }t        d t        d| d      j                         j                  d      D              }g d}|d d |k7  s|j                  d      dk7  rt        d      t        d      }t        t         t"        d}i }	|j%                         D ]6  \  }
}t'        ||
z  d	      }t)        |      |k7  rt        d|
       ||	|
<   8 t+        j,                  t.              5 }|j%                         D ]5  \  }
}d|
z   }t)        |j1                  |            |k7  s)t        d |
        	 d d d        |d!z  j3                         }|d"z  j3                         }|d#z  j3                         }|d$d%d&f|d'd(f|d)d*d+ff}t5        d, |D              rt        d-      d.||	g d/d0S # t        t        f$ r}t        d      |d }~ww xY w# 1 sw Y   xY w)1N	systemctlz--usershowz-pActiveStateSubStateMainPIDTF)textcapture_outputcheckc              3  J   K   | ]  }d |v s|j                  d d        yw)=r>   Nsplit)rL   lines     r'   rO   z/source_semantics_and_service.<locals>.<genexpr>p  s%     [1KsVZ{$**S!$1K   	##activerunningz$sealed service is not active/runningr   z/proc/z/cmdline    c              3  J   K   | ]  }d |v s|j                  d d        yw)   =r>   Nrf  )rL   items     r'   rO   z/source_semantics_and_service.<locals>.<genexpr>v  s2       C;q4uy  ~B  vB4::dA.;qri  z/environz#service process identity is UNKNOWN)s9   /home/cube/projects/richard/hermes-agent/.venv/bin/pythons   -ms   hermes_cli.mains	   --profiles   dualcoachtests   gateways   runs   VIRTUAL_ENVs.   /home/cube/projects/richard/hermes-agent/.venvz service process binding mismatchz]/home/cube/projects/richard/hermes-agent/.venv/lib/python3.12/site-packages/gateway/platforms)telegram_customer_bootstrap.py+telegram_customer_bootstrap_registration.pytelegram.pyr;   z"active candidate module mismatch: zgateway/platforms/z!candidate wheel module mismatch: rq  rr  rs  zcustomer_draft=draftz state=BootstrapState.REGISTERINGz!generation=current.generation + 1zadmin.register_customer(z&target=BootstrapState.AWAITING_CONSENTzreserve_consent_publication(zreserve_recovery_attempt(zbind_recovery_receipt(c              3  J   K   | ]  ^}t        fd |D                yw)c              3  &   K   | ]  }|v 
 y wr)   r%   )rL   fragmentsources     r'   rO   z9source_semantics_and_service.<locals>.<genexpr>.<genexpr>  s     =f(xv%fs   N)r   )rL   r   rw  s     @r'   rO   z/source_semantics_and_service.<locals>.<genexpr>  s#     
_U^/&63=f==U^s    #z5candidate atomic claim/publication semantics mismatchzactive/running)zAPREPARED/g1 -> REGISTERING/g2 + one role claim + customer_user_idz"register one disabled customer rowz%REGISTERING/g2 -> AWAITING_CONSENT/g3z&bind owner no-op durable rewrite at g3z*reserve consent publication -> attempt1/g4z3reserve recovery -> recovery_attempt_generation1/g4z4bind provider receipt card159 -> AWAITING_CONSENT/g4)servicemain_pidcandidate_modulesnormal_path_transitions)
subprocessrunSERVICErl   stdout
splitlines
returncoder   r!   intr   
read_bytesrg  r   
ValueErrorBOOTSTRAP_MODULE_SHA256rO  TELEGRAM_MODULE_SHA256r   rf   r.   zipfileZipFiler   r\   	read_textr   )resultvaluespidcmdlineenvironmentrm   
wanted_cmdsitemodulessourcesr   r   r-   archivemember	bootstrapregistrationr  	fragmentss                      r'   source_semantics_and_servicer  m  s   ^^[(FGT=Z^`jlpr{|!%d%IF[1I1I1K[[FFJJ}5AVZZPZE[_hEh FGGP&**Y,-uH-.99;AA%H  C4&X@V;W;b;b;d;j;jkp;q  C  C _Js|z![__^%DHy%y BCCopD*A7Q-G
 !Gf4$;6s8v#&H$OPP	 (
 
	7#MMOLD&)D0F7<<'(F2'*KD6(RSS , 
 
 88CCEIHHSSUL}$//1H	*,NPst	13[\	13NPhiI
 
_U^
__ WXX'Sw(	 	A Z  P EFCOP" 
 	s+   BJ 9J%;J%J"JJ"%J.c                \   t        j                  | d         }t        j                  | d         }t        j                  |j                  |j                        }||k  rt        ||z
  j                               dkD  rt        d      |j                         |j                         dddS )	Nr   r   )tzg{Gz?z.ledger event timestamp relationship is UNKNOWNTzNone durable RoleClaim(message_id=158) accepted by one start handler invocation)prepared_atone_claim_event_finalized_at%ledger_mtime_matches_final_transitionone_event_semantics)	r   rL  fromtimestamprN  tzinfoabstotal_secondsr!   	isoformat)r   ledger_inforW  rX  mtimes        r'   timestamp_evidencer    s    $$[%>?G$$[%>?G"";#7#7GNNKEWUW_$C$C$E F M PQQ",,.PWPaPaPc59#su ur&   c                   t                t        |       \  }}t        |      \  }}}t        ||||      }t	        |      }t        ||      }	t               }
t        | ||      }i dddddt        dt        dt        dt        d	t        d
t        dt        ddddddddddddddddddddd|||	|
|dS )Nr   !task26-post-claim-adjudication-v2r   /PASS_SUCCESSFUL_CLAIM_AND_DISABLED_REGISTRATIONr   r   r   r   actor_idclaim_message_idr   r   r   r   r   r   r>   old_expired_session_unchangedTreplacement_identity_distinctaccepted_role_claim_countconsent_publication_count,customer_draft_only_customer_user_id_changedr   z3redacted; hashes and identifiers only; no raw token)profile_mutationsnetwork_callsreplay_countprivacy)r  r  service_proofdisabled_registration_proof)r   r   r   r   r  r  r  rZ  r   r   r   r   r   r   r   )r   r   r   r   r   r   r   relationshipr  
timestampsrx  r  s               r'   
adjudicater    sl   O"7+LFD .v 6E;&vuk5IL-(E#K6J*,G(+uEL5C 	I (6| FST_ 	j	 #-e	 6H	
 	"<
 29:L 	a 7 	( 0OPT 	$Q )DQ 	7 AH MY j  r&   c                    t        j                  t              } | j                  dt        d       | j                  dt        d       | j                  dt        d       | j                         }	 t        |j                  |j                        }d}t)        |j*                  |       t,        j.                  j0                  j3                  t5        |d   t!        |j*                        d      dz          |S # t        t        t        t        t        t        j                  f$ r/}dd	t!        |      dt"        t$        t&        dddd
d}d}Y d }~d }~ww xY w)N)descriptionz	--profileT)typerequiredz--evidence-rootz	--receiptr   r  FAILzredacted; no raw token)r   r   blockerunknown_is_failurer   r   r   r  r  r  r  r   r   )r   receiptrs   )argparseArgumentParser__doc__add_argumentr   
parse_argsr  r   r   r!   r   r  KeyError	TypeErrorr  
BadZipFiler   r   r   r   r   r  sysr  bufferr|   r:   )parserargsr  coderm   s        r'   mainr    s!   $$9F
$>
)tD
$>D
DLL$*<*<= dllF+JJI1AcRVR^R^N_&`adiijK w
HiI[I[\ ?6 XT&/!,1#$a57 s   4"C< <-E)%EE__main__)r-   bytesreturnr   )r9   r   r  r  )ra   r   r<   boolr  r  )ra   r   r<   r  r  dict[str, Any])ra   r   r9   r  r  None)r  r  )r   r   r  z%tuple[dict[str, Any], os.stat_result])r   r  r  z5tuple[dict[str, Any], dict[str, Any], dict[str, Any]])
r   r  r   r  r   r  r   r  r  r  )r   r   r  r  )r   r   r   r  r   r  r  r  )r   r  r  zos.stat_resultr  r  )r   r   r   r   r  r  )r  r  )Mr  
__future__r   r  r*   r6   rS   rX   r|  r  r  r   pathlibr   typingr   r   r   r   r   r   r   rK  r   r   r   r   r   r   r   r   r   rG  r   r   r   r  rO  r  r~  	O_CLOEXECrK   rV   __file__r   rt   HERErq   ROOTV3r   r   r   r   r   r   r   rI  RuntimeErrorr!   r.   r:   rf   rn   r   r   r   r   r   r  rZ  r  r  r  r  r"   
SystemExitr%   r&   r'   <module>r     s   R "    	   
    N	QPW SV Z ^ Z QSW . S(
M6\ _ [ 
0
,,\15
5H~&&||A	GG%%)MPY)YZ  ^N  	N<<@@
8
8((

<<
>
> 	 	+y 15 ( .2  :"&,R,N0hhh h 	hV3lu4, z
TV
 r&   