+
    DiS                    H   ^ 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HtHtHtHtH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 ^ R
IHt ^ RI t ^ RI!t ^ RI"H#t# ^ RI$H%t% ^ RI&H't' ^ RI(H)t)H*t*H+t+ ^ RI,H-t- ^ RI.H/t/H0t0H1t1  ! R R4      t2 ! R R]24      t3 ! R R]24      t4 ! R R]24      t5 ! R R]24      t6]7]8,          ]9,          t:]]:,          t;]]:,          t<]<];,          t= ! R R]24      t> ! R R]?4      t@ ! R R ]?4      tA ! R! R"]24      tBR# )#    )annotationsN)AsyncIterable	AwaitableCallableIterableMappingSequence)datetime)format_datetime
formatdate)partial)
guess_type)	token_hex)AnyLiteral)quote)collapse_excgroups)BackgroundTask)iterate_in_threadpool)URLHeadersMutableHeaders)ClientDisconnect)ReceiveScopeSendc                      ] tR t^tRtRtRR R lltR R ltRR R llt]	R	 R
 l4       t
RR R lltRR R lltR R ltRtR# )ResponseNutf-8c               0    V ^8  d   QhRRRRRRRRR	R
RR/#    contentr   status_codeintheadersMapping[str, str] | None
media_type
str | None
backgroundBackgroundTask | NonereturnNone )formats   "q/Users/tonyclaw/.openclaw/workspace/services/omi-webhook/venv/lib/python3.14/site-packages/starlette/responses.py__annotate__Response.__annotate__"   sF     # ## # *	#
 # *# 
#    c                	    W n         Ve   W@n        WPn        V P                  V4      V n        V P                  V4       R # N)r$   r(   r*   renderbodyinit_headersselfr#   r$   r&   r(   r*   s   &&&&&&r0   __init__Response.__init__"   s8     '!(O$KK(	'"r3   c                    V ^8  d   QhRRRR/# )r"   r#   r   r,   zbytes | memoryviewr.   )r/   s   "r0   r1   r2   1   s     , ,c ,&8 ,r3   c                	    Vf   R# \        V\        \        ,          4      '       d   V# VP                  V P                  4      # )Nr3   )
isinstancebytes
memoryviewencodecharsetr:   r#   s   &&r0   r6   Response.render1   s4    ?guz122N~~dll++r3   c                    V ^8  d   QhRRRR/# )r"   r&   r'   r,   r-   r.   )r/   s   "r0   r1   r2   8   s     ' '$< ' 'r3   c                	   Vf   . pRpRpMrVP                  4        UUu. uF5  w  rVVP                  4       P                  R4      VP                  R4      3NK7  	  pppV Uu. uF  qw^ ,          NK  	  ppRV9  pRV9  p\        V RR 4      p	V	ea   V'       dY   V P                  ^8  gH   V P                  R	9   g7   \        \        V	4      4      p
VP                  RV
P                  R4      34       V P                  pVeq   V'       di   VP                  R4      '       d0   RVP                  4       9  d   VRV P                  ,           ,          pVP                  RVP                  R4      34       W n        R # u uppi u upi )
NTlatin-1s   content-lengths   content-typer7   ztext/zcharset=z
; charset=)   i0  )itemslowerrB   getattrr$   strlenappendr(   
startswithrC   raw_headers)r:   r&   rQ   populate_content_lengthpopulate_content_typekvhkeysr7   content_lengthcontent_types   &&          r0   r8   Response.init_headers8   sY   ?57K&*#$(!ZaZgZgZijZiRVRSAGGI,,Y7)9LMZiKj"-.+QaDD+D.&7t&C#$34$?!tVT*'%%+t/?/?:/M T^N 1>3H3H3STU#(=&&w//JlFXFXFZ4Zt|| ;;1D1DY1OPQ&) k.s   ;E7!E=c                   V ^8  d   QhRR/# )r"   r,   r   r.   )r/   s   "r0   r1   r2   U   s       r3   c                	t    \        V R 4      '       g   \        V P                  R7      V n        V P                  # )_headers)raw)hasattrr   rQ   r]   )r:   s   &r0   r&   Response.headersT   s+    tZ((*t/?/?@DM}}r3   c               D    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"   keyrM   valuemax_agez
int | Noneexpireszdatetime | str | int | Nonepathr)   domainsecureboolhttponlysamesite'Literal['lax', 'strict', 'none'] | Nonepartitionedr,   r-   r.   )r/   s   "r0   r1   r2   Z   s     +O +O+O +O 	+O
 -+O +O +O +O +O :+O +O 
