
    ho                        S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
Jr  S SKJr  S SKJr  S SKJrJrJrJrJrJrJrJr  S SKJrJr  SSKJrJr  SS	KJ r   SS
K!J"r"  SSK#J$r$J%r%J&r&J'r'J(r(J)r)J*r*J+r+J,r,J-r-  SSKJ.r.J/r/J0r0  SSKJ1r1  SSK2J3r3J4r4  \ V s0 s H  o Rj                  U Rl                  _M     sn r7Sr8Sr9\(       a  SSK:J;r;  \\<\4   r=O\R>                  R*                  r= " S S\R|                  5      r?\? Vs0 s H  oRj                  U_M     snr@ " S S\=\'5      rA " S S\A5      rB\+4SSSSSS\R                  S.S\S\\<   S\\D   S\ES\\<   S \\4   S!\<S"\3S#\B4S$ jjjrFgs  sn f s  snf )%    N)Executor)
HTTPStatus)SimpleCookie)TYPE_CHECKINGAnyDictIteratorMutableMappingOptionalUnioncast)CIMultiDictistr   )hdrspayload)AbstractStreamWriter)ZLibCompressor)
ETAG_ANYQUOTED_ETAG_REETagHeadersMixinmust_be_empty_bodyparse_http_daterfc822_formatted_timesentinelshould_remove_content_lengthvalidate_etag_value)SERVER_SOFTWAREHttpVersion10HttpVersion11)Payload)JSONEncoderLooseHeadersi   )ContentCodingStreamResponseResponsejson_response)BaseRequestc                        \ rS rSrSrSrSrSrg)r%   <   deflategzipidentity N)__name__
__module____qualname____firstlineno__r,   r-   r.   __static_attributes__r/       F/var/www/html/env/lib/python3.13/site-packages/aiohttp/web_response.pyr%   r%   <   s    
 GDHr5   r%   c                     ^  \ rS rSr% \S\\\4   \S'   Sr	Sr
Sr\\   \S'   Sr\\S'   Sr\\S'   \R"                  r\\S	'   Sr\\   \S
'   Sr\S   \S'   Sr\\   \S'   Sr\\S'   Sr\\   \S'   SrSr\\   \S'   SSSSS.S\S\\   S\\   S\\ \      SS4
S jjr!\"S\4S j5       r#\"S_S j5       r$\"S\4S j5       r%\"S\4S j5       r&\"S\4S j5       r'\"S\4S j5       r( S`S\S\\   SS4S  jjr)S\S\\   SS4S! jr*\"S\\   4S" j5       r+SaS# jr,\"S\4S$ j5       r-\"S\4S% j5       r.S`S&\\   SS4S' jjr/S\R"                  4S(\\\\4      S)\SS4S* jjr0\"SbS+ j5       r1\"S\4S, j5       r2SSSS-SSSSS..S/\S0\S1\\   S2\\   S3\\\\4      S4\S5\\   S6\\   S7\\   S8\\   SS4S9 jjr3SS-SSSS:.S/\S2\\   S4\S5\\   S6\\   S8\\   SS4S; jjr4\"S\\   4U 4S< jj5       r5\5Rl                  S0\\   SS4S= j5       r5\"S\4U 4S> jj5       r7\7Rl                  S0\SS4S? j5       r7\"S\\   4U 4S@ jj5       r8\8Rl                  S0\\   SS4SA j5       r8\"S\\9Rr                     4SB j5       r:\:Rl                  S0\\\\;\9Rr                  \4      SS4SC j5       r:\"S\\<   4SD j5       r=\=Rl                  S0\\\<\4      SS4SE j5       r=\>R~                  4SF\@SS4SG jjrASH\SS4SI jrBScSK jrCSJSS\\   4SL jrDSJSS\4SM jrESaSN jrFSaSO jrGSP\\\\H4   SS4SQ jrISaSR jrJSdSP\SS4SS jjrKS\4ST jrLSU\S\M4SV jrNSU\S0\MSS4SW jrOSU\SS4SX jrPS\4SY jrQS\R\   4SZ jrSS\4S[ jrTS\\US\4S] jrVS^rWU =rX$ )er&   M   N_bodyT_keep_aliveF_chunked_compression_compression_strategy_compression_forcer)   _req_payload_writer	_eof_sent_must_be_empty_bodyr   _cookies   )statusreasonheaders_real_headersrE   rF   rG   rH   returnc                    0 U l         Ub  X@l        O#Ub  [        U5      U l        O[        5       U l        U R                  X5        g)a  Initialize a new stream response object.

