
    Oj|I              ;         S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	J
r
  S SKJr  S SKJrJrJr  S SKrS SKrS SKJr  S SKJrJrJrJrJrJrJrJrJrJrJ r J!r!  S SK"J#r#  S S	K$J%r%J&r&  \RN                  " \(" \RR                  " 5       5      5      r*\RN                  " \(" \RR                  " 5       5      5      r+\RN                  " \5      r,SS
 jr-\R\                  " S5      r/SS jr0\Rb                  " SS0S9\Rd                  " SSS9\Rf                  " S\4SSSS9\Rf                  " S\5SSSS9\Rf                  " S\4SSS9\Rf                  " S\5SSS9\Rf                  " S SS!S"S#9\Rf                  " S$S%SS&\Rl                  " SS'9S(9\Rf                  " S)S*SS+S,9\Rf                  " S-S.SS/S,9\Rf                  " S0\7S1SS2S39\Rf                  " S4S\5S5S69\Rf                  " S7\4\-" \ 5      S8S9SS:9\Rf                  " S;\4\-" \5      S8S<SS:9\Rf                  " S=\4\-" \!5      S8S>SS:9\Rf                  " S?\5S@SASS9\Rf                  " SB\5SCSDSS9\Rf                  " SE\7SFSGSS9\Rf                  " SH\7SFSISS9\Rf                  " SJ\8SSKSS9\Rf                  " SL\+S8SMSS9\Rf                  " SN\,S8SOSS9\Rf                  " SP\Rl                  " SS'9SSQSS9\Rf                  " SR\Rl                  " SS'9SSSSS9\Rf                  " ST\*SSUSS9\Rf                  " SVSSSWS#9\Rf                  " SXSSSYS#9\Rf                  " SZSSS[S#9\Rf                  " S\SSS]S#9\Rf                  " S^SSS_S#9\Rf                  " S`\4SSaS9\Rf                  " Sb\4ScSdS9\Rf                  " Se\5SSfS9\Rf                  " Sg\5ShSiS9\Rf                  " Sj\5SSkS9\Rf                  " Sl\5S SmSS9\Rf                  " Sn\5SoSpSS9\Rf                  " Sq\5SSrS9\Rf                  " Ss\5SoStSS9\Rf                  " Su\4SSvSS9\Rf                  " Sw\4SSxSS9\Rf                  " Sy\4SSzSS9\Rf                  " S{\5\5" \5      S|SS9\Rf                  " S}\5\5" \Rr                  5      S~SS9\Rf                  " S\4SSSS9\Rf                  " S\4SSSS9\Rf                  " SSSSS,9\Rf                  " SS\0S!SSS9\Rf                  " SScSSS9\Rf                  " SS\5SSS9\Rf                  " SSS!SSS9\Rf                  " SSS!SSS9                                                                                                      SS j5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       5       r:SSSSS8S8S8S@SCSFSFSS8S8S!SSSS1SS\SSSSSSScSShSS SoSSoSSS\\Rr                  SSSSSSS!SS!S.2                                                                                                       SS jjr;SS jr<\=S:X  a  \:" 5         gg)    )annotationsN)Callable)RawConfigParser)IOAnyget_args)ASGIApplication)
