ÿØÿà 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
in                 @   s>  d Z d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y
ejZ	W n( e
k
rj   ejdkrbdZ	ndZ	Y nX d	Zd
dddddddddd
ZejdZdd ZejdejZejdddfddZdd ZejdejZejdejZejdejZdZd.d/ Zddded0fd1d2Zd3d4 Zdddefd5d6Zdd8d9Zdd:d;Zejd<Z dd=d>Z!dd@ddAddCddDddFddGddHddJddKddLddMiZ"ddCddNddOddPddQddRiZ#ddSdTZ$dUdV Z%ddWdXZ&dYdZ Z'dd[d\Z(d]d^ Z)d_d` Z*ddadbZ+dcdd Z,ddedfZ-ddgdhZ.ddddlZ/ejddfdmdnZ0ej1dodpZ2da3dqdr Z4dsdt Z5dudv Z6dwdx Z7dydz Z8d{d| Z9d}d~ Z:ejdejZ;ejdejZ<ejdZ=ejdZ>i Z?dddZ@dd ZAdd ZBdd ZCdd ZDdd ZEdd ZFdd ZGi ZHdddZeIdkr:dejJkp
dejJkZKdejJko dejJkZLeMeeLeK ejNd dS )a  
    Copyright (c) 1999-2000, Marc-Andre Lemburg; mailto:mal@lemburg.com
    Copyright (c) 2000-2010, eGenix.com Software GmbH; mailto:info@egenix.com

    Permission to use, copy, modify, and distribute this software and its
    documentation for any purpose and without fee or royalty is hereby granted,
    provided that the above copyright notice appear in all copies and that
    both that copyright notice and this permission notice appear in
    supporting documentation or portions thereof, including modifications,
    that you make.

    EGENIX.COM SOFTWARE GMBH DISCLAIMS ALL WARRANTIES WITH REGARD TO
    THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
    FITNESS, IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL,
    INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
    FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
    NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
    WITH THE USE OR PERFORMANCE OF THIS SOFTWARE !

z1.0.8    Ndoswin32win16ZNULz	/dev/nullz/etc
         (   2      )
ZdevZalphaaZbetabcZRCrcplpz([0-9]+|[._+-])c             C   sf   g }x\t j| D ]N}|dkryt|d}d}W n  tk
rN   tj|d}Y nX |j||f qW |S )Nz._+-r   d   r   )_component_resplitint
ValueError_ver_stagesgetextend)versionresultvt r    /usr/lib64/python3.6/platform.py_comparable_version   s    
r   sC   (__libc_init)|(GLIBC_([0-9.]+))|(libc(_\w+)?\.so(?:\.(\d[0-9.]*))?) i @  c             C   s  t }ttjdrtjj| } t| d`}|j|}d}xH|t|k rd|ksZd|krhtj	||}nd }| s|j
 t|kr|j|}	|	r|t|t|d d  |	 }d}q<|sP dd |j D \}
}}}}}|
r| rd	}n|r|d
krd
}|}n||||krx|}n^|rx|d
krxd	}|rR| sN||||krR|}|rx|t| d  |krx|| }|j
 }q<W W d Q R X ||fS )Nrealpathrbr   s   libcs   GLIBCi  c             S   s"   g | ]}|d k	r|j dn|qS )Nlatin1)decode).0sr   r   r   
<listcomp>   s   zlibc_ver.<locals>.<listcomp>Zlibcglibc)r   hasattrospathr!   openreadlen_libc_searchsearchendmaxgroups)
executablelibr   Z	chunksizeVfZbinaryposmchunkZlibcinitr(   ZglibcversionZsoZthreadsZ	soversionr   r   r   libc_ver   sJ    




 r;   c             C   sp  t jjdrd} td`}xX|D ]P}|j }t|dkr |\}}nq |dkrV|j }q |dkr |jd}|d }q W W d Q R X | ||fS t jjdrtdD}x<|D ]4}|jd}	t|	dkr|	d d	krd	|	d
 |fS qW W d Q R X t jjdrft jd}
x:t	t|
d
 ddD ]"}|
| d d dkr|
|= qW |
rf|
j
  d} |
