???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................3
JZ              !   @   s  d Z ddlZddlZddlZddlZddddddd	d
ddg
Zejd dkZerpeZ	e
ZeZeZdd Zdd	 Zn e	Z	eZeZeZdd Zdd	 ZyeZW n ek
r   dd
 ZY nX yddlmZ W n ek
rh   yddlmZ W n" ek
r
   ddlmZ Y nX ejdddddgZG dd deZe feeeeedfe e!ee"fddZ#d#d dZY nX ydd!l$m%Z% W n, ek
r   ej&ej'B dfd"dZ%Y nX dS )$z?Module which provides compatibility with older Python versions.    NPY3longxrangeunicode
basestringubcallable	lru_cachewhich   c             C   s   | S )N )sr   r   /usr/lib64/python3.6/_compat.pyr      s    c             C   s
   | j dS )Nzlatin-1)encode)r   r   r   r   r      s    c             C   s
   t | dS )NZunicode_escape)r   )r   r   r   r   r   "   s    c             C   s   | S )Nr   )r   r   r   r   r   %   s    c             C   s   t dd t| jD S )Nc             s   s   | ]}d |j kV  qdS )__call__N)__dict__).0klassr   r   r   	<genexpr>.   s    zcallable.<locals>.<genexpr>)anytype__mro__)objr   r   r   r	   -   s    )r
   )RLock	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!   )selftuphashr   r   r   __init__E   s    z_HashedSeq.__init__c             C   s   | j S )N)r!   )r"   r   r   r   __hash__I   s    z_HashedSeq.__hash__N)__name__
__module____qualname__	__slots__r$   r%   r&   r   r   r   r   r    B   s   r    c	                s   | }	|r2||j  }
|	|7 }	x|
D ]}|	|7 }	q"W |rp|	| fdd| D 7 }	|r|	| fdd|
D 7 }	n$||	dkr |	d |kr|	d S t|	S )Nc             3   s   | ]} |V  qd S )Nr   )r   v)r   r   r   r   W   s    z_make_key.<locals>.<genexpr>c             3   s   | ]\}} |V  qd S )Nr   )r   kr+   )r   r   r   r   Y   s       r   )itemsr    )argskwdstypedkwd_mark	fasttypessortedtupler   lenkeyZsorted_itemsitemr   )r   r   	_make_keyL   s    
r9   d   Fc                s    fdd}|S )z~Least-recently-used cache decorator, see:
        http://docs.python.org/3/library/functools.html#functools.lru_cache
        c                s  t  ddgd\ t
jtt 	g d d gd d < gd\dkrnfdd}nPd kr 
f	dd}n* 	
fdd} 	fd	d
}	fdd}|_||_||_tj	|S )Nr   r-      r   c                 s   | |}   d7  < |S )Nr-   r   )r/   r0   result)MISSESstatsuser_functionr   r   wrappero   s    
z7lru_cache.<locals>.decorating_function.<locals>.wrapperc                 sX   | |}|}|k	r2   d7  < |S | |}||<   d7  < |S )Nr-   r   )r/   r0   r7   r<   )	HITSr=   cache	cache_getmake_keyrootr>   r1   r?   r   r   r@   t   s    

c                 sl  |sr
| |}n| }	j   zr|}|d k	r\}|\}}}}||< ||< | }| |< |< ||< ||<    d7  < |S W d 	j  X | |}	j   z\}|krnkr|}	||	< ||	< |	  }d< | }
d  |< |< |
= |	|< n,| }||||g}| |<  |< |<   d7  < W d 	j  X |S )Nr-   r   )acquirerelease)r/   r0   r7   linkrE   Z	link_prevZ	link_nextr<   ZlastZoldrootZoldkey)rA   KEYr=   NEXTPREVRESULT_lenrB   rC   lockrD   r   nonlocal_rootr>   r1   r?   r   r   r@      sN    



c                  s2   j   zt   tS j  X dS )zReport cache statisticsN)rF   
_CacheInfor6   rG   r   )rA   r=   rB   rN   r   r>   r   r   
cache_info   s
    
z:lru_cache.<locals>.decorating_function.<locals>.cache_infoc           
      sP   j   z8 j  d } | | ddg| dd< ddgdd< W dj  X dS )z$Clear the cache and cache statisticsr   N)rF   clearrG   )rE   )rB   rN   rO   r>   r   r   cache_clear   s    z;lru_cache.<locals>.decorating_function.<locals>.cache_clear)r   r-   )r   r-   r;   r   )
dictr9   getr6   r   __wrapped__rQ   rS   	functoolsupdate_wrapper)r?   r@   rQ   rS   )r   r1   )rA   rI   r=   rJ   rK   rL   rM   rB   rC   rN   rD   rO   rE   r>   r?   r   decorating_functionb   s,    *-	z&lru_cache.<locals>.decorating_functionr   )r   r1   rY   r   )r   r1   r   r
   ^   s    c)r   c                s"  dd }t jj r&| |r" S dS |dkr>t jjdt j}|sFdS |jt j}tj	dkrt j
|krt|jdt j
 t jjddjt j}t fd	d
|D r g}q fdd|D }n g}t }xT|D ]L}t jj|}||kr|j| x(|D ] }	t jj||	}
||
|r|
S qW qW dS )aJ  Given a command, mode, and a PATH string, return the path which
        conforms to the given mode on the PATH, or None if there is no such
        file.

        `mode` defaults to os.F_OK | os.X_OK. `path` defaults to the result
        of os.environ.get("PATH"), or can be overridden with a custom search
        path.
        c             S   s&   t jj| o$t j| |o$t jj|  S )N)ospathexistsaccessisdir)fnmoder   r   r   _access_check   s    zwhich.<locals>._access_checkNPATHZwin32r   ZPATHEXT c             3   s    | ]} j  j|j  V  qd S )N)lowerendswith)r   ext)cmdr   r   r      s    zwhich.<locals>.<genexpr>c                s   g | ]} | qS r   r   )r   rf   )rg   r   r   
<listcomp>   s    zwhich.<locals>.<listcomp>)rZ   r[   dirnameenvironrU   defpathsplitpathsepsysplatformcurdirinsertr   setnormcaseaddjoin)rg   r`   r[   ra   ZpathextfilesseendirZnormdirZthefilenamer   )rg   r   r      s8    	






)r:   F)(__doc__collectionsrW   rZ   rn   __all__version_infor   intr   ranger   strr   r   r   r   r	   	NameErrorr
   ImportErrorZ	threadingr   Zdummy_threading
namedtuplerP   listr    objectrr   	frozensetr   r4   r5   r6   r9   Zshutilr   F_OKX_OKr   r   r   r   <module>   sT   


k