+Or3   c                	   \         P                  P                  4       pW+V&   Ve   W;V,          R&   Ve9   \        V\        4      '       d   \        VRR7      W,          R&   MWKV,          R&   Ve   W[V,          R&   Ve   WkV,          R&   V'       d   RW,          R&   V'       d   RW,          R&   V	e(   V	P                  4       R9   g   Q R	4       hWV,          R
&   V
'       d,   \        P                  R8  d   \        R4      hRW,          R&   VP                  RR7      P                  4       pV P                  P                  RVP                  R4      34       R # )Nzmax-ageTusegmtre   rf   rg   rh   rj   z1samesite must be either 'strict', 'lax' or 'none'rk   z@Partitioned cookies are only supported in Python 3.14 and above.rm    )headers
   set-cookierH   )strictlaxnone)      )httpcookiesSimpleCookier?   r
   r   rK   sysversion_info
ValueErroroutputstriprQ   rO   rB   )r:   rb   rc   rd   re   rf   rg   rh   rj   rk   rm   cookie
cookie_vals   &&&&&&&&&&&  r0   
set_cookieResponse.set_cookieZ   sH    04||/H/H/Js%,3K	"'8,,)8)NI&)0sI&"&3K$*3K!$(FK!&*FK
#>># (  C C	C 
 '/3K
#') !cdd)-FK&]]"]-335

0A0A)0L MNr3   c               4    V ^8  d   QhRRRRRRRRRRR	R
RR/# )r"   rb   rM   rf   rg   r)   rh   ri   rj   rk   rl   r,   r-   r.   )r/   s   "r0   r1   r2      sP     
 

 
 	

 
 
 :
 

r3   c                	8    V P                  V^ ^ VVVVVR7       R# )r   )rd   re   rf   rg   rh   rj   rk   N)r   )r:   rb   rf   rg   rh   rj   rk   s   &&&&&&&r0   delete_cookieResponse.delete_cookie   s-     	 	 		
r3   c               (    V ^8  d   QhRRRRRRRR/# 	r"   scoper   receiver   sendr   r,   r-   r.   )r/   s   "r0   r1   r2      s(     $ $E $G $4 $D $r3   c                	:  "   VR ,          R8X  d   RMRpV! R VR,           RV P                   RV P                  /4      G Rj  xL
  V! R VR,           R	V P                  /4      G Rj  xL
  V P                  e   V P                  4       G Rj  xL
  R# R#  LS L0 L5i)
type	websocketz
websocket.rq   http.response.startstatusr&   Nhttp.response.bodyr7   )r$   rQ   r7   r*   )r:   r   r   r   prefixs   &&&& r0   __call__Response.__call__   s     !&v+!=2!66$**4++
 	
 	
 FF%996499MNNN??&//### '	
 	O $s5   ?BB$B&B'%BB	BBB)r]   r*   r7   r(   rQ   r$   )N   NNNr5   )	rq   NN/NFFrt   F)r   NFFrt   )__name__
__module____qualname____firstlineno__r(   rC   r;   r6   r8   propertyr&   r   r   r   __static_attributes__r.   r3   r0   r   r      sE    JG#,'8  
+OZ
($ $r3   r   c                      ] tR t^tRtRtR# )HTMLResponsez	text/htmlr.   Nr   r   r   r   r(   r   r.   r3   r0   r   r      s    Jr3   r   c                      ] tR t^tRtRtR# )PlainTextResponse
text/plainr.   Nr   r.   r3   r0   r   r      s    Jr3   r   c                  B   a  ] tR t^tRtRR V 3R llltR R ltRtV ;t# )JSONResponsezapplication/jsonc               0    V ^8  d   QhRRRRRRRRR	R
RR/# r!   r.   )r/   s   "r0   r1   JSONResponse.__annotate__   sN     P PP P *	P
 P *P 
