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

  \rz              +   @   s  d ddddddddd	d
gZ yddlmZ W n ek
r>   Y nX 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 yddlmZ W n" ek
r   G dd dZY nX dYZdZZeefdd ZeefddZefddZefdd Zefd!d"Zefd#d$Zefd%d&Zefd'd(Zefd)d*Zefd+d,Zefd-d.Zefd/d0Zefd1d2Zefd3d4Z d5efd6efd7efgd7efd8efd5efgd8efd7efd6efgd6efd5efd8e fgd9Z!d:d Z"d;d Z#ydd<lm#Z# W n ek
r   Y nX G d=d dZ$ydd>lm$Z$ W n ek
r&   Y nX G d?d	 d	e%Z&ed@dAdBdCdDgZ'G dEdF dFe(Z)e% fe*e+e,e-dGhe.e-e/fdHdIZ0d[dLdZ1dMdN Z2yddOlm2Z2 W n ek
r   Y nX dPdQ Z3d\dRdSZ4dTdU Z5dVdW Z6dXd
 Z7dGS )]update_wrapperwrapsWRAPPER_ASSIGNMENTSWRAPPER_UPDATEStotal_ordering
cmp_to_key	lru_cachereducepartialpartialmethodsingledispatch    )r   )get_cache_token)
namedtuple)MappingProxyType)WeakKeyDictionary)recursive_repr)RLockc               @   s   e Zd Zdd Zdd ZdS )r   c             C   s   d S )N )selfr   r   !/usr/lib64/python3.6/functools.py	__enter__   s    zRLock.__enter__c             C   s   d S )Nr   )r   exctypeexcinstexctbr   r   r   __exit__   s    zRLock.__exit__N)__name__
__module____qualname__r   r   r   r   r   r   r      s   r   r   r   r   __doc____annotations____dict__c             C   sn   x<|D ]4}yt ||}W n tk
r,   Y qX t| || qW x$|D ]}t | |jt ||i  qDW || _| S )N)getattrAttributeErrorsetattrupdate__wrapped__)wrapperwrappedassignedupdatedattrvaluer   r   r   r   ,   s    

c             C   s   t t| ||dS )N)r'   r(   r)   )r	   r   )r'   r(   r)   r   r   r   r   J   s    c             C   s$   | j |}||kr|S | o"| |kS )N)__lt__)r   otherNotImplemented	op_resultr   r   r   _gt_from_ltb   s    
r0   c             C   s   | j |}|p| |kS )N)r,   )r   r-   r.   r/   r   r   r   _le_from_lti   s    
r1   c             C   s   | j |}||kr|S | S )N)r,   )r   r-   r.   r/   r   r   r   _ge_from_ltn   s    
r2   c             C   s$   | j |}||kr|S | p"| |kS )N)__le__)r   r-   r.   r/   r   r   r   _ge_from_leu   s    
r4   c             C   s"   | j |}||kr|S |o | |kS )N)r3   )r   r-   r.   r/   r   r   r   _lt_from_le|   s    
r5   c             C   s   | j |}||kr|S | S )N)r3   )r   r-   r.   r/   r   r   r   _gt_from_le   s    
r6   c             C   s$   | j |}||kr|S | o"| |kS )N)__gt__)r   r-   r.   r/   r   r   r   _lt_from_gt   s    
r8   c             C   s   | j |}|p| |kS )N)r7   )r   r-   r.   r/   r   r   r   _ge_from_gt   s    
r9   c             C   s   | j |}||kr|S | S )N)r7   )r   r-   r.   r/   r   r   r   _le_from_gt   s    
r:   c             C   s$   | j |}||kr|S | p"| |kS )N)__ge__)r   r-   r.   r/   r   r   r   _le_from_ge   s    
r<   c             C   s"   | j |}||kr|S |o | |kS )N)r;   )r   r-   r.   r/   r   r   r   _gt_from_ge   s    
r=   c             C   s   | j |}||kr|S | S )N)r;   )r   r-   r.   r/   r   r   r   _lt_from_ge   s    
r>   r7   r3   r;   r,   )r,   r3   r7   r;   c                sZ    fddt D }|stdt|}x.t | D ]"\}}||kr0||_t || q0W  S )Nc                s(   g | ] }t  |d t t|d k	r|qS )N)r!   object).0op)clsr   r   
<listcomp>   s    z"total_ordering.<locals>.<listcomp>z6must define at least one ordering operation: < > <= >=)_convert
ValueErrormaxr   r#   )rB   rootsrootopnameopfuncr   )rB   r   r      s    c                s   G  fdddt }|S )Nc                   sZ   e Zd ZdgZdd Z fddZ fddZ fdd	Z fd
dZ fddZ	dZ
dS )zcmp_to_key.<locals>.Kobjc             S   s
   || _ d S )N)rK   )r   rK   r   r   r   __init__   s    zcmp_to_key.<locals>.K.__init__c                s    | j |j dk S )Nr   )rK   )r   r-   )mycmpr   r   r,      s    zcmp_to_key.<locals>.K.__lt__c                s    | j |j dkS )Nr   )rK   )r   r-   )rM   r   r   r7      s    zcmp_to_key.<locals>.K.__gt__c                s    | j |j dkS )Nr   )rK   )r   r-   )rM   r   r   __eq__   s    zcmp_to_key.<locals>.K.__eq__c                s    | j |j dkS )Nr   )rK   )r   r-   )rM   r   r   r3      s    zcmp_to_key.<locals>.K.__le__c                s    | j |j dkS )Nr   )rK   )r   r-   )rM   r   r   r;      s    zcmp_to_key.<locals>.K.__ge__N)r   r   r   	__slots__rL   r,   r7   rN   r3   r;   __hash__r   )rM   r   r   K   s   rQ   )r?   )rM   rQ   r   )rM   r   r      s    )r   c                   sF   e Zd ZdZ fddZdd	 Ze d
