+
    i                    2   ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t^ RIHt ^ RIHtHt ^RIHtHtHtHt ^RIHtHtHtHtHtHtHtHt ^RIH t H!t!H"t"H#t#H$t$H%t%H&t& ^RI'H(t( ^R	I)H*t* ^R
I+H,t,H-t-H.t.H/t/H0t0H1t1H2t2H3t3H4t4H5t5H6t6 ^RI7H8t8 ^RI9H:t:H;t; . R#Ot<RR0t=R R lt>R$R R llt?R$R R llt@R R ltAR R ltBR R ltC ! R R]	P                  ]E]E3,          4      tF ! R  R4      tG ! R! R4      tH ! R" R]	P                  ]E]E3,          4      tIR# )%    )annotationsN)Mapping)Cookie	CookieJar)
ByteStreamUnattachedStreamencode_requestencode_response)SUPPORTED_DECODERSByteChunkerContentDecoderIdentityDecoderLineDecoderMultiDecoderTextChunkerTextDecoder)CookieConflictHTTPStatusErrorRequestNotReadResponseNotReadStreamClosedStreamConsumedrequest_context)(get_multipart_boundary_from_content_type)codes)AsyncByteStreamCookieTypesHeaderTypesQueryParamTypesRequestContentRequestDataRequestExtensionsRequestFilesResponseContentResponseExtensionsSyncByteStream)URL)to_bytes_or_strto_strCookiesHeadersRequestResponseauthorizationzproxy-authorizationc                    V ^8  d   QhRRRR/# )   encodingstrreturnbool )formats   "`/Users/igloo/.openclaw/workspace/scratch/fb_ad_env/lib/python3.14/site-packages/httpx/_models.py__annotate__r8   8   s            c                X     \         P                  ! V 4       R#   \         d     R# i ; i)z/
Return `True` if `encoding` is a known codec.
FT)codecslookupLookupErrorr1   s   &r7   _is_known_encodingr?   8   s,    h   s    ))c               $    V ^8  d   QhRRRRRR/# )r0   keystr | bytesr1   
str | Noner3   bytesr5   )r6   s   "r7   r8   r8   C   s&     N N{ Nj NE Nr9   c                h    \        V \        4      '       d   V # T P                  T;'       g    R4      # )z=
Coerce str/bytes into a strictly byte-wise HTTP header key.
ascii)
isinstancerD   encode)rA   r1   s   &&r7   _normalize_header_keyrI   C   s,     S%((3Mcjj9L9LW.MMr9   c               $    V ^8  d   QhRRRRRR/# )r0   valuerB   r1   rC   r3   rD   r5   )r6   s   "r7   r8   r8   J   s"     - -; -* -PU -r9   c                    \        V \        4      '       d   V # \        V \        4      '       g   \        R\	        V 4       24      hT P                  T;'       g    R4      # )z?
Coerce str/bytes into a strictly byte-wise HTTP header value.
z'Header value must be str or bytes, not rF   )rG   rD   r2   	TypeErrortyperH   )rK   r1   s   &&r7   _normalize_header_valuerO   J   sQ     %eS!!A$u+OPP<<++G,,r9   c                    V ^8  d   QhRRRR/# )r0   content_typer2   r3   rC   r5   )r6   s   "r7   r8   r8   U   s     1 1c 1j 1r9   c                j    \         P                  P                  4       pWR &   VP                  RR7      # )content-typeN)failobj)emailmessageMessageget_content_charset)rQ   msgs   & r7   _parse_content_type_charsetrZ   U   s2     --


!C&""4"00r9   c                    V ^8  d   QhRRRR/# )r0   rK   r2   r3   zlist[dict[str, str]]r5   )r6   s   "r7   r8   r8   ]   s     " "s "'; "r9   c                   . pRpV P                  V4      p V '       g   V# \        P                  ! RV 4       F  p VP                  R^4      w  rERVP                  R4      /pVP                  R4       F9  p VP                  R4      w  rT P                  T4      YhP                  T4      &   K;  	  VP	                  V4       K  	  V#   \         d    TRrT Li ; i  \         d      K:  i ; i)a  
Returns a list of parsed link headers, for more info see:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Link
The generic syntax of those is:
Link: < uri-reference >; param1=value1; param2="value2"
So for instance:
Link; '<http:/.../front.jpeg>; type="image/jpeg",<http://.../back.jpeg>;'
would return
    [
        {"url": "http:/.../front.jpeg", "type": "image/jpeg"},
        {"url": "http://.../back.jpeg"},
    ]
:param value: HTTP Link entity-header field
:return: list of parsed link headers
z '"z, *<; urlz<> '"=)stripresplit
ValueErrorappend)	rK   linksreplace_charsvalr_   paramslinkparamrA   s	   &        r7   _parse_header_linksrl   ]   s      #%EMKK&Exx&	"))C+KC syy*+\\#&E"[[-
 .3[[-GD=)* ' 	T ' L  	"r	"  s#   C7CCCC+*C+c                    V ^8  d   QhRRRR/# )r0   itemsz4typing.Iterable[tuple[typing.AnyStr, typing.AnyStr]]r3   z4typing.Iterator[tuple[typing.AnyStr, typing.AnyStr]]r5   )r6   s   "r7   r8   r8      s      ?9r9   c              #     "   V  F9  w  r\        VP                  4       4      \        9   d   \        R VR7      pW3x  K;  	  R# 5i)z[secure])match_type_ofN)r)   lowerSENSITIVE_HEADERSr(   )rn   kvs   &  r7   _obfuscate_sensitive_headersru      s:      !'') 11
!<Ad
 s   AAc                  L   ] tR t^tRtR,R R llt]R R l4       t]P                  R R l4       t]R	 R
 l4       t	R R lt
R R ltR R ltR R ltR-R R lltR.R R lltR-R R lltR R ltR R ltR R ltR R  ltR! R" ltR# R$ ltR% R& ltR' R( ltR) R* ltR+tR# )/r+   z1
HTTP headers, as a case-insensitive multi-dict.
Nc               $    V ^8  d   QhRRRRRR/# )r0   headersHeaderTypes | Noner1   rC   r3   Noner5   )r6   s   "r7   r8   Headers.__annotate__   s(     " "#" " 
	"r9   c                	   . V n         \        V\        4      '       d   \        VP                   4      V n         M\        V\        4      '       d\   VP                  4        FF  w  r4\        W24      p\        WB4      pV P                   P                  WUP                  4       V34       KH  	  MPVeM   V FF  w  r4\        W24      p\        WB4      pV P                   P                  WUP                  4       V34       KH  	  W n
        R # N)_listrG   r+   listr   rn   rI   rO   re   rq   	_encoding)selfrx   r1   rs   rt   	bytes_keybytes_values   &&&    r7   __init__Headers.__init__   s    
 
gw''gmm,DJ))1!>	5aB

!!9oo.?"MN (  1!>	5aB

!!9oo.?"MN  
 "r9   c                   V ^8  d   QhRR/# r0   r3   r2   r5   )r6   s   "r7   r8   r{      s      # r9   c                   V P                   fZ   R FL  pV P                   F(  w  r# VP                  V4       VP                  V4       K*  	  Wn          V P                   # 	  RV n         V P                   #   \         d      Kr  i ; i)zV
Header encoding is mandated as ascii, but we allow fallbacks to utf-8
or iso-8859-1.
z
iso-8859-1)rF   utf-8)r   rawdecodeUnicodeDecodeError)r   r1   rA   rK   s   &   r7   r1   Headers.encoding   s     >>!."&((JC

