
    eip]                        U d dl Z d dlZd dlZd dlmZmZmZmZmZm	Z	m
Z
mZmZ ddlmZ ddlmZmZmZmZmZ ddlmZ ddlmZ dZ ed	          Z G d
 de          Z G d dee                   Z G d d          Z G d d          Z G d de          Z  G d de           Z! e!            Z"ee          e#d<    G d dee                   Z$ G d de$e                   Z%dS )    N)		AwaitableCallableDequeFinalGenericListOptionalTupleTypeVar   )BaseProtocol)_EXC_SENTINELBaseTimerContext	TimerNoopset_exception
set_result)LineTooLong)internal_logger)EMPTY_PAYLOAD	EofStreamStreamReader	DataQueue_Tc                       e Zd ZdZdS )r   zeof stream indication.N)__name__
__module____qualname____doc__     M/var/www/html/volatility/venv/lib/python3.11/site-packages/aiohttp/streams.pyr   r   %   s            r    r   c                   R    e Zd ZdZdeg ee         f         ddfdZd	dZdefdZ	dS )
AsyncStreamIterator	read_funcr%   returnNc                     || _         d S Nr$   )selfr%   s     r!   __init__zAsyncStreamIterator.__init__-   s    "r    AsyncStreamIterator[_T]c                     | S r(   r   r)   s    r!   	__aiter__zAsyncStreamIterator.__aiter__0       r    c                    K   	 |                                   d {V }n# t          $ r t          w xY w|dk    rt          |S Nr    )r%   r   StopAsyncIterationr)   rvs     r!   	__anext__zAsyncStreamIterator.__anext__3   sc      	%~~''''''''BB 	% 	% 	%$$	%99$$	s    1)r&   r+   )
r   r   r   	__slots__r   r   r   r*   r.   r5   r   r    r!   r#   r#   )   sx        I#(2y}+<"= #$ # # # #         r    r#   c                   >    e Zd ZdZd	dZd
dZdeeef         fdZ	dS )ChunkTupleAsyncStreamIterator_streamstreamr   r&   Nc                     || _         d S r(   r9   )r)   r;   s     r!   r*   z&ChunkTupleAsyncStreamIterator.__init__A   s    r    c                     | S r(   r   r-   s    r!   r.   z'ChunkTupleAsyncStreamIterator.__aiter__D   r/   r    c                 b   K   | j                                          d {V }|dk    rt          |S )Nr    F)r:   	readchunkr2   r3   s     r!   r5   z'ChunkTupleAsyncStreamIterator.__anext__G   sA      <))++++++++$$	r    )r;   r   r&   N)r&   r8   )
r   r   r   r6   r*   r.   r
   bytesboolr5   r   r    r!   r8   r8   =   se        I      ud{!3      r    r8   c                   j    e Zd ZdZdee         fdZdedee         fdZdee         fdZ	de
fdZdS )	AsyncStreamReaderMixinr   r&   c                 *    t          | j                  S r(   )r#   readliner-   s    r!   r.   z AsyncStreamReaderMixin.__aiter__R   s    "4=111r    nc                 ,     t           fd          S )z>Returns an asynchronous iterator that yields chunks of size n.c                  .                                    S r(   )read)rG   r)   s   r!   <lambda>z5AsyncStreamReaderMixin.iter_chunked.<locals>.<lambda>W   s    499Q<< r    )r#   r)   rG   s   ``r!   iter_chunkedz#AsyncStreamReaderMixin.iter_chunkedU   s    "#7#7#7#7#7888r    c                 *    t          | j                  S )z3Yield all available data as soon as it is received.)r#   readanyr-   s    r!   iter_anyzAsyncStreamReaderMixin.iter_anyY   s    "4<000r    c                      t          |           S )zYield chunks of data as they are received by the server.

        The yielded objects are tuples
        of (bytes, bool) as returned by the StreamReader.readchunk method.
        )r8   r-   s    r!   iter_chunksz"AsyncStreamReaderMixin.iter_chunks]   s     -T222r    N)r   r   r   r6   r#   rA   r.   intrM   rP   r8   rR   r   r    r!   rD   rD   N   s        I2.u5 2 2 2 29c 9&9%&@ 9 9 9 91-e4 1 1 1 13: 3 3 3 3 3 3r    rD   c                   &   e Zd ZdZdZddddededee         dee	j
                 d	df
