+
    Xj9             4       ,  a  R t0 t ^ RIt^ RIt^ RI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HtHtHt ^ RIHtHtHtHt ^ RIHt ^ RIHtHt ^ RIH t H!t! ^ RI"H#t#H$t$H%t%H&t&H't'H(t( ^ RI)t)^ RI*H+t+ ^ R	I,H-t- ^ R
I.H/t/ ^ RI0H1t1H2t2H3t3 ^ RI4H5t5H6t6 ^ RI7H8t8 ^ RI9H:t:H;t;H<t<H=t=H>t>H?t?H@t@HAtA ^ RIBHCtC ^ RIDHEtEHFtFHGtGHHtHHItI ^ RIJHKtKHLtLHMtMHNtNHOtO ^ RIPHQtQHRtR ^ RISHTtTHUtUHVtVHWtW ^ RIXHYtY ^ RIZH[t[ ^ RI\H]t]H^t^ ^ RI_H`t`Hata ^ RIbHctcHdtdHete ^ RIfHgtg ^ RIhHiti ^ RIjHktkHltlHmtmHntnHoto ^ RIpHqtqHrtrHstsHtttHutu ^ RIpHvtv ^ RIwHxtx ^ RIyHztzH{t{H|t|H}t}H~t~Ht ^ R IHt ^ R!IHt R" R# ltR$ R% lt]'! R&4      t ! R' R(]],          4      tR) R* ltR+ R, lt ! R- R.4      t/ t] ^ k R/ R0 ltR1RR2RR3RR4R5R6R7R8R7R9R7R:R5R;RR<R7/
R= R> lltR? R@ ltRA RB ltRR]5! ]k4      RRRR5R7R7R7RR7]5! R54      RR73RC RD lltRRE RF llt ! RG RH]YEP$                  4      tRItRJtRKtRLtRMt]! RNRRO7      t] ^k ]! 4       tRP RQ ltRR RS lt ! RT RU]&4      tRV RW ltRX RY ltRZ R[ ltR\ R] ltR^ R_ ltR` Ra lt ! Rb Rc]&4      tRd]5! R4      ReRRfRRgRRhRRiRRjRkRlRRmRRnRRoRRpRRqRRrRRsR5RtR7RuR7RvR7RwR5Rx]5! ]k4      RyRRzRR{RR|]5! ]U4      R}]5! R54      /R~ R llt ! R R]YEPN                  4      t] ! R R4      4       t] ! R R4      4       t]! R5R7       ! R R4      4       t] ! R R]q4      4       tR R ltR R ltR R ltR R ltR R ltR R ltR R lt ! R R]x4      tR R ltR R lt ! R R]q4      t ! R R]q4      t ! R R]YEPr                  4      tR# )    N)	AsyncIterator	AwaitableCallable
Collection	Coroutine	GeneratorIteratorMappingSequence)AbstractAsyncContextManagerAbstractContextManagerAsyncExitStackasynccontextmanager)
ContextVar)	dataclassfield)EnumIntEnum)	AnnotatedAnyLiteralProtocolTypeVarcast)Doc)ObjectReceiveStream)params)
ModelField	Undefinedlenient_issubclass)DefaultDefaultPlaceholder)	Dependant)_should_embed_body_fieldsget_body_fieldget_dependantget_flat_dependantget_parameterless_sub_dependantget_stream_item_typeget_typed_return_annotationsolve_dependencies)jsonable_encoder)EndpointContextFastAPIErrorRequestValidationErrorResponseValidationErrorWebSocketRequestValidationError)_PING_INTERVALKEEPALIVE_COMMENTEventSourceResponseServerSentEventformat_sse_event)DecoratedCallableIncEx)create_model_fieldgenerate_unique_idget_value_or_defaultis_body_allowed_for_status_code)routing)wrap_app_handling_exceptions)get_route_pathis_async_callable)iterate_in_threadpoolrun_in_threadpool)URLFormDataURLPath)HTTPException)Request)JSONResponsePlainTextResponseRedirectResponseResponseStreamingResponse)	BaseRouteMatchNoMatchFoundcompile_pathget_name)Mount)StaticFiles)AppTypeASGIAppLifespanReceiveScopeSend	WebSocket)
deprecatedc                    V ^8  d   QhR\         \        .\        \        ,          \        ,          3,          R\        /#    funcreturn)r   rG   r   rK   rU   )formats   "k   /Users/wind/Downloads/Coruna-main学习资料A/backend/venv/lib/python3.14/site-packages/fastapi/routing.py__annotate__rd   q   s2     ' '
G9i1H<<
=''    c                v   a \        V 4      '       d   T M\        P                  ! \        V 4      oR V3R llpV# )z]
Takes a function or coroutine `func(request) -> response`,
and returns an ASGI application.
c                @    V ^8  d   QhR\         R\        R\        RR/# r_   scopereceivesendra   NrX   rW   rY   )rb   s   "rc   rd   &request_response.<locals>.__annotate__~   s.     O O O O O Ore   c                 x   <a"   \        WV4      oR  VV3R llp\        VS4      ! WV4      G Rj  xL
  R#  L5i)c                @    V ^8  d   QhR\         R\        R\        RR/# rh   rl   )rb   s   "rc   rd   3request_response.<locals>.app.<locals>.__annotate__   s(     	 	U 	W 	D 	T 	re   c           
        <"   R p\        4       ;_uu_4       GRj  xL
 pW@R&   \        4       ;_uu_4       GRj  xL
 pWPR&   S! S4      G Rj  xL
 pRRR4      GRj  xL
  X! WV4      G Rj  xL
  RpRRR4      GRj  xL
  V'       g   \        R4      hR#  L Lb LP LB  + GRj  xL 
 '       g   i     LY; i LO L?  + GRj  xL 
 '       g   i     LV; i5i)FNfastapi_inner_astackfastapi_function_astackTar  Response not awaited. There's a high chance that the application code is raising an exception and a dependency with yield has a block with a bare except, or a block with except Exception, and is not raising the exception again. Read more about it in the docs: https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-with-yield/#dependencies-with-yield-and-except)r   r.   )	ri   rj   rk   response_awaitedrequest_stackfunction_stackresponsefrequests	   &&&    rc   app*request_response.<locals>.app.<locals>.app   s     $%'''=0=,-)+++~7E34%&wZ/H ,+ ut444#'  (' $"K  $ (+/ ,+++ 5 ('''s   C BC CBCB$	B B$	CB" C0C 1C7C CC C C B$	"C$B=*B-+
B=6B=8	CC C	
C
C	C	C N)rG   r>   )ri   rj   rk   rz   ry   rx   s   &&& @rc   rz   request_response.<locals>.app~   s5     %$/	 	* +38NNNs   -:8:)r@   	functoolspartialrB   )r`   rz   rx   s   & @rc   request_responser   q   s>     T"" 	0$7 O O4 Jre   c                b    V ^8  d   QhR\         \        .\        R,          3,          R\        /# )r_   r`   Nra   )r   r[   r   rU   )rb   s   "rc   rd   rd      s,      
I;	$/
0re   c                   a  R V 3R llpV# )zE
Takes a coroutine `func(session)`, and returns an ASGI application.
c                @    V ^8  d   QhR\         R\        R\        RR/# rh   rl   )rb   s   "rc   rd   'websocket_session.<locals>.__annotate__   s.     O O O O O Ore   c                 z   <a"   \        WVR 7      oR VV3R llp\        VS4      ! WV4      G Rj  xL
  R#  L5i))rj   rk   c                @    V ^8  d   QhR\         R\        R\        RR/# rh   rl   )rb   s   "rc   rd   4websocket_session.<locals>.app.<locals>.__annotate__   s(     	( 	(U 	(W 	(D 	(T 	(re   c           
      r  <"   \        4       ;_uu_4       GR j  xL
 pW0R&   \        4       ;_uu_4       GR j  xL
 pW@R&   S! S4      G R j  xL
  R R R 4      GR j  xL
  R R R 4      GR j  xL
  R #  LY L< L* L  + GR j  xL 
 '       g   i     L3; i L*  + GR j  xL 
 '       g   i     R # ; i5i)Nrr   rs   )r   )ri   rj   rk   ru   rv   r`   sessions   &&&  rc   rz   +websocket_session.<locals>.app.<locals>.app   sw     %'''=0=,-)+++~7E34w-'' ,+ (''+' ,+++ ('''s   B7A4B7BA6BA<	A8A<	BA:B"B7-B.B76B8A<	:B<BB
BBBB7B4	 B#!
B4	,B4	.	B7N)r[   r>   )ri   rj   rk   rz   r   r`   s   &&& @rc   rz   websocket_session.<locals>.app   s5     E>	( 	( +38NNNs   .;9; )r`   rz   s   f rc   websocket_sessionr      s    O O Jre   _Tc                   Z   a  ] tR t^t o RtV 3R lR ltV 3R lR ltV 3R lR ltRtV t	R	# )
_AsyncLiftContextManagerz|
Wraps a synchronous context manager to make it async.

This is vendored from Starlette to avoid importing private symbols.
c                4   < V ^8  d   QhRS[ S[,          RR/# )r_   cmra   N)r   r   )rb   __classdict__s   "rc   rd   %_AsyncLiftContextManager.__annotate__   s!      1"5 $ re   c                    Wn         R # N_cm)selfr   s   &&rc   __init__!_AsyncLiftContextManager.__init__   s    re   c                    < V ^8  d   QhRS[ /# r_   ra   )r   )rb   r   s   "rc   rd   r      s     $ $" $re   c                >   "   V P                   P                  4       # 5ir   )r   	__enter__r   s   &rc   
__aenter__#_AsyncLiftContextManager.__aenter__   s     xx!!##s   c          	         < V ^8  d   QhRS[ S[,          R,          RS[R,          RS[P                  R,          RS[R,          /# )r_   exc_typeN	exc_value	tracebackra   )typeBaseExceptiontypesTracebackTypebool)rb   r   s   "rc   rd   r      sW     A A}%,A !4'A &&-	A
 
Are   c                B   "   V P                   P                  WV4      # 5ir   )r   __exit__)r   r   r   r   s   &&&&rc   	__aexit__"_AsyncLiftContextManager.__aexit__   s      xx  i@@s   r   N)
__name__
__module____qualname____firstlineno____doc__r   r   r   __static_attributes____classdictcell__r   s   @rc   r   r      s*      $ $A Are   r   c                    V ^8  d   QhR\         \        .\        \        \        \        3,          3,          R\         \        .\        \        ,          3,          /# )r_   lifespan_contextra   )r   r   r   r   )rb   s   "rc   rd   rd      sE      uiS#&>>?se0556re   c                x   a \         P                  ! V 4      o\        P                  ! S4      R V3R ll4       pV# )z
Wrap a generator-based lifespan context into an async context manager.

This is vendored from Starlette to avoid importing private symbols.
c                F    V ^8  d   QhR\         R\        \         ,          /# )r_   rz   ra   )r   r   )rb   s   "rc   rd   0_wrap_gen_lifespan_context.<locals>.__annotate__   s      3 3S 35c: 3re   c                 &   < \        S! V 4      4      # r   )r   )rz   cmgrs   &rc   wrapper+_wrap_gen_lifespan_context.<locals>.wrapper   s    'S	22re   )
contextlibcontextmanagerr}   wraps)r   r   r   s   & @rc   _wrap_gen_lifespan_contextr      s8     $$%56D__T3 3 Nre   c                ~    V ^8  d   QhR\         \        ,          R\         \        ,          R\         \        ,          /# )r_   original_contextnested_contextra   )rV   r   )rb   s   "rc   rd   rd      s0      sm5=c]c]re   c                 0   a a \         R  VV 3R ll4       pV# )c                v    V ^8  d   QhR\         R\        \        \        \        3,          R,          ,          /# )r_   rz   ra   N)rT   r   r
   strr   )rb   s   "rc   rd   -_merge_lifespan_context.<locals>.__annotate__   s3     Y YY	wsCx(4/	0Yre   c           
       <"   S! V 4      ;_uu_4       GR j  xL
 pS! V 4      ;_uu_4       GR j  xL
 pVf   Vf   R 5x  M/ T;'       g    / CT;'       g    / C5x  R R R 4      GR j  xL
  R R R 4      GR j  xL
  R #  Lj LS L  + GR j  xL 
 '       g   i     L1; i L(  + GR j  xL 
 '       g   i     R # ; i5ir   r   )rz   maybe_original_statemaybe_nested_stater   r   s   &  rc   merged_lifespan0_merge_lifespan_context.<locals>.merged_lifespan   s      $C(((,@%c***.@%-2F2NJX066BX<P<V<VTVXX	 +* )((**** )(((s   CBCB'BB'B		B		B		!B',B-B'1C<B%=CB'B'	B"B
B"B"B'%C'C	-B0.
C	9C	;	C)r   )r   r   r   s   ff rc   _merge_lifespan_contextr      s'     Y Y Y re   c                   l   a  ] tR t^t o RtV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltR
t	V t
R# )_DefaultLifespana@  
Default lifespan context manager that runs on_startup and on_shutdown handlers.

This is a copy of the Starlette _DefaultLifespan class that was removed
in Starlette. FastAPI keeps it to maintain backward compatibility with
on_startup and on_shutdown event handlers.

Ref: https://github.com/Kludex/starlette/pull/3117
c                "   < V ^8  d   QhRRRR/# )r_   router	APIRouterra   Nr   )rb   r   s   "rc   rd   _DefaultLifespan.__annotate__   s      { t re   c                    Wn         R # r   _router)r   r   s   &&rc   r   _DefaultLifespan.__init__   s    re   c                   < V ^8  d   QhRR/# r_   ra   Nr   )rb   r   s   "rc   rd   r      s     & &$ &re   c                V   "   V P                   P                  4       G R j  xL
  R #  L5ir   )r   _startupr   s   &rc   r   _DefaultLifespan.__aenter__   s     ll##%%%   )')c                $   < V ^8  d   QhRS[ RR/# )r_   exc_infora   N)object)rb   r   s   "rc   rd   r     s     ' ' 'D 're   c                V   "   V P                   P                  4       G R j  xL
  R #  L5ir   )r   	_shutdown)r   r   s   &*rc   r   _DefaultLifespan.__aexit__  s     ll$$&&&r   c                ,   < V ^8  d   QhRS[ RS[RS[ /# )r_   r   rz   ra   )r   r   )rb   r   s   "rc   rd   r     s"      r  2 re   c                    V # r   r   )r   rz   s   &&rc   __call___DefaultLifespan.__call__  s    re   r   N)r   r   r   r   r   r   r   r   r   r   r   r   s   @rc   r   r      s2      & &' ' re   r   c                0    V ^8  d   QhR\         R\        /# r^   )r   r-   )rb   s   "rc   rd   rd     s      C O re   c                J   \        V 4      pV\        9   d   \        V,          #  / p\        P                  ! V 4      ;pe   W2R&   \        P                  ! V 4      ^,          ;pe   WBR&   \        V RR4      ;pe   WRR&   T\        T&   T#   \         d    \        4       p L"i ; i)zAExtract endpoint context with caching to avoid repeated file I/O.Nfileliner   function)id_endpoint_context_cacheinspectgetsourcefilegetsourcelinesgetattr	Exceptionr-   )r`   func_idctxsource_fileline_number	func_names   &     rc   _extract_endpoint_contextr     s    hG))&w//
 !"0066KC%K"11$7::KG%K z488IE'
O (+G$J	    s   AB
 
B"!B"r   includeexcludeby_aliasTexclude_unsetFexclude_defaultsexclude_noneis_coroutineendpoint_ctx	dump_jsonc                    V ^8  d   QhR\         R,          R\        R\        R,          R\        R,          R\        R\        R\        R	\        R
\        R\        R,          R\        R\        /# )r_   r   Nresponse_contentr   r   r   r   r  r  r  r  r  ra   )r   r   r8   r   r-   )rb   s   "rc   rd   rd   %  s     (2 (2(2 (2 T\	(2
 T\(2 (2 (2 (2 (2 (2 "D((2 (2 	(2re   c           
      l  "   V '       d   V'       d   V P                   ! V/ RR7      w  rM#\        V P                   V/ RR7      G Rj  xL
 w  rV'       d#   T	;'       g    \        4       p\        VVVR7      hV
'       d   V P                  MV P
                  pV! VVVVVVVR7      # \        V4      #  Lj5i)rw   locNerrorsbodyr  r   r   r   r   r  r  rw   )validaterB   r-   r0   serialize_json	serializer,   )r   r  r   r   r   r   r  r  r  r  r  valuer  r   
serializers   $$$$$$$$$$$    rc   serialize_responser  %  s      !NN+;R]SME6"3 0"-# ME 33/"3C)%  
 .7U))EOO
'-%
 	
   011-s(   B44B4B2B4B4 B4 3B4c                j    V ^8  d   QhR\         R\        \        \        3,          R\        R\        /# )r_   	dependantvaluesr  ra   )r#   dictr   r   r   )rb   s   "rc   rd   rd   P  s:     
A 
A
A%)#s(^
ACG
A
Are   c                    "   V P                   f   Q R4       hV'       d   V P                   ! R/ VB G R j  xL
 # \        V P                   3/ VB G R j  xL
 #  L" L5i)N!dependant.call must be a functionr   )callrB   r  r  r  s   $$$rc   run_endpoint_functionr  P  sT     
 >>%J'JJ%^^-f---&y~~@@@@ .@s&   AAAAAAAc                l    V ^8  d   QhR\         R,          R\        R\        \        \        3,          /# )r_   status_codeNsolved_resultra   )intr   r  r   )rb   s   "rc   rd   rd   ]  s0      $J/2	#s(^re   c                     R VP                   /pV '       d   T MVP                  P                  pVe   W2R&   VP                  P                  '       d   VP                  P                  VR&   V# )
backgroundr   )background_tasksrw   r   )r   r!  response_argscurrent_status_codes   $$  rc   _build_response_argsr(  ]  sn     	m44%M #(>(>(J(J  &':m$)))'4'='='I'Im$re   c          '         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\        \        .\        \        \        \        3,          3,          /# )r_   r  
body_fieldNr   response_classresponse_fieldresponse_model_includeresponse_model_excluderesponse_model_by_aliasresponse_model_exclude_unsetresponse_model_exclude_defaultsresponse_model_exclude_nonedependency_overrides_providerembed_body_fieldsstrict_content_typestream_item_fieldis_json_streamra   )r#   r   r"  r   rK   r"   r8   r   r   r   rG   r   )rb   s   "rc   rd   rd   o  s    z zzT!z tz N%77	z
 %z "DLz "DLz "z #'z &*z "&z $':z z  22z "D(z  !z" wi3X#5667#zre   c                   a aaaaaaaaa	a
aaaaaaaaa S P                   f   Q R4       hS P                  oS;'       d%    \        SP                  \        P
                  4      o\        S\        4      '       d   SP                  oMSo\        S\        4      o\        V\        4      '       d   VP                  oMVoR VVVV VVVVVVVVVVV	V
VVVV3R llpV# )Nr  c                0    V ^8  d   QhR\         R\        /# )r_   ry   ra   )rG   rK   )rb   s   "rc   rd   )get_request_handler.<locals>.__annotate__  s     Y Y7 Yx Yre   c                   <aaaaa a!"   R pV P                   P                  R4      p\        V\        4      '       g   Q R4       hS%P                  '       d   \        S%P                  4      M	\        4       oS%P                  '       dL   V P                   P                  RR4      P                  R4      pV P                   RV S%P                   2SR&    R pS$'       Ed4   S('       d5   V P                  4       G R j  xL
 pVP                  VP                  4       MV P                  4       G R j  xL
 pV'       d   \        pV P                  P                  R4      pV'       g"   S#'       g   V P!                  4       G R j  xL
 pM}\"        P$                  P'                  4       pWxR&   VP)                  4       R	8X  dG   VP+                  4       p	V	R
8X  g   V	P-                  R4      '       d   V P!                  4       G R j  xL
 pV\        8w  d   TpMTp. pV P                   P                  R4      p\        V\        4      '       g   Q R4       h\=        V S%\?        \@        \B        \D        3,          \F        ,          \H        ,          R ,          V4      S&VS'R7      G R j  xL
 pVPJ                  pS%P                  '       g   Q hV'       Eg   R VV.V/V0V1V2V3V53R lloS+'       Ed)   S%P                  ! R:/ VPL                  B o R V3R lloS%PN                  '       d   S PQ                  4       o!M\S        S 4      o!\T        R  VV!3R! ll4       pVPW                  V! 4       4      G R j  xL
 pVP                  VPX                  4       R" R# lpV! V4      p\[        VR$VP\                  R%7      pR&VP                  R'&   R(VP                  R)&   VP                  P^                  Pa                  VPb                  P                  P^                  4       EMS*'       d   S%P                  ! R:/ VPL                  B o R* V3R+ lloS%PN                  '       d   R, VV 3R- llpV! 4       pMR. VV 3R/ llpV! 4       p\[        VR0VP\                  R%7      pVP                  P^                  Pa                  VPb                  P                  P^                  4       EMS%PN                  '       g   S%Pd                  '       d   S%P                  ! R:/ VPL                  B o S%PN                  '       d   R1 R2 lpV! S 4      o \g        S4VR37      pS"! R:R4S /VB pVP                  P^                  Pa                  VPb                  P                  P^                  4       EM%\i        S%VPL                  S)R57      G R j  xL
 p\        V\j        4      '       d#   VPl                  f   VP\                  Vn6        TpM\g        S4VR37      pS-R J;'       d    \        S,\n        4      p\q        S-VS3S/S.S2S0S1S)SVR67      G R j  xL
 pV'       d   \k        R:R4VR7R8/VB pM	S"! V3/ VB p\s        VPt                  4      '       g   R9Vn        VP                  P^                  Pa                  VPb                  P                  P^                  4       V'       d   \1        WSR7      pVhV'       g   Q hV#  EL EL ELU EL  \         P.                   dC   p