8,X. #+ &.N
 ~~! / ".~~ . s   "A44BBc                    V ^8  d   QhRRRR/# r0   rK   r2   r3   rz   r5   )r6   s   "r7   r8   r{      s      c d r9   c                	    Wn         R # r}   )r   r   rK   s   &&r7   r1   r      s    r9   c                   V ^8  d   QhRR/# )r0   r3   zlist[tuple[bytes, bytes]]r5   )r6   s   "r7   r8   r{      s     F F. Fr9   c                X    V P                    UUUu. uF	  w  rq1V3NK  	  uppp# u upppi )z8
Returns a list of the raw header items, as byte pairs.
)r~   )r   raw_key_rK   s   &   r7   r   Headers.raw   s(    
 ;?**E*%6W% *EEEs   %c                   V ^8  d   QhRR/# )r0   r3   ztyping.KeysView[str]r5   )r6   s   "r7   r8   r{      s     X X* Xr9   c                	    V P                    UUUu/ uF!  w  rq2P                  V P                  4      R bK#  	  upppP                  4       # u upppi r}   )r~   r   r1   keysr   r   rA   rK   s   &   r7   r   Headers.keys   s;    EIZZPZMAE

4==)4/ZPUUWWPs   'Ac                   V ^8  d   QhRR/# )r0   r3   ztyping.ValuesView[str]r5   )r6   s   "r7   r8   r{      s     	$ 	$. 	$r9   c                	   / pV P                    F_  w  r#pVP                  V P                  4      pVP                  V P                  4      pWQ9   d   W;;,          R V 2,          uu&   K[  WaV&   Ka  	  VP                  4       # ), )r~   r   r1   valuesr   values_dictr   rA   rK   str_key	str_values   &      r7   r   Headers.values   sq    &(!ZZMAEjj/GT]]3I%$"YK(88$'0G$ ( !!##r9   c                   V ^8  d   QhRR/# )r0   r3   ztyping.ItemsView[str, str]r5   )r6   s   "r7   r8   r{      s     # #1 #r9   c                   / pV P                    F_  w  r#pVP                  V P                  4      pVP                  V P                  4      pWQ9   d   W;;,          RV 2,          uu&   K[  WaV&   Ka  	  VP                  4       # )z
Return `(key, value)` items of headers. Concatenate headers
into a single comma separated value when a key occurs multiple times.
r   )r~   r   r1   rn   r   s   &      r7   rn   Headers.items   ss    
 ')!ZZMAEjj/GT]]3I%$"YK(88$'0G$ (   ""r9   c                   V ^8  d   QhRR/# )r0   r3   zlist[tuple[str, str]]r5   )r6   s   "r7   r8   r{      s     	
 	
2 	
r9   c           	         V P                    UUUu. uF<  w  rpVP                  V P                  4      VP                  V P                  4      3NK>  	  uppp# u upppi )z
Return a list of `(key, value)` pairs of headers. Allow multiple
occurrences of the same key without concatenating into a single
comma separated value.
)r~   r   r1   r   s   &   r7   multi_itemsHeaders.multi_items   sP     "&
!+ ZZ&T]](CD!+
 	
 
s   AAc               $    V ^8  d   QhRRRRRR/# )r0   rA   r2   default
typing.Anyr3   r5   )r6   s   "r7   r8   r{      s!      s Z : r9   c                :     W,          #   \          d    Tu # i ; i)zp
Return a header value. If multiple occurrences of the header occur
then concatenate them together with commas.
)KeyError)r   rA   r   s   &&&r7   getHeaders.get   s#    
	9 	N	s   
 c               $    V ^8  d   QhRRRRRR/# )r0   rA   r2   split_commasr4   r3   z	list[str]r5   )r6   s   "r7   r8   r{      s!      C t 	 r9   c                   VP                  4       P                  V P                  4      pV P                   UUUu. uF8  w  rEpVP                  4       V8X  g   K  VP	                  V P                  4      NK:  	  ppppV'       g   V# . pV F@  p	TP                  V	P                  R4       U
u. uF  qP                  4       NK  	  up
4       KB  	  V# u upppi u up
i )z
Return a list of all header values for a given key.
If `split_commas=True` is passed, then any comma separated header
values are split into multiple return strings.
,)rq   rH   r1   r~   r   extendrc   ra   )r   rA   r   get_header_keyr   item_key
item_valuer   split_valuesrK   items   &&&        r7   get_listHeaders.get_list   s     ++DMM: ,0::
+5'Z~~>1 -Jdmm,+5 	 
 ME%++c:J K:J$:J KL 
 !Ls   CC+C
c                    V ^8  d   QhRRRR/# )r0   rx   ry   r3   rz   r5   )r6   s   "r7   r8   r{     s     ) )0 )D )r9   c                	    \        V4      pVP                  4        F  pW 9   g   K  V P                  V4       K  	  V P                  P	                  VP                  4       R # r}   )r+   r   popr~   r   )r   rx   rA   s   && r7   updateHeaders.update  sD    '"<<>C{ " 	

'--(r9   c                   V ^8  d   QhRR/# )r0   r3   r+   r5   )r6   s   "r7   r8   r{     s     5 5g 5r9   c                	.    \        W P                  R 7      # )r>   )r+   r1   r   s   &r7   copyHeaders.copy  s    tmm44r9   c                    V ^8  d   QhRRRR/# )r0   rA   r2   r3   r5   )r6   s   "r7   r8   r{     s      s s r9   c                0   VP                  4       P                  V P                  4      pV P                   UUUu. uF)  w  r4pWB8X  g   K  VP	                  V P                  4      NK+  	  ppppV'       d   RP                  V4      # \        V4      hu upppi )z
Return a single header value.

If there are multiple headers with the same key, then we concatenate
them with commas. See: https://tools.ietf.org/html/rfc7230#section-3.2.2
r   )rq   rH   r1   r~   r   joinr   )r   rA   normalized_keyr   
header_keyheader_valuern   s   &&     r7   __getitem__Headers.__getitem__  s     ++DMM: 04zz
/9+|+ /L./9 	 
 99U##sm
s   B
Bc               $    V ^8  d   QhRRRRRR/# r0   rA   r2   rK   r3   rz   r5   )r6   s   "r7   r8   r{   0  s&     @ @s @3 @4 @r9   c                   TP                  V P                  ;'       g    R4      pTP                  V P                  ;'       g    R4      pVP                  4       p\        V P                  4       UUUu. uF  w  pw  rxpW8X  g   K  VNK  	  p	ppp\        V	R,          4       F  pV P                  V K  	  V	'       d   V	^ ,          pW5V3V P                  V&   R# V P                  P                  W5V34       R# u upppi )z[
Set the header `key` to `value`, removing any duplicate entries.
Retains insertion order.
r   :   NNN)rH   r   rq   	enumerater~   reversedre   )
r   rA   rK   set_key	set_value
lookup_keyidxr   r   found_indexess
   &&&       r7   __setitem__Headers.__setitem__0  s    
 **T^^66w7LL!:!:7;	]]_
 *34::)>
)>%%a1% C)> 	 
 M"-.C

3 / "C&I>DJJsOJJwI>?
s   4C:C:c                    V ^8  d   QhRRRR/# )r0   rA   r2   r3   rz   r5   )r6   s   "r7   r8   r{   H  s        s  t  r9   c                T   VP                  4       P                  V P                  4      p\        V P                  4       UUUu. uF"  w  pw  rEpVP                  4       V8X  g   K   VNK$  	  ppppV'       g   \        V4      h\        V4       F  pV P                  V K  	  R# u upppi )z
Remove the header `key`.
N)rq   rH   r1   r   r~   r   r   )r   rA   del_keyr   r   r   pop_indexess   &&     r7   __delitem__Headers.__delitem__H  s     ))+$$T]]3 *34::)>
)>%%a1~~7* C)> 	 
 3-K(C

3 )
s   B#%B#c                    V ^8  d   QhRRRR/# )r0   rA   r   r3   r4   r5   )r6   s   "r7   r8   r{   Z  s     ? ?
 ?t ?r9   c                	    VP                  4       P                  V P                  4      pY P                   UUu. uF  w  r1q1NK	  	  upp9   # u uppi r}   )rq   rH   r1   r~   )r   rA   r   r   s   &&  r7   __contains__Headers.__contains__Z  s?    YY[''6
