+
    TŎi?                     $  a R tJ0 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 ^ RIHt ^ RIHt ^ RIHtHtHtHtHtHt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& ^RI'H(t(H)t) ^RI*H+t+H,t,H-t-H.t.H/t/H0t0 ^RI1H2t2 R t3]'       d   ^RI4H5t5 ]]]6.]R,          3,          ,          t7]8! ]Pr                  Pu                  R4      4      t;] ^ k ]! 4       t<] ^k ]! R! U u/ uF  q ]<Pz                  V ,          bK  	  up 4      t>Rt?]! RRRRRRRRRR/4      t@ ! R R]	4      tA]<Pz                  P                  4        ]@P                  4        F  w  tDtE]<P                  ]D]E4       K  	  ]G! 4       tH] ^k  ! R R]24      tIR# u up i )"    N)suppress)Enumauto)	MimeTypes)S_ISREG)MappingProxyType)IOTYPE_CHECKINGAny	AwaitableCallableFinalIteratorListOptionalSetTupleUnioncast)hdrs)AbstractStreamWriter)ETAG_ANYETagmust_be_empty_body)LooseHeadersPathLike)HTTPForbiddenHTTPNotFoundHTTPNotModifiedHTTPPartialContentHTTPPreconditionFailedHTTPRequestRangeNotSatisfiable)StreamResponseFileResponse)BaseRequestAIOHTTP_NOSENDFILE.br.gzzapplication/octet-streamzapplication/gzipzapplication/x-brotlizapplication/x-bzip2z.bz2zapplication/x-compressz.Zzapplication/x-xzz.xzc                   R    ] tR t^JtRt]! 4       t]! 4       t]! 4       t]! 4       t	Rt
R# )_FileResponseResultz The result of the file response. N)__name__
__module____qualname____firstlineno____doc__r   	SEND_FILENOT_ACCEPTABLEPRE_CONDITION_FAILEDNOT_MODIFIED__static_attributes__r+       g/Users/ahmad/.openclaw/workspace/scripts/.venv/lib/python3.14/site-packages/aiohttp/web_fileresponse.pyr*   r*   J   s"    *IVN66Lr6   r*   c                   "  a a ] tR t^\t oRtRV3R lV 3R llltV3R lR ltV3R lR ltV3R lV 3R	 llt]	V3R
 lR l4       t
V3R lV 3R lltV3R lV 3R lltV3R lR ltV3R lR ltV3R lV 3R lltV3R lV 3R lltRtVtV ;t# )r$   z,A response object can be used to send files.c                \   < V ^8  d   QhRS[ RS[RS[RS[S[,          RS[S[,          RR/# )   path
chunk_sizestatusreasonheadersreturnN)r   intr   strr   )format__classdict__s   "r7   __annotate__FileResponse.__annotate___   sP     & && & 	&
 & ,'& 
&r6   c                l   < \         SV `  W4VR 7       \        P                  ! V4      V n        W n        R# ))r=   r>   r?   N)super__init__pathlibPath_path_chunk_size)selfr;   r<   r=   r>   r?   	__class__s   &&&&&&r7   rI   FileResponse.__init___   s-     	wG\\$'
%r6   c                B   < V ^8  d   QhRS[ S[,          RS[RS[RS[/# )r:   fobjoffsetr<   r@   )r	   r   rA   bytes)rC   rD   s   "r7   rE   rF   l   s-     % %2c7 %C %S %U %r6   c                F    VP                  V4       VP                  V4      # N)seekread)rN   rR   rS   r<   s   &&&&r7   _seek_and_readFileResponse._seek_and_readl   s    		&yy$$r6   c          
      H   < V ^8  d   QhRS[ RS[S[,          RS[RS[RS[ /# )r:   writerrR   rS   countr@   )r   r	   r   rA   )rC   rD   s   "r7   rE   rF   p   s9      *24S'CFOR	r6   c                  "   V P                   p\        P                  ! 4       pVP                  R V P                  W#V4      G R j  xL
 pV'       dZ   VP                  V4      G R j  xL
  WE,
          pV^ 8:  d   M0VP                  R VP                  \        WT4      4      G R j  xL
 pKa  VP                  4       G R j  xL
  V#  L L` L$ L5irV   )	rM   asyncioget_event_looprun_in_executorrY   writerX   mindrain)rN   r\   rR   rS   r]   r<   loopchunks   &&&&&   r7   _sendfile_fallbackFileResponse._sendfile_fallbackp   s      %%