d
Zd	efdZd	eeef         fdZd	ee         fdZefdeded	dfdZdeg df         d	dfdZd2dZd	efdZd	efdZd2dZed	efd            Zded	dfdZd3deded	dfdZd2dZ d2dZ!ded	dfd Z"dd!d"ee         d	efd#Z#	 d4dd%d&ed'ee         d	efd(Z$d5d*ed	efd+Z%d	efd,Z&d	eeef         fd-Z'd*ed	efd.Z(d5d*ed	efd/Z)d*ed	efd0Z*d*ed	efd1Z+dS )6r   a*  An enhancement of asyncio.StreamReader.

    Supports asynchronous iteration by line, chunk or as available::

        async for line in reader:
            ...
        async for chunk in reader.iter_chunked(1024):
            ...
        async for slice in reader.iter_any():
            ...

    )	_protocol
_low_water_high_water_low_water_chunks_high_water_chunks_loop_size_cursor_http_chunk_splits_buffer_buffer_offset_eof_waiter_eof_waiter
_exception_timer_eof_callbacks_eof_countertotal_bytestotal_compressed_bytesN)timerloopprotocollimitri   rj   r&   c                   || _         || _        |dz  | _        |t          j                    }t          d|dz            | _        t          d| j        dz            | _        || _        d| _	        d| _
        d | _        t          j                    | _        d| _        d| _        d | _        d | _        d | _        |t)                      n|| _        g | _        d| _        d| _        d | _        d S )N         r   F)rU   rV   rW   asyncioget_event_loopmaxrY   rX   rZ   r[   r\   r]   collectionsdequer^   r_   r`   ra   rb   rc   r   rd   re   rf   rg   rh   )r)   rk   rl   ri   rj   s        r!   r*   zStreamReader.__init__   s     " 19<)++D"%a!"4"4 "%Q(?1(D!E!E

8<%0%6%8%8	7;;?37%*]ikkk8:59###r    c                    | j         j        g}| j        r|                    d| j        z             | j        r|                    d           | j        dk    r$|                    d| j        | j        fz             | j        r|                    d| j        z             | j        r|                    d| j        z             dd	                    |          z  S )	Nz%d byteseofi   zlow=%d high=%dzw=%rze=%r<%s> )
	__class__r   r[   appendr`   rV   rW   ra   rc   join)r)   infos     r!   __repr__zStreamReader.__repr__   s    '(: 	1KK
