£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyÊ¦•êŽ…È®FÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~èŠ©ÊÇí`ÔÑ©úë™µ'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ó¼ãžªéUWŸÈË%DÒÕ¬ï‘]/Åcx  ‰ï2ß]ä6G[]S£ÔÏ¯rs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ                  ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖUã
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<html>
3
vhJ                 @   sH   d dl mZ d dlZd dlZd dlZdd Zdd Zdd Zd	d
 ZdS )    )absolute_importNc              C   sP   t jd} y
| j}W n tk
r(   dS X t j|_| }t|tsL|jd}|S )z9Returns glibc version string, or None if not using glibc.Nascii)	ctypesZCDLLgnu_get_libc_versionAttributeErrorZc_char_pZrestype
isinstancestrdecode)Zprocess_namespacer   version_str r   /usr/lib/python3.6/glibc.pyglibc_version_string
   s    



r   c             C   sH   t jd| }|s$tjd|  t dS t|jd|koFt|jd|kS )Nz$(?P<major>[0-9]+)\.(?P<minor>[0-9]+)z=Expected glibc version with 2 components major.minor, got: %sFmajorminor)rematchwarningswarnRuntimeWarningintgroup)r
   required_majorminimum_minormr   r   r   check_glibc_version$   s    
r   c             C   s   t  }|d krdS t|| |S )NF)r   r   )r   r   r
   r   r   r   have_compatible_glibc4   s    r   c              C   s   t  } | dkrdS d| fS dS )zTry to determine the glibc version

    Returns a tuple of strings (lib, version) which default to empty strings
    in case the lookup fails.
    N Zglibc)r   r   )r   )Zglibc_versionr   r   r   libc_verL   s    r   )	Z
__future__r   r   r   r   r   r   r   r   r   r   r   r   <module>   s   