Files
intellecton/venv/lib/python3.12/site-packages/urllib3/__pycache__/response.cpython-312.pyc
T

384 lines
56 KiB
Plaintext
Raw Normal View History

Ë
JÀjãÏãó—ddlmZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddl Z ddl m
Z
ddlmZddlmZddlmZe j*rddlmZ ddlZdd lmZdd
lmZdd lmZdd l m!Z!m"Z"m#Z#dd
l$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ddl0m1Z1m2Z2ddl3m4Z4e j*rddl5m6Z6ejne8«Z9Gd„d«Z:Gd„de:«Z;Gd„d«Z<Gd„de:«Z=e� Gd„de:«Z> ej~dk\rddl@mAZAnddlBmAZAdZCGd„de:«ZDGd!„d"e:«ZEd*d#„ZFGd$„d%«ZGGd&„d'ej�«ZIGd(„d)eI«Zy#e$rddlZY�ŒwxYw#e$rdZY�ŒwxYw#e$rd ZCYŒawxYw)+é)Ú annotationsN)Úcontextmanager)Ú HTTPMessage)Ú HTTPResponse)Útimeouté)ÚBaseHTTPConnection)Úutil)Ú
_TYPE_BODY)ÚHTTPHeaderDict)Ú BaseSSLErrorÚHTTPConnectionÚ
HTTPException) ÚBodyNotHttplibCompatibleÚ DecodeErrorÚDependencyWarningÚ HTTPErrorÚIncompleteReadÚInvalidChunkLengthÚ
InvalidHeaderÚ
ProtocolErrorÚReadTimeoutErrorÚResponseNotChunkedÚSSLError)Ú is_fp_closedÚis_response_to_head)ÚRetry)ÚHTTPConnectionPoolcó0—eZdZddd„Zedd„«Zdd„Zy) ÚContentDecodercó—t«‚©N©ÚNotImplementedError©ÚselfÚdataÚ
max_lengths úS/home/antigravity/intellecton/venv/lib/python3.12/site-packages/urllib3/response.pyÚ
decompresszContentDecoder.decompress7ó €Ü!Ó#Ð#ócó—t«‚r"r#©r&s r)Úhas_unconsumed_tailz"ContentDecoder.has_unconsumed_tail:ó €ä!Ó#Ð#r,có—t«‚r"r#r.s r)ÚflushzContentDecoder.flush>r+r,N©éÿÿÿÿ©r'Úbytesr(ÚintÚreturnr6©r8Úbool©r8r6)Ú__name__Ú
__module__Ú __qualname__r*Úpropertyr/r2©r,r)r r 6s „ô$ðò$óð$ô$r,r có8—eZdZdd„Zddd„Zed d„«Zd
d„Zy) ÚDeflateDecodercó`—d|_d|_d|_tj«|_y)NTr,)Ú
_first_tryÚ_first_try_dataÚ _unfed_dataÚzlibÚ
decompressobjÚ_objr.s r)Ú__init__zDeflateDecoder.__init__Cs)€ØˆŒØ"ˆÔ؈ÔÜ×&Ñ&Ó(ˆ� r,cóŽ—|j|z}d|_|s|jjs|S|}|dkrd}n
|dk(r||_y|js4|jj |jj|z|¬«S|xj
|z
c_ |jj ||¬«}|rd|_d|_|S#t j$rdd|_t
jt j «|_ |j |j
|¬«d|_cYS#d|_wxYwwxYw)Nr,r©r(F)
rFrIÚunconsumed_tailrDr*rErGÚerrorrHÚ MAX_WBITS)r&r'r(Úoriginal_max_lengthÚ decompresseds r)r*zDeflateDecoder.decompressIs?€Ø×Ñ $Ñ&ˆØˆÔÙ˜DŸI™I×5Ò5؈KØ(ÐØ  Ò "؉JØ
 AÒ
%ð
$ˆDÔ Øð�ŠØ—9‘9×'Ñ'Ø— ‘ ×)Ñ)¨DÑ0¸Zð(óð
ð
×Ò Ñ$Õð +ØŸ9™9×/Ñ/°ÀÐ/ÓLˆLÙØ"'�”Ø'*�Ô$ØÐ øä�z‰zò +Ø#ˆDŒOÜ×*Ñ*¬D¯N©N¨?Ó;ˆDŒIð
+Ø—‘Ø×(Ñ(Ð5Hð'óð(+�×$ø s�Õ$úð +ús%Â.C
Ã
AEÄD7Ä-EÄ7 EÅEcóŒ—t|j«xs.t|jj«xr
|j Sr")r:rFrIrMrDr.s r)r/z"DeflateDecoder.has_unconsumed_tailss8€ä�D×$Ñ$Ó%ò
Ü �—‘×*Ñ*Ó +Ò C°D·O±OÐ0Cð
r,có6—|jj«Sr"©rIr2r.s r)r2zDeflateDecoder.flushyó€Ø�y‰y�‰Ó Ð r,N©r8ÚNoner3r5r9r;©r<r=r>rJr*r?r/r2r@r,r)rBrBBs&„ó)ô (+ðTò
óð
ô
!r,rBcó—eZdZdZdZdZy)ÚGzipDecoderStaterréN)r<r=r>Ú FIRST_MEMBERÚ
OTHER_MEMBERSÚ SWALLOW_DATAr@r,r)rZrZ}s„Ø€LØ€MØ�Lr,rZcó8—eZdZdd„Zddd„Zed d„«Zd
d„Zy) Ú GzipDecodercó’—tjdtjz«|_tj
|_d|_y)Nér,)rGrHrOrIrZr\Ú_stateÚ_unconsumed_tailr.s r)rJzGzipDecoder.__init__„s2€Ü×&Ñ& r¬D¯N©NÑ':Ó;ˆŒ Ü&×3Ñ3ˆŒ Ø #ˆÕr,c
ó —t«}|jtjk(r t |«S|dk(r|xj
|z
c_y|j
|z}|s!|j jr t |«S ||j j|t|t|«z
d«¬«z
}|j jxs|j jx|_}|dkDrt|«|k\r t |«S|s t |«S|j jr@tj|_tj dtj"z«|_Œï#tj$rJ|j}tj|_d|_|tjk(r
t |«cYS‚wxYw)Nrr,rLrb)Ú bytearrayrcrZr^r6rdrIÚeofr*ÚmaxÚlenrGrNr]rMÚ unused_datarHrO)r&r'r(ÚretÚprevious_states r)r*zGzipDecoder.decompress‰sހ܋kˆØ �;‰;Ô*×7Ñ7Ò 7ܘ“:Ð à ˜Š?ð
× !Ò ! TÑ )Õ !Øð×$Ñ$ tÑ+ˆÙ˜Ÿ ™ Ÿ
š
ܘ“:Ð àð
Ø�t—y‘y×+Ñ+ؤS¨´c¸#³hÑ)>ÀÓ%Bð,óñ�ð— ‘ ×)Ñ)ÒB¨T¯Y©Y×-BÑ-Bð
ˆDÔ ! Dð˜AŠ~¤# c£(¨jÒ"8Øô�S‹zÐñܘS“zÐ!ð�y‰y�}Š}Ü.×<Ñ<�” Ü ×.Ñ.¨r´D·N±NÑ/BÓC�” ð7øô
—:‘:ò
Ø!%§¡�ä.×;Ñ;�” Ø(+�Ô%Ø!Ô%5×%CÑ%CÒCä  ›:Ò%Øð
úsÂ6E0Å0AG
Ç G
có,—t|j«Sr")r:rdr.s r)r/zGzipDecoder.has_unconsumed_tail»s€ä�D×)Ñ)Ó*Ð*r,có6—|jj«Sr"rTr.s r)r2zGzipDecoder.flush¿rUr,NrVr3r5r9r;rXr@r,r)r`r`ƒs&„ó$ô
0ðdò+óð+ô!r,r`cóB—eZdZdd„Zdd d„Zdd
d„Zed d„«Zd d„Zy)
Ú
BrotliDecodercóè—tj«|_t|jd«r"t |d|jj
«yt |d|jj «y)Nr*Ú _decompress)ÚbrotliÚ DecompressorrIÚhasattrÚsetattrr*Úprocessr.s r)rJzBrotliDecoder.__init__ÉsL€Ü×+Ñ+Ó-ˆDŒIÜ�t—y‘y ,Ô/ܘ˜m¨T¯Y©Y×-AÑ-AÕB䘘m¨T¯Y©Y×->Ñ->Õ?r,có—t«‚r"r#)r&r'Úoutput_buffer_limits r)rrzBrotliDecoder._decompressÑs €Ü%Ó'Ð 'r,cóÊ— |dkDr|j||¬«S|j|«S#t$r.tjdt«|j|«cYSwxYw)Nr)ryz;Brotli >= 1.2.0 is required to prevent decompression bombs.)rrÚ TypeErrorÚwarningsÚwarnrr%s r)r*zBrotliDecoder.decompressÔsk€ð
.Ø ’>Ø×+Ñ+¨DÀjÐ+ÓQÐQà×+Ñ+¨DÓ1Ð1øÜò
.ô—
‘
ØQÜ%ôð×'Ñ'¨Ó-Ò-ð
.ús‚+š+«4A"Á!A"cóX— |jj« S#t$rYywxYw)NF)rIÚcan_accept_more_dataÚAttributeErrorr.s r)r/z!BrotliDecoder.has_unconsumed_tailãs/€ð
ØŸ9™9×9Ñ9Ó;Ð;Ð;øÜ!ò
Ùð
ús ‚� )¨)cód—t|jd«r|jj«Sy)Nr2r,)rurIr2r.s r)r2zBrotliDecoder.flushês$€Ü�t—y‘y 'Ô*Ø—y‘y—‘Ó(Ð(Ør,NrVr3)r'r6ryr7r8r6r5r9r;) r<r=r>rJrrr*r?r/r2r@r,r)rprpÅs+„ó @ô (ô
.ð
ò ó
ð ô  r,rp)éé)ÚzstdTcó8—eZdZdd„Zddd„Zed d„«Zd
d„Zy) Ú ZstdDecodercó6—tj«|_yr")r„ÚZstdDecompressorrIr.s r)rJzZstdDecoder.__init__ûs€Ü×-Ñ-Ó/ˆD�Ir,cóR—|s
|jsy|jjr2|jj|z}t j
«|_|jj
||¬«}t|«}|g}|jjrÿ|jjré|dks||krß|jj}|jjst j
«|_|jj
||dkDr||z
nd¬«}t|«x}r|j|«||z
}n|jjrn8|jjr"|jjr |dkrŒÙ||krŒßdj|«S)Nr,rLrr4) r/rIrgrjr„rˆr*riÚ needs_inputÚappendÚjoin)r&r'r(ÚpartÚlengthÚ
data_partsrjÚ part_lengths r)r*zZstdDecoder.decompressþsZ€Ù × 8Ò 8ØØ�y‰y�}Š}Ø—y‘y×,Ñ,¨tÑ3�Ü ×1Ñ1Ó3�” Ø—9‘9×'Ñ'¨¸Ð'ÓDˆDܘ“YˆFؘˆJð— ‘ —
’
Ø—I‘I×)Ò)Ø !’^ v°
Ò':à"Ÿi™i×3Ñ3� Ø—y‘y×,Ò,Ü $× 5Ñ 5Ó 7�D”IØ—y‘y×+Ñ+ØØ8BÀQº 
¨VÒ 3ÈBð,ó�ô#& d£)Ð+�;Ð+Ø×%Ñ% dÔ+ؘkÑ)‘FØ—Y‘Y×*Ò*Øð— ‘ —
’
Ø—I‘I×)Ò)Ø !“^ v°
Ó':ð—8‘8˜JÓ'Ð 'r,có¢—|jjxs|jj xst|jj«Sr")rIrŠrgr:rjr.s r)r/zZstdDecoder.has_unconsumed_tail s>€àŸ ™ ×-Ñ-Ò>°·±·±Ð?òÄ4Ø— ‘ ×%Ñ%óDð
r,cóF—|jjs td«‚y)NzZstandard data is incompleter,)rIrgrr.s r)r2zZstdDecoder.flush&s€Ø—9‘9—=’=Ü!Ð"@ÓAÐAØr,NrVr3r5r9r;rXr@r,r)r†r†ús&„ó 0ô (ðD
ò ó
ð ô
 r,r†Fcó@—eZdZdZdZdd„Zd d„Zd