_real_headers is an internal parameter used to pass a pre-populated
headers object. It is used by the `Response` class to avoid copying
the headers when creating a new response object. It is not intended
to be used by external code.
N)_state_headersr   _set_status)selfrE   rF   rG   rH   s        r6   __init__StreamResponse.__init__^   s?     ')$)M .9'.BDM'MDM(r5   c                 D    U R                   =(       d    U R                  S L$ N)rA   r@   rN   s    r6   preparedStreamResponse.preparedx   s    ~~A!5!5T!AAr5   c                 R    U R                   (       a  U R                   R                  $ g rR   )r?   taskrS   s    r6   rW   StreamResponse.task|   s    9999>>!r5   c                     U R                   $ rR   )_statusrS   s    r6   rE   StreamResponse.status       ||r5   c                     U R                   $ rR   )r;   rS   s    r6   chunkedStreamResponse.chunked       }}r5   c                     U R                   $ rR   )r<   rS   s    r6   compressionStreamResponse.compression          r5   c                     U R                   $ rR   )_reasonrS   s    r6   rF   StreamResponse.reason   r\   r5   c                 V    U R                   (       a   S5       eU R                  X5        g )NzGCannot change the response status code after the headers have been sent)rT   rM   rN   rE   rF   s      r6   
set_statusStreamResponse.set_status   s+     	UT	U(r5   c                     [        U5      U l        Uc!  [        R                  U R                  S5      nOSU;   a  [	        S5      eX l        g )N 
zReason cannot contain \n)intrZ   REASON_PHRASESget
ValueErrorrf   ri   s      r6   rM   StreamResponse._set_status   s@    6{>#''b9FV^899r5   c                     U R                   $ rR   r:   rS   s    r6   
keep_aliveStreamResponse.keep_alive   s    r5   c                     SU l         g )NFru   rS   s    r6   force_closeStreamResponse.force_close   s
     r5   c                     U R                   $ rR   )_body_lengthrS   s    r6   body_lengthStreamResponse.body_length   rd   r5   c                     [         R                  " S[        5        U R                  (       d   eU R                  R                  $ )Nzoutput_length is deprecated)warningswarnDeprecationWarningr@   buffer_sizerS   s    r6   output_lengthStreamResponse.output_length   s3    35GH######///r5   
chunk_sizec                     [         R                  U R                  ;   a  [        S5      eUb  [        R
                  " S[        5        SU l        g)z,Enables automatic chunked transfer encoding.z>You can't enable chunked encoding when a content length is setNzChunk size is deprecated #1615T)r   CONTENT_LENGTHrL   RuntimeErrorr   r   r   r;   )rN   r   s     r6   enable_chunked_encoding&StreamResponse.enable_chunked_encoding   sC    $--/P  !MM:<NOr5   forcestrategyc                    [        U[        5      (       aC  U(       a  [        R                  O[        R                  n[
        R                  " S[        5        OUb  [        U[        5      (       d   S5       eSU l        Xl	        X l
        g)z&Enables response compression encoding.z+Using boolean for force is deprecated #3318Nz1force should one of None, bool or ContentEncodingT)
isinstanceboolr%   r,   r.   r   r   r   r<   r>   r=   )rN   r   r   s      r6   enable_compression!StreamResponse.enable_compression   s|     eT""-2M))8N8NEMM=?Q }  CBC  !"'%-"r5   c                     U R                   $ rR   )rL   rS   s    r6   rG   StreamResponse.headers   r`   r5   c                 R    U R                   c  [        5       U l         U R                   $ rR   )rC   r   rS   s    r6   cookiesStreamResponse.cookies   s    == (NDM}}r5   /)expiresdomainmax_agepathsecurehttponlyversionsamesitenamevaluer   r   r   r   r   r   r   r   c                <   U R                   c  [        5       U l         X R                   U'   U R                   U   nUb  X;S'   OUR                  S5      S:X  a  US	 Ub  XKS'   Ub  [        U5      US'   O	SU;   a  US	 XkS'   Ub  X{S'   Ub  XS'   U	b  XS	'   U
b  XS
'   gg)zSet or update response cookie.

Sets new cookie or updates existent with new value.
Also updates only those params which are not None.
Nr   Thu, 01 Jan 1970 00:00:00 GMTr   zmax-ager   r   r   r   r   )rC   r   rq   str)rN   r   r   r   r   r   r   r   r   r   r   cs               r6   
set_cookieStreamResponse.set_cookie   s    & == (NDM#dMM$"iLUU9!@@) hKw<AiL!^)&	 hK$jM"iL$jM  r5   )r   r   r   r   r   c                    U R                   b  U R                   R                  US5        U R                  USSSUUUUUS9	  g)z2Delete cookie.

Creates new empty expired cookie.
Nrm   r   r   )r   r   r   r   r   r   r   )rC   popr   )rN   r   r   r   r   r   r   s          r6   
del_cookieStreamResponse.del_cookie  sN     ==$MMdD)3 	 
	
r5   c                    > [         TU ]  $ rR   )supercontent_lengthrN   	__class__s    r6   r   StreamResponse.content_length-  s     w%%r5   c                     UbN  [        U5      nU R                  (       a  [        S5      e[        U5      U R                  [
        R                  '   g U R                  R                  [
        R                  S 5        g )Nz<You can't set content length when chunked encoding is enable)ro   r;   r   r   rL   r   r   r   rN   r   s     r6   r   r   2  s\    JE}}"R  25UDMM$--.MMd1148r5   c                    > [         TU ]  $ rR   )r   content_typer   s    r6   r   StreamResponse.content_type>  s     w##r5   c                 \    U R                     [        U5      U l        U R                  5         g rR   )r   r   _content_type_generate_content_type_headerr   s     r6   r   r   C  s#     Z**,r5   c                    > [         TU ]  $ rR   )r   charsetr   s    r6   r   StreamResponse.charsetI  s     wr5   c                    U R                   nUS:X  a  [        S5      eU R                  c   eUc  U R                  R                  SS 5        O&[	        U5      R                  5       U R                  S'   U R                  5         g )Napplication/octet-streamzYSetting charset for application/octet-stream doesn't make sense, setup content_type firstr   )r   r   _content_dictr   r   lowerr   )rN   r   ctypes      r6   r   r   N  s    !!..?  !!---=""9d3,/J,<,<,>Dy)**,r5   c                 f    [        U R                  R                  [        R                  5      5      $ )zeThe value of Last-Modified HTTP header, or None.

This header is represented as a `datetime` object.
)r   rL   rq   r   LAST_MODIFIEDrS   s    r6   last_modifiedStreamResponse.last_modified]  s$     t}}001C1CDEEr5   c                 p   Uc+  U R                   R                  [        R                  S 5        g [	        U[
        [        45      (       a[  [        R                  " S[        R                  " [        R                  " U5      5      5      U R                   [        R                  '   g [	        U[        R                  5      (       aA  [        R                  " SUR                  5       5      U R                   [        R                  '   g [	        U[        5      (       a  XR                   [        R                  '   g g )Nz%a, %d %b %Y %H:%M:%S GMT)rL   r   r   r   r   ro   floattimestrftimegmtimemathceildatetimeutctimetupler   r   s     r6   r   r   e  s     =MMd00$7U|,,04+T[[59I-J1DMM$,,- x001104+U-?-?-A1DMM$,,- s##05MM$,,- $r5   c                    U R                   R                  [        R                  5      nU(       d  g U[        :X  a  [        [        S9$ [        R                  " U5      nU(       d  g UR                  SS5      u  p4[        [        U5      US9$ )N)r   r      )is_weakr   )
rL   rq   r   ETAGr   r   r   	fullmatchgroupr   )rN   quoted_valuematchr   r   s        r6   etagStreamResponse.etagv  sr    }}((3X%h''((6Q*M
 	
r5   c                    Uc+  U R                   R                  [        R                  S 5        g [	        U[
        5      (       a
  U[        :X  d)  [	        U[        5      (       a6  UR                  [        :X  a"  [        U R                   [        R                  '   g [	        U[
        5      (       a-  [        U5        SU S3U R                   [        R                  '   g [	        U[        5      (       a  [	        UR                  [
        5      (       ac  [        UR                  5        UR                  (       a  SUR                   S3OSUR                   S3nX R                   [        R                  '   g [        S[        U5       S35      e)N"zW/"zUnsupported etag type: z . etag must be str, ETag or None)rL   r   r   r   r   r   r   r   r   r   r   rr   type)rN   r   	hdr_values      r6   r   r     s   =MMdii.$$():ud##x(?'/DMM$))$s##&)*5'|DMM$))$t$$EKK)E)E,05#ekk]!,Qu{{mSTCUI'0MM$))$)$u+ 71 2 r5   CONTENT_TYPEc                    U R                   c   eU R                  c   eSR                  S U R                   R                  5        5       5      nU(       a  U R                  S-   U-   nOU R                  nX0R                  U'   g )Nz; c              3   4   #    U  H  u  pU S U 3v   M     g7f)=Nr/   ).0kvs      r6   	<genexpr>?StreamResponse._generate_content_type_header.<locals>.<genexpr>  s     M2L$!aS!:2Ls   )r   r   joinitemsrL   )rN   r   paramsr   s       r6   r   ,StreamResponse._generate_content_type_header  sz     !!---!!---M$2D2D2J2J2LMM&&-6E&&E&+l#r5   codingc                 T  #    U[         R                  L a  g U R                  c   eUR                  U R                  [
        R                  '   U R                  R                  UR                  U R                  5        U R                  R                  [
        R                  S 5        g 7frR   )r%   r.   r@   r   rL   r   CONTENT_ENCODINGr   r=   popallr   )rN   r   s     r6   _do_start_compression$StreamResponse._do_start_compression  s     ]+++##////5||d++,//LL$44	

 	T00$7s   B&B(requestc                 h  #    U R                   (       a$  U R                  U R                   5      I S h  vN   g UR                  R                  [        R
                  S5      R                  5       n[        R                  5        H%  u  p4X2;   d  M  U R                  U5      I S h  vN     g    g  N{ N7f)Nrm   )	r>   r   rG   rq   r   ACCEPT_ENCODINGr   CONTENT_CODINGSr   )rN   r   accept_encodingr   r   s        r6   _start_compression!StreamResponse._start_compression  s     "",,T-D-DEEE "//--d.B.BBGMMO,224ME'00888 5 F 9s(   0B2B.AB2B2$B0%
B20B2c                    #    U R                   (       a  g U R                  b  U R                  $ [        UR                  U R                  5      U l        U R                  U5      I S h  vN $  N7frR   )rA   r@   r   methodrE   rB   _start)rN   r   s     r6   prepareStreamResponse.prepare  sS     >>+'''#5gnndkk#R [[))))s   A%A.'A,(A.c                    #    Xl         UR                  =o l        U R                  5       I S h  vN   UR                  U 5      I S h  vN   U R	                  5       I S h  vN   U$  N7 N  N
7frR   )r?   r@   _prepare_headers_prepare_hook_write_headers)rN   r   writers      r6   r   StreamResponse._start  sc     	(/(?(??%##%%%##D)))!!###	 	&)#s3   ,A,A&A,A(A,A* A,(A,*A,c                   #    U R                   nUc   eU R                  nUc   eU R                  nUc  UR                  nX0l        UR                  nU R
                  nU R                  (       aS  U R                  R                  5        H5  nUR                  SS9SS  nUR                  [        R                  U5        M7     U R                  (       a  U R                  U5      I S h  vN   U R                  (       ac  U[        :w  a$  [!        SR#                  UR                  5      5      eU R$                  (       d#  UR'                  5         SU[        R(                  '   OU R*                  (       ap  U R,                  Ul        UR.                  cR  U[        :  a5  U R$                  (       d#  UR'                  5         SU[        R(                  '   OU R$                  (       d  SnU R$                  (       ap  [        R0                  U;   a6  [3        UR4                  U R6                  5      (       a  U[        R0                  	 [        R(                  U;   a  U[        R(                  	 OMU R*                  (       a  UR.                  OU R,                  S:w  a   UR9                  [        R:                  S5        UR9                  [        R<                  [?        5       5        UR9                  [        R@                  [B        5        [        RD                  U;  aE  U(       a  U[F        :X  a  S	U[        RD                  '   g g U[        :X  a  S
U[        RD                  '   g g g  GNn7f)Nrm   )headerr   z@Using chunked encoding is forbidden for HTTP/{0.major}.{0.minor}r^   Fr   r   z
keep-aliveclose)$r?   r@   r:   rv   r   rL   rC   valuesoutputaddr   
SET_COOKIEr<   r   r;   r!   r   formatrB   enable_chunkingTRANSFER_ENCODING_length_checkr   lengthr   r   r   rE   
setdefaultr   DATEr   SERVERr   
CONNECTIONr    )rN   r   r  rv   r   rG   cookier   s           r6   r   StreamResponse._prepare_headers  s    ))"""%%!!!%%
 ++J%//--==--..0R04DOOU3 1 ))'222==-'"3396'//3J  ++&&(2;../ //FM}}$m+33..0:C 6 6711!&J ##""g-2N3 3 D//0 %%0D223#11fmmt7J7JqPt002LM499&;&=>4;;8 ??')m+/;GDOO, ,M)+2( *	 *O 3s   C%M'M(I.Mc                   #    U R                   nUc   eU R                  nUc   eUR                  nSUS    SUS    SU R                   SU R                   3nUR                  X@R                  5      I S h  vN   g  N7f)NzHTTP/r   .r    )r?   r@   r   rZ   rf   write_headersrL   )rN   r   r  r   status_lines        r6   r   StreamResponse._write_headers  s     ))"""%%!!!//gaj\71:,a~Qt||nU"";>>>s   A5A?7A=8A?datac                 $  #    [        U[        [        [        45      (       d   S[	        U5      -  5       eU R
                  (       a  [        S5      eU R                  c  [        S5      eU R                  R                  U5      I S h  vN   g  N7f)N#data argument must be byte-ish (%r)z%Cannot call write() after write_eof()z$Cannot call write() before prepare())	r   bytes	bytearray
memoryviewr   rA   r   r@   writerN   r  s     r6   r!  StreamResponse.write  s     5)Z0
 
 	>04:=	> 
 >>FGG'EFF""((...s   BBB	Bc                    #    U R                   (       a   S5       eU R                  c   S5       e[        R                  " S[        SS9  U R                  R                  5       I S h  vN   g  N7f)NzEOF has already been sentResponse has not been startedz2drain method is deprecated, use await resp.write()r   )
stacklevel)rA   r@   r   r   r   drainrS   s    r6   r'  StreamResponse.drain(  s_     >>>#>>!##/P1PP/@	

 ""((***s   A$A.&A,'A.c                 h  #    [        U[        [        [        45      (       d   S[	        U5      -  5       eU R
                  (       a  g U R                  c   S5       eU R                  R                  U5      I S h  vN   SU l        S U l        U R                  R                  U l
        S U l        g  N57f)Nr  r%  T)r   r  r  r   r   rA   r@   	write_eofr?   output_sizer|   r"  s     r6   r*  StreamResponse.write_eof2  s     5)Z0
 
 	>04:=	> 
 >>##/P1PP/"",,T222	 00<<#	 	3s   A8B2:B0;6B2c                 $   U R                   (       a  SnOSU R                  (       a@  U R                  c   eU R                  R                   SU R                  R                   S3nOSnSU R
                  R                   SU R                   SU S3$ )Neofr  znot prepared<>)rA   rT   r?   r   r   r   r0   rF   )rN   infos     r6   __repr__StreamResponse.__repr__B  sz    >>D]]99(((ii&&'q(8:D!D4>>**+1T[[M4&BBr5   keyc                      U R                   U   $ rR   rK   rN   r4  s     r6   __getitem__StreamResponse.__getitem__L  s    {{3r5   c                      X R                   U'   g rR   r6  )rN   r4  r   s      r6   __setitem__StreamResponse.__setitem__O  s     Cr5   c                     U R                   U	 g rR   r6  r7  s     r6   __delitem__StreamResponse.__delitem__R  s    KKr5   c                 ,    [        U R                  5      $ rR   )lenrK   rS   s    r6   __len__StreamResponse.__len__U  s    4;;r5   c                 ,    [        U R                  5      $ rR   )iterrK   rS   s    r6   __iter__StreamResponse.__iter__X  s    DKK  r5   c                 *    [        [        U 5      5      $ rR   )hashidrS   s    r6   __hash__StreamResponse.__hash__[  s    BtH~r5   otherc                     XL $ rR   r/   )rN   rM  s     r6   __eq__StreamResponse.__eq__^  s
    }r5   )r|   r;   r<   r>   r=   r   rC   rA   rL   r:   rB   r@   rf   r?   rK   rZ   )rI   zOptional[asyncio.Task[None]]rR   )rI   N)rI   zCIMultiDict[str])r   r)   rI   Nr5   )Yr0   r1   r2   r3   r   r  r  r"   __annotations__r  r9   r:   r   r   r;   r<   zlibZ_DEFAULT_STRATEGYr=   ro   r>   r%   r?   r@   r   rA   rB   r|   rC   r   r   r$   r   rO   propertyrT   rW   rE   r^   rb   rF   rj   rM   rv   ry   r}   r   r   r   rG   r   r   r   r   setterr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!  r'  r*  r2  r   r8  r;  r>  rB  r	   rF  rK  objectrO  r4   __classcell__r   s   @r6   r&   r&   M   s   ui011ME"&K$&HdL$!%!8!83826/6$(D(=
!(6:OX23:It*.$.L'+Hh|$+
  $*.48) ) 	)
 ,')  C 01) 
)4 B$ B B         !T ! !    !%)) ) 
	)# x}    HTN    ! !S ! ! 0s 0 0
(3- 4  7;//.dM123. . 
	.*      "& $-1!%#'!%"&/%/% /%
 #/% /% %S/*/% /% /% 4./% #/% 3-/% 
/%j !%!%#'"&

 	

 
 
 4.
 3-
 

: & & & 	9HSM 	9d 	9 	9 $c $ $ -# -$ - -
 #   ^^-Xc] -t - - Fx(9(9: F F 6eC0A0A3$FGH6	6 6  
htn 
 
 
[[(5s#34   * $(#4#4
, 
,	
,
8- 
8D 
8
*] *x@T7U *M 6J ?3B?
/eY
&B C 
/ 
/+$E $D $ C# C s  s  !s !3 !4 !s t    !(3- !# F t  r5   r&   c                     ^  \ rS rSr% Sr\\   \S'   SSSSSSSSSS.	S\S\	S\\
   S	\\
   S
\\   S\\
   S\\
   S\\	   S\\   SS4U 4S jjjr\S\\\\4      4S j5       r\R$                  S\SS4S j5       r\S\\
   4S j5       r\R$                  S	\
SS4S j5       r\S\\	   4S j5       r\R$                  S\\	   SS4S j5       rS S\SS4U 4S jjjrSSS\4U 4S jjrS\SS4U 4S jjrSrU =r$ )!r'   ib  N_compressed_bodyrD   )	bodyrE   rF   textrG   r   r   zlib_executor_sizezlib_executorr\  rE   rF   r]  rG   r   r   r^  r_  rI   c       	           > Ub  Ub  [        S5      eUc  [        5       n
O[        U5      n
Ub  SU;   a  [        S5      eUb  [        R                  U
;   a  U(       d  U(       a  [        S5      eO[	        U[
        5      (       d  [        S[        U5      -  5      eUc  SnUc  SnUS-   U-   U
[        R                  '   UR                  U5      nS nOF[        R                  U
;   a  Uc  Ub  [        S5      eO Ub  Ub  USU-   -  nXj[        R                  '   [        TU ])  X#U
S	9  Ub  X@l        OXl        Xl        Xl        g )
Nz&body and text are not allowed togetherr   z,charset must not be in content_type argumentzPpassing both Content-Type header and content_type or charset params is forbiddentext argument must be str (%r)
text/plainutf-8z
; charset=)rE   rF   rH   )rr   r   r   r   r   r   	TypeErrorr   encoder   rO   r]  r\  _zlib_executor_size_zlib_executor)rN   r\  rE   rF   r]  rG   r   r   r^  r_  real_headersr   s              r6   rO   Response.__init__f  sk     0EFF?-8]L&w/L#	\(AKLL  L07$'  $+ "$,,#$DtDz$QRR'#/L?%G2>2MPW2WT../{{7+,.'7+> #  ,? %"w 66.:**+\RII#5 +r5   c                     U R                   $ rR   )r9   rS   s    r6   r\  Response.body  s    zzr5   c                    Uc  S U l         O[        U[        [        45      (       a  Xl         O [        R
                  R                  U5      =U l         nU R                  n[        R                  U;  a  UR                  U[        R                  '   UR                  (       a.  UR                  R                  5        H  u  p4X2;  d  M  XBU'   M     S U l        g ! [        R                   a    [        S[        U5      -  5      ef = f)NzUnsupported body type %r)r9   r   r  r  r   PAYLOAD_REGISTRYrq   LookupErrorrr   r   rL   r   r   r   rG   r   r[  )rN   r\  rG   r4  r   s        r6   r\  rk    s    <DJui011JJ$+$<$<$@$@$FF
T mmG   /-1->->))* ||"&,,"4"4"6JC)', #7 !% && J !;d4j!HIIJs   &C ,Dc                 z    U R                   c  g U R                   R                  U R                  =(       d    S5      $ )Nrc  )r9   decoder   rS   s    r6   r]  Response.text  s-    ::zz  !899r5   c                     Ub(  [        U[        5      (       d   S[        U5      -  5       eU R                  S:X  a  SU l        U R                  c  SU l        UR                  U R                  5      U l        S U l        g )Nra  r   rb  rc  )r   r   r   r   r   re  r9   r[  )rN   r]  s     r6   r]  rq    sy    |z# 
  
 	9+d4j8	9 
  :: ,D<<"DL[[.
 $r5   c                 x   U R                   (       a  g [        R                  U R                  ;   a&  [	        U R                  [        R                     5      $ U R
                  b  [        U R
                  5      $ [        U R                  [        5      (       a  g U R                  b  [        U R                  5      $ g)Nr   )
r;   r   r   rL   ro   r[  rA  r   r9   r"   rS   s    r6   r   Response.content_length  s    ==$--/t}}T%8%89::  ,t,,--

G,,ZZ#tzz?"r5   r   c                     [        S5      e)Nz#Content length is set automatically)r   r   s     r6   r   rt    s    @AAr5   r  c                 T  >#    U R                   (       a  g U R                  c  U R                  nOU R                  nU(       a   SU< 35       eU R                  c   eU R                  c   eUb  U R
                  (       a  [        TU ]  5       I S h  vN   g [        U R                  [        5      (       aD  U R                  R                  U R                  5      I S h  vN   [        TU ]  5       I S h  vN   g [        TU ]  [        [        U5      5      I S h  vN   g  N NC N/ N7f)Nzdata arg is not supported, got )rA   r[  r9   r?   r@   rB   r   r*  r   r"   r!  r   r  )rN   r  r\  r   s      r6   r*  Response.write_eof  s     >>  (48JJD((DC:4(CCxyy$$$##///<433'#%%%

G,,**""4#7#7888'#%%%'#D$5666 &8%6sI   BD(D AD(D"D(4D$5%D(D&D("D($D(&D(r   r)   c                   >#    [         R                  U R                  ;   aB  [        UR                  U R
                  5      (       a  U R                  [         R                  	 GOU R                  (       d  [        U R                  [        5      (       aR  U R                  R                  b:  [        U R                  R                  5      U R                  [         R                  '   OU R                  (       a  [        U R                  5      OSnUS:w  d.  U R
                  S:w  aD  UR                  [         R                  ;  a&  [        U5      U R                  [         R                  '   [        TU ]=  U5      I S h  vN $  N7f)N0i0  )r   r   rL   r   r   rE   r;   r   r9   r"   sizer   rA  METH_HEAD_ALLr   r   )rN   r   body_lenr   s      r6   r   Response._start  s     $--/+GNNDKKHHMM$"5"56$**g..::??.9<TZZ__9MDMM$"5"56.2jj3tzz?cs?KK3&7>>ASAS+S9<XDMM$"5"56W^G,,,,s   E7F:E?;Fr   c                   >#    U R                   (       d  [        U R                  [        5      (       a  [        TU ]  U5      I S h  vN $ U[        R                  L a  g [        UR                  U R                  U R                  S9nU R                  c   eU R                  cJ  [        U R                  5      [        :  a-  [        R                  " S[        U R                  5       S35        UR!                  U R                  5      I S h  vN UR#                  5       -   U l        UR                  U R&                  [(        R*                  '   [-        [        U R$                  5      5      U R&                  [(        R.                  '   g  GNB N~7f)N)encodingmax_sync_chunk_sizeexecutorz2Synchronous compression of large response bodies (z bytes) might block the async event loop. Consider providing a custom value to zlib_executor_size/zlib_executor response properties or disabling compression on it.)r;   r   r9   r"   r   r   r%   r.   r   r   rf  rg  rA  LARGE_BODY_SIZEr   r   compressflushr[  rL   r   r   r   r   )rN   r   
compressorr   s      r6   r   Response._do_start_compression  s3    ==Jtzz7;;6v>>>]+++ $\\ $ 8 8((


 zz%%%##+DJJ/0QMM

O$ %TT %%djj11J4D4D4FF 	 06||d++,-0T5J5J1K-Ld))*- ?& 2s&   AFFCFFA<FF)r9   r[  rg  rf  r\  r   r   r]  rQ  )r0   r1   r2   r3   r[  r   r  rR  r   ro   r   r$   r   rO   rU  r   r"   r\  rV  r]  r   r*  r   r   r%   r   r4   rX  rY  s   @r6   r'   r'   b  s   (,huo,
  $"*.&*!%,0,0?, ?, 	?,
 ?, sm?, ,'?, sm?, #?, %SM?,  )?, 
?, ?,B huUG^45   
[[% % % %2 :hsm : :
 
[[% % % %   $ BHSM Bd B B7E 7D 7 7$-M -6J -$M- MD M Mr5   r'   rD   zapplication/json)r]  r\  rE   rF   rG   r   dumpsr  r]  r\  rE   rF   rG   r   r  rI   c          	      r    U [         La!  U(       d  U(       a  [        S5      eU" U 5      n[        UUUUUUS9$ )Nz3only one of data, text, or body should be specified)r]  r\  rE   rF   rG   r   )r   rr   r'   )r  r]  r\  rE   rF   rG   r   r  s           r6   r(   r(   /  sE     84RSS;D! r5   )Gasynciocollections.abccollectionsr   enumjsonr   r   r   rS  concurrent.futuresr   httpr   http.cookiesr   typingr   r   r   r	   r
   r   r   r   	multidictr   r   rm   r   r   abcr   compression_utilsr   helpersr   r   r   r   r   r   r   r   r   r   r   r    r!   r"   typedefsr#   r$   r   phraserp   r  __all__web_requestr)   r   	BaseClassEnumr%   r   r&   r'   r  r  ro   r(   )http_statusr   s   00r6   <module>r     s            '  %	 	 	 (  % -   @ ?  /KUV:K##[%7%77:V
J (sCx(I..IDII  7DDmF<<'mDRY RjJM~ JM\    &**
 3- 5/	
  SM l#   E W2 Es    E1E6