+
    ni$                         ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t^ RI
t
^ RIt^ RIt^ RIHt ^ RIHtHtHtHtHt  ! R R]4      t ! R R]4      t ! R R	]4      tR# )
    N)NullContext)QUIC_MAX_DATAGRAMAsyncQuicConnectionAsyncQuicManagerBaseQuicStreamUnexpectedEOFc                   j   a a ] tR t^t oV 3R ltR tR tRR ltRR ltR t	R t
R tR	 tR
tVtV ;t# )TrioQuicStreamc                Z   < \         SV `  W4       \        P                  ! 4       V n        R # N)super__init__trio	Condition_wake_up)self
connection	stream_id	__class__s   &&&hC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO\maestro-backend\venv\Lib\site-packages\dns/quic/_trio.pyr   TrioQuicStream.__init__   s    /(    c                R  "    V P                   P                  V4      '       d   R# Wn        V P                  ;_uu_4       GRj  xL
  V P                  P	                  4       G Rj  xL
  RRR4      GRj  xL
  ^ V n        K   L? L L  + GRj  xL 
 '       g   i     L(; i5iTN)_bufferhave
_expectingr   wait)r   amounts   &&r   wait_forTrioQuicStream.wait_for    sg     ||  (($O}}}}mm((*** %}DO %* %}}}sd   "B' B'BB'	B'B(B,B'7B	8B'B	B'B$	B
B$	B$	B'c                8  "    V P                   P                  4       '       d   R# V P                  ;_uu_4       GRj  xL
  V P                  P                  4       G Rj  xL
  RRR4      GRj  xL
  Kt   L8 L L
  + GRj  xL 
 '       g   i     K  ; i5ir   )r   seen_endr   r   r   s   &r   wait_for_endTrioQuicStream.wait_for_end)   sV     ||$$&&}}}}mm((*** %}}* %}}}sb   !BBA7BA= A9!A=%B0A;1B9A=;B=B	B
B	B		Bc                  "   Vf   \        R 4      pM\        P                  ! V4      pT;_uu_ 4        V P                  P	                  4       '       d=   V P                  4       G R j  xL
  V P                  P                  4       uuR R R 4       # V P                  ^4      G R j  xL
  \        P                  ! RV P                  P                  ^4      4      w  pV P                  V4      G R j  xL
  V P                  P                  V4      uuR R R 4       #  L Lv L-  + '       g   i     \        P                  P                  h; i5i)Nz!H)r   r   move_on_after_connectionis_h3r%   r   get_allr    structunpackgetdns	exceptionTimeout)r   timeoutcontextsizes   &&  r   receiveTrioQuicStream.receive0   s     ?!$'G((1GW%%'''')))||++- W
 mmA&&& --dll.>.>q.ABmmD)))||''- W) ') W mm###s_   1E4D'D(DED$D%A
D/D0DEDDDE	*!Ec                   "   V P                  V4      pV P                  P                  V P                  W24      G R j  xL
  R #  L5ir   )_encapsulater)   write
_stream_id)r   datagramis_enddatas   &&& r   sendTrioQuicStream.send@   s5       *$$T__dCCCs   ;AAAc                  "   V P                  W4      '       dJ   V P                  ;_uu_4       GR j  xL
  V P                  P                  4        R R R 4      GR j  xL
  R # R #  L2 L
  + GR j  xL 
 '       g   i     R # ; i5ir   )_common_add_inputr   notify)r   r=   r<   s   &&&r   
_add_inputTrioQuicStream._add_inputD   sH     !!$//}}}}$$& %}} 0$}}}sJ   0BA%BA)BA'	B'B)B	/A20
B	;B	=	Bc                .   "   V P                  4        R # 5ir   )_closer$   s   &r   closeTrioQuicStream.closeI   s     s   c                   "   V # 5ir    r$   s   &r   
__aenter__TrioQuicStream.__aenter__N   
        c                  "   V P                  4       G R j  xL
  V P                  ;_uu_4       GR j  xL
  V P                  P                  4        R R R 4      GR j  xL
  R#  LM L2 L
  + GR j  xL 
 '       g   i     R# ; i5iNF)rG   r   rB   )r   exc_typeexc_valexc_tbs   &&&&r   	__aexit__TrioQuicStream.__aexit__Q   sJ     jjl====MM  " != 	 ===sZ   BA$BA&BA*BA(B&B(B*B	0A31
B	<B	>	B)r   r   r   F)__name__
__module____qualname____firstlineno__r   r    r%   r5   r>   rC   rG   rK   rT   __static_attributes____classdictcell____classcell__r   __classdict__s   @@r   r
   r
      s8     ) +$ D'

 r   r
   c                   b   a a ] tR t^Xt oR	V 3R lltR tR tR