d dd  }| ||fS | ||fS )Nz/var/adm/inst-log/infoSuSE   ZMIN_DIST_VERSIONZ
DIST_IDENT-z/etc/.installedr   Z	OpenLinux   z/usr/lib/setup   zslack-version-	slackwarerB   rB   )r*   r+   existsr,   r   r.   stripisdirlistdirrangesort)distnamer   idr7   lineZtvtagvaluevaluesZpkgZverfilesnr   r   r   _dist_try_harder   s>    	










rP   z(\w+)[-_](release|version)z'(.+) release ([\d.]+)[^(]*(?:\((.+)\))?z1([^0-9]+)(?: release )?([\d.]+)[^(]*(?:\((.+)\))?r<   debianfedoraredhatcentos	almalinuxmandrakemandrivarocksrA   	yellowdoggentooUnitedLinux
turbolinuxarchmageiac             C   sz   d}d}t j| }|d k	r&t|j S tj| }|d k	rDt|j S | j j }|rp|d }t|dkrp|d }d||fS )Nr    r   r?   )_lsb_release_versionmatchtupler3   _release_versionrD   r   r.   )	firstliner   rJ   r9   lr   r   r   _parse_release_file0  s    

re   r?   c             C   s(   dd l }|jdtdd t| ||||S )Nr   zFdist() and linux_distribution() functions are deprecated in Python 3.5r=   )
stacklevel)warningswarnPendingDeprecationWarning_linux_distribution)rI   r   rJ   supported_distsfull_distribution_namerg   r   r   r   linux_distributionK  s
    

rm   c             C   s   yt jt}W n tk
r(   | ||fS X |j  xD|D ]0}tj|}|d k	r8|j \}}	||kr8|} P q8W t| ||S t	t j
jt|dddd}
|
j }W d Q R X t|\}}}|r|r|} |r|}|r|}| ||fS )Nrzutf-8surrogateescape)encodingerrors)r*   rF   _UNIXCONFDIROSErrorrH   _release_filenamer`   r3   rP   r,   r+   joinreadlinere   )rI   r   rJ   rk   rl   Zetcfiler9   Z	_distnameZdummyr7   rc   Z_versionZ_idr   r   r   rj   U  s0    

rj   c             C   s*   dd l }|jdtdd t| |||ddS )Nr   zFdist() and linux_distribution() functions are deprecated in Python 3.5r=   )rf   )rk   rl   )rg   rh   ri   rj   )rI   r   rJ   rk   rg   r   r   r   dist  s    
rx   rn   c             C   s&   dd l }|jdtdd tj| ||S )Nr   zuse os.popen insteadr=   )rf   )rg   rh   DeprecationWarningr*   popen)cmdmodebufsizerg   r   r   r   rz     s    rz   c             C   sd   | j d}|r|j| ytt|}W n tk
r>   |}Y nX ttt|}dj|d d } | S )N.   )r   appendmapr   r   liststrru   )r   buildrd   ZintsZstringsr   r   r   _norm_version  s    


r   z'(?:([\w ]+) ([\w.]+) .*\[.* ([\d.]+)\])c       	      C   s   t j|kr| ||fS xddD ]R}y&tj|}|j }|j rBtdW n$ tk
rh } zwW Y d d }~X qX P qW | ||fS |j }tj	|}|d k	r|j
 \} }}|d dkr|d d	 }|d
 dkr|d d }t|}| ||fS )Nvercommand /c ver
cmd /c verzcommand failedr?   r~   )r   r   r   rB   rB   rB   rB   )sysplatformr*   rz   r-   closers   rD   _ver_outputr`   r3   r   )	systemreleaser   Zsupported_platformsr{   pipeinfoZwhyr9   r   r   r   _syscmd_ver  s,    





r      Z2000ZXPr=   Z
2003ServerZpost2003   Vista78r   z8.1zpost8.1Z10Zpost10Z
2008ServerZ2008ServerR2Z
2012ServerZ2012ServerR2Zpost2012ServerR2c          (   C   s  yddl m} W n tk
r,   | |||fS X yddlm}m}m}m} W n, tk
rv   ddlm}m}m}m} Y nX | }	|	j	p|	d d \}
}}dj
|
||}tj|
|fptj|
d fp| } |	d d |
|fkr$ydj
|	j}W n8 tk
r"   |d d d	krd
|dd   }Y nX t|	dd dkrZtj|
|fpXtj|
d fpX| } d }z.y||d}||dd }W n   Y nX W d |r|| X | |||fS )Nr   )getwindowsversion)	OpenKeyExQueryValueExCloseKeyHKEY_LOCAL_MACHINEr   z{0}.{1}.{2}r=   zSP{}   zService Pack ZSPZproduct_typez,SOFTWARE\Microsoft\Windows NT\CurrentVersionZCurrentType)r   r   ImportErrorwinregr   r   r   r   _winregZplatform_versionformat_WIN32_CLIENT_RELEASESr   Zservice_pack_majorAttributeErrorgetattr_WIN32_SERVER_RELEASES)r   r   csdptyper   r   r   r   r   ZwinverZmajminr   keyr   r   r   	win32_ver  sD    

