ÿØÿà 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
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     
{fc           @   s>  d  d d g Z  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 Z d d l m	 Z	 m
 Z
 d d l Z d d l m Z d d l m Z m Z m Z m Z d d	 l m Z m Z m Z m Z m Z d d
 l m Z d  e f d     YZ e   Z d e f d     YZ d e f d     YZ d S(   t   Queuet   SimpleQueuet   JoinableQueueiN(   t   Emptyt   Fulli   (   t   Pipe(   t   Lockt   BoundedSemaphoret	   Semaphoret	   Condition(   t   debugt   infot   Finalizet   register_after_forkt
   is_exiting(   t   assert_spawningc           B   s   e  Z d  d  Z d   Z d   Z d   Z e d d  Z e d d  Z	 d   Z
 d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z e d    Z e d    Z e d    Z RS(   i    c         C   s   | d k r t  j j } n  | |  _ t d t  \ |  _ |  _ t   |  _	 t
 j   |  _ t j d k ru d  |  _ n t   |  _ t |  |  _ |  j   t j d k r t |  t j  n  d  S(   Ni    t   duplext   win32(   t   _multiprocessingt   SemLockt   SEM_VALUE_MAXt   _maxsizeR   t   Falset   _readert   _writerR   t   _rlockt   ost   getpidt   _opidt   syst   platformt   Nonet   _wlockR   t   _semt   _after_forkR   R    (   t   selft   maxsize(    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyt   __init__:   s    	
c         C   s8   t  |   |  j |  j |  j |  j |  j |  j |  j f S(   N(   R   R   R   R   R   R    R!   R   (   R#   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyt   __getstate__L   s    
c         C   s>   | \ |  _  |  _ |  _ |  _ |  _ |  _ |  _ |  j   d  S(   N(   R   R   R   R   R    R!   R   R"   (   R#   t   state(    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyt   __setstate__Q   s    0c         C   s   t  d  t j t j    |  _ t j   |  _ d  |  _	 d  |  _
 t |  _ t |  _ d  |  _ |  j j |  _ |  j j |  _ |  j j |  _ d  S(   Ns   Queue._after_fork()(   R
   t	   threadingR	   R   t	   _notemptyt   collectionst   dequet   _bufferR   t   _threadt   _jointhreadR   t   _joincancelledt   _closedt   _closeR   t   sendt   _sendR   t   recvt   _recvt   pollt   _poll(   R#   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyR"   V   s    
					c         C   s   |  j  s t  |  j j | |  s. t  n  |  j j   z= |  j d  k rZ |  j   n  |  j	 j
 |  |  j j   Wd  |  j j   Xd  S(   N(   R1   t   AssertionErrorR!   t   acquireR   R*   R.   R   t   _start_threadR-   t   appendt   notifyt   release(   R#   t   objt   blockt   timeout(    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyt   putc   s    	c         C   s  | rT | d  k rT |  j j   z! |  j   } |  j j   | SWd  |  j j   Xn | rm t j   | } n  |  j j | |  s t  n  zg | r | t j   } |  j |  s t  q n |  j   s t  n  |  j   } |  j j   | SWd  |  j j   Xd  S(   N(	   R   R   R:   R6   R!   R>   t   timeR   R8   (   R#   R@   RA   t   rest   deadline(    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyt   getq   s,    		c         C   s   |  j  |  j j j   S(   N(   R   R!   t   _semlockt
   _get_value(   R#   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyt   qsize   s    c         C   s   |  j    S(   N(   R8   (   R#   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyt   empty   s    c         C   s   |  j  j j   S(   N(   R!   RG   t   _is_zero(   R#   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyt   full   s    c         C   s   |  j  t  S(   N(   RF   R   (   R#   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyt
   get_nowait   s    c         C   s   |  j  | t  S(   N(   RB   R   (   R#   R?   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyt
   put_nowait   s    c         C   sD   t  |  _ z |  j j   Wd  |  j } | r? d  |  _ |   n  Xd  S(   N(   t   TrueR1   R   t   closeR2   R   (   R#   RP   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyRP      s    			c         C   s3   t  d  |  j s t  |  j r/ |  j   n  d  S(   Ns   Queue.join_thread()(   R
   R1   R9   R/   (   R#   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyt   join_thread   s    
	c         C   s<   t  d  t |  _ y |  j j   Wn t k
 r7 n Xd  S(   Ns   Queue.cancel_join_thread()(   R
   RO   R0   R/   t   cancelt   AttributeError(   R#   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyt   cancel_join_thread   s    
	c      	   C   s   t  d  |  j j   t j d t j d |  j |  j |  j |  j	 |  j
 j f d d  |  _ t |  j _ t  d  |  j j   t  d  |  j s t |  j t j t j |  j  g d d	 |  _ n  t |  t j |  j |  j g d d
 |  _ d  S(   Ns   Queue._start_thread()t   targett   argst   namet   QueueFeederThreads   doing self._thread.start()s   ... done self._thread.start()t   exitpriorityii
   (   R
   R-   t   clearR)   t   ThreadR    t   _feedR*   R4   R    R   RP   R.   RO   t   daemont   startR0   R   t   _finalize_joint   weakreft   refR/   t   _finalize_closeR2   (   R#   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyR;      s(    
		

		c         C   sD   t  d  |    } | d  k	 r6 | j   t  d  n
 t  d  d  S(   Ns   joining queue threads   ... queue thread joineds   ... queue thread already dead(   R
   R   t   join(   t   twrt   thread(    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyR_      s    
	
c         C   sA   t  d  | j   z |  j t  | j   Wd  | j   Xd  S(   Ns   telling queue thread to quit(   R
   R:   R<   t	   _sentinelR=   R>   (   t   buffert   notempty(    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyRb      s    

c         C   s[  t  d  | j } | j } | j } |  j } t }	 t j d k rX | j }
 | j } n d  }
 x y |   z |  s~ |   n  Wd  |   Xyn xg |   } | |	 k r t  d  |   d  S|
 d  k r | |  q |
   z | |  Wd  |   Xq WWn t	 k
 rn XWqa t
 k
 rR} t   r9t d |  d  Sd d  l } | j   qa Xqa Wd  S(   Ns$   starting thread to feed data to pipeR   s%   feeder thread got sentinel -- exitings   error in queue thread: %si(   R
   R:   R>   t   waitt   popleftRf   R   R   R   t
   IndexErrort	   ExceptionR   R   t	   tracebackt	   print_exc(   Rg   Rh   R3   t	   writelockRP   t   nacquiret   nreleaset   nwaitt   bpopleftt   sentinelt   wacquiret   wreleaseR?   t   eRm   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyR\      sL    
						
	N(   t   __name__t
   __module__R%   R&   R(   R"   RO   R   RB   RF   RI   RJ   RL   RM   RN   RP   RQ   RT   R;   t   staticmethodR_   Rb   R\   (    (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyR    8   s$   									
			 

c           B   sG   e  Z d  d  Z d   Z d   Z e d d  Z d   Z d   Z	 RS(   i    c         C   s/   t  j |  |  t d  |  _ t   |  _ d  S(   Ni    (   R    R%   R   t   _unfinished_tasksR	   t   _cond(   R#   R$   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyR%   )  s    c         C   s   t  j |   |  j |  j f S(   N(   R    R&   R|   R{   (   R#   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyR&   .  s    c         C   s.   t  j |  | d   | d \ |  _ |  _ d  S(   Ni(   R    R(   R|   R{   (   R#   R'   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyR(   1  s    c         C   s   |  j  s t  |  j j | |  s. t  n  |  j j   |  j j   zJ |  j d  k rg |  j	   n  |  j
 j |  |  j j   |  j j   Wd  |  j j   |  j j   Xd  S(   N(   R1   R9   R!   R:   R   R*   R|   R.   R   R;   R-   R<   R{   R>   R=   (   R#   R?   R@   RA   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyRB   5  s    	c         C   si   |  j  j   zG |  j j t  s1 t d   n  |  j j j   rS |  j  j   n  Wd  |  j  j   Xd  S(   Ns!   task_done() called too many times(	   R|   R:   R{   R   t
   ValueErrorRG   RK   t
   notify_allR>   (   R#   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyt	   task_doneF  s    c         C   sH   |  j  j   z& |  j j j   s2 |  j  j   n  Wd  |  j  j   Xd  S(   N(   R|   R:   R{   RG   RK   Ri   R>   (   R#   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyRc   P  s
    N(
   Rx   Ry   R%   R&   R(   RO   R   RB   R   Rc   (    (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyR   '  s   			
c           B   s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C   s\   t  d t  \ |  _ |  _ t   |  _ t j d k rB d  |  _	 n t   |  _	 |  j
   d  S(   NR   R   (   R   R   R   R   R   R   R   R   R   R    t   _make_methods(   R#   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyR%   ^  s    c         C   s   |  j  j   S(   N(   R   R7   (   R#   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyRJ   g  s    c         C   s&   t  |   |  j |  j |  j |  j f S(   N(   R   R   R   R   R    (   R#   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyR&   j  s    
c         C   s,   | \ |  _  |  _ |  _ |  _ |  j   d  S(   N(   R   R   R   R    R   (   R#   R'   (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyR(   n  s    c            s   |  j  j  |  j j |  j j        f d   } | |  _ |  j d  k rd |  j j	 |  _
 nC |  j j	  |  j j |  j j      f d   } | |  _
 d  S(   Nc              s!       z    SWd     Xd  S(   N(    (    (   t   racquireR5   t   rrelease(    s.   /usr/lib64/python2.7/multiprocessing/queues.pyRF   u  s    c            s$      z   |   SWd     Xd  S(   N(    (   R?   (   R3   Ru   Rv   (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyRB     s    (   R   R5   R   R:   R>   RF   R    R   R   R3   RB   (   R#   RF   RB   (    (   R   R5   R   R3   Ru   Rv   s.   /usr/lib64/python2.7/multiprocessing/queues.pyR   r  s    	(   Rx   Ry   R%   RJ   R&   R(   R   (    (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyR   \  s
   					(   t   __all__R   R   R)   R+   RC   t   atexitR`   R    R   R   R   t    R   t   synchronizeR   R   R   R	   t   utilR
   R   R   R   R   t   forkingR   t   objectRf   R   R   (    (    (    s.   /usr/lib64/python2.7/multiprocessing/queues.pyt   <module>#   s"   "(	
5