<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
ž
7’ReN  c               @   sÿ  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 d d l Z d d l Z d d l	 Z	 d d l
 Z
 d d l m Z d d l m Z d d l m Z d d l m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z d d l m Z m Z d d	 l m  Z  d d
 l! m" Z" e f Z# dR Z$ e j% ƒ  Z& d d „  Z' d d „  Z( d d „  Z) d d „  Z* d d „  Z+ d d „  Z, d d „  Z- d d „  Z. dS d d „ Z0 d d  „  Z1 d! d" „  Z2 d# d$ „  Z3 d% d& „  Z4 d' d( „  Z5 d) d* „  Z6 d+ d, „  Z7 e8 d- d. ƒ Z9 d/ d0 „  Z: d1 d2 „  Z; d3 d4 „  Z< d5 d6 „  Z= d7 d8 „  Z> d9 d: „  Z? d; d< „  Z@ d= d> „  ZA d? d@ dA „ ZB dB dC „  ZC dD dE „  ZD dF jE dG ƒ ZF eF dH ZG eF dI ZH dJ dK „  ZI dL dM „  ZJ dN dO „  ZK dG dP dQ „ ZL d S(T   u•   
requests.utils
~~~~~~~~~~~~~~

This module provides utility functions that are used within Requests
that are also useful for external consumption.