INTERFACESLIFESPAN
LOG_LEVELSLOGGING_CONFIGSSL_PROTOCOL_VERSIONSTARTUP_FAILUREConfigHTTPProtocolTypeInterfaceTypeLifespanTypeLoopFactoryTypeWSProtocolType)Server)ChangeReloadMultiprocessc                L    SSR                  S [        U 5       5       5       S3$ )N[|c              3  4   #    U  H  oS :w  d  M
  Uv   M     g7f)noneN ).0keys     N/var/www/html/leaf-doctor-v1/venv/lib/python3.13/site-packages/uvicorn/main.py	<genexpr>%_metavar_from_type.<locals>.<genexpr>)   s     H-s   		])joinr   )_types    r!   _metavar_from_typer'   (   s%    sxxHxHHIKK    uvicorn.errorc           	     0   U(       a  U R                   (       a  g [        R                  " SR                  [        R
                  [        R                  " 5       [        R                  " 5       [        R                  " 5       S95        U R                  5         g )NzKRunning uvicorn {version} with {py_implementation} {py_version} on {system})versionpy_implementation
py_versionsystem)resilient_parsingclickechoformatuvicorn__version__platformpython_implementationpython_versionr.   exit)ctxparamvalues      r!   print_versionr<   /   sf    C))	JJU\\''&<<>..0??$	 	] 	
 HHJr(   auto_envvar_prefixUVICORN)context_settingsappUVICORN_APP)envvarz--hostz	127.0.0.1zBind socket to this host.T)typedefaulthelpshow_defaultz--porti@  zABind socket to this port. If 0, an available port will be picked.z--udszBind to a UNIX domain socket.)rC   rD   rE   z--fdz)Bind to socket from this file descriptor.z--reloadFzEnable auto-reload.)is_flagrD   rE   z--reload-dirreload_dirszRSet reload directories explicitly, instead of using the current working directory.)exists)multiplerE   rC   z--reload-includereload_includeszSet glob patterns to include while watching for files. Includes '*.py' by default; these defaults can be overridden with `--reload-exclude`. This option has no effect unless watchfiles is installed.)rJ   rE   z--reload-excludereload_excludeszSet glob patterns to exclude while watching for files. Includes '.*, .py[cod], .sw.*, ~*' by default; these defaults can be overridden with `--reload-include`. This option has no effect unless watchfiles is installed.z--reload-delayg      ?zTDelay between previous and next check if application needs to be. Defaults to 0.25s.)rC   rD   rF   rE   z	--workersz~Number of worker processes. Defaults to the $WEB_CONCURRENCY environment variable if available, or 1. Not valid with --reload.)rD   rC   rE   z--loopautoz"Event loop factory implementation.)rC   metavarrD   rE   rF   z--httpzHTTP protocol implementation.z--wsz"WebSocket protocol implementation.z--ws-max-sizei   z#WebSocket max size message in bytesz--ws-max-queue    z2The maximum length of the WebSocket message queue.z--ws-ping-intervalg      4@z#WebSocket ping interval in seconds.z--ws-ping-timeoutz"WebSocket ping timeout in seconds.z--ws-per-message-deflatez)WebSocket per-message-deflate compressionz