TZ/0009 	KK?e##KK(DOT=M+NNOOO< 	/KK-...? 	2KK0111&&r    c                     | j         | j        fS r(   )rV   rW   r-   s    r!   get_read_buffer_limitsz#StreamReader.get_read_buffer_limits   s    !122r    c                     | j         S r(   rc   r-   s    r!   	exceptionzStreamReader.exception   
    r    exc	exc_causec                     || _         | j                                         | j        }|d | _        t	          |||           | j        }|d | _        t	          |||           d S d S r(   )rc   re   clearra   r   rb   r)   r   r   waiters       r!   r   zStreamReader.set_exception   s|    
 !!###DL&#y111!#D&#y11111 r    callbackc                     | j         r2	  |             d S # t          $ r t          j        d           Y d S w xY w| j                            |           d S NException in eof callback)r`   	Exceptionr   r   re   r{   r)   r   s     r!   on_eofzStreamReader.on_eof   sz    9 	1G




 G G G)*EFFFFFFG &&x00000s   
 77c                    d| _         | j        }|d | _        t          |d            | j        }|d | _        t          |d            | j        j        r| j                                         | j        D ]1}	  |             # t          $ r t          j
        d           Y .w xY w| j                                         d S )NTr   )r`   ra   r   rb   rU   _reading_pausedresume_readingre   r   r   r   r   )r)   r   cbs      r!   feed_eofzStreamReader.feed_eof   s    	DLvt$$$!#Dvt$$$>) 	,N))+++% 	G 	GBG G G G)*EFFFFFG 	!!#####s   7
BB#"B#c                     | j         S )z&Return True if  'feed_eof' was called.r`   r-   s    r!   is_eofzStreamReader.is_eof   s
    yr    c                      | j         o| j         S )z=Return True if the buffer is empty and 'feed_eof' was called.r`   r^   r-   s    r!   at_eofzStreamReader.at_eof   s    y---r    c                    K   | j         rd S | j        J | j                                        | _        	 | j         d {V  d | _        d S # d | _        w xY wr(   )r`   rb   rZ   create_futurer-   s    r!   wait_eofzStreamReader.wait_eof   s|      9 	F''':3355	$""""""""#DtD####s   A
 
	Ac                 ,    | j         | j        S | j         S r(   )rh   rg   r-   s    r!   total_raw_byteszStreamReader.total_raw_bytes  s    &.##**r    datac                 \   t          j        dt          d           |sdS | j        r)| j        d         | j        d         | j        d<   d| _        | xj        t          |          z  c_        | xj        t          |          z  c_        | j                            |           d| _	        dS )zDrollback reading some data from stream, inserting it to buffer head.zJunread_data() is deprecated and will be removed in future releases (#3260)rn   )
stacklevelNr   )
warningswarnDeprecationWarningr_   r^   r[   lenr\   
appendleftrf   )r)   r   s     r!   unread_datazStreamReader.unread_data  s    =		
 	
 	
 	
  	F 	$"l1od.A.C.CDDLO"#D

c$ii

D		!%%%r    r   sizec                 t   | j         r
J d            |sd S t          |          }| xj        |z  c_        | j                            |           | xj        |z  c_        | j        }|d | _        t          |d            | j        | j        k    r'| j	        j
        s| j	                                         d S d S d S )Nzfeed_data after feed_eof)r`   r   r[   r^   r{   rg   ra   r   rW   rU   r   pause_reading)r)   r   r   data_lenr   s        r!   	feed_datazStreamReader.feed_data!  s    9888888 	Ft99

h

D!!!H$DLvt$$$:(((1O(N((***** )(((r    c                 t    | j         0| j        rt          d          t          j                    | _         d S d S )Nz@Called begin_http_chunk_receiving when some data was already fed)r]   rg   RuntimeErrorrt   ru   r-   s    r!   begin_http_chunk_receivingz'StreamReader.begin_http_chunk_receiving4  sL    "* "V   '2&7&9&9D### +*r    c                 ~   | j         t          d          | j         r| j         d         nd}| j        |k    rd S | j                             | j                   t	          | j                   | j        k    r%| j        j        s| j                                         | j	        }|d | _	        t          |d            d S d S )NzFCalled end_chunk_receiving without calling begin_chunk_receiving firstr   )r]   r   rg   r{   r   rY   rU   r   r   ra   r   )r)   posr   s      r!   end_http_chunk_receivingz%StreamReader.end_http_chunk_receiving<  s    "*.   .2-DKd%b))!s"" F&&t'7888 '((4+BBBN2 C N((*** DLvt$$$$$ r    	func_namec                 (  K   | j         j        st          d          | j        t          d|z            | j                                        x}| _        	 | j        5  | d {V  d d d            n# 1 swxY w Y   d | _        d S # d | _        w xY w)NzConnection closed.zH%s() called while another coroutine is already waiting for incoming data)rU   	connectedr   ra   rZ   r   rd   )r)   r   r   s      r!   _waitzStreamReader._waitc  s      ~' 	53444 <#46?@  
 !%
 8 8 : ::	                   DLLL4DLs0   B 	A4(B 4A88B ;A8<B 	Bmax_line_lengthr   c                >   K   |                      |           d {V S )Nmax_size)	readuntilr)   r   s     r!   rF   zStreamReader.readlinex  s,      ^^_^=========r       
r   	separatorr   c                  K   t          |          }|dk    rt          d          | j        | j        d}d}d}|p| j        }|r| j        r|r| j        }| j        d                             ||          dz   }|                     |r||z
  |z   dz
  nd          }	||	z  }|t          |	          z  }|rd}||k    rt          |d d         d	z   |          | j        r|| j	        rn|r| 
                    d
           d {V  ||S )Nr   z,Separator should be at least one-byte stringr    Tr   r   Fd   s   ...r   )r   
ValueErrorrc   rW   r^   r_   find_read_nowait_chunkr   r`   r   )
r)   r   r   seplenchunk
chunk_size
not_enoughoffseticharr   s
             r!   r   zStreamReader.readuntil{  s{      YQ;;KLLL?&/!

/t/ 	., F: F,Q,,Y??!C..38@EFNV+a//b  c$ii'
 '!&J((%eDSDkF&:HEEE , F: F y  .jj---------)  	., r    r   rG   c                   K   | j         | j         	 | j        rA| j        s:t          | dd          dz   | _        | j        dk    rt          j        dd           |sdS |dk     rKg }	 |                                  d {V }|sn|                    |           3d	                    |          S | j        s0| j        s)| 
                    d	           d {V  | j        s| j        )|                     |          S )
NTrf   r   r      zEMultiple access to StreamReader in eof state, might be infinite loop.)
stack_infor    rJ   )rc   r`   r^   getattrrf   r   warningrO   r{   r|   r   _read_nowait)r)   rG   blocksblocks       r!   rJ   zStreamReader.read  sT     ?&/!	y  $+D.!$D$Dq$H!$q((#+2#'     	3q55
 F%"llnn,,,,,, e$$$	%
 88F###
 , 	%ty 	%**V$$$$$$$$$ , 	%ty 	%   ###r    c                    K   | j         | j         | j        s0| j        s)|                     d           d {V  | j        s| j        )|                     d          S )NrO   r   )rc   r^   r`   r   r   r-   s    r!   rO   zStreamReader.readany  sz      ?&/!
 , 	(ty 	(**Y''''''''' , 	(ty 	(   $$$r    c                   K   	 | j         | j         | j        rk| j                                        }|| j        k    rdS || j        k    r|                     || j        z
            dfS t          j        d           | j        k| j        r|                     d          dfS | j	        rdS | 
                    d           d{V  )	a  Returns a tuple of (data, end_of_http_chunk).

        When chunked transfer
        encoding is used, end_of_http_chunk is a boolean indicating if the end
        of the data corresponds to the end of a HTTP chunk , otherwise it is
        always False.
        TNr    TzESkipping HTTP chunk end due to data consumption beyond chunk boundaryr   Fr?   r@   )rc   r]   popleftr\   r   r   r   r^   r   r`   r   )r)   r   s     r!   r@   zStreamReader.readchunk  s     	**o%) 	-5577$,&&&;%% --cDL.@AA4HH'8   ) 	 | <//33U;; y $ $|**[)))))))))1	*r    c                 d  K   | j         | j         g }|dk    r|                     |           d {V }|s:d                    |          }t          j        |t          |          |z             |                    |           |t          |          z  }|dk    d                    |          S )Nr   r    )rc   rJ   r|   rq   IncompleteReadErrorr   r{   )r)   rG   r   r   partials        r!   readexactlyzStreamReader.readexactly  s      ?&/! !ee))A,,&&&&&&E M((6**1'3w<<!;KLLLMM%   UOA !ee xxr    c                     | j         | j         | j        r(| j                                        st          d          |                     |          S )Nz9Called while some coroutine is waiting for incoming data.)rc   ra   doner   r   rL   s     r!   read_nowaitzStreamReader.read_nowait	  s^    
 ?&/!< 	 1 1 3 3 	K     ###r    c                    | j         d         }| j        }|dk    r4t          |          |z
  |k    r||||z            }| xj        |z  c_        nF|r+| j                                          ||d          }d| _        n| j                                         }t          |          }| xj        |z  c_        | xj        |z  c_        | j        }|r8|d         | j        k     r'|                                 |r|d         | j        k     '| j        j        rM| j        | j	        k     r=| j        t          | j                  | j
        k     r| j                                         |S )Nr   r   )r^   r_   r   r   r[   r\   r]   rU   r   rV   rX   r   )r)   rG   first_bufferr   r   r   chunk_splitss          r!   r   zStreamReader._read_nowait_chunk  s{   |A$77s<((61A55! 34D1$ 	*L  """(D"#D <''))Dt99

h

 . 	#|A==  """  	#|A== N*	,
T_,,'/t.//$2HHH N))+++r    c                    | j                                          g }| j        rP|                     |          }|                    |           |dk    r|t          |          z  }|dk    rn| j        P|rd                    |          ndS )z6Read not more than n bytes, or whole buffer if n == -1r   r   r    )rd   assert_timeoutr^   r   r{   r   r|   )r)   rG   chunksr   s       r!   r   zStreamReader._read_nowait;  s    ""$$$l 	++A..EMM%   BwwSZZ66 l 	 $*2sxxs2r    r&   Nr   )r   r   ),r   r   r   r   r6   r   rS   r	   r   rq   AbstractEventLoopr*   strr~   r
   r   BaseExceptionr   r   r   r   r   r   rB   r   r   r   propertyr   rA   r   r   r   r   r   rF   r   rJ   rO   r@   r   r   r   r   r   r    r!   r   r   f   s        I8 -148 :  :  : :  :
 () : w01 : 
 :  :  :  :D'# ' ' ' '3c3h 3 3 3 38M2     $12 22 !2 
	2 2 2 2$1xD1 1d 1 1 1 1$ $ $ $0    . . . . .	$ 	$ 	$ 	$ + + + + X+
 $    (+ +e +3 +t + + + +&: : : :%% %% %% %%N S  T        * BF > > ># >% > > > > "'%EI% % %%5=c]%	% % % %N($ ($C ($ ($ ($ ($ ($T
%u 
% 
% 
% 
% *ud{!3  *  *  *  *D 3  5        $ $S $% $ $ $ $!C !E ! ! ! !F3c 3e 3 3 3 3 3 3r    r   c                   2   e Zd ZdZddZdefdZdee         fdZ	e
fdededdfd	Zd
eg df         ddfdZddZdefdZdefdZddZddededdfdZdddee         defdZddedefdZdefdZdeeef         fdZdedefdZddedefdZdS ) EmptyStreamReader_read_eof_chunkr&   Nc                 "    d| _         d| _        d S )NFr   )r   rg   r-   s    r!   r*   zEmptyStreamReader.__init__O  s    $r    c                      d| j         j        z  S )Nrx   )rz   r   r-   s    r!   r~   zEmptyStreamReader.__repr__S  s    ///r    c                     d S r(   r   r-   s    r!   r   zEmptyStreamReader.exceptionV      tr    r   r   c                     d S r(   r   )r)   r   r   s      r!   r   zEmptyStreamReader.set_exceptionY  s	    
 	r    r   c                 f    	  |             d S # t           $ r t          j        d           Y d S w xY wr   )r   r   r   r   s     r!   r   zEmptyStreamReader.on_eof`  sQ    	CHJJJJJ 	C 	C 	C%&ABBBBBB	Cs   
 00c                     d S r(   r   r-   s    r!   r   zEmptyStreamReader.feed_eoff      r    c                     dS NTr   r-   s    r!   r   zEmptyStreamReader.is_eofi  r   r    c                     dS r   r   r-   s    r!   r   zEmptyStreamReader.at_eofl  r   r    c                 
   K   d S r(   r   r-   s    r!   r   zEmptyStreamReader.wait_eofo  s      r    r   r   rG   c                     d S r(   r   )r)   r   rG   s      r!   r   zEmptyStreamReader.feed_datar  r   r    r   r   c                
   K   dS r1   r   r   s     r!   rF   zEmptyStreamReader.readlineu        sr    r   c                 
   K   dS r1   r   rL   s     r!   rJ   zEmptyStreamReader.readx  r  r    c                 
   K   dS r1   r   r-   s    r!   rO   zEmptyStreamReader.readany}  r  r    c                 *   K   | j         s	d| _         dS dS )NTr?   r   r   r-   s    r!   r@   zEmptyStreamReader.readchunk  s#      # 	 #'D <{r    c                 0   K   t          j        d|          r1   )rq   r   rL   s     r!   r   zEmptyStreamReader.readexactly  s      )#q111r    c                     dS r1   r   rL   s     r!   r   zEmptyStreamReader.read_nowait  s    sr    r   r   r   )r   r   r   r6   r*   r   r~   r	   r   r   r   r   r   r   r   rB   r   r   r   rA   rS   r   rF   rJ   rO   r
   r@   r   r   r   r    r!   r   r   K  sE       $I   0# 0 0 0 08M2     $1  ! 
	   CxD1 Cd C C C C               e  D     BF   # %     C     