::>:iaac:>>>>s   Ac                   V ^8  d   QhRR/# )r0   r3   ztyping.Iterator[typing.Any]r5   )r6   s   "r7   r8   r{   ^  s     ! !5 !r9   c                	4    \        V P                  4       4      # r}   )iterr   r   s   &r7   __iter__Headers.__iter__^  s    DIIK  r9   c                   V ^8  d   QhRR/# r0   r3   intr5   )r6   s   "r7   r8   r{   a  s       r9   c                	,    \        V P                  4      # r}   )lenr~   r   s   &r7   __len__Headers.__len__a  s    4::r9   c                    V ^8  d   QhRRRR/# )r0   otherr   r3   r4   r5   )r6   s   "r7   r8   r{   d  s     7 7J 74 7r9   c                	    \        V4      pT P                   UUUu. uF	  w  r4qTT3NK  	  ppppTP                   UUUu. uF	  w  r4qTT3NK  	  pppp\        T4      \        T4      8H  #   \         d     R # i ; iu upppi u upppi F)r+   rd   r~   sorted)r   r   other_headersr   rA   rK   	self_list
other_lists   &&      r7   __eq__Headers.__eq__d  s    	#ENM 8<zzBzmae5\z	B8E8K8KL8K}quEl8K
Li F:$666  		 CLs   A* A< B*A98A9c                   V ^8  d   QhRR/# r   r5   )r6   s   "r7   r8   r{   n  s     : :# :r9   c                	8   V P                   P                  pR pV P                  R8w  d   RV P                  : 2p\        \	        V P                  4       4      4      p\        V4      p\        V4      \        V4      8H  pV'       d   V RV: V R2# V RV: V R2# )r^   rF   z, encoding=())	__class____name__r1   r   ru   r   dictr   )r   
class_nameencoding_stras_listas_dictno_duplicate_keyss   &     r7   __repr__Headers.__repr__n  s    ^^,,
==G#((9:L3D4D4D4FGHw-LCL8 \7+l^1==Qwk,q99r9   )r   r~   NNr}   r   )r  
__module____qualname____firstlineno____doc__r   propertyr1   setterr   r   r   rn   r   r   r   r   r   r   r   r   r   r   r   r   r
  __static_attributes__r5   r9   r7   r+   r+      s    ",  0 __  F FX	$#	
,)5(@0 $?!7: :r9   c                      ] tR tRtRRRRRRRRRRRRR	RR
RRR/	R R lltR R lt]R R l4       tR R ltR R lt	R R lt
R R ltR R ltRtR# )r,   i~  ri   Nrx   cookiescontentdatafilesjsonstream
extensionsc               H    V ^8  d   QhRRRRRRRRR	R
RRRRRRRRRRRRRR/# )r0   methodr2   r_   z	URL | strri   zQueryParamTypes | Nonerx   ry   r  CookieTypes | Noner  zRequestContent | Noner  zRequestData | Noner  zRequestFiles | Noner  ztyping.Any | Noner  'SyncByteStream | AsyncByteStream | Noner  zRequestExtensions | Noner3   rz   r5   )r6   s   "r7   r8   Request.__annotate__  s     8! 8!8! 8!
 '8! $8! $8! '8! !8! #8!  8! 88! -8! 
8!r9   c       	        	^   VP                  4       V n        Vf   \        V4      M\        W#R7      V n        \	        V4      V n        Vf   / M
\        V4      V n        V'       d   \        V4      P                  V 4       V
f   V P
                  P                  R4      p\        TTTT	\        V'       d&   VP                  V P
                  P                  4      MR R7      R7      w  rJV P                  V4       Wn        \#        V
\$        4      '       d   V P'                  4        R # R # Wn        R # )N)ri   rS   )rQ   )r  r  r  r  boundary)upperr  r'   r_   r+   rx   r  r  r*   set_cookie_headerr   r	   r   rH   r1   _preparer  rG   r   read)r   r  r_   ri   rx   r  r  r  r  r  r  r  rQ   s   &&&$$$$$$$$$ r7   r   Request.__init__  s     lln%~3s83s3Jw' * 2"Z8HG..t4>'+||'7'7'GL,A# ".!4!4T\\5J5J!K
OG MM'" K&*--		 ." !Kr9   c                    V ^8  d   QhRRRR/# r0   default_headerszdict[str, str]r3   rz   r5   )r6   s   "r7   r8   r     s     @ @ @4 @r9   c                	j   VP                  4        FH  w  r#VP                  4       R 8X  d   RV P                  9   d   K-  V P                  P                  W#4       KJ  	  . pRV P                  9   pRV P                  9   ;'       g    RV P                  9   pV'       gD   V P                  P
                  '       d(   VP                  RV P                  P                  34       V'       g#   V P                  R9   d   VP                  R4       \        W@P                  P                  ,           4      V n        R# )transfer-encodingzContent-LengthHostzTransfer-Encodings   HostN)POSTPUTPATCH)s   Content-Length   0)rn   rq   rx   