i    Ni   (   u   __version__(   u   certs(   u   parse_http_list(   u   quoteu   urlparseu   bytesu   stru   OrderedDictu   unquoteu   is_py2u   builtin_stru
   getproxiesu   proxy_bypassu
   urlunparse(   u   RequestsCookieJaru   cookiejar_from_dict(   u   CaseInsensitiveDict(   u
   InvalidURLu   .netrcu   _netrcc             C   s"   t  |  d ƒ r |  j ƒ  }  n  |  S(   u/   Returns an internal sequence dictionary update.u   items(   u   hasattru   items(   u   d(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   dict_to_sequence'   s    u   dict_to_sequencec             C   sœ   t  |  d ƒ r t |  ƒ St  |  d ƒ r/ |  j St  |  d ƒ ry y |  j ƒ  } Wn t j k
 re Yqy Xt j | ƒ j Sn  t  |  d ƒ r˜ t |  j ƒ  ƒ Sd  S(   Nu   __len__u   lenu   filenou   getvalue(	   u   hasattru   lenu   filenou   iou   UnsupportedOperationu   osu   fstatu   st_sizeu   getvalue(   u   ou   fileno(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu	   super_len0   s    
u	   super_lenc       
      C   s8  yd d l  m  } m } d } xb t D]Z } y t j j d j | ƒ ƒ } Wn t k
 rc d SYn Xt j j	 | ƒ r& | } Pq& q& W| d k r” d St
 |  ƒ } | j j d ƒ d } yG | | ƒ j | ƒ } | rü | d rä d n d }	 | |	 | d f SWn | t f k
 rYn XWn t t f k
 r3Yn Xd S(   u;   Returns the Requests tuple auth for a given url from netrc.i    (   u   netrcu   NetrcParseErroru   ~/{0}Nu   :i   i   (   u   netrcu   NetrcParseErroru   Noneu   NETRC_FILESu   osu   pathu
   expanduseru   formatu   KeyErroru   existsu   urlparseu   netlocu   splitu   authenticatorsu   IOErroru   ImportErroru   AttributeError(
   u   urlu   netrcu   NetrcParseErroru
   netrc_pathu   fu   locu   riu   hostu   _netrcu   login_i(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   get_netrc_authD   s0    		u   get_netrc_authc             C   sL   t  |  d d ƒ } | rH | d d k rH | d d k rH t j j | ƒ Sd S(   u0   Tries to guess the filename of the given object.u   namei    u   <i   u   >Niÿÿÿÿ(   u   getattru   Noneu   osu   pathu   basename(   u   obju   name(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   guess_filenamer   s    &u   guess_filenamec             C   sD   |  d k r d St |  t t t t f ƒ r: t d ƒ ‚ n  t |  ƒ S(   u¬  Take an object and test to see if it can be represented as a
    dictionary. Unless it can not be represented as such, return an
    OrderedDict, e.g.,

    ::

        >>> from_key_val_list([('key', 'val')])
        OrderedDict([('key', 'val')])
        >>> from_key_val_list('string')
        ValueError: need more than 1 value to unpack
        >>> from_key_val_list({'key': 'val'})
        OrderedDict([('key', 'val')])
    u+   cannot encode objects that are not 2-tuplesN(   u   Noneu
   isinstanceu   stru   bytesu   boolu   intu
   ValueErroru   OrderedDict(   u   value(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   from_key_val_listy   s
    u   from_key_val_listc             C   se   |  d k r d St |  t t t t f ƒ r: t d ƒ ‚ n  t |  t j ƒ r[ |  j	 ƒ  }  n  t
 |  ƒ S(   uz  Take an object and test to see if it can be represented as a
    dictionary. If it can be, return a list of tuples, e.g.,

    ::

        >>> to_key_val_list([('key', 'val')])
        [('key', 'val')]
        >>> to_key_val_list({'key': 'val'})
        [('key', 'val')]
        >>> to_key_val_list('string')
        ValueError: cannot encode objects that are not 2-tuples.
    u+   cannot encode objects that are not 2-tuplesN(   u   Noneu
   isinstanceu   stru   bytesu   boolu   intu
   ValueErroru   collectionsu   Mappingu   itemsu   list(   u   value(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   to_key_val_list   s    u   to_key_val_listc             C   sw   g  } xj t  |  ƒ D]\ } | d d … | d d … k oD d k n rb t | d d … ƒ } n  | j | ƒ q W| S(   uñ  Parse lists as described by RFC 2068 Section 2.

    In particular, parse comma-separated lists where the elements of
    the list may include quoted-strings.  A quoted-string could
    contain a comma.  A non-quoted string could have quotes in the
    middle.  Quotes are removed automatically after parsing.

    It basically works like :func:`parse_set_header` just that items
    may appear multiple times and case sensitivity is preserved.

    The return value is a standard :class:`list`:

    >>> parse_list_header('token, "quoted value"')
    ['token', 'quoted value']

    To create a header from the :class:`list` again, use the
    :func:`dump_header` function.

    :param value: a string with a list header.
    :return: :class:`list`
    Ni   u   "iÿÿÿÿiÿÿÿÿ(   u   _parse_list_headeru   unquote_header_valueu   append(   u   valueu   resultu   item(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   parse_list_headerª   s    0u   parse_list_headerc             C   s¨   i  } x› t  |  ƒ D] } d | k r5 d | | <q n  | j d d ƒ \ } }  |  d d … |  d d … k ox d k n r– t |  d d … ƒ }  n  |  | | <q W| S(   uM  Parse lists of key, value pairs as described by RFC 2068 Section 2 and
    convert them into a python dict:

    >>> d = parse_dict_header('foo="is a fish", bar="as well"')
    >>> type(d) is dict
    True
    >>> sorted(d.items())
    [('bar', 'as well'), ('foo', 'is a fish')]

    If there is no value for a key it will be `None`:

    >>> parse_dict_header('key_without_value')
    {'key_without_value': None}

    To create a header from the :class:`dict` again, use the
    :func:`dump_header` function.

    :param value: a string with a dict header.
    :return: :class:`dict`
    u   =i   Nu   "iÿÿÿÿiÿÿÿÿ(   u   _parse_list_headeru   Noneu   splitu   unquote_header_value(   u   valueu   resultu   itemu   name(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   parse_dict_headerÉ   s    
0u   parse_dict_headerc             C   sz   |  rv |  d |  d	 k o% d k n rv |  d d
 … }  | sW |  d d … d k rv |  j  d d ƒ j  d d ƒ Sn  |  S(   u×   Unquotes a header value.  (Reversal of :func:`quote_header_value`).
    This does not use the real unquoting but what browsers are actually
    using for quoting.

    :param value: the header value to unquote.
    i    i   u   "Ni   u   \\u   \u   \"iÿÿÿÿiÿÿÿÿ(   u   replace(   u   valueu   is_filename(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   unquote_header_valueë   s
    *u   unquote_header_valuec             C   s+   i  } x |  D] } | j  | | j <q W| S(   uo   Returns a key/value dictionary from a CookieJar.

    :param cj: CookieJar object to extract cookies from.
    (   u   valueu   name(   u   cju   cookie_dictu   cookie(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   dict_from_cookiejar  s    u   dict_from_cookiejarc             C   s   t  | ƒ } |  j | ƒ |  S(   u¬   Returns a CookieJar from a key/value dictionary.

    :param cj: CookieJar to insert cookies into.
    :param cookie_dict: Dict of key/values to insert into CookieJar.
    (   u   cookiejar_from_dictu   update(   u   cju   cookie_dictu   cj2(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   add_dict_to_cookiejar  s    u   add_dict_to_cookiejarc             C   sf   t  j d d t  j ƒ} t  j d d t  j ƒ} t  j d ƒ } | j |  ƒ | j |  ƒ | j |  ƒ S(   ul   Returns encodings from given content string.

    :param content: bytestring to extract encodings from.
    u!   <meta.*?charset=["\']*(.+?)["\'>]u   flagsu+   <meta.*?content=["\']*;?charset=(.+?)["\'>]u$   ^<\?xml.*?encoding=["\']*(.+?)["\'>](   u   reu   compileu   Iu   findall(   u   contentu
   charset_reu	   pragma_reu   xml_re(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   get_encodings_from_content  s
    u   get_encodings_from_contentc             C   s_   |  j  d ƒ } | s d St j | ƒ \ } } d | k rK | d j d ƒ Sd | k r[ d Sd S(   um   Returns encodings from given HTTP Header Dict.

    :param headers: dictionary to extract encoding from.
    u   content-typeu   charsetu   '"u   textu
   ISO-8859-1N(   u   getu   Noneu   cgiu   parse_headeru   strip(   u   headersu   content_typeu   params(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   get_encoding_from_headers,  s    u   get_encoding_from_headersc             c   s™   | j  d k r) x |  D] } | Vq Wd St j | j  ƒ d d ƒ } x+ |  D]# } | j | ƒ } | rK | VqK qK W| j d d d ƒ} | r• | Vn  d S(   u   Stream decodes a iterator.Nu   errorsu   replaces    u   finalT(   u   encodingu   Noneu   codecsu   getincrementaldecoderu   decodeu   True(   u   iteratoru   ru   itemu   decoderu   chunku   rv(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   stream_decode_response_unicode@  s    	u   stream_decode_response_unicodec             c   s@   d } x3 | t  |  ƒ k  r; |  | | | … V| | 7} q	 Wd S(   u    Iterate over slices of a string.i    N(   u   len(   u   stringu   slice_lengthu   pos(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   iter_slicesR  s    u   iter_slicesc             C   sŽ   g  } t  |  j ƒ } | rT y t |  j | ƒ SWqT t k
 rP | j | ƒ YqT Xn  y t |  j | d d ƒSWn t k
 r‰ |  j SYn Xd S(   u  Returns the requested content back in unicode.

    :param r: Response object to get unicode content from.

    Tried:

    1. charset from content-type

    2. every encodings from ``<meta ... charset=XXX>``

    3. fall back and replace all unicode characters

    u   errorsu   replaceN(   u   get_encoding_from_headersu   headersu   stru   contentu   UnicodeErroru   appendu	   TypeError(   u   ru   tried_encodingsu   encoding(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   get_unicode_from_responseZ  s    u   get_unicode_from_responseu4   ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzu   0123456789-._~c             C   sþ   |  j  d ƒ } xß t d t | ƒ ƒ D]È } | | d d … } t | ƒ d k rÛ | j ƒ  rÛ y t t | d ƒ ƒ } Wn" t k
 rš t d | ƒ ‚ Yn X| t k rÆ | | | d d … | | <qí d | | | | <q% d | | | | <q% Wd j	 | ƒ S(	   u—   Un-escape any percent-escape sequences in a URI that are unreserved
    characters. This leaves all reserved, illegal and non-ASCII bytes encoded.
    u   %i   i    i   i   u%   Invalid percent-escape sequence: '%s'Nu    (
   u   splitu   rangeu   lenu   isalnumu   chru   intu
   ValueErroru
   InvalidURLu   UNRESERVED_SETu   join(   u   uriu   partsu   iu   hu   c(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   unquote_unreserved  s    u   unquote_unreservedc             C   s   t  t |  ƒ d d ƒS(   u›   Re-quote the given URI.

    This function passes the given URI through an unquote/quote cycle to
    ensure that it is fully and consistently quoted.
    u   safeu   !#$%&'()*+,/:;=?@[]~(   u   quoteu   unquote_unreserved(   u   uri(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   requote_uri—  s    	u   requote_uric             C   s”   t  j d t j |  ƒ ƒ d } | j d ƒ \ } } t  j d t j t t | ƒ ƒ ƒ ƒ d } t  j d t j | ƒ ƒ d | @} | | @| | @k S(   uá   
    This function allows you to check if on IP belongs to a network subnet
    Example: returns True if ip = 192.168.1.1 and net = 192.168.1.0/24
             returns False if ip = 192.168.1.1 and net = 192.168.100.0/24
    u   =Li    u   /(   u   structu   unpacku   socketu	   inet_atonu   splitu   dotted_netmasku   int(   u   ipu   netu   ipaddru   netaddru   bitsu   netmasku   network(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   address_in_network£  s
    +#u   address_in_networkc             C   s/   d d d |  >d A} t  j t j d | ƒ ƒ S(   ut   
    Converts mask from /xx format to xxx.xxx.xxx.xxx
    Example: if mask is 24 function returns 255.255.255.0
    l   ÿÿ i   i    u   >I(   u   socketu	   inet_ntoau   structu   pack(   u   masku   bits(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   dotted_netmask°  s    u   dotted_netmaskc             C   s1   y t  j |  ƒ Wn t  j k
 r, d SYn Xd S(   NFT(   u   socketu	   inet_atonu   erroru   Falseu   True(   u	   string_ip(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   is_ipv4_address¹  s
    	u   is_ipv4_addressc             C   s¬   |  j  d ƒ d k r¤ y t |  j d ƒ d ƒ } Wn t k
 rJ d SYn X| d k  sc | d k rg d Sy t j |  j d ƒ d ƒ Wq¨ t j k
 r  d SYq¨ Xn d Sd S(   u9   Very simple check of the cidr format in no_proxy variableu   /i   i    i    FT(	   u   countu   intu   splitu
   ValueErroru   Falseu   socketu	   inet_atonu   erroru   True(   u   string_networku   mask(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   is_valid_cidrÁ  s    	u   is_valid_cidrc             C   s"  d d „  } | d ƒ } t  |  ƒ j } | rà | j d d ƒ j d ƒ } | j d ƒ d } t | ƒ r xs | D]( } t | ƒ rn t | | ƒ r– d	 Sqn qn Wqà x@ | D]5 } | j | ƒ sÕ | j d ƒ d j | ƒ r¤ d	 Sq¤ Wn  y t	 | ƒ } Wn! t
 t j f k
 rd
 } Yn X| rd	 Sd
 S(   u:   
    Returns whether we should bypass proxies or not.
    c             S   s(   t  j j |  ƒ p' t  j j |  j ƒ  ƒ S(   N(   u   osu   environu   getu   upper(   u   k(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   <lambda>Ù  s    u'   should_bypass_proxies.<locals>.<lambda>u   no_proxyu    u    u   ,u   :i    TF(   u   urlparseu   netlocu   replaceu   splitu   is_ipv4_addressu   is_valid_cidru   address_in_networku   Trueu   endswithu   proxy_bypassu	   TypeErroru   socketu   gaierroru   False(   u   urlu	   get_proxyu   no_proxyu   netlocu   ipu   proxy_ipu   hostu   bypass(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   should_bypass_proxiesÕ  s*    +u   should_bypass_proxiesc             C   s   t  |  ƒ r i  St ƒ  Sd S(   u%   Return a dict of environment proxies.N(   u   should_bypass_proxiesu
   getproxies(   u   url(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   get_environ_proxies  s    u   get_environ_proxiesu   python-requestsc             C   s8  t  j ƒ  } | d k r' t  j ƒ  } n  | d k r‹ d t j j t j j t j j f } t j j d k rÇ d j	 | t j j g ƒ } qÇ n< | d k r¦ t  j ƒ  } n! | d k rÁ t  j ƒ  } n d } y t  j
 ƒ  } t  j ƒ  } Wn t k
 rd } d } Yn Xd	 j	 d
 |  t f d
 | | f d
 | | f g ƒ S(   u4   Return a string representing the default user agent.u   CPythonu   PyPyu   %s.%s.%su   finalu    u   Jythonu
   IronPythonu   Unknownu    u   %s/%s(   u   platformu   python_implementationu   python_versionu   sysu   pypy_version_infou   majoru   minoru   microu   releaselevelu   joinu   systemu   releaseu   IOErroru   __version__(   u   nameu   _implementationu   _implementation_versionu   p_systemu	   p_release(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   default_user_agent
  s.    	!u   default_user_agentc               C   s+   t  i t ƒ  d 6d j d ƒ d 6d d 6ƒ S(	   Nu
   User-Agentu   , u   gzipu   deflateu   Accept-Encodingu   */*u   Accept(   u   gzipu   deflate(   u   CaseInsensitiveDictu   default_user_agentu   join(    (    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   default_headers)  s    
u   default_headersc       	      C   só   g  } d } xà |  j  d ƒ D]Ï } y | j  d d ƒ \ } } Wn t k
 r_ | d } } Yn Xi  } | j d ƒ | d <xb | j  d ƒ D]Q } y | j  d ƒ \ } }  Wn t k
 r½ PYn X|  j | ƒ | | j | ƒ <q‰ W| j | ƒ q W| S(	   u«   Return a dict of parsed link headers proxies.

    i.e. Link: <http:/.../front.jpeg>; rel=front; type="image/jpeg",<http://.../back.jpeg>; rel=back;type="image/jpeg"

    u    '"u   ,u   ;i   u    u   <> '"u   urlu   =(   u   splitu
   ValueErroru   stripu   append(	   u   valueu   linksu   replace_charsu   valu   urlu   paramsu   linku   paramu   key(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   parse_header_links1  s"     u   parse_header_linksu    u   asciii   i   c             C   s  |  d  d … } | t  j t  j f k r, d S| d  d … t  j k rI d S| d  d … t  j t  j f k ro d S| j t ƒ } | d k rŽ d S| d k r× | d  d  d … t k r· d	 S| d
 d  d … t k r× d Sn  | d k r| d  d … t	 k rý d S| d
 d  … t	 k rd Sn  d  S(   Ni   u   utf-32i   u	   utf-8-sigi   u   utf-16i    u   utf-8u	   utf-16-bei   u	   utf-16-leu	   utf-32-beu	   utf-32-le(   u   codecsu   BOM_UTF32_LEu   BOM32_BEu   BOM_UTF8u   BOM_UTF16_LEu   BOM_UTF16_BEu   countu   _nullu   _null2u   _null3u   None(   u   datau   sampleu	   nullcount(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   guess_json_utfY  s*    "u   guess_json_utfc             C   sS   t  |  | ƒ \ } } } } } } | s7 | | } } n  t | | | | | | f ƒ S(   u”   Given a URL that may or may not have a scheme, prepend the given scheme.
    Does not replace a present scheme with the one provided as an argument.(   u   urlparseu
   urlunparse(   u   urlu
   new_schemeu   schemeu   netlocu   pathu   paramsu   queryu   fragment(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   prepend_scheme_if_neededv  s    !u   prepend_scheme_if_neededc             C   sS   t  |  ƒ } y" t | j ƒ t | j ƒ f } Wn t t f k
 rN d } Yn X| S(   u_   Given a url with authentication components, extract them into a tuple of
    username,password.u    (   u    u    (   u   urlparseu   unquoteu   usernameu   passwordu   AttributeErroru	   TypeError(   u   urlu   parsedu   auth(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   get_auth_from_url„  s    "u   get_auth_from_urlc             C   sI   d } t |  t ƒ r |  } n' t r6 |  j | ƒ } n |  j | ƒ } | S(   uÐ   
    Given a string object, regardless of type, returns a representation of that
    string in the native string type, encoding and decoding where necessary.
    This assumes ASCII unless told otherwise.
    N(   u   Noneu
   isinstanceu   builtin_stru   is_py2u   encodeu   decode(   u   stringu   encodingu   out(    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   to_native_string‘  s    	u   to_native_string(   u   .netrcu   _netrcF(M   u   __doc__u   cgiu   codecsu   collectionsu   iou   osu   platformu   reu   sysu   socketu   structu    u   __version__u   certsu   compatu   parse_http_listu   _parse_list_headeru   quoteu   urlparseu   bytesu   stru   OrderedDictu   unquoteu   is_py2u   builtin_stru
   getproxiesu   proxy_bypassu
   urlunparseu   cookiesu   RequestsCookieJaru   cookiejar_from_dictu
   structuresu   CaseInsensitiveDictu
   exceptionsu
   InvalidURLu   _hush_pyflakesu   NETRC_FILESu   whereu   DEFAULT_CA_BUNDLE_PATHu   dict_to_sequenceu	   super_lenu   get_netrc_authu   guess_filenameu   from_key_val_listu   to_key_val_listu   parse_list_headeru   parse_dict_headeru   Falseu   unquote_header_valueu   dict_from_cookiejaru   add_dict_to_cookiejaru   get_encodings_from_contentu   get_encoding_from_headersu   stream_decode_response_unicodeu   iter_slicesu   get_unicode_from_responseu	   frozensetu   UNRESERVED_SETu   unquote_unreservedu   requote_uriu   address_in_networku   dotted_netmasku   is_ipv4_addressu   is_valid_cidru   should_bypass_proxiesu   get_environ_proxiesu   default_user_agentu   default_headersu   parse_header_linksu   encodeu   _nullu   _null2u   _null3u   guess_json_utfu   prepend_scheme_if_neededu   get_auth_from_urlu   to_native_string(    (    (    u3   /tmp/pip-zej_zi-build/pip/_vendor/requests/utils.pyu   <module>
   sr   L		.""
	-#