%%'**$%%tZ
 
 ,,u%%%&Ez..tTYYJ@VWWElln
 & XsN   ACCCC&C'=C$C	%C>C?CC	CCc          
      F   < V ^8  d   QhRRRS[ S[,          RS[RS[RS[/# )r:   requestr%   rR   rS   r]   r@   )r	   r   rA   r   )rC   rD   s   "r7   rE   rF      s9      $,.sG=@IL	r6   c                  <"   \         SV `  V4      G R j  xL
 pVf   Q h\        '       g   V P                  '       d   V P	                  WRW44      G R j  xL
 # VP
                  pVP                  pVf   Q h VP                  WrW44      G R j  xL
  \         ST `%  4       G R j  xL
  T#  L LW L   \         d    T P	                  YRY44      G R j  xL 
 u # i ; i L85irV   )
rH   prepare
NOSENDFILEcompressionrg   _loop	transportsendfileNotImplementedError	write_eof)	rN   rj   rR   rS   r]   r\   re   rp   rO   s	   &&&&&   r7   	_sendfileFileResponse._sendfile   s      ww//!!!:)))00vMMM}}%%	$$$	N--	??? g!!!! 0 N @" 	N00vMMMM	N 	"sy   CB*CCCB,"C8B0 B.B0 C#C$C,C.B0 0 CCCCCCc                F   < V ^8  d   QhRS[ RS[S[R3,          RS[RS[/# )r:   
etag_valueetags.weakr@   )rB   r   r   bool)rC   rD   s   "r7   rE   rF      s3     
 
 
E$),< 
t 
PT 
r6   c                  a a \        V4      ^8X  d   V^ ,          P                  \        8X  d   R# \        ;QJ d     V V3R lV 4       F  '       g   K   R# 	  R# ! V V3R lV 4       4      # )   Tc              3   z   <"   T F0  pS'       g   VP                   '       d   K  VP                  S8H  x  K2  	  R # 5irV   )is_weakvalue).0etagrw   ry   s   & r7   	<genexpr>+FileResponse._etag_match.<locals>.<genexpr>   s(      
16$dll$DJJ*$s   ;;;F)lenr   r   any)rw   rx   ry   s   f&dr7   _etag_matchFileResponse._etag_match   s[    u:?uQx~~9s 
16
ss 	
s 	
s 
16
 
 	
r6   c          	      @   < V ^8  d   QhRRRS[ RS[RS[S[,          /# )r:   rj   r%   rw   last_modifiedr@   )rB   floatr   r   )rC   rD   s   "r7   rE   rF      s3     	. 	.$	.25	.FK	.	&	'	.r6   c                   <"   V P                  \        P                  4       R V n        W n        W0n        \        SV `  V4      G Rj  xL
 #  L5i)FN)
set_statusr   status_code_length_checkr   r   rH   rl   )rN   rj   rw   r   rO   s   &&&&r7   _not_modifiedFileResponse._not_modified   sD      	334"	* W_W----s   AAA	Ac                4   < V ^8  d   QhRRRS[ S[,          /# r:   rj   r%   r@   r   r   )rC   rD   s   "r7   rE   rF      s#     . .$.	&	'.r6   c                   <"   V P                  \        P                  4       ^ V n        \        SV `  V4      G Rj  xL
 #  L5i)r   N)r   r!   r   content_lengthrH   rl   )rN   rj   rO   s   &&r7   _precondition_failed!FileResponse._precondition_failed   s8      	.::;W_W----s   9AAAc                   < V ^8  d   QhRRRS[ RS[S[S[S[P
                  ,          S[P                  S[S[ ,          3,          /# )r:   rj   r%   accept_encodingr@   )rB   r   r*   r   ioBufferedReaderosstat_result)rC   rD   s   "r7   rE   rF      sO     6F 6F$6F7:6F	Xb&7&78"..(SV-W
6Fr6   c                   V P                  V4      w  r4pV'       g   \        P                  RVR3# VP                  R RVP                  R 2pVP
                  ;pe-   V P                  WgRR7      '       g   \        P                  RWE3# VP                  ;pe7   Vf3   VP                  VP                  4       8  d   \        P                  RWE3# VP                  ;p	e-   V P                  WiRR7      '       d   \        P                  RWE3# VP                  ;p
e7   V	f3   VP                  V
P                  4       8:  d   \        P                  RWE3# VP                  R4      p\        \         4      ;_uu_ 4        \"        P$                  ! VP'                  4       4      pRRR4       \        P(                  WV3#   + '       g   i     L#; i)zReturn the response result, io object, stat result, and encoding.

If an uncompressed file is returned, the encoding is set to
:py:data:`None`.

This method should be called from a thread executor
since it calls os.stat which may block.
Nx-F)ry   Trb)_get_file_path_stat_encodingr*   r2   st_mtime_nsst_sizeif_matchr   r3   if_unmodified_sincest_mtime	timestampif_none_matchr4   if_modified_sinceopenr   OSErrorr   statfilenor1   )rN   rj   r   	file_pathstfile_encodingrw   ifmatch
unmodsinceifnonematchmodsincerR   s   &&&         r7   _make_responseFileResponse._make_response   s    (,'H'H(
$	} &55tREEq)2::a.9
 '''G4T=M=Me >N >
 >
 ';;T2TT #666ZCj2244&;;T2TT #000K=$BRBR$ CS C
 C
 '33T2LL !222X?#x1133&33T2LL~~d#g
 'B  #,,dEE s   :%F::G
	c                   < V ^8  d   QhRS[ RS[S[S[P                  ,          S[P                  S[S[ ,          3,          /# )r:   r   r@   )rB   r   r   rJ   rK   r   r   )rC   rD   s   "r7   rE   rF      s>     D D"D	x%r~~x}D	EDr6   c                   V P                   p\        P                  4        F  w  r4WA9  d   K  VP                  VP                  V,           4      p\        \        4      ;_uu_ 4        VP                  4       p\        VP                  4      '       d   WVV3uuR R R 4       u #  R R R 4       K  	  VP                  4       p\        VP                  4      '       d   W&R 3# R VR 3#   + '       g   i     K  ; irV   )rL   ENCODING_EXTENSIONSitemswith_suffixsuffixr   r   lstatr   st_moder   )rN   r   r   file_extensionr   compressed_pathr   s   &&     r7   r   )FileResponse._get_file_path_stat_encoding   s     JJ	-@-F-F-H)N3'33I4D4D~4UVO'""$**,2::&&*=	 #" ' #" .I ^^#BJJ//ytCCT2tCC #""s   '/C$$C5c                4   < V ^8  d   QhRRRS[ S[,          /# r   r   )rC   rD   s   "r7   rE   rF      s%     +B +B] +Bx@T7U +Br6   c                R  <"   \         P                  ! 4       pVP                  P                  \        P
                  R 4      P                  4       p VP                  RV P                  W4      G Rj  xL
 w  rErgT\"        P$                  J d7   T P                  \        P                  4       \        ST `9  T4      G Rj  xL
 # T\"        P&                  J d   T P)                  T4      G Rj  xL
 # T\"        P*                  J dD   TP,                  R RTP.                  R 2pTP0                  p	T P3                  YT	4      G Rj  xL
 # Tf   Q h T P5                  YYg4      G Rj  xL
 TP                  RTP6                  4      p
\8        P;                  T
4       T
P=                  \8        P>                  4       #  ELG  \         d;    T P                  \        P                  4       \        ST `9  T4      G Rj  xL 
 u # \         d;    T P                  \         P                  4       \        ST `9  T4      G Rj  xL 
 u # i ; i EL EL^ EL
 L  TP                  RTP6                  4      p
\8        P;                  T
4       T
P=                  \8        P>                  4       i ; i5i) Nr   r   ) r_   get_running_loopr?   getr   ACCEPT_ENCODINGlowerra   r   PermissionErrorr   r   r   rH   rl   r   r   r*   r2   r3   r   r4   r   r   r   r   _prepare_open_fileclose_CLOSE_FUTURESaddadd_done_callbackremove)rN   rj   re   r   response_resultrR   r   r   rw   r   close_futurerO   s   &&         r7   rl   FileResponse.prepare   s-    '') "//--d.B.BBGMMO	2=A=Q=Qd))7> 84O2 1@@@OOM5561111FFF227;;;1>>>NN1-Qrzz!n=JKKM++GOOO	B00RR  //djjAL |,**>+@+@AK8  	2OOM5561111 	2 OOL4451111		2 2 <
 P S  //djjAL |,**>+@+@As   AJ' F< 2F93F< :AJ'?I ,J',I
-AJ'I
J'I $I%I (AJ'9F< <<I8G;9I>J' I	2I;H><IJ'IJ'
J'J'I AJ$$J'c                ~   < V ^8  d   QhRRRS[ P                  RS[P                  RS[S[,          RS[S[,          /# )r:   rj   r%   rR   r   r   r@   )r   r   r   r   r   rB   r   )rC   rD   s   "r7   rE   rF   ,  s_     vB vBvB vB NN	vB
  }vB 
&	'vBr6   c                  <"   V P                   pVP                  pVP                  pTpR p	VP                  ;p
e   WzP	                  4       8:  d    VP
                  pVP                  p	VP                  pT	e   T	^ 8  d   Tf   Y,          p	T	^ 8  d   ^ p	Yi,
          pM\#        Te   TMTT4      T	,
          pY8  dW   RT 2T P                  \        P                  &   T P                  \        P                  4       \        ST `A  T4      G R j  xL
 # \$        P                  pT P                  T4       \        P&                  V P                  9  dc   \(        P*                  R8  d   \,        P.                  pM\,        P0                  pV! V P2                  4      ^ ,          ;'       g    \4        V n        V'       dO   W@P                  \        P8                  &   \        P:                  V P                  \        P<                  &   RV n        VP@                  R RVP                  R 2V n!        Wpn"        Wn#        RV P                  \        PH                  &   V\$        P                  8X  dD   T	pVf   Q hRPK                  WV,           ^,
          V4      V P                  \        P                  &   V^ 8X  g   \M        VPN                  V4      '       d   \        SV `A  V4      G R j  xL
 # T	;'       g    ^ pV PQ                  WW4      G R j  xL
 #   \         d[    RT 2T P                  \        P                  &   T P                  \        P                  4       \        ST `A  T4      G R j  xL 
 u # i ; i ELh L Lq5i)Nzbytes */Fr   r   rT   zbytes {}-{}/{})      ))_statusr   r   if_ranger   
http_rangestartstop
ValueError_headersr   CONTENT_RANGEr   r"   r   rH   rl   rc   r    CONTENT_TYPEsysversion_infoCONTENT_TYPESguess_file_type
guess_typerL   FALLBACK_CONTENT_TYPEcontent_typeCONTENT_ENCODINGr   VARY_compressionr   r   r   r   ACCEPT_RANGESrC   r   methodrt   )rN   rj   rR   r   r   r=   	file_size
file_mtimer]   r   ifrangerngendguesser
real_startrS   rO   s   &&&&&           r7   r   FileResponse._prepare_open_file,  s     	KK
#'''G0JBSBSBU4U6((		%(XX"  19&Eqy !"%-E 3?C	9MPUU  % ;C9+8NDMM$"4"45OO$B$N$NO!&!999+77 '
 DMM17*'77'22 '

 3A 6 O O:OD3@MM$//0'+';';DMM$))$ !&D~~a("**Q8	'#,3d(()'333J)))0@0G0G.2I1DMM$,,-
 A:+GNNFCC111 !^^G6AAA{  6 7?yk4Jd001 > J JK"W_W55556` :P 2
 Bs|   AM=$L 5BM=M6BM=)M==D&M=#M9$M=1M=	M;
M=AM3*M-+M30M=2M33M=9M=;M=)rM   r   r   rL   r   r   r   r   )i      NN)r,   r-   r.   r/   r0   rI   rY   rg   rt   staticmethodr   r   r   r   r   rl   r   r5   __classdictcell____classcell__)rO   rD   s   @@r7   r$   r$   \   s     6& &% % * * 
 
	. 	.. .6F 6FpD D&+B +BZvB vB vBr6   c                    V ^8  d   Qh/ ^ \         9   d   \        \        ,          ;R&   ^\         9   d   \        \        ,          ;R&   ^\         9   d&   \        \
        P                  R,          ,          ;R&   # )r:   rm   r   Nr   )__conditional_annotations__r   rz   r   r   r_   Future)rC   s   "r7   rE   rE      sZ    b E DE$K Dc f . -uY -g p 2 1GNN4() 1q r6   )r$   )r'   r(   )Kr   r_   r   r   rJ   r   
contextlibr   enumr   r   	mimetypesr   r   r   typesr   typingr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   abcr   helpersr   r   r   typedefsr   r   web_exceptionsr   r   r   r    r!   r"   web_responser#   __all__web_requestr%   rT   _T_OnChunkSentrz   environr   rm   r   encodings_mapr   r   ADDITIONAL_CONTENT_TYPESr*   clearr   r   	extensionadd_typesetr   r$   rE   )extr   s   0@r7   <module>r     st    	 	  
     "      % 7 7 ,  )
( (E7IdO#;<= rzz~~.BCD
 D"++ - '6DEns-
%
%c
**nE  3  ,Ev $E $     ! ! #7==?L)<3  @ -0E 1FB> FBI Fs   -F