setdefaultr_   hostre   netlocr  r+   r   )r   r*  rA   rK   auto_headershas_hosthas_content_lengths   &&     r7   r%  Request._prepare  s    )//1JCyy{116F$,,6VLL##C/	 2 35T\\),SS0Ct||0S 	 DHHMMM$((// :;!dkk5M&M 9:|ll.>.>>?r9   c                   V ^8  d   QhRR/# r0   r3   rD   r5   )r6   s   "r7   r8   r            r9   c                	R    \        V R 4      '       g   \        4       hV P                  # _content)hasattrr   r>  r   s   &r7   r  Request.content  s"    tZ(( ""}}r9   c                   V ^8  d   QhRR/# r:  r5   )r6   s   "r7   r8   r     s      e r9   c                J   \        V R4      '       g   \        V P                  \        P                  4      '       g   Q hRP                  V P                  4      V n        \        V P                  \        4      '       g   \        V P                  4      V n        V P                  # )&
Read and return the request content.
r>  r9   )r?  rG   r  typingIterabler   r>  r   r   s   &r7   r&  Request.read  sm     tZ((dkk6??;;;;HHT[[1DMdkk:66 )7}}r9   c                   V ^8  d   QhRR/# r:  r5   )r6   s   "r7   r8   r     s      U r9   c                  "   \        V R4      '       gT   \        V P                  \        P                  4      '       g   Q hRP                  V P                   Uu. u Rj  xL
 qNK  V P                  #  LDMu upi up4      T n        \        T P                  \        4      '       d   KC  \        T P                  4      T n        L^5i)rC  r>  r9   N)r?  rG   r  rD  AsyncIterabler   r>  r   r   parts   & r7   areadRequest.aread  s      tZ((dkk6+?+?@@@@HHT[[%I%ITd }} &J%IJDMdkk:66 )7sB   ACA8A6
 A4!A6
$A8(C4A6
6A871C+Cc                   V ^8  d   QhRR/# r   r5   )r6   s   "r7   r8   r     s     ; ;# ;r9   c                	    V P                   P                  p\        V P                  4      pR V RV P                  : RV: R2# )<r   r   z)>)r  r  r2   r_   r  )r   r  r_   s   &  r7   r
  Request.__repr__  s=    ^^,,
$((m:,abr::r9   c                   V ^8  d   QhRR/# r0   r3   dict[str, typing.Any]r5   )r6   s   "r7   r8   r          
 
3 
r9   c                	|    V P                   P                  4        UUu/ uF  w  rVR9  g   K  WbK  	  upp# u uppi )r  )r  r  __dict__rn   r   namerK   s   &  r7   __getstate__Request.__getstate__  sE      $}}224
433 DK4
 	
 
   88c                    V ^8  d   QhRRRR/# r0   staterT  r3   rz   r5   )r6   s   "r7   r8   r     s     ) )"7 )D )r9   c                	|    VP                  4        F  w  r#\        WV4       K  	  / V n        \        4       V n        R # r}   )rn   setattrr  r   r  r   r`  rZ  rK   s   &&  r7   __setstate__Request.__setstate__  s/     ;;=KDD& )&(r9   )r>  r  rx   r  r  r_   )r  r  r  r  r   r%  r  r  r&  rL  r
  r[  rd  r  r5   r9   r7   r,   r,   ~  s    8!
 *.8! '+8! '+8! *.8! $(8! &*8! #'8! ;?8! 048!t@*  
;

) )r9   c                  j   ] tR tRtRRRRRRRRRRRRR	RR
RRRRR/
R R lltR R lt]R R l4       t]P                  R R l4       t]R R l4       t	]	P                  R R l4       t	]R R l4       t
]R R l4       t]R R l4       t]R  R! l4       t]R" R# l4       t]R$ R% l4       t]P                  R& R' l4       t]R( R) l4       tR* R+ lt]R, R- l4       t]R. R/ l4       t]R0 R1 l4       t]R2 R3 l4       t]R4 R5 l4       t]R6 R7 l4       t]R8 R9 l4       tR: R; ltR< R= lt]R> R? l4       t]R@ RA l4       t]RB RC l4       tRD RE ltRF RG ltRH RI lt RJ RK lt!RcRL RM llt"RcRN RO llt#RP RQ lt$RcRR RS llt%RT RU lt&RV RW lt'RcRX RY llt(RcRZ R[ llt)R\ R] lt*RcR^ R_ llt+R` Ra lt,Rbt-R# )dr-   i  rx   Nr  texthtmlr  r  requestr  historydefault_encodingr   c               H    V ^8  d   QhRRRRRRRRR	RR
RRRRRRRRRRRRR/# )r0   status_coder   rx   ry   r  zResponseContent | Nonerg  rC   rh  r  r   r  r  ri  zRequest | Noner  zResponseExtensions | Nonerj  zlist[Response] | Nonerk  z#str | typing.Callable[[bytes], str]r3   rz   r5   )r6   s   "r7   r8   Response.__annotate__  s     5' 5'5' $	5'
 (5' 5' 5' 5' 85'  5' .5' '5' >5' 
5'r9   c       
        	   Wn         \        V4      V n        Wn        R V n        V	f   / M
\        V	4      V n        V
f   . M
\        V
4      V n        RV n	        RV n
        Wn        VfM   \        W4WV4      w  r'V P                  V4       Wpn        \        V\         4      '       d   V P#                  4        MWpn        ^ V n        R # )NF)rm  r+   rx   _requestnext_requestr  r  r   rj  	is_closedis_stream_consumedrk  r
   r%  r  rG   r   r&  _num_bytes_downloaded)r   rm  rx   r  rg  rh  r  r  ri  r  rj  rk  s   &&$$$$$$$$$$r7   r   Response.__init__  s     'w'(/ -1 * 2"Z8H$_r$w-"' 0>-gTHOGMM'" K&*--		 !K%&"r9   c                    V ^8  d   QhRRRR/# r)  r5   )r6   s   "r7   r8   rn  ;  s     0 0 04 0r9   c                	    VP                  4        FH  w  r#VP                  4       R 8X  d   RV P                  9   d   K-  V P                  P                  W#4       KJ  	  R# )r,  zcontent-lengthN)rn   rq   rx   r2  )r   r*  rA   rK   s   &&  r7   r%  Response._prepare;  sG    )//1JCyy{116F$,,6VLL##C/	 2r9   c                   V ^8  d   QhRR/# )r0   r3   datetime.timedeltar5   )r6   s   "r7   r8   rn  C  s     
 
+ 
r9   c                T    \        V R4      '       g   \        R4      hV P                  # )zM
Returns the time taken for the complete request/response
cycle to complete.
_elapsedzK'.elapsed' may only be accessed after the response has been read or closed.)r?  RuntimeErrorr|  r   s   &r7   elapsedResponse.elapsedB  s/     tZ((+  }}r9   c                    V ^8  d   QhRRRR/# )r0   r~  rz  r3   rz   r5   )r6   s   "r7   r8   rn  P  s        1  d  r9   c                	    Wn         R # r}   )r|  )r   r~  s   &&r7   r~  r  O  s    r9   c                   V ^8  d   QhRR/# )r0   r3   r,   r5   )r6   s   "r7   r8   rn  T  s       r9   c                L    V P                   f   \        R4      hV P                   # )zB
Returns the request instance associated to the current response.
z7The request instance has not been set on this response.)rp  r}  r   s   &r7   ri  Response.requestS  s*    
 == I  }}r9   c                    V ^8  d   QhRRRR/# )r0   rK   r,   r3   rz   r5   )r6   s   "r7   r8   rn  _  s      W  r9   c                	    Wn         R # r}   )rp  r   s   &&r7   ri  r  ^  s    r9   c                   V ^8  d   QhRR/# r   r5   )r6   s   "r7   r8   rn  c  s     A Ac Ar9   c                	t     V P                   R ,          pVP                  RRR7      #   \         d     R# i ; i)http_versionrF   ignoreerrorszHTTP/1.1)r  r   r   )r   r  s   & r7   r  Response.http_versionb  sB    	A"&//."AL  &&wx&@@  		s   ( 77c                   V ^8  d   QhRR/# r   r5   )r6   s   "r7   r8   rn  l  s     B Bs Br9   c                	     V P                   R ,          pVP                  RRR7      #   \         d$    \        P                  ! T P
                  4      u # i ; i)reason_phraserF   r  r  )r  r   r   r   get_reason_phraserm  )r   r  s   & r7   r  Response.reason_phrasek  sV    	B#'???#CM !'''AA  	=**4+;+;<<	=s   ( +AAc                   V ^8  d   QhRR/# )r0   r3   r'   r5   )r6   s   "r7   r8   rn  u  s        S  r9   c                .    V P                   P                  # )z1
Returns the URL for which the request was made.
)ri  r_   r   s   &r7   r_   Response.urlt  s    
 ||r9   c                   V ^8  d   QhRR/# r:  r5   )r6   s   "r7   r8   rn  |  r;  r9   c                	R    \        V R 4      '       g   \        4       hV P                  # r=  )r?  r   r>  r   s   &r7   r  Response.content{  s"    tZ((!##}}r9   c                   V ^8  d   QhRR/# r   r5   )r6   s   "r7   r8   rn    s      c r9   c                	J   \        V R 4      '       g   V P                  pV'       g   RV n        V P                  # \        V P                  ;'       g    RR7      pRP                  VP                  V P                  4      VP                  4       .4      V n        V P                  # )_textr^   r   r>   )r?  r  r  r   r1   r   r   flush)r   r  decoders   &  r7   rg  Response.text  sx    tW%%llG
 zz &t}}/G/GHWWgnnT\\&BGMMO%TU
zzr9   c                   V ^8  d   QhRR/# r0   r3   rC   r5   )r6   s   "r7   r8   rn    s      * r9   c                V   \        V R4      '       g   V P                  pVe   \        V4      '       g[   \        V P                  \
        4      '       d   V P                  pM-\        V R4      '       d   V P	                  V P                  4      pT;'       g    RV n        V P                  # )a  
Return an encoding to use for decoding the byte content into text.
The priority for determining this is given by...

* `.encoding = <>` has been set explicitly.
* The encoding as specified by the charset parameter in the Content-Type header.
* The encoding as determined by `default_encoding`, which may either be
  a string like "utf-8" indicating the encoding to use, or may be a callable
  which enables charset autodetection.
