£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
B
    YI~dN                 @   sd  d dl Z d dlZd dlZ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mZmZmZmZ ee
eeeeehZye W n ek
r   i ZY nX dd ZG dd deZeeefZdd Zd	d
 Zdd Z dd Z!d%ddZ"d&ddZ#e#Z$d'ddZ%G dd dZ&G dd de&Z'dd Z(d(ddZ)ej*d kr`G d!d" d"Z+G d#d$ d$e&Z,dS ))    N)EALREADYEINPROGRESSEWOULDBLOCK
ECONNRESETEINVALENOTCONN	ESHUTDOWNEISCONNEBADFECONNABORTEDEPIPEEAGAIN	errorcodec          
   C   s>   y
t | S  tttfk
r8   | tkr0t|  S d|  S X d S )NzUnknown error %s)osstrerror
ValueErrorOverflowError	NameErrorr   )err r   -/opt/alt/python37/lib64/python3.7/asyncore.py	_strerrorD   s    
r   c               @   s   e Zd ZdS )ExitNowN)__name__
__module____qualname__r   r   r   r   r   L   s   r   c             C   s:   y|    W n( tk
r"    Y n   |   Y nX d S )N)handle_read_event_reraised_exceptionshandle_error)objr   r   r   readQ   s    r    c             C   s:   y|    W n( tk
r"    Y n   |   Y nX d S )N)handle_write_eventr   r   )r   r   r   r   writeY   s    r"   c             C   s:   y|    W n( tk
r"    Y n   |   Y nX d S )N)handle_expt_eventr   r   )r   r   r   r   
_exceptiona   s    r$   c          
   C   s   yX|t j@ r|   |t j@ r&|   |t j@ r8|   |t jt jB t j	B @ rV| 
  W nh tk
r } z$|jd tkr|   n| 
  W d d }~X Y n( tk
r    Y n   |   Y nX d S )Nr   )selectPOLLINr   POLLOUTr!   POLLPRIr#   ZPOLLHUPZPOLLERRZPOLLNVALhandle_closeOSErrorargs_DISCONNECTEDr   r   )r   flagser   r   r   	readwritei   s"    



r/           c       	      C   sL  |d krt }|rHg }g }g }x\t| D ]L\}}| }| }|rR|| |rf|jsf|| |sn|r,|| q,W g |  kr|  kr|krn nt|  d S t		|||| \}}}x(|D ] }|
|}|d krqt| qW x*|D ]"}|
|}|d krqt| qW x.|D ]&}|
|}|d kr:qt| qW d S )N)
socket_maplistitemsreadablewritableappend	acceptingtimeZsleepr%   getr    r"   r$   )	timeoutmaprwr.   fdr   Zis_rZis_wr   r   r   poll}   sD      


"








r?   c             C   s   |d krt }| d k	r t| d } t }|rx\t| D ]L\}}d}| r^|tjtjB O }|	 rv|j
sv|tjO }|r:||| q:W || }x.|D ]&\}}||}|d krqt|| qW d S )Ni  r   )r1   intr%   r?   r2   r3   r4   r&   r(   r5   r7   r'   registerr9   r/   )r:   r;   Zpollsterr>   r   r-   r<   r   r   r   poll2   s(    


rB         >@Fc             C   sj   |d krt }|r ttdr t}nt}|d krBx8|r>|| | q.W n$x"|rd|dkrd|| | |d }qDW d S )Nr?   r      )r1   hasattrr%   rB   r?   )r:   Zuse_pollr;   countZpoll_funr   r   r   loop   s    
rG   c               @   s6  e Zd ZdZdZdZdZdZdZe	dhZ
dAddZdd ZeZdBdd	ZdCd
dZejejfddZdDd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dEd'd(Z d)d* Z!d+d, Z"d-d. Z#d/d0 Z$d1d2 Z%d3d4 Z&d5d6 Z'd7d8 Z(d9d: Z)d;d< Z*d=d> Z+d?d@ Z,dS )F
dispatcherFNwarningc          
   C   s   |d krt | _n|| _d | _|r|d | || d| _y| | _W q tk
