Ë
    ŠV.j—Y  ã                   ón  — 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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#y)é    N)	Ú	AwaitableÚCallableÚDequeÚFinalÚGenericÚListÚOptionalÚTupleÚTypeVaré   )ÚBaseProtocol)Ú_EXC_SENTINELÚBaseTimerContextÚ	TimerNoopÚset_exceptionÚ
set_result)Úinternal_logger)ÚEMPTY_PAYLOADÚ	EofStreamÚStreamReaderÚ	DataQueueÚ_Tc                   ó   — e Zd ZdZy)r   zeof stream indication.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úQC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\aiohttp/streams.pyr   r   $   s   „ Ú r   r   c                   óD   — 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	y)	ÚAsyncStreamIterator©Ú	read_funcr$   ÚreturnNc                 ó   — || _         y ©Nr#   )Úselfr$   s     r    Ú__init__zAsyncStreamIterator.__init__,   s	   € Ø"ˆ�r   c                 ó   — | S r'   r   ©r(   s    r    Ú	__aiter__zAsyncStreamIterator.__aiter__/   ó   € Øˆr   c              ƒ   ó€   K  — 	 | j                  «       ƒ d {  –—† }|dk(  rt        ‚|S 7 Œ# t        $ r t        ‚w xY w­w©Nr   )r$   r   ÚStopAsyncIteration©r(   Úrvs     r    Ú	__anext__zAsyncStreamIterator.__anext__2   sG   è ø€ ð	%Ø—~‘~Ó'×'ˆBð �Š9Ü$Ð$Øˆ	ð (ùÜò 	%Ü$Ð$ð	%üs    ‚>„+ —)˜+ œ>©+ «;»>)r%   zAsyncStreamIterator[_T])
r   r   r   Ú	__slots__r   r   r   r)   r,   r3   r   r   r    r"   r"   (   s9   „ à€Ið# (¨2¨y¸©}Ð+<Ñ"=ð #À$ó #óð ô r   r"   c                   ó6   — e Zd ZdZdd„Zdd„Zdeeef   fd„Z	y)	ÚChunkTupleAsyncStreamIterator©Ú_streamr%   Nc                 ó   — || _         y r'   r7   )r(   Ústreams     r    r)   z&ChunkTupleAsyncStreamIterator.__init__@   s	   € Øˆ�r   c                 ó   — | S r'   r   r+   s    r    r,   z'ChunkTupleAsyncStreamIterator.__aiter__C   r-   r   c              ƒ   ól   K  — | j                   j                  «       ƒ d {  –—† }|dk(  rt        ‚|S 7 Œ­w)N©r   F)r8   Ú	readchunkr0   r1   s     r    r3   z'ChunkTupleAsyncStreamIterator.__anext__F   s3   è ø€ Ø—<‘<×)Ñ)Ó+×+ˆØ�ÒÜ$Ð$Øˆ	ð ,ús   ‚4 2¡4)r:   r   r%   N)r%   r6   )
r   r   r   r4   r)   r,   r
   ÚbytesÚboolr3   r   r   r    r6   r6   <   s&   „ à€Ióóð  u¨d {Ñ!3ô r   r6   c                   óV   — 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y)	ÚAsyncStreamReaderMixinr   r%   c                 ó,   — t        | j                  «      S r'   )r"   Úreadliner+   s    r    r,   z AsyncStreamReaderMixin.__aiter__Q   s   € Ü" 4§=¡=Ó1Ð1r   Únc                 ó$   ‡ ‡— t        ˆˆ fd„«      S )z>Returns an asynchronous iterator that yields chunks of size n.c                  ó&   •— ‰j                  ‰ «      S r'   )Úread)rE   r(   s   €€r    Ú<lambda>z5AsyncStreamReaderMixin.iter_chunked.<locals>.<lambda>V   s   ø€ ¨4¯9©9°Q¬<r   )r"   ©r(   rE   s   ``r    Úiter_chunkedz#AsyncStreamReaderMixin.iter_chunkedT   s   ù€ ä"Ô#7Ó8Ð8r   c                 ó,   — t        | j                  «      S )z3Yield all available data as soon as it is received.)r"   Úreadanyr+   s    r    Úiter_anyzAsyncStreamReaderMixin.iter_anyX   s   € ä" 4§<¡<Ó0Ð0r   c                 ó   — t        | «      S )z´Yield 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.
        )r6   r+   s    r    Úiter_chunksz"AsyncStreamReaderMixin.iter_chunks\   s   € ô -¨TÓ2Ð2r   N)r   r   r   r4   r"   r?   r,   ÚintrK   rN   r6   rP   r   r   r    rB   rB   M   sQ   „ à€Ið2Ð.¨uÑ5ó 2ð9˜cð 9Ð&9¸%Ñ&@ó 9ð1Ð-¨eÑ4ó 1ð3Ð:ô 3r   rB   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d*d„Zd	efd„Zd	efd„Zd*d„Zded	dfd„Zd+deded	dfd„Zd*d„Zd*d„Zded	dfd„Z d	efd„Z!d,d 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"ed	efd(„Z(d"ed	efd)„Z)y).r   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Ú_loopÚ_sizeÚ_cursorÚ_http_chunk_splitsÚ_bufferÚ_buffer_offsetÚ_eofÚ_waiterÚ_eof_waiterÚ