r   c              C   s   d} t jj| sd S ydd l}W n tk
r4   d S X t| d}|j|}W d Q R X |d }d	}t j j}|d
krxd}|||fS )Nz0/System/Library/CoreServices/SystemVersion.plistr   r"   ZProductVersionr    ppcPower MacintoshZPowerPC)r    r    r    )r   r   )	r*   r+   rC   plistlibr   r,   loadunamemachine)fnr   r7   r   r   versioninfor   r   r   r   _mac_ver_xmlE  s    
r   c             C   s   t  }|d k	r|S | ||fS )N)r   )r   r   r   r   r   r   r   mac_ver[  s    r   c             C   s@   ddl m} y|j| }|d kr$|S |S  tk
r:   |S X d S )Nr   )System)	java.langr   ZgetPropertyr   )namedefaultr   rM   r   r   r   _java_getpropn  s    
r   c             C   s   ydd l }W n tk
r(   | |||fS X td|}td| } |\}}}td|}td|}td|}|||f}|\}}	}
td|
}
td|}td	|	}	||	|
f}| |||fS )
Nr   zjava.vendorzjava.versionzjava.vm.namezjava.vm.vendorzjava.vm.versionzjava.os.archzjava.os.namezjava.os.version)r   r   r   )r   vendorvminfoosinfojavaZvm_nameZ
vm_releaseZ	vm_vendoros_name
os_versionos_archr   r   r   java_very  s"    











r   c             C   s   | dkrd| | |fS | dkr|dk r0| ||fS |j d}|ryt|d }W n tk
rb   Y n X |d }t||d< dj|}|dk rd	} qd	} n,| d
krd} |r|d }qd}n| dkrd} | ||fS )NZRhapsodyzMacOS X ServerZSunOS5r~   r   r   6ZSolarisZIRIX64ZIRIXz (64bit)64bitr   r   Windows)r   r   )r   r   r   r   ru   )r   r   r   rd   majorr   r   r   system_alias  s2    	



r   c              G   s   dj dd tt| D }|jdd}|jdd}|jdd}|jdd}|jd	d}|jd
d}|jdd}|jdd}|jdd}x|jdd}||krP |}qW x|d dkr|d d }qW |S )Nr>   c             s   s   | ]}|j  V  qd S )N)rD   )r%   xr   r   r   	<genexpr>  s    z_platform.<locals>.<genexpr> _/\:;"()unknownr    z--r?   rB   rB   )ru   filterr.   replace)argsr   Zcleanedr   r   r   	_platform  s$    r   c             C   sD   ydd l }W n tk
r    | S X y|j S  tk
r>   | S X d S )Nr   )socketr   Zgethostnamers   )r   r   r   r   r   _node  s    r   c             C   sF   t jj| } x4t jj| r@t jjt jjt jj| t j| } qW | S )N)r*   r+   abspathislinknormpathru   dirnamereadlink)filepathr   r   r   _follow_symlinks  s
    "r   c             C   sh   t jdkr|S ytjd| tf }W n ttfk
