ÿØÿà 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
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     3

  \n.                 @   s  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 ddlm	Z	 ddddd	d
dddddddddgZ
d ZdZdZdZdZdZdZdadadd Zdd Zdd Zdd Zdd	 Zd6d d
Zd!d Zej Zej Zd"d# Zd$d Z i Z!ej Z"G d%d de#Z$d7d&d'Z%d(d Z&da'eee%e	j(e	j)fd)d*Z*ej+e* G d+d de#Z,G d,d dej-Z.ye j/d-Z0W n e1k
r   d.Z0Y nX d/d Z2d0d1 Z3d2d3 Z4d4d5 Z5dS )8    N)_args_from_interpreter_flags   )process	sub_debugdebuginfosub_warning
get_loggerlog_to_stderrget_temp_dirregister_after_fork
is_exitingFinalizeForkAwareThreadLockForkAwareLocalclose_all_fds_exceptSUBDEBUG
SUBWARNING   
         Zmultiprocessingz+[%(levelname)s/%(processName)s] %(message)sFc             G   s   t rt jt| f|  d S )N)_loggerlogr   )msgargs r   ,/usr/lib64/python3.6/multiprocessing/util.pyr   ,   s    c             G   s   t rt jt| f|  d S )N)r   r   DEBUG)r   r   r   r   r   r   0   s    c             G   s   t rt jt| f|  d S )N)r   r   INFO)r   r   r   r   r   r   4   s    c             G   s   t rt jt| f|  d S )N)r   r   r   )r   r   r   r   r   r   8   s    c           
   C   s|   dd l } | j  z\tsj| jtadt_ttdrFtjt	 tj
t	 n$tjjt	f i f tjjt	f i f W d | j  X tS )Nr   
unregister)loggingZ_acquireLockr   Z	getLoggerLOGGER_NAMEZ	propagatehasattratexitr    _exit_functionregisterZ_exithandlersremoveappendZ_releaseLock)r!   r   r   r   r	   <   s    



c             C   sJ   dd l }t }|jt}|j }|j| |j| | rB|j|  dat	S )Nr   T)
r!   r	   Z	FormatterDEFAULT_LOGGING_FORMATZStreamHandlerZsetFormatterZ
addHandlerZsetLevel_log_to_stderrr   )levelr!   ZloggerZ	formatterZhandlerr   r   r   r
   W   s    



c              C   sd   t j jjd} | d kr`dd l}dd l}|jdd} td|  td |j	| gdd | t j jd< | S )	Ntempdirr   zpymp-)prefixzcreated temp directory %sd   )r   exitpriorityi)
r   current_processZ_configgetshutiltempfileZmkdtempr   r   Zrmtree)r,   r2   r3   r   r   r   r   m   s    
c              C   sj   t tj } | j  xP| D ]H\\}}}}y|| W q tk
r` } ztd| W Y d d }~X qX qW d S )Nz after forker raised exception %s)list_afterfork_registryitemssort	Exceptionr   )r6   indexZidentfuncobjer   r   r   _run_after_forkers   s    r=   c             C   s   | t ttt| |f< d S )N)r5   next_afterfork_counterid)r;   r:   r   r   r   r      s    c               @   sH   e Zd Zf ddfddZdeeejfddZdd Z	dd	 Z
d
d ZdS )r   Nc             C   sT   |d k	rt j|| | _n || _|| _|p*i | _|ttf| _t	j
 | _| t| j< d S )N)weakrefref_weakref	_callback_args_kwargsr>   _finalizer_counter_keyosgetpid_pid_finalizer_registry)selfr;   callbackr   kwargsr/   r   r   r   __init__   s    

zFinalize.__init__c             C   s   y|| j = W n tk
r(   |d Y nbX | j| krD|d d }n$|d| j| j| j | j| j| j}d  | _ | _ | _ | _| _ |S d S )Nzfinalizer no longer registeredz+finalizer ignored because different processz/finalizer calling %s with args %s and kwargs %s)rH   KeyErrorrK   rD   rE   rF   rC   )rM   wrrL   r   rJ   resr   r   r   __call__   s    zFinalize.__call__c             C   sD   yt | j= W n tk
r    Y n X d  | _ | _ | _ | _| _d S )N)rL   rH   rQ   rC   rD   rE   rF   )rM   r   r   r   cancel   s
    zFinalize.cancelc             C   s
   | j tkS )N)rH   rL   )rM   r   r   r   still_active   s    zFinalize.still_activec             C   s   y| j  }W n ttfk