d d„Zed d„«Z y)
Ú MultiDecodera
From RFC7231:
If one or more encodings have been applied to a representation, the
sender that applied the encodings MUST generate a Content-Encoding
header field that lists the content codings in the order in which
they were applied.
écó$—|jd«D�cgc]}|j«‘Œ}}t|«|jkDr$t dt|«›d|j›�«‚|D�cgc]
}t |«‘Œc}|_ycc}wcc}w)Nú,z)Too many content encodings in the chain: z > )ÚsplitÚstripriÚmax_decode_linksrÚ _get_decoderÚ _decoders)r&ÚmodesÚmÚ encodingsÚes r)rJzMultiDecoder.__init__9s„€Ø(-¯ © °CÓ(8Ö9 1�Q—W‘W•YÐ9ˆ Ð9Ü ˆy‹>˜D×1Ñ1Ò 1ÜØ;Ü�y“>Ð" # d×&;Ñ&;Ð%<ð>óð
ð4=Ö=¨aœ, q�/Ò=ˆ�ùò
:ùò >s ”BÁ-B
có<—|jdj«S©Nr)rœr2r.s r)r2zMultiDecoder.flushBs€Ø�~‰~˜aÑ ×&Ñ&Ó(Ð(r,cóB—|dkr-t|j«D]}|j|«}Œ|St«} d}t|j«D]&}|j||t |«z
¬«}|sŒ%d}Œ(||z
}|rt |«|k\r t |«Sd}Œc)NrTFrLr,)Úreversedrœr*rfrir6)r&r'r(ÚdrkÚany_datas r)r*zMultiDecoder.decompressEs­€Ø ˜Š?ܘdŸn™nÓ-ò
*�Ø—|‘| DÓ)‘ð
*àˆKä‹kˆð؈HܘdŸn™nÓ-ò
$�Ø—|‘| D°ZÄ#ÀcÃ(Ñ5J�|ÓK�ÚØ#‘Hð
$ð
�4‰KˆCÙœs 3›x¨:Ò5ܘS“zÐ!؈Dðr,có:—td„|jD««S)Nc3ó4K—|]}|j–—Œy­wr")r/)Ú.0r¥s r)ú <genexpr>z3MultiDecoder.has_unconsumed_tail.<locals>.<genexpr>asèø€ÒA¨Q�1×(Õ(ÑAùs‚)Úanyrœr.s r)r/z MultiDecoder.has_unconsumed_tail_s€äÑA°$·.±.ÔAÓAÐAr,N)r�Ústrr8rWr;r3r5r9)
r<r=r>Ú__doc__ršrJr2r*r?r/r@r,r)r”r”,s4„ñðÐó>ó)ôð4òBóñBr,r”có¤—d|vr t|«S|dvr
t«St�|dk(r
t«Str|dk(r
t «St
«S)Nr—)Úgzipúx-gzipÚbrr„)r”r`rsrpÚHAS_ZSTDr†rB)Úmodes r)r›r›dsU€Ø
ˆd�{ܘDÓ!Ð!ð Ð!Ñ!Ü‹}Ðä
Иd dšlÜ‹Ðå�D˜F’NÜ‹}Ðä Ó Ðr,có8—eZdZdZdd„Zd d„Zd
d„Zd d„Zd d„Zy)
ÚBytesQueueBuffera˜Memory-efficient bytes buffer
To return decoded data in read() and still follow the BufferedIOBase API, we need a
buffer to always return the correct amount of bytes.
This buffer should be filled using calls to put()
Our maximum memory usage is determined by the sum of the size of:
* self.buffer, which contains the full data
* the largest chunk that we will copy in get()
cóD—tj«|_d|_yr¢)Ú collectionsÚdequeÚbufferÚ_sizer.s r)rJzBytesQueueBuffer.__init__„s€Ü?J×?PÑ?PÓ?RˆŒ ؈�
r,có—|jSr")rºr.s r)Ú__len__zBytesQueueBuffer.__len__ˆs €Ø�z‰zÐr,cóv—|jj|«|xjt|«z
c_yr")r¹r‹rºri©r&r's r)ÚputzBytesQueueBuffer.put‹s&€Ø � ‰ ×ј4Ô Ø �
Š
”c˜$“iÑŽ
r,cóH—|dk(ry|js td«‚|dkr td«‚t|jd«|k(rLt |jdt
«r/|xj |zc_|jj«Sd}tj«}||krä||z
}|jj«}t|«}||krgt|«}|d|||d}}|j|«|jj|«|xj |zc_ |j«S|j|«|xj |zc_||z
}|js |j«S||krŒä|j«S)Nrr,zbuffer is emptyzn should be > 0)r¹Ú RuntimeErrorÚ
ValueErrorriÚ
isinstancer6rºÚpopleftÚioÚBytesIOÚ
memoryviewÚwriteÚ
appendleftÚgetvalue) r&ÚnÚfetchedrkÚ remainingÚchunkÚ chunk_lengthÚ
left_chunkÚ right_chunks r)ÚgetzBytesQueueBuffer.get�sl€Ø �Š6ØØ—’ÜÐ0Ó1Ð 1Ø
�ŠUÜÐ.Ó/Ð /ä ˆt�{‰{˜1‰~Ó  !Ò #¬
°4·;±;¸q±>Ä5Ô(IØ �JŠJ˜!‰O�JØ—;‘;×&Ñ&Ó(Ð (àˆÜ�j‰j‹lˆØ˜ŠkؘG™ ˆIØ—K‘K×'Ñ'Ó)ˆEܘu›:ˆLؘ<Ò'Ü" 5Ó)�Ø*/°
°Ð*;¸UÀ9À:Ð=N˜K�
Ø— ‘ ˜*Ô%Ø— ‘ ×&Ñ& {Ô3Ø—
’
˜iÑ'•
Øð�|‰|‹~Ðð— ‘ ˜%Ô Ø—
’
˜lÑ*•
Ø �|Ñ #ˆGà—;’;Øà�|‰|‹~Ðð'˜‹kð&�|‰|‹~Ðr,cót‡—|jЉs|jdk(sJ‚yt‰«dk(r1‰j«}t |t
«ra|j
«}nPtj«}|jˆfd„tt‰««D««|j«}d|_|S)Nrr,rc3ó>•K—|]}‰j«–—Œy­wr")rÄ)r©Ú_r¹s €r)rªz+BytesQueueBuffer.get_all.<locals>.<genexpr>½søèø€ÒH°˜6Ÿ>™>×+ÑHùsƒ) r¹rºriÚpoprÃrÇÚtobytesrÅrÆÚ
writelinesÚrangerÊ)r&Úresultrkr¹s @r)Úget_allzBytesQueueBuffer.get_all²sŒø€Ø—‘ˆÙØ—:‘: ’?Ð "�?ØÜ ˆv‹;˜!Ò Ø—Z‘Z“\ˆFܘ&¤*Ô-ØŸ™Ó)‘ä—*‘*“,ˆCØ �N‰NÓH´U¼3¸v»;Ó5GÔHÔ HØ—\‘\“^ˆF؈Œ
؈
r,NrV©r8r7)r'r6r8rW)rËr7r8r6r;) r<r=r>r­rJr¼r¿rÒrÛr@r,r)rµrµvs!„ñ óóó ó!ôFr,rµcó^—eZdZUgd¢Ze�edgz
Zeredgz
Zgd¢ZeejfZ
de d<e�e
ejfz
Z
ere
e jfz
Z
dddœ d"d „Zd#d
„Zed$d „«Zd%d „Zed&d
„«Zej(d'd„«Zed(d„«Zed)d„«Zej(d*d„«Z d+ d,d„Z d- d.d„Z d/ d0d„Z d/ d,d„Zd1d„Zd1d„Zd1d„Zd1d„Zd1d„Z d2 d3d„Z d$d„Z!d4d„Z"d5d„Z#d2d6d„Z$d5d „Z%d&d!„Z&y)7ÚBaseHTTPResponse)r¯r°ÚdeflateNr±r„)i-i.i/i3i4ztuple[type[Exception], ...]ÚDECODER_ERROR_CLASSES)ÚheadersÚretriescó~—t|t«r||_nt|«|_||_||_||_||_||_d|_||_ ||_
d|_ |jjdd«j«} d„| jd«D«}
d|
vrd|_ d|_|y)NFztransfer-encodingÚc3ó<K—|]}|j«–—Œy­wr")r™)r©Úencs r)rªz,BaseHTTPResponse.__init__.<locals>.<genexpr>îsèø€Ò> S�S—Y‘Y—[Ñ>ùs‚r—ÚchunkedT)rÃr ráÚstatusÚversionÚversion_stringÚreasonÚdecode_contentÚ_has_decoded_contentÚ _request_urlrârçrÒÚlowerr˜Ú_decoder) r&rárèrérêrërìÚ request_urlrâÚtr_encrŸs r)rJzBaseHTTPResponse.__init__Òs°€ô �gœ~Ô .Ø"ˆD�Lä)¨'Ó2ˆDŒL؈Œ ؈Œ Ø,ˆÔ؈Œ Ø,ˆÔØ$)ˆÔ!Ø(3ˆÔ؈Œ àˆŒ Ø—‘×!Ñ!Ð"5°rÓ:×@Ñ@ÓBˆá>¨F¯L©L¸Ó,=Ô>ˆ Ø ˜ Ñ !؈DŒLà/3ˆŒ
Ú r,cój—|j|jvr|jjd«Sy)a
Should we redirect and where to?
:returns: Truthy redirect location string if we got a redirect status
code and valid location. ``None`` if redirect status and no
location. ``False`` if not a redirect status code.
ÚlocationF)rèÚREDIRECT_STATUSESrárÒr.s r)Úget_redirect_locationz&BaseHTTPResponse.get_redirect_locationõs.€ð �;‰;˜$×0Ñ0Ñ 0Ø—<‘<×#Ñ# JÓ/Ð /Ør,có—t«‚r"r#r.s r)r'zBaseHTTPResponse.datar0r,cób—|jjd«}tj|«S)aÄ
Deserializes the body of the HTTP response as a Python object.
The body of the HTTP response must be encoded using UTF-8, as per
`RFC 8529 Section 8.1 <https://www.rfc-editor.org/rfc/rfc8259#section-8.1>`_.
To use a custom JSON decoder pass the result of :attr:`HTTPResponse.data` to
your custom decoder instead.
If the body of the HTTP response is not decodable to UTF-8, a
`UnicodeDecodeError` will be raised. If the body of the HTTP response is not a
valid JSON document, a `json.JSONDecodeError` will be raised.
Read more :ref:`here <json_content>`.
:returns: The body of the HTTP response as a Python object.
zutf-8)r'ÚdecodeÚ_jsonÚloadsr¾s r)ÚjsonzBaseHTTPResponse.jsons'€ð$�y‰y×Ñ Ó(ˆÜ�{‰{˜4Ó Ð r,có—t«‚r"r#r.s r)ÚurlzBaseHTTPResponse.urlr0r,có—t«‚r"r#©r&rþs r)rþzBaseHTTPResponse.urlr0r,có—t«‚r"r#r.s r)Ú
connectionzBaseHTTPResponse.connection"r0r,có—|jSr")Ú_retriesr.s r)râzBaseHTTPResponse.retries&s €à�}‰}Ðr,cój—|�*|jr|jdj|_||_y)Nr4)ÚhistoryÚredirect_locationrþr)r&râs r)râzBaseHTTPResponse.retries*s-€ð Ð  7§?¢?Ø—‘ rÑ*×<Ñ<ˆDŒH؈�
r,có—t«‚r"r#©r&Úamtrìs r)ÚstreamzBaseHTTPResponse.stream1s
€ô"Ó#Ð#r,có—t«‚r"r#)r&r
rìÚ
cache_contents r)ÚreadzBaseHTTPResponse.read6s
€ô "Ó#Ð#r,có—t«‚r"r#r s r)Úread1zBaseHTTPResponse.read1>ó
€ô
"Ó#Ð#r,có—t«‚r"r#r s r)Ú read_chunkedzBaseHTTPResponse.read_chunkedErr,có—t«‚r"r#r.s r)Ú release_connzBaseHTTPResponse.release_connLr+r,có—t«‚r"r#r.s r)Ú
drain_connzBaseHTTPResponse.drain_connOr+r,có—t«‚r"r#r.s r)ÚshutdownzBaseHTTPResponse.shutdownRr+r,có—t«‚r"r#r.s r)ÚclosezBaseHTTPResponse.closeUr+r,cóz—|jjdd«j«}|j€€||jvrt |«|_yd|vr\|j
d«D�cgc].}|j«|jvr|j«‘Œ0}}|rt |«|_yyyycc}w)z=
Set-up the _decoder attribute if necessary.
úcontent-encodingräNr—)rárÒrïrðÚCONTENT_DECODERSr›r˜r™)r&Úcontent_encodingr rŸs r)Ú
_init_decoderzBaseHTTPResponse._init_decoderXs½€ð  Ÿ<™<×+Ñ+Ð,>ÀÓC×IÑIÓKÐØ �=‰=Ð Ø 4×#8Ñ#8Ñ8Ü ,Ð-=Ó >�•
ØÐ(Ñ(ð.×3Ñ3°CÓ8öàØ—w‘w“y D×$9Ñ$9Ñ9ð—G‘G•Ið� ðñ
Ü$0Ð1AÓ$B�D•Mðð
)ð !ùòsÁ-3B8cóv—|s|jr td«‚|S|�|rd} |jr$|jj||¬«}d|_|r||j«z
}|S#|j$r?}|j
j
dd«j«}td|z|«|‚d}~wwxYw) zN
Decode the data passed in and potentially flush the decoder.
ú_Calling read(decode_content=False) is not supported after read(decode_content=True) was called.Nr4rLTrräzEReceived response with content-encoding: %s, but failed to decode it.)
rírÁrðr*ràrárÒrïrÚ_flush_decoder)r&r'rìÚ
flush_decoderr(r rs r)Ú_decodezBaseHTTPResponse._decodeksÛ€ñØ×(Ò(Ü"ð<óððˆKà Ð ¡ØˆJð
Ø�}Š}Ø—}‘}×/Ñ/°ÀÐ/ÓL�Ø,0�Ô)ñ Ø �D×'Ñ'Ó)Ñ )ˆDàˆ øð×)Ñ)ò Ø#Ÿ|™|×/Ñ/Ð0BÀBÓG×MÑMÓOÐ Üð'Ø)9ñ:àóðð 
ûð ús£0A*Á*B8Á9:B3Â3B8cóˆ—|jr6|jjd«|jj«zSy)zk
Flushes the decoder. Should only be called if the decoder is actually
being used.
r,)rðr*r2r.s r)r#zBaseHTTPResponse._flush_decoder�s5€ð
�=Š=Ø—=‘=×+Ñ+¨CÓ0°4·=±=×3FÑ3FÓ3HÑHÐ HØr,có†—|jt|««}t|«dk(ry||dt|«t|«Sr¢)rri)r&ÚbÚtemps r)ÚreadintozBaseHTTPResponse.readintošs;€Ø�y‰yœ˜Q›Ó ˆÜ ˆt‹9˜Š>Øà!ˆAˆk”�D“ ˆNÜ�t“9Ð r,có—|jSr"©rár.s r)Ú
getheaderszBaseHTTPResponse.getheaders£ó €Ø�|‰|Ðr,có:—|jj||«Sr")rárÒ)r&ÚnameÚdefaults r)Ú getheaderzBaseHTTPResponse.getheader¦s€Ø�|‰|×Ñ  gÓ.Ð.r,có—|jSr"r,r.s r)ÚinfozBaseHTTPResponse.infoªr.r,có—|jSr")rþr.s r)ÚgeturlzBaseHTTPResponse.geturl­s €Ø�x‰xˆr,)ráú>typing.Mapping[str, str] | typing.Mapping[bytes, bytes] | Nonerèr7rér7rêr¬rëú
str | Nonerìr:rñr8râú Retry | Noner8rW)r8z"str | None | typing.Literal[False]r;)r8z
typing.Any©r8r8©rþr8r8rW)r8zBaseHTTPConnection | None)r8r9)râr9r8rW©iN)r
ú
int | Nonerìú bool | Noner8útyping.Iterator[bytes]©NNF©r
r=rìr>r
r:r8r6©NN©r
r=rìr>r8r6rVr")
r'r6rìr>r$r:r(r=r8r6)r(zbytearray | memoryview[int]r8r7)r8r )r0r¬r1r8r8r8)'r<r=r>rrsr²rõÚIOErrorrGrNràÚ__annotations__r„Ú ZstdErrorrJrör?r'rürþÚsetterrrâr rrrrrrrr r%r#r*r-r2r4r6r@r,r)rÞrÞÃsˆ…Ú4ÐØ
ÐØ˜T˜FÑ"ÐÙØ˜V˜HÑ$ÐÚ1Ðà:AÀ4Ç:Á:Ð9NÐÐ6ÓNØ
ÐØ &§,¡, Ñ0ÐáØ $§.¡.Ð!2Ñ2Ðð
SWð!%ñ!*ðPð!*ðð !*ð
ð !*ð ð
!*ðð!*ðð!*ð ð!*ðð!*ð
ó!*óF
ðò$óð$ó!ð*ò$óð$ð ‡Z�Zò$óð$ðò$óð$ðòóðð
‡^�^ò óð ðFJð$Øð$Ø7Bð$à ó$ðØ&*Ø#ð $à
ð$ð$ð$ðð $ð
ó $ðØ&*ð$à
ð$ð$ð$ð
ó $ðØ&*ð$à
ð$ð$ð$ð
ó $ó$ó$ó$ó$óCð0"&ð #àð#ð$ð#ðð #ð
ð #ð
ó
#óJóóô/óôr,rÞcó‡—eZdZdZ d d ˆfd„
Zd!d„Zd!d„Zed"d„«Zed#d„«Z d$d„Z
d%d„Z d&d „Z e
d'd
„«Z d(d d œ d)d
„Z d(d d œ d)d„Z d* d+d„Z d, d-d„Z d. d/d„Zd$d„Zd!d„Zd!d„Zed$d„«Zd%d„Zd!d„Zd$d„Zd!d„Zd0d„Z d, d/d„Zed1d„«Zej>d2d„«Zd3d„Z ˆxZ!S)4raá
HTTP Response container.
Backwards-compatible with :class:`http.client.HTTPResponse` but the response ``body`` is
loaded and decoded on-demand when the ``data`` property is accessed. This
class is also compatible with the Python standard library's :mod:`io`
module, and can hence be treated as a readable object in the context of that
framework.
Extra parameters for behaviour not present in :class:`http.client.HTTPResponse`:
:param preload_content:
If True, the response's body will be preloaded during construction.
:param decode_content:
If True, will attempt to decode the body based on the
'content-encoding' header.
:param original_response:
When this HTTPResponse wrapper is generated from an :class:`http.client.HTTPResponse`
object, it's convenient to include the original for debug purposes. It's
otherwise unused.
:param retries:
The retries contains the last :class:`~urllib3.util.retry.Retry` that
was used during the request.
:param enforce_content_length:
Enforce content length checking. Body returned by server must match
value of Content-Length header, if present. Otherwise, raise error.
c
óØ•—t‰|�||||||||
¬«||_||_d|_d|_d|_| |_d|_| |_ |rt|ttf«r||_|
|_
| |_t|d«r||_||_d|_|j%|«|_t)«|_|r%|js|j-|¬«|_yyy)N)rárèrérêrërìrñrâFrr©rì)ÚsuperrJÚenforce_content_lengthÚ
auto_closeÚ_bodyÚ_uncached_read_occurredÚ_fpÚ_original_responseÚ_fp_bytes_readÚmsgrÃr¬r6Ú_poolÚ _connectionruÚ_sock_shutdownÚ
chunk_leftÚ _init_lengthÚlength_remainingrµÚ_decoded_bufferr)r&ÚbodyrárèrérêrëÚpreload_contentrìÚoriginal_responseÚpoolrrSrârLÚrequest_methodrñrMÚ
sock_shutdownÚ __class__s €r)rJzHTTPResponse.__init__Òsûø€ô* ‰ÑØØØØ)ØØ)Ø#Øð ô
ð'=ˆÔ#Ø$ˆŒàˆŒ
Ø',ˆÔ$Ø04ˆŒØ"3ˆÔØˆÔØˆŒá ”J˜t¤c¬5 \Ô2؈DŒJàˆŒ
Ø%ˆÔä �4˜Ô ؈DŒHØ+ˆÔð'+ˆŒð!%× 1Ñ 1°.Ó AˆÔô 0Ó1ˆÔñ  4§:¢:ØŸ™°.˜ÓAˆD�Jð$.ˆ?r,cóŽ—|jr |jsy|jj|j«d|_yr")rTrUÚ _put_connr.s r)rzHTTPResponse.release_conns4€Ø�zŠz ×!1Ò!1Øà �
‰
×јT×-Ñ-Ô.؈Õr,cóª— |j«|j
rt
«|_d|_yy#ttttf$rYŒ?wxYw)zÏ
Read and discard any remaining HTTP response data in the response connection.
Unread data in the HTTPResponse connection blocks the connection from being released back to the pool.
N) Ú _raw_readrÚOSErrorr
rrírµrZrðr.s r)rzHTTPResponse.drain_connsR€ð  Ø �N‰NÔ ð × $Ò $ô$4Ó#5ˆDÔ Ø ˆD�Mð %øôœ7¤L´-Ð@ò Ù ð ús‚6AÁAcóp—|jr |jS|jr|jd¬«Sy)NT)r
)rNrPrr.s r)r'zHTTPResponse.data*s0€ð �:Š:Ø—:‘:Ð à �8Š8Ø—9‘9¨4�9Ó0Ð 0àr,có—|jSr")rUr.s r)rzHTTPResponse.connection5s€à×ÑÐr,có,—t|j«Sr")rrPr.s r)ÚisclosedzHTTPResponse.isclosed9s€Ü˜DŸH™HÓ%Ð%r,có—|jS)zÙ
Obtain the number of bytes pulled over the wire so far. May differ from
the amount of content returned by :meth:`HTTPResponse.read`
if bytes are encoded on the wire (e.g, compressed).
)rRr.s r)ÚtellzHTTPResponse.tell<s€ð ×"Ñ"Ð"r,cóê—|jjd«}|�~|jrtj d«y |j d«D�chc]
}t
|«’Œ}}t|«dkDrtd|z«‚|j«}|dkrd}nd} t
|j«}|dvsd |cxkrd
ksn|d k(rd}|Scc}w#t$rd}YŒBwxYw#t$rd}YŒ=wxYw) zM
Set initial length value for Response content if available.
zcontent-lengthNzÒReceived response with both Content-Length and Transfer-Encoding set. This is expressly forbidden by RFC 7230 sec 3.3.2. Ignoring Content-Length and attempting to process response as Transfer-Encoding: chunked.r—rz8Content-Length contained multiple unmatching values (%s)r)éÌi0édéÈÚHEAD) rárÒrçÚlogÚwarningr˜r7rirrÖrÂrè)r&r_Úcontent_lengthÚvalÚlengthsrŽrès r)rXzHTTPResponse._init_lengthDs€ð
&*§\¡\×%5Ñ%5Ð6FÓ%Gˆà Ð %Ø�|Š|ô— ‘ ðôðð
"ð 0>×/CÑ/CÀCÓ/HÖI¨œ3˜s�8ÐI�ÐIÜ�w“< !Ò#Ü'ð1Ø3AñBóðð!Ÿ™›�ð˜A’:Ø!‘FðˆFð ܘŸ™Ó%ˆFð
�ZÑ  3¨&Ô#6°3Ô#6¸.ÈFÒ:R؈Fàˆ
ùò7Jøôò
Ø’ð
ûôò ØŠFð ús6ÁCÁCÁ&.CÂC$ÃCÃ C!Ã C!Ã$ C2Ã1C2c#ó®K—d} d–—d}|sL|jr|jj«|jr|jj«|jr,|jj«r|j«yyy#t$r}t|jdd«|‚d}~wt$r}t |«|‚d}~wt
$rL}|j �)|j�|j |j k(rd}nd|›�}t||«|‚d}~wttf$r}td|›�|«|‚d}~wwxYw#|sL|jr|jj«|jr|jj«|jr,|jj«r|j«wwwxYw­w)zç
Catch low-level python exceptions, instead re-raising urllib3
variants, so that low-level exceptions are not leaked in the
high-level api.
On exit, release the connection back to the pool.
FNzRead timed out.z!Response may not contain content.zConnection broken: T)Ú
SocketTimeoutrrTr
rrÚexpectedÚpartialrrrfrQrrUrjr)r&Ú
clean_exitr Úargs r)Ú_error_catcherzHTTPResponse._error_catcher|sºèø€ðˆ
ð1 $ð
KÛð6ˆJñð×*Ò*Ø×+Ñ+×1Ñ1Ô3ð
×#Ò#Ø×$Ñ$×*Ñ*Ô,ð×&Ò&¨4×+BÑ+B×+KÑ+KÔ+MØ×!Ñ!Õ#ð,NÐ&øôY!ò
Sô' t§z¡z°4Ð9JÓKÐQRÐRûäò
)ä˜q“k qÐ(ûä!ò
3à—J‘JÐ*ØŸ ™ Ð-ØŸ
™
 q§y¡y jÒ0à=‘Cà/°¨uÐ5�CÜ# C¨Ó+°Ð2ûä!¤7Ð+ò
KÜ#Ð&9¸!¸Ð$?ÀÓCÈÐJûð
Kûñð×*Ò*Ø×+Ñ+×1Ñ1Ô3ð
×#Ò#Ø×$Ñ$×*Ñ*Ô,ð×&Ò&¨4×+BÑ+B×+KÑ+KÔ+MØ×!Ñ!Õ#ð,NÐ&üs_‚G‡B‹E
�BGÂ EÂB5Â5 EÃ C
Ã
EÃAD Ä EÄ2EÅEÅE
Å
BGÇGF©rcó¼—|jsJ‚d}|r||kDs|€Ô|jrÈ|j|kDr¹tjr©|r|jj |«St j «}d}|�|dk7r_|�t||«}||z}n|}|jj|«}|s |j«S|j|«~|€ŒY|dk7rŒ_|j«S|r7|�|jj |«S|jj «S|�|jj|«S|jj«S)a†
Read a response with the thought that reading the number of bytes
larger than can fit in a 32-bit int at a time via SSL in some
known cases leads to an overflow error that has to be prevented
if `amt` or `self.length_remaining` indicate that a problem may
happen.
This happens to urllib3 injected with pyOpenSSL-backed SSL-support.
iÿÿÿir) rPrYr
Ú IS_PYOPENSSLrrÅrÆÚminrrÈrÊ)r&r
rÚ c_int_maxr¹Ú
max_chunk_amtÚ chunk_amtr's r)Ú_fp_readzHTTPResponse._fp_readºs;€ð�xŠxˆˆx؈ á
�S˜9’_à� Ø×)Ò)Ø×)Ñ)¨IÒ5ä×ÒÙØ—x‘x—~‘~ iÓ0Ð0Ü—Z‘Z“\ˆFð"ˆMØ�+ ¨¢Ø�?Ü # C¨Ó 7�Iؘ9Ñ$‘Cà -�IØ—x‘x—}‘} YÓ/�ÙØð—?‘?Ó$Ð $ð— ‘ ˜TÔ"Øð‘+ ¨£ð—?‘?Ó$Ð $Ù
Ø*-¨/�4—8‘8—>‘> #Ó&Ð O¸t¿x¹x¿~¹~Ó?OÐ Oð*-¨�4—8‘8—=‘= Ó%Ð M¸d¿h¹h¿m¹m»oÐ Mr,có¤—|j€yt|jdd«}|j«5|s|j||¬«nd}|�h|dk7rc|sa|jj «|j
rv|j �j|j dk7r[t|j|j «‚|r9|dk7r|r|j t|«k(r|jj «ddd«rH|xjt|«z
c_|j �|xj t|«zc_|S#1swYŒUxYw)z7
Reads `amt` of bytes from the socket.
NÚclosedFr~r,r)
rPÚgetattrr}r…rrLrYrrRri)r&r
rÚ fp_closedr's r)rezHTTPResponse._raw_readïs$€ð �8‰8Ð Øä˜DŸH™H h°Ó6ˆ à
×
Ñ
Ó
"ñ !Ù:C�4—=‘= ¨E�=Ô2ȈD؈ 3¨!¢8±Dð—‘—‘Ô à×/Ò/Ø×-Ñ-Ð9Ø×-Ñ-°Ò2ô)¨×)<Ñ)<¸d×>SÑ>SÓTÐTÙØ˜’¡$¨4×+@Ñ+@ÄCÈÃIÒ+Mð —‘—‘Ô ÷= !ñ@ Ø × Ò ¤3 t£9Ñ ,Õ Ø×$Ñ$Ð0Ø×%Ò%¬¨T«Ñ2Õ%؈ ÷I !ð !ús µB=EÅEc óš—|j«|€ |j}|r|dkrd}n·|�µd}|jrt|jjr^t |j
«|krF|j
d|d|t |j
«z
¬«}|j
j|«t |j
«|k\r|j
j|«S|j|«}|sd|_
|duxs