r<   |S X |j j }|j	 }| s\|r`|S |S d S )Nr   r   r   zuname %s 2> %s)r   r   r   )
r   r   r*   rz   DEV_NULLr   rs   r-   rD   r   )Zoptionr   r7   outputr   r   r   r   _syscmd_uname  s    

r   c             C   s|   t jdkr|S t| } ytjd| gtjtjd}W n ttfk
rJ   |S X |j	 d j
d}|j }| sp|rt|S |S d S )	Nr   r   r   rw   )stdoutstderrr   zlatin-1)r   r   r   )r   r   r   
subprocessPopenPIPEZSTDOUTr   rs   Zcommunicater$   wait)targetr   procr   r   r   r   r   _syscmd_file  s    	


r   	WindowsPEr   MSDOS)r   r   r   c             C   s.  |sLdd l }y|jd}W n  |jk
r:   |jd}Y nX t|d d }| r\t| d}nd}| r| tjkrtjtkrttj \}}|r|}|r|}||fS d|kr||fS d|krd	}nd
|krd}nd|krd}d|krd}n@d|krd|kr d}nd}n d|krd}nd|kr&d}n ||fS )Nr   Prd      bitr    r4   z32-bit32bitZN32Zn32bitz64-bitr   ZELFZPEr   r   ZCOFFzMS-DOSr   )	structZcalcsizeerrorr   r   r   r4   r   _default_architecture)r4   bitslinkager   sizeZfileoutr   rd   r   r   r   architectureB  sL    





r   uname_resultz-system node release version machine processorc              C   s  d} t d k	rt S d}ytj \}}}}}W n tk
rB   d} Y nX | sdttd |||||f r| rtj}d}d}t }d}d}|dkrt	 \}}}}	|r|rd}|sdtj
krtj
jdd}ntj
jdd}|stj
jd|}|r<t|\}}}|dkrd	}n4|d
kr<|d	kr<d	}d|d d kr8d}nd}|dkrf|s`|dkr\d}nd}d	}n8|d d dkrt \}}
}}d}dj|}|s|
}|dkr
| s|dkr|}d}ydd l}W n tk
r   Y n&X |jdd\}}|dkrd}nd}|stdd}|dkr(d}|dkr6d}|dkrDd}|dkrRd}|dkr`d}|dkrnd}|d
kr|d	krd	}d}t||||||a t S )Nr   r    r?   r   ZPROCESSOR_ARCHITEW6432ZPROCESSOR_ARCHITECTUREZPROCESSOR_IDENTIFIERzMicrosoft Windowsr   Z	Microsoftz6.0r   r   r   r   Z16bit   r   Javaz, ZOpenVMS0zSYI$_CPU   ZAlphaZVAXz-pr   )r   r   )_uname_cacher*   r   r   r   r   r   r   r   r   environr   r   r   ru   vms_libr   Zgetsyir   r   )Zno_os_uname	processorr   noder   r   r   Zuse_syscmd_verr   r   r   r   r   r   ZcsidZ
cpu_numberr   r   r   r     s    
 














r   c               C   s   t  jS )N)r   r   r   r   r   r   r   %  s    r   c               C   s   t  jS )N)r   r  r   r   r   r   r  .  s    r  c               C   s   t  jS )N)r   r   r   r   r   r   r   8  s    r   c               C   s   t  jS )N)r   r   r   r   r   r   r   A  s    r   c               C   s   t  jS )N)r   r   r   r   r   r   r   J  s    r   c               C   s   t  jS )N)r   r  r   r   r   r   r  S  s    
r  zL([\w.+]+)\s*\(#?([^,]+)(?:,\s*([\w ]*)(?:,\s*([\w :]*))?)?\)\s*\[([^\]]+)\]?z;IronPython\s*([\d\.]+)(?: \(([\d\.]+)\))? on (.NET [\d\.]+)zU([\d.]+)\s*\(IronPython\s*[\d.]+\s*\(([\d.]+)\) on ([\w.]+ [\d.]+(?: \(\d+-bit\))?)\)zE([\w.+]+)\s*\(#?([^,]+),\s*([\w ]+),\s*([\w :]+)\)\s*\[PyPy [^\]]+\]?c             C   s  | d krt j} tj| d }|d k	r&|S d| krd}| jdrHtj| }n
tj| }|d krjtdt	|  |j
 \}}}d}d}nt jjdrd}tj| }|d krtdt	|  |j
 \}}}}	}
|d krd}t j}nd| kr"d}tj| }|d krtdt	|  |j
 \}}}}	d}n\tj| }|d krFtd	t	|  |j
 \}}}}	}d
}|d krld}n|	r~|d |	 }tt drt j\}
}}n<tt drt j\}
}}n"tt drt j\}
}}nd}d}|jd}t|dkr |jd dj|}|||||||f}|t| < |S )NZ
IronPythonz*failed to parse IronPython sys.version: %sr    r   ZJythonz&failed to parse Jython sys.version: %sZPyPyz$failed to parse PyPy sys.version: %sz'failed to parse CPython sys.version: %sZCPythonr   _git
_mercurial
subversionr~   r=   r   )r   r   _sys_version_cacher   
startswith_ironpython_sys_version_parserr`    _ironpython26_sys_version_parserr   reprr3   r   _sys_version_parser_pypy_sys_version_parserr)   r  r  r  r   r.   r   ru   )sys_versionr   r   r`   r   Zalt_versionZcompilerZbuildnoZ	builddateZ	buildtimer   ZbranchZrevisionrd   r   r   r   _sys_version}  s|    











r  c               C   s
   t  d S )Nr   )r  r   r   r   r   python_implementation  s    r  c               C   s
   t  d S )Nr?   )r  r   r   r   r   python_version  s    r  c               C   s   t t d jdS )Nr?   r~   )ra   r  r   r   r   r   r   python_version_tuple  s    	r  c               C   s
   t  d S )Nr=   )r  r   r   r   r   python_branch
  s    r  c               C   s
   t  d S )Nr   )r  r   r   r   r   python_revision  s    r  c               C   s   t  dd S )Nr   r   )r  r   r   r   r   python_build%  s    r  c               C   s
   t  d S )Nr   )r  r   r   r   r   python_compiler-  s    r  c             C   s  t j| |fd }|d k	r|S t \}}}}}}||kr:d}| rPt|||\}}}|dkrt|\}	}
}}|rxt||}nt||||}n.|d
krtj " tjddt	 t
d\}}}W d Q R X |r| rt||||d|||}n$ttj\}}t||||d|| }n|dkr\t \}}}\}}}|s8| rFt|||}nt|||d|||}n\|d	kr|rxt||}nt|||}n2|rt||}n ttj\}}t||||||}|t | |f< |S )Nr    r   Linuxignorez?dist\(\) and linux_distribution\(\) functions are deprecated .*withr   ZonZMacOS)r  )_platform_cacher   r   r   r   r   rg   catch_warningsfilterwarningsri   rx   r;   r   r4   r   r   )aliasedterser   r   r  r   r   r   r  ZrelZversr   r   r   rI   ZdistversionZdistidZlibcnameZlibcversionrn   r   r   r   r   r   r   r   r   r   r   r   9  s\    







r   __main__r  z--terseZ
nonaliasedz--nonaliased)r   r   r   )r<   rQ   rR   rS   rT   rU   rV   rW   rX   rA   rY   rZ   r[   r\   r]   r^   rB   )rn   rB   )r    r   r   r   )r    r    r    r  )r   r   )r   r?   )r   r=   )r   N)r   r   )r   r?   )r   r=   )r   r   )r   N)r   r   )r   N)r   r=   )r   r   )r   r?   )r   r=   )r   r   )r   N)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   )r    r   )r    r   )N)r   r   )OZ__copyright____version__collectionsr   r*   rer   rg   devnullr   r   r   rr   r   compiler   r   ASCIIr/   r4   r;   rP   rt   r_   rb   Z_supported_distsre   rm   rj   rx   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   
namedtupler   r   r   r   r  r   r   r   r  r  r  r	  r  r  r  r  r  r  r  r  r  r  r  __name__argvr  r  printexitr   r   r   r   <module>o   s    




:2  6
	

 
0
0

#6 


T 	
			
k


[