R ltR tR	R lt	R t
RtVtV ;t# )TrioQuicConnectionc                *  < \         SV `  WW4WV4       \        P                  P                  V P                  \        P
                  ^ 4      V n        \        P                  ! 4       V n        \        P                  ! 4       V n	        RV n
        RV n        R# )r   NF)r   r   r   socket_af
SOCK_DGRAM_socketEvent_handshake_complete	_run_done_worker_scope_send_pending)r   r   addressportsourcesource_portmanagerr   s   &&&&&&&r   r   TrioQuicConnection.__init__Y   sc    dKQ{{))$((F4E4EqI#'::< !"r   c                ^  "    V P                   '       dV   V P                  P                  \        P                  P                  V P                   V P                  4      4      G R j  xL
  V P                  P                  V P                  4      G R j  xL
  V P                  '       Ege   V P                  R4      w  rV P                  '       d   Rp\        P                  ! \        P                  ! 4       V,           R7      ;_uu_ 4       V n        V P                  P!                  \"        4      G R j  xL
 pV P$                  P'                  W0P                  \(        P(                  ! 4       4       R R R 4       R V n        V P+                  V4       V P-                  4       G R j  xL
  RV n        V P$                  P/                  \(        P(                  ! 4       4      pV F(  w  r5V P                  P1                  V4      G R j  xL
  K*  	  EKw   RV n	        V P                  P3                  4        V P4                  P7                  4        R #  EL EL EL   + '       g   i     L; i L Lg  RT n	        T P                  P3                  4        T P4                  P7                  4        i ; i5i)NFg        )deadlineT)_sourcerf   bindr/   inetlow_level_address_tuplerd   connect_peer_done_get_timer_valuesrk   r   CancelScopecurrent_timerj   recvr   r)   receive_datagramtime_handle_timer_handle_eventsdatagrams_to_sendr>   rG   rh   set)r   
expirationintervalr;   	datagrams_s   &     r   _workerTrioQuicConnection._workera   s    "	+|||ll''HH44T\\488L   ,,&&tzz222jjj)-)?)?)F&%%%  #H%%!..08; '%)\\%6%67H%IIH$$55h

DIIKX	
 &*""":.))+++ &+" ,,>>tyy{K	#,KH,,++H555 $-/ !4 DJLL $$((*A 3  J  , 6DJLL $$((*s   J-A"I- &I',I- II- +A I- (I3I4=I13I- $I)%AI- I+I- =J-I- I- II&	!	I- +I- -=J**J-c                  "   ^ p V P                   P                  4       pVf   R# \        V\        P                  P
                  P                  4      '       Ed   V P                  4       '       Ed   V P                  f   Q hV P                  P                  V4      pV EFk  p\        V\        P                  P
                  P                  4      '       d   V P                  P                  VP                  4      pV'       dp   VP                  f   VP                   Vn        MVP"                  f   VP                   Vn        VP$                  '       d   VP'                  RR4      G Rj  xL
  K  K  K  \        V\        P                  P
                  P(                  4      '       g   EK  V P                  P                  VP                  4      pV'       g   EK=  VP'                  VP*                  VP$                  4      G Rj  xL
  EKn  	  EM}V P                  P                  VP                  4      pV'       d/   VP'                  VP*                  VP,                  4      G Rj  xL
  EM \        V\        P                  P
                  P.                  4      '       d   V P0                  P3                  4        M\        V\        P                  P
                  P4                  4      '       d#   RV n        V P8                  P;                  4        M{\        V\        P                  P
                  P<                  4      '       dH   V P                  P                  VP                  4      pV'       d   VP'                  RR4      G Rj  xL
  V^,          pV^
8  g   EK  ^ p\>        P@                  ! ^ 4      G Rj  xL
  EK   ELZ EL ELc LC L5i)r   TNr   )!r)   
next_event
isinstanceaioquicquiceventsStreamDataReceivedr*   _h3_connhandle_eventh3HeadersReceived_streamsr.   r   _headersheaders	_trailersstream_endedrC   DataReceivedr=   
end_streamHandshakeCompletedrh   r   ConnectionTerminatedrz   rf   rG   StreamResetr   sleep)r   countevent	h3_eventsh3_eventstreams   &     r   r   !TrioQuicConnection._handle_events   s    $$//1E}%!4!4!G!GHH::<<==444 $ : :5 AI$-%h

0A0A0Q0QRR%)]]%6%6u%GF%#)??#:6>6F6FFO%+%5%5%=7?7G7GF$4#+#8#8#8*0*;*;C*F$F$F $9  & ('**2C2C2P2PQQ%)]]%6%6u%GF%v&,&7&7$,MM83H3H'" !" !" %." "]]..u?F$//

E<L<LMMME7<<#6#6#I#IJJ((,,.E7<<#6#6#K#KLL!
""$E7<<#6#6#B#BCC**5??; ++C666QJErzjjm##1 %G!" N 7
 $s   A/O2BOAOO*O+;O,*O)OO7O>)O'O
(DO4O	O
O!O<O=OO
OOOc                   "   V P                   P                  WV4       R V n        V P                  e   V P                  P	                  4        R# R# 5ir   )r)   send_stream_datark   rj   cancel)r   r   r=   r<   s   &&&&r   r9   TrioQuicConnection.write   sF     ))&?!)%%' *s   AAc                L  "   V P                   '       d   R # \        P                  ! 4       ;_uu_4       GR j  xL
 pVP                  V P                  4       R R R 4      GR j  xL
  V P
                  P                  4        R #  LK L"  + GR j  xL 
 '       g   i     L9; i5ir   )_closedr   open_nursery
start_soonr   ri   r   )r   nurserys   & r   runTrioQuicConnection.run   s]     <<<$$&&&'t||, '& '&&&sJ   6B$BB$BB$#B$!B$B$B!	B
B!	B!	B$c                  "   Vf   \        R 4      pM\        P                  ! V4      pT;_uu_ 4        V P                  P	                  4       G R j  xL
  V P
                  '       d   \        hV P                  P                  R4      p\        W4      pW@P                  V&   VuuR R R 4       #  L\  + '       g   i     \        P                  P                  h; i5irP   )r   r   r(   rh   r   rz   r   r)   get_next_available_stream_idr
   r   r/   r0   r1   )r   r2   r3   r   r   s   &&   r   make_streamTrioQuicConnection.make_stream   s     ?!$'G((1GW**//111zzz##((EEeLI#D4F'-MM)$ W1 W mm###s4   1CB0B.B0(;B0#C.B00C	;!Cc                  "   V P                   '       g   V P                  e?   V P                  P                  V P                  ^ ,          V P                  ^,          4       RV n         V P                  P                  4        RV n        V P                  e   V P                  P                  4        V P                  P                  4       G R j  xL
  R # R #  L5i)NT)r   _managerclosedry   r)   rG   rk   rj   r   ri   r   r$   s   &r   rG   TrioQuicConnection.close   s     |||}}($$TZZ]DJJqMBDL""$!%D!!-""))+..%%'''  (s   CCC	C)r   rz   rh   ri   rk   rf   rj   r   rV   )rW   rX   rY   rZ   r   r   r   r9   r   r   rG   r[   r\   r]   r^   s   @@r   ra   ra   X   s/     ##+J+$Z($	( 	(r   ra   c                   h   a a ] tR t^t oR]P
                  RR3V 3R lltRR ltR tR t	Rt
VtV ;t# )	TrioQuicManagerNFc                >   < \         SV `  W#\        WE4       Wn        R # r   )r   r   ra   _nursery)r   r   confverify_modeserver_namer   r   s   &&&&&&r   r   TrioQuicManager.__init__   s     	,>Pr   c                    V P                  WW4V4      w  rgV'       d&   V P                  P                  VP                  4       V# r   )_connectr   r   r   )r   rl   rm   rn   ro   want_session_ticketr   starts   &&&&&&  r   rx   TrioQuicManager.connect   s>     #mm60C
 MM$$Z^^4r   c                   "   V # 5ir   rJ   r$   s   &r   rK   TrioQuicManager.__aenter__   rM   rN   c                   "   \        V P                  P                  4       4      pV F  pVP                  4       G R j  xL
  K  	  R#  L
5irP   )list_connectionsvaluesrG   )r   rQ   rR   rS   connectionsr   s   &&&&  r   rT   TrioQuicManager.__aexit__   sD      4,,3356%J""$$$ & %s   <AA	A)r   )iU  Nr   T)rW   rX   rY   rZ   sslCERT_REQUIREDr   rx   rK   rT   r[   r\   r]   r^   s   @@r   r   r      s2      %%	  r   r   )rc   r   r,   r   aioquic.h3.connectionr   aioquic.h3.eventsaioquic.quic.configurationaioquic.quic.connectionaioquic.quic.eventsr   dns.exceptionr/   dns.inetdns._asyncbackendr   dns.quic._commonr   r   r   r   r   r
   ra   r   rJ   r   r   <module>r      sb     
     !      ) :^ :z@(, @(F& r   