r } z*|j	d t
tfkrvd| _n| |  W d d }~X Y qX nd | _d S )Nr   TF)r1   _map_filenosetblocking
set_socket	connectedZgetpeernameaddrr*   r+   r   r   del_channelsocket)selfsockr;   r   r   r   r   __init__   s     

zdispatcher.__init__c             C   s   | j jd | j j g}| jr.| jr.|d n| jr>|d | jd k	ry|d| j  W n$ tk
r   |t| j Y nX dd	|t
| f S )N.Z	listeningrN   z%s:%dz<%s at %#x> )	__class__r   r   r7   rO   r6   rN   	TypeErrorreprjoinid)rR   statusr   r   r   __repr__   s    

zdispatcher.__repr__c             C   s   |d kr| j }| || j< d S )N)rJ   rK   )rR   r;   r   r   r   add_channel  s    zdispatcher.add_channelc             C   s,   | j }|d kr| j}||kr"||= d | _ d S )N)rK   rJ   )rR   r;   r>   r   r   r   rP     s    zdispatcher.del_channelc             C   s.   ||f| _ t||}|d | | d S )Nr   )Zfamily_and_typerQ   rL   rM   )rR   ZfamilytyperS   r   r   r   create_socket  s    

zdispatcher.create_socketc             C   s   || _ | | _| | d S )N)rQ   filenorK   r^   )rR   rS   r;   r   r   r   rM      s    
zdispatcher.set_socketc             C   sD   y*| j t jt j| j t jt jdB  W n tk
r>   Y nX d S )NrD   )rQ   Z
setsockopt
SOL_SOCKETZSO_REUSEADDR
getsockoptr*   )rR   r   r   r   set_reuse_addr%  s    
zdispatcher.set_reuse_addrc             C   s   dS )NTr   )rR   r   r   r   r4   6  s    zdispatcher.readablec             C   s   dS )NTr   )rR   r   r   r   r5   9  s    zdispatcher.writablec             C   s(   d| _ tjdkr|dkrd}| j|S )NTnt   )r7   r   namerQ   listen)rR   Znumr   r   r   rh   @  s    zdispatcher.listenc             C   s   || _ | j|S )N)rO   rQ   bind)rR   rO   r   r   r   ri   F  s    zdispatcher.bindc             C   sp   d| _ d| _| j|}|tttfks8|tkrBtj	dkrB|| _
d S |dtfkr^|| _
|   nt|t| d S )NFTre   r   )rN   
connectingrQ   Z
connect_exr   r   r   r   r   rg   rO   r	   handle_connect_eventr*   r   )rR   Zaddressr   r   r   r   connectJ  s    
zdispatcher.connectc          
   C   sn   y| j  \}}W nN tk
r&   d S  tk
r` } z|jd tttfkrNd S  W d d }~X Y n
X ||fS d S )Nr   )rQ   acceptrX   r*   r+   r   r   r   )rR   ZconnrO   whyr   r   r   rm   X  s    zdispatcher.acceptc          
   C   sf   y| j |}|S  tk
r` } z2|jd tkr4dS |jd tkrN|   dS  W d d }~X Y nX d S )Nr   )rQ   sendr*   r+   r   r,   r)   )rR   dataresultrn   r   r   r   ro   f  s    zdispatcher.sendc          
   C   sh   y$| j |}|s|   dS |S W n> tk
rb } z |jd tkrP|   dS  W d d }~X Y nX d S )N    r   )rQ   recvr)   r*   r+   r,   )rR   buffer_sizerp   rn   r   r   r   rs   s  s    zdispatcher.recvc          
   C   sn   d| _ d| _d| _|   | jd k	rjy| j  W n6 tk