d Zdd Zdd Z	  Z
S )r	   funcargskeywordsr    __weakref__c                 s   | st dt| dk r t d| ^}}} t|s:t dt| } t|drv|j|  } |jj }|j| |}~|j	}t
t|j|}||_	| |_||_|S )Nz1descriptor '__new__' of partial needs an argument   z*type 'partial' takes at least one argumentz#the first argument must be callablerR   )	TypeErrorlencallabletuplehasattrrS   rT   copyr$   rR   superr	   __new__)rS   rT   rB   rR   Ztmpkwr   )	__class__r   r   r^      s(    




zpartial.__new__c              O   s:   | st d| ^}} |jj }|j| |j|j| |S )Nz2descriptor '__call__' of partial needs an argument)rW   rT   r\   r$   rR   rS   )rS   rT   r   Znewkeywordsr   r   r   __call__  s    

zpartial.__call__c             C   s   t | j}t| jg}|jdd | jD  |jdd | jj D  t | jdkrld| ddj	| dS | ddj	| dS )	Nc             s   s   | ]}t |V  qd S )N)repr)r@   xr   r   r   	<genexpr>  s    z#partial.__repr__.<locals>.<genexpr>c             s   s    | ]\}}| d |V  qdS )=Nr   )r@   kvr   r   r   rc     s    	functoolsz
functools.(z, ))
typer   ra   rR   extendrS   rT   itemsr   join)r   qualnamerS   r   r   r   __repr__  s    
zpartial.__repr__c             C   s*   t | | jf| j| j| jpd | jp$d ffS )N)rj   rR   rS   rT   r    )r   r   r   r   
__reduce__#  s    zpartial.__reduce__c             C   s   t |tstdt|dkr0tdt| |\}}}}t| szt |t sz|d k	rft |t sz|d k	rt |t rtdt|}|d kri }nt|tk	rt|}|d kri }|| _|| _|| _	|| _
d S )Nz(argument to __setstate__ must be a tuple   zexpected 4 items in state, got zinvalid partial state)
isinstancerZ   rW   rX   rY   dictrj   r    rR   rS   rT   )r   staterR   rS   kwds	namespacer   r   r   __setstate__'  s(    
zpartial.__setstate__)rR   rS   rT   r    rU   )r   r   r   rO   r^   r`   r   ro   rp   rw   __classcell__r   r   )r_   r   r	      s   
)r	   c               @   s8   e Zd Zdd Zdd Zdd Zdd Zed	d
 ZdS )r
   c             O   sr   t | r$t|d r$tdj|t|tr\|j| _|j| | _|jj	 | _| jj
| n|| _|| _|| _d S )N__get__z${!r} is not callable or a descriptor)rY   r[   rW   formatrr   r
   rR   rS   rT   r\   r$   )r   rR   rS   rT   r   r   r   rL   M  s    
zpartialmethod.__init__c             C   sN   dj tt| j}dj dd | jj D }d}|j| jj| jj	| j
||dS )Nz, c             s   s   | ]\}}d j ||V  qdS )z{}={!r}N)rz   )r@   re   rf   r   r   r   rc   c  s   z)partialmethod.__repr__.<locals>.<genexpr>z*{module}.{cls}({func}, {args}, {keywords}))modulerB   rR   rS   rT   )rm   mapra   rS   rT   rl   rz   r_   r   r   rR   )r   rS   rT   format_stringr   r   r   ro   a  s    

zpartialmethod.__repr__c                s    fdd} j |_  |_|S )Nc                 s<    j j }|j| | ^}}|f j t| } j||S )N)rT   r\   r$   rS   rZ   rR   )rS   rT   call_keywordscls_or_selfrest	call_args)r   r   r   _methodm  s
    

z3partialmethod._make_unbound_method.<locals>._method)__isabstractmethod___partialmethod)r   r   r   )r   r   _make_unbound_methodl  s    z"partialmethod._make_unbound_methodc             C   s   t | jdd }d }|d k	rd|||}|| jk	rdt|f| j| j}y|j|_W n tk
rb   Y nX |d kr|| j j||}|S )Nry   )	r!   rR   r	   rS   rT   __self__r"   r   ry   )r   rK   rB   getresultnew_funcr   r   r   ry   w  s    

zpartialmethod.__get__c             C   s   t | jddS )Nr   F)r!   rR   )r   r   r   r   r     s    z"partialmethod.__isabstractmethod__N)	r   r   r   rL   ro   r   ry   propertyr   r   r   r   r   r
   E  s
   	CacheInfohitsmissesmaxsizecurrsizec               @   s$   e Zd ZdZefddZdd ZdS )
_HashedSeq	hashvaluec             C   s   || d d < ||| _ d S )N)r   )r   tuphashr   r   r   rL     s    z_HashedSeq.__init__c             C   s   | j S )N)r   )r   r   r   r   rP     s    z_HashedSeq.__hash__N)r   r   r   rO   r   rL   rP   r   r   r   r   r     s   r   Nc       
         s   | }|r*||7 }x|j  D ]}	||	7 }qW |rl|| fdd| D 7 }|r|| fdd|j D 7 }n$||dkr |d |kr|d S t|S )Nc             3   s   | ]} |V  qd S )Nr   )r@   rf   )rj   r   r   rc     s    z_make_key.<locals>.<genexpr>c             3   s   | ]} |V  qd S )Nr   )r@   rf   )rj   r   r   rc     s       r   )rl   valuesr   )
rS   ru   typedkwd_mark	fasttypesrZ   rj   rX   keyitemr   )rj   r   	_make_key  s     r      Fc                s.    d k	rt  t rtd fdd}|S )Nz)Expected maxsize to be an integer or Nonec                s   t |  t}t|| S )N)_lru_cache_wrapper
_CacheInfor   )user_functionr&   )r   r   r   r   decorating_function  s    z&lru_cache.<locals>.decorating_function)rr   intrW   )r   r   r   r   )r   r   r   r     s    c                s   t  td\ i d 	djjt 
g d d gd d < dkrhfdd}nNd kr	fdd}n* 	
fd	d}	
fd
d}	
fdd}||_||_|S )Nr   r   rV      Fc                 s   | |} d7  |S )Nr   r   )rS   ru   r   )r   r   r   r   r&     s    
z#_lru_cache_wrapper.<locals>.wrapperc                 sH   | |}|}|k	r*d7 |S | |}| |< d7 |S )Nr   r   )rS   ru   r   r   )cache	cache_getr   make_keyr   sentinelr   r   r   r   r&     s    

c                 s2  
| |}	f |}|d k	rr|\}}}}||< ||<  }| |< < ||< |< d7 |S W d Q R X | |}	 |krnr}	||	 < ||	< |	   }
 }d   < < |
= |	|< n6 }|||g}| |<  < |<  kd7 W d Q R X |S )Nr   r   )rS   ru   r   linkZ	link_prevZ	link_nextZ_keyr   ZlastZoldrootZoldkeyZ	oldresult)KEYNEXTPREVRESULTr   r   	cache_lenfullr   lockr   r   r   rH   r   r   r   r   r&     sB    


c                  s       S Q R X d S )Nr   r   )r   r   r   r   r   r   r   r   
cache_infoG  s    z&_lru_cache_wrapper.<locals>.cache_infoc                  s<   .  j   d d gd d < d dW d Q R X d S )Nr   F)clearr   )r   r   r   r   r   rH   r   r   cache_clearL  s
    z'_lru_cache_wrapper.<locals>.cache_clear)r   r   rV   r   )r?   r   r   __len__r   r   r   )r   r   r   r   r&   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   rH   r   r   r   r   r     s*    *9	r   )r   c             C   s   g }xdd | D } | s|S x:| D ]2}|d }x$| D ]}||dd  kr4d }P q4W P q"W |d krht d|j| x| D ]}|d |krx|d= qxW qW d S )Nc             S   s   g | ]}|r|qS r   r   )r@   sr   r   r   rC   k  s    z_c3_merge.<locals>.<listcomp>r   r   zInconsistent hierarchy)RuntimeErrorappend)	sequencesr   s1	candidates2seqr   r   r   	_c3_mergec  s$    



r   c       
         s&  x8t t| jD ]"\}tdrt| j| }P qW d} rFt ng  t| jd | }g }t| j|d  }x: D ]2t| rxtfdd| jD  rx|j qxW x|D ] j	 qW  fdd|D } fdd|D } fdd|D }	t
| gg| | |	 |g |g |g S )	N__abstractmethods__r   c             3   s   | ]}t | V  qd S )N)
issubclass)r@   b)baser   r   rc     s    z_c3_mro.<locals>.<genexpr>c                s   g | ]}t | d qS ))abcs)_c3_mro)r@   r   )r   r   r   rC     s    z_c3_mro.<locals>.<listcomp>c                s   g | ]}t | d qS ))r   )r   )r@   r   )r   r   r   rC     s    c                s   g | ]}t | d qS ))r   )r   )r@   r   )r   r   r   rC     s    )	enumeratereversed	__bases__r[   rX   listr   anyr   remover   )
rB   r   iboundaryexplicit_basesabstract_basesother_basesexplicit_c3_mrosabstract_c3_mrosother_c3_mrosr   )r   r   r   r   ~  s(    


r   c                s   t j  fddfddD fddfddD t g }xD ]}g }x<|j D ]0}| krlt|rl|jfdd|jD  qlW |s|j| qZ|jtd	d
 x,|D ]$}x|D ]}||kr|j| qW qW qZW t|dS )Nc                s   |  kot | dot| S )N__mro__)r[   r   )typ)basesrB   r   r   
is_related  s    z _compose_mro.<locals>.is_relatedc                s   g | ]} |r|qS r   r   )r@   n)r   r   r   rC     s    z _compose_mro.<locals>.<listcomp>c                s(   x" D ]}| |kr| |j krdS qW dS )NTF)r   )r   r-   )typesr   r   is_strict_base  s    
z$_compose_mro.<locals>.is_strict_basec                s   g | ]} |s|qS r   r   )r@   r   )r   r   r   rC     s    c                s   g | ]}| kr|qS r   r   )r@   r   )type_setr   r   rC     s    T)r   reverse)r   )setr   __subclasses__r   r   sortrX   r   )rB   r   mror   foundsubsubclsr   )r   rB   r   r   r   r   r   _compose_mro  s*    




r   c             C   sx   t | |j }d }xZ|D ]R}|d k	r^||kr\|| jkr\|| jkr\t|| r\tdj||P ||kr|}qW |j|S )NzAmbiguous dispatch: {} or {})r   keysr   r   r   rz   r   )rB   registryr   matchtr   r   r   
_find_impl  s    



r   c                s   i t  d   fddd	 fdd	fdd}t| dd| t< |_|_t|_j|_t	||  |S )
Nc                s|    d k	r"t  } |kr"j  | y|  }W nH tk
rv   y|  }W n tk
rh   t| }Y nX || < Y nX |S )N)r   r   KeyErrorr   )rB   current_tokenimpl)cache_tokendispatch_cacher   r   r   dispatch  s    z singledispatch.<locals>.dispatchc                sB   |d kr fddS | < d kr6t  dr6t j  |S )Nc                s
    | S )Nr   )f)rB   registerr   r   <lambda>  s    z2singledispatch.<locals>.register.<locals>.<lambda>r   )r[   r   r   )rB   rR   )r   r   r   r   )rB   r   r     s    z singledispatch.<locals>.registerc                 s&   | st  d | d j| |S )Nz( requires at least 1 positional argumentr   )rW   r_   )rS   kw)r   funcnamer   r   r&   "  s    zsingledispatch.<locals>.wrapperr   zsingledispatch function)N)
r   r!   r?   r   r   r   r   r   _clear_cacher   )rR   r&   r   )r   r   r   r   r   r   r   r     s    


)r   r   r   r   r   )r    )r   F)N)8__all__
_functoolsr   ImportErrorabcr   collectionsr   r   r   weakrefr   reprlibr   _threadr   r   r   r   r   r.   r0   r1   r2   r4   r5   r6   r8   r9   r:   r<   r=   r>   rD   r   r   r	   r?   r
   r   r   r   r   str	frozensetrj   rZ   rX   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s   
 NN
%t
-)