Pr3   c                	*   < \         SV `  WW4V4       R # r5   )superr;   )r:   r#   r$   r&   r(   r*   	__class__s   &&&&&&r0   r;   JSONResponse.__init__   s     	wJOr3   c                    V ^8  d   QhRRRR/# )r"   r#   r   r,   r@   r.   )r/   s   "r0   r1   r      s      c e r3   c                	V    \         P                  ! VR R RRR7      P                  R4      # )FN)ensure_ascii	allow_nanindent
separatorsr   ),:)jsondumpsrB   rD   s   &&r0   r6   JSONResponse.render   s-    zz!
 &/	r3   r.   r   NNN)	r   r   r   r   r(   r;   r6   r   __classcell__r   s   @r0   r   r      s    #JP P r3   r   c                  2   a  ] tR t^tRR V 3R llltRtV ;t# )RedirectResponsec          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r"   urlz	str | URLr$   r%   r&   r'   r*   r+   r,   r-   r.   )r/   s   "r0   r1   RedirectResponse.__annotate__   sC     O OO O *	O
 *O 
Or3   c                	r   < \         SV `  R W#VR7       \        \        V4      RR7      V P                  R&   R# )r3   )r#   r$   r&   r*   z:/%#?=@[]!$&'()*+,;)safelocationN)r   r;   r   rM   r&   )r:   r   r$   r&   r*   r   s   &&&&&r0   r;   RedirectResponse.__init__   s4     	+[ef#(S8M#NZ r3   r.   )i3  NN)r   r   r   r   r;   r   r   r   s   @r0   r   r      s    O O Or3   r   c                  V    ] tR t^t$ R]R&   RR R lltR R ltR R	 ltR
 R ltRt	R# )StreamingResponseAsyncContentStreambody_iteratorNc               0    V ^8  d   QhRRRRRRRRR	R
RR/# )r"   r#   ContentStreamr$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   )r/   s   "r0   r1   StreamingResponse.__annotate__   sF     # ## # *	#
 # *# 
