Files
pyGoEdge-UserPanel/.venv/Lib/site-packages/requests/__pycache__/utils.cpython-312.pyc

338 lines
35 KiB
Plaintext
Raw Normal View History

2025-11-18 03:36:49 +08:00
<EFBFBD>
g<> i<><69><00><00>^<00>dZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddl Z ddl m Z ddlmZmZddlmZddlmZddlmZmZmZmZdd lmZmZmZmZmZmZm Z dd
lm!Z"dd lm#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)dd l*m+Z+dd l,m-Z-m.Z.m/Z/m0Z0ddl1m2Z2dZ3ejh<00>Z5ddd<12>Z6djoejpded<15><16>d<00><00>Z9ejtdk(rd<19>Z;d<1A>Z#d<1B>Z<d<1C>Z=dHd<1D>Z>d<1E>Z?d<1F>Z@ej<>d <20><00>ZBd!<21>ZCd"<22>ZDd#<23>ZEd$<24>ZFdHd%<25>ZGd&<26>ZHd'<27>ZId(<28>ZJd)<29>ZKd*<2A>ZLd+<2B>ZMd,<2C>ZNd-<2D>ZOePd.<2E>ZQd/<2F>ZRd0<64>ZSd1<64>ZTd2<64>ZUd3<64>ZVd4<64>ZWej<>d5<64><00>ZXd6<64>ZYdId7<64>ZZd8<64>Z[dJd9<64>Z\dKd:<3A>Z]d;<3B>Z^d<<3C>Z_d=j<>d><3E>Zaead?zZbead@zZcdA<64>ZddB<64>ZedC<64>ZfdD<64>ZgdE<64>ZhdF<64>ZidG<64>Zjy)Lz<4C>
requests.utils
~~~~~~~~~~~~~~
This module provides utility functions that are used within Requests
that are also useful for external consumption.
<EFBFBD>N)<01> OrderedDict)<02> make_headers<72> parse_url<72>)<01>certs<74><01> __version__)<04>_HEADER_VALIDATORS_BYTE<54>_HEADER_VALIDATORS_STR<54>HEADER_VALIDATORS<52>to_native_string)<07>Mapping<6E>
basestring<EFBFBD>bytes<65>
getproxies<EFBFBD>getproxies_environment<6E> integer_types<65> is_urllib3_1)<01>parse_http_list)<07> proxy_bypass<73>proxy_bypass_environment<6E>quote<74>str<74>unquote<74>urlparse<73>
urlunparse<EFBFBD><01>cookiejar_from_dict)<04>FileModeWarning<6E> InvalidHeader<65>
InvalidURL<EFBFBD>UnrewindableBodyError)<01>CaseInsensitiveDict)z.netrc<72>_netrc<72>Pi<>)<02>http<74>httpsz, z,\s*T)<01>accept_encodingzaccept-encoding<6E>win32c<00><00> ddl} |j|jd<03>}t |j |d<04>d<00>}|j |d<05>d}|r|sy|jd<06>}td|<04>}|D]j}|dk(rd|vry |jdd
<EFBFBD>}|jd d <0C>}|jd d<08>}tj||tj<00>s<01>jy y#t$rYywxYw#t tf$rYywxYw)NrFz;Software\Microsoft\Windows\CurrentVersion\Internet Settings<67> ProxyEnable<6C> ProxyOverride<64>;z<local><3E>.Tz\.<2E>*z.*<2A>?)<0E>winreg<65> ImportError<6F>OpenKey<65>HKEY_CURRENT_USER<45>int<6E> QueryValueEx<45>OSError<6F>
ValueError<EFBFBD>split<69>filter<65>replace<63>re<72>match<63>I)<06>hostr1<00>internetSettings<67> proxyEnable<6C> proxyOverride<64>tests <20>=E:\Project\pygoedge\.venv\Lib\site-packages\requests/utils.py<70>proxy_bypass_registryrEMs <00><00> <19> <19>
<19>%<25>~<7E>~<7E><16>(<28>(<28>N<> <0E> <1C>
<1E>f<EFBFBD>1<>1<>2B<32>M<EFBFBD>R<>ST<53>U<>V<>K<EFBFBD>"<22>/<2F>/<2F>0@<40>/<2F>R<>ST<53>U<>M<EFBFBD><1B>-<2D><18>
&<26>+<2B>+<2B>C<EFBFBD>0<> <0A><1E>t<EFBFBD>]<5D>3<> <0A>!<21>D<EFBFBD><13>y<EFBFBD> <20><16>d<EFBFBD>?<3F><1F><17><<3C><<3C><03>U<EFBFBD>+<2B>D<EFBFBD><17><<3C><<3C><03>U<EFBFBD>+<2B>D<EFBFBD><17><<3C><<3C><03>T<EFBFBD>*<2A>D<EFBFBD><11>x<EFBFBD>x<EFBFBD><04>d<EFBFBD>B<EFBFBD>D<EFBFBD>D<EFBFBD>)<29><1B>"<22><15><>C<1B> <19><18> <19><><18><1A>$<24> <19><18> <19>s#<00>C(<00>AC7<00>( C4<03>3C4<03>7D <03>D c<00>B<00>t<00>r t|<00>St|<00>S)z<>Return True, if the host should be bypassed.
Checks proxy settings gathered from the environment, if specified,
or the registry.
)rrrE)r?s rDrrss <00><00> "<22> #<23>+<2B>D<EFBFBD>1<> 1<>(<28><14>.<2E> .<2E>c<00>><00>t|d<01>r|j<00>}|S)z/Returns an internal sequence dictionary update.<2E>items)<02>hasattrrI)<01>ds rD<00>dict_to_sequencerLs<00><00><0F>q<EFBFBD>'<27><1A> <0A>G<EFBFBD>G<EFBFBD>I<EFBFBD><01> <0C>HrGc<00><><00>d}d}ts!t|t<00>r|jd<02>}t |d<03>r t |<00>}n~t |d<04>r |j
}net |d<05>rY |j <00>}tj|<03>j}d|jvrtjdt<00> t |d<08>rW |j#<00>}t |d <09>r:|<01>8 |j%dd
<EFBFBD>|j#<00>}|j%|xsd<01>|<01>d}t)d||z
<00>S#tjt f$rY<00><>wxYw#t&$rd}Y<00>?wxYw#t&$r|<01>|}Y<00>RwxYw) Nr<00>utf-8<>__len__<5F>len<65>fileno<6E>ba%Requests has determined the content-length for this request using the binary size of the file: however, the file has been opened in text mode (i.e. without the 'b' flag in the mode). This may lead to an incorrect content-length. In Requests 3.0, support will be removed for files in text mode.<2E>tell<6C>seek<65>)r<00>
isinstancer<00>encoderJrPrQ<00>os<6F>fstat<61>st_size<7A>mode<64>warnings<67>warnr<00>io<69>UnsupportedOperation<6F>AttributeErrorrSrTr7<00>max)<04>o<> total_length<74>current_positionrQs rD<00> super_lenre<00>sy<00><00><17>L<EFBFBD><18><14> <17>J<EFBFBD>q<EFBFBD>#<23>.<2E> <0E>H<EFBFBD>H<EFBFBD>W<EFBFBD> <1D><01><0E>q<EFBFBD>)<29><1C><1A>1<EFBFBD>v<EFBFBD> <0C> <10><11>E<EFBFBD> <1A><18>u<EFBFBD>u<EFBFBD> <0C> <10><11>H<EFBFBD> <1D> <12><16>X<EFBFBD>X<EFBFBD>Z<EFBFBD>F<EFBFBD><1E>8<EFBFBD>8<EFBFBD>F<EFBFBD>+<2B>3<>3<>L<EFBFBD><13>!<21>&<26>&<26> <20><18> <0A> <0A>2<>$<24>
<12><0F>q<EFBFBD>&<26><19> %<25> <20>v<EFBFBD>v<EFBFBD>x<EFBFBD> <1C><17>q<EFBFBD>&<26>!<21>l<EFBFBD>&:<3A> %<25><15>F<EFBFBD>F<EFBFBD>1<EFBFBD>a<EFBFBD>L<EFBFBD>#$<24>6<EFBFBD>6<EFBFBD>8<EFBFBD>L<EFBFBD><16>F<EFBFBD>F<EFBFBD>+<2B>0<>q<EFBFBD>1<><14><1B><18> <0C> <0E>q<EFBFBD>,<2C>!1<>1<> 2<>2<><32>e<13>'<27>'<27><1E>8<> <11> <11>  <11><>X<1F>%<25>#$<24>L<EFBFBD>%<25><>%<17> 0<>
<1C>'<27>#/<2F> <20><>  0<>s6<00>*D8<00>E(<00>.7E<00>8E<03>E<03> E%<03>$E%<03>( E8<03>7E8c<00><><00>tjjd<01>}|<02>|f}n d<03>tD<00>} ddlm}m}d}|D]D}tj j|<07>}tj j|<08>s<01>B|}n|<06>yt|<00>} | j}
||<06>j|
<EFBFBD>} | r| drdnd} | | | dfSy#|tf$r|r<01>YywxYw#ttf$rYywxYw)z;Returns the Requests tuple auth for a given url from netrc.<2E>NETRCNc3<00>&K<00>|] }d|<01><00><02><01><00> y<01>w)z~/N<>)<02>.0<EFBFBD>fs rD<00> <genexpr>z!get_netrc_auth.<locals>.<genexpr><3E>s<00><00><><00>9<>[<5B><01>R<EFBFBD><01>s<EFBFBD>8<EFBFBD>[<5B>s<00>r)<02>NetrcParseError<6F>netrcrrU)rX<00>environ<6F>get<65> NETRC_FILESrnrm<00>path<74>
expanduser<EFBFBD>existsr<00>hostname<6D>authenticatorsr7r2r`) <0A>url<72> raise_errors<72>
netrc_file<EFBFBD>netrc_locationsrmrn<00>
netrc_pathrk<00>loc<6F>rir?r$<00>login_is rD<00>get_netrc_authr<00>s
<00><00><14><1A><1A><1E><1E><07>(<28>J<EFBFBD><11><1D>%<25>-<2D><0F>9<>[<5B>9<><0F>  <0A>0<><19>
<EFBFBD> <20>A<EFBFBD><14>'<27>'<27>$<24>$<24>Q<EFBFBD>'<27>C<EFBFBD><11>w<EFBFBD>w<EFBFBD>~<7E>~<7E>c<EFBFBD>"<22> <20>
<EFBFBD><15> !<21> <16> <1D> <12> <15>c<EFBFBD>]<5D><02><11>{<7B>{<7B><04>
<16><1A>:<3A>&<26>5<>5<>d<EFBFBD>;<3B>F<EFBFBD><15>%<25>a<EFBFBD>y<EFBFBD>!<21>a<EFBFBD><07><1E>w<EFBFBD><0F><16><01><19>3<>3<><16><> <20><17>)<29> <16><1C><15><1C> <16><> <18><1E> (<28> <0A> <0C> <0A>s<<00>A C#<00>C#<00>
C#<00>"+C<00>C <03>C#<00>C <03> C#<00>#C5<03>4C5c<00><><00>t|dd<02>}|rBt|t<00>r1|ddk7r(|ddk7rtjj |<01>Syyyy)z0Tries to guess the filename of the given object.<2E>nameNr<00><<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>)<06>getattrrVrrXrr<00>basename)<02>objr<6A>s rD<00>guess_filenamer<65><00>sT<00><00> <12>3<EFBFBD><06><04> %<25>D<EFBFBD> <0B>
<EFBFBD>4<EFBFBD><1A>,<2C><14>a<EFBFBD><17>C<EFBFBD><1E>D<EFBFBD><12>H<EFBFBD>PS<50>O<EFBFBD><11>w<EFBFBD>w<EFBFBD><1F><1F><04>%<25>%<25>ET<01><1E>,<2C>trGc<00>R<00>tjj|<00>r|Stjj|<00>\}}|rytjj|<01>sZtjj|<01>\}}|sn5dj ||g<02>}|r tjj|<01>s<01>Zt j |<01>s|St j|<01>}||j<00>vr|Stj<00>}tjj ||jd<01>d<00>}tjj|<06>s6t|<06>5}|j|j|<02><00>ddd<03>|S|S#1swY|SxYw)z<>Replace nonexistent paths that look like they refer to a member of a zip
archive with the location of an extracted copy of the target, or else
just return the provided path unchanged.
<20>/r<>N)rXrrrtr9<00>join<69>zipfile<6C>
is_zipfile<EFBFBD>ZipFile<6C>namelist<73>tempfile<6C>
gettempdir<EFBFBD> atomic_open<65>write<74>read)rr<00>archive<76>member<65>prefix<69>zip_file<6C>tmp<6D>extracted_path<74> file_handlers rD<00>extract_zipped_pathsr<73>s@<00><00>

<EFBFBD>w<EFBFBD>w<EFBFBD>~<7E>~<7E>d<EFBFBD><1B><13> <0B><19>g<EFBFBD>g<EFBFBD>m<EFBFBD>m<EFBFBD>D<EFBFBD>)<29>O<EFBFBD>G<EFBFBD>V<EFBFBD>
<11>"<22>'<27>'<27>.<2E>.<2E><17>1<><1C>'<27>'<27>-<2D>-<2D><07>0<><0F><07><16><15> <12><14><18><18>6<EFBFBD>6<EFBFBD>*<2A>+<2B><06> <12>"<22>'<27>'<27>.<2E>.<2E><17>1<> <13> <1D> <1D>g<EFBFBD> &<26><13> <0B><16><EFBFBD><EFBFBD>w<EFBFBD>'<27>H<EFBFBD> <0A>X<EFBFBD>&<26>&<26>(<28>(<28><13> <0B> <13>
<1D>
<1D>
<1F>C<EFBFBD><17>W<EFBFBD>W<EFBFBD>\<5C>\<5C>#<23>v<EFBFBD>|<7C>|<7C>C<EFBFBD>'8<><12>'<<3C>=<3D>N<EFBFBD> <0A>7<EFBFBD>7<EFBFBD>><3E>><3E>.<2E> )<29> <18><1E> (<28>L<EFBFBD> <18> <1E> <1E>x<EFBFBD>}<7D>}<7D>V<EFBFBD>4<> 5<>)<29> <19><19>><3E><19>)<29> <19><19>s <00>/!F<03>F&c#<00>JK<00>tjtjj |<00><00><01>\}} tj
|d<02>5}|<03><03>ddd<03>tj ||<00>y#1swY<00> xYw#t$rtj|<02><00>wxYw<01>w)z-Write a file to the disk in an atomic fashion)<01>dir<69>wbN) r<><00>mkstemprXrr<00>dirname<6D>fdopenr;<00> BaseException<6F>remove)<04>filename<6D>tmp_descriptor<6F>tmp_name<6D> tmp_handlers rDr<>r<>'s<00><00><><00> (<28>/<2F>/<2F>B<EFBFBD>G<EFBFBD>G<EFBFBD>O<EFBFBD>O<EFBFBD>H<EFBFBD>4M<34>N<><1C>N<EFBFBD>H<EFBFBD><0E> <0F>Y<EFBFBD>Y<EFBFBD>~<7E>t<EFBFBD> ,<2C> <0B><1D> <1D>-<2D>
<EFBFBD>
<EFBFBD>
<EFBFBD>8<EFBFBD>X<EFBFBD>&<26>-<2D> ,<2C><> <19><0E>
<EFBFBD> <09> <09>(<28><1B> <0A><0E>s4<00>7B#<01>B<00>A4<03>B<00>3B#<01>4A=<07>9B<00> B <03> B#c<00>t<00>|<00>yt|ttttf<04>r t d<02><00>t |<00>S)aTake 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')
Traceback (most recent call last):
...
ValueError: cannot encode objects that are not 2-tuples
>>> from_key_val_list({'key': 'val'})
OrderedDict([('key', 'val')])
:rtype: OrderedDict
N<>+cannot encode objects that are not 2-tuples)rVrr<00>boolr5r8r<00><01>values rD<00>from_key_val_listr<74>4s6<00><00>$ <0A>}<7D><13><11>%<25>#<23>u<EFBFBD>d<EFBFBD>C<EFBFBD>0<>1<><18>F<>G<>G<> <16>u<EFBFBD> <1D>rGc<00><><00>|<00>yt|ttttf<04>r t d<02><00>t|t <00>r|j<00>}t|<00>S)a<>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')
Traceback (most recent call last):
...
ValueError: cannot encode objects that are not 2-tuples
:rtype: list
Nr<4E>) rVrrr<>r5r8rrI<00>listr<74>s rD<00>to_key_val_listr<74>OsJ<00><00>" <0A>}<7D><13><11>%<25>#<23>u<EFBFBD>d<EFBFBD>C<EFBFBD>0<>1<><18>F<>G<>G<><11>%<25><17>!<21><15> <0B> <0B> <0A><05> <0F><05>;<3B>rGc<00><><00>g}t|<00>D]5}|dd|ddcxk(rdk(rnnt|dd<00>}|j|<02><00>7|S)aParse 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`
:rtype: list
Nrr<><00>")<03>_parse_list_header<65>unquote_header_value<75>append)r<><00>result<6C>items rD<00>parse_list_headerr<72>msT<00><00>.<10>F<EFBFBD>"<22>5<EFBFBD>)<29><04> <0F><02><11>8<EFBFBD>t<EFBFBD>B<EFBFBD>C<EFBFBD>y<EFBFBD> '<27>C<EFBFBD> '<27>'<27><04>Q<EFBFBD>r<EFBFBD>
<EFBFBD>3<>D<EFBFBD><0E> <0A> <0A>d<EFBFBD><1B>*<2A> <12>MrGc<00><><00>i}t|<00>D]H}d|vrd||<<00> |jdd<03>\}}|dd|ddcxk(rdk(rnnt|dd<00>}|||<<00>J|S)a^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`
:rtype: dict
<20>=Nrr<>r<>)r<>r9r<>)r<>r<>r<>r<>s rD<00>parse_dict_headerr<72><00>sx<00><00>,<10>F<EFBFBD>"<22>5<EFBFBD>)<29><04> <0E>d<EFBFBD>?<3F><1F>F<EFBFBD>4<EFBFBD>L<EFBFBD> <14><1A>j<EFBFBD>j<EFBFBD><13>a<EFBFBD>(<28> <0B><04>e<EFBFBD> <10><12>!<21>9<EFBFBD><05>b<EFBFBD>c<EFBFBD>
<EFBFBD> )<29>c<EFBFBD> )<29>(<28><15>q<EFBFBD><12><1B>5<>E<EFBFBD><1C><06>t<EFBFBD> <0C>*<2A> <12>MrGc<00><><00>|rF|d|dcxk(rdk(r5n|S|dd}|r|dddk7r"|jdd<08>jd d<03>S|S)
z<EFBFBD>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.
:rtype: str
rr<>r<>rNrUz\\<5C>\z\")r;)r<><00> is_filenames rDr<>r<><00>sd<00><00> <0A><15>q<EFBFBD><18>U<EFBFBD>2<EFBFBD>Y<EFBFBD>-<2D>#<23>-<2D> <11>L<EFBFBD><16>a<EFBFBD><02> <0B><05><1B>e<EFBFBD>B<EFBFBD>Q<EFBFBD>i<EFBFBD>6<EFBFBD>1<><18>=<3D>=<3D><16><14>.<2E>6<>6<>u<EFBFBD>c<EFBFBD>B<> B<> <10>LrGc<00>X<00>|D<00>cic]}|j|j<00><02>}}|Scc}w)z<>Returns a key/value dictionary from a CookieJar.
:param cj: CookieJar object to extract cookies from.
:rtype: dict
)r<>r<>)<03>cj<63>cookie<69> cookie_dicts rD<00>dict_from_cookiejarr<72><00>s0<00><00><><3E>><3E>2<EFBFBD><16>6<EFBFBD>;<3B>;<3B><06> <0C> <0C>,<2C>2<EFBFBD>K<EFBFBD>><3E> <16><16><>?s<00>'c<00><00>t||<00>S)z<>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.
:rtype: CookieJar
r)r<>r<>s rD<00>add_dict_to_cookiejarr<72><00>s<00><00> <1F>{<7B>B<EFBFBD> /<2F>/rGc<00>^<00>tjdt<00>tjdtj
<00><03>}tjdtj
<00><03>}tjd<05>}|j |<00>|j |<00>z|j |<00>zS)zlReturns encodings from given content string.
:param content: bytestring to extract encodings from.
z<>In requests 3.0, get_encodings_from_content will be removed. For more information, please see the discussion on issue #2266. (This warning should only appear once.)z!<meta.*?charset=["\']*(.+?)["\'>])<01>flagsz+<meta.*?content=["\']*;?charset=(.+?)["\'>]z$^<\?xml.*?encoding=["\']*(.+?)["\'>])r\r]<00>DeprecationWarningr<<00>compiler><00>findall)<04>content<6E>
charset_re<EFBFBD> pragma_re<72>xml_res rD<00>get_encodings_from_contentr<74><00>s<><00><00>
 <0A>M<EFBFBD>M<EFBFBD> 1<> <1B> <06><14><1A><1A>@<40><02><04><04>M<>J<EFBFBD><12>
<EFBFBD>
<EFBFBD>I<>QS<51>QU<51>QU<51>V<>I<EFBFBD> <0F>Z<EFBFBD>Z<EFBFBD>?<3F> @<40>F<EFBFBD> <13><1A><1A>7<EFBFBD>#<23>
<13>
<1B>
<1B>G<EFBFBD>
$<24> %<25>
<10>.<2E>.<2E><17>
!<21> "<22>rGc<00>H<00>|jd<01>}|dj<00>|dd}}i}d}|D]m}|j<00>}|s<01>|d}}|jd<07>} | dk7r+|d| j|<05>}|| dzdj|<05>}|||j<00><<00>o||fS) z<>Returns content type and parameters from given header
:param header: string
:return: tuple containing content type and dictionary of
parameters
r-rrNz"' Tr<54>r<>)r9<00>strip<69>find<6E>lower)
<EFBFBD>header<65>tokens<6E> content_type<70>params<6D> params_dict<63>items_to_strip<69>param<61>keyr<79><00>index_of_equalss
rD<00>_parse_content_type_headerr<72><00>s<><00><00><14>\<5C>\<5C>#<23> <1E>F<EFBFBD>!<21>!<21>9<EFBFBD>?<3F>?<3F>,<2C>f<EFBFBD>Q<EFBFBD>R<EFBFBD>j<EFBFBD>&<26>L<EFBFBD><14>K<EFBFBD><1B>N<EFBFBD><17><05><15> <0B> <0B> <0A><05> <10><1E><04><15>C<EFBFBD>#<23>j<EFBFBD>j<EFBFBD><13>o<EFBFBD>O<EFBFBD><1E>"<22>$<24><1B>,<2C>_<EFBFBD>-<2D>3<>3<>N<EFBFBD>C<><03><1D>o<EFBFBD><01>1<>3<>4<>:<3A>:<3A>><3E>J<><05>',<2C>K<EFBFBD><03> <09> <09> <0B> $<24><18> <18><1B> $<24>$rGc<00><><00>|jd<01>}|syt|<01>\}}d|vr|djd<04>Sd|vryd|vryy) z}Returns encodings from given HTTP Header Dict.
:param headers: dictionary to extract encoding from.
:rtype: str
z content-typeN<65>charsetz'"<22>textz
ISO-8859-1zapplication/jsonrN)rpr<>r<>)<03>headersr<73>r<>s rD<00>get_encoding_from_headersr<73>s`<00><00><1B>;<3B>;<3B>~<7E>.<2E>L<EFBFBD> <17><13>5<>l<EFBFBD>C<><18>L<EFBFBD>&<26><10>F<EFBFBD><1A><15>i<EFBFBD> <20>&<26>&<26>u<EFBFBD>-<2D>-<2D> <0A><1C><1D><1B><19>\<5C>)<29><16>*rGc#<00><>K<00>|j<00> |Ed{<00><02><02>ytj|j<00>d<02><03>}|D]}|j|<03>}|s<01>|<04><01><00>|jdd<05><06>}|r|<04><01>yy7<00>e<EFBFBD>w)zStream decodes an iterator.Nr;<00><01>errorsrGT)<01>final)<04>encoding<6E>codecs<63>getincrementaldecoder<65>decode)<05>iterator<6F>r<>decoder<65>chunk<6E>rvs rD<00>stream_decode_response_unicoder<65>*s<00><00><><00> <09>z<EFBFBD>z<EFBFBD><19><1B><1B><1B><0E>6<>f<EFBFBD>*<2A>*<2A>1<EFBFBD>:<3A>:<3A>6<>i<EFBFBD>H<>G<EFBFBD><19><05> <14>^<5E>^<5E>E<EFBFBD> "<22><02> <0A><14>H<EFBFBD><1A>
<11><1E><1E><03>4<EFBFBD><1E> (<28>B<EFBFBD> <09><10><08>
<EFBFBD> <1C>s<00>A<<01>A:<04>AA<<01>"A<c#<00><>K<00>d}|<01>|dkr t|<00>}|t|<00>kr||||z<00><01>||z }|t|<00>kr<01>yy<02>w)z Iterate over slices of a string.rN)rP)<03>string<6E> slice_length<74>poss rD<00> iter_slicesr<73>;sW<00><00><><00>
<0B>C<EFBFBD><13><1B>|<7C>q<EFBFBD>0<><1A>6<EFBFBD>{<7B> <0C>
<0A><03>F<EFBFBD> <0B>
<1B><14>S<EFBFBD>3<EFBFBD><1C>-<2D>.<2E>.<2E> <0B>|<7C><1B><03> <0E><03>F<EFBFBD> <0B>
<1B>s <00>AA<01>Ac<00>><00>tjdt<00>g}t|j<00>}|r t |j |<02>S t |j |d<02><03>S#t$r|j|<02>Y<00>5wxYw#t$r|j cYSwxYw)z<>Returns the requested content back in unicode.
:param r: Response object to get unicode content from.
Tried:
1. charset from content-type
2. fall back and replace all unicode characters
:rtype: str
z<>In requests 3.0, get_unicode_from_response will be removed. For more information, please see the discussion on issue #2266. (This warning should only appear once.)r;r<>)
r\r]r<>r<>r<>rr<><00> UnicodeErrorr<72><00> TypeError)r<><00>tried_encodingsr<73>s rD<00>get_unicode_from_responser<65>Es<><00><00> <0A>M<EFBFBD>M<EFBFBD> 1<> <1B> <06><19>O<EFBFBD>)<29><11><19><19>3<>H<EFBFBD><0F> -<2D><16>q<EFBFBD>y<EFBFBD>y<EFBFBD>(<28>+<2B> +<2B>
<19><12>1<EFBFBD>9<EFBFBD>9<EFBFBD>h<EFBFBD>y<EFBFBD>9<>9<><39> <1C> -<2D> <1B> "<22> "<22>8<EFBFBD> ,<2C> -<2D><> <15><19><10>y<EFBFBD>y<EFBFBD><18><19>s#<00>A$<00> B<00>$B<03>B<03>B<03>BzBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~c<00><><00>|jd<01>}tdt|<01><00>D]l}||dd}t|<03>dk(rI|j<00>r9 t t |d<05><00>}|tvr|||ddz||<<00>Vd||<00><00>||<<00>bd||<00><00>||<<00>nd j|<01>S#t $rtd|<03>d<07><03><00>wxYw)
z<EFBFBD>Un-escape any percent-escape sequences in a URI that are unreserved
characters. This leaves all reserved, illegal and non-ASCII bytes encoded.
:rtype: str
<20>%rrrU<00>z"Invalid percent-escape sequence: '<27>'N<>)
r9<00>rangerP<00>isalnum<75>chrr5r8r!<00>UNRESERVED_SETr<54>)<05>uri<72>parts<74>i<>h<>cs rD<00>unquote_unreservedr
rs<><00><00> <10>I<EFBFBD>I<EFBFBD>c<EFBFBD>N<EFBFBD>E<EFBFBD> <12>1<EFBFBD>c<EFBFBD>%<25>j<EFBFBD> !<21><01> <11>!<21>H<EFBFBD>Q<EFBFBD>q<EFBFBD>M<EFBFBD><01> <0E>q<EFBFBD>6<EFBFBD>Q<EFBFBD>;<3B>1<EFBFBD>9<EFBFBD>9<EFBFBD>;<3B> L<01><17><03>A<EFBFBD>r<EFBFBD>
<EFBFBD>O<EFBFBD><01><11>N<EFBFBD>"<22><1C>u<EFBFBD>Q<EFBFBD>x<EFBFBD><01><02>|<7C>+<2B><05>a<EFBFBD><08><1E>u<EFBFBD>Q<EFBFBD>x<EFBFBD>j<EFBFBD>><3E><05>a<EFBFBD><08><1A>5<EFBFBD><11>8<EFBFBD>*<2A>~<7E>E<EFBFBD>!<21>H<EFBFBD>"<22> <0E>7<EFBFBD>7<EFBFBD>5<EFBFBD>><3E><19><><1E> L<01> <20>#E<>a<EFBFBD>S<EFBFBD><01>!J<>K<>K<> L<01>s <00>B'<02>'Cc<00>p<00>d}d} tt|<00>|<01><03>S#t$rt||<02><03>cYSwxYw)z<>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.
:rtype: str
z!#$%&'()*+,/:;=?@[]~z!#$&'()*+,/:;=?@[]~)<01>safe)rr
r!)r<00>safe_with_percent<6E>safe_without_percents rD<00> requote_urir<00>sJ<00><00>/<2F><15>0<><18> 5<><15>'<27><03>,<2C>3D<33>E<>E<><45> <15>5<><15>S<EFBFBD>3<>4<>4<> 5<>s <00><00>5<03>5c
<00>r<00>tjdtj|<00><00>d}|j d<03>\}}tjdtjt t |<04><00><00><00>d}tjdtj|<03><00>d|z}||z||zk(S)z<>This function allows you to check if an 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
:rtype: bool
z=Lrr<>)<07>struct<63>unpack<63>socket<65> inet_atonr9<00>dotted_netmaskr5)<07>ip<69>net<65>ipaddr<64>netaddr<64>bits<74>netmask<73>networks rD<00>address_in_networkr<00>s<><00><00><14>]<5D>]<5D>4<EFBFBD><16>!1<>!1<>"<22>!5<> 6<>q<EFBFBD> 9<>F<EFBFBD><17>I<EFBFBD>I<EFBFBD>c<EFBFBD>N<EFBFBD>M<EFBFBD>G<EFBFBD>T<EFBFBD><14>m<EFBFBD>m<EFBFBD>D<EFBFBD>&<26>"2<>"2<>><3E>#<23>d<EFBFBD>)<29>3L<33>"M<>N<>q<EFBFBD>Q<>G<EFBFBD><14>m<EFBFBD>m<EFBFBD>D<EFBFBD>&<26>"2<>"2<>7<EFBFBD>";<3B><<3C>Q<EFBFBD>?<3F>'<27>I<>G<EFBFBD> <12>W<EFBFBD> <1C>'<27>G<EFBFBD>"3<> 4<>4rGc<00>p<00>ddd|z
zdz
z }tjtjd|<01><00>S)z<>Converts mask from /xx format to xxx.xxx.xxx.xxx
Example: if mask is 24 function returns 255.255.255.0
:rtype: str
l<00><EFBFBD>r<00> z>I)r<00> inet_ntoar<00>pack)<02>maskrs rDrr<00>s7<00><00> <16><11>b<EFBFBD>4<EFBFBD>i<EFBFBD><1E>1<EFBFBD>,<2C> ,<2C>D<EFBFBD> <11> <1B> <1B>F<EFBFBD>K<EFBFBD>K<EFBFBD><04>d<EFBFBD>3<> 4<>4rGc<00>N<00> tj|<00>y#t$rYywxYw)z
:rtype: bool
FT)rrr7)<01> string_ips rD<00>is_ipv4_addressr%<00>s.<00><00><15><0E><18><18><19>#<23> <10><> <13><15><14><15>s <00><00> $<03>$c<00> <00>|jd<01>dk(rR t|jd<01>d<00>}|dks|dkDry t j
|jd<01>d<00>yy#t$rYywxYw#t $rYywxYw)zV
Very simple check of the cidr format in no_proxy variable.
:rtype: bool
r<>rFrrT)<07>countr5r9r8rrr7)<02>string_networkr"s rD<00> is_valid_cidrr)<00>s<><00><00> <16><1B><1B>C<EFBFBD> <20>A<EFBFBD>%<25> <19><16>~<7E>+<2B>+<2B>C<EFBFBD>0<><11>3<>4<>D<EFBFBD> <10>!<21>8<EFBFBD>t<EFBFBD>b<EFBFBD>y<EFBFBD><18> <19> <12> <1C> <1C>^<5E>1<>1<>#<23>6<>q<EFBFBD>9<> :<3A>
<10><15><><1A> <19><18> <19><><17> <19><18> <19>s"<00>A(<00>'A7<00>( A4<03>3A4<03>7 B<03>Bc#<00>8K<00>|du}|r2tjj|<00>}|tj|< d<01><02>|r(<03>tj|=y|tj|<yy#|r(<03>tj|=w|tj|<wwxYw<01>w)z<>Set the environment variable 'env_name' to 'value'
Save previous value, yield, and then restore the previous value stored in
the environment variable 'env_name'.
If 'value' is None, do nothingN)rXrorp)<04>env_namer<65><00> value_changed<65> old_values rD<00> set_environr.<00>s<><00><00><><00><1A><14>%<25>M<EFBFBD><14><16>J<EFBFBD>J<EFBFBD>N<EFBFBD>N<EFBFBD>8<EFBFBD>,<2C> <09>$<24><02>
<EFBFBD>
<EFBFBD>8<EFBFBD><1C>1<> <0A> <18><18> <20><16>J<EFBFBD>J<EFBFBD>x<EFBFBD>(<28>'0<><02>
<EFBFBD>
<EFBFBD>8<EFBFBD>$<24> <19><>=<3D><18> <20><16>J<EFBFBD>J<EFBFBD>x<EFBFBD>(<28>'0<><02>
<EFBFBD>
<EFBFBD>8<EFBFBD>$<24> <19>s<00>9B<01>A+<00>+B<01>+,B<03>Bc<00><><00>d<01>}|}|<01>|d<03>}t|<00>}|j<00>y|r<>d<05>|jdd<07>jd<08>D<00>}t |j<00>r=|D]7}t |<05>rt |j|<05>s<01>%y|j|k(s<01>7yn_|j}|jr|d |j<00><00>z }|D]0}|jj|<07>s|j|<07>s<01>0ytd|<03>5 t|j<00>}ddd<02>ryy
#ttjf$rd
}Y<00>)wxYw#1swY<00>.xYw) zL
Returns whether we should bypass proxies or not.
:rtype: bool
c<00><><00>tjj|<00>xs-tjj|j<00><00>S<00>N)rXrorp<00>upper)r<>s rD<00> get_proxyz(should_bypass_proxies.<locals>.get_proxy<78>s-<00><00><11>z<EFBFBD>z<EFBFBD>~<7E>~<7E>c<EFBFBD>"<22>A<>b<EFBFBD>j<EFBFBD>j<EFBFBD>n<EFBFBD>n<EFBFBD>S<EFBFBD>Y<EFBFBD>Y<EFBFBD>[<5B>&A<>ArGN<>no_proxyTc3<00>&K<00>|] }|s<01>|<01><01><00> y<00>wr1ri)rjr?s rDrlz(should_bypass_proxies.<locals>.<genexpr> s<00><00><><00>R<>%I<>T<EFBFBD>T<EFBFBD>D<EFBFBD>%I<>s<00><01><01> r<00>,<2C>:F)rrur;r9r%r)r<00>port<72>endswithr.rr<>r<00>gaierror) rwr4r3<00> no_proxy_arg<72>parsed<65>proxy_ip<69>host_with_portr?<00>bypasss rD<00>should_bypass_proxiesrA<00>sI<00><00>B<01>
<1C>L<EFBFBD><0F><17><1C>Z<EFBFBD>(<28><08> <15>c<EFBFBD>]<5D>F<EFBFBD> <0A><EFBFBD><EFBFBD><1E><13><0F>S<01>X<EFBFBD>%5<>%5<>c<EFBFBD>2<EFBFBD>%><3E>%D<>%D<>S<EFBFBD>%I<>R<><08> <1A>6<EFBFBD>?<3F>?<3F> +<2B>$<24><08> <20><18>*<2A>)<29>&<26>/<2F>/<2F>8<EFBFBD>D<>#<23><1B>_<EFBFBD>_<EFBFBD><08>0<> <20>%<25>$<24>_<EFBFBD>_<EFBFBD>N<EFBFBD><15>{<7B>{<7B><1E>A<EFBFBD>f<EFBFBD>k<EFBFBD>k<EFBFBD>]<5D>"3<>3<><0E> <20><04><19>?<3F>?<3F>+<2B>+<2B>D<EFBFBD>1<>^<5E>5L<35>5L<35>T<EFBFBD>5R<35> <20> !<21>
<15>Z<EFBFBD><1C> .<2E> <1B>!<21>&<26>/<2F>/<2F>2<>F<EFBFBD>
/<2F><0E><13> <10><> <1A>6<EFBFBD>?<3F>?<3F>+<2B> <1B><1A>F<EFBFBD> <1B><>
/<2F> .<2E>s*<00>E<03>D2<02>2E<05> E<03>E<05>E<03>Ec<00>4<00>t||<01><01>riSt<00>S)zA
Return a dict of environment proxies.
:rtype: dict
<20>r4)rAr)rwr4s rD<00>get_environ_proxiesrD0s<00><00> <1D>S<EFBFBD>8<EFBFBD>4<><11> <09><19>|<7C>rGc<00>.<00>|xsi}t|<00>}|j<00>+|j|j|jd<02><00>S|jdz|jz|jd|jzdg}d}|D]}||vs<01>||}|S|S)z<>Select a proxy for the url, if applicable.
:param url: The url being for the request
:param proxies: A dictionary of schemes or schemes and hosts to proxy URLs
N<>allz://zall://)rrurp<00>scheme)rw<00>proxies<65>urlparts<74>
proxy_keys<EFBFBD>proxy<78> proxy_keys rD<00> select_proxyrM<s<><00><00> <16>m<EFBFBD><12>G<EFBFBD><17><03>}<7D>H<EFBFBD><0F><18><18> <20><16>{<7B>{<7B>8<EFBFBD>?<3F>?<3F>G<EFBFBD>K<EFBFBD>K<EFBFBD><05>,><3E>?<3F>?<3F> <11><0F><0F>%<25><1F>(<28>"3<>"3<>3<><10><0F><0F><10>8<EFBFBD>$<24>$<24>$<24> <0A> <06>J<EFBFBD> <11>E<EFBFBD><1F> <09> <14><07> <1F><1B>I<EFBFBD>&<26>E<EFBFBD> <11> <10>L<EFBFBD>  <20>
<11>LrGc<00>8<00>|<01>|ni}|j}t|<03>j}|jd<01>}|j <00>}|rOt ||<05><02>sBt ||<05><02>}|j||jd<03><00>}|r|j||<08>|S)a<>This method takes proxy information from a request and configuration
input to resolve a mapping of target proxies. This will consider settings
such as NO_PROXY to strip proxy configurations.
:param request: Request or PreparedRequest
:param proxies: A dictionary of schemes or schemes and hosts to proxy URLs
:param trust_env: Boolean declaring whether to trust environment configs
:rtype: dict
r4rCrF)rwrrGrp<00>copyrArD<00>
setdefault) <09>requestrH<00> trust_envrwrGr4<00> new_proxies<65>environ_proxiesrKs rD<00>resolve_proxiesrUVs<><00><00>!<21>,<2C>g<EFBFBD>"<22>G<EFBFBD>
<11>+<2B>+<2B>C<EFBFBD> <15>c<EFBFBD>]<5D> !<21> !<21>F<EFBFBD><16>{<7B>{<7B>:<3A>&<26>H<EFBFBD><19>,<2C>,<2C>.<2E>K<EFBFBD><10>.<2E>s<EFBFBD>X<EFBFBD>F<>-<2D>c<EFBFBD>H<EFBFBD>E<><0F><1F>#<23>#<23>F<EFBFBD>O<EFBFBD>,?<3F>,?<3F><05>,F<>G<><05> <10> <17> "<22> "<22>6<EFBFBD>5<EFBFBD> 1<> <16>rGc<00><00>|<00>dt<00><00>S)zO
Return a string representing the default user agent.
:rtype: str
r<>r)r<>s rD<00>default_user_agentrWqs<00><00> <13>V<EFBFBD>1<EFBFBD>[<5B>M<EFBFBD> "<22>"rGc<00>:<00>tt<00>tddd<03><04>S)z9
:rtype: requests.structures.CaseInsensitiveDict
z*/*z
keep-alive)z
User-AgentzAccept-Encoding<6E>Accept<70>
Connection)r#rW<00>DEFAULT_ACCEPT_ENCODINGrirGrD<00>default_headersr\zs%<00><00> <1F>,<2C>.<2E>6<><1B>&<26> 
<EFBFBD> <06>rGc<00><><00>g}d}|j|<02>}|s|Stjd|<00>D]<5D>} |jdd<04>\}}d|jd<07>i}|jd<03>D]:} |jd<08>\}}|j|<02>||j|<02><<00><|j |<06><00><>|S#t$r|d}}Y<00><>wxYw#t$rY<00>4wxYw) z<>Return a list of parsed link headers proxies.
i.e. Link: <http:/.../front.jpeg>; rel=front; type="image/jpeg",<http://.../back.jpeg>; rel=back;type="image/jpeg"
:rtype: list
z '"z, *<r-rrrwz<> '"r<>)r<>r<r9r8r<>) r<><00>links<6B> replace_chars<72>valrwr<><00>linkr<6B>r<>s rD<00>parse_header_linksrb<00>s<><00><00> <0F>E<EFBFBD><1A>M<EFBFBD> <11>K<EFBFBD>K<EFBFBD> <0A> &<26>E<EFBFBD> <10><14> <0C><11>x<EFBFBD>x<EFBFBD><06><05>&<26><03> "<22><1D>)<29>)<29>C<EFBFBD><11>+<2B>K<EFBFBD>C<EFBFBD><16><16>s<EFBFBD>y<EFBFBD>y<EFBFBD><18>*<2A>+<2B><04><1B>\<5C>\<5C>#<23>&<26>E<EFBFBD> <16>"<22>[<5B>[<5B><13>-<2D>
<EFBFBD><03>U<EFBFBD>.3<EFBFBD>[<5B>[<5B><1D>-G<>D<EFBFBD><13><19><19>=<3D>)<29> *<2A> '<27> <0E> <0C> <0C>T<EFBFBD><1A>!'<27>$ <11>L<EFBFBD><4C><1A> "<22><1D>r<EFBFBD><16>C<EFBFBD> "<22><><1E> <16><15> <16>s#<00>B?<02>1C<04>? C<05>C<05> C<07>C<07><00>asciirU<00>c<00><><00>|dd}|tjtjfvry|ddtjk(ry|ddtjtj
fvry|j t<00>}|dk(ry |dk(r |ddd<06>tk(ry
|d dd<06>tk(ry |dk(r|ddtk(ry |d dtk(ryy)z
:rtype: str
N<>zutf-32rez utf-8-sigrUzutf-16rrNz utf-16-berz utf-16-lez utf-32-bez utf-32-le)
r<EFBFBD><00> BOM_UTF32_LE<4C> BOM_UTF32_BE<42>BOM_UTF8<46> BOM_UTF16_LE<4C> BOM_UTF16_BEr'<00>_null<6C>_null2<6C>_null3)<03>data<74>sample<6C> nullcounts rD<00>guess_json_utfrs<00>s<><00><00><12>"<22>1<EFBFBD>X<EFBFBD>F<EFBFBD> <0A>&<26>%<25>%<25>v<EFBFBD>':<3A>':<3A>;<3B>;<3B><17> <0A>b<EFBFBD>q<EFBFBD>z<EFBFBD>V<EFBFBD>_<EFBFBD>_<EFBFBD>$<24><1A> <0A>b<EFBFBD>q<EFBFBD>z<EFBFBD>f<EFBFBD>)<29>)<29>6<EFBFBD>+><3E>+><3E>?<3F>?<3F><17><16> <0C> <0C>U<EFBFBD>#<23>I<EFBFBD><10>A<EFBFBD>~<7E><16><10>A<EFBFBD>~<7E> <11>#<23>A<EFBFBD>#<23>;<3B>&<26> <20><1E> <11>!<21>$<24>Q<EFBFBD>$<24><<3C>6<EFBFBD> !<21><1E><10>A<EFBFBD>~<7E> <11>"<22>1<EFBFBD>:<3A><16> <1F><1E> <11>!<21>"<22>:<3A><16> <1F><1E> rGc<00><><00>t|<00>}|\}}}}}}} |j}
|
s||
}}
|rdj||
g<02>}
|<03>|}|<07>d}t||
|d|| f<06>S)z<>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.
:rtype: str
<20>@r)r<00>netlocr<63>r) rw<00>
new_schemer=rG<00>authr?r9rr<00>query<72>fragmentrvs rD<00>prepend_scheme_if_neededr{<00>s{<00><00> <17>s<EFBFBD>^<5E>F<EFBFBD>6<<3C>3<>F<EFBFBD>D<EFBFBD>$<24><04>d<EFBFBD>E<EFBFBD>8<EFBFBD> <14>]<5D>]<5D>F<EFBFBD> <11><1B>V<EFBFBD><04><06> <0B><15><18><18>4<EFBFBD><16>.<2E>)<29><06> <0A>~<7E><1B><06> <0B>|<7C><11><04> <15>v<EFBFBD>v<EFBFBD>t<EFBFBD>R<EFBFBD><15><08>A<> B<>BrGc<00><><00>t|<00>} t|j<00>t|j<00>f}|S#tt
f$rd}Y|SwxYw)z{Given a url with authentication components, extract them into a tuple of
username,password.
:rtype: (str,str)
)rr)rr<00>username<6D>passwordr`r<>)rwr=rxs rD<00>get_auth_from_urlr<00>sU<00><00> <16>c<EFBFBD>]<5D>F<EFBFBD><18><17><06><0F><0F>(<28>'<27>&<26>/<2F>/<2F>*B<>C<><04> <10>K<EFBFBD><4B> <1B>I<EFBFBD> &<26><18><17><04> <0F>K<EFBFBD><18>s<00>*9<00>A<03> Ac<00>B<00>|\}}t||d<01>t||d<02>y)z<>Verifies that header parts don't contain leading whitespace
reserved characters, or return characters.
:param header: tuple, in the format (name, value).
rrN)<01>_validate_header_part)r<>r<>r<>s rD<00>check_header_validityr<79>s%<00><00> <19>K<EFBFBD>D<EFBFBD>%<25><19>&<26>$<24><01>*<2A><19>&<26>%<25><11>+rGc
<00><><00>t|t<00>r
t|}n7t|t<00>r
t|}nt d|<01>d|<00>dt |<01><00><00><06><00>|j|<01>s|dk(rdnd}t d|<04>d|<01><02><04><00>y) Nz Header part (z) from z# must be of type str or bytes, not rr<>r<>zTInvalid leading whitespace, reserved character(s), or return character(s) in header z: )rVrr rr
r <00>typer=)r<><00> header_part<72>header_validator_index<65> validator<6F> header_kinds rDr<>r<> s<><00><00><11>+<2B>s<EFBFBD>#<23>*<2A>+A<>B<> <09> <13>K<EFBFBD><15> '<27>+<2B>,B<>C<> <09><1B><1B>K<EFBFBD>?<3F>'<27>&<26><18>:1<>15<31>k<EFBFBD>1B<31>0C<30> E<01>
<EFBFBD>
<EFBFBD>
<15>?<3F>?<3F>;<3B> '<27> 6<>!<21> ;<3B>f<EFBFBD><17> <0B><1B>&<26>&1<>]<5D>"<22>[<5B>O<EFBFBD> E<01>
<EFBFBD>
<EFBFBD> (rGc<00>~<00>t|<00>\}}}}}}|s||}}|jdd<02>d}t|||||df<06>S)zW
Given a url remove the fragment and the authentication part.
:rtype: str
rurr<>r)r<00>rsplitr)rwrGrvrrr<>ryrzs rD<00> urldefragauthr<68>sU<00><00> 5=<3D>S<EFBFBD>M<EFBFBD>1<>F<EFBFBD>F<EFBFBD>D<EFBFBD>&<26>%<25><18> <12><1B>V<EFBFBD><04><06> <13>]<5D>]<5D>3<EFBFBD><01> "<22>2<EFBFBD> &<26>F<EFBFBD> <15>v<EFBFBD>v<EFBFBD>t<EFBFBD>V<EFBFBD>U<EFBFBD>B<EFBFBD>?<3F> @<40>@rGc<00><><00>t|jdd<02>}|<01>.t|jt<00>r ||j<00>yt d<04><00>#t
$r t d<03><00>wxYw)zfMove file pointer back to its recorded starting position
so it can be read again on redirect.
rTNz;An error occurred when rewinding request body for redirect.z+Unable to rewind request body for redirect.)r<><00>bodyrV<00>_body_positionrr7r")<02>prepared_request<73> body_seeks rD<00> rewind_bodyr<79>/st<00><00><18>(<28>-<2D>-<2D>v<EFBFBD>t<EFBFBD><<3C>I<EFBFBD><10><1C><1A><18>'<27>'<27><1D>"<06> <0E> <15>&<26>5<>5<> 6<> $<24>$Q<>R<>R<><52> <17> <0E>'<27>M<><0E> <0E> <0E>s <00>A<00>A()Fr1)T)zpython-requests)k<>__doc__r<5F><00>
contextlibr^rXr<rr<00>sysr<73>r\r<><00> collectionsr<00> urllib3.utilrrrrr <00>_internal_utilsr
r r r <00>compatrrrrrrrrr<>rrrrrrr<00>cookiesr<00>
exceptionsrr r!r"<00>
structuresr#rq<00>where<72>DEFAULT_CA_BUNDLE_PATH<54> DEFAULT_PORTSr<53>r9r[<00>platformrErLrerr<>r<><00>contextmanagerr<72>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<><00> frozensetrr
rrrr%r)r.rArDrMrUrWr\rbrWrmrnrorsr{rr<>r<>r<>r<>rirGrD<00><module>r<>s <00><01><04><0E><11> <09> <09> <09> <0A> <0A>
<EFBFBD><0F><0F><0E>#<23>0<><13>$<24><02><02> <02><02><02>:<3A><02><02><02>)<29><02><02> ,<2C>"<22> <0B>$<24><15><1B><1B><1D><16><1B>c<EFBFBD>*<2A> <0A><1F>)<29>)<29> <0C>B<EFBFBD>H<EFBFBD>H<EFBFBD>W<EFBFBD>l<EFBFBD>4<EFBFBD>8<>9J<39>K<>L<><02><17>
<07><<3C><<3C>7<EFBFBD><1A>$<15>L /<2F> <0A>D3<>N) <0A>X&<26>"<1A>J <0C><1A><1A> <0E><1B> <0E><1E>6<17><<12>@<12>F<11>2<17>0<><06>2%<25>2<17>2<11>"<1C>$<19>P<1B>M<><02><0E>
<1A>05<>, 5<>5<><10><10>0 <0C><1A><1A>1<><1B>1<>*:<11>z <1C><11>4<17>6#<23> <06>"<11>L <0F> <0A> <0A>g<EFBFBD><1E><05> <0E><11><19><06> <0E><11><19><06><10>@C<01>: <10> ,<2C>
<EFBFBD>&A<01>"SrG