u    ud{!3    23 25 2 2 2 2 S %      r    r   r   c                       e Zd ZdZdej        ddfdZdefdZde	fdZ
de	fdZdee         fd	Zefd
ededdfdZddededdfdZddZdefdZdee         fdZdS )r   z>DataQueue is a general-purpose blocking queue with one reader.rj   r&   Nc                 n    || _         d| _        d | _        d | _        t	          j                    | _        d S )NF)rZ   r`   ra   rc   rt   ru   r^   )r)   rj   s     r!   r*   zDataQueue.__init__  s2    
	7;37.9.?.A.Ar    c                 *    t          | j                  S r(   )r   r^   r-   s    r!   __len__zDataQueue.__len__  s    4<   r    c                     | j         S r(   r   r-   s    r!   r   zDataQueue.is_eof  s
    yr    c                      | j         o| j         S r(   r   r-   s    r!   r   zDataQueue.at_eof  s    y---r    c                     | j         S r(   r   r-   s    r!   r   zDataQueue.exception  r   r    r   r   c                 h    d| _         || _        | j        x}d | _        t          |||           d S d S r   )r`   rc   ra   r   r   s       r!   r   zDataQueue.set_exception  sF    
 	l"F/DL&#y11111 0/r    r   r   r   c                     | j                             ||f           | j        x}d | _        t          |d            d S d S r(   )r^   r{   ra   r   )r)   r   r   r   s       r!   r   zDataQueue.feed_data  sN    T4L)))l"F/DLvt$$$$$ 0/r    c                 X    d| _         | j        x}d | _        t          |d            d S d S r   )r`   ra   r   )r)   r   s     r!   r   zDataQueue.feed_eof  s;    	l"F/DLvt$$$$$ 0/r    c                 P  K   | j         sd| j        s]| j        rJ | j                                        | _        	 | j         d {V  n'# t
          j        t
          j        f$ r	 d | _         w xY w| j         r| j                                         \  }}|S | j	        | j	        t          r(   )r^   r`   ra   rZ   r   rq   CancelledErrorTimeoutErrorr   rc   r   )r)   r   _s      r!   rJ   zDataQueue.read  s      | 	DI 	|###:3355DLl""""""""*G,@A   # < 	l**,,GD!K?&/!   A $A+c                 *    t          | j                  S r(   )r#   rJ   r-   s    r!   r.   zDataQueue.__aiter__  s    "49---r    r   r   )r   r   r   r   rq   r   r*   rS   r
  rB   r   r   r	   r   r   r   r   r   r   r   rJ   r#   r.   r   r    r!   r   r     sn       HHBW6 B4 B B B B! ! ! ! !    . . . . .8M2     $1	2 	2	2 !	2 
		2 	2 	2 	2% %b % %D % % % %% % % %B     ..r2 . . . . . .r    r   c                   d     e Zd ZdZdededej        ddf fdZdd	e	d