#r3   c                	    \        V\        4      '       d   Wn        M\        V4      V n        W n        Vf   V P
                  MTV n        WPn        V P                  V4       R # r5   )r?   r   r   r   r$   r(   r*   r8   r9   s   &&&&&&r0   r;   StreamingResponse.__init__   sO     g}--!(!6w!?D&-7-?$//Z$'"r3   c                    V ^8  d   QhRRRR/# )r"   r   r   r,   r-   r.   )r/   s   "r0   r1   r      s      7 t r3   c                	R   "    V! 4       G Rj  xL
 pVR,          R8X  g   K   R#  L5i)TNr   zhttp.disconnectr.   )r:   r   messages   && r0   listen_for_disconnect'StreamingResponse.listen_for_disconnect   s&     #IoGv"33 &s   '%''c                    V ^8  d   QhRRRR/# )r"   r   r   r,   r-   r.   )r/   s   "r0   r1   r      s     T T$ T4 Tr3   c           	     	r  "   V! R RRV P                   RV P                  /4      G Rj  xL
  V P                    Rj  xL
  p\        V\        \
        ,          4      '       g   VP                  V P                  4      pV! R RRVRR/4      G Rj  xL
  K^   Ln L[ L
D^T! R RRR	RR
/4      G Rj  xL 
  R# 5i)r   r   r   r&   Nr   r7   	more_bodyTr3   F)r$   rQ   r   r?   r@   rA   rB   rC   )r:   r   chunks   && r0   stream_response!StreamingResponse.stream_response   s     -$**4++
 	
 	
  -- 	Y 	Y%eUZ%788T\\2 4fe[RVWXXX	
	Y Y .
 F0&#{ERSSSsO   &B7BB7BBBAB7BB7BB7B7/B20B7c               (    V ^8  d   QhRRRRRRRR/# r   r.   )r/   s   "r0   r1   r     s(     $ $E $G $4 $D $r3   c                	   a"   \        \        \        VP                  R / 4      P                  RR4      P	                  R4      4      4      pVR8  d    V P                  V4      G Rj  xL
  M\        4       ;_uu_ 4        \        P                  ! 4       ;_uu_4       GRj  xL
 oR V3R llpSP                  V\        V P
                  V4      4       V! \        V P                  V4      4      G Rj  xL
  RRR4      GRj  xL
  RRR4       V P                  e   V P                  4       G Rj  xL
  R# R#  L  \         d    \        4       hi ; i L Lc LU  + GRj  xL 
 '       g   i     Ll; i  + '       g   i     Lw; i LX5i)asgispec_versionz2.0.Nc                    V ^8  d   QhRRRR/# )r"   funczCallable[[], Awaitable[None]]r,   r-   r.   )r/   s   "r0   r1   0StreamingResponse.__call__.<locals>.__annotate__  s     9 9)F 94 9r3   c                f   <"   V ! 4       G R j  xL
  SP                   P                  4        R #  L 5ir5   )cancel_scopecancel)r   
task_groups   &r0   wrap(StreamingResponse.__call__.<locals>.wrap  s&     "f"//668 %s   1/!1)r"      )tuplemapr%   getsplitr   OSErrorr   r   anyiocreate_task_group
start_soonr   r   r*   )r:   r   r   r   r   r   r   s   &&&&  @r0   r   StreamingResponse.__call__  s3    Seii&;&?&?PU&V&\&\]`&abc6!)**4000 $%% 22444
9 9 ))$8L8Ld0STwt'A'A7KLLL 54 & ??&//### ' 1 )&(() 5 M 5444 &% $s   AFD> (D<)D> -F "E9"E#E9&AE	5E6E	:E9EE9
)F3F4F<D> >EFE9E	E9E6#E&$
E6/E61E99F			F)r*   r   r(   r$   r   )
r   r   r   r   __annotations__r;   r   r   r   r   r.   r3   r0   r   r      s"    %%#"T$ $r3   r   c                  &    ] tR tRtRR R lltRtR# )MalformedRangeHeaderi  c                    V ^8  d   QhRRRR/# )r"   r#   rM   r,   r-   r.   )r/   s   "r0   r1   !MalformedRangeHeader.__annotate__  s       D r3   c                	    Wn         R # r5   r#   rD   s   &&r0   r;   MalformedRangeHeader.__init__  s    r3   r   N)zMalformed range header.r   r   r   r   r;   r   r.   r3   r0   r   r     s     r3   r   c                  "    ] tR tRtR R ltRtR# )RangeNotSatisfiablei   c                    V ^8  d   QhRRRR/# )r"   max_sizer%   r,   r-   r.   )r/   s   "r0   r1    RangeNotSatisfiable.__annotate__!  s     ! ! ! !r3   c                	    Wn         R # r5   r   )r:   r   s   &&r0   r;   RangeNotSatisfiable.__init__!  s     r3   r   Nr   r.   r3   r0   r   r      s    ! !r3   r   c                      ] tR tRtR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4       t]R R l4       tR R ltRtR# )FileResponsei%  Nc               @    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"   rf   zstr | os.PathLike[str]r$   r%   r&   r'   r(   r)   r*   r+   filenamestat_resultzos.stat_result | Nonemethodcontent_disposition_typerM   r,   r-   r.   )r/   s   "r0   r1   FileResponse.__annotate__(  sn     #/ #/$#/ #/ *	#/
 #/ *#/ #/ +#/ #/ #&#/ 
#/r3   c
                	:   Wn         W n        W`n        Ve   \        P                  ! R\
        4       Vf'   \        T;'       g    T4      ^ ,          ;'       g    RpW@n        WPn        V P                  V4       V P                  P                  RR4       V P                  e\   \        V P                  4      p