_exceptionÚ_timerÚ_eof_callbacksÚ_eof_counterÚtotal_bytesN)ÚtimerÚloopÚprotocolÚlimitrd   re   r%   c                ó`  — || _         || _        |dz  | _        |€t        j                  «       }|| _        d| _        d| _        d | _        t        j                  «       | _        d| _        d| _        d | _        d | _        d | _        |€
t#        «       n|| _        g | _        d| _        d| _        y )Né   r   F)rS   rT   rU   ÚasyncioÚget_event_looprV   rW   rX   rY   ÚcollectionsÚdequerZ   r[   r\   r]   r^   r_   r   r`   ra   rb   rc   )r(   rf   rg   rd   re   s        r    r)   zStreamReader.__init__‡   sª   € ð "ˆŒØˆŒØ  1™9ˆÔØˆ<Ü×)Ñ)Ó+ˆDØˆŒ
ØˆŒ
ØˆŒØ7;ˆÔÜ%0×%6Ñ%6Ó%8ˆŒØˆÔØˆŒ	Ø7;ˆŒØ;?ˆÔØ37ˆŒØ%* ]”i”k¸ˆŒØ8:ˆÔØˆÔØˆÕr   c                 ó   — | j                   j                  g}| j                  r|j                  d| j                  z  «       | j                  r|j                  d«       | j
                  dk7  r*|j                  d| j
                  | j                  fz  «       | j                  r|j                  d| j                  z  «       | j                  r|j                  d| j                  z  «       ddj                  |«      z  S )	Nz%d bytesÚeofi   zlow=%d high=%dzw=%rze=%rú<%s>Ú )