--lifespanzLifespan implementation.z--interfacez:Select ASGI3, ASGI2, or WSGI as the application interface.z
--env-filezEnvironment configuration file.z--log-configzBLogging configuration file. Supported formats: .ini, .json, .yaml.z--log-levelzLog level. [default: info]z--access-log/--no-access-logzEnable/Disable access log.z--use-colors/--no-use-colorsz!Enable/Disable colorized logging.z"--proxy-headers/--no-proxy-headerszaEnable/Disable X-Forwarded-Proto, X-Forwarded-For to populate url scheme and remote address info.z"--server-header/--no-server-headerz%Enable/Disable default Server header.z--date-header/--no-date-headerz#Enable/Disable default Date header.z--forwarded-allow-ipszComma separated list of IP Addresses, IP Networks, or literals (e.g. UNIX Socket path) to trust with proxy headers. Defaults to the $FORWARDED_ALLOW_IPS environment variable if available, or '127.0.0.1'. The literal '*' means trust everything.z--root-path zLSet the ASGI 'root_path' for applications submounted below a given URL path.z--limit-concurrencyz^Maximum number of concurrent connections or tasks to allow, before issuing HTTP 503 responses.z	--backlogi   z0Maximum number of connections to hold in backlogz--limit-max-requestszEMaximum number of requests to service before terminating the process.z--limit-max-requests-jitterzuMaximum jitter to add to limit_max_requests. Staggers worker restarts to avoid all workers restarting simultaneously.z--timeout-keep-alive   zYClose Keep-Alive connections if no new data is received within this timeout (in seconds).z--timeout-graceful-shutdownz8Maximum number of seconds to wait for graceful shutdown.z--timeout-worker-healthcheckzKMaximum number of seconds to wait for a worker to respond to a healthcheck.z--ssl-keyfilezSSL key filez--ssl-certfilezSSL certificate filez--ssl-keyfile-passwordzSSL keyfile passwordz--ssl-versionz,SSL version to use (see stdlib ssl module's)z--ssl-cert-reqsz@Whether client certificate is required (see stdlib ssl module's)z--ssl-ca-certszCA certificates filez--ssl-cipherszNCiphers to use (see stdlib ssl module's). Defaults to OpenSSL's safe defaults.z--headerheaderszASpecify custom default HTTP response headers as a Name:Value pairz	--versionz%Display the uvicorn version and exit.)rG   callbackexpose_valueis_eagerrE   z	--app-dirzuLook for APP in the specified directory, by adding this to the PYTHONPATH. Defaults to the current working directory.)rD   rF   rE   z--h11-max-incomplete-event-sizeh11_max_incomplete_event_sizezFFor h11, the maximum number of bytes to buffer of an incomplete event.z--reset-contextvarszXRun each ASGI request in a fresh contextvars.Context. Hides context set in the lifespan.)rG   rD   rE   rF   z	--factoryzFTreat APP as an application factory, i.e. a () -> <ASGI app> callable.c2                   [        U 40 SU_SU_SU_SU_SU_SU_SU_SU_S	U	_S
U
_SU_SU_SU_SU_SUc  [        OU_SU_SU_SU_SU_SU=(       d    S _SU=(       d    S _SU=(       d    S _SU_SU_SU_SU_SU_SU_SU_SU_SU_S U _S!U!_S"U"_S#U#_S$U$_S%U%_S&U&_S'U'_S(U(_S)U)_S*U*_S+U+_S,U, V2s/ s H  n2U2R                  S-S.5      PM     sn2_S/U-_S0U1_S1U._S2U/_S3U0_6  g s  sn2f )4Nhostportudsfdloophttpwsws_max_sizews_max_queuews_ping_intervalws_ping_timeoutws_per_message_deflatelifespanenv_file
log_config	log_level
access_log	interfacereloadrH   rK   rL   reload_delayworkersproxy_headersserver_headerdate_headerforwarded_allow_ips	root_pathlimit_concurrencybackloglimit_max_requestslimit_max_requests_jittertimeout_keep_alivetimeout_graceful_shutdowntimeout_worker_healthcheckssl_keyfilessl_certfilessl_keyfile_passwordssl_versionssl_cert_reqsssl_ca_certsssl_ciphersrR   :   
use_colorsfactoryapp_dirrV   reset_contextvars)runr   split)3r@   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   ri   rj   rH   rK   rL   rk   rl   re   rf   rg   rh   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   rR   r   r   rV   r   r   headers3                                                      r!   mainr   =   sY   v 33 3 	3
 3 3 3 3  3 "3 *3 (3  63 3 3  &0%7>Z!3" #3$ %3& '3( )3*  '4+3, (/4-3. (/4/30 "132 334 $536 $738  93: 0;3< =3> ,?3@ A3B .C3D #<E3F .G3H #<I3J $>K3L  M3N "O3P 2Q3R  S3T $U3V "W3X  Y3Z 5<<G&c1%G<[3\ ]3^ _3` a3b 'Dc3d ,e3Z =s   3C$)2rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   ri   rj   rH   rK   rL   rk   rl   re   rf   rg   rh   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   ssl_context_factoryrR   r   r   r   rV   r   c       2           U/b   [         R                  R                  SU/5        [        U 40 SU_SU_SU_SU_SU_SU_SU_S	U_S
U	_SU
_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_SU_S U_S!U _S"U!_S#U"_S$U#_S%U$_S&U%_S'U&_S(U'_S)U(_S*U)_S+U*_S,U+_S-U,_S.U-_S/U._S0U0_S1U1_S2U2_6n3U3R                  (       d  U3R
                  S3:  aW  [        U [        5      (       dA  [        R                  " S45      n4U4R                  S55        [         R                  " [        5        OU3R                  5         [        U3S69n5 U3R                  (       a5  U3R!                  5       n6[#        U3U5R$                  U6/S79R%                  5         OKU3R
                  S3:  a*  U3R!                  5       n6['        U3U6/S89R%                  5         OU5R%                  5          U3R*                  (       aN  [,        R                  R/                  U3R*                  5      (       a   [,        R0                  " U3R*                  5        U5R2                  (       d>  U3R                  (       d,  U3R
                  S3:X  a  [         R                  " [        5        g g g g ! [(         a     Nf = f! U3R*                  (       aP  [,        R                  R/                  U3R*                  5      (       a!  [,        R0                  " U3R*                  5        f f f = f)9Nr   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   ri   rj   rH   rK   rL   rk   rl   re   rf   rg   rh   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   rR   r   r   rV   r   r   r)   zRYou must pass the application as an import string to enable 'reload' or 'workers'.)config)targetsockets)r   )syspathinsertr   rj   rl   
isinstancestrlogging	getLoggerwarningr8   r   load_appr   should_reloadbind_socketr   r   r   KeyboardInterruptrZ   osrI   removestarted)7r@   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   ri   rj   rH   rK   rL   rk   rl   re   rf   rg   rh   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   rR   r   r   r   rV   r   r   loggerserversocks7                                                          r!   r   r     s   l 7#33 3 	3
 3 3 3 3  3 "3 *3 (3  63 3 3  !3"  #3$ (%3& ('3( ")3* +3, -3. /30 132 334 $536 $738  93: 0;3< =3> ,?3@ A3B .C3D #<E3F .G3H #<I3J $>K3L  M3N "O3P 2Q3R  S3T $U3V "W3X  Y3Z 0[3\ ]3^ _3` a3b 'Dc3d ,e3Fh }}*#s##&&7FNNopHH_%6"F"%%'D

TFCGGI^^a%%'D$0446JJL ::"''..44IIfjj!>>&"6"66>>Q;N! <O"6>   ::"''..44IIfjj! 5:sD   AJ J# 9J J# J #J# 
J J# J  J# #A#Lc                ~    U S:X  a#  [         R                  " S[        5        SSKJn  U$ [        S[         SU  35      e)NServerStatezOuvicorn.main.ServerState is deprecated, use uvicorn.server.ServerState instead.r   )r   zmodule z has no attribute )warningswarnDeprecationWarninguvicorn.serverr   AttributeError__name__)namer   s     r!   __getattr__r   x  s@    }]	
 	/
78*,>tfE
FFr(   __main__)r&   r   returnr   )r9   zclick.Contextr:   zclick.Parameterr;   boolr   None)fr@   r   rX   r   rY   intrZ   r   r[   r   r\   LoopFactoryType | strr]   zHTTPProtocolType | strr^   zWSProtocolType | strr_   r   r`   r   ra   floatrb   r   rc   r   rd   r   ri   r   rj   r   rH   	list[str]rK   r   rL   r   rk   r   rl   r   re   r   rf   r   rg   r   rh   r   rm   r   rn   r   ro   r   rp   r   rq   r   rr   r   rs   r   rt   r   ru   r   rv   r   rw   
int | Nonerx   r   ry   r   rz   r   r{   r   r|   r   r}   r   r~   r   r   
str | NonerR   r   r   r   r   r   rV   r   r   r   r   r   r   r   )hr@   z*ASGIApplication | Callable[..., Any] | strrX   r   rY   r   rZ   r   r[   r   r\   r   r]   z/type[asyncio.Protocol] | HTTPProtocolType | strr^   z-type[asyncio.Protocol] | WSProtocolType | strr_   r   r`   r   ra   float | Nonerb   r   rc   r   rd   r   ri   r   rj   r   rH   list[str] | str | NonerK   r   rL   r   rk   r   rl   r   re   str | os.PathLike[str] | Nonerf   zJdict[str, Any] | str | os.PathLike[str] | RawConfigParser | IO[Any] | Nonerg   zstr | int | Nonerh   r   rm   r   rn   r   ro   r   rp   r   rq   r   rr   r   rs   r   rt   r   ru   r   rv   r   rw   r   rx   r   ry   r   rz   r   r{   r   r|   r   r}   r   r~   r   r   r   r   zGCallable[[Config, Callable[[], ssl.SSLContext]], ssl.SSLContext] | NonerR   zlist[tuple[str, str]] | Noner   zbool | Noner   r   r   r   rV   r   r   r   r   r   )r   r   r   r   )>
__future__r   asyncior   r   r5   sslr   r   collections.abcr   configparserr   typingr   r   r   r0   r3   uvicorn._typesr	   uvicorn.configr
   r   r   r   r   r   r   r   r   r   r   r   r   r   uvicorn.supervisorsr   r   ChoicelistkeysLEVEL_CHOICESLIFESPAN_CHOICESINTERFACE_CHOICESr'   r   r   r<   commandargumentoptionr   r   Pathr   r   	CERT_NONEr   r   r   r   r   r(   r!   <module>r      s   "   	  
 
  $ ( $ $   *    " :T*//"345<<X]]_ 56 LL, L 
		?	+ !5y ABm,		$ 		L gC4STf33^_j$<QR	]	4	  