r   r>  r   )r?  charset_encodingr?   rG   rk  r2   r>  r   )r   r1   s   & r7   r1   Response.encoding  s     t[)),,H'9('C'Cd33S99#44HT:..#44T]]CH%00DN~~r9   c                    V ^8  d   QhRRRR/# r   r5   )r6   s   "r7   r8   rn    s      c d r9   c                L    \        V R4      '       d   \        R4      hWn        R# )z
Set the encoding to use for decoding the byte content into text.

If the `text` attribute has been accessed, attempting to set the
encoding will throw a ValueError.
r  z?Setting encoding after `text` has been accessed is not allowed.N)r?  rd   r   r   s   &&r7   r1   r    s(     4!!Q  r9   c                   V ^8  d   QhRR/# r  r5   )r6   s   "r7   r8   rn    s     9 9* 9r9   c                Z    V P                   P                  R4      pVf   R# \        V4      # )z?
Return the encoding, as specified by the Content-Type header.
zContent-TypeN)rx   r   rZ   )r   rQ   s   & r7   r  Response.charset_encoding  s,    
 ||''7*<88r9   c                   V ^8  d   QhRR/# )r0   r3   r   r5   )r6   s   "r7   r8   rn    s      n r9   c                   \        V R4      '       g   . pV P                  P                  RRR7      pV FE  pVP                  4       P	                  4       p \
        V,          pVP                  V! 4       4       KG  	  \        V4      ^8X  d   V^ ,          V n	        V P                  # \        V4      ^8  d   \        VR7      V n	        V P                  # \        4       V n	        V P                  #   \         d     K  i ; i)z
Returns a decoder instance which can be used to decode the raw byte
content, depending on the Content-Encoding used in the response.
_decoderzcontent-encodingT)r   )children)r?  rx   r   ra   rq   r   re   r   r   r  r   r   )r   decodersr   rK   decoder_clss   &    r7   _get_content_decoderResponse._get_content_decoder  s    
 tZ((-/H\\**+=D*QF++-"4U";KOOKM2	   8}! ( }} X" ,h ? }} !0 1}}   s   #C//C>=C>c                   V ^8  d   QhRR/# r0   r3   r4   r5   )r6   s   "r7   r8   rn    s     8 8$ 8r9   c                B    \         P                  ! V P                  4      # )zE
A property which is `True` for 1xx status codes, `False` otherwise.
)r   is_informationalrm  r   s   &r7   r  Response.is_informational  s    
 %%d&6&677r9   c                   V ^8  d   QhRR/# r  r5   )r6   s   "r7   r8   rn    s     2 2D 2r9   c                B    \         P                  ! V P                  4      # )zE
A property which is `True` for 2xx status codes, `False` otherwise.
)r   
is_successrm  r   s   &r7   r  Response.is_success  s    
  0 011r9   c                   V ^8  d   QhRR/# r  r5   )r6   s   "r7   r8   rn    s     	3 	3T 	3r9   c                B    \         P                  ! V P                  4      # )z
A property which is `True` for 3xx status codes, `False` otherwise.

Note that not all responses with a 3xx status code indicate a URL redirect.

Use `response.has_redirect_location` to determine responses with a properly
formed URL redirection.
)r   is_redirectrm  r   s   &r7   r  Response.is_redirect  s       !1!122r9   c                   V ^8  d   QhRR/# r  r5   )r6   s   "r7   r8   rn         7 7 7r9   c                B    \         P                  ! V P                  4      # )zE
A property which is `True` for 4xx status codes, `False` otherwise.
)r   is_client_errorrm  r   s   &r7   r  Response.is_client_error      
 $$T%5%566r9   c                   V ^8  d   QhRR/# r  r5   )r6   s   "r7   r8   rn    r  r9   c                B    \         P                  ! V P                  4      # )zE
A property which is `True` for 5xx status codes, `False` otherwise.
)r   is_server_errorrm  r   s   &r7   r  Response.is_server_error  r  r9   c                   V ^8  d   QhRR/# r  r5   )r6   s   "r7   r8   rn    s     0 0$ 0r9   c                B    \         P                  ! V P                  4      # )zM
A property which is `True` for 4xx and 5xx status codes, `False` otherwise.
)r   is_errorrm  r   s   &r7   r  Response.is_error  s    
 ~~d..//r9   c                   V ^8  d   QhRR/# r  r5   )r6   s   "r7   r8   rn    s     
 
t 
r9   c                    V P                   \        P                  \        P                  \        P                  \        P
                  \        P                  39   ;'       d    RV P                  9   # )z[
Returns True for 3xx responses with a properly formed URL redirection,
`False` otherwise.
Location)rm  r   MOVED_PERMANENTLYFOUND	SEE_OTHERTEMPORARY_REDIRECTPERMANENT_REDIRECTrx   r   s   &r7   has_redirect_locationResponse.has_redirect_location  s_      ''(((( + + dll*	
r9   c                   V ^8  d   QhRR/# )r0   r3   r-   r5   )r6   s   "r7   r8   rn    s     #G #G( #Gr9   c                *   V P                   pVf   \        R4      hV P                  '       d   V # V P                  '       d   RpMRpV P                  ^d,          p^R^R^R^R/pVP                  VR4      pVP                  WR	7      p\        W!V R
7      h)z.
Raise the `HTTPStatusError` if one occurred.
zYCannot call `raise_for_status` as the request instance has not been set on this response.z{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'
Redirect location: '{0.headers[location]}'
For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}z{error_type} '{0.status_code} {0.reason_phrase}' for url '{0.url}'
For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/{0.status_code}zInformational responsezRedirect responsezClient errorzServer errorzInvalid status code)
error_type)ri  response)rp  r}  r  r  rm  r   r6   r   )r   ri  rV   status_classerror_typesr  s   &     r7   raise_for_statusResponse.raise_for_status  s     --?> 
 ???K%%%w w 
 ''3.'"~~	
 !__\3HI
...=gFFr9   c                    V ^8  d   QhRRRR/# )r0   kwargsr   r3   r5   )r6   s   "r7   r8   rn  ?  s     5 5Z 5J 5r9   c                	D    \         P                  ! V P                  3/ VB # r}   )jsonlibloadsr  )r   r  s   &,r7   r  Response.json?  s    }}T\\4V44r9   c                   V ^8  d   QhRR/# )r0   r3   r*   r5   )r6   s   "r7   r8   rn  C  s       r9   c                	    \        V R 4      '       g+   \        4       V n        V P                  P                  V 4       V P                  # )_cookies)r?  r*   r  extract_cookiesr   s   &r7   r  Response.cookiesB  s4    tZ((#IDMMM))$/}}r9   c                   V ^8  d   QhRR/# )r0   r3   z dict[str | None, dict[str, str]]r5   )r6   s   "r7   r8   rn  J  s     
 
7 
r9   c                    V P                   P                  R4      pVf   / # \        V4       Uu/ uF.  pVP                  R4      ;'       g    VP                  R4      VbK0  	  up# u upi )z9
Returns the parsed header links of the response, if any
rj   relr_   )rx   r   rl   )r   headerrj   s   &  r7   rf   Response.linksI  sk    
 !!&)>I ,F3