Ú	__class__r   rW   Úappendr\   rT   rU   r]   r_   Újoin)r(   Úinfos     r    Ú__repr__zStreamReader.__repr__£   s»   € Ø—‘×'Ñ'Ð(ˆØ�:Š:Ø�K‰K˜
 T§Z¡ZÑ/Ô0Ø�9Š9Ø�K‰K˜ÔØ�?‰?˜eÒ#Ø�K‰KÐ(¨D¯O©O¸T×=MÑ=MÐ+NÑNÔOØ�<Š<Ø�K‰K˜ §¡Ñ-Ô.Ø�?Š?Ø�K‰K˜ §¡Ñ0Ô1Ø˜Ÿ™ ›Ñ&Ð&r   c                 ó2   — | j                   | j                  fS r'   )rT   rU   r+   s    r    Úget_read_buffer_limitsz#StreamReader.get_read_buffer_limits±   s   € Ø—‘ ×!1Ñ!1Ð2Ð2r   c                 ó   — | j                   S r'   ©r_   r+   s    r    Ú	exceptionzStreamReader.exception´   ó   € Ø�‰Ðr   ÚexcÚ	exc_causec                 óÐ   — || _         | j                  j                  «        | j                  }|�d | _        t	        |||«       | j
                  }|�d | _        t	        |||«       y y r'   )r_   ra   Úclearr]   r   r^   ©r(   r}   r~   Úwaiters       r    r   zStreamReader.set_exception·   si   € ð
 ˆŒØ×Ñ×!Ñ!Ô#à—‘ˆØÐØˆDŒLÜ˜& # yÔ1à×!Ñ!ˆØÐØ#ˆDÔÜ˜& # yÕ1ð r   Úcallbackc                 ó¬   — | j                   r		  |«        y | j                  j                  |«       y # t        $ r t        j                  d«       Y y w xY w©NúException in eof callback)r\   Ú	Exceptionr   r{   ra   rs   ©r(   rƒ   s     r    Úon_eofzStreamReader.on_eofÉ   sL   € Ø�9Š9ðGÙ•
ð ×Ñ×&Ñ& xÕ0øô ò GÜ×)Ñ)Ð*EÖFðGús   Ž2 ²AÁAc                 óD  — d| _         | j                  }|�d | _        t        |d «       | j                  }|�d | _        t        |d «       | j                  D ]
  }	  |«        Œ | j                  j                  «        y # t
        $ r t        j                  d«       Y ŒHw xY w)NTr†   )	r\   r]   r   r^   ra   r‡   r   r{   r€   )r(   r‚   Úcbs      r    Úfeed_eofzStreamReader.feed_eofÒ   s�   € ØˆŒ	à—‘ˆØÐØˆDŒLÜ�v˜tÔ$à×!Ñ!ˆØÐØ#ˆDÔÜ�v˜tÔ$à×%Ô%ˆBðGÙ•ð &ð 	×Ñ×!Ñ!Õ#øô ò GÜ×)Ñ)Ð*EÖFðGús   ÁA>Á>BÂBc                 ó   — | j                   S )z&Return True if  'feed_eof' was called.©r\   r+   s    r    Úis_eofzStreamReader.is_eofç   s   € à�y‰yÐr   c                 ó8   — | j                   xr | j                   S )z=Return True if the buffer is empty and 'feed_eof' was called.©r\   rZ   r+   s    r    Úat_eofzStreamReader.at_eofë   s   € à�y‰yÒ- §¡Ð-Ð-r   c              ƒ   óÔ   K  — | j                   ry | j                  �J ‚| j                  j                  «       | _        	 | j                  ƒ d {  –—†  d | _        y 7 Œ# d | _        w xY w­wr'   )r\   r^   rV   Úcreate_futurer+   s    r    Úwait_eofzStreamReader.wait_eofï   sa   è ø€ Ø�9Š9Øà×ÑÐ'Ð'Ð'ØŸ:™:×3Ñ3Ó5ˆÔð	$Ø×"Ñ"×"Ð"à#ˆDÕð #ùà#ˆDÕüs.   ‚;A(¾A ÁAÁA ÁA(ÁA Á	A%Á%A(Údatac                 óv  — t        j                  dt        d¬«       |sy| j                  r0| j                  d   | j                  d | j                  d<   d| _        | xj
                  t        |«      z  c_        | xj                  t        |«      z  c_        | j                  j                  |«       d| _	        y)zDrollback reading some data from stream, inserting it to buffer head.zJunread_data() is deprecated and will be removed in future releases (#3260)ri   )Ú
stacklevelNr   )
ÚwarningsÚwarnÚDeprecationWarningr[   rZ   rW   ÚlenrX   Ú
appendleftrb   )r(   r–   s     r    Úunread_datazStreamReader.unread_dataú   s“   € ä�‰ð=äØõ		
ñ Øà×ÒØ"Ÿl™l¨1™o¨d×.AÑ.AÐ.CÐDˆD�L‰L˜‰OØ"#ˆDÔØ�
Š
”c˜$“iÑ�
Ø�Šœ˜D›	Ñ!�Ø�‰×Ñ Ô%ØˆÕr   Úsizec                 ó¨  — | j                   rJ d«       ‚|sy t        |«      }| xj                  |z  c_        | j                  j	                  |«       | xj
                  |z  c_        | j                  }|�d | _        t        |d «       | j                  | j                  kD  r2| j                  j                  s| j                  j                  «        y y y )Nzfeed_data after feed_eof)r\   rœ   rW   rZ   rs   rc   r]   r   rU   rS   Ú_reading_pausedÚpause_reading)r(   r–   rŸ   Údata_lenr‚   s        r    Ú	feed_datazStreamReader.feed_data  s«   € Ø—9’9Ð8Ð8Ó8ˆ}áØä�t“9ˆØ�
Š
�hÑ�
Ø�‰×Ñ˜DÔ!Ø×Ò˜HÑ$Õà—‘ˆØÐØˆDŒLÜ�v˜tÔ$à�:‰:˜×(Ñ(Ò(°·±×1OÒ1OØ�N‰N×(Ñ(Õ*ð 2PÐ(r   c                 óZ   — | j                   €| j                  rt        d«      ‚g | _         y y )Nz@Called begin_http_chunk_receiving when some data was already fed)rY   rc   ÚRuntimeErrorr+   s    r    Úbegin_http_chunk_receivingz'StreamReader.begin_http_chunk_receiving!  s6   € Ø×"Ñ"Ð*Ø×ÒÜ"ØVóð ð ')ˆDÕ#ð +r   c                 ó  — | j                   €t        d«      ‚| j                   r| j                   d   nd}| j                  |k(  ry | j                   j                  | j                  «       | j                  }|�d | _        t        |d «       y y )NzFCalled end_chunk_receiving without calling begin_chunk_receiving firstéÿÿÿÿr   )rY   r¦   rc   rs   r]   r   )r(   Úposr‚   s      r    Úend_http_chunk_receivingz%StreamReader.end_http_chunk_receiving)  s�   € Ø×"Ñ"Ð*Üð.óð ð .2×-DÒ-Dˆd×%Ñ% bÒ)È!ˆà×Ñ˜sÒ"ð à×Ñ×&Ñ& t×'7Ñ'7Ô8ð —‘ˆØÐØˆDŒLÜ�v˜tÕ$ð r   Ú	func_namec              ƒ   óF  K  — | j                   j                  st        d«      ‚| j                  �t        d|z  «      ‚| j                  j                  «       x}| _        	 | j                  5  |ƒ d {  –—†  d d d «       d | _        y 7 Œ# 1 sw Y   ŒxY w# d | _        w xY w­w)NzConnection closed.zH%s() called while another coroutine is already waiting for incoming data)rS   Ú	connectedr¦   r]   rV   r”   r`   )r(   r¬   r‚   s      r    Ú_waitzStreamReader._waitG  s™   è ø€ Ø�~‰~×'Ò'ÜÐ3Ó4Ð4ð �<‰<Ð#Üð4Ø6?ñ@óð ð
 !%§
¡
× 8Ñ 8Ó :Ð:ˆ�”ð	 Ø—“Ø—�÷ ð  ˆD�Lð ø÷ �ûð  ˆD�LüsH   ‚AB!Á B Á,B	Á2BÁ3B	Á7B Á?B!ÂB	Â	BÂB Â	BÂB!c              ƒ   ó>   K  — | j                  «       ƒ d {  –—† S 7 Œ­wr'   )Ú	readuntilr+   s    r    rD   zStreamReader.readline\  s   è ø€ Ø—^‘^Ó%×%Ð%Ð%ús   ‚–—Ú	separatorc              ƒ   ó  K  — t        |«      }|dk(  rt        d«      ‚| j                  �| j                  ‚d}d}d}|rÇ| j                  rŽ|rŒ| j                  }| j                  d   j                  ||«      dz   }| j                  |r||z
  |z   dz
  nd«      }||z  }|t        |«      z  }|rd}|| j                  kD  rt        d«      ‚| j                  r|rŒŒ| j                  r	 |S |r| j                  d	«      ƒ d {  –—†  |rŒÇ|S 7 Œ	­w)
Nr   z,Separator should be at least one-byte stringr   Tr   r©   FzChunk too bigr±   )
rœ   Ú
ValueErrorr_   rZ   r[   ÚfindÚ_read_nowait_chunkrU   r\   r¯   )	r(   r²   ÚseplenÚchunkÚ
chunk_sizeÚ
not_enoughÚoffsetÚicharr–   s	            r    r±   zStreamReader.readuntil_  s   è ø€ Ü�Y“ˆØ�QŠ;ÜÐKÓLÐLà�?‰?Ð&Ø—/‘/Ð!àˆØˆ
Øˆ
áØ—,’,¡:Ø×,Ñ,�ØŸ™ Q™×,Ñ,¨Y¸Ó?À!ÑC�à×.Ñ.Ù38�E˜F‘N VÑ+¨aÒ/¸bó�ð ˜‘�Øœc $›iÑ'�
ÙØ!&�Jà × 0Ñ 0Ò0Ü$ _Ó5Ð5ð —,’,¢:ð �yŠyØð
 ˆñ Ø—j‘j Ó-×-Ð-ò) ð, ˆð .ús   ‚CD	Ã%D	Ã=DÃ>D	ÄD	rE   c              ƒ   ó2  K  — | j                   �| j                   ‚	 | j                  rG| j                  s;t        | dd«      dz   | _        | j                  dkD  rt        j                  dd¬«       |sy|dk  rAg }	 | j                  «       ƒ d {  –—† }|sn|j                  |«       Œ-dj                  |«      S | j                  s>| j                  s2| j                  d	«      ƒ d {  –—†  | j                  s| j                  sŒ2| j                  |«      S 7 Œ…7 Œ0­w)