\1        RRRRT
P2                  3RRR/ RRT
P4                  //.T
P6                  SR7      pYhR p
?
i\8         d    h \:         d   p
\9        RRR7      pYhR p
?
ii ; i EL EL EL ELE5i);Nfastapi_middleware_astackz4fastapi_middleware_astack not found in request scope	root_path / pathcontent-typeapplicationjsonz+jsonr   json_invalidr
  r  msgzJSON decode errorinputr   error)r  r  i  z#There was an error parsing the body)r   detailrr   /fastapi_inner_astack not found in request scope)ry   r  r  r3  async_exit_stackr4  c                0    V ^8  d   QhR\         R\        /# )r_   datara   r   bytes)rb   s   "rc   rd   6get_request_handler.<locals>.app.<locals>.__annotate__  s     < <c <e <re   c           
      $  < S'       dY   SP                  V / RR7      w  rV'       d#   S;'       g    \        4       p\        VV VR7      hSP                  VS
SSS	SSR7      # \	        V 4      p \
        P                  ! V 4      P                  R4      # )rw   r	  r  r  utf-8r  )r  r-   r0   r  r,   rD  dumpsencode)rM  r  errors_r   r  r/  r.  r1  r2  r0  r-  r6  s   &   rc   _serialize_data9get_request_handler.<locals>.app.<locals>._serialize_data  s    $%6%?%?bm &@ &NE *??o.?5#*!%), 
 -;; 6 6!8&B)H%@ <   ,D1D::d+227;;re   c                0    V ^8  d   QhR\         R\        /# r_   itemra   rN  )rb   s   "rc   rd   rP    s      c e re   c                   < \        V \        4      '       d   V P                  e   V P                  pMqV P                  eb   \	        V P                  R4      '       d   V P                  P                  4       pM,\        P                  ! \        V P                  4      4      pMR p\        VV P                  V P                  V P                  V P                  R7      # \        S! V 4      P                  R4      R7      # )Nmodel_dump_json)data_streventr   retrycommentrR  )r]  )
isinstancer5   raw_datarM  hasattrr\  rD  rS  r,   r6   r^  r   r_  r`  decode)rZ  r]  rV  s   & rc   _serialize_sse_item=get_request_handler.<locals>.app.<locals>._serialize_sse_item  s    !$88
  ==437==H!YY2&tyy2CDD+/99+D+D+F+/::6Ftyy6Q+R'+H/%-"&**#ww"&**$(LL    0%4T%:%A%A'%J  re   c                P    V ^8  d   QhR\         \        \        ,          ,          /# r   )r   r   rO  )rb   s   "rc   rd   rP  '  s      11 11'.1 11re   c                   <aaa"   \         P                  \        ,          ! ^R7      w  ooR VVV3R llp \         P                  \        ,          ! ^R7      w  opR VV3R llp\         P                  ! 4       ;_uu_4       GRj  xL
 pVP	                  V 4       VP	                  V4       V5x  VP
                  P                  4        RRR4      GRj  xL
  R#  LW L  + GRj  xL 
 '       g   i     R# ; i5i)   )max_buffer_sizec                    V ^8  d   QhRR/# r   r   )rb   s   "rc   rd   Pget_request_handler.<locals>.app.<locals>._sse_producer_cm.<locals>.__annotate__<  s     V VT Vre   c                     <"   S;_uu_4       GR j  xL
  S  R j  xL
  p SP                  S! V 4      4      G R j  xL
  K+   L1 L( L
D+R R R 4      GR j  xL 
  R #   + GR j  xL 
 '       g   i     R # ; i5ir   )rk   )raw_itemre  send_stream	sse_aiters    rc   	_producerMget_request_handler.<locals>.app.<locals>._sse_producer_cm.<locals>._producer<  sZ     #.;;2; V Vh&1&6&67J87T&U U U $/V U 3< $/;;;;;sz   A;AA;AA
A
A
AA
AA;A
A
AA;AA;A8	$A'%
A8	0A8	2	A;c                    V ^8  d   QhRR/# r   r   )rb   s   "rc   rd   rl  E  s     % %t %re   c                   <"   S;_uu_4       GRj  xL
  S;_uu_4       GRj  xL
     \         P                  ! \        4      ;_uu_ 4        SP                  4       G Rj  xL
 p RRR4       SP	                  X 4      G Rj  xL
  K`   Lx Lg L+  + '       g   i     L1; i L  \
         d#    SP	                  \        4      G Rj  xL 
   K  i ; i  \         P                   d     Mi ; iRRR4      GRj  xL 
  M  + GRj  xL 
 '       g   i     M; iRRR4      GRj  xL 
  R#   + GRj  xL 
 '       g   i     R# ; i5i)zZRead from the producer and forward to the output,
inserting keepalive comments on timeout.N)anyio
fail_afterr2   rj   rk   TimeoutErrorr3   EndOfStream)rM  receive_streamsend_keepalives    rc   _keepalive_inserterWget_request_handler.<locals>.app.<locals>._sse_producer_cm.<locals>._keepalive_inserterE  s      $2>>>>>	%&*%U-2-=-=n-M-M9G9O9O9Q3QD .N.<.A.A$.G(G(G $2>
 4R .N-M(G+7 %U.<.A.ABS.T(T(T%U#(#4#4 % $% 4B>>>>>>>>>>>s  EBED2BD2D	C"B&B#B$B(B&B$B&	CED2BB!	B&&#C	C
CCCCC.+D	-C..D	1D2<C?=D2D	D

DDD2E*D-+E2E	8D;9
E	E		EN)ru  create_memory_object_streamrO  create_task_group
start_sooncancel_scopecancel)	rq  receive_keepaliver{  tgry  rz  ro  re  rp  s	       @@@rc   _sse_producer_cm:get_request_handler.<locals>.app.<locals>._sse_producer_cm&  s     $ 382S2S3&'3)/KV V 99%@QRS 6N$5% %  %66888Bi0&9://..0	  988888sO   BD CD AC#D C!D !D #C=	)C,*
C=	5C=	7	D c                \    V ^8  d   QhR\         \        ,          R\        \        ,          /# )r_   streamra   )r   rO  r   )rb   s   "rc   rd   rP  e  s&     - -/6-"5)-re   c                z   "   V   R j  xL
  pV5x  \         P                  ! ^ 4      G R j  xL
  K/   L* LD-R # 5ir   ru  sleep)r  rM  s   & rc   _sse_with_checkpoints?get_request_handler.<locals>.app.<locals>._sse_with_checkpointse  s=      '- - -d"
 $kk!n,,-
 - '-(   ;848 ;6;8;;ztext/event-stream)
media_typer$  zno-cachezCache-ControlnozX-Accel-Bufferingc                0    V ^8  d   QhR\         R\        /# rY  rN  )rb   s   "rc   rd   rP    s     9 9# 9% 9re   c                 "   < S! V 4      R ,           # )   
r   )rZ  rV  s   &rc   _serialize_item9get_request_handler.<locals>.app.<locals>._serialize_item  s    *40588re   c                :    V ^8  d   QhR\         \        ,          /# r   )r   rO  )rb   s   "rc   rd   rP    s     1 1}U7K 1re   c                    <"   S  R j  xL
  p S! V 4      5x  \         P                  ! ^ 4      G R j  xL
  K5   L0 LD3R # 5ir   r  rZ  r  gens    rc   _async_stream_jsonl=get_request_handler.<locals>.app.<locals>._async_stream_jsonl  sB     *- 1 1$"1$"77 #(++a.00	1 1	 +.s-   A?;?&A=A?AAc                :    V ^8  d   QhR\         \        ,          /# r   )r	   rO  )rb   s   "rc   rd   rP    s     8 8 8re   c               3   6   <"   S F  p S! V 4      x  K  	  R # 5ir   r   r  s    rc   _sync_stream_jsonl<get_request_handler.<locals>.app.<locals>._sync_stream_jsonl  s     $'D"1$"77 %(s   zapplication/jsonlc                \    V ^8  d   QhR\         \        ,          R\         \        ,          /# )r_   	async_genra   )r   r   )rb   s   "rc   rd   rP    s&     1 1#0#51&s+1re   c                z   "   V   R j  xL
  pV5x  \         P                  ! ^ 4      G R j  xL
  K/   L* LD-R # 5ir   r  )r  chunks   & rc   _async_stream_raw;get_request_handler.<locals>.app.<locals>._async_stream_raw  s=      ,5 1 1%"'K #(++a.00	1 1	 ,5r  )r   r!  contentr  )r   r  r   r   r   r   r  r  r  r  r  r  zapplication/jsonre   r   );ri   getra  r   r  r   r-   rA  rstripmethodformpush_async_callbackcloser  r   headersrD  emailmessageMessageget_content_maintypeget_content_subtypeendswithJSONDecodeErrorr/   posrF  docrF   r   r+   r   r  r   r   rD   rO  r  r  is_async_gen_callable	__aiter__rA   r   enter_async_contextacloserL   r%  rawextendrw   is_gen_callabler(  r  rK   r$  r"   r  r<   r   )6ry   rw   
file_stack
mount_pathr  
body_bytes	json_bodycontent_type_valuer  subtypeevalidation_error
http_errorr  rK  r!  r  sse_receive_streamr  sse_stream_contentr  jsonl_stream_contentr  r  r&  raw_responseuse_dump_jsonr  rV  r  re  r  r  rp  actual_response_classactual_strict_content_typer*  r  r3  r4  is_body_formr  r7  is_sse_streamr+  r,  r/  r.  r1  r2  r0  r-  r   r6  s6   &                           @@@@@@rc   rz    get_request_handler.<locals>.app  s    $(]]&&'BC
*n55 	
B	
5 ~~~ &inn5 " 	 >>> **;;BB3GJ&-nn%5Qzl9>>BR#SL /	$Dz!(/D224::>'.||~!5J!)2	-4__-@-@-P*1#=29,,.,@	&+mm&;&;&=G6HN3&;;=N*1*E*E*G#*f#48H8H8Q8Q6=lln0DI$	1#,D#-D4 "==,,-CD*N;; 	
=	
; 1d38nx/%7$>E*G-/
 
 %%~~~~v< <2 }nn<}';';< : 22247MMOI 5c :I$11 11 %11n ,<+O+O$&, &"
 !445G5N5NO- **<= # -&2,==
 5?  18<  !45  $$++M,B,B,J,J,N,NOnn<}';';<9 9 2221 1 ,- )
8 8 ,>+?(,(2,==
   $$++M,B,B,J,J,N,NO000I4M4M4Mnn<}';';<2221 ,C0C 4 +=! 1NNN  $$++M,B,B,J,J,N,NO%:'(//!-&  
 lH55#..62?2P2P/+H$8$/}%M %3$$> % %:&(:DM %7,)5 6 6!8&B)H%@%1%1"/% G %#+ $$+$'9$ ,$ $9#RM#R:8;O;OPP(+$$((//0F0F0N0N0R0RS5  #" xC
 0 "6 -A 1E
 ## 	*5 2/ UU)  #) 	 	$&(MJ #		$
J&h *sk  A]'0]'A]'
[ [ &[ 9[:[ ]'[ -[.[ :([ #[ +[ >[?A)[ )[ <[=[ ]'[ B
]']!]'>
]'	]'"6]'A]'!]"B/]'6]'	B]']'--]'B]' ]!!A]'5*]']$ ]',B]'2]'	]'[ [ [ [ ].=\++]8
]]]]]']'!]'$]')
r  is_coroutine_callablera  
field_infor   Formr"   r  r    r4   )r  r*  r   r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  rz   r  r  r  r  r  s   fffffffffffff&ff @@@@@rc   get_request_handlerr  o  s    $ >>%J'JJ%22LPP*Z-B-BFKK"PL."4550>0D0D .&'<>QRM%'9::+>+D+D"%8"Y Y Y Yv
 Jre   c                    V ^8  d   QhR\         R\        R,          R\        R\        \        .\
        \        \        \        3,          3,          /# )r_   r  r3  Nr4  ra   )r#   r   r   r   r[   r   )rb   s   "rc   rd   rd     sK     " ""#&:" " yk9S#s]334	"re   c                 "   a aa R  V VV3R llpV# )c                (    V ^8  d   QhR\         RR/# )r_   	websocketra   NrZ   )rb   s   "rc   rd   'get_websocket_app.<locals>.__annotate__  s     5 5Y 54 5re   c                   <"   SP                   '       d   \        SP                   4      M	\        4       pSP                  '       d@   V P                  P                  R R4      P                  R4      pRV SP                   2VR&   V P                  P                  R4      p\        V\        4      '       g   Q R4       h\        V SSVSR7      G Rj  xL
 pVP                  '       d   \        VP                  VR	7      hSP                   f   Q R
4       hSP                   ! R/ VP                  B G Rj  xL
  R#  Lh L5i)r=  r>  r?  zWS rA  rr   rJ  ry   r  r3  rK  r4  N)r  r  r   )r  r   r-   rA  ri   r  r  ra  r   r+   r  r1   r  )r  r  r  rK  r!  r  r3  r4  s   &    rc   rz   get_websocket_app.<locals>.app  s(     ~~~ &inn5 " 	
 >>>",,["=DDSIJ%(Y^^4D#EL $??../EF*N;; 	
=	
; 1*G-/
 
 1$$)  ~~)N+NN)nn4}33444
 	5s2   AD>B
D>D:D>(AD>3D<4D><D>r   )r  r3  r4  rz   s   fff rc   get_websocket_appr    s    
5 5: Jre   c                   `   a a ] tR tRt oRRRRRR/V3R lR lltV3R lV 3R	 lltR
tVtV ;t# )APIWebSocketRoutei  nameNdependenciesr3  c                   < V ^8  d   QhRS[ RS[RS[3,          RS[ R,          RS[S[P
                  ,          R,          RS[R,          RR/# )	r_   rA  endpoint.r  Nr  r3  ra   r   r   r   r   r   Depends)rb   r   s   "rc   rd   APIWebSocketRoute.__annotate__  sf     
 

 38$

 Dj
 v~~.5
 (+Tz
 

re   c                  Wn         W n        Vf   \        V4      MTV n        \	        T;'       g    . 4      V n        \        V4      w  V n        V n        V n	        \        V P                  V P                  V P
                  R7      w  V n        V n        V n        \        \        V P                  VV P                  R7      4      V n        R # )NrA  r  r  r  r3  r4  )rA  r  rQ   r  listr  rP   
path_regexpath_formatparam_convertors0_build_dependant_with_parameterless_dependenciesr  _flat_dependant_embed_body_fieldsr   r  rz   )r   rA  r  r  r  r3  s   &&&$$$rc   r   APIWebSocketRoute.__init__  s     	 *.,HX&D	 !3!34COPTCU@)4+@
 =!!**
		
N # %...K"&"9"9
re   c                <   < V ^8  d   QhRS[ RS[S[S[ 3,          /# r_   ri   ra   rX   tuplerN   )rb   r   s   "rc   rd   r  1  s$     " "U "uUE\': "re   c                ^   < \         SV `  V4      w  r#V\        P                  8w  d   WR &   W#3# )route)supermatchesrN   NONE)r   ri   matchchild_scope	__class__s   &&  rc   r  APIWebSocketRoute.matches1  s1    "W_U3EJJ#' !!re   )r  r  rz   r  r  r  r  r  rA  r  r  )	r   r   r   r   r   r  r   r   __classcell__r  r   s   @@rc   r  r    s<     

  
 9=
 59
 
>" " "re   r  fastapieffective_route_contextfrontend_pathfrontend_specificityincluded_routerfastapi_effective_route_context)defaultc                    V ^8  d   QhRR/# r   r   )rb   s   "rc   rd   rd   C  s     	 	t 	re   c                      R # r   r   r   re   rc   _frontend_dependency_endpointr	  C  s    re   c                    V ^8  d   QhR\         R\        R\        3,          R\        \        P
                  ,          R\        \        \        \        3,          /# )r_   rA  r  .r  ra   )	r   r   r   r   r   r  r  r#   r   )rb   s   "rc   rd   rd   G  sP     8 8
8 38
8 6>>*	8
 9i%&8re   c           	          \        WR R7      pVRRR1,           F)  pVP                  P                  ^ \        W@R7      4       K+  	  \	        V4      p\        VP                  4      pW5V3# )r   )rA  r  ri   N)dependsrA  )r&   r  insertr(   r'   r$   body_params)rA  r  r  r  r  flat_dependantr4  s   $$$    rc   r  r  G  sn     4*EI"%%%%+GG	
 &
 (	2N1.2L2LM&777re   c                   ,   a  ] tR tRt o V 3R ltRtV tR# )_RouteWithPathiX  c                &   < V ^8  d   Qh/ S[ ;R&   # )r_   rA  r   )rb   r   s   "rc   rd   _RouteWithPath.__annotate__X  s     
I re   r   Nr   r   r   r   __annotate_func__r   r   r   s   @rc   r  r  X        re   r  c                R    V ^8  d   QhR\         R\        \        \        3,          /# r  )rX   r  r   r   )rb   s   "rc   rd   rd   \  s"      e S#X re   c                 b    V P                  \        / 4      p\        V\        4      '       g   Q hV# r   )
setdefault_FASTAPI_SCOPE_KEYra  r  )ri   fastapi_scopes   & rc   _get_fastapi_scoper  \  s.    $$%7<MmT****re   c                4    V ^8  d   QhR\         R\         RR/# )r_   ri   r  ra   N)rX   )rb   s   "rc   rd   rd   b  s!     > > >U >t >re   c                     VP                  \        4      pVP                  4        F  w  r4V\        8w  g   K  W@V&   K  	  \        V\        4      '       d   \        V 4      P                  V4       R # R # r   )r  r  itemsra  r  r  update)ri   r  fastapi_child_scopekeyr  s   &&   rc   _update_scoper%  b  s`    %//*<=!'')
$$#J * %t,,5!(()<= -re   c                >    V ^8  d   QhR\         R\        R,          /# r_   ri   ra   NrX   r   )rb   s   "rc   rd   rd   k  s"     W We Wd
 Wre   c                 T    V P                  \        / 4      P                  \        4      # r   )r  r  $_FASTAPI_EFFECTIVE_ROUTE_CONTEXT_KEYri   s   &rc   "_get_scope_effective_route_contextr,  k  s     99',001UVVre   c                >    V ^8  d   QhR\         R\        R,          /# r'  r(  )rb   s   "rc   rd   rd   o  s"     O Oe Od
 Ore   c                 T    V P                  \        / 4      P                  \        4      # r   )r  r  _FASTAPI_INCLUDED_ROUTER_KEYr+  s   &rc   _get_scope_included_routerr0  o  s     99',001MNNre   c                >    V ^8  d   QhR\         R\        R,          /# r'  )rX   r"  )rb   s   "rc   rd   rd   s  s      u t re   c                     V P                  \        / 4      P                  \        4      p\        V\        4      '       d   V# R # r   )r  r  !_FASTAPI_FRONTEND_SPECIFICITY_KEYra  r"  )ri   specificitys   & rc   _frontend_scope_specificityr5  s  s9    )).377)K +s##re   c                @    V ^8  d   QhR\         R\        R\        RR/# )r_   ri   r$  previousra   N)rX   r   r   )rb   s   "rc   rd   rd   |  s(     & &e &# & & &re   c                     V P                  \        4      p\        V\        4      '       g   R # V\        J d   VP                  VR 4       R # W#V&   R # r   )r  r  ra  r  _SCOPE_MISSINGpop)ri   r$  r7  r  s   &&& rc   _restore_fastapi_scope_keyr;  |  sA    II01MmT**>!#t$%cre   c                   ,   a  ] tR tRt o V 3R ltRtV tR# )_APIRouteLikei  c                  < V ^8  d   Qh/ S[ ;R&   S[RS[3,          ;R&   S[R,          ;R&   S[;R&   S[ R,          ;R&   S[ ;R&   S[R,          ;R	&   S[ R,          ;R