3 XXe_//$63
 	
 
s   A&A&c                   V ^8  d   QhRR/# r   r5   )r6   s   "r7   r8   rn  X  s     * *c *r9   c                	    V P                   # r}   )rt  r   s   &r7   num_bytes_downloadedResponse.num_bytes_downloadedW  s    )))r9   c                   V ^8  d   QhRR/# r   r5   )r6   s   "r7   r8   rn  [  s     G G# Gr9   c                	<    R V P                    RV P                   R2# )z<Response [ ]>)rm  r  r   s   &r7   r
  Response.__repr__[  s%    T--.a0B0B/C2FFr9   c                   V ^8  d   QhRR/# rS  r5   )r6   s   "r7   r8   rn  ^  rU  r9   c                	|    V P                   P                  4        UUu/ uF  w  rVR9  g   K  WbK  	  upp# u uppi )r  )r  r  rr  r  rW  rY  s   &  r7   r[  Response.__getstate__^  sE      $}}224
4LL DK4
 	
 
r]  c                    V ^8  d   QhRRRR/# r_  r5   )r6   s   "r7   r8   rn  e  s     ) )"7 )D )r9   c                	    VP                  4        F  w  r#\        WV4       K  	  R V n        / V n        \	        4       V n        R# )TN)rn   rb  rr  r  r   r  rc  s   &&  r7   rd  Response.__setstate__e  s6     ;;=KDD& )&(r9   c                   V ^8  d   QhRR/# r:  r5   )r6   s   "r7   r8   rn  l  s      e r9   c                    \        V R4      '       g%   RP                  V P                  4       4      V n        V P                  # )'
Read and return the response content.
r>  r9   )r?  r   
iter_bytesr>  r   s   &r7   r&  Response.readl  s2     tZ((HHT__%67DM}}r9   c                    V ^8  d   QhRRRR/# r0   
chunk_size
int | Noner3   ztyping.Iterator[bytes]r5   )r6   s   "r7   r8   rn  t  s        Z  ;Q  r9   c              #    "   \        V R4      '       df   Vf   \        V P                  4      MTp\        ^ \        V P                  4      \	        V^4      4       F  pV P                  W"V,            x  K  	  R# V P                  4       p\        VR7      p\        V P                  R7      ;_uu_ 4        V P                  4        F0  pVP                  V4      pVP                  V4       F  pVx  K	  	  K2  	  VP                  4       pVP                  V4       F  pVx  K	  	  VP                  4        F  pVx  K	  	  RRR4       R#   + '       g   i     R# ; i5iz
A byte-iterator over the decoded response content.
This allows us to handle gzip, deflate, brotli, and zstd encoded responses.
r>  Nr  ri  )r?  r   r>  rangemaxr  r   r   rp  iter_rawr   r  r   r  ir  chunker	raw_bytesdecodedchunks   &&      r7   r   Response.iter_bytest  s    
 4$$/9/AT]]+zJ1c$--0#j!2DEmmAJ77 F //1G!Z8G 77!%I%nnY7G!(!8# "9 "1 "--/$^^G4EK 5$]]_EK - 8777s   B2E4BE
 
E
E		Ec                    V ^8  d   QhRRRR/# )r0   r  r  r3   typing.Iterator[str]r5   )r6   s   "r7   r8   rn    s      J :N r9   c              #    "   \        V P                  ;'       g    RR7      p\        VR7      p\        V P                  R7      ;_uu_ 4        V P                  4        F0  pVP                  V4      pVP                  V4       F  pVx  K	  	  K2  	  VP                  4       pVP                  V4       F  pVx  K	  	  VP                  4        F  pVx  K	  	  RRR4       R#   + '       g   i     R# ; i5iz
A str-iterator over the decoded response content
that handles both gzip, deflate, etc but also detects the content's
string encoding.
r   r>   r  r	  N)r   r1   r   r   rp  r   r   r  r   r  r  r  byte_contenttext_contentr  s   &&     r7   	iter_textResponse.iter_text  s      t}}'?'?@4T]]33 $ 1&~~l;$^^L9EK : !2 #==?L 5 6  ) 4333s   AC7BC#
C7#C4	.	C7c                   V ^8  d   QhRR/# r0   r3   r  r5   )r6   s   "r7   r8   rn    s      0 r9   c              #  	4  "   \        4       p\        V P                  R 7      ;_uu_ 4        V P                  4        F  pVP	                  V4       F  pVx  K	  	  K!  	  VP                  4        F  pVx  K	  	  RRR4       R#   + '       g   i     R# ; i5ir	  N)r   r   rp  r  r   r  r   r  rg  lines   &   r7   
iter_linesResponse.iter_lines  si     -T]]33(#NN40DJ 1 )  
 (	 4333s   )BAB:
BB		Bc                    V ^8  d   QhRRRR/# r  r5   )r6   s   "r7   r8   rn    s      : 9O r9   c              #  t  "   V P                   '       d   \        4       hV P                  '       d   \        4       h\	        V P
                  \        4      '       g   \        R4      hRV n         ^ V n        \        VR7      p\        V P                  R7      ;_uu_ 4        V P
                   FA  pV ;P                  \        V4      ,          un        VP                  V4       F  pVx  K	  	  KC  	  RRR4       VP                  4        F  pVx  K	  	  V P                  4        R#   + '       g   i     L=; i5i)0
A byte-iterator over the raw response content.
z5Attempted to call a sync iterator on an async stream.Tr  r	  N)rs  r   rr  r   rG   r  r&   r}  rt  r   r   rp  r   r   r  closer   r  r  raw_stream_bytesr  s   &&   r7   r  Response.iter_raw  s      """ "">>>. $++~66VWW"&%&"4T]]33$(KK **c2B.CC*$^^,<=EK > %0 4 ]]_EK % 	

 43s$   .D8A-D8AD%05D8%D5	0D8c                   V ^8  d   QhRR/# r0   r3   rz   r5   )r6   s   "r7   r8   rn    s     $ $t $r9   c                <   \        V P                  \        4      '       g   \        R4      hV P                  '       gK   RV n        \        V P                  R7      ;_uu_ 4        V P                  P                  4        RRR4       R# R#   + '       g   i     R# ; i)q
Close the response and release the connection.
Automatically called if the response body is read to completion.
z3Attempted to call an sync close on an async stream.Tr	  N)rG   r  r&   r}  rr  r   rp  r(  r   s   &r7   r(  Response.close  sg    
 $++~66TUU~~~!DN 77!!# 87 777s   #B

B	c                   V ^8  d   QhRR/# r:  r5   )r6   s   "r7   r8   rn    s      U r9   c                   "   \        V R4      '       g,   RP                  V P                  4        Uu. u Rj  xL
 qNK  V P                  #  LDMu upi up4      T n        L"5i)r  r>  r9   N)r?  r   aiter_bytesr>  rJ  s   & r7   rL  Response.aread  sK      tZ((HHT=M=M=O%P%PTd}} &Q%PQDMs6   0A"AA
AA
A A"A
AA"c                    V ^8  d   QhRRRR/# r0   r  r  r3   ztyping.AsyncIterator[bytes]r5   )r6   s   "r7   r8   rn    s        $ 	$ r9   c                 "   \        V R4      '       dg   Vf   \        V P                  4      MTp\        ^ \        V P                  4      \	        V^4      4       F  pV P                  W"V,            5x  K  	  R# V P                  4       p\        VR7      p\        V P                  R7      ;_uu_ 4        V P                  4         Rj  xL
  pVP                  V4      pVP                  V4       F  pV5x  K
  	  K:   L5D6TP                  4       pTP                  T4       F  pT5x  K
  	  TP                  4        F  pT5x  K
  	  RRR4       R#   + '       g   i     R# ; i5ir  )r?  r   r>  r
  r  r  r   r   rp  	aiter_rawr   r  r  s   &&      r7   r3  Response.aiter_bytes  s     4$$/9/AT]]+zJ1c$--0#j!2DEmmAJ77 F //1G!Z8G 77'+~~'7 $ $)%nnY7G!(!8# "9$'7 "--/$^^G4EK 5$]]_EK - 8777sC   B3E*5ED
D 
D2E DA
E
E*E'	!	E*c                    V ^8  d   QhRRRR/# )r0   r  r  r3   typing.AsyncIterator[str]r5   )r6   s   "r7   r8   rn    s      $	"r9   c                 "   \        V P                  ;'       g    RR7      p\        VR7      p\        V P                  R7      ;_uu_ 4        V P                  4         Rj  xL
  pVP                  V4      pVP                  V4       F  pV5x  K
  	  K:   L5D6TP                  4       pTP                  T4       F  pT5x  K
  	  TP                  4        F  pT5x  K
  	  RRR4       R#   + '       g   i     R# ; i5ir  )r   r1   r   r   rp  r3  r   r  r  s   &&     r7   
aiter_textResponse.aiter_text  s      t}}'?'?@4T]]33&*&6&6&8    l&~~l;$^^L9EK : &8 #==?L 5 6  ) 4333sC   ADC.B"B
#B&2C.BA
C.$
D.C?	9	Dc                   V ^8  d   QhRR/# )r0   r3   r;  r5   )r6   s   "r7   r8   rn    s      #< r9   c               	H  "   \        4       p\        V P                  R 7      ;_uu_ 4        V P                  4         Rj  xL
  pVP	                  V4       F  pV5x  K
  	  K)   L$D%TP                  4        F  pT5x  K
  	  RRR4       R#   + '       g   i     R# ; i5ir   )r   r   rp  r=  r   r  r!  s   &   r7   aiter_linesResponse.aiter_lines  sv     -T]]33"oo/  d#NN40DJ 1/  
 (	 4333s?   )B"BA' A%
A'!B%A''B
B"B		B"c                    V ^8  d   QhRRRR/# r6  r5   )r6   s   "r7   r8   rn    s      $	$r9   c                 "   V P                   '       d   \        4       hV P                  '       d   \        4       h\	        V P
                  \        4      '       g   \        R4      hRV n         ^ V n        \        VR7      p\        V P                  R7      ;_uu_ 4        V P
                    Rj  xL
  pV ;P                  \        V4      ,          un        VP                  V4       F  pV5x  K
  	  KK   LFDG RRR4       M  + '       g   i     M; iTP                  4        F  pT5x  K
  	  T P                  4       G Rj  xL 
  R# 5i)r'  z6Attempted to call an async iterator on an sync stream.Tr  r	  N)rs  r   rr  r   rG   r  r   r}  rt  r   r   rp  r   r   r  acloser)  s   &&   r7   r8  Response.aiter_raw  s      """ "">>>. $++77WXX"&%&"4T]]33*.++    &**c2B.CC*$^^,<=EK > + 4333 ]]_EK % kkmsT   .EA-ED+C8/C6