NTrb   r   r   é   zEMultiple access to StreamReader in eof state, might be infinite loop.)Ú
stack_infor   rH   )r_   r\   rZ   Úgetattrrb   r   ÚwarningrM   rs   rt   r¯   Ú_read_nowait)r(   rE   ÚblocksÚblocks       r    rH   zStreamReader.readƒ  s  è ø€ Ø�?‰?Ð&Ø—/‘/Ð!ð Ø�yŠy §¢Ü$+¨D°.À!Ó$DÀqÑ$H�Ô!Ø×$Ñ$ qÒ(Ü#×+Ñ+ð2à#'õñ ØàˆqŠ5ð
 ˆFØØ"Ÿl™l›n×,�ÙØØ—‘˜eÔ$ð	 ð
 —8‘8˜FÓ#Ð#ð
 —,’, t§y¢yØ—*‘*˜VÓ$×$Ð$ð —,’, t§y£yð × Ñ  Ó#Ð#ð -øð %ús+   ‚BDÂDÂADÃ$DÃ%DÄDÄDc              ƒ   óô   K  — | j                   �| j                   ‚| j                  s>| j                  s2| j                  d«      ƒ d {  –—†  | j                  s| j                  sŒ2| j	                  d«      S 7 Œ.­w)NrM   r©   )r_   rZ   r\   r¯   rÂ   r+   s    r    rM   zStreamReader.readany­  sb   è ø€ Ø�?‰?Ð&Ø—/‘/Ð!ð
 —,’, t§y¢yØ—*‘*˜YÓ'×'Ð'ð —,’, t§y£yð × Ñ  Ó$Ð$ð (ús   ‚AA8ÁA6ÁA8Á%A8c              ƒ   óÜ  K  — 	 | j                   �| j                   ‚| j                  r|| j                  j                  d«      }|| j                  k(  ry|| j                  kD  r | j	                  || j                  z
  «      dfS t        j                  d«       | j                  rŒ|| j                  r| j                  d«      dfS | j                  ry| j                  d	«      ƒ d{  –—†  Œæ7 Œ­w)
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.
        TNr   ©r   TzESkipping HTTP chunk end due to data consumption beyond chunk boundaryr©   Fr=   r>   )r_   rY   ÚpoprX   rÂ   r   rÁ   rZ   r¶   r\   r¯   )r(   rª   s     r    r>   zStreamReader.readchunk¹  sß   è ø€ ð Ø�‰Ð*Ø—o‘oÐ%à×)Ò)Ø×-Ñ-×1Ñ1°!Ó4�Ø˜$Ÿ,™,Ò&Ø&Ø˜Ÿ™Ò%Ø ×-Ñ-¨c°D·L±LÑ.@ÓAÀ4ÐHÐHÜ×'Ñ'ð8ôð ×)Ó)ð �|Š|Ø×/Ñ/°Ó3°UÐ;Ð;ð �yŠyð $à—*‘*˜[Ó)×)Ð)ð1 ð0 *ús   ‚B!C,Â$A C,Ã$C*Ã%C,c              ƒ   óT  K  — | j                   �| j                   ‚g }|dkD  rs| j                  |«      ƒ d {  –—† }|s3dj                  |«      }t        j                  |t        |«      |z   «      ‚|j                  |«       |t        |«      z  }|dkD  rŒsdj                  |«      S 7 Œo­w)Nr   r   )r_   rH   rt   rj   ÚIncompleteReadErrorrœ   rs   )r(   rE   rÃ   rÄ   Úpartials        r    ÚreadexactlyzStreamReader.readexactlyÛ  s›   è ø€ Ø�?‰?Ð&Ø—/‘/Ð!à ˆØ�!ŠeØŸ)™) A›,×&ˆEÙØŸ(™( 6Ó*�Ü×1Ñ1°'¼3¸w»<È!Ñ;KÓLÐLØ�M‰M˜%Ô Ø”�U“‰OˆAð �!‹eð �x‰x˜ÓÐð 'ús   ‚4B(¶B&·AB(ÂB(c                 ó¶   — | j                   �| j                   ‚| j                  r%| j                  j                  «       st        d«      ‚| j	                  |«      S )Nz9Called while some coroutine is waiting for incoming data.)r_   r]   Údoner¦   rÂ   rJ   s     r    Úread_nowaitzStreamReader.read_nowaitê  sQ   € ð
 �?‰?Ð&Ø—/‘/Ð!à�<Š< §¡× 1Ñ 1Ô 3ÜØKóð ð × Ñ  Ó#Ð#r   c                 ó²  — | j                   d   }| j                  }|dk7  r/t        |«      |z
  |kD  r||||z    }| xj                  |z  c_        nC|r'| j                   j                  «        ||d  }d| _        n| j                   j                  «       }t        |«      }| xj                  |z  c_        | xj
                  |z  c_        | j                  }|r8|d   | j
                  k  r&|j                  d«       |r|d   | j
                  k  rŒ&| j                  | j                  k  r0| j                  j                  r| j                  j                  «        |S )Nr   r©   )rZ   r[   rœ   ÚpopleftrW   rX   rY   rÈ   rT   rS   r¡   Úresume_reading)r(   rE   Úfirst_bufferr»   r–   r£   Úchunk_splitss          r    r¶   zStreamReader._read_nowait_chunkù  s%  € Ø—|‘| A‘ˆØ×$Ñ$ˆØ�Š7”s˜<Ó(¨6Ñ1°AÒ5Ø ¨°!©Ð4ˆDØ×Ò 1Ñ$ÖáØ�L‰L× Ñ Ô"Ø  Ð(ˆDØ"#ˆDÕð —<‘<×'Ñ'Ó)ˆDä�t“9ˆØ�
Š
�hÑ�
Ø�Š˜Ñ �à×.Ñ.ˆá˜|¨A™°·±Ò=Ø×Ñ˜QÔñ ˜|¨A™°·±Ó=ð �:‰:˜Ÿ™Ò'¨D¯N©N×,JÒ,JØ�N‰N×)Ñ)Ô+Øˆr   c                 ó  — | j                   j                  «        g }| j                  rH| j                  |«      }|j	                  |«       |dk7  r|t        |«      z  }|dk(  rn| j                  rŒH|rdj                  |«      S dS )z6Read not more than n bytes, or whole buffer if n == -1r©   r   r   )r`   Úassert_timeoutrZ   r¶   rs   rœ   rt   )r(   rE   Úchunksr¸   s       r    rÂ   zStreamReader._read_nowait  sy   € à�‰×"Ñ"Ô$àˆØ�lŠlØ×+Ñ+¨AÓ.ˆEØ�M‰M˜%Ô Ø�BŠwØ”S˜“Z‘�Ø˜’6Øð �l‹lñ $*ˆs�x‰x˜ÓÐ2¨sÐ2r   ©r%   N©r   )ó   
©r©   )*r   r   r   r   r4   r   rQ   r	   r   rj   ÚAbstractEventLoopr)   Ústrrv   r
   rx   ÚBaseExceptionr{   r   r   r   r‰   rŒ   r@   r�   r’   r•   r?   rž   r¤   r§   r«   r¯   rD   r±   rH   rM   r>   rÌ   rÏ   r¶   rÂ   r   r   r    r   r   e   sÝ  „ ñð€Ið2 -1Ø48òàðð ðð
 Ð(Ñ)ðð �w×0Ñ0Ñ1ðð 
óð8'˜#ó 'ð3¨¨c°3¨h©ó 3ð˜8 MÑ2ó ð $1ñ2àð2ð !ð2ð 
ó	2ð$1˜x¨¨D¨Ñ1ð 1°dó 1ó$ð*˜ó ð.˜ó .ó	$ð ð ¨$ó ñ(+˜eð +¨3ð +°tó +ó&)ó%ð<  Sð  ¨Tó  ð*& ó &ñ"¨ð "¸5ó "ñH($˜Cð ($¨ó ($ðT
%˜uó 
%ð *  u¨d {Ñ!3ó  *ðD  3ð  ¨5ó  ñ$˜Sð $¨%ó $ð Cð ¨Eó ð83˜cð 3 eô 3r   r   c                   ó  — 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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y)ÚEmptyStreamReader©Ú_read_eof_chunkr%   Nc                 ó   — d| _         y ©NFrá   r+   s    r    r)   zEmptyStreamReader.__init__)  s
   € Ø$ˆÕr   c                 ó4   — d| j                   j                  z  S )Nrp   )rr   r   r+   s    r    rv   zEmptyStreamReader.__repr__,  s   € Ø˜Ÿ™×/Ñ/Ñ/Ð/r   c                  ó   — y r'   r   r+   s    r    r{   zEmptyStreamReader.exception/  ó   € Ør   r}   r~   c                  ó   — y r'   r   )r(   r}   r~   s      r    r   zEmptyStreamReader.set_exception2  s   € ð
 	r   rƒ   c                 ó\   — 	  |«        y # t         $ r t        j                  d«       Y y w xY wr…   )r‡   r   r{   rˆ   s     r    r‰   zEmptyStreamReader.on_eof9  s-   € ð	CÙ�JøÜò 	CÜ×%Ñ%Ð&AÖBð	Cús   ‚
 Š+ª+c                  ó   — y r'   r   r+   s    r    rŒ   zEmptyStreamReader.feed_eof?  ó   € Ør   c                  ó   — y©NTr   r+   s    r    r�   zEmptyStreamReader.is_eofB  rç   r   c                  ó   — yrí   r   r+   s    r    r’   zEmptyStreamReader.at_eofE  rç   r   c              ƒ   ó   K  — y ­wr'   r   r+   s    r    r•   zEmptyStreamReader.wait_eofH  s	   è ø€ Øùó   ‚r–   rE   c                  ó   — y r'   r   )r(   r–   rE   s      r    r¤   zEmptyStreamReader.feed_dataK  rë   r   c              ƒ   ó   K  — y­wr/   r   r+   s    r    rD   zEmptyStreamReader.readlineN  ó	   è ø€ Øùrð   c              ƒ   ó   K  — y­wr/   r   rJ   s     r    rH   zEmptyStreamReader.readQ  ró   rð   c              ƒ   ó   K  — y­wr/   r   r+   s    r    rM   zEmptyStreamReader.readanyV  ró   rð   c              ƒ   ó4   K  — | j                   sd| _         yy­w)NTr=   rÇ   rá   r+   s    r    r>   zEmptyStreamReader.readchunkY  s   è ø€ Ø×#Ò#Ø#'ˆDÔ Øàùs   ‚c              ƒ   ó6   K  — t        j                  d|«      ‚­wr/   )rj   rÊ   rJ   s     r    rÌ   zEmptyStreamReader.readexactly`  s   è ø€ Ü×)Ñ)¨#¨qÓ1Ð1ùs   ‚c                  ó   — yr/   r   rJ   s     r    rÏ   zEmptyStreamReader.read_nowaitc  s   € Ør   rØ   rÙ   rÛ   )r   r   r   r4   r)   rÝ   rv   r	   rÞ   r{   r   r   r   r‰   rŒ   r@   r�   r’   r•   r?   rQ   r¤   rD   rH   rM   r
   r>   rÌ   rÏ   r   r   r    rà   rà   %  s  „ à$€Ió%ð0˜#ó 0ð˜8 MÑ2ó ð $1ñàðð !ðð 
ó	ðC˜x¨¨D¨Ñ1ð C°dó Cóð˜ó ð˜ó óñ˜eð ¨ð °Dó ð ó ñ˜Cð ¨ó ð
˜uó ð  u¨d {Ñ!3ó ð2 3ð 2¨5ó 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y)r   z>DataQueue is a general-purpose blocking queue with one reader.re   r%   Nc                 ón   — || _         d| _        d | _        d | _        t	        j
                  «       | _        y rä   )rV   r\   r]   r_   rl   rm   rZ   )r(   re   s     r    r)   zDataQueue.__init__m  s.   € ØˆŒ
ØˆŒ	Ø7;ˆŒØ37ˆŒÜ.9×.?Ñ.?Ó.Aˆ�r   c                 ó,   — t        | j                  «      S r'   )rœ   rZ   r+   s    r    Ú__len__zDataQueue.__len__t  s   € Ü�4—<‘<Ó Ð r   c                 ó   — | j                   S r'   rŽ   r+   s    r    r�   zDataQueue.is_eofw  s   € Ø�y‰yÐr   c                 ó8   — | j                   xr | j                   S r'   r‘   r+   s    r    r’   zDataQueue.at_eofz  s   € Ø�y‰yÒ- §¡Ð-Ð-r   c                 ó   — | j                   S r'   rz   r+   s    r    r{   zDataQueue.exception}  r|   r   r}   r~   c                 óf   — d| _         || _        | j                  x}�d | _        t        |||«       y y rí   )r\   r_   r]   r   r�   s       r    r   zDataQueue.set_exception€  s9   € ð
 ˆŒ	ØˆŒØ—l‘lÐ"ˆFÐ/ØˆDŒLÜ˜& # yÕ1ð 0r   r–   rŸ   c                 ó‚   — | j                   j                  ||f«       | j                  x}�d | _        t        |d «       y y r'   )rZ   rs   r]   r   )r(   r–   rŸ   r‚   s       r    r¤   zDataQueue.feed_data‹  s=   € Ø�‰×Ñ˜T 4˜LÔ)Ø—l‘lÐ"ˆFÐ/ØˆDŒLÜ�v˜tÕ$ð 0r   c                 óV   — d| _         | j                  x}�d | _        t        |d «       y y rí   )r\   r]   r   )r(   r‚   s     r    rŒ   zDataQueue.feed_eof‘  s.   € ØˆŒ	Ø—l‘lÐ"ˆFÐ/ØˆDŒLÜ�v˜tÕ$ð 0r   c              ƒ   ó²  K  — | j                   sN| j                  sB| j                  rJ ‚| j                  j	                  «       | _        	 | j                  ƒ d {  –—†  | j                   r| j                   j                  «       \  }}|S | j                  �| j                  ‚t        ‚7 ŒM# t
        j                  t
        j                  f$ r	 d | _        ‚ w xY w­wr'   )rZ   r\   r]   rV   r”   rj   ÚCancelledErrorÚTimeoutErrorrÑ   r_   r   )r(   r–   Ú_s      r    rH   zDataQueue.read—  s±   è ø€ Ø�|Š| D§I¢IØ—|’|Ð#Ð#ØŸ:™:×3Ñ3Ó5ˆDŒLðØ—l‘l×"Ð"ð �<Š<Ø—l‘l×*Ñ*Ó,‰GˆD�!ØˆKØ�?‰?Ð&Ø—/‘/Ð!Üˆð #ùÜ×*Ñ*¬G×,@Ñ,@ÐAò Ø#�”Øðüs1   ‚ACÁ	B( ÁB&ÁB( ÁA	CÂ&B( Â(,CÃCc                 ó,   — t        | j                  «      S r'   )r"   rH   r+   s    r    r,   zDataQueue.__aiter__§  s   € Ü" 4§9¡9Ó-Ð-r   rÙ   rØ   )r   r   r   r   rj   rÜ   r)   rQ   rü   r@   r�   r’   r	   rÞ   r{   r   r   r   r¤   rŒ   rH   r"   r,   r   r   r    r   r   j  s¹   „ ÙHðB˜W×6Ñ6ð B¸4ó Bð!˜ó !ð˜ó ð.˜ó .ð˜8 MÑ2ó ð $1ñ	2àð	2ð !ð	2ð 
ó		2ñ%˜bð %¨ð %°Dó %ó%ð˜Bó ð .Ð.¨rÑ2ô .r   r   c                   ón   ‡ — 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 )ÚFlowControlDataQueuez®FlowControlDataQueue 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.
    rf   rg   re   r%   Nc                óV   •— t         ‰| �  |¬«       d| _        || _        |dz  | _        y )N)re   r   ri   )Úsuperr)   rW   rS   Ú_limit)r(   rf   rg   re   rr   s       €r    r)   zFlowControlDataQueue.__init__³  s.   ø€ ô 	‰Ñ˜dÐÔ#ØˆŒ
Ø!ˆŒØ˜a‘iˆ�r   r–   rŸ   c                 óæ   •— t         ‰| �  ||«       | xj                  |z  c_        | j                  | j                  kD  r2| j                  j
                  s| j                  j                  «        y y y r'   )r  r¤   rW   r  rS   r¡   r¢   )r(   r–   rŸ   rr   s      €r    r¤   zFlowControlDataQueue.feed_data»  sU   ø€ Ü‰Ñ˜$ Ô%Ø�
Š
�dÑ�
à�:‰:˜Ÿ™Ò#¨D¯N©N×,JÒ,JØ�N‰N×(Ñ(Õ*ð -KÐ#r   c              ƒ   ón  K  — | j                   sN| j                  sB| j                  rJ ‚| j                  j	                  «       | _        	 | j                  ƒ d {  –—†  | j                   r}| j                   j                  «       \  }}| xj                  |z  c_	        | j                  | j                  k  r0| j                  j                  r| j                  j                  «        |S | j                  �| j                  ‚t        ‚7 Œ«# t
        j                  t
        j                  f$ r	 d | _        ‚ w xY w­wr'   )rZ   r\   r]   rV   r”   rj   r  r  rÑ   rW   r  rS   r¡   rÒ   r_   r   )r(   r–   rŸ   s      r    rH   zFlowControlDataQueue.readÂ  së   è ø€ Ø�|Š| D§I¢IØ—|’|Ð#Ð#ØŸ:™:×3Ñ3Ó5ˆDŒLðØ—l‘l×"Ð"ð �<Š<ØŸ™×-Ñ-Ó/‰JˆD�$Ø�JŠJ˜$Ñ�JØ�z‰z˜DŸK™KÒ'¨D¯N©N×,JÒ,JØ—‘×-Ñ-Ô/ØˆKØ�?‰?Ð&Ø—/‘/Ð!Üˆð #ùÜ×*Ñ*¬G×,@Ñ,@ÐAò Ø#�”Øðüs1   ‚AD5Á	D ÁDÁD ÁB'D5ÄD Ä,D2Ä2D5rÙ   )r   r   r   r   r   rQ   rj   rÜ   r)   r   r¤   rH   Ú__classcell__)rr   s   @r    r	  r	  «  sY   ø„ ñð Ø$ð Ø-0ð Ø;B×;TÑ;Tð à	õ ñ+˜bð +¨ð +°Dõ +ð˜B÷ r   r	  )$rj   rl   r™   Útypingr   r   r   r   r   r   r	   r
   r   Úbase_protocolr   Úhelpersr   r   r   r   r   Úlogr   Ú__all__r   r‡   r   r"   r6   rB   r   rà   r   Ú__annotations__r   r	  r   r   r    Ú<module>r     sÅ   ðÜ Û Û ÷
÷ 
õ 
õ (÷õ õ !ð€ñ ˆTƒ]€ô!�	ô !ô˜' "™+ô ÷(ñ ÷"3ñ 3ô0}3Ð)ô }3ô@?˜ô ?ñD &7Ó%8€ˆu�\Ñ"Ó 8ô>.�˜‘ô >.ôB(˜9 R™=õ (r   