&   S[R,          ;R&   S[R,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[S[,          S[,          ;R&   S[R,          ;R&   S[S[	,          R,          ;R&   S[
S[ S[3,          R,          ;R&   S[S[.S[ 3,          S[,          ;R&   S[S[,          ;R&   S[S[ S[,          ,          ;R&   S[
S[S[ ,          S[
S[ S[3,          3,          ;R&   S[ ;R&   S[;R&   S[ ;R&   S[
S[ S[3,          ;R&   S[S[ ,          ;R&   S[ ;R&   S[R,          ;R &   S[R,          ;R!&   S[R,          ;R"&   S[S[P                   ,          ;R#&   S[ ;R$&   S[
S[S[ ,          S[3,          ;R%&   S[;R&&   S[;R'&   S[;R(&   S[R,          ;R)&   S[;R*&   S[;R+&   # ),r_   rA  .r  Nstream_item_typeresponse_modelsummaryresponse_descriptionr\   operation_idr-  r.  r/  r0  r1  r2  include_in_schemar+  r3  	callbacksopenapi_extragenerate_unique_id_functionr5  tags	responsesr  r  r  r  methods	unique_idr   r,  r6  r  descriptionresponse_fieldsr  r  r  r*  r  r7  )r   r   r   r   r8   r   rK   r"   r  rM   r  r   r"  setr   r   r  r#   )rb   r   s   "rc   rd   _APIRouteLike.__annotate__  s    
I sCx    Dj   	 
 4Z    t  *  "DL(  "DL(  "!  #'&  &*)  "&%     N%777! " $':-# $ I%%% & S>D((' ( "*3%*!58J!JJ) *  222+ , sTz
- . C#ItCH~-../ 0 I1 2 O3 4 5 6 38n$7 8 X9 : N; < t= > %%? @ "D((A B v~~&&C D E F #)Z/00G H I J K L M N T!!O P Q R S re   r   Nr  r   s   @rc   r=  r=    r  re   r=  r@  r   rH  r  rA  rL  rB  Successful ResponserI  r\   r  rJ  rC  r-  r.  r/  r0  r1  r2  rD  r+  r3  rE  rF  rG  r5  c          :         V ^8  d   QhR\         R\        R\        R\        3,          R\        R\        R,          R\
        \        \        ,          ,          R,          R	\        \        P                  ,          R,          R
\        R,          R\        R,          R\        R\        \        \        ,          \        \        \        3,          3,          R,          R\        R,          R\        R,          R\        \        ,          \
        \        ,          ,          R,          R\        R,          R\        R,          R\        R,          R\        R\        R\        R\        R\        R\        \        ,          \         ,          R\        R,          R\
        \"        ,          R,          R\        \        \        3,          R,          R\        \        .\        3,          \         ,          R\        \         ,          RR/# ) r_   r  rA  r  .r@  r   NrH  r  rA  rL  rB  rI  r\   r  rJ  rC  r-  r.  r/  r0  r1  r2  rD  r+  r3  rE  rF  rG  r5  ra   )r=  r   r   r   r"  r  r   r   r   r  r  r   rN  r8   r   rK   r"   rM   )rb   s   "rc   rd   rd     s    a aa
a sCx a
 a ta sTz
T
!a 6>>*T1a 4Za ta a C#ItCH~-.5a ta *a XS	!D(a  *!a" "DL#a$ "DL%a& "'a( #')a* &*+a, "&-a. /a0 N%771a2 $':3a4 I%5a6 S>D(7a8 "*3%*!58J!J9a>  22?a@ 
Aare   c                
   Wn         W n        R V n        \        V\        4      '       d   \        V4      p\        V\        4      '       d   R pM]\        V4      pVeM   \        V\        4      '       g   \        V\        4      '       d   \        V\        4      '       g   VV n        R pMTpW0n        Wpn        Wn        Wn        Wn        Wn        VV n        VV n        VV n        VV n        VV n        VV n        VV n        VV n        VV n        VV n        VV n        VV n        T;'       g    . V n        T
;'       g    / V n        Vf   \?        V4      MTV n         \C        V4      w  V n"        V n#        V n$        Vf   R.pV Uu0 uF  pVPK                  4       kK  	  upV n&        \        V\        4      '       d   VPN                  pMTpV P                  ;'       g	    V! V 4      V n(        \        V\R        4      '       d   \U        V4      pW@n+        V P                  '       dN   \Y        V4      '       g   Q RV R24       hRV PP                  ,           p \[        V V P                  RR7      V n.        MR V n.        V P                  '       d2   RV PP                  ,           p!\[        V!V P                  RR7      V n/        MR V n/        \a        T;'       g    . 4      V n1        T;'       g5    \d        Pf                  ! V P                  Ph                  ;'       g    R4      V n5        V Pj                  Pm                  R	4      ^ ,          Po                  4       V n5        / p"V P<                  Pq                  4        F  w  p#p$\        V$\r        4      '       g   Q R
4       hV$Pu                  R4      p%V%'       g   K>  \Y        V#4      '       g   Q RV# R24       hRV# RV PP                   2p \[        V V%RR7      p&V&V"V#&   K  	  V"'       d	   V"V n;        M/ V n;        \y        V4      '       g   Q R4       h\{        V PF                  V P                  V Pb                  R7      w  V n>        V n?        V n@        \        V P~                  V PP                  V P                  R7      V nB        V P|                  P                  ;'       g    V P|                  P                  p'T';'       d    \        V\        4      V nE        T';'       d    \        V\        4      V nF        R # u upi )NGETzStatus code z must not have a response body	Response_serialization)r  type_modeStreamItem_r>  z%An additional response must be a dictmodel_zAn endpoint must be a callabler  )r  r  r4  )GrA  r  r?  ra  r"   r*   r    rK   r)   r4   r5   r@  rA  rB  r\   rC  r-  r.  r/  r0  r1  r2  rD  r+  r3  rE  rF  rG  r5  rH  rI  rQ   r  rP   r  r  r  upperrJ  r  rK  r   r"  r   r<   r9   r,  r6  r  r  r   cleandocr   rL  splitstripr!  r  r  rM  callabler  r  r  r  r%   r*  r  r  r  r7  )(r  rA  r  r@  r   rH  r  rA  rL  rB  rI  r\   r  rJ  rC  r-  r.  r/  r0  r1  r2  rD  r+  r3  rE  rF  rG  r5  return_annotationstream_itemr  current_generate_unique_idresponse_namestream_item_namerM  additional_status_coderw   rZ  r,  is_generators(   &&&$$$$$$$$$$$$$$$$$$$$$$$$$            rc   _populate_api_route_staterh    s   B JN!E."4557A/::!N./@AK& ~/ABB).:MNN,[/JJ-8E*!%!2)M!5!%#9 #9E $;E!)EE&,KE)(CE%/E)E*GE'EO'E(CE% 3EEJoo2EO'+|(#EJBNtBT?Ee')?'29:'V\\^':EM-/ABB'-- 	# &A"((MM,Fu,MEO+w''+&#.{;; 	
;-'EF	
; $eoo51&&  
  $(5??:"4!(( #
 #'l00b1E#UUw'7'78N8N8T8TRT'UE ))//5a8>>@EO,1OO,A,A,C((D))R+RR)W%523IJJ 566TUJ ((>'?q@QRM/"%oN 7EO23 -D  / "H???
 	9^^''		  &,,__22E 	--PP1P1P  '  +=+,E (  J*-E] ;s   Tc            4         a a ] tR tRt oR]! R4      RRRRRRRRRRR	R
RRRRRRRRRRRRRRRRRRRRRRRRR]! ]4      RRRRRRR]! ]4      R]! R4      /V3R lR  l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
V3R' ltR(tVtV ;t# ))APIRouteiV  r@  Nr   rH  r  rA  rL  rB  rP  rI  r\   r  rJ  rC  r-  r.  r/  Tr0  Fr1  r2  rD  r+  r3  rE  rF  rG  r5  c          8        < V ^8  d   QhRS[ RS[RS[3,          RS[RS[R,          RS[S[ S[,          ,          R,          RS[S[P                  ,          R,          R	S[ R,          R
S[ R,          RS[ RS[	S[S[ ,          S[	S[ S[3,          3,          R,          RS[
R,          RS[ R,          RS[S[ ,          S[S[ ,          ,          R,          RS[ R,          RS[R,          RS[R,          RS[
RS[
RS[
RS[
RS[
RS[S[,          S[,          RS[R,          RS[S[,          R,          RS[	S[ S[3,          R,          RS[R.S[ 3,          S[,          RS[
S[,          RR/# ) r_   rA  r  .r@  r   NrH  r  rA  rL  rB  rI  r\   r  rJ  rC  r-  r.  r/  r0  r1  r2  rD  r+  r3  rE  rF  rG  rj  r5  ra   )r   r   r   r"  r  r   r   r   r  r  r   rN  r8   r   rK   r"   rM   )rb   r   s   "rc   rd   APIRoute.__annotate__z  s    >> >>>> 38$>>
 >> 4Z>> 3:%>> v~~.5>> t>> 4Z>> ">> c	4S>12T9>> 4K>> Dj>> SDI%,>>  Dj!>>" !&#>>$ !&%>>& "&'>>( '+)>>* *.+>>, &*->>.  />>0 X);;1>>2 (+Tz3>>4 	?T)5>>6 CH~,7>>8 &.zlC.?%@
&9>>< "$66=>>> 
?>>re   c                  \        \        \        V 4      VV3/ R VbRVbRVbRVbRVbRVbRV	bRV
bRVbR	VbR
VbRVbRVbRVbRVbRVbRVbRVbRVbRVbRVbRVbRVbRVbRVb  \        V P	                  4       4      V n        R# )r@  r   rH  r  rA  rL  rB  rI  r\   r  rJ  rC  r-  r.  r/  r0  r1  r2  rD  r+  r3  rE  rF  rG  r5  N)rh  r   r=  r   get_route_handlerrz   )r   rA  r  r@  r   rH  r  rA  rL  rB  rI  r\   r  rJ  rC  r-  r.  r/  r0  r1  r2  rD  r+  r3  rE  rF  rG  r5  s   &&&$$$$$$$$$$$$$$$$$$$$$$$$$rc   r   APIRoute.__init__z  s3   @ 	"%	
 *		

 $	
 	
 &	
 	
 $	
 "6	
  	
 "	
 	
 	
 &	
  $:!	
" $:#	
$ %<%	
& *F'	
( -L)	
* )D+	
, 0-	
. */	
0 +H1	
2  3	
4 (5	
6 )D7	
8 !49	
< $D$:$:$<=re   c                R   < V ^8  d   QhRS[ S[.S[S[S[S[3,          3,          /# r   )r   rG   r   r   rK   )rb   r   s   "rc   rd   rl    s,     
 
8WIyc8AS7T,T#U 
re   c                D   \        \        V 4      p\        P                  4       pVe!   VP                  V J d   \        \        V4      p\        R/ RVP                  bRVP                  bRVP                  bRVP                  bRVP                  bRVP                  bRVP                  bRVP                  bR	VP                  bR
VP                  bRVP                   bRVP"                  bRVP$                  bRVP&                  bRVP(                  bRVP*                  b # )Nr  r*  r   r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r   )r   r=  _effective_route_context_varr  original_router  r  r*  r   r+  r,  r-  r.  r/  r0  r1  r2  r3  r  r5  r6  r7  )r   r  effective_contexts   &  rc   rn  APIRoute.get_route_handler  sH   ]D) 9<<>(->-M-MQU-U(9:E" 
oo
''
 ))
 !//	

 !//
 $)#?#?
 $)#?#?
 %*$A$A
 */)K)K
 -2,Q,Q
 ).(I(I
 +0*M*M
 $66
 !& 9 9
 $55
  !//!
 	
re   c                <   < V ^8  d   QhRS[ RS[S[S[ 3,          /# r  r  )rb   r   s   "rc   rd   rl    s$     " "U "uUE\': "re   c                   < \        V4      pVe%   VP                  V J d   VP                  V4      w  r4M\        SV `	  V4      w  r4V\        P
                  8w  d   WR&   W43# Nr  )r,  rs  r  r  rN   r  )r   ri   rt  r  r  r  s   &&   rc   r  APIRoute.matches  sf    >uE(->-M-MQU-U!2!:!:5!AE;!&!7EEJJ#' !!re   c                0   < V ^8  d   QhRS[ RS[RS[RR/# rh   rl   )rb   r   s   "rc   rd   rl    s)     3 3% 3' 3 3$ 3re   c                @  <"   \        V4      pVe   VP                  V J d   VP                  pV'       dW   VR,          V9  dI   RRP                  V4      /pRV9   d   \	        RVR7      h\        RRVR7      pV! WV4      G R j  xL
  R # \        P                  V4      p \        V P                  4       4      p	\        P                  V4       V	! WV4      G R j  xL
  R # \        S
V `1  WV4      G R j  xL
  R #  Lw  \        P                  T4       i ; i L< L$5i)Nr  Allowz, rz     )r   r  zMethod Not Allowed)r,  rs  rJ  joinrF   rI   rr  rN  r   rn  resetr  handle)r   ri   rj   rk   rt  rJ  r  rw   tokenrz   r  s   &&&&      rc   r  APIRoute.handle  s    >uE(->-M-MQU-U'//G5?'9"DIIg$67E>'CII,(c7 ut4440445FGE:&t'='='?@,2259ed+++gnUT222 5 -2259+2sM   3DADC>D#D  <!DDD7D8D DDDc                  < V ^8  d   Qh/ S[ R,          ;R&   S[ ;R&   S[R,          ;R&   S[;R&   S[R,          ;R&   S[R,          ;R&   S[R,          ;R&   S[R,          ;R	&   S[;R
&   S[;R&   S[;R&   S[;R&   S[;R&   S[S[,          S[,          ;R&   S[ R,          ;R&   S[S[,          R,          ;R&   S[	S[S[ 3,          R,          ;R&   S[
S[ .S[3,          S[,          ;R&   S[S[,          ;R&   S[S[S[,          ,          ;R&   S[	S[S[,          S[	S[S[ 3,          3,          ;R&   S[;R&   S[R,          ;R&   S[R,          ;R&   S[R,          ;R&   S[S[P                  ,          ;R&   S[;R&   S[	S[S[,          S[3,          ;R&   S[;R&   S[;R&   S[;R &   S[R,          ;R!&   S[;R"&   S[;R#&   # )$r_   Nr?  r@  rA  rB  r\   rC  r-  r.  r/  r0  r1  r2  rD  r+  r3  rE  rF  rG  r5  rH  rI  rK  r   r,  r6  r  rL  rM  r  r  r  r*  r  r7  )r   r   r   r8   r   rK   r"   r  rM   r  r   r   r"  r   r   r  r#   )rb   r   s   "rc   rd   rl  V  s\    Dj    4Z  	 
 t  *  "DL(  "DL(  "!  #'&  &*)  "&%    N%777  $':-   I%%! " S>D((# $ "*3%*!58J!JJ% &  222' ( sTz
) * C#ItCH~-..+ , N- . t/ 0 %%1 2 "D((3 4 v~~&&5 6 7 8 #)Z/009 : ; < = > ? @ T!!A B C D E re   rz   )r   r   r   r   r!   rH   r:   r   rn  r  r  r  r   r   r  r  s   @@rc   rj  rj  V  sG    H>>
 &dm>> #'>> )->> 9=>> #>> #'>> %:>> =A>> #'>>  >> 04>>  $(!>>" 04#>>$ 04%>>& )-'>>( .3)>>* 16+>>, -2->>. #'/>>0 ?Fl>S1>>2 593>>4 -15>>6 047>>:  ''9:;>>< :A=>> >>@
 
4" "3 3Q  re   rj  c                   @  a  ] tR tRt o Rt]! ]R7      t]! ]R7      t]! R R7      t	]! ]
R7      t]! ]R7      tRtRt]! R R7      t]! R R7      tRt]R	RR
RRRR]! ]4      RRRRRRRRR]! ]4      /	V 3R lR ll4       tV 3R lR ltV 3R lR ltV 3R ltRtV tR# )_RouterIncludeContexti  r>  default_factoryc                      \        \        4      # r   r!   rH   r   re   rc   <lambda>_RouterIncludeContext.<lambda>  	     5re   NTc                      \        \        4      # r   r!   r:   r   re   rc   r  r    
    (: ;re   c                     \        R 4      # Tr!   r   re   rc   r  r        re   prefixrH  r  default_response_classrI  rE  r\   rD  rG  c                z  < V ^8  d   QhRRRRRS[ RS[S[ S[,          ,          R,          RS[S[P
                  ,          R,          RS[S[,          S[,          R	S[	S[
S[ ,          S[	S[ S[3,          3,          R,          R
S[S[,          R,          RS[R,          RS[RS[S[.S[ 3,          S[,          RR/# )r_   parent_routerr   r  r  rH  Nr  r  rI  rE  r\   rD  rG  ra   r  )r   r  r   r   r   r  r   rK   r"   r  r"  r   rM   r   r   rj  )rb   r   s   "rc   rd   "_RouterIncludeContext.__annotate__  s     #
 #
 ##
 %	#

 #
 3:%#
 v~~.5#
 !%X1C C#
 c	4S>12T9#
 	?T)#
 4K#
  #
 &.xj#o%>
&#
" 
!##
re   c                  T ! TVP                   V,           . VP                  OT;'       g    . O. VP                  OT;'       g    . O\        WaP                  4      / VP
                  CT;'       g    / C. VP                  OT;'       g    . OT	;'       g    VP                  VP                  ;'       d    T
\        WP                  4      VP                  VP                  R 7      # )r  r  rH  r  r  rI  rE  r\   rD  rG  r5  r3  )r  rH  r  r;   r  rI  rE  r\   rD  rG  r5  r3  )clsr  r  r  rH  r  r  rI  rE  r\   rD  rG  s   &$$$$$$$$$$$rc   for_include!_RouterIncludeContext.for_include
  s    & + ''&05=%%55M=55M9K9KM#7&(L(L$ G00FY__"FD//D9??D!==]%=%=+==SSBS(<+-V-V) !. A A*7*U*U!
 	
re   c                "   < V ^8  d   QhRRRR/# )r_   child_contextr  ra   r   )rb   r   s   "rc   rd   r  0  s     
 
4
	 
re   c                z   \        VP                  V P                  VP                  ,           . V P                  OVP                  O. V P                  OVP                  O\        VP                  V P                  4      / V P                  CVP                  C. V P                  OVP                  OV P                  ;'       g    VP                  V P                  ;'       d    VP                  \        VP                  V P                  4      \        VP                  V P                  4      V P                  R 7      # r  )r  r  r  rH  r  r;   r  rI  rE  r\   rD  rG  r5  r3  )r   r  s   &&rc   combine_RouterIncludeContext.combine0  s    %)99;;!5!5524992}112J4,,J}/I/IJ#744d6Q6Q$ DC=+B+BCAA)@)@ABB-*B*B"44 0 0//(<9900) !51143K3K! +/*L*L)
 	
re   c                &   < V ^8  d   QhRS[ RS[/# )r_   r  ra   )r  r   )rb   r   s   "rc   rd   r  J  s     ( (n ( (re   c                <    V P                   VP                  ,           # r   r  rA  r   r  s   &&rc   path_for_RouterIncludeContext.path_forJ  s    {{UZZ''re   c                  < V ^8  d   Qh/ R;R&   S[ ;R&   S[S[ S[,          ,          ;R&   S[S[P                  ,          ;R&   S[S[,          S[,          ;R&   S[S[	S[ ,          S[S[ S[
3,          3,          ;R&   S[S[,          ;R&   S[R	,          ;R
&   S[;R&   S[S[.S[ 3,          S[,          ;R&   S[S[,          ;R&   S[
R	,          ;R&   # )r_   r   r  r  rH  r  r  rI  rE  Nr\   rD  rG  r5  r3  )r   r  r   r   r  r   rK   r"   r  r"  r   rM   r   r   rj  )rb   r   s   "rc   rd   r    s           sTz
8	 
 v~~&D  !N-??   C#ItCH~-.L  I<  t"  "  "*8*c/!:=O!O     22 ! & $':4' re   r   )r   r   r   r   r  r   r  rH  r  r  r  rI  rE  r\   rD  rG  r5  r3  classmethodr!   rH   r:   r  r  r  r  r   r   r   s   @rc   r  r    s     F"48D).t)DLBG5C 27t1LI!&t!<I"J"RW;S 6;-6 15!#

 #
 )-#
 9=#
 GNG
#
 =A#
 -1#
 #'#
 #'#
   ''9:!#
 #
 #
J
 
4( (k  re   r  c                     a  ] tR tRt o RtRtRtRtRtRt	Rt
RtRtRtRtRtRtRtRtRtRt]! R R7      tRtRtRt]! R	 R7      t]! R
 R7      t]! ]R7      t]! ]R7      tRt Rt!Rt"]! ]R7      t#]! ]$R7      t%Rt&Rt'Rt(Rt)]! ]R7      t*Rt+]! ]R7      t,Rt-Rt.Rt/Rt0Rt1Rt2]3V 3R lR l4       t4]3V 3R lR l4       t5V 3R lR lt6V 3R lR lt7V 3R lt8Rt9V t:R# )_EffectiveRouteContextiN  Nr>  rP  TFc                      \        \        4      # r   r  r   re   rc   r  _EffectiveRouteContext.<lambda>c  r  re   r  c                      \        \        4      # r   r  r   re   rc   r  r  i  r  re   c                     \        R 4      # r  r  r   re   rc   r  r  l  r  re   c                *   < V ^8  d   QhRS[ RS[RR/# )r_   rs  include_contextra   r  )rj  r  )rb   r   s   "rc   rd   #_EffectiveRouteContext.__annotate__  s+     3 3 !3 /	3
 
"3re   c          
        \        \        V4      pV ! VR 7      p\        \        \        V4      VP                  V4      VP                  3/ RVP
                  bRVP                  bR. VP                  OVP                  ObR. VP                  OVP                  ObRVP                  bRVP                  bRVP                  bR/ VP                  CVP                  CbR	VP                  ;'       g    VP                  bR
VP                  bRVP                  bRVP                   bRVP"                  bRVP$                  bRVP&                  bRVP(                  bRVP*                  bRVP,                  ;'       d    VP,                  bR\/        VP0                  VP2                  P4                  VP4                  4      bRVP6                  bRVP8                  bR. VP:                  OVP:                  ;'       g    . ObRVP<                  bR\/        VP>                  VP2                  P>                  VP>                  4      bR\/        VP@                  VP2                  P@                  VP@                  4      b  V# ))rs  r@  r   rH  r  rA  rL  rB  rI  r\   rJ  rC  r-  r.  r/  r0  r1  r2  rD  r+  r  r3  rE  rF  rG  r5  )!r   r=  rh  r  r  r@  r   rH  r  rA  rL  rB  rI  r\   rJ  rC  r-  r.  r/  r0  r1  r2  rD  r;   r+  r  r  r  r3  rE  rF  rG  r5  )r  rs  r  r  contexts   &$$  rc   from_api_route%_EffectiveRouteContext.from_api_route  s    ]N3^4!($$^4NN*	
 !//	*	

 ))*	
 6?''5%**5*	
 N?77M%:L:LM*	
 MM*	
 ))*	
 "'!;!;*	
 G22FeooF*	
 ''EE?+E+E*	
 MM*	
 ++*	
 $)#?#?*	
  $)#?#?!*	
" %*$A$A#*	
$ */)K)K%*	
& -2,Q,Q'*	
( ).(I(I)*	
* $55 2 211-*	
. 0$$//FF66/*	
8 9*	
: +:*W*W;*	
< M11LU__5J5JL=*	
>  --?*	
@ )=11//KK;;)A*	
J !5))//CC33!K*	
V re   c                (   < V ^8  d   QhRRRS[ RR/# )r_   rs  _FrontendRouteGroupr  ra   r  )r  )rb   r   s   "rc   rd   r    s+       . /	
 
"re   c                   . VP                   OVP                   OpV ! VVP                  VVP                  R 7      p\        R\        VR7      w  Vn        Vn        Vn        V# ))rs  frontend_prefixr  r3  r>  r  )r  r  r3  r  r	  r  r  r  )r  rs  r  r  r  s   &$$  rc   from_frontend_route_group0_EffectiveRouteContext.from_frontend_route_group  ss     U55T8S8ST)+22%*9*W*W	
 =.%
		
#& re   c                <   < V ^8  d   QhRS[ RS[S[S[ 3,          /# r  r  )rb   r   s   "rc   rd   r    s$     ' 'U 'uUE\': 're   c                   \        V P                  \        4      '       d&   V P                  P                  WP                  4      # \        V P                  \
        4      '       g,   V P                  f   Q hV P                  P                  V4      # VR,          R8w  d   \        P                  / 3# \        V4      pV P                  P                  V4      pV'       g   \        P                  / 3# VP                  4       pVP                  4        F)  w  rVV P                  V,          P!                  V4      WE&   K+  	  \#        VP%                  R/ 4      4      pVP'                  V4       RV P(                  RV/pV P*                  p	V	'       d!   VR,          V	9  d   \        P,                  V3# \        P.                  V3# )Nr   httppath_paramsr  r  )ra  rs  r  matches_with_prefixr  rj  starlette_router  rN   r  r?   r  r  	groupdictr!  r  convertr  r  r"  r  rJ  PARTIALFULL)
r   ri   
route_pathr  matched_paramsr$  r  r  r  rJ  s
   &&        rc   r  _EffectiveRouteContext.matches  sa   d))+>??&&::5BVBVWW$--x88''333''//66=F"::r>!#E*
%%j1::r>!*(..0JC"&"7"7"<"D"DU"KN 1599]B78>*!4==-M,,uXg5==+--zz;&&re   c                ,   < V ^8  d   QhRS[ RS[RS[/# r_   r  r  ra   r   r   )rb   r   s   "rc   rd   r    s"     3 3 3 3 3re   c                  \        V P                  \        4      '       g.   V P                  f   Q hV P                  P                  ! V3/ VB # \        VP                  4       4      pV P                  p\        VP                  4       4      pWP                  8w  g   W58w  d   \        P                  ! W4      h\        P                  ! V P                  WB4      w  rgV'       d   Q h\        VRR7      # )Nr  )rA  protocol)ra  rs  rj  r  url_path_forrN  keysr  r  r=   rO   replace_paramsr  rE   )r   r  r  seen_paramsr  expected_paramsrA  remaining_paramss   "",     rc   r  #_EffectiveRouteContext.url_path_for  s    $--x88''333''44TI[II+**,-00.335699 >&&t99!(!7!7."
 $##D622re   c                v  < V ^8  d   Qh/ S[ ;R&   S[ R,          ;R&   S[;R&   S[;R&   S[RS[3,          R,          ;R&   S[R,          ;R&   S[;R	&   S[R,          ;R
&   S[;R&   S[R,          ;R&   S[R,          ;R&   S[R,          ;R&   S[R,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[S[,          S[,          ;R&   S[R,          ;R&   S[	S[ ,          R,          ;R&   S[
S[S[3,          R,          ;R&   S[S[.S[3,          S[,          ;R&   S[S[,          ;R&   S[	S[S[,          ,          ;R&   S[
S[S[,          S[
S[S[3,          3,          ;R&   S[;R&   S[;R&   S[;R&   S[
S[S[3,          ;R &   S[S[,          ;R!&   S[;R"&   S[R,          ;R#&   S[R,          ;R$&   S[R,          ;R%&   S[	S[P                   ,          ;R&&   S[;R'&   S[
S[S[,          S[3,          ;R(&   S[R,          ;R)&   S[R,          ;R*&   S[;R+&   S[R,          ;R,&   S[;R-&   S[;R.&   # )/r_   rs  Nr  r  rA  .r  r?  r@  rA  rB  r\   rC  r-  r.  r/  r0  r1  r2  rD  r+  r3  rE  rF  rG  r5  rH  rI  r  r  r  r  rJ  rK  r   r,  r6  r  rL  rM  r  r  r  r*  r  r7  )rM   r   r   r   r   r8   r   rK   r"   r  r  r   r"  rN  r   r   r  r#   )rb   r   s   "rc   rd   r  N  s0      %,  	 
 N  sCx 4'.  Dj'    4Z  5  t"  *#  "DL/  "DL/  "(   #'.! " &*1# $ "&-% & "' ( N%77 ) . $':4/ 0 I%,1 2 S>D(/3 4 "*3%*!58J!J 5 :  22 ; @ sTz
8A B C#ItCH~-.LC D NE F G H I J 38nBK L X2M N O P t"Q R %,S T "D(/U V v~~&DW X Y Z #)Z/0N[ \ 4&] ^ %,_ ` $a b T!(c d e f  g re   r   );r   r   r   r   r  r  rA  r  r?  r@  rA  rB  r\   rC  r-  r.  r/  r0  r1  r2  rD  r   r+  r3  rE  rF  rG  r5  r  rH  r  rI  r  r  r  r  rN  rJ  rK  r   r,  r6  r  rL  rM  r  r  r  r*  r  r7  r  r  r  r  r  r  r   r   r   s   @rc   r  r  N  sm     )-OOD*.H#'NG 5"J#L+/+/$(). ,1#(-":?5;N 15!(,I+/MMR;N 6;-6 #48D16t1LIDJK',T'Bc2GI"K(,N+/).t)DLK383NO"&I(,O$$(JM N3 3j  0' '.3 3w  re   r  )frozenc                     a  ] tR tRt o ]! RRR7      t]V 3R lR l4       t]V 3R lR l4       t]V 3R	 lR
 l4       t	]V 3R lR l4       t
]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       tV 3R lR ltV 3R ltRtV tR# )RouteContexti  NF)r  reprc                    < V ^8  d   QhRS[ /# r   )rM   )rb   r   s   "rc   rd   RouteContext.__annotate__  s      	 re   c                b    V P                   e   V P                   P                  # V P                  # r   )_route_contextrs  r  r   s   &rc   rs  RouteContext.original_route  s*    *&&555zzre   c                0   < V ^8  d   QhRS[ S[,          /# r   rM   r  )rb   r   s   "rc   rd   r    s      ).D"D re   c                N    V P                   e   V P                   # V P                  # r   )r  r  r   s   &rc   _effective_routeRouteContext._effective_route  s$    *&&&zzre   c                .   < V ^8  d   QhRS[ R,          /# r   r  )rb   r   s   "rc   rd   r         < <cDj <re   c                0    \        V P                  R R4      # )rA  Nr   r  r   s   &rc   rA  RouteContext.path
      t,,fd;;re   c                .   < V ^8  d   QhRS[ R,          /# r   r  )rb   r   s   "rc   rd   r    s     C CS4Z Cre   c                0    \        V P                  R R4      # )r  Nr  r   s   &rc   r  RouteContext.path_format  s    t,,mTBBre   c                .   < V ^8  d   QhRS[ R,          /# r   r  )rb   r   s   "rc   rd   r    r  re   c                0    \        V P                  R R4      # )r  Nr  r   s   &rc   r  RouteContext.name  r  re   c                >   < V ^8  d   QhRS[ S[,          R,          /# r   )rN  r   )rb   r   s   "rc   rd   r    s     ? ?SD ?re   c                0    \        V P                  R R4      # )rJ  Nr  r   s   &rc   rJ  RouteContext.methods  s    t,,i>>re   c                B   < V ^8  d   QhRS[ RS[3,          R,          /# )r_   ra   .N)r   r   )rb   r   s   "rc   rd   r    s%     @ @(38,t3 @re   c                0    \        V P                  R R4      # )r  Nr  r   s   &rc   r  RouteContext.endpoint  s    t,,j$??re   c                &   < V ^8  d   QhRS[ RS[/# )r_   r  ra   r  )rb   r   s   "rc   rd   r    s     4 4 4 4re   c                .    \        V P                  V4      # r   r  )r   r  s   &&rc   __getattr__RouteContext.__getattr__  s    t,,d33re   c                @   < V ^8  d   Qh/ S[ ;R&   S[R,          ;R&   # )r_   r  Nr  r  )rb   r   s   "rc   rd   r    s"       +T1S re   r   )r   r   r   r   r   r  propertyrs  r  rA  r  r  rJ  r  r  r  r   r   r   s   @rc   r  r    s      5:$U4SN 
  
 < < C C < < ? ? @ @4 4K  re   r  c                      a  ] tR tRt o ]! ]R7      tRt]! ]R7      tRt	V 3R lR lt
V 3R lR ltV 3R lR	 ltV 3R
 lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R ltRtV tR# )_IncludedRouteri"  r  Nc                .   < V ^8  d   QhRS[ R,          /# )r_   ra   (_EffectiveRouteContext | _IncludedRouterr  )rb   r   s   "rc   rd   _IncludedRouter.__annotate__/  s     * *d+U&V *re   c                    V P                   P                  4       pWP                  8X  d   V P                  # . V n        V P                   P                  pV F  p\        V\        4      '       dZ   V P                  P                  VP                  4      p\        VP                   VR 7      pV P                  P                  V4       Kr  V P                  V4      pVf   K  V P                  P                  V4       K  	  Wn        V P                  # )original_routerr  )r  _get_routes_version_effective_candidates_version_effective_candidatesroutesra  r   r  r  append_build_effective_context)r   routes_version
candidatesr  r  child_branchroute_contexts   &      rc   effective_candidates$_IncludedRouter.effective_candidates/  s    --AAC???---%'"))00
E%11 $ 4 4 < <U=R=R S.$)$9$9$1  **11,? 99%@M(**11-@   .<*)))re   c                .   < V ^8  d   QhRS[ R,          /# )r_   ra   r  r  )rb   r   s   "rc   rd   r  D  s     3 3t4L/M 3re   c                r   V P                   P                  4       pWP                  8X  d   V P                  # . V n        V P                   P                   F5  pV P                  V4      pVf   K  V P                  P                  V4       K7  	  V P                   P                   F  p\        V\        4      '       g   K  V P                  P                  VP                  4      p\        VP                   VR7      pV P                  P                  VP                  4       4       K  	  Wn        V P                  # )Nr  )r  r  &_effective_low_priority_routes_version_effective_low_priority_routes_low_priority_routesr  r  r  ra  r   r  r  r  effective_low_priority_routes)r   r  r  r  r  r  s   &     rc   r  -_IncludedRouter.effective_low_priority_routesD  s   --AACHHH666.0+))>>E 99%@M(33::=I ? ))00E%11 $ 4 4 < <U=R=R S.$)$9$9$1  33:: >>@ 1 7E3222re   c                4   < V ^8  d   QhRS[ RS[R,          /# )r_   r  ra   Nr  )rb   r   s   "rc   rd   r  Z  s&     I II	$	&Ire   c                
   \        V\        4      '       d"   \        P                  VV P                  R 7      # \        V\
        4      '       d"   \        P                  VV P                  R 7      # \        V\        P                  4      '       d}   \        P                  ! V P                  P                  V4      VP                  \        VP                  ;'       g    . 4      VP                  VP                  R7      p\        VVR7      # \        V\        4      '       d   \        V P                  P                  V4      VP                  VP                  . V P                  P                   OVP                   OV P                  P"                  R7      p\        VVR7      # \        V\        P$                  4      '       dT   \        P$                  ! V P                  P                  V4      VP                  VP                  R7      p\        VVR7      # \        V\        P&                  4      '       d   \(        P(                  ! V4      pV P                  P                  V4      P+                  R4      Vn        \/        VP,                  R,           4      w  Vn        Vn        Vn        \        VVR7      # \        V\        P6                  4      '       d   V P                  P8                  '       dN   \        P:                  ! \        P&                  ! V P                  P8                  VP<                  R7      .R7      pMVP<                  p\        P6                  ! VP>                  W1P                  R	7      p\        VVR7      # R
# ))rs  r  )r  rJ  r  rD  )rs  r  r  r  r  r3  r  r?  z/{path:path}r  )r  )rz   r  N) ra  rj  r  r  r  r  r  r=   Router  r  r  rJ  r  rD  r  r  r3  WebSocketRouterR   copyr  rA  rP   r  r  r  Hostr  Routerrz   host)r   r  r  prefixed_apps   &&  rc   r  (_IncludedRouter._build_effective_contextZ  s    eX&&)88$ $ 4 4 9   e011)CC$ $ 4 4 D   eW]]++)0$$--e4U]]00b1ZZ"'"9"9*O *$ /  e.///$$--e4ZZVt33@@V5CUCUV((FFO *$ /  eW3344%44$$--e4enn5::O *$ /  eW]]++"ii.O#'#7#7#@#@#G#N#Ns#SO 
 _11NBC	*+0)$ /  eW\\**##***(/#MM$*>*>*E*E599UV)  %yy%ll

::O *$ /  re   c          	      `   < V ^8  d   QhRS[ RS[S[S[ S[R,          S[R,          3,          /# r'  rX   r  rN   rM   r  )rb   r   s   "rc   rd   r    s6     "* "*"*	ueY-/E/LL	M"*re   c                   R pV P                  4        EF0  p\        V\        4      '       d   VP                  V4      w  rETpR pM\        VP                  \
        4      '       dl   Tp\        V4      pVP                  \        \        4      p	Wx\        &    VP                  P                  V4      w  rE\        V\        V	4       VP                  pM5TpVP                  V4      w  rEVP                  ;'       g    VP                  pV\        P                  8X  d   WEWg3u # V\        P                  8X  g   EK%  Ve   EK,  WVV3pEK3  	  Ve   Vw  rVp\        P                  WVV3# \        P                  / R R 3#   \        T\        T	4       i ; ir   )r  ra  r   r  rs  rj  r  r  r*  r9  r;  r  rN   r  r  r  )
r   ri   r~   	candidater  r  r  r  r  previous_contexts
   &&        rc   _match_IncludedRouter._match  sv    RV224I)_55%.%6%6u%="#, $I44h?? ) 25 9#0#4#48.$  GTBC)2)A)A)I)I%)P&E.CEU "00 )%.%6%6u%="!11MMY5M5M

"5??%'/&}=5 56 07-K==+mCCzz2tT)) /CEUs   E88Fc                <   < V ^8  d   QhRS[ RS[S[S[ 3,          /# r  r  )rb   r   s   "rc   rd   r    s$      U uUE\': re   c                    \        V4      pVP                  \        \        4      pW\        &    V P                  P                  V4      w  rEV/ 3\        V\        V4       #   \        T\        T4       i ; ir   )r  r  r/  r9  r  r  r;  )r   ri   r  previous_routerr  r[  s   &&    rc   r  _IncludedRouter.matches  sr    *51'++(.
 7;23	++33E:HE"9&3_&3_s    A! !A4c                0   < V ^8  d   QhRS[ RS[RS[RR/# rh   rl   )rb   r   s   "rc   rd   r    s/     @ @% @' @ @$ @re   c                ~   "   V \        V4      \        &   V P                  P                  WV4      G R j  xL
  R #  L5ir   )r  r/  r  r  r   ri   rj   rk   s   &&&&rc   r  _IncludedRouter.handle  s2     BF5!">?""))%$???s   2=;=c                0   < V ^8  d   QhRS[ RS[RS[RR/# rh   rl   )rb   r   s   "rc   rd   r    s-     1 11%,1481	1re   c                .  "   V P                  V4      w  rErgV\        P                  8X  g   Vf'   V P                  P	                  WV4      G R j  xL
  R # VP                  V4       \        V\        4      '       d   VP                  WV4      G R j  xL
  R # VeU   V\        V4      \        &   VP                  p\        V\        4      '       d!   WR&   VP                  WV4      G R j  xL
  R # VP                  WV4      G R j  xL
  R #  L L| L& L5irx  )r,  rN   r  r  r  r"  ra  r   r  r  r*  rs  rj  )	r   ri   rj   rk   r  r  r  rt  rs  s	   &&&&     rc   _handle_selected _IncludedRouter._handle_selected  s      8<{{57I4EEJJ%-&&..utDDD[!e_--,,ut444(! u%&JK /==N.(33!/g$++EDAAAll54000 E 5 B0sJ   ADDADDAD*D+DDDDDDc                0   < V ^8  d   QhRS[ S[,          /# r   )r	   r  )rb   r   s   "rc   rd   r    s        (3I*J  re   c              #     "   V P                  4        F7  p\        V\        4      '       d   VP                  4        R j  xL
  K3  Vx  K9  	  R #  L5ir   )r  ra  r   effective_route_contexts)r   r*  s   & rc   r<  (_IncludedRouter.effective_route_contexts  s?     224I)_55$==???	 5?s   =AA Ac                ,   < V ^8  d   QhRS[ RS[RS[/# r  r  )rb   r   s   "rc   rd   r    s"     6 6 6 6 6re   c                   V P                  4        F  p VP                  ! V3/ VB u # 	  \        P                  ! W4      h  \        P                   d     KI  i ; ir   )r<  r  r=   rO   )r   r  r  r  s   "", rc   r  _IncludedRouter.url_path_for  s]    !::<M$11$F+FF =
 ""455 '' s   AAAc                   < V ^8  d   Qh/ R;R&   S[ ;R&   S[R,          ;R&   S[R,          ;R&   S[R,          ;R	&   S[R,          ;R
&   # )r_   r   r  r  r  r
  Nr	  r  r  r  )r  r  r"  )rb   r   s   "rc   rd   r  "  si         +*    JK 	  $':4  %))A$B   -0$J= re   )r
  r	  r  r  )r   r   r   r   r   r  r
  r	  r  r  r  r  r  r,  r  r  r8  r<  r  r  r   r   r   s   @rc   r   r   "  s      OTO 15!EJF" :>** **3 3,I IV"* "*H @ @1 1,   6 6m  re   r   c                \    V ^8  d   QhR\         \        ,          R\        \        ,          /# r_   r  ra   )r   rM   r	   )rb   s   "rc   rd   rd     s$      HY,? HYDW re   c              #      "   \        V 4       F+  w  rVe   VP                  e   VP                  x  K'  Vx  K-  	  R # 5ir   )_iter_routes_with_contextr  r  r  r  s   &  rc   _iter_included_route_candidatesrG    s:      9& A$)F)F)R///K	 !Bs   =?c                r    V ^8  d   QhR\         \        \        ,          ,          R\        \        ,          /# rC  )r   rM   r  r	   )rb   s   "rc   rd   rd   	  s/     B BY-.BlBre   c              #      "   V  FT  p\        V\        4      '       d   Vx  K  \        V.4       F%  w  r#Vf   \        V4      x  K  \        W#4      x  K'  	  KV  	  R # 5ir   )ra  r  rE  )r  r  rs  r  s   &   rc   iter_route_contextsrJ  	  sW      e\**K-Fw-O)N$">22">AA	 .P	 s   AAc                    V ^8  d   QhR\         \        ,          R\        \        \        \        R,          3,          ,          /# )r_   r  ra   N)r   rM   r	   r  r  )rb   s   "rc   rd   rd     s6      YeI5<<=>re   c              #      "   V  FH  p\        V\        4      '       d*   VP                  4        F  pVP                  V3x  K  	  KB  VR 3x  KJ  	  R # 5ir   )ra  r   r<  rs  rF  s   &  rc   rE  rE    sO      e_--!&!?!?!A#22MAA "B + s   AAc                0    V ^8  d   QhR\         R\         /# r_   rA  ra   r  )rb   s   "rc   rd   rd   "  s      3 3 re   c                     V '       g   \        R 4      hV P                  R4      '       g   \        R4      hV R8w  d   V P                  R4      p V # )zA frontend path cannot be emptyr?  z#A frontend path must start with '/')AssertionError
startswithr  rA  s   &rc   _normalize_frontend_pathrS  "  sF    >????3BCCs{{{3Kre   c                <    V ^8  d   QhR\         R\         R\         /# )r_   r  rA  ra   r  )rb   s   "rc   rd   rd   ,  s!       C C re   c                 8    V '       g   V# VR 8X  d   V # W,           # r?  r   r  s   &&rc   _join_frontend_pathsrW  ,  s    s{=re   c                0    V ^8  d   QhR\         R\        /# rN  )r   r"  )rb   s   "rc   rd   rd   4  s      S S re   c                 *    V R 8X  d   ^ # \        V 4      # rV  )lenrR  s   &rc   _frontend_path_specificityr[  4  s    s{t9re   c                p    V ^8  d   QhR\         \        P                  \         ,          ,          R\         /# rN  )r   osPathLike)rb   s   "rc   rd   rd   :  s(     - -cBKK,<&< - -re   c                 h    \         P                  P                  \         P                  ! V 4      4      # r   )r]  rA  realpathfspathrR  s   &rc   _get_resolved_absolute_pathrb  :  s    77BIIdO,,re   c                      a a ] tR tRt oR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R ltV3R lR ltV3R lR lt	V3R lR lt
V3R lR ltV3R lR ltRtVtV ;t# )_FrontendStaticFilesi>  	check_dirTc                   < V ^8  d   QhRS[ S[P                  S[ ,          ,          RS[R,          R,          RS[RR/# )r_   	directoryfallbackNre  ra   auto
index.html404.htmlr   r]  r^  r   r   )rb   r   s   "rc   rd   !_FrontendStaticFiles.__annotate__?  sN     0 0 S))0 :;dB	0
 0 
0re   c                 < W n         V'       dA   \        P                  P                  V4      '       g   \	        R V R\        V4       R24      h\        SV `  VRVRR7       V'       d   VR9   d   V P                  V4       R# R# R# )zFrontend directory 'z+' does not exist. Resolved absolute path: ''TF)rg  htmlre  follow_symlinkN>   rl  rk  )	rh  r]  rA  isdirRuntimeErrorrb  r  r   _check_fallback_file)r   rg  rh  re  r  s   &$$$rc   r   _FrontendStaticFiles.__init__?  s     !RWW]]955&yk 2,,G	,R+SSTV  	 	 	 	
 %??%%h/ @9re   c                $   < V ^8  d   QhRS[ RR/# )r_   rh  ra   Nr  )rb   r   s   "rc   rd   rn  U  s      S T re   c           	         V P                  V4      w  r#Ve'   \        P                  ! VP                  4      '       g.   \	        RV RV P
                   RV P                  4        R24      hR # )NFrontend fallback file '' does not exist in directory '!'. Resolved absolute directory: 'rp  )lookup_pathstatS_ISREGst_modert  rg  _get_resolved_directoryr   rh  r[  stat_results   &&  rc   ru  )_FrontendStaticFiles._check_fallback_fileU  sr    ))(3dll;3F3F&G&G*8* 5"nn- .002316  'Hre   c                    < V ^8  d   QhRS[ /# r   r  )rb   r   s   "rc   rd   rn  ^  s     ; ; ;re   c                L    V P                   f   Q h\        V P                   4      # r   )rg  rb  r   s   &rc   r  ,_FrontendStaticFiles._get_resolved_directory^  s!    ~~)))*4>>::re   c                &   < V ^8  d   QhRS[ RS[/# r  )rX   r   )rb   r   s   "rc   rd   rn  b  s     @ @e @ @re   c                   \        V4      P                  \        R 4      p\        V\        4      '       g   Q h\
        P                  P                  \
        P                  P                  ! VP                  R4      !  4      # )r>  r?  )
r  r  _FASTAPI_FRONTEND_PATH_KEYra  r   r]  rA  normpathr~  r^  )r   ri   rA  s   && rc   get_path_FrontendStaticFiles.get_pathb  sW    !%(,,-GL$$$$$wwdjjo >??re   c                ,   < V ^8  d   QhRS[ RS[RS[/# )r_   rA  ri   ra   )r   rX   rK   )rb   r   s   "rc   rd   rn  g  s"     - -s -5 -X -re   c                X  "   VR ,          R9  d4   V P                  V4      G Rj  xL
 e   \        RR7      h\        RR7      hV P                  V4      G Rj  xL
 pVey   Vw  rEpV'       dZ   VR,          P                  R4      '       g<   \        VR7      pVP	                  VP
                  R,           R7      p\        VR	7      # V P                  WEV4      # V P                  R
8X  g)   V P                  R8X  d4   V P                  R
4      '       d   V P                  R
VRR7      G Rj  xL
 # V P                  R8X  g)   V P                  R8X  dE   V P                  R4      '       d.   \        V4      '       d   V P                  RV^R7      G Rj  xL
 # \        RR7      h EL{ ELK L| L5i)r  Nr}  r     rA  r?  r+  rR  urlrl  rj  rk  )rS  HEAD)_lookup_static_resourcerF   r  rC   replacerA  rJ   file_responserh  _fallback_file_exists_fallback_response_is_frontend_navigation_request)r   rA  ri   static_resource	full_pathr  is_directory_indexr  s   &&&     rc   get_response!_FrontendStaticFiles.get_responseg  sm    ?/111$77C#44C00 $ < <T BB&9H6I$6!%-*@*@*E*E&kksxx#~k6'C00%%ieDD==J&MMV#(B(B:(N(N00UPS0TTT MM\)'D,F,F|,T,T-e4400uRU0VVV,,1 8 C U WsX   #F*F 2F*F#2F*BF*F*)F&*<F*'(F*F(F*#F*&F*(F*c                ^   < V ^8  d   QhRS[ RS[S[ S[P                  R,          3,          /# r_   rA  ra   N)r   r  r]  r  )rb   r   s   "rc   rd   rn    s.     
; 
;s 
;uS"..4:O5O/P 
;re   c                *  "    \        V P                  V4      G R j  xL
 #  L  \         d    \        RR7      R h\         d4   pTP
                  \
        P                  8X  d   \        RR7      R hThR p?i\         d    \        RR7      R hi ; i5i)Ni  r  r  )rB   r|  PermissionErrorrF   OSErrorerrnoENAMETOOLONG
ValueError)r   rA  excs   && rc   _lookup_path!_FrontendStaticFiles._lookup_path  s     		;*4+;+;TBBBB 	;C0d: 	yyE...#4$>I 	;C0d:	;s=   B$ "$ B$  BB.A44BBBc                b   < V ^8  d   QhRS[ RS[S[ S[P                  S[3,          R,          /# r  )r   r  r]  r  r   )rb   r   s   "rc   rd   rn    s2      	sBNND(	)D	0re   c                  "   V P                  V4      G R j  xL
 w  r#Vf   R # \        P                  ! VP                  4      '       d   W#R3# \        P                  ! VP                  4      '       dj   \
        P                  P                  VR4      pV P                  V4      G R j  xL
 w  r#Ve+   \        P                  ! VP                  4      '       d   W#R3# R #  L L85i)NFrk  T)r  r}  r~  r  S_ISDIRr]  rA  r~  )r   rA  r  r  
index_paths   &&   rc   r  ,_FrontendStaticFiles._lookup_static_resource  s      (,'8'8'>!>	<<++,,500<<++,,dL9J+/+<+<Z+H%H"I&4<<8K8K+L+L t33 "? &Is3   C#C1C#
)C#44C#(C!)/C#C#!C#c                &   < V ^8  d   QhRS[ RS[/# )r_   rh  ra   )r   r   )rb   r   s   "rc   rd   rn    s     M Mc Md Mre   c                    V P                  V4      w  r#VR J;'       d!    \        P                  ! VP                  4      # r   )r|  r}  r~  r  r  s   &&  rc   r  *_FrontendStaticFiles._fallback_file_exists  s6    ))(3$&LL4<<8K8K+LLre   c                2   < V ^8  d   QhRS[ RS[RS[RS[/# )r_   rh  ri   r   ra   )r   rX   r"  rK   )rb   r   s   "rc   rd   rn    s-     
 

$)
;>
	
re   c          	     "  "   \        V P                  V4      G R j  xL
 w  rEVe'   \        P                  ! VP                  4      '       g.   \        RV RV P                   RV P                  4        R24      hV P                  WEW#R7      #  Lp5i)Nry  rz  r{  rp  r  )	rB   r|  r}  r~  r  rt  rg  r  r  )r   rh  ri   r   r  r  s   &&&$  rc   r  '_FrontendStaticFiles._fallback_response  s      (99I9I8'T!T	dll;3F3F&G&G*8* 5"nn- .002316 
 !!E " 
 	
 "Us   BB/BAB)rh  )r   r   r   r   r   ru  r  r  r  r  r  r  r  r   r   r  r  s   @@rc   rd  rd  >  sr     0
 0 0, ; ;@ @
- -8
; 
; M M
 
 
re   rd  c                h    V ^8  d   QhR\         R\        \        \         \        3,          ,          /# )r_   acceptra   )r   r	   r  float)rb   s   "rc   rd   rd     s(     
 
S 
XeCJ6G-H 
re   c              #   z  "   V P                  R 4       F  p\        P                  P                  4       pVP	                  4       VR&   VP                  R4      pRp\        V\        4      '       d    \        V4      pVP                  4        RVP                  4        2V3x  K  	  R#   \         d     L:i ; i5i),rB  qg      ?r?  N)r^  r  r  r  r_  	get_paramra  r   r  r  r  r  )r  	raw_valuer  r  qualitys   &    rc   _iter_accept_media_typesr    s     \\#&	--'')"+//"3c"a( ++-.a0K0K0M/NO
 	
 '  s*   A/B;2B*=-B;*B85B;7B88B;c                0    V ^8  d   QhR\         R\        /# r  rX   r   )rb   s   "rc   rd   rd     s     3 35 3T 3re   c                    \        V 4      pVP                  R ^4      R,          p\        P                  P	                  V4      ^,          '       d   R# \        V 4      pRpRp\        VP                  P                  RR4      4       F.  w  rgVR9   d   V^ 8X  d   RpK   R# VR8X  g   K#  V^ 8w  g   K,  RpK0  	  T;'       d    V'       * # )r?  Fr  r>  Tz*/*r  >   	text/htmlapplication/xhtml+xml)	r?   rsplitr]  rA  splitextrG   r  r  r  )ri   r  final_segmentry   wildcard_acceptedhtml_rejectedr  r  s   &       rc   r  r    s    &J%%c1-b1M	ww&q))enGM7Hb) 
 ??!| $5 W\ $  22]!22re   c                      a  ] tR tRt o RRRR/V 3R lR lltV 3R lR	 ltV 3R
 lR ltV 3R lR ltV 3R lR ltV 3R lR lt	Rt
V tR# )_FrontendRoutei  rh  rj  re  Tc          
         < V ^8  d   QhRS[ RS[ S[P                  S[ ,          ,          RS[R,          R,          RS[RR/# r_   rA  rg  rh  Nre  ra   ri  rm  )rb   r   s   "rc   rd   _FrontendRoute.__annotate__  sV     
 

 S))	

 :;dB
 
 

re   c                   VR9  d   \        R4      h\        V4      V n        RR0V n        \	        W#VR7      V n        R# )rj  Nz:fallback must be 'auto', 'index.html', '404.html', or NonerS  r  rg  rh  re  >   Nrj  rl  rk  )rP  rS  rA  rJ  rd  rz   r   rA  rg  rh  re  s   &&$$$rc   r   _FrontendRoute.__init__  sG     CC L  -T2	v'i
re   c                <   < V ^8  d   QhRS[ RS[S[S[ 3,          /# r  r  )rb   r   s   "rc   rd   r    s$     8 8U 8uUE\': 8re   c                8    V P                  WP                  4      # r   )matches_with_pathrA  )r   ri   s   &&rc   r  _FrontendRoute.matches  s    %%eYY77re   c                B   < V ^8  d   QhRS[ RS[RS[S[S[ 3,          /# )r_   ri   rA  ra   rX   r   r  rN   )rb   r   s   "rc   rd   r    s+     ' 'u 'C 'E%,<O 're   c                V   VR ,          R8w  d   \         P                  / 3# V P                  V\        V4      4      pVf   \         P                  / 3# \        \
        V\        \        V4      //pVR,          V P                  9  d   \         P                  V3# \         P                  V3# )r   r  r  )rN   r  _get_frontend_pathr?   r  r  r3  r[  rJ  r  r  )r   ri   rA  r  r  s   &&&  rc   r   _FrontendRoute.matches_with_path  s    =F"::r>!//nU6KL ::r>!*M13Md3S!
 ?$,,.==+--zz;&&re   c                :   < V ^8  d   QhRS[ RS[ RS[ R,          /# )r_   rA  r  ra   Nr  )rb   r   s   "rc   rd   r    s&      s  d
 re   c                    VR 8X  d   VP                  R 4      # W!8X  d   R# VR ,           pVP                  V4      '       d   V\        V4      R # R# )r?  r>  N)lstriprQ  rZ  )r   rA  r  r  s   &&& rc   r  !_FrontendRoute._get_frontend_path  sQ    3;$$S))  ((c&km,,re   c                0   < V ^8  d   QhRS[ RS[RS[RR/# rh   rl   )rb   r   s   "rc   rd   r    s)     - -% -' - -$ -re   c                F   "   V P                  WV4      G R j  xL
  R #  L5ir   r  r4  s   &&&&rc   r  _FrontendRoute.handle  s     hhut,,,s   !!c                ,   < V ^8  d   QhRS[ RS[RS[/# r  r   r   rE   )rb   r   s   "rc   rd   r  
  "     . . . . .re   c                   \        W4      hr   rO   r   r  r  s   "",rc   r  _FrontendRoute.url_path_for
      4--re   )rz   rJ  rA  N)r   r   r   r   r   r  r  r  r  r  r   r   r   s   @rc   r  r    sW     

 FL
 
 
$8 8' '  - -. .re   r  c                      a  ] tR tRt o RRRR/V 3R lR lltRRR	R
/V 3R lR lltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR lt	V 3R lR lt
]V 3R lR l4       tRtV tR# )r  i  r  Nr3  c                j   < V ^8  d   QhRS[ S[P                  ,          R,          RS[R,          RR/# )r_   r  Nr3  ra   )r   r   r  r   )rb   r   s   "rc   rd    _FrontendRouteGroup.__annotate__  s=     
 
 v~~.5
 (+Tz	

 

re   c                   . V n         \        T;'       g    . 4      V n        W n        \	        R \
        V P                  R7      w  V n        V n        V n        R# )r>  r  N)	r  r  r  r3  r  r	  r  r  r  )r   r  r3  s   &$$rc   r   _FrontendRouteGroup.__init__  sU     -/ !3!34-J*
 =.**
		
N #re   rh  rj  re  Tc          
         < V ^8  d   QhRS[ RS[ S[P                  S[ ,          ,          RS[R,          R,          RS[RR/# r  rm  )rb   r   s   "rc   rd   r  "  sV     
 

 S))	

 :;dB
 
 

re   c          	     V    V P                   P                  \        VVVVR 7      4       R# )r  N)r  r  r  r  s   &&$$$rc   add_frontend_route&_FrontendRouteGroup.add_frontend_route"  s*     	#!#		
re   c                <   < V ^8  d   QhRS[ RS[S[S[ 3,          /# r  r  )rb   r   s   "rc   rd   r  3  s$     " "U "uUE\': "re   c                4    V P                  VR R7      w  r#pW#3# )r>  r  r,  )r   ri   r  r  r[  s   &&   rc   r  _FrontendRouteGroup.matches3  s"     $E" =A!!re   c                B   < V ^8  d   QhRS[ RS[RS[S[S[ 3,          /# )r_   ri   r  ra   r  )rb   r   s   "rc   rd   r  7  s+     " " " "eUl@S "re   c                2    V P                  WR 7      w  r4pW43# )r  r  )r   ri   r  r  r  r[  s   &&&   rc   r  '_FrontendRouteGroup.matches_with_prefix7  s      $E AA!!re   c          
      T   < V ^8  d   QhRS[ RS[RS[S[S[ S[R,          3,          /# )r_   ri   r  ra   N)rX   r   r  rN   r  )rb   r   s   "rc   rd   r  ;  s6     $ $$'*$	ue^d22	3$re   c                  R pR pV P                    F  p\        W%P                  4      pVP                  W4      w  rx\	        V4      p	V\
        P                  8X  d   Ve   W^,          8  d   WV	3pKb  Kd  V\
        P                  8X  g   K{  Ve   W^,          8  g   K  WV	3pK  	  Ve   Vw  rp
\
        P                  W3# Ve   Vw  rp
\
        P                  W3# \
        P                  / R 3# r   )	r  rW  rA  r  r[  rN   r  r  r  )r   ri   r  fullr~   r  rA  r  r  r4  r[  s   &&$        rc   r,  _FrontendRouteGroup._match;  s     :><@[[E'

;D!&!8!8!EE4T:K

"<;a#8'<D $9%--'?kAJ&>*;?G ! $(!K::{11$+!K==+44zz2t##re   c                0   < V ^8  d   QhRS[ RS[RS[RR/# rh   rl   )rb   r   s   "rc   rd   r  R  s)      1  1%  1'  1  1$  1re   c           	     ,  "   \        V4      p\        V\        4      '       dB   VP                  V J d2   VP                  pVP
                  pVP                  pVP                  pM&R pV P
                  pV P                  pV P                  pV P                  WR7      w  rpV	\        P                  8X  g   Vf   \        RR7      h\        W4       V	\        P                  8X  do   V'       dg   VP                  '       dU   V P                  VVVVVVR7      ;_uu_4       GRj  xL
  VP!                  WV4      G Rj  xL
  RRR4      GRj  xL
  R# VP!                  WV4      G Rj  xL
  R#  LL L4 L&  + GRj  xL 
 '       g   i     R# ; i L)5i)r>  r  Nr  r  r  )r,  ra  r  rs  r  r  r3  r  r,  rN   r  rF   r%  r  r  _solve_dependenciesr  )r   ri   rj   rk   rt  r  r  r3  r4  r  r  r  s   &&&&        rc   r  _FrontendRouteGroup.handleR  se    >uE(*@AA!00D8&66F)33I!?? * !2 D DFI,0,N,N) $ 7 7$(KKK$E!EEJJ%-C00e)EJJ91G1G1G//#.K"3 0    ll54888  ll54000 9    0sx   C*F-F?#F"E/#F&E5<E1=E5FE3F(F)F1E53F5F	;E><
F	F		
Fc                ,   < V ^8  d   QhRS[ RS[RS[/# r  r  )rb   r   s   "rc   rd   r  t  r  re   c                   \        W4      hr   r  r  s   "",rc   r   _FrontendRouteGroup.url_path_fort  r  re   c                `   < V ^8  d   QhRS[ RS[RS[RS[RS[R,          RS[RS[R,          /# )	r_   ri   rj   rk   r  r3  Nr4  ra   )rX   rW   rY   r#   r   r   r   )rb   r   s   "rc   rd   r  {  sc     $L $L$L $L 	$L $L (+Tz$L  $L 
t	$Lre   c              \  "   \        WV4      pVP                  R \        4      pVP                  R\        4      p	 \        4       ;_uu_4       GRj  xL
 p
WR &   \        4       ;_uu_4       GRj  xL
 pWR&   \	        VVVV
VR7      G Rj  xL
 pVP
                  '       d   \        VP
                  4      hR5x  RRR4      GRj  xL
  RRR4      GRj  xL
  V\        J d   VP                  R R4       MWR &   V	\        J d   VP                  RR4       R# WR&   R#  L L L L_  + GRj  xL 
 '       g   i     Lv; i Lm  + GRj  xL 
 '       g   i     L; i  T\        J d   TP                  R R4       MYR &   T	\        J d   TP                  RR4       i YR&   i ; i5i)rr   rs   Nr  )rG   r  r9  r   r+   r  r/   r:  )r   ri   rj   rk   r  r3  r4  ry   previous_inner_astackprevious_function_astackru   rv   r!  s   &&&&$$$      rc   r  '_FrontendRouteGroup._solve_dependenciesz  sj     %$/ %		*@. Q#(99-F#W 	L%'''=0=,-)+++~7E34*< '"+6S)6*;+ %M %+++4]5I5IJJ ,+ (' %6		0$70E,-'>9		3T:3K/0- (+% ,+++ (''' %6		0$70E,-'>9		3T:3K/0s   9F,E% D#E% E	1D%2E	5D+	D'D+	$D+	>E		D)
E	E% EE% AF,#E% %E	'D+	)E	+E1D42
E=E?E	E% 	E"	E
E"	E"	E% %AF))F,)r  r  r  r  r3  r  )r   r   r   r   r   r  r  r  r,  r  r  r   r  r   r   r   s   @rc   r  r    s     
 9=
 59	
 
&

 FL
 
 
"" "" "$ $. 1  1D. . $L $Lre   r  c            4         a a ] tR tRt oRtRRRRRRR]! ]4      R	RR
RRRRRRRRRR]RRRRRRRRRRR]! ]4      R]! R4      /V3R lV 3R lllt	V3R lR lt
RpV3R lR lltRpV3R lR lltRqV3R  lV 3R! llltRpV3R" lV 3R# llltR$R%R&R/V3R' lR( lltV3R) lR* ltV3R+ lR, ltV3R- lR. ltV3R/ lR0 ltV3R1 lR2 ltV3R3 lR4 ltRqV3R5 lR6 lltR7]! R4      R8RRRRRR9RR:RR;R<R	RRRR=RR>RR?RR@RRARRBRCRDRCRERCRRRF]! ]4      RGRRHRR
RRIRR]! ]4      R]! R4      /V3RJ lRK lltR7]! R4      R8RRRRRR9RR:RR;R<R	RRRR=RR>RR?RR@RRARRBRCRDRCRERCRRRF]! ]4      RGRR
RRIRR]! ]4      /V3RL lRM lltRpRR/V3RN lRO llltRpRR/V3RP lRQ llltRpV3RR lRS lltRRRRRRR]! ]4      R	RR
RRRRRR]! ]4      /	V3RT lRU lltR7]! R4      R8RRRRRR9RR:RR;R<R	RRRR>RR?RR@RRARRBRCRDRCRERCRRRF]! ]4      RGRR
RRIRR]! ]4      /V3RV lRW lltR7]! R4      R8RRRRRR9RR:RR;R<R	RRRR>RR?RR@RRARRBRCRDRCRERCRRRF]! ]4      RGRR
RRIRR]! ]4      /V3RX lRY lltR7]! R4      R8RRRRRR9RR:RR;R<R	RRRR>RR?RR@RRARRBRCRDRCRERCRRRF]! ]4      RGRR
RRIRR]! ]4      /V3RZ lR[ lltR7]! R4      R8RRRRRR9RR:RR;R<R	RRRR>RR?RR@RRARRBRCRDRCRERCRRRF]! ]4      RGRR
RRIRR]! ]4      /V3R\ lR] llt R7]! R4      R8RRRRRR9RR:RR;R<R	RRRR>RR?RR@RRARRBRCRDRCRERCRRRF]! ]4      RGRR
RRIRR]! ]4      /V3R^ lR_ llt!R7]! R4      R8RRRRRR9RR:RR;R<R	RRRR>RR?RR@RRARRBRCRDRCRERCRRRF]! ]4      RGRR
RRIRR]! ]4      /V3R` lRa llt"R7]! R4      R8RRRRRR9RR:RR;R<R	RRRR>RR?RR@RRARRBRCRDRCRERCRRRF]! ]4      RGRR
RRIRR]! ]4      /V3Rb lRc llt#R7]! R4      R8RRRRRR9RR:RR;R<R	RRRR>RR?RR@RRARRBRCRDRCRERCRRRF]! ]4      RGRR
RRIRR]! ]4      /V3Rd lRe llt$V3Rf lRg lt%V3Rh lRi lt&V3Rj lRk lt'](! Rl4      V3Rm lRn l4       t)Rot*Vt+V ;t,# )rr   i  ac  
`APIRouter` class, used to group *path operations*, for example to structure
an app in multiple files. It would then be included in the `FastAPI` app, or
in another `APIRouter` (ultimately included in the app).

Read more about it in the
[FastAPI docs for Bigger Applications - Multiple Files](https://fastapi.tiangolo.com/tutorial/bigger-applications/).

## Example

```python
from fastapi import APIRouter, FastAPI

app = FastAPI()
router = APIRouter()


@router.get("/users/", tags=["users"])
async def read_users():
    return [{"username": "Rick"}, {"username": "Morty"}]


app.include_router(router)
```
r  r>  rH  Nr  r  rI  rE  r  redirect_slashesTr  r3  route_class
on_startupon_shutdownlifespanr\   rD  rG  r5  c          (        < V ^8  d   QhRS[ S[S[! R4      3,          RS[ S[S[S[,          ,          R,          S[! R4      3,          RS[ S[S[P                  ,          R,          S[! R4      3,          RS[ S[S[	,          S[! R	4      3,          R
S[ S[
S[S[,          S[
S[S[3,          3,          R,          S[! R4      3,          RS[ S[S[,          R,          S[! R4      3,          RS[ S[S[,          R,          S[! R4      S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[,          S[! R4      3,          RS[ S[S[. S[3,          ,          R,          S[! R4      3,          RS[ S[S[. S[3,          ,          R,          S[! R4      3,          RS[ S[S[,          R,          S[! R4      3,          RS[ S[R,          S[! R 4      3,          R!S[ S[S[! R"4      3,          R#S[ S[S[.S[3,          S[! R$4      3,          R%S[ S[S[! R&4      3,          R'R/# )(r_   r  'An optional path prefix for the router.rH  N  
                A list of tags to be applied to all the *path operations* in this
                router.

                It will be added to the generated OpenAPI (e.g. visible at `/docs`).

                Read more about it in the
                [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
                r    
                A list of dependencies (using `Depends()`) to be applied to all the
                *path operations* in this router.

                Read more about it in the
                [FastAPI docs for Bigger Applications - Multiple Files](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies).
                r  
  
                The default response class to be used.

                Read more in the
                [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#default-response-class).
                rI  *  
                Additional responses to be shown in OpenAPI.

                It will be added to the generated OpenAPI (e.g. visible at `/docs`).

                Read more about it in the
                [FastAPI docs for Additional Responses in OpenAPI](https://fastapi.tiangolo.com/advanced/additional-responses/).

                And in the
                [FastAPI docs for Bigger Applications](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies).
                rE  o  
                OpenAPI callbacks that should apply to all *path operations* in this
                router.

                It will be added to the generated OpenAPI (e.g. visible at `/docs`).

                Read more about it in the
                [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
                r  a  
                **Note**: you probably shouldn't use this parameter, it is inherited
                from Starlette and supported for compatibility.

                ---

                A list of routes to serve incoming HTTP and WebSocket requests.
                a5  
                You normally wouldn't use this parameter with FastAPI, it is inherited
                from Starlette and supported for compatibility.

                In FastAPI, you normally would use the *path operation methods*,
                like `router.get()`, `router.post()`, etc.
                r  z
                Whether to detect and redirect slashes in URLs when the client doesn't
                use the same format.
                r  z
                Default function handler for this router. Used to handle
                404 Not Found errors.
                r3  z
                Only used internally by FastAPI to handle dependency overrides.

                You shouldn't need to use it. It normally points to the `FastAPI` app
                object.
                r  a4  
                Custom route (*path operation*) class to be used by this router.

                Read more about it in the
                [FastAPI docs for Custom Request and APIRoute class](https://fastapi.tiangolo.com/how-to/custom-request-and-route/#custom-apiroute-class-in-a-router).
                r  z
                A list of startup event handler functions.

                You should instead use the `lifespan` handlers.

                Read more in the [FastAPI docs for `lifespan`](https://fastapi.tiangolo.com/advanced/events/).
                r  a  
                A list of shutdown event handler functions.

                You should instead use the `lifespan` handlers.

                Read more in the
                [FastAPI docs for `lifespan`](https://fastapi.tiangolo.com/advanced/events/).
                r  a'  
                A `Lifespan` context manager handler. This replaces `startup` and
                `shutdown` functions with a single context manager.

                Read more in the
                [FastAPI docs for `lifespan`](https://fastapi.tiangolo.com/advanced/events/).
                r\   a  
                Mark all *path operations* in this router as deprecated.

                It will be added to the generated OpenAPI (e.g. visible at `/docs`).

                Read more about it in the
                [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
                rD  a  
                To include (or not) all the *path operations* in this router in the
                generated OpenAPI.

                This affects the generated OpenAPI (e.g. visible at `/docs`).

                Read more about it in the
                [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
                rG    
                Customize the function used to generate unique IDs for the *path
                operations* shown in the generated OpenAPI.

                This is particularly useful when automatically generating clients or
                SDKs for your API.

                Read more about it in the
                [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
                r5  a  
                Enable strict checking for request Content-Type headers.

                When `True` (the default), requests with a body that do not include
                a `Content-Type` header will **not** be parsed as JSON.

                This prevents potential cross-site request forgery (CSRF) attacks
                that exploit the browser's ability to send requests without a
                Content-Type header, bypassing CORS preflight checks. In particular
                applicable for apps that need to be run locally (in localhost).

                When `False`, requests without a `Content-Type` header will have
                their body parsed as JSON, which maintains compatibility with
                certain clients that don't send `Content-Type` headers.

                Read more about it in the
                [FastAPI docs for Strict Content-Type](https://fastapi.tiangolo.com/advanced/strict-content-type/).
                ra   )r   r   r   r  r   r   r   r  r   rK   r  r"  r   rM   r\   r   rU   rj  r   rV   )rb   r   s   "rc   rd   APIRouter.__annotate__  s    ^A ^A #s#LMMN^A tt#

	^A$  V^^$t+	
%^A< !*N
!
=^AR sDcN*+d2

S^Ar Od"

s^AN Od"	 
O^Az $
{^AL dN
M^A^ (1$J
(
_^At N

u^AJ Xb#g&'$.	
K^Ab Xb#g&'$.	

c^A@ SMD 	
A^AX 4K	

Y^Ar %

s^AN &/hZ_%	&
O^Al '
m^AZ 
[^Are   c               
  < Vf   \        V 4      pMR\        P                  ! V4      '       d   \        V4      pM*\        P                  ! V4      '       d   \        V4      pMTpVV n        \        SV `!  VVV	VR7       V'       d=   VP                  R4      '       g   Q R4       hVP                  R4      '       d   Q R4       hVf   . M
\        V4      V n        Vf   . M
\        V4      V n        Wn        T;'       g    . V n        \        T;'       g    . 4      V n        Wn        VV n        T;'       g    / V n        T;'       g    . V n        Wn        Wn        W@n        VV n        VV n        ^ V n        . V n        R V n        R # )N)r  r  r  r  r?  !A path prefix must start with '/'FA path prefix must not end with '/', as the routes will start with '/')r   r   isasyncgenfunctionr   isgeneratorfunctionr   r   r  r   rQ  r  r  r  r  r  rH  r  r\   rD  rI  rE  r3  r  r  rG  r5  _routes_versionr  _frontend_routes)r   r  rH  r  r  rI  rE  r  r  r  r3  r  r  r  r  r\   rD  rG  r5  r   r  s   &$$$$$$$$$$$$$$$$$$ rc   r   APIRouter.__init__  sw   ^ .>t.D''1128<((229(C' 0-%	 	 	
 $$S))N+NN)s++ X+ $B$z*: 	 %B4+< 	 &*jjb	 !3!34$!2"b"b-J*&&<#+F(#6  57!<@re   c                   < V ^8  d   QhRR/# r   r   )rb   r   s   "rc   rd   r  	  s     " "d "re   c                8    V ;P                   ^,          un         R# )ri  N)r   r   s   &rc   _mark_routes_changedAPIRouter._mark_routes_changed	  s    !re   c                D   < V ^8  d   QhRS[ S[,          R,          RS[/# )r_   seenNra   )rN  r"  )rb   r   s   "rc   rd   r  	  s#      C4 3 re   c                .   Vf   \        4       p\        V 4      pW!9   d   V P                  # VP                  V4       V P                  pV P                   F<  p\        V\        4      '       g   K  W4P                  P                  V4      ,          pK>  	  V# r   )	rN  r   r   addr  ra  r   r  r  )r   r(  	router_idversionr  s   &&   rc   r  APIRouter._get_routes_version	  s{    <5DtH	'''&&[[E%1100DDTJJ ! re   c                H   < V ^8  d   QhRRRS[ S[,          R,          RS[/# )r_   r   r   r(  Nra   )rN  r"  r   )rb   r   s   "rc   rd   r  	  s-      !),SD	re   c                .   Vf   \        4       p\        V 4      pW29   d   R# VP                  V4       V P                   FR  p\	        V\
        4      '       g   K  VP                  VJ d    R# VP                  P                  W4      '       g   KQ   R# 	  R# )NFT)rN  r   r*  r  ra  r   r  _contains_router)r   r   r(  r+  r  s   &&&  rc   r0  APIRouter._contains_router	  s|     <5DtH	[[Ee_55$$.$$55fCC ! re   c                   < V ^8  d   QhRS[ RS[S[.S[S[,          S[,          3,          RS[S[ ,          R,          RS[ R,          RS[RR/# )r_   rA  r  rJ  Nr  rD  ra   )r   r   rG   r   rK   r   r   )rb   r   s   "rc   rd   r  	  sj     $ $$ G9i&9H&DDE$ C4'	$
 Dj$  $ 
$re   c                P   < \         SV `  VVVVVR 7       V P                  4        R# )rJ  r  rD  N)r  	add_router%  )r   rA  r  rJ  r  rD  r  s   &&&&&&rc   r5  APIRouter.add_route	  s4     	/ 	 	
 	!!#re   c                d   < V ^8  d   QhRS[ RS[S[.S[R,          3,          RS[ R,          RR/# )r_   rA  r  Nr  ra   )r   r   r[   r   )rb   r   s   "rc   rd   r  
  sG     $ $$ I;	$78$ Dj	$
 
$re   c                J   < \         SV `  WVR 7       V P                  4        R# )r  N)r  add_websocket_router%  )r   rA  r  r  r  s   &&&&rc   r9  APIRouter.add_websocket_route
  s#     	#D#>!!#re   rh  rj  re  c                  < V ^8  d   QhRS[ S[S[! R4      3,          RS[ S[S[P                  S[,          ,          S[! R4      3,          RS[ S[R,          R,          S[! R4      3,          RS[ S[S[! R	4      3,          R
R/# )r_   rA  z`
                The URL path prefix where the frontend build should be served.
                rg  z\
                The directory containing the static frontend build output.
                rh  NzX
                The fallback file behavior for missing frontend paths.
                re  zc
                Check that the frontend directory exists when the app is created.
                ra   ri  )r   r   r   r]  r^  r   r   )rb   r   s   "rc   rd   r  
  s     Q$ Q$
Q$ "++c""
Q$& 45<
'Q$6 
7Q$F 
GQ$re   c               T   \        V4      pV P                  fL   \        V P                  V P                  R7      V n        V P
                  P                  V P                  4       V P                  P                  \        V P                  V4      VVVR7       V P                  4        R# )u  
Serve a static frontend build as low-priority routes.

Use this for frontend tools that build static files into a directory,
such as `dist`. **FastAPI** path operations are checked first, and
the frontend files are checked only if no normal route matched.

A typical project could look like this:

```text
.
├── pyproject.toml
├── app
│   ├── __init__.py
│   └── main.py
└── dist
    ├── index.html
    └── assets
        └── app.js
```

Then in `app/main.py`:

```python
from fastapi import APIRouter, FastAPI

app = FastAPI()
router = APIRouter()
router.frontend("/", directory="dist")
app.include_router(router)
```
N)r  r3  r  )rS  r!  r  r  r3  r  r  r  rW  r  r%  )r   rA  rg  rh  re  normalized_paths   &&$$$ rc   frontendAPIRouter.frontend
  s    H 348  ($7!...2.P.P%D! %%,,T-B-BC00 o>	 	1 	
 	!!#re   c                0   < V ^8  d   QhRS[ RS[RS[RR/# rh   rl   )rb   r   s   "rc   rd   r  l
  s)     >1 >1u >1w >1d >1t >1re   c                  "   VR ,          R
9   g   Q hRV9  d   WR&   VR ,          R8X  d   V P                  WV4      G Rj  xL
  R# RpV P                   Fy  pVP                  V4      w  rgV\        P                  8X  d/   VP                  V4       VP                  WV4      G Rj  xL
   R# V\        P                  8X  g   Kp  Ve   Kv  WW3pK{  	  Ve2   Vw  rWVP                  V4       VP                  WV4      G Rj  xL
  R# \        V4      pVR ,          R8X  d   V P                  '       d   VR8w  d   \        V4      p	VP                  R4      '       d   V	R,          P                  R4      V	R&   MV	R,          R,           V	R&   V P                   F`  pVP                  V	4      w  rjV\        P                  8w  g   K-  \        V	R7      p\        \!        V4      R7      pV! WV4      G Rj  xL
   R# 	  V P#                  V4      w  ppppV\        P                  8w  d   Ve   \%        W4       VeV   V\'        V4      \(        &   VP*                  p\-        V\.        4      '       d"   VVR	&   VP                  WV4      G Rj  xL
  R# VP                  WV4      G Rj  xL
  R# V P1                  WV4      G Rj  xL
  R#  EL EL" EL L LI L/ L5i)r   r  r  r   Nr?  rA  r+  r  r  )r  r  r  )r  r  r  rN   r  r"  r  r  r?   r  r  r  r  r  rC   rJ   r   _match_low_priorityr%  r  r*  rs  ra  rj  r  )r   ri   rj   rk   r~   r  r  r  r  redirect_scoper[  redirect_urlrw   low_priority_matchlow_priority_scopelow_priority_routelow_priority_contextrs  s   &&&&              rc   rz   APIRouter.appl
  s    V} AAAA5 "(O=J&--55526[[E!&u!5E

"[)ll54888%'/ . ! !(ELL%,,ut444#E*
=F"t'<'<'<sAR!%[N""3'')7)?)F)Fs)Kv&)7)?#)Ev& ==8EJJ&#&^#<L/C4EFH"54888 % $$U+	
 +0B0N%4#/( #5)*NO "6!D!Dnh77%3E'N(//EEE$++EDAAAll54000o 6 9 5  9$ FA 	1s   ?KKA%K'K	(KK5KK0K3BK-K1K2BKKK#K$K?K K	KKKKKKc                0   < V ^8  d   QhRS[ RS[RS[RR/# rh   rl   )rb   r   s   "rc   rd   r  
  s)     - -% -' - -$ -re   c                   "   \        V4      p\        V\        4      '       d-   VP                  V J d   VP	                  WV4      G R j  xL
  R # V P                  WV4      G R j  xL
  R #  L" L5ir   )r0  ra  r   r  r8  rz   )r   ri   rj   rk   r  s   &&&& rc   r  APIRouter.handle
  s`     4U;88//47!2254HHHhhut,,, I,s$   AA0	A,
A0%A.&A0.A0c                <   < V ^8  d   QhRS[ RS[S[S[ 3,          /# r  r  )rb   r   s   "rc   rd   r  
  s$      U uUE\': re   c                    \        V4      p\        V\        4      '       d)   VP                  V J d   VP	                  V4      w  r4 pW43# \
        P                  / 3# r   )r0  ra  r   r  r,  rN   r  )r   ri   r  r  r  r[  s   &&    rc   r  APIRouter.matches
  sU    4U;88//47'6'='=e'D$E1%%zz2~re   c                @   < V ^8  d   QhRS[ S[S[,          ,          /# r   )r	   rM   r  )rb   r   s   "rc   rd   r  
  s#     A A	)44	5Are   c              #     "   V P                    R j  xL
  V P                   F3  p\        V\        4      '       g   K  VP	                  4        R j  xL
  K5  	  R #  LI L5ir   )r  r  ra  r   r  r  s   & rc   _iter_low_priority_routes#APIRouter._iter_low_priority_routes
  sN      ,,,,[[E%11 >>@@@ ! 	- As&   A A&A A AA A c          	      `   < V ^8  d   QhRS[ RS[S[S[ S[R,          S[R,          3,          /# r'  r(  )rb   r   s   "rc   rd   r  
  s6     0* 0*0*	ueY-/E/LL	M0*re   c                   R pR pV P                  4        EFV  p\        V\        4      '       d   TpVP                  p\        V\        4      '       dV   \        V4      pVP                  \        \        4      pWW\        &    VP                  V4      w  r\        V\        V4       TpMAVP                  V4      w  rVP                  ;'       g    TpMR pVP                  V4      w  rTpV	\        P                  8X  d-   Ve   V P                  W^ ,          4      '       d   WV3pEK  EK  V	\        P                  8X  g   EK-  Ve"   V P                  W^ ,          4      '       g   EKR  WV3pEKY  	  Ve   Vw  rp\        P                  WV3# Ve   Vw  rp\        P                  WV3# \        P                   / R R 3#   \        T\        T4       i ; ir   )rR  ra  r  rs  rj  r  r  r*  r9  r  r;  r  rN   r   _frontend_match_is_more_specificr  r  )r   ri   r  r~   r*  r  rs  r  r+  r  r  r  s   &&          rc   rB  APIRouter._match_low_priority
  s    OSQU779I)%;<<?H!*!9!9nh77$6u$=M'4'8'8<n($ KX"FG-;-C-CE-J*2!@,
 +E)2):):5)A&E%55GGE $%.%6%6u%="!

"<4#H#Ha$ $ (>D$ %--'?d&K&K' '  +=AGI :J 04-K::{=@@07-K==+mCCzz2tT)); 3!@,s   F<<Gc                ,   < V ^8  d   QhRS[ RS[ RS[/# )r_   r  previous_child_scopera   r  )rb   r   s   "rc   rd   r  
  s%     2 2 28=2	2re   c                J    \        V4      p\        V4      pVe   Vf   R# W48  # NF)r5  )r   r  rY  r4  previous_specificitys   &&&  rc   rV  *APIRouter._frontend_match_is_more_specific
  s2     2+>:;OP"6">11re   c                |   < V ^8  d   QhRS[ RS[S[ ,          R,          RS[ R,          RS[RS[S[.S[3,          /# )r_   rA  rJ  Nr  rD  ra   )r   r   r   r   r7   )rb   r   s   "rc   rd   r    sY       C4' Dj	
   
$%'88	9re   c                *   a aaaa R  VVVVV 3R llpV# )c                0    V ^8  d   QhR\         R\         /# r^   r7   )rb   s   "rc   rd   %APIRouter.route.<locals>.__annotate__
  s     	 	- 	2C 	re   c                 4   < SP                  SV SSSR 7       V # )r4  )r5  )r`   rD  rJ  r  rA  r   s   &rc   	decorator"APIRouter.route.<locals>.decorator
  s*    NN"3   Kre   r   )r   rA  rJ  r  rD  rd  s   fffff rc   r  APIRouter.route  s    	 	 re   r@  r   rA  rL  rB  rP  rJ  rC  r-  r.  r/  r0  Fr1  r2  r+  r  route_class_overriderF  c          8        < V ^8  d   QhRS[ RS[RS[3,          RS[RS[R,          RS[S[ S[,          ,          R,          RS[S[P                  ,          R,          R	S[ R,          R
S[ R,          RS[ RS[	S[S[ ,          S[	S[ S[3,          3,          R,          RS[
R,          RS[S[ ,          S[S[ ,          ,          R,          RS[ R,          RS[R,          RS[R,          RS[
RS[
RS[
RS[
RS[
RS[S[,          S[,          RS[ R,          RS[S[,          R,          RS[S[,          R,          RS[	S[ S[3,          R,          RS[S[.S[ 3,          S[,          RS[
S[,          RR/# )r_   rA  r  .r@  r   NrH  r  rA  rL  rB  rI  r\   rJ  rC  r-  r.  r/  r0  r1  r2  rD  r+  r  rg  rE  rF  rG  r5  ra   )r   r   r   r"  r  r   r   r   r  r  r   rN  r8   r   rK   r"   rj  rM   )rb   r   s   "rc   rd   r    s    R$ R$R$ 38$R$
 R$ 4ZR$ 3:%R$ v~~.5R$ tR$ 4ZR$ "R$ c	4S>12T9R$ 4KR$ SDI%,R$ DjR$  !&!R$" !&#R$$ "&%R$& '+'R$( *.)R$* &*+R$,  -R$. X);;/R$0 Dj1R$2 #8nt33R$4 	?T)5R$6 CH~,7R$8 &.xj#o%>
&9R$< "$66=R$> 
?R$re   c          	        T;'       g    V P                   pT
;'       g    / p
/ V P                  CV
Cp\        VV P                  4      pV P                  P                  4       pV'       d   VP                  V4       V P                  P                  4       p V'       d   V P                  V4       V P                  P                  4       p!V'       d   V!P                  V4       \        VV P                  4      p"T! V P                  V,           3/ R VbRVbRVbRVbRV bRVbRVbRV	bRVbR	T;'       g    V P                  bR
VbRVbRVbRVbRVbRVbRVbRVbRT;'       d    V P                  bRVbRVbRV P                  bRV!bRVbRV"bR\        VV P                  4      b p#V P                  P!                  V#4       V P#                  4        R# )r  r@  r   rH  r  rA  rL  rB  rI  r\   rJ  rC  r-  r.  r/  r0  r1  r2  rD  r+  r  r3  rE  rF  rG  r5  N)r  rI  r;   r  rH  r!  r  r  rE  rG  r  r\   rD  r3  r5  r  r  r%  )$r   rA  r  r@  r   rH  r  rA  rL  rB  rI  r\   rJ  rC  r-  r.  r/  r0  r1  r2  rD  r+  r  rg  rE  rF  rG  r5  r  combined_responsescurrent_response_classcurrent_tagscurrent_dependenciescurrent_callbacksrc  r  s$   &&&$$$$$$$$$$$$$$$$$$$$$$$$$        rc   add_api_routeAPIRouter.add_api_route  s@   @ +>>d.>.>OO	<<)<!5D77"
 yy~~'%#00557 ''5 NN//1$$Y/%9')I)I&
" KK$

 *
 $	

 
 .
 
 $
 "6
 )
 "44T__
 
 &
 $:
 $:
  %<!
" *F#
$ -L%
& )D'
( 0JJD4J4J)
* 2+
, -
. +/*L*L/
0 (1
2 (3
4 )C5
6 !5#T%=%=!7
> 	5!!!#re   c          4      j  < V ^8  d   QhRS[ RS[RS[R,          RS[S[ S[,          ,          R,          RS[S[P                  ,          R,          RS[ R,          RS[ R,          R	S[ R
S[S[S[ ,          S[S[ S[3,          3,          R,          RS[	R,          RS[S[ ,          R,          RS[ R,          RS[
R,          RS[
R,          RS[	RS[	RS[	RS[	RS[	RS[S[,          RS[ R,          RS[S[,          R,          RS[S[ S[3,          R,          RS[S[.S[ 3,          RS[S[.S[3,          /# )r_   rA  r@  r   NrH  r  rA  rL  rB  rI  r\   rJ  rC  r-  r.  r/  r0  r1  r2  rD  r+  r  rE  rF  rG  ra   )r   r   r"  r  r   r   r   r  r  r   r8   r   rK   rM   r   rj  r7   )rb   r   s   "rc   rd   r  j  s    < << 	<
 4Z< 3:%< v~~.5< t< 4Z< "< c	4S>12T9< 4K< cT!< Dj< !&<  !&!<" "&#<$ '+%<& *.'<( &*)<*  +<, X-<. Dj/<0 	?T)1<2 CH~,3<4 &.xj#o%>5<: 
$%'88	9;<re   c               z   a aaaaaaaaa	a
aaaaaaaaaaaaaa R  VVV
VVVVVVVVVVVVVVVVVV	V VVV3R llpV# )c                0    V ^8  d   QhR\         R\         /# r^   ra  )rb   s   "rc   rd   )APIRouter.api_route.<locals>.__annotate__  s     	 	- 	2C 	re   c                 \   < SP                  SV SSSSSSSSSSS
SSSSSSSSSSS	SR 7       V # ))r@  r   rH  r  rA  rL  rB  rI  r\   rJ  rC  r-  r.  r/  r0  r1  r2  rD  r+  r  rE  rF  rG  )ro  )r`   rE  r  r\   rL  rG  rD  rJ  r  rF  rC  rA  r+  rB  r@  r/  r.  r1  r2  r0  r-  rI  r   r   rA  rH  s   &rc   rd  &APIRouter.api_route.<locals>.decorator  sh    -')'%9#%)'='=(?-I0O,G"3-#+,G3  6 Kre   r   )r   rA  r@  r   rH  r  rA  rL  rB  rI  r\   rJ  rC  r-  r.  r/  r0  r1  r2  rD  r+  r  rE  rF  rG  rd  s   ffddddddddddddddddddddddd rc   	api_routeAPIRouter.api_routej  s'    <	 	 	 	 	< re   c          
         < V ^8  d   QhRS[ RS[RS[3,          RS[ R,          RS[S[P
                  ,          R,          RR/# )r_   rA  r  .r  Nr  ra   r  )rb   r   s   "rc   rd   r    sX     $ $$ 38$$ Dj	$ v~~.5$ 
$re   c                  V P                   P                  4       pV'       d   VP                  V4       \        V P                  V,           VVVV P
                  R 7      pV P                  P                  V4       V P                  4        R# )r  N)	r  r!  r  r  r  r3  r  r  r%  )r   rA  r  r  r  rm  r  s   &&&&$  rc   add_api_websocket_route!APIRouter.add_api_websocket_route  sr      $00557 ''5!KK$-*.*L*L
 	5!!!#re   c          
         < V ^8  d   QhRS[ S[S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[P
                  ,          R,          S[! R4      3,          RS[S[.S[3,          /# )	r_   rA  z1
                WebSocket path.
                r  NzQ
                A name for the WebSocket. Only used internally.
                r  a  
                A list of dependencies (using `Depends()`) to be used for this
                WebSocket.

                Read more about it in the
                [FastAPI docs for WebSockets](https://fastapi.tiangolo.com/advanced/websockets/).
                ra   )r   r   r   r   r   r  r   r7   )rb   r   s   "rc   rd   r    s     A A
A $J
A&  V^^$t+	
'A> 
$%'88	9?Are   c               &   a aaa R VVVV 3R llpV# )a  
Decorate a WebSocket function.

Read more about it in the
[FastAPI docs for WebSockets](https://fastapi.tiangolo.com/advanced/websockets/).

**Example**

## Example

```python
from fastapi import APIRouter, FastAPI, WebSocket

app = FastAPI()
router = APIRouter()

@router.websocket("/ws")
async def websocket_endpoint(websocket: WebSocket):
    await websocket.accept()
    while True:
        data = await websocket.receive_text()
        await websocket.send_text(f"Message text was: {data}")

app.include_router(router)
```
c                0    V ^8  d   QhR\         R\         /# r^   ra  )rb   s   "rc   rd   )APIRouter.websocket.<locals>.__annotate__  s     	 	- 	2C 	re   c                 2   < SP                  SV SSR 7       V # ))r  r  )r{  )r`   r  r  rA  r   s   &rc   rd  &APIRouter.websocket.<locals>.decorator  s&    ((dL )  Kre   r   )r   rA  r  r  rd  s   fffd rc   r  APIRouter.websocket  s    v	 	 re   c                R   < V ^8  d   QhRS[ RS[ R,          RS[S[.S[3,          /# )r_   rA  r  Nra   )r   r   r7   )rb   r   s   "rc   rd   r    s8      "Tz	$%'88	9re   c                "   a aa R  VVV 3R llpV# )c                0    V ^8  d   QhR\         R\         /# r^   ra  )rb   s   "rc   rd   /APIRouter.websocket_route.<locals>.__annotate__       	 	- 	2C 	re   c                 0   < SP                  SV SR 7       V # )r  )r9  )r`   r  rA  r   s   &rc   rd  ,APIRouter.websocket_route.<locals>.decorator  s    $$T4d$;Kre   r   )r   rA  r  rd  s   fff rc   websocket_routeAPIRouter.websocket_route  s    	 	 re   c                  < V ^8  d   QhRS[ RS[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[S[,          ,          R,          S[! R4      3,          R	S[ S[S[P                  ,          R,          S[! R
4      3,          RS[ S[S[	,          S[! R4      3,          RS[ S[
S[S[,          S[
S[S[3,          3,          R,          S[! R4      3,          RS[ S[S[,          R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[.S[3,          S[! R4      3,          RR/# )r_   r   r   zThe `APIRouter` to include.r  r  rH  Nr  r  r  r  r  rI  r  rE  r  r\   r  rD  z
                Include (or not) all the *path operations* in this router in the
                generated OpenAPI schema.

                This affects the generated OpenAPI (e.g. visible at `/docs`).
                rG  r  ra   )r   r   r   r  r   r   r   r  r   rK   r  r"  r   rM   r   r   rj  )rb   r   s   "rc   rd   r  
  s    {
 {
+s+H'IIJ{
 #s#LMMN	{

 tt#

{
&  V^^$t+	
'{
> !*N
!
?{
T sDcN*+d2

U{
t Od"

u{
P 4K	

Q{
j %

k{
@ &/hZ_%	&
A{
^ 
_{
re   c       	           WJg   Q R4       hVP                  V 4      '       d   Q R4       hV'       d>   VP                  R4      '       g   Q R4       hVP                  R4      '       d   Q R4       hM\        VP                  4       F  w  rVf   \        VRR4      p\        VRR	4      pMUVP                  e0   \        VP                  RR4      p\        VP                  RR	4      pMVP                  pVP                  pVf   K  V'       d   K  \        R
V R24      h	  \        P                  V VVVVVVVVV	V
R7      pV P                  P                  \        WR7      4       V P                  4        VP                   F  pV P!                  RV4       K  	  VP"                   F  pV P!                  RV4       K  	  \%        V P&                  VP&                  4      V n        R# )a  
Include another `APIRouter` in the same current `APIRouter`.

Read more about it in the
[FastAPI docs for Bigger Applications](https://fastapi.tiangolo.com/tutorial/bigger-applications/).

## Example

```python
from fastapi import APIRouter, FastAPI

app = FastAPI()
internal_router = APIRouter()
users_router = APIRouter()

@users_router.get("/users/")
def read_users():
    return [{"name": "Rick"}, {"name": "Morty"}]

internal_router.include_router(users_router)
app.include_router(internal_router)
```
zcCannot include the same APIRouter instance into itself. Did you mean to include a different router?zsCannot include an APIRouter instance that already includes this router. Did you mean to include a different router?r?  r  r  NrA  r  unknownz6Prefix and path cannot be both empty (path operation: ))r  r  r  rH  r  r  rI  rE  r\   rD  rG  r  startupshutdown)r0  rQ  r  rE  r  r   r  rA  r  r.   r  r  r  r   r%  r  add_event_handlerr  r   r   )r   r   r  rH  r  r  rI  rE  r\   rD  rG  r  r  rA  r  r  handlers   &&$$$$$$$$$      rc   include_routerAPIRouter.include_router
  s   N ! 	
:	
! **400 	
:	
0 $$S))N+NN)s++ X++ )B&--(P$ ("5&$7D"5&)<D"22>"=#@#@&$OD"=#@#@&)TD(--D(--D#DD&PQUPVVWX  )Q 0;;"%#9!/(C < 
 	FT	
 	!!#((G""9g6 )))G"":w7 * 7!!##!
re   c          2      T  < V ^8  d   QhRS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[S[,          ,          R,          S[! R	4      3,          R
S[ S[S[P                  ,          R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[
S[S[,          S[
S[S[3,          3,          R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          R S[ S[S[! R!4      3,          R"S[ S[S[! R#4      3,          R$S[ S[S[! R%4      3,          R&S[ S[S[,          S[! R'4      3,          R(S[ S[R,          S[! R)4      3,          R*S[ S[S[,          R,          S[! R+4      3,          R,S[ S[
S[S[3,          R,          S[! R-4      3,          R.S[ S[S[.S[3,          S[! R/4      3,          R0S[S[.S[3,          /# 1r_   rA  z
                The URL path to be used for this *path operation*.

                For example, in `http://example.com/items`, the path is `/items`.
                r@  a  
                The type to use for the response.

                It could be any valid Pydantic *field* type. So, it doesn't have to
                be a Pydantic model, it could be other things, like a `list`, `dict`,
                etc.

                It will be used for:

                * Documentation: the generated OpenAPI (and the UI at `/docs`) will
                    show it as the response (JSON Schema).
                * Serialization: you could return an arbitrary object and the
                    `response_model` would be used to serialize that object into the
                    corresponding JSON.
                * Filtering: the JSON sent to the client will only contain the data
                    (fields) defined in the `response_model`. If you returned an object
                    that contains an attribute `password` but the `response_model` does
                    not include that field, the JSON sent to the client would not have
                    that `password`.
                * Validation: whatever you return will be serialized with the
                    `response_model`, converting any data as necessary to generate the
                    corresponding JSON. But if the data in the object returned is not
                    valid, that would mean a violation of the contract with the client,
                    so it's an error from the API developer. So, FastAPI will raise an
                    error and return a 500 error code (Internal Server Error).

                Read more about it in the
                [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).
                r   NaM  
                The default status code to be used for the response.

                You could override the status code by returning a response directly.

                Read more about it in the
                [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).
                rH  ac  
                A list of tags to be applied to the *path operation*.

                It will be added to the generated OpenAPI (e.g. visible at `/docs`).

                Read more about it in the
                [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).
                r  a[  
                A list of dependencies (using `Depends()`) to be applied to the
                *path operation*.

                Read more about it in the
                [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).
                rA  aL  
                A summary for the *path operation*.

                It will be added to the generated OpenAPI (e.g. visible at `/docs`).

                Read more about it in the
                [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
                rL  a  
                A description for the *path operation*.

                If not provided, it will be extracted automatically from the docstring
                of the *path operation function*.

                It can contain Markdown.

                It will be added to the generated OpenAPI (e.g. visible at `/docs`).

                Read more about it in the
                [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).
                rB  z
                The description for the default response.

                It will be added to the generated OpenAPI (e.g. visible at `/docs`).
                rI  z
                Additional responses that could be returned by this *path operation*.

                It will be added to the generated OpenAPI (e.g. visible at `/docs`).
                r\   z
                Mark this *path operation* as deprecated.

                It will be added to the generated OpenAPI (e.g. visible at `/docs`).
                rC  a  
                Custom operation ID to be used by this *path operation*.

                By default, it is generated automatically.

                If you provide a custom operation ID, you need to make sure it is
                unique for the whole API.

                You can customize the
                operation ID generation with the parameter
                `generate_unique_id_function` in the `FastAPI` class.

                Read more about it in the
                [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).
                r-  a\  
                Configuration passed to Pydantic to include only certain fields in the
                response data.

                Read more about it in the
                [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
                r.  aW  
                Configuration passed to Pydantic to exclude certain fields in the
                response data.

                Read more about it in the
                [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
                r/  a|  
                Configuration passed to Pydantic to define if the response model
                should be serialized by alias when an alias is used.

                Read more about it in the
                [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).
                r0  a  
                Configuration passed to Pydantic to define if the response data
                should have all the fields, including the ones that were not set and
                have their default values. This is different from
                `response_model_exclude_defaults` in that if the fields are set,
                they will be included in the response, even if the value is the same
                as the default.

                When `True`, default values are omitted from the response.

                Read more about it in the
                [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
                r1  a  
                Configuration passed to Pydantic to define if the response data
                should have all the fields, including the ones that have the same value
                as the default. This is different from `response_model_exclude_unset`
                in that if the fields are set but contain the same default values,
                they will be excluded from the response.

                When `True`, default values are omitted from the response.

                Read more about it in the
                [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).
                r2  a~  
                Configuration passed to Pydantic to define if the response data should
                exclude fields set to `None`.

                This is much simpler (less smart) than `response_model_exclude_unset`
                and `response_model_exclude_defaults`. You probably want to use one of
                those two instead of this one, as those allow returning `None` values
                when it makes sense.

                Read more about it in the
                [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).
                rD  a  
                Include this *path operation* in the generated OpenAPI schema.

                This affects the generated OpenAPI (e.g. visible at `/docs`).

                Read more about it in the
                [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).
                r+  ae  
                Response class to be used for this *path operation*.

                This will not be used if you return a response directly.

                Read more about it in the
                [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).
                r  zW
                Name for this *path operation*. Only used internally.
                rE  a  
                List of *path operations* that will be used as OpenAPI callbacks.

                This is only for OpenAPI documentation, the callbacks won't be used
                directly.

                It will be added to the generated OpenAPI (e.g. visible at `/docs`).

                Read more about it in the
                [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
                rF  ah  
                Extra metadata to be included in the OpenAPI schema for this *path
                operation*.

                Read more about it in the
                [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).
                rG  r  ra   r   r   r   r   r"  r  r   r   r   r  r  r   r8   r   rK   rM   r   rj  r7   )rb   r   s   "rc   rd   r    "    w
 w
	
w
 "!
w
^ $J	

_w
x tt#	

yw
R  V^^$t+	
Sw
j $J	

kw
D $J
Ew
h (	
iw
| sDcN*+d2	
}w
P 4K	
Qw
d  $J
ew
L !*DL	!
Mw
d !*DL	!
ew
| "+	"
}w
T '0'
Uw
x *3*
yw
Z &/&
[w
| %	

}w
V "N	

Ww
p $J
qw
@	 Od"

A	w
`	 !cNT!	
a	w
x	 &/hZ_%	&
y	w
V
 
$%'88	9W
w
re   c               V    V P                  VVVVVVVVV	V
R.VVVVVVVVVVVVVR7      # )a  
Add a *path operation* using an HTTP GET operation.

## Example

```python
from fastapi import APIRouter, FastAPI

app = FastAPI()
router = APIRouter()

@router.get("/items/")
def read_items():
    return [{"name": "Empanada"}, {"name": "Arepa"}]

app.include_router(router)
```
rS  rA  r@  r   rH  r  rA  rL  rB  rI  r\   rJ  rC  r-  r.  r/  r0  r1  r2  rD  r+  r  rE  rF  rG  rw  r   rA  r@  r   rH  r  rA  rL  rB  rI  r\   rC  r-  r.  r/  r0  r1  r2  rD  r+  r  rE  rF  rG  s   &&$$$$$$$$$$$$$$$$$$$$$$rc   r  APIRouter.get  se    |
 ~~)#%#!5!G%#9#9$;)E,K(C/)'(C1  
 	
re   c          2      T  < V ^8  d   QhRS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[S[,          ,          R,          S[! R	4      3,          R
S[ S[S[P                  ,          R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[
S[S[,          S[
S[S[3,          3,          R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          R S[ S[S[! R!4      3,          R"S[ S[S[! R#4      3,          R$S[ S[S[! R%4      3,          R&S[ S[S[,          S[! R'4      3,          R(S[ S[R,          S[! R)4      3,          R*S[ S[S[,          R,          S[! R+4      3,          R,S[ S[
S[S[3,          R,          S[! R-4      3,          R.S[ S[S[.S[3,          S[! R/4      3,          R0S[S[.S[3,          /# r  r  )rb   r   s   "rc   rd   r  @  "    |
 |
	
|
 "!
|
^ $J	

_|
x tt#	

y|
R  V^^$t+	
S|
j $J	

k|
D $J
E|
h (	
i|
| sDcN*+d2	
}|
P 4K	
Q|
d  $J
e|
L !*DL	!
M|
d !*DL	!
e|
| "+	"
}|
T '0'
U|
x *3*
y|
Z &/&
[|
| %	

}|
V "N	

W|
p $J
q|
@	 Od"

A	|
`	 !cNT!	
a	|
x	 &/hZ_%	&
y	|
V
 
$%'88	9W
|
re   c               V    V P                  VVVVVVVVV	V
R.VVVVVVVVVVVVVR7      # )a  
Add a *path operation* using an HTTP PUT operation.

## Example

```python
from fastapi import APIRouter, FastAPI
from pydantic import BaseModel

class Item(BaseModel):
    name: str
    description: str | None = None

app = FastAPI()
router = APIRouter()

@router.put("/items/{item_id}")
def replace_item(item_id: str, item: Item):
    return {"message": "Item replaced", "id": item_id}

app.include_router(router)
```
PUTr  r  r  s   &&$$$$$$$$$$$$$$$$$$$$$$rc   putAPIRouter.put@  se    F ~~)#%#!5!G%#9#9$;)E,K(C/)'(C1  
 	
re   c          2      T  < V ^8  d   QhRS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[S[,          ,          R,          S[! R	4      3,          R
S[ S[S[P                  ,          R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[
S[S[,          S[
S[S[3,          3,          R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          R S[ S[S[! R!4      3,          R"S[ S[S[! R#4      3,          R$S[ S[S[! R%4      3,          R&S[ S[S[,          S[! R'4      3,          R(S[ S[R,          S[! R)4      3,          R*S[ S[S[,          R,          S[! R+4      3,          R,S[ S[
S[S[3,          R,          S[! R-4      3,          R.S[ S[S[.S[3,          S[! R/4      3,          R0S[S[.S[3,          /# r  r  )rb   r   s   "rc   rd   r    r  re   c               V    V P                  VVVVVVVVV	V
R.VVVVVVVVVVVVVR7      # )a  
Add a *path operation* using an HTTP POST operation.

## Example

```python
from fastapi import APIRouter, FastAPI
from pydantic import BaseModel

class Item(BaseModel):
    name: str
    description: str | None = None

app = FastAPI()
router = APIRouter()

@router.post("/items/")
def create_item(item: Item):
    return {"message": "Item created"}

app.include_router(router)
```
POSTr  r  r  s   &&$$$$$$$$$$$$$$$$$$$$$$rc   postAPIRouter.post  e    F ~~)#%#!5!H%#9#9$;)E,K(C/)'(C1  
 	
re   c          2      T  < V ^8  d   QhRS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[S[,          ,          R,          S[! R	4      3,          R
S[ S[S[P                  ,          R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[
S[S[,          S[
S[S[3,          3,          R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          R S[ S[S[! R!4      3,          R"S[ S[S[! R#4      3,          R$S[ S[S[! R%4      3,          R&S[ S[S[,          S[! R'4      3,          R(S[ S[R,          S[! R)4      3,          R*S[ S[S[,          R,          S[! R+4      3,          R,S[ S[
S[S[3,          R,          S[! R-4      3,          R.S[ S[S[.S[3,          S[! R/4      3,          R0S[S[.S[3,          /# r  r  )rb   r   s   "rc   rd   r  <  r  re   c               V    V P                  VVVVVVVVV	V
R.VVVVVVVVVVVVVR7      # )a&  
Add a *path operation* using an HTTP DELETE operation.

## Example

```python
from fastapi import APIRouter, FastAPI

app = FastAPI()
router = APIRouter()

@router.delete("/items/{item_id}")
def delete_item(item_id: str):
    return {"message": "Item deleted"}

app.include_router(router)
```
DELETEr  r  r  s   &&$$$$$$$$$$$$$$$$$$$$$$rc   deleteAPIRouter.delete<  se    |
 ~~)#%#!5!J%#9#9$;)E,K(C/)'(C1  
 	
re   c          2      T  < V ^8  d   QhRS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[S[,          ,          R,          S[! R	4      3,          R
S[ S[S[P                  ,          R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[
S[S[,          S[
S[S[3,          3,          R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          R S[ S[S[! R!4      3,          R"S[ S[S[! R#4      3,          R$S[ S[S[! R%4      3,          R&S[ S[S[,          S[! R'4      3,          R(S[ S[R,          S[! R)4      3,          R*S[ S[S[,          R,          S[! R+4      3,          R,S[ S[
S[S[3,          R,          S[! R-4      3,          R.S[ S[S[.S[3,          S[! R/4      3,          R0S[S[.S[3,          /# r  r  )rb   r   s   "rc   rd   r    r  re   c               V    V P                  VVVVVVVVV	V
R.VVVVVVVVVVVVVR7      # )a   
Add a *path operation* using an HTTP OPTIONS operation.

## Example

```python
from fastapi import APIRouter, FastAPI

app = FastAPI()
router = APIRouter()

@router.options("/items/")
def get_item_options():
    return {"additions": ["Aji", "Guacamole"]}

app.include_router(router)
```
OPTIONSr  r  r  s   &&$$$$$$$$$$$$$$$$$$$$$$rc   optionsAPIRouter.options  se    |
 ~~)#%#!5!K%#9#9$;)E,K(C/)'(C1  
 	
re   c          2      T  < V ^8  d   QhRS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[S[,          ,          R,          S[! R	4      3,          R
S[ S[S[P                  ,          R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[
S[S[,          S[
S[S[3,          3,          R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          R S[ S[S[! R!4      3,          R"S[ S[S[! R#4      3,          R$S[ S[S[! R%4      3,          R&S[ S[S[,          S[! R'4      3,          R(S[ S[R,          S[! R)4      3,          R*S[ S[S[,          R,          S[! R+4      3,          R,S[ S[
S[S[3,          R,          S[! R-4      3,          R.S[ S[S[.S[3,          S[! R/4      3,          R0S[S[.S[3,          /# r  r  )rb   r   s   "rc   rd   r  .  r  re   c               V    V P                  VVVVVVVVV	V
R.VVVVVVVVVVVVVR7      # )a  
Add a *path operation* using an HTTP HEAD operation.

## Example

```python
from fastapi import APIRouter, FastAPI
from pydantic import BaseModel

class Item(BaseModel):
    name: str
    description: str | None = None

app = FastAPI()
router = APIRouter()

@router.head("/items/", status_code=204)
def get_items_headers(response: Response):
    response.headers["X-Cat-Dog"] = "Alone in the world"

app.include_router(router)
```
r  r  r  r  s   &&$$$$$$$$$$$$$$$$$$$$$$rc   headAPIRouter.head.  r  re   c          2      T  < V ^8  d   QhRS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[S[,          ,          R,          S[! R	4      3,          R
S[ S[S[P                  ,          R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[
S[S[,          S[
S[S[3,          3,          R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          R S[ S[S[! R!4      3,          R"S[ S[S[! R#4      3,          R$S[ S[S[! R%4      3,          R&S[ S[S[,          S[! R'4      3,          R(S[ S[R,          S[! R)4      3,          R*S[ S[S[,          R,          S[! R+4      3,          R,S[ S[
S[S[3,          R,          S[! R-4      3,          R.S[ S[S[.S[3,          S[! R/4      3,          R0S[S[.S[3,          /# r  r  )rb   r   s   "rc   rd   r    r  re   c               V    V P                  VVVVVVVVV	V
R.VVVVVVVVVVVVVR7      # )a  
Add a *path operation* using an HTTP PATCH operation.

## Example

```python
from fastapi import APIRouter, FastAPI
from pydantic import BaseModel

class Item(BaseModel):
    name: str
    description: str | None = None

app = FastAPI()
router = APIRouter()

@router.patch("/items/")
def update_item(item: Item):
    return {"message": "Item updated in place"}

app.include_router(router)
```
PATCHr  r  r  s   &&$$$$$$$$$$$$$$$$$$$$$$rc   patchAPIRouter.patch  e    F ~~)#%#!5!I%#9#9$;)E,K(C/)'(C1  
 	
re   c          2      T  < V ^8  d   QhRS[ S[S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[S[,          ,          R,          S[! R	4      3,          R
S[ S[S[P                  ,          R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[
S[S[,          S[
S[S[3,          3,          R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[R,          S[! R4      3,          RS[ S[S[! R4      3,          RS[ S[S[! R4      3,          R S[ S[S[! R!4      3,          R"S[ S[S[! R#4      3,          R$S[ S[S[! R%4      3,          R&S[ S[S[,          S[! R'4      3,          R(S[ S[R,          S[! R)4      3,          R*S[ S[S[,          R,          S[! R+4      3,          R,S[ S[
S[S[3,          R,          S[! R-4      3,          R.S[ S[S[.S[3,          S[! R/4      3,          R0S[S[.S[3,          /# r  r  )rb   r   s   "rc   rd   r  *  r  re   c               V    V P                  VVVVVVVVV	V
R.VVVVVVVVVVVVVR7      # )at  
Add a *path operation* using an HTTP TRACE operation.

## Example

```python
from fastapi import APIRouter, FastAPI
from pydantic import BaseModel

class Item(BaseModel):
    name: str
    description: str | None = None

app = FastAPI()
router = APIRouter()

@router.trace("/items/{item_id}")
def trace_item(item_id: str):
    return None

app.include_router(router)
```
TRACEr  r  r  s   &&$$$$$$$$$$$$$$$$$$$$$$rc   traceAPIRouter.trace*  r  re   c                   < V ^8  d   QhRR/# r   r   )rb   r   s   "rc   rd   r    s       re   c                   "   V P                    F,  p\        V4      '       d   V! 4       G Rj  xL
  K%  V! 4        K.  	  R#  L5i)z
Run any `.on_startup` event handlers.

This method is kept for backward compatibility after Starlette removed
support for on_startup/on_shutdown handlers.

Ref: https://github.com/Kludex/starlette/pull/3117
N)r  r@   r   r  s   & rc   r   APIRouter._startup  s1      G ))i		 '   +AAAc                   < V ^8  d   QhRR/# r   r   )rb   r   s   "rc   rd   r    s       re   c                   "   V P                    F,  p\        V4      '       d   V! 4       G Rj  xL
  K%  V! 4        K.  	  R#  L5i)z
Run any `.on_shutdown` event handlers.

This method is kept for backward compatibility after Starlette removed
support for on_startup/on_shutdown handlers.

Ref: https://github.com/Kludex/starlette/pull/3117
N)r  r@   r  s   & rc   r   APIRouter._shutdown  s3      ''G ))i		 (r  c                >   < V ^8  d   QhRS[ RS[. S[3,          RR/# )r_   
event_typer`   ra   N)r   r   r   )rb   r   s   "rc   rd   r    s2     * ** r3w* 
	*re   c                    VR9   g   Q hVR8X  d   V P                   P                  V4       R# V P                  P                  V4       R# )z
Add an event handler function for startup or shutdown.

This method is kept for backward compatibility after Starlette removed
support for on_startup/on_shutdown handlers.

Ref: https://github.com/Kludex/starlette/pull/3117
r  N)r  r  )r  r  r  )r   r  r`   s   &&&rc   r  APIRouter.add_event_handler  sA     4444"OO""4(##D)re   z
        on_event is deprecated, use lifespan event handlers instead.

        Read more about it in the
        [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/).
        c                `   < V ^8  d   QhRS[ S[S[! R4      3,          RS[S[.S[3,          /# )r_   r  zM
                The type of event. `startup` or `shutdown`.
                ra   )r   r   r   r   r7   )rb   r   s   "rc   rd   r    sH      
 
$%'88	9re   c                   a a R VV 3R llpV# )z
Add an event handler for the router.

`on_event` is deprecated, use `lifespan` event handlers instead.

Read more about it in the
[FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/#alternative-events-deprecated).
c                0    V ^8  d   QhR\         R\         /# r^   ra  )rb   s   "rc   rd   (APIRouter.on_event.<locals>.__annotate__  r  re   c                 ,   < SP                  SV 4       V # r   )r  )r`   r  r   s   &rc   rd  %APIRouter.on_event.<locals>.decorator  s    "":t4Kre   r   )r   r  rd  s   ff rc   on_eventAPIRouter.on_event  s    8	 	 re   )r!  r  r   rE  r  r  r3  r\   rG  rD  r   r  r  r  rI  r  r5  rH  r   )NNT)-r   r   r   r   r   r!   rH   rj  r:   r   r%  r  r0  r5  r9  r>  rz   r  r  rR  rB  rV  r  ro  rw  r{  r  r  r  r  r  r  r  r  r  r  r  r   r   r  r\   r  r   r   r  r  s   @@rc   r   r     s    4^A RT^A" #^A: ;^AP L!Q^Ap q^AL M^Ax y^AJ K^A\ ]^Ar s^AH I^A` a^Az {^AV W^Ap q^AL M^Aj &'k^AX DMY^A ^A@	" "  $$ $"$ $Q$4 5Q$D EQ$ Q$f>1 >1@- - A A0* 0*d2 2 &R$
 &dmR$ #'R$ )-R$ 9=R$ #R$ #'R$ %:R$ =AR$ #'R$ 04R$ $(R$  04!R$" 04#R$$ )-%R$& .3'R$( 16)R$* -2+R$, #'-R$. ?Fl>S/R$0  1R$2 7;3R$4 -15R$6 047R$:  ''9:;R$< :A=R$ R$h< &dm	<
 #'< )-< 9=< #< #'< %:< =A< #'< %)< $(< 04<  04!<" )-#<$ .3%<& 16'<( -2)<* #'+<, *1)>-<.  /<0 -11<2 043<4 BIB
5< <|$ 9=$ $,A< =A AF {
 RT	{
$ %{
< ={
R L!S{
r s{
N O{
h i{
~ {
\ &']{
 {
zw
\ DM]w
v ww
P Qw
h iw
B Cw
f gw
z "{w
N Ow
b cw
J Kw
b cw
z {w
R Sw
v ww
X Yw
z {w
T Uw
n L!ow
~ w
^	 _	w
v	 w	w
T
 &'U
w
 w
r|
\ DM]|
v w|
P Q|
h i|
B C|
f g|
z "{|
N O|
b c|
J K|
b c|
z {|
R S|
v w|
X Y|
z {|
T U|
n L!o|
~ |
^	 _	|
v	 w	|
T
 &'U
|
 |
||
\ DM]|
v w|
P Q|
h i|
B C|
f g|
z "{|
N O|
b c|
J K|
b c|
z {|
R S|
v w|
X Y|
z {|
T U|
n L!o|
~ |
^	 _	|
v	 w	|
T
 &'U
|
 |
|w
\ DM]w
v ww
P Qw
h iw
B Cw
f gw
z "{w
N Ow
b cw
J Kw
b cw
z {w
R Sw
v ww
X Yw
z {w
T Uw
n L!ow
~ w
^	 _	w
v	 w	w
T
 &'U
w
 w
rw
\ DM]w
v ww
P Qw
h iw
B Cw
f gw
z "{w
N Ow
b cw
J Kw
b cw
z {w
R Sw
v ww
X Yw
z {w
T Uw
n L!ow
~ w
^	 _	w
v	 w	w
T
 &'U
w
 w
r|
\ DM]|
v w|
P Q|
h i|
B C|
f g|
z "{|
N O|
b c|
J K|
b c|
z {|
R S|
v w|
X Y|
z {|
T U|
n L!o|
~ |
^	 _	|
v	 w	|
T
 &'U
|
 |
||
\ DM]|
v w|
P Q|
h i|
B C|
f g|
z "{|
N O|
b c|
J K|
b c|
z {|
R S|
v w|
X Y|
z {|
T U|
n L!o|
~ |
^	 _	|
v	 w	|
T
 &'U
|
 |
||
\ DM]|
v w|
P Q|
h i|
B C|
f g|
z "{|
N O|
b c|
J K|
b c|
z {|
R S|
v w|
X Y|
z {|
T U|
n L!o|
~ |
^	 _	|
v	 w	|
T
 &'U
|
 |
~    * *& 	 re   r   c                    V ^8  d   Qh/ ^ \         9   d   \        \        \        3,          ;R&   ^\         9   d   \        \
        R,          ,          ;R&   # )r_   r   Nrr  )__conditional_annotations__r  r"  r-   r   r   )rb   s   "rc   rd   rd      sG      T 9 8c?23 8U x jt4 y re   r[  )r  r   r!  email.messager  r  r}   r   rD  r]  r}  r   collections.abcr   r   r   r   r   r   r	   r
   r   r   r   r   r   contextvarsr   dataclassesr   r   enumr   r   typingr   r   r   r   r   r   ru  annotated_docr   	anyio.abcr   r   r   fastapi._compatr   r   r    fastapi.datastructuresr!   r"   fastapi.dependencies.modelsr#   fastapi.dependencies.utilsr$   r%   r&   r'   r(   r)   r*   r+   fastapi.encodersr,   fastapi.exceptionsr-   r.   r/   r0   r1   fastapi.sser2   r3   r4   r5   r6   fastapi.typesr7   r8   fastapi.utilsr9   r:   r;   r<   	starletter=   starlette._exception_handlerr>   starlette._utilsr?   r@   starlette.concurrencyrA   rB   starlette.datastructuresrC   rD   rE   starlette.exceptionsrF   starlette.requestsrG   starlette.responsesrH   rI   rJ   rK   rL   starlette.routingrM   rN   rO   rP   rQ   rR   starlette.staticfilesrS   starlette.typesrT   rU   rV   rW   rX   rY   starlette.websocketsr[   typing_extensionsr\   r   r   r   r   r   r   r   r   r   r  r  r(  r  r  r   r  r  r*  r  r3  r/  rr  r   r9  r	  r  r  r  r%  r,  r0  r5  r;  r=  rh  r  rj  r  r  r  r   rG  rJ  rE  rS  rW  r[  rb  rd  r  r  r  r  r#  r   rd   )r  s   @rc   <module>r     s           	  
 
 
  # (     )  
 ? 1	 	 	 .   3   E > J ; ; . &   - - L L * (
'X0 T]A:2> A."" 2 79  8.(2#(2 !	(2
 !(2 (2  (2 #(2 (2 (2 ,0(2 (2V
A( %)":A,:O(,+/+/$().,1(-04#5<T]+/ !zz"J$".. $"N  '@ $, $: !0 7A%t8   	8"X >WO&)H )Xa
 "$-a #a %)a 59a a #a !6a 9=a #a a ,0a   $!a" ,0#a$ ,0%a& %)'a( */)a* -2+a, ).-a. #/a0 ;B,:O1a2 153a4 )-5a6 ,07a8 NUN9a> 6=T]?aH\3w}} \3~ U( U( U(p g3 g3 g3T $%4 %4 %4P [6i [6 [6|B-p
; p
f
"3*4.Y 4.nQL) QLhZA ZAre   