£Á°è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>

Re                 @   s   d  d l  m Z d  d l Z d d l m Z m Z d d l m Z d d   Z e j	 d d d	 d
  Z
 d d   Z d d   Z d d   Z e d  Z d S)    )absolute_importN   )NoWayToWaitForSocketErrorwait_for_read   )_appengine_environc             C   sc   t  |  d d  } | d k r" d S| d k r2 d Sy t | d d SWn t k
 r^ d SYn Xd S)a   
    Returns True if the connection is dropped and should be closed.

    :param conn:
        :class:`httplib.HTTPConnection` object.

    Note: For platforms like AppEngine, this will always return ``False`` to
    let the platform handle connection recycling transparently for us.
    sockFNTtimeoutg        )getattrr   r   )connr    r   /builddir/build/BUILDROOT/alt-python35-pip-20.2.4-5.el8.x86_64/opt/alt/python35/lib/python3.5/site-packages/pip/_vendor/urllib3/util/connection.pyis_connection_dropped   s    
r   c             C   sR  |  \ } } | j  d  r* | j d  } d } t   } x t j | | | t j  D] } | \ }	 }
 } } } d } yf t j |	 |
 |  } t | |  | t j k	 r | j |  | r | j	 |  | j
 |  | SWqU t j k
 r(} z' | } | d k	 r| j   d } WYd d } ~ XqU XqU W| d k	 r?|  t j d   d S)ad  Connect to *address* and return the socket object.

    Convenience function.  Connect to *address* (a 2-tuple ``(host,
    port)``) and return the socket object.  Passing the optional
    *timeout* parameter will set the timeout on the socket instance
    before attempting to connect.  If no *timeout* is supplied, the
    global default timeout setting returned by :func:`getdefaulttimeout`
    is used.  If *source_address* is set it must be a tuple of (host, port)
    for the socket to bind as a source address before making the connection.
    An host of '' or port 0 tells the OS to use the default.
    [z[]Nz!getaddrinfo returns an empty list)
startswithstripallowed_gai_familysocketgetaddrinfoSOCK_STREAM_set_socket_options_GLOBAL_DEFAULT_TIMEOUT
settimeoutbindconnecterrorclose)addressr	   source_addresssocket_optionshostporterrfamilyresafsocktypeproto	canonnamesar   er   r   r   create_connection!   s2    	"
r+   c             C   s2   | d  k r d  Sx | D] } |  j  |   q Wd  S)N)
setsockopt)r   optionsoptr   r   r   r   Y   s    r   c              C   s   t  j }  t r t  j }  |  S)zThis function is designed to work in the context of
    getaddrinfo, where family=socket.AF_UNSPEC is the default and
    will perform a DNS search for both IPv6 and IPv4 records.)r   AF_INETHAS_IPV6	AF_UNSPEC)r#   r   r   r   r   a   s    		r   c             C   s}   d } d } t  j   r d St j ri y/ t j t j  } | j |  d f  d } Wn t k
 rh Yn X| ry | j   | S)z6 Returns True if the system can bind an IPv6 address. NFr   T)r   is_appengine_sandboxr   has_ipv6AF_INET6r   	Exceptionr   )r    r   r3   r   r   r   	_has_ipv6l   s    	

r6   z::1)
__future__r   r   waitr   r   contribr   r   r   r+   r   r   r6   r0   r   r   r   r   <module>   s   4