WP                  8w  d	   V	 RV
 2pMV	 RV P                   R2pV P                  P                  RV4       Wpn        Ve   V P                  V4       R # R # )	Nz;The 'method' parameter is not used, and it will be removed.r   zaccept-rangesr@   z; filename*=utf-8''z; filename=""zcontent-disposition)rf   r$   r  warningswarnDeprecationWarningr   r(   r*   r8   r&   
setdefaultr   r  set_stat_headers)r:   rf   r$   r&   r(   r*   r  r  r  r  content_disposition_filenamecontent_dispositions   &&&&&&&&&&  r0   r;   FileResponse.__init__(  s    	& MMM" #H$4$45a8HHLJ$$'"9==$+0+?(+}}<)A(BBUVrUs&t#)A(B,t}}o]^&_#LL##$9;NO&"!!+. #r3   c                    V ^8  d   QhRRRR/# )r"   r  zos.stat_resultr,   r-   r.   )r/   s   "r0   r1   r  M  s     . .N .t .r3   c                	   \        VP                  4      p\        VP                  R R7      p\        VP                  4      R,           \        VP                  4      ,           pR\        P
                  ! VP                  4       RR7      P                  4        R2pV P                  P                  RV4       V P                  P                  RV4       V P                  P                  RV4       R	# )
Tro   -r	  F)usedforsecuritycontent-lengthlast-modifiedetagN)
rM   st_sizer   st_mtimehashlibmd5rB   	hexdigestr&   r  )r:   r  rX   last_modified	etag_baser  s   &&    r0   r  FileResponse.set_stat_headersM  s    [001";#7#7E,,-3c+:M:M6NN	7;;y//15ISSUVVWX 0.A?-r3   c               (    V ^8  d   QhRRRRRRRR/# r   r.   )r/   s   "r0   r1   r  W  s(     '$ '$E '$G '$4 '$D '$r3   c                	T  "   VR ,          P                  4       R8H  pRVP                  R/ 4      9   pV P                  f    \        P                  P                  \        P                  V P                  4      G Rj  xL
 pV P                  V4       VP                  p\        P                  ! V4      '       g   \        RV P                   R24      hMV P                  p\        VR7      pVP                  R	4      p	VP                  R
4      p
V	e   V
e3   V P                  V
4      '       g   V P!                  W4V4      G Rj  xL
  M V P#                  WP$                  4      p\1        T4      ^8X  d2   T^ ,          w  rT P3                  Y>YP$                  T4      G Rj  xL
  M%T P5                  Y;TP$                  T4      G Rj  xL
  V P6                  e   V P7                  4       G Rj  xL
  R# R#  ELx  \         d    \        RT P                   R24      hi ; i L  \&         d2   p\)        TP*                  RR7      ! YT4      G Rj  xL 
 u Rp?# Rp?i\,         d9   p\)        RRRTP.                   2/R7      pT! YT4      G Rj  xL 
 u Rp?# Rp?ii ; i EL L L5i)r  HEADhttp.response.pathsend
extensionsNzFile at path z is not a file.z does not exist.)r   rangezif-rangei  )r$   i  zContent-Rangez*/)r$   r&   )upperr   r  r   	to_threadrun_syncosstatrf   r  st_modeS_ISREGRuntimeErrorFileNotFoundErrorr   _should_use_range_handle_simple_parse_range_headerr  r   r   r#   r   r   rN   _handle_single_range_handle_multiple_rangesr*   )r:   r   r   r   send_header_onlysend_pathsendr  moder&   
http_rangehttp_if_rangerangesexcresponsestartends   &&&&            r0   r   FileResponse.__call__W  sW    !&x!6!6!8F!B6%))LRT:UU#S$)OO$<$<RWWdii$PP%%k2 #**||D))&tyyk'QRR * **K&[[)
J/-";DDZDZ[hDiDi%%dmLLL<11*>Q>QR 6{a#AY
//SBUBUWghhh224ATATVfggg??&//### 'A Q$ P"]499+=M#NOOP M ( c.s{{LU]abbbb& <,Z\]`]i]i\jXkFlm%ed;;;;< ig $s   >J(;G7 <G4=G7 BJ(-J(HJ(	H! $;J(J! %J(J$%J(+J&,J(4G7 7%HJ(!J,!IIIJJ(J%J&(JJJJJ(JJ($J(&J(c               (    V ^8  d   QhRRRRRRRR/# )r"   r   r   r5  ri   r6  r,   r-   r.   )r/   s   "r0   r1   r    s0     f f f fVZ f_c fr3   c           
     	  "   V! R RRV P                   RV P                  /4      G Rj  xL
  V'       d   V! R RRRRR	/4      G Rj  xL
  R# V'       d*   V! R R