0C83AD6C88D:	ED	7EEEc                   V ^8  d   QhRR/# r-  r5   )r6   s   "r7   r8   rn  )  s     + +d +r9   c                X  "   \        V P                  \        4      '       g   \        R4      hV P                  '       gS   RV n        \        V P                  R7      ;_uu_ 4        V P                  P                  4       G Rj  xL
  RRR4       R# R#  L  + '       g   i     R# ; i5i)r/  z3Attempted to call an async close on an sync stream.Tr	  N)rG   r  r   r}  rr  r   rp  rE  r   s   &r7   rE  Response.aclose)  sv     
 $++77TUU~~~!DN 77kk((*** 87  + 877s5   =B* %B*%BBBB*BB'	!	B*)r>  r  r  r|  r   rt  rp  r  rk  r  rx   rj  rr  rs  rq  rm  r  r}   ).r  r  r  r  r   r%  r  r~  r  ri  r  r  r_   r  rg  r1   r  r  r  r  r  r  r  r  r  r  r  r  rf   r  r
  r[  rd  r&  r   r  r#  r  r(  rL  r3  r=  rA  r8  rE  r  r5   r9   r7   r-   r-     s   5' '+	5'
 +/5'  5'  5'  5' ;?5' #'5' 155' *.5' AH5'n0 
 
 ^^      ^^  A A B B      
    * __  9 92 8 8 2 2 	3 	3 7 7 7 7 0 0 
 
,#GJ5   
 
 * *G
) .&4$ 2*8+ +r9   c                  8   ] tR tRtRtR'R R lltR R ltR R	 ltR(R
 R lltR)R R llt	R*R R llt
R*R R lltR'R R lltR R ltR R ltR R ltR R ltR R ltR R ltR  R! lt ! R" R#]P*                  P,                  4      t ! R$ R%4      tR&tR# )+r*   i7  z%
HTTP Cookies, as a mutable mapping.
Nc                    V ^8  d   QhRRRR/# r0   r  r  r3   rz   r5   )r6   s   "r7   r8   Cookies.__annotate__<  s       2 d r9   c                	   Ve   \        V\        4      '       dT   \        4       V n        \        V\        4      '       d-   VP	                  4        F  w  r#V P                  W#4       K  	  R # R # \        V\        4      '       d.   \        4       V n        V F  w  r#V P                  W#4       K  	  R # \        V\        4      '       d@   \        4       V n        VP                   F  pV P                  P                  V4       K   	  R # Wn        R # r}   )	rG   r  r   jarrn   setr   r*   
set_cookie)r   r  rA   rK   cookies   &&   r7   r   Cookies.__init__<  s    ?j$77 {DH'4((")--/JCHHS( #2 ) && {DH%
$ &)) {DH!++##F+ & Hr9   c                    V ^8  d   QhRRRR/# r0   r  r-   r3   rz   r5   )r6   s   "r7   r8   rM  M  s     B B BT Br9   c                    V P                  V4      pV P                  VP                  4      pV P                  P	                  W#4       R# )z?
Loads any cookies based on the response `Set-Cookie` headers.
N)_CookieCompatResponse_CookieCompatRequestri  rO  r  )r   r  urllib_responseurllib_requests   &&  r7   r  Cookies.extract_cookiesM  s<     44X>2283C3CD  Ar9   c                    V ^8  d   QhRRRR/# r0   ri  r,   r3   rz   r5   )r6   s   "r7   r8   rM  V  s     3 3 3T 3r9   c                ^    V P                  V4      pV P                  P                  V4       R# )z=
Sets an appropriate 'Cookie:' HTTP header on the `Request`.
N)rX  rO  add_cookie_header)r   ri  rZ  s   && r7   r$  Cookies.set_cookie_headerV  s&     227;"">2r9   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )r0   rZ  r2   rK   domainpathr3   rz   r5   )r6   s   "r7   r8   rM  ]  s/     $ $ $C $ $ $t $r9   c                   / R^ bRVbRVbRRbRRbRVbR	\        V4      bR
VP                  R4      bRVbR\        V4      bRRbRRbRRbRRbRRbRRR/bRRbp\        R/ VB pV P                  P	                  V4       R# )zE
Set a cookie value by name. May optionally include domain and path.
versionrZ  rK   portNport_specifiedFrb  domain_specifieddomain_initial_dot.rc  path_specifiedsecureexpiresdiscardTcommentcomment_urlrestHttpOnlyrfc2109r5   )r4   
startswithr   rO  rQ  )r   rZ  rK   rb  rc  r  rR  s   &&&&&  r7   rP  Cookies.set]  s
   
q
D
 U
 D	

 e
 f
 V
 !&"3"3C"8
 D
 d4j
 e
 t
 t
 t
 4
  Z&!
" u#
& !&!F#r9   c          
     ,    V ^8  d   QhRRRRRRRRRR/# )r0   rZ  r2   r   rC   rb  rc  r3   r5   )r6   s   "r7   r8   rM  w  s<        	
  
r9   c                    RpV P                    Fd  pVP                  V8X  g   K  Ve   VP                  V8X  g   K-  Ve   VP                  V8X  g   KD  Ve   RV 2p\	        V4      hVP
                  pKf  	  Vf   V# V# )zt