rh } z|jd tt	fkrX W d d }~X Y nX d S )NFr   )
rN   r7   rj   rP   rQ   closer*   r+   r   r
   )rR   rn   r   r   r   ru     s    
zdispatcher.closec             C   s   t jdt|  d S )Nzlog: %s
)sysstderrr"   str)rR   messager   r   r   log  s    zdispatcher.loginfoc             C   s   || j krtd||f  d S )Nz%s: %s)ignore_log_typesprint)rR   ry   r_   r   r   r   log_info  s    
zdispatcher.log_infoc             C   s:   | j r|   n&| js.| jr$|   |   n|   d S )N)r7   handle_acceptrN   rj   rk   handle_read)rR   r   r   r   r     s    

zdispatcher.handle_read_eventc             C   s@   | j t jt j}|dkr(t|t||   d| _d| _d S )Nr   TF)	rQ   rc   rb   SO_ERRORr*   r   handle_connectrN   rj   )rR   r   r   r   r   rk     s    zdispatcher.handle_connect_eventc             C   s*   | j r
d S | js| jr|   |   d S )N)r7   rN   rj   rk   handle_write)rR   r   r   r   r!     s    zdispatcher.handle_write_eventc             C   s0   | j t jt j}|dkr$|   n|   d S )Nr   )rQ   rc   rb   r   r)   handle_expt)rR   r   r   r   r   r#     s    
zdispatcher.handle_expt_eventc             C   sX   t  \}}}}yt| }W n   dt|  }Y nX | d||||f d |   d S )Nz)<__repr__(self) failed for object at %0x>z:uncaptured python exception, closing channel %s (%s:%s %s)error)compact_tracebackrY   r[   r~   r)   )rR   ZniltvtbinfoZ	self_reprr   r   r   r     s    zdispatcher.handle_errorc             C   s   |  dd d S )Nz!unhandled incoming priority eventrI   )r~   )rR   r   r   r   r     s    zdispatcher.handle_exptc             C   s   |  dd d S )Nzunhandled read eventrI   )r~   )rR   r   r   r   r     s    zdispatcher.handle_readc             C   s   |  dd d S )Nzunhandled write eventrI   )r~   )rR   r   r   r   r     s    zdispatcher.handle_writec             C   s   |  dd d S )Nzunhandled connect eventrI   )r~   )rR   r   r   r   r     s    zdispatcher.handle_connectc             C   s   |   }|d k	r| j|  d S )N)rm   handle_accepted)rR   Zpairr   r   r   r     s    zdispatcher.handle_acceptc             C   s   |   | dd d S )Nzunhandled accepted eventrI   )ru   r~   )rR   rS   rO   r   r   r   r     s    zdispatcher.handle_acceptedc             C   s   |  dd |   d S )Nzunhandled close eventrI   )r~   ru   )rR   r   r   r   r)     s    zdispatcher.handle_close)NN)N)N)N)r{   )-r   r   r   debugrN   r7   rj   closingrO   	frozensetr|   rT   r]   __str__r^   rP   rQ   ZAF_INETZSOCK_STREAMr`   rM   rd   r4   r5   rh   ri   rl   rm   ro   rs   ru   rz   r~   r   rk   r!   r#   r   r   r   r   r   r   r   r)   r   r   r   r   rH      sL   

 

	

rH   c               @   s6   e Zd ZdddZdd Zdd Zdd	 Zd
d ZdS )dispatcher_with_sendNc             C   s   t | || d| _d S )Nrr   )rH   rT   
out_buffer)rR   rS   r;   r   r   r   rT     s    zdispatcher_with_send.__init__c             C   s.   d}t | | jd d }| j|d  | _d S )Nr   i   )rH   ro   r   )rR   Znum_sentr   r   r   initiate_send  s    z"dispatcher_with_send.initiate_sendc             C   s   |    d S )N)r   )rR   r   r   r   r     s    z!dispatcher_with_send.handle_writec             C   s   | j  pt| jS )N)rN   lenr   )rR   r   r   r   r5   
  s    zdispatcher_with_send.writablec             C   s0   | j r| dt|  | j| | _|   d S )Nz
sending %s)r   r~   rY   r   r   )rR   rp   r   r   r   ro     s    zdispatcher_with_send.send)NN)r   r   r   rT   r   r   r5   ro   r   r   r   r   r     s
   
r   c              C   s   t  \} }}g }|stdx0|rN||jjj|jjjt|j	f |j
}q W ~|d \}}}ddd |D }|||f| ||fS )Nztraceback does not existrV   c             S   s   g | ]}d | qS )z
[%s|%s|%s]r   ).0xr   r   r   
<listcomp>(  s    z%compact_traceback.<locals>.<listcomp>)rv   exc_infoAssertionErrorr6   tb_framef_codeco_filenameco_namerx   	tb_linenotb_nextrZ   )r   r   tbr   fileZfunctionliner{   r   r   r   r     s    
r   c             C   s   | d krt } x~t|  D ]n}y|  W q tk
rb } z|jd tkrLn|sR W d d }~X Y q tk
rv    Y q   |s Y qX qW |   d S )Nr   )	r1   r2   valuesru   r*   r+   r
   r   clear)r;   Z
ignore_allr   r   r   r   	close_all+  s     r   posixc               @   sN   e Zd Zdd Zdd Zdd Zdd Zdd
dZeZeZ	dd Z
dd Zd	S )file_wrapperc             C   s   t || _d S )N)r   dupr>   )rR   r>   r   r   r   rT   P  s    zfile_wrapper.__init__c             C   s*   | j dkrtjd|  t| d |   d S )Nr   zunclosed file %r)source)r>   warningswarnResourceWarningru   )rR   r   r   r   __del__S  s    
zfile_wrapper.__del__c             G   s   t j| jf| S )N)r   r    r>   )rR   r+   r   r   r   rs   Y  s    zfile_wrapper.recvc             G   s   t j| jf| S )N)r   r"   r>   )rR   r+   r   r   r   ro   \  s    zfile_wrapper.sendNc             C   s(   |t jkr|t jkr|sdS tdd S )Nr   z-Only asyncore specific behaviour implemented.)rQ   rb   r   NotImplementedError)rR   levelZoptnamebuflenr   r   r   rc   _  s
    

zfile_wrapper.getsockoptc             C   s(   | j dk rd S | j }d| _ t| d S )Nr   r   )r>   r   ru   )rR   r>   r   r   r   ru   j  s
    
zfile_wrapper.closec             C   s   | j S )N)r>   )rR   r   r   r   ra   q  s    zfile_wrapper.fileno)N)r   r   r   rT   r   rs   ro   rc   r    r"   ru   ra   r   r   r   r   r   K  s   
r   c               @   s   e Zd ZdddZdd ZdS )file_dispatcherNc             C   sP   t | d | d| _y| }W n tk
r4   Y nX | | t|d d S )NTF)rH   rT   rN   ra   AttributeErrorset_filer   set_blocking)rR   r>   r;   r   r   r   rT   v  s    
zfile_dispatcher.__init__c             C   s"   t || _| j | _|   d S )N)r   rQ   ra   rK   r^   )rR   r>   r   r   r   r     s    
zfile_dispatcher.set_file)N)r   r   r   rT   r   r   r   r   r   r   t  s   
r   )r0   N)r0   N)rC   FNN)NF)-r%   rQ   rv   r8   r   r   errnor   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r,   r1   r   r   	Exceptionr   KeyboardInterrupt
SystemExitr   r    r"   r$   r/   r?   rB   Zpoll3rG   rH   r   r   r   rg   r   r   r   r   r   r   <module>1   s@   <


'

  ,
)