R\        V P                  4      /4      G Rj  xL
  R# \        P
                  ! V P                  RR7      G Rj  xL
 ;_uu_4       GRj  xL
 pRpV'       dT   VP                  V P                  4      G Rj  xL
 p\        V4      V P                  8H  pV! R RRVRV/4      G Rj  xL
  K[  RRR4      GRj  xL
  R#  L L L L L{ LP L$ L  + GRj  xL 
 '       g   i     R# ; i5i)r   r   r   r&   Nr   r7   r3   r   Fr$  rf   rbr7  T)	r$   rQ   rM   rf   r   	open_fileread
chunk_sizerN   )r:   r   r5  r6  filer   r   s   &&&&   r0   r1  FileResponse._handle_simple  s    F18T=M=MyZ^ZjZjklll 4fc;PUVWWW 8&#dii.QRRR"__TYYTBBBBBd 	"&))DOO"<<E #E
doo =I(<fe[Zcdeee CBB 	mWRB =e CBBBs   &ED(EED*E"E7D,8+E#D.$E4D05E8
D8D8!D2"-D8D4D8E!D6"E*E,E.E0E2D84D86E8E	>E?
E	
E		Ec               0    V ^8  d   QhRRRRRRRRRRR	R
/# )r"   r   r   r=  r%   r>  	file_sizer5  ri   r,   r-   r.   )r/   s   "r0   r1   r    sD     f ff!$f+.f;>fRVf	fr3   c           
     	B  "   R V RV^,
           RV 2V P                   R&   \        W2,
          4      V P                   R&   V! RRR^RV P                  /4      G R	j  xL
  V'       d   V! RR
RRRR/4      G R	j  xL
  R	# \        P                  ! V P
                  RR7      G R	j  xL
 ;_uu_4       GR	j  xL
 pVP                  V4      G R	j  xL
  RpV'       d   VP                  \        V P                  W2,
          4      4      G R	j  xL
 pV\        V4      ,          p\        V4      V P                  8H  ;'       d    W#8  pV! RR
RVRV/4      G R	j  xL
  K  R	R	R	4      GR	j  xL
  R	#  EL L L L L Lo L% L  + GR	j  xL 
 '       g   i     R	# ; i5i)zbytes r  r   content-ranger  r   r   r   r&   Nr   r7   r3   r   FrB  rC  T)r&   rM   rQ   r   rD  rf   seekrE  minrF  rN   )	r:   r   r=  r>  rJ  r5  rG  r   r   s	   &&&&&&   r0   r3  !FileResponse._handle_single_range  sY     +1qq	9+(N_%),S[)9%&F18S)TM]M]^___ 4fc;PUVWWW"__TYYTBBBBBdii&&& 	"&))C,M"NNESZ'E #E
doo = M M%+I(<fe[Zcdeee CBB	 	`WB& O f CBBBs   AFE1F(F9E4:+F%E6&F6E87F:FE:F.FE<4FFE>FF*F +F4F6F8F:F<F>F FF	F	
F	F		Fc          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r"   r   r   r:  list[tuple[int, int]]rJ  r%   r5  ri   r,   r-   r.   )r/   s   "r0   r1   r    s<     ! !! &! 	!
 ! 
!r3   c                	
  "   \        ^4      pV P                  W%W0P                  R,          4      w  rgRV 2V P                  R&   \        V4      V P                  R&   V! RRR^RV P                  /4      G R	j  xL
  V'       d   V! RR
RRRR/4      G R	j  xL
  R	# \
        P                  ! V P                  RR7      G R	j  xL
 ;_uu_4       GR	j  xL
 pV F  w  rV! RR
RV! W4      RR/4      G R	j  xL
  VP                  V	4      G R	j  xL
  W8  d^   VP                  \        V P                  W,
          4      4      G R	j  xL
 pV	\        V4      ,          p	V! RR
RVRR/4      G R	j  xL
  Kc  V! RR
RRRR/4      G R	j  xL
  K  	  V! RR
RRV R2P                  R4      RR/4      G R	j  xL
  R	R	R	4      GR	j  xL
  R	#  ELT EL9 EL EL L L L Lm LW L, L  + GR	j  xL 
 '       g   i     R	# ; i5i)   zcontent-typezmultipart/byteranges; boundary=rL  r  r   r   r   r&   Nr   r7   r3   r   FrB  rC  T   
z
--z--
rH   )r   generate_multipartr&   rM   rQ   r   rD  rf   rM  rE  rN  rF  rN   rB   )r:   r   r:  rJ  r5  boundaryrX   header_generatorrG  r=  r>  r   s   &&&&&       r0   r4  $FileResponse._handle_multiple_ranges  s     R=+/+B+Bin)E,
( +J((T_%),^)<%&F18S)TM]M]^___ 4fc;PUVWWW"__TYYTBBBBBd"(JE(<fFVW\Fbdoquvwww))E***+&*iiDOOS[0Q&R RU+"F,@&%Q\^b#cddd(<fe[Z^_``` #)  4$xj 5 < <Y G#U   CBB	 	`WBw* Rd` CBBBs   A6H8G9HHG+HGHGHG&6G
7G&G
8G&G
	'G&0G
1G&G 
	,G&5G"6G&:HG$HHHHG&G&G&G& G&"G&$H&H 	,G/-
H 	8H 	:	Hc                    V ^8  d   QhRRRR/# )r"   r9  rM   r,   ri   r.   )r/   s   "r0   r1   r    s     g gs gt gr3   c                	f    WP                   R ,          8H  ;'       g    WP                   R,          8H  # )r  r  )r&   )r:   r9  s   &&r0   r0  FileResponse._should_use_range  s+    _ ==ffR^R^_eRfAffr3   c               $    V ^8  d   QhRRRRRR/# )r"   r8  rM   rJ  r%   r,   rQ  r.   )r/   s   "r0   r1   r    s"     * *S *S *EZ *r3   c                	h  a . p VP                  R ^4      w  rETP                  4       P	                  4       pTR8w  d   \        R4      hT P                  TS4      p\        T4      ^ 8X  d   \        R4      h\        ;QJ d    T3R lT 4       F  '       g   K   RM	  RM! T3R lT 4       4      '       d   \        S4      h\        ;QJ d    R T 4       F  '       g   K   RM	  RM! R T 4       4      '       d   \        R4      h\        T4      ^8X  d   T# . pT Fy  w  rx\        \        T4      4       FJ  p	Yi,          w  rY{8  d   K  Y8  d   TP                  YT34        KJ  \        Yz4      \        Y4      3Yi&    Ke  	  TP                  Yx34       K{  	  T#   \         d    \        4       hi ; i)	=r@   zOnly support bytes rangez%Range header: range must be requestedc              3  ^   <"   T F"  w  r^ Tu;8*  ;'       d    S8  Mu '       * x  K$  	  R# 5i)r   Nr.   ).0r=  _rJ  s   &  r0   	<genexpr>3FileResponse._parse_range_header.<locals>.<genexpr>  s&     CFA***++Fs   *-TFc              3  .   "   T F  w  rW8  x  K  	  R # 5ir5   r.   )r`  r=  r>  s   &  r0   rb  rc    s     4Vzuu{Vs   z)Range header: start must be less than end)r   r}   r   r   rK   _parse_rangesrN   anyr   r&  insertrN  maxrO   )clsr8  rJ  r:  unitsrange_resultr=  r>  pp_startp_ends   &&f         r0   r2   FileResponse._parse_range_header  sx   (*	)&,,S!4ME ##%G&'ABB""695v;!&'NOO3CFC333CFCCC%i0034V43334V444&'RSSv;!M )+ JE3v;'!'=]MM!S\2!$U!4c#o FFI ( ul+ ! M  	)&((	)s   F F1c               $    V ^8  d   QhRRRRRR/# )r"   rk  rM   rJ  r%   r,   rQ  r.   )r/   s   "r0   r1   r    s"      3 3 ;P r3   c                	   . pVP                  R 4       F  pVP                  4       pV'       d   VR8X  d   K$  RV9  d   K-  VP                  R^4      w  rVVP                  4       pVP                  4       p V'       d   \        V4      MV\        V4      ,
          pV'       d+   V'       d#   \        V4      V8  d   \        V4      ^,           MTpVP                  Wx34       K  	  V#   \         d     K  i ; i)r   r  )r   r   r%   rO   r}   )	ri  rk  rJ  r:  part	start_strend_strr=  r>  s	   &&&      r0   re  FileResponse._parse_ranges  s    (*LL%D::<D 43; $!%C!3I!)ImmoG*3IS\9Q*3CLS\D\c'lQ&bkul+% &. 	  s   6,C'#C'+6C''C65C6c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r"   r:  zSequence[tuple[int, int]]rV  rM   r   r%   rY   r,   z'tuple[int, Callable[[int, int], bytes]]r.   )r/   s   "r0   r1   r    s<     &
 &
)&
 &
 	&

 &
 
1&
r3   c                   aaaa \        S4      p^,V,           \        S4      ,           \        \        S4      4      ,           o\        V3R lV 4       4      ^V,           ,           pVVVV3R l3# )aE  
Multipart response headers generator.

```
--{boundary}\n
Content-Type: {content_type}\n
Content-Range: bytes {start}-{end-1}/{max_size}\n
\n
..........content...........\n
--{boundary}\n
Content-Type: {content_type}\n
Content-Range: bytes {start}-{end-1}/{max_size}\n
\n
..........content...........\n
--{boundary}--\n
```
c              3     <"   T FO  w  r\        \        V4      4      \        \        V^,
          4      4      ,           S,           W!,
          ,           x  KQ  	  R# 5i)   N)rN   rM   )r`  r=  r>  static_header_part_lens   &  r0   rb  2FileResponse.generate_multipart.<locals>.<genexpr>*  sK      
 %
 U_s3sQw<003II{ $s   AAc                T   < R S RS RV  RV^,
           RS R2P                  R4      # )z--z
Content-Type: z
Content-Range: bytes r  r   z

rH   )rB   )r=  r>  rV  rY   r   s   &&r0   <lambda>1FileResponse.generate_multipart.<locals>.<lambda>3  sG    XJ.|n<STYSZZ[\_bc\c[ddefneoostfY  r3   )rN   rM   sum)r:   r:  rV  r   rY   boundary_lenrX   r{  s   &&fff  @r0   rU  FileResponse.generate_multipart  sn    0 8}!#l!2S5F!FSQY]I[![ 
 %
 

 
  
 	
r3   )r*   r  r(   rf   r  r$   i   )r   NNNNNN
attachment)r   r   r   r   rF  r;   r  r   r1  r3  r4  r0  classmethodr2  re  rU  r   r.   r3   r0   r  r  %  sc    J#/J.'$Rff$!Fg * *X  8&
 &
r3   r  )C
__future__r   r  http.cookiesrx   r   r*  r+  r{   r
  collections.abcr   r   r   r   r   r	   r
   email.utilsr   r   	functoolsr   	mimetypesr   secretsr   typingr   r   urllib.parser   r   anyio.to_threadstarlette._utilsr   starlette.backgroundr   starlette.concurrencyr   starlette.datastructuresr   r   r   starlette.requestsr   starlette.typesr   r   r   r   r   r   r   r   rM   r@   rA   ContentSyncContentStreamr   r   r   	Exceptionr   r   r  r.   r3   r0   <module>r     s    "    	  
  [ [  3         / / 7 A A / 0 0I$ I$X8  8 .	Ox 	O +

"W% "7+ "%66=$ =$@9 
!) !
Q
8 Q
r3   