ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     U
    e5d h                     @   s&  d Z ddlZddlZddlZddlZeedr6e d7 Z ddlmZ ddlmZ ddlm	Z	 dd	lm
Z
 dd
lmZ ddlmZ ddlmZ dZddedddZd dedddZeedrd!dedddZd"dedddZG dd dejZG dd deejZG dd dZG dd dZdS )#)StreamReaderStreamWriterStreamReaderProtocolopen_connectionstart_server    NZAF_UNIX)open_unix_connectionstart_unix_server   )
coroutines)events)
exceptions)format_helpers)	protocols)logger)sleepi   )looplimitc          	         st   |d krt  }ntjdtdd t||d}t||d |j fdd| |f|I d H \}}t| ||}||fS )N[The loop argument is deprecated since Python 3.8, and scheduled for removal in Python 3.10.   
stacklevelr   r   r   c                      s    S N r   protocolr   '/usr/lib64/python3.8/asyncio/streams.py<lambda>5       z!open_connection.<locals>.<lambda>)	r   get_event_loopwarningswarnDeprecationWarningr   r   Zcreate_connectionr   )	hostportr   r   kwdsreader	transport_writerr   r   r   r      s"    
 
  r   c                   sJ   d krt  ntjdtdd  fdd}j|||f|I d H S )Nr   r   r   c                     s   t d} t|  d}|S Nr   r   r   r   r'   r   client_connected_cbr   r   r   r   factoryX   s
    zstart_server.<locals>.factory)r   r    r!   r"   r#   Zcreate_server)r/   r$   r%   r   r   r&   r0   r   r.   r   r   :   s    
 r   c                   sr   |d krt  }ntjdtdd t||d}t||d |j fdd| f|I d H \}}t| ||}||fS )Nr   r   r   r   r   c                      s    S r   r   r   r   r   r   r   p   r   z&open_unix_connection.<locals>.<lambda>)	r   r    r!   r"   r#   r   r   Zcreate_unix_connectionr   )pathr   r   r&   r'   r(   r)   r*   r   r   r   r   d   s     
 
 r   c                   sH   d krt  ntjdtdd  fdd}j||f|I d H S )Nr   r   r   c                     s   t d} t|  d}|S r+   r,   r-   r.   r   r   r0   ~   s
    z"start_unix_server.<locals>.factory)r   r    r!   r"   r#   Zcreate_unix_server)r/   r1   r   r   r&   r0   r   r.   r   r   t   s    
 r   c                   @   s>   e Zd ZdddZdd Zdd Zdd	 Zd
d Zdd ZdS )FlowControlMixinNc                 C   s0   |d krt  | _n|| _d| _d | _d| _d S NF)r   r    _loop_paused_drain_waiter_connection_lost)selfr   r   r   r   __init__   s    zFlowControlMixin.__init__c                 C   s    d| _ | j rtd|  d S )NTz%r pauses writing)r5   r4   	get_debugr   debugr8   r   r   r   pause_writing   s    
zFlowControlMixin.pause_writingc                 C   sF   d| _ | j rtd|  | j}|d k	rBd | _| sB|d  d S )NFz%r resumes writing)r5   r4   r:   r   r;   r6   done
set_resultr8   waiterr   r   r   resume_writing   s    
zFlowControlMixin.resume_writingc                 C   sV   d| _ | jsd S | j}|d kr"d S d | _| r4d S |d krH|d  n
|| d S NT)r7   r5   r6   r>   r?   set_exceptionr8   excrA   r   r   r   connection_lost   s    z FlowControlMixin.connection_lostc                    s<   | j rtd| jsd S | j}| j }|| _|I d H  d S )NzConnection lost)r7   ConnectionResetErrorr5   r6   r4   create_futurer@   r   r   r   _drain_helper   s    
zFlowControlMixin._drain_helperc                 C   s   t d S r   )NotImplementedErrorr8   streamr   r   r   _get_close_waiter   s    z"FlowControlMixin._get_close_waiter)N)	__name__
__module____qualname__r9   r=   rB   rG   rJ   rN   r   r   r   r   r2      s   

	r2   c                       sb   e Zd ZdZd fdd	Zedd Zdd Z fdd	Zd