r(   d }Y nX |d kr>d| jj S d| jjt| jd| jf }| jrr|dt| j 7 }| j	r|dt| j	 7 }| j
d d k	r|dt| j
d  7 }|d S )	Nz<%s object, dead>z<%s object, callback=%s__name__z, args=z	, kwargs=r   z, exitprority=>)rC   AttributeError	TypeError	__class__rW   getattrrD   rE   strrF   rH   )rM   r;   xr   r   r   __repr__   s     
zFinalize.__repr__)rW   
__module____qualname__rP   rL   r   rI   rJ   rT   rU   rV   r_   r   r   r   r   r      s   c                s   t d krd S d krdd  nfdd  fddtt D }|jdd xX|D ]P}t j|}|d k	rRtd| y
|  W qR tk
r   d	d l}|j  Y qRX qRW d krt j  d S )
Nc             S   s   | d d k	S )Nr   r   )pr   r   r   <lambda>   s    z!_run_finalizers.<locals>.<lambda>c                s   | d d k	o| d  kS )Nr   r   )rb   )minpriorityr   r   rc      s    c                s   g | ]} |r|qS r   r   ).0key)fr   r   
<listcomp>   s    z#_run_finalizers.<locals>.<listcomp>T)reversez
calling %sr   )	rL   r4   r7   r1   r   r8   	traceback	print_excclear)rd   keysrf   	finalizerrj   r   )rg   rd   r   _run_finalizers   s$    




ro   c               C   s   t p
t d kS )N)_exitingr   r   r   r   r     s    c             C   s   t sda | d |d |d | d k	rzx*| D ] }|jr2| d|j |jj  q2W x"| D ]}| d|j |j  q^W |d |  d S )NTzprocess shutting downz2running all "atexit" finalizers with priority >= 0r   z!calling terminate() for daemon %szcalling join() for process %sz)running the remaining "atexit" finalizers)rp   ZdaemonnameZ_popenZ	terminatejoin)r   r   ro   active_childrenr0   rb   r   r   r   r%     s    	
r%   c               @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
r   c             C   s   | j   t| tj  d S )N)_resetr   r   )rM   r   r   r   rP   K  s    zForkAwareThreadLock.__init__c             C   s"   t j | _| jj| _| jj| _d S )N)	threadingZLock_lockacquirerelease)rM   r   r   r   rt   O  s    

zForkAwareThreadLock._resetc             C   s
   | j j S )N)rv   	__enter__)rM   r   r   r   ry   T  s    zForkAwareThreadLock.__enter__c             G   s   | j j| S )N)rv   __exit__)rM   r   r   r   r   rz   W  s    zForkAwareThreadLock.__exit__N)rW   r`   ra   rP   rt   ry   rz   r   r   r   r   r   J  s   c               @   s   e Zd Zdd Zdd ZdS )r   c             C   s   t | dd  d S )Nc             S   s
   | j j S )N)__dict__rl   )r;   r   r   r   rc   ]  s    z)ForkAwareLocal.__init__.<locals>.<lambda>)r   )rM   r   r   r   rP   \  s    zForkAwareLocal.__init__c             C   s   t | f fS )N)type)rM   r   r   r   
__reduce__^  s    zForkAwareLocal.__reduce__N)rW   r`   ra   rP   r}   r   r   r   r   r   [  s   SC_OPEN_MAX   c             C   sR   t | dtg } | j  x4tt| d D ] }tj| | d | |d   q*W d S )Nr   )r4   MAXFDr7   rangelenrI   
closerange)Zfdsir   r   r   r   j  s    c              C   s   t jd krd S yt jj  W n ttfk
r4   Y nX y@tjtjtj} yt| ddt _W n   tj|   Y nX W n ttfk
r   Y nX d S )NF)closefd)	sysstdincloseOSError
ValueErrorrI   opendevnullO_RDONLY)fdr   r   r   _close_stdint  s    

r   c               C   sT   yt jj  W n ttfk
r&   Y nX yt jj  W n ttfk
rN   Y nX d S )N)r   stdoutflushrY   r   stderrr   r   r   r   _flush_std_streams  s    r   c             C   st   dd l }tttt|}tj \}}z2|j|tj| gd|d d ddddd	d
||ddd S tj	| tj	| X d S )Nr   Tr   Fr   r   r   r   r   r   )
_posixsubprocesstuplesortedmapintrI   pipeZ	fork_execfsencoder   )pathr   Zpassfdsr   Zerrpipe_readZerrpipe_writer   r   r   spawnv_passfds  s    

r   )N)N)6rI   	itertoolsr   rA   r$   ru   
subprocessr    r   __all__ZNOTSETr   r   r   r   r"   r)   r   r*   r   r   r   r   r	   r
   r   WeakValueDictionaryr5   countr?   r=   r   rL   rG   objectr   ro   r   rp   rs   r0   r%   r&   r   Zlocalr   sysconfr   r8   r   r   r   r   r   r   r   r   <module>
   sf   


	S
,(



