+
    jHàj�  ã                   óZ   € R t ^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	  ! R R4      t
R# )zRAuthority-local subscription ordering over the existing bounded transports/replay.)ÚdeepcopyN)Úevent_replay)ÚFanoutTransportc                   óD   a € ] tR t^t o R tR tRRRR/R ltR tR	tV t	R# )
ÚSessionEventsc                ó>  € \         P                  ! 4       V n        \        4       V n        \
        P                  ! 4       P                  V n        \
        P                  ! 4       P                  V n	        ^ V n
        RV n        / V n        \        4       V n        RV n        R# ©é    N)Ú	threadingÚRLockÚlockr   ÚfanoutÚuuidÚuuid4ÚhexÚ_keyÚepochÚsequenceÚ
_public_idÚ	executionÚsetÚ	observersÚon_overflow©Úselfs   &Ú;/home/ubuntu/.hermes/hermes-agent/gateway/session_events.pyÚ__init__ÚSessionEvents.__init__   sl   € Ü—O’OÓ%ˆŒ	Ü%Ó'ˆŒô —J’J“L×$Ñ$ˆŒ	Ü—Z’Z“\×%Ñ%ˆŒ
ØˆŒØˆŒØˆŒô ›ˆŒð  ˆÖó    c                ó^  € V P                   ;_uu_ 4        V P                  '       dR   \        P                  ! V P                  4      '       g,   \
        P                  ! 4       P                  V n        ^ V n        V P                  V P                  3uuRRR4       #   + '       g   i     R# ; ir   )	r   r   r   Ú
latest_seqr   r   r   r   r   r   s   &r   Ú	watermarkÚSessionEvents.watermark   s`   € Ø�Y�Y‹YØ�}�}ˆ}¤\×%<Ò%<¸T¿Y¹Y×%GÒ%Gô "ŸZšZ›\×-Ñ-�”
Ø !�”Ø—:‘:˜tŸ}™}Ð,÷ �Y�Y‹Yús   •8BÁABÂB,	Ú
event_typezmessage.completer   Nc               óP  a a€ S P                   ;_uu_ 4        S P                  4        R RRRR/ Vf   S P                  MTCRVRS P                  R\	        V4      R	S P
                  /C/p\        P                  ! V4       VR,          R
,          S P                  8:  d;   \        P                  ! 4       P                  S n        S P
                  VR,          R	&   SVR,          R&   SS n        VR,          R
,          S n        V V3R lpS P                  P                  WVR7      p\        S P                   4       F  p V! V4       RpK  	  VuuRRR4       #   \"         d1    \$        P&                  ! \(        4      P+                  RSRR7        KX  i ; i  + '       g   i     R# ; i)Újsonrpcú2.0ÚmethodÚeventÚparamsNÚtypeÚ
session_idÚpayloadÚreplay_epochÚseqc                 óŽ   <€ SP                   e   SP                  V 4       RRRRRRRRSR	R
SP                  RSP                  ///# )Nr%   r&   r'   r(   r)   r*   zsession.replay_gapr+   r,   r-   r    )r   r   r   )Ú	transportr   r+   s   &€€r   ÚoverflowÚ'SessionEvents.publish.<locals>.overflow8   s]   ø€ ð ×#Ñ#Ò/Ø×$Ñ$ YÔ/Ø! 5¨(°G¸XØÐ0°,À
Ø °·
±
¸LÈ$Ï-É-ÐXðHZð [ð [r   )r1   Tz$Session event observer failed for %s)Úexc_info)r   r!   r   r   r   r   r   Ú_stamp_eventr   r   r   r   r   r   ÚwriteÚtupler   Ú	ExceptionÚloggingÚ	getLoggerÚ__name__Úwarning)	r   r+   r,   r#   r   Úframer1   Ú	deliveredÚobservers	   ff&$$    r   ÚpublishÚSessionEvents.publish&   sw  ù€ à�Y�Y‹YØ�N‰NÔØ  x°¸(ð EJØ%.Ò%6�4—>’>¸IðEJØHNÐPZÐ\hÐjn×jsÑjsØœ8 GÓ,¨n¸d¿j¹jñEJð KˆEô ×%Ò% eÔ,Ø�X�˜uÕ%¨¯©Ô6ä!ŸZšZ›\×-Ñ-�”
Ø26·*±*��h• Ñ/ð -7ˆE�(�O˜LÑ)Ø(ˆDŒOØ! (�O¨EÕ2ˆDŒMö[ð Ÿ™×)Ñ)¨%Ð)ÓCˆIÜ! $§.¡.Ö1�ðGÙ˜U”OØ $’Iñ 2ð ÷G ŠYøô: !ô Gä×%Ò%¤hÓ/×7Ñ7Ð8^Ð`jØAEð 8÷ GðGú÷; �YˆYús0   —D$FÄ<
EÅFÅ7F	ÆFÆF	ÆFÆF%	c                ór  € V P                   ;_uu_ 4        V P                  4       w  r4\        P                  ! V P                  V4      pW8g  ;'       gY    W$8„  ;'       gM    \        P
                  ! V P                  V4      ;'       g$    \        P                  ! V P                  4      V8g  pV'       d   . MCV Uu. uF7  pVP                  R 4      V P                  8X  d   / VCR V P                  /CMTNK9  	  uppRVRVRVRVRVRVRVR\        V4      /uuR	R	R	4       # u upi   + '       g   i     R	# ; i)
r+   Úeventsr    Úlast_sequencer   r-   Ú	truncatedÚsnapshot_requiredÚcountN)
r   r!   r   Úevents_sincer   Úis_truncatedr    Úgetr   Úlen)	r   r   r   Úcurrent_epochÚlatestÚframesÚmissingr<   rB   s	   &&&      r   ÚsinceÚSessionEvents.sinceM   s+  € Ø�Y�Y‹YØ$(§N¡NÓ$4Ñ!ˆMÜ!×.Ò.¨t¯y©y¸(ÓCˆFØÑ-÷ Gð G°Ñ1B÷ Gð GÜ&×3Ò3°D·I±I¸xÓH÷Gð Gä&×1Ò1°$·)±)Ó<ÀÑFð ÷ #‘Rá#ó)%á#�Eð =B¿I¹IÀlÓ<SÐW[×W`ÑW`Ô<`Ð8�5Ð8˜,¨¯©Ò8ÐfkÒkÙ#ñ)%ˆFð ˜f l°F¸OÈVØ˜]¨N¸MØ Ð*=¸wÈÔQTÐU[ÓQ\ð^÷ ŠYùò)%÷ �YˆYús0   •A
D%Á (D%Â	+D%Â5D%Â;=D Ã8D%Ä D%Ä%D6	)	r   r   r   r   r   r   r   r   r   )
r:   Ú
__module__Ú__qualname__Ú__firstlineno__r   r!   r?   rO   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r      s1   ø‡ € ò ò"-ð%Ð9Kð %ÐW[ô %÷N^ð ^r   r   )Ú__doc__Úcopyr   r8   r
   r   Útui_gatewayr   Útui_gateway.transportr   r   © r   r   Ú<module>r\      s(   ðÙ XÝ Û Û Û å $Ý 1÷N^ó N^r   