d Z	dd Z
dd Zdd Z  ZS )r   Nc                    sn   t  j|d |d k	r,t|| _|j| _nd | _|d k	r@|| _d| _d | _d | _	|| _
d| _| j | _d S )Nr   F)superr9   weakrefref_stream_reader_wr_source_traceback_strong_reader_reject_connection_stream_writer
_transport_client_connected_cb	_over_sslr4   rI   _closed)r8   Zstream_readerr/   r   	__class__r   r   r9      s    
zStreamReaderProtocol.__init__c                 C   s   | j d krd S |   S r   )rU   r<   r   r   r   _stream_reader   s    
z#StreamReaderProtocol._stream_readerc                 C   s   | j r6ddi}| jr| j|d< | j| |  d S || _| j}|d k	rT|| |dd k	| _	| j
d k	rt|| || j| _| 
|| j}t|r| j| d | _d S )NmessagezpAn open stream was garbage collected prior to establishing network connection; call "stream.close()" explicitly.Zsource_tracebackZ
sslcontext)rX   rV   r4   Zcall_exception_handlerabortrZ   r`   set_transportget_extra_infor\   r[   r   rY   r
   ZiscoroutineZcreate_taskrW   )r8   r(   contextr'   resr   r   r   connection_made   s2     



z$StreamReaderProtocol.connection_madec                    sx   | j }|d k	r*|d kr |  n
|| | j sV|d krJ| jd  n| j| t | d | _d | _	d | _
d S r   )r`   feed_eofrD   r]   r>   r?   rR   rG   rU   rY   rZ   )r8   rF   r'   r^   r   r   rG   
  s    


