
    jhj                        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
mZm
Z
 ddlmZ  ed      ZdZdZd	Zd
ZdZddZddZddZedk(  r e e             y)zFCandidate-bound, event-driven lifecycle observer for the v8 rehearsal.    )annotationsN)UTCdatetime)Pathzj/home/cube/projects/richard/traning coach/.omo/evidence/task26/task26-clarification-root-final-st_01a013d9@f32a836571b403663da3510d930fd04c1a84c5514cb6345fc575f5a42b580da5@5795a78f7830760b10a4b4d909ca44b9142b92e86083d7d47e9c787f5e580d97A3639c41eb6e76eb7d89510f117cf9ad94e72b4f1acee48645c620ea0909fec15ei`T  i  c                d    t        j                  | j                               j                         S )N)hashlibsha256
read_bytes	hexdigest)paths    g.omo/evidence/task26/task26-clarification-root-final-st_01a013d9/deployment/v8/lifecycle_observer_v8.pyshar      s!    >>$//+,6688    c                   t        j                  |dd      dz   j                         }t        j                  | t        j
                  t        j                  z  t        j                  z  t        j                  z  d      }	 t        j                  |d       t        j                  ||       t        j                  |       t        j                  |       y # t        j                  |       w xY w)NT),:)	sort_keys
separators
  )jsondumpsencodeosopenO_WRONLYO_APPENDO_CREAT	O_CLOEXECfchmodwritefsyncclose)r   payloadrawfds       r   appendr*      s    ::g*EL
T
T
VC	r{{R[[02::=Le	TB
		"e
S

s   AC C1c                 
   t        j                         } | j                  dd       | j                  dt               | j                  dt               | j                  dt               | j	                         }t        j                  t        dz  j                               }t        t        dz        t        k7  s0|j                  d	      t        k7  s|j                  d
      t        k7  rt        d      d|j                  dk(  rdndt        t        ddddt         t#        j$                         d
}|j                  dk(  r!t'        t        j(                  |d             y|j*                  r|j,                  r|j.                  st        d      |j,                  j0                  j3                  dd       |j,                  j5                         s|j.                  j5                         rt        d      t7        j8                  dd      }|j;                  t"        j<                  t"        j>                  z        }|dk  rt        d      i }|j*                  |j*                  dz  fD ]b  }|jA                  |t#        jB                  |      tD              }|dk  r#t#        jF                  |       t        d|       tI        |      ||<   d tK        |j,                  dtM        jN                  tP              jS                         t        t        t#        j$                         tU        |jW                               d       |j.                  jY                  t        j(                  i |dtU        |jW                               id      d z          t#        jZ                  |j.                  d!       t]        j^                         }	|	ja                  |t\        jb                         te        jf                         t         z   }
	 	 |
te        jf                         z
  }|dk  rUtK        |j,                  d"tM        jN                  tP              jS                         d#       	 t#        jF                  |       y$|	j_                  ti        d%tk        |d&z                    sUtK        |j,                  d"tM        jN                  tP              jS                         d#       	 t#        jF                  |       y$t#        jl                  |d'      }tK        |j,                  d(tM        jN                  tP              jS                         to        |      t        d)       R# t#        jF                  |       w xY w)*Nmode)dry-runobserve)choicesz	--profile)typez--eventsz--readyzcandidate-manifest.jsoncandidate_digestproduct_digestzBLOCKED candidate driftz,task26-v8-event-driven-lifecycle-observer-v1r-   PASS_DRY_RUNARMEDTF)
schemastatus	candidateproductevent_drivenpollingsleepingsubscribe_before_snapshotmax_secondspid)r   r   zBLOCKED observe paths required)parentsexist_okz,BLOCKED observer receipt paths already existz	libc.so.6)	use_errnozBLOCKED inotify init faileddatazBLOCKED inotify watch failed: 
SUBSCRIBED)eventat_utcr7   r8   r>   watch_rootsrF   r   r   DEADLINE)rD   rE         i  i   PROFILE_CHANGE)rD   rE   bytesr7   )8argparseArgumentParseradd_argumentr   
parse_argsr   loads	CANDIDATE	read_textr   MANIFEST_SHAgetFULLPRODUCT
SystemExitr,   MAX_SECONDSr   getpidprintr   profileeventsreadyparentmkdirexistsctypesCDLLinotify_init1r"   
O_NONBLOCKinotify_add_watchfsencodeIN_MASKr&   strr*   r   nowr   	isoformatsortedvalues
write_textchmodselectpollregisterPOLLINtime	monotonicmaxintreadlen)parserargsmanifestcontractlibcr)   watchesr   wdpollerdeadlineleftr(   s                r   mainr   &   sT   $$&F
(>?
$/

.
	-Dzz9'@@KKMNH
9001\AX\\RdEeimEmqyq}q}  O  rP  T[  r[233@$(II$:.%)"yy{#H yyIdjjT23<<t{{$**9::KKTD9{{tzz002GHH;;{d3D			BLL2==8	9B	Av677 Gt||f45##BD(97C6HHRL=dVDEE$i 6 4;;,(,,s:K:U:U:Wfjw~  HJ  HQ  HQ  HS  dj  kr  ky  ky  k{  d|  }  ~JJ$**%Z%Z-HXAY%ZfjknrrsHHTZZ[[]F
OOB&~~+-Hdnn..Dqyt{{jHLLQTDUD_D_Da$bc 	 ;;s1c$+&678t{{jHLLQTDUD_D_Da$bc 	 ''"e$C4;;*:hllSVFWFaFaFcnqrunv  FJ  !K  L  	s   AU :A%U 6A%U U2__main__)r   r   returnrh   )r   r   r'   zdict[str, object]r   None)r   rv   )__doc__
__future__r   rL   ra   r   r   r   ro   rs   r   r   pathlibr   rQ   rU   rV   rS   rX   rg   r   r*   r   __name__rW    r   r   <module>r      sv    L "     	   " }~	I
LR
b9;| z
TV
 r   