eddf fdZ
de	fdZ xZS )FlowControlDataQueuezFlowControlDataQueue resumes and pauses an underlying stream.

    It is a destination for parsed data.

    This class is deprecated and will be removed in version 4.0.
    rk   rl   rj   r&   Nc                |    t                                          |           d| _        || _        |dz  | _        d S )N)rj   r   rn   )superr*   r[   rU   _limit)r)   rk   rl   rj   rz   s       r!   r*   zFlowControlDataQueue.__init__  s=     	d###
!air    r   r   r   c                     t                                          ||           | xj        |z  c_        | j        | j        k    r'| j        j        s| j                                         d S d S d S r(   )r  r   r[   r  rU   r   r   )r)   r   r   rz   s      r!   r   zFlowControlDataQueue.feed_data  sn    $%%%

d

:##DN,J#N((***** $###r    c                   K   | j         sd| j        s]| j        rJ | j                                        | _        	 | j         d {V  n'# t
          j        t
          j        f$ r	 d | _         w xY w| j         rc| j                                         \  }}| xj	        |z  c_	        | j	        | j
        k     r%| j        j        r| j                                         |S | j        | j        t          r(   )r^   r`   ra   rZ   r   rq   r  r  r   r[   r  rU   r   r   rc   r   )r)   r   r   s      r!   rJ   zFlowControlDataQueue.read  s     | 	DI 	|###:3355DLl""""""""*G,@A   # < 	--//JD$JJ$JJzDK''DN,J'--///K?&/!r  r   )r   r   r   r   r   rS   rq   r   r*   r   r   rJ   __classcell__)rz   s   @r!   r  r    s          $ -0 ;B;T 	           + +b + +D + + + + + +B        r    r  )&rq   rt   r   typingr   r   r   r   r   r   r	   r
   r   base_protocolr   helpersr   r   r   r   r   http_exceptionsr   logr   __all__r   r   r   r#   r8   rD   r   r   r   __annotations__r   r  r   r    r!   <module>r&     s        
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ( ' ' ' ' '              ) ( ( ( ( (             WT]]! ! ! ! !	 ! ! !    '"+   (       "3 3 3 3 3 3 3 30b3 b3 b3 b3 b3) b3 b3 b3J@ @ @ @ @ @ @ @F &7%6%8%8u\" 8 8 8>. >. >. >. >. >. >. >.B( ( ( ( (9R= ( ( ( ( (r    