z$StreamReaderProtocol.connection_lostc                 C   s   | j }|d k	r|| d S r   )r`   	feed_data)r8   datar'   r   r   r   data_received  s    z"StreamReaderProtocol.data_receivedc                 C   s$   | j }|d k	r|  | jr dS dS )NFT)r`   rh   r\   )r8   r'   r   r   r   eof_received   s    z!StreamReaderProtocol.eof_receivedc                 C   s   | j S r   )r]   rL   r   r   r   rN   +  s    z&StreamReaderProtocol._get_close_waiterc                 C   s"   | j }| r| s|  d S r   )r]   r>   	cancelled	exception)r8   closedr   r   r   __del__.  s    zStreamReaderProtocol.__del__)NN)rO   rP   rQ   rV   r9   propertyr`   rg   rG   rk   rl   rN   rp   __classcell__r   r   r^   r   r      s   	
r   c                   @   sr   e Zd Zdd Zdd Zedd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd Zdd ZdddZdd ZdS )r   c                 C   s4   || _ || _|| _|| _| j | _| jd  d S r   )rZ   	_protocol_readerr4   rI   Z_complete_futr?   )r8   r(   r   r'   r   r   r   r   r9   @  s    zStreamWriter.__init__c                 C   s@   | j jd| jg}| jd k	r0|d| j dd|S )N
transport=zreader=<{}> )r_   rO   rZ   rt   appendformatjoinr8   infor   r   r   __repr__J  s    
zStreamWriter.__repr__c                 C   s   | j S r   rZ   r<   r   r   r   r(   P  s    zStreamWriter.transportc                 C   s   | j | d S r   )rZ   writer8   rj   r   r   r   r   T  s    zStreamWriter.writec                 C   s   | j | d S r   )rZ   
writelinesr   r   r   r   r   W  s    zStreamWriter.writelinesc                 C   s
   | j  S r   )rZ   	write_eofr<   r   r   r   r   Z  s    zStreamWriter.write_eofc                 C   s
   | j  S r   )rZ   can_write_eofr<   r   r   r   r   ]  s    zStreamWriter.can_write_eofc                 C   s
   | j  S r   )rZ   closer<   r   r   r   r   `  s    zStreamWriter.closec                 C   s
   | j  S r   )rZ   
is_closingr<   r   r   r   r   c  s    zStreamWriter.is_closingc                    s   | j | I d H  d S r   )rs   rN   r<   r   r   r   wait_closedf  s    zStreamWriter.wait_closedNc                 C   s   | j ||S r   )rZ   rd   )r8   namedefaultr   r   r   rd   i  s    zStreamWriter.get_extra_infoc                    sL   | j d k	r | j  }|d k	r || j r8tdI d H  | j I d H  d S )Nr   )rt   rn   rZ   r   r   rs   rJ   )r8   rF   r   r   r   drainl  s    



zStreamWriter.drain)N)rO   rP   rQ   r9   r}   rq   r(   r   r   r   r   r   r   r   rd   r   r   r   r   r   r   6  s   



r   c                   @   s   e Zd ZdZedfddZdd Zdd Zdd	 Zd
d Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zd&ddZd'ddZd d! Zd"d# Zd$d% ZdS )(r   Nc                 C   sv   |dkrt d|| _|d kr*t | _n|| _t | _d| _d | _d | _	d | _
d| _| j rrttd| _d S )Nr   zLimit cannot be <= 0Fr	   )
ValueError_limitr   r    r4   	bytearray_buffer_eof_waiter
_exceptionrZ   r5   r:   r   extract_stacksys	_getframerV   )r8   r   r   r   r   r   r9     s     
zStreamReader.__init__c                 C   s   dg}| j r"|t| j  d | jr2|d | jtkrN|d| j  | jrf|d| j | jr~|d| j | jr|d| j | j	r|d d	
d
|S )Nr   z byteseofzlimit=zwaiter=z
exception=ru   Zpausedrv   rw   )r   rx   lenr   r   _DEFAULT_LIMITr   r   rZ   r5   ry   rz   r{   r   r   r   r}     s     


zStreamReader.__repr__c                 C   s   | j S r   )r   r<   r   r   r   rn     s    zStreamReader.exceptionc                 C   s0   || _ | j}|d k	r,d | _| s,|| d S r   )r   r   rm   rD   rE   r   r   r   rD     s    zStreamReader.set_exceptionc                 C   s*   | j }|d k	r&d | _ | s&|d  d S r   )r   rm   r?   r@   r   r   r   _wakeup_waiter  s
    zStreamReader._wakeup_waiterc                 C   s
   || _ d S r   r~   )r8   r(   r   r   r   rc     s    zStreamReader.set_transportc                 C   s*   | j r&t| j| jkr&d| _ | j  d S r3   )r5   r   r   r   rZ   resume_readingr<   r   r   r   _maybe_resume_transport  s    z$StreamReader._maybe_resume_transportc                 C   s   d| _ |   d S rC   )r   r   r<   r   r   r   rh     s    zStreamReader.feed_eofc                 C   s   | j o| j S r   )r   r   r<   r   r   r   at_eof  s    zStreamReader.at_eofc                 C   st   |sd S | j | |   | jd k	rp| jspt| j d| j krpz| j  W n tk
rh   d | _Y nX d| _d S )Nr   T)	r   extendr   rZ   r5   r   r   Zpause_readingrK   r   r   r   r   ri     s    
zStreamReader.feed_datac                    sX   | j d k	rt| d| jr.d| _| j  | j | _ z| j I d H  W 5 d | _ X d S )NzF() called while another coroutine is already waiting for incoming dataF)r   RuntimeErrorr5   rZ   r   r4   rI   )r8   Z	func_namer   r   r   _wait_for_data  s    	

zStreamReader._wait_for_datac              
      s   d}t |}z| |I d H }W n tjk
rN } z|j W Y S d }~X Y nh tjk
r } zH| j||jr| jd |j| = n
| j	  | 
  t|jd W 5 d }~X Y nX |S )N   
r   )r   	readuntilr   IncompleteReadErrorpartialLimitOverrunErrorr   
startswithconsumedclearr   r   args)r8   sepseplenlineer   r   r   readline	  s    
 zStreamReader.readliner   c                    s   t |}|dkrtd| jd k	r(| jd}t | j}|| |kr|| j||}|dkrZq|d | }|| jkr|td|| jrt	| j}| j
  t|d | dI d H  q,|| jkrtd|| jd ||  }| jd || = |   t	|S )Nr   z,Separator should be at least one-byte stringr	   z2Separator is not found, and chunk exceed the limitr   z2Separator is found, but chunk is longer than limit)r   r   r   r   findr   r   r   r   bytesr   r   r   r   )r8   Z	separatorr   offsetZbuflenZisepchunkr   r   r   r   (  s>    





 zStreamReader.readuntilr   c                    s   | j d k	r| j |dkrdS |dk rVg }| | jI d H }|s@qL|| q(d|S | jsr| jsr| dI d H  t| jd | }| jd |= | 	  |S )Nr   r   read)
r   r   r   rx   rz   r   r   r   r   r   )r8   nZblocksblockrj   r   r   r   r     s"    

zStreamReader.readc                    s   |dk rt d| jd k	r | j|dkr,dS t| j|k rr| jr`t| j}| j  t||| 	dI d H  q,t| j|krt| j}| j  nt| jd | }| jd |= | 
  |S )Nr   z*readexactly size can not be less than zeror   readexactly)r   r   r   r   r   r   r   r   r   r   r   )r8   r   Z
incompleterj   r   r   r   r     s&    



zStreamReader.readexactlyc                 C   s   | S r   r   r<   r   r   r   	__aiter__  s    zStreamReader.__aiter__c                    s   |   I d H }|dkrt|S )Nr   )r   StopAsyncIteration)r8   valr   r   r   	__anext__  s    zStreamReader.__anext__)r   )r   )rO   rP   rQ   rV   r   r9   r}   rn   rD   r   rc   r   rh   r   ri   r   r   r   r   r   r   r   r   r   r   r   r     s$   	
[
2)r   )NN)NN)N)N)__all__Zsocketr   r!   rS   hasattr r
   r   r   r   r   logr   Ztasksr   r   r   r   r   r   ZProtocolr2   r   r   r   r   r   r   r   <module>   sF   
 ! '
  DkP