Get a cookie by name. May optionally include domain and path
in order to specify exactly which cookie to retrieve.
Nz!Multiple cookies exist with name=)rO  rZ  rb  rc  r   rK   )r   rZ  r   rb  rc  rK   rR  rV   s   &&&&&   r7   r   Cookies.getw  sz     hhF{{d">V]]f%<|v{{d': ,(I$&PG"0"99 &  =Nr9   c               (    V ^8  d   QhRRRRRRRR/# )r0   rZ  r2   rb  rC   rc  r3   rz   r5   )r6   s   "r7   r8   rM    s8     D DD D 	D
 
Dr9   c                   Ve!   Ve   V P                   P                  W#V4      # V P                    Uu. uFF  pVP                  V8X  g   K  Ve   VP                  V8X  g   K-  Ve   VP                  V8X  g   KD  VNKH  	  ppV F>  pV P                   P                  VP                  VP                  VP                  4       K@  	  R# u upi )zu
Delete a cookie by name. May optionally include domain and path
in order to specify exactly which cookie to delete.
N)rO  clearrZ  rb  rc  )r   rZ  rb  rc  rR  removes   &&&&  r7   deleteCookies.delete  s     $"288>>&55 ((
"{{d"  6==F#:  !4	 F" 	 
 FHHNN6==&++v{{C 
s   CC"C9Cc               $    V ^8  d   QhRRRRRR/# )r0   rb  rC   rc  r3   rz   r5   )r6   s   "r7   r8   rM    s!      J Z 4 r9   c                    . pVe   VP                  V4       Ve   Vf   Q hVP                  V4       V P                  P                  ! V!   R# )zo
Delete all cookies. Optionally include a domain and path in
order to only delete a subset of all the cookies.
N)re   rO  r{  )r   rb  rc  argss   &&& r7   r{  Cookies.clear  sI    
 KK%%%KKr9   c                    V ^8  d   QhRRRR/# rL  r5   )r6   s   "r7   r8   rM    s     ( (0 (D (r9   c                	x    \        V4      pVP                   F  pV P                  P                  V4       K   	  R # r}   )r*   rO  rQ  )r   r  rR  s   && r7   r   Cookies.update  s,    '"kkFHH' "r9   c               $    V ^8  d   QhRRRRRR/# )r0   rZ  r2   rK   r3   rz   r5   )r6   s   "r7   r8   rM    s!     % % %C %D %r9   c                	$    V P                  W4      # r}   )rP  rY  s   &&&r7   r   Cookies.__setitem__  s    xx$$r9   c                    V ^8  d   QhRRRR/# )r0   rZ  r2   r3   r5   )r6   s   "r7   r8   rM    s        r9   c                	F    V P                  V4      pVf   \        V4      hV# r}   )r   r   rY  s   && r7   r   Cookies.__getitem__  s#    =4. r9   c                    V ^8  d   QhRRRR/# )r0   rZ  r2   r3   rz   r5   )r6   s   "r7   r8   rM    s     ! ! ! !r9   c                	$    V P                  V4      # r}   )r}  )r   rZ  s   &&r7   r   Cookies.__delitem__  s    {{4  r9   c                   V ^8  d   QhRR/# r   r5   )r6   s   "r7   r8   rM    s       r9   c                	,    \        V P                  4      # r}   )r   rO  r   s   &r7   r   Cookies.__len__  s    488}r9   c                   V ^8  d   QhRR/# r  r5   )r6   s   "r7   r8   rM    s     4 4. 4r9   c                	(    R  V P                    4       # )c              3  8   "   T F  qP                   x  K  	  R # 5ir}   )rZ  ).0rR  s   & r7   	<genexpr>#Cookies.__iter__.<locals>.<genexpr>  s     3((s   rO  r   s   &r7   r   Cookies.__iter__  s    3$((33r9   c                   V ^8  d   QhRR/# r  r5   )r6   s   "r7   r8   rM    s      $ r9   c                	.    V P                    F  p R # 	  R# )TFr  )r   r   s   & r7   __bool__Cookies.__bool__  s    A r9   c                   V ^8  d   QhRR/# r   r5   )r6   s   "r7   r8   rM    s     , ,# ,r9   c                	    R P                  V P                   Uu. uF-  pRVP                   RVP                   RVP                   R2NK/  	  up4      pRV R2# u upi )r   z<Cookie r`   z for z />z	<Cookies[r  )r   rO  rZ  rK   rb  )r   rR  cookies_reprs   &  r7   r
  Cookies.__repr__  sh    yy #hh&F 6;;-qeFMM?#N&
 <.++s   3Ac                  D   a  ] tR tRtRtR V 3R lltR V 3R lltRtV ;t# )Cookies._CookieCompatRequesti  j
Wraps a `Request` instance up in a compatibility interface suitable
for use with `CookieJar` operations.
c                    V ^8  d   QhRRRR/# r]  r5   )r6   s   "r7   r8   )Cookies._CookieCompatRequest.__annotate__  s     	# 	#G 	# 	#r9   c                	   < \         SV `  \        VP                  4      \	        VP
                  4      VP                  R 7       Wn        R# ))r_   rx   r  N)superr   r2   r_   r  rx   r  ri  )r   ri  r  s   &&r7   r   %Cookies._CookieCompatRequest.__init__  s;    G$W__-~~  
 #Lr9   c               $    V ^8  d   QhRRRRRR/# r   r5   )r6   s   "r7   r8   r    s!     	. 	.s 	.3 	.4 	.r9   c                	V   < \         SV `  W4       W P                  P                  V&   R # r}   )r  add_unredirected_headerri  rx   )r   rA   rK   r  s   &&&r7   r  4Cookies._CookieCompatRequest.add_unredirected_header  s"    G+C7(-LL  %r9   r	  )	r  r  r  r  r  r   r  r  __classcell__)r  s   @r7   rX  r    s    	
	# 	#	. 	.r9   rX  c                  2    ] tR tRtRtR R ltR R ltRtR# )	Cookies._CookieCompatResponsei  r  c                    V ^8  d   QhRRRR/# rU  r5   )r6   s   "r7   r8   *Cookies._CookieCompatResponse.__annotate__  s     	% 	%X 	%$ 	%r9   c                	    Wn         R # r}   r  )r   r  s   &&r7   r   &Cookies._CookieCompatResponse.__init__  s    $Mr9   c                   V ^8  d   QhRR/# )r0   r3   zemail.message.Messager5   )r6   s   "r7   r8   r    s     	 	/ 	r9   c                	    \         P                  P                  4       pV P                  P                  P                  4        F	  w  r#W1V&   K  	  V# r}   )rU   rV   rW   r  rx   r   )r   inforA   rK   s   &   r7   r  "Cookies._CookieCompatResponse.info  sD    ==((*D"mm33??A
 "S		 B
 Kr9   r  N)r  r  r  r  r  r   r  r  r5   r9   r7   rW  r    s    	
	%	 	r9   rW  r  r}   )r^   /)NNNr  )r  r  r  r  r  r   r  r$  rP  r   r}  r{  r   r   r   r   r   r   r  r
  urllibri  r,   rX  rW  r  r5   r9   r7   r*   r*   7  st    "B3$42D0(
%!4
,.v~~55 .$ r9   )r*   r+   r,   r-   r}   )J
__future__r   r;   datetimeemail.messagerU   r  r  rb   rD  urllib.requestr  collections.abcr   http.cookiejarr   r   r>  r   r   r	   r
   	_decodersr   r   r   r   r   r   r   r   _exceptionsr   r   r   r   r   r   r   
_multipartr   _status_codesr   _typesr   r   r   r   r    r!   r"   r#   r$   r%   r&   _urlsr'   _utilsr(   r)   __all__rr   r?   rI   rO   rZ   rl   ru   MutableMappingr2   r+   r,   r-   r*   r5   r9   r7   <module>r     s    "     	   # , S S	 	 	   A       +
7$&;< N-1"Jp:f##CH- p:fB) B)Jq+ q+hFf##CH- Fr9   