@	 
	 		_ 	
=	 	/	- 	/0	( 
	~.	- 		. 		= 		. 		- 		4 		# 		E 	4	 	* 	4	 	M 		% "	%	 "	,	 (	l	 (	0	 $	.	 	
.	 		W	 		i	 		;	 		P	 !	
P 		d !		C	 "		V oCNY]^		 		 	$%	7 		K 		 		Y 	L	 	0 
2	 %#		Q 	c 	Qg	g
g g 
	g
 	g  g !g 	g g g g g !g g g  !g" #g$ %g& 'g( )g* +g, -g. /g0 1g2 3g4 5g6 7g8 9g: ;g< =g> ?g@ AgB CgD  #EgF GgH  *IgJ !$KgL MgN OgP QgR SgT UgV WgX YgZ [g\ ]g^ _g` $.agb cgd egf 
gg _ S ` U - CN
gZ "(<B8>%)$(#'#%*..2.2.2]k"&26$(%)%&,0&'1526'++26"cg,0"04#iG"	3G" G" 	G"
 
G" 	G"  G" :G" 	6G" G" G" #G" "G" !G" G"  !G"" #G"$ (%G"& ,'G"( ,)G"* +G", -G". ,/G"0 [1G"2  3G"4 5G"6 7G"8 9G": ;G"< 0=G"> ?G"@ "AG"B CG"D #EG"F  #GG"H IG"J  *KG"L !$MG"N /OG"P 0QG"R %SG"T UG"V WG"X 0YG"Z [G"\ a]G"^ *_G"` aG"b cG"d eG"f $.gG"h iG"j 
kG"T	G zF r(   