+
    ýg©jØ
  ã                  ó¼   € R t ^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ^ RI
H
t
 ^ RIHt ]P                  ! 4        ]P                  ! R4      tR R	 ltR
 R ltR# )ze
Some light wrappers around Python's multiprocessing, to deal with cleanly
starting child processes.
)ÚannotationsN)ÚCallable)ÚSpawnProcess)Úsocket)ÚConfigÚspawnc               ó(   € V ^8„  d   QhRRRRRRRR/# )	é   Úconfigr   ÚtargetúCallable[..., None]Úsocketsúlist[socket]Úreturnr   © )Úformats   "ÚN/var/www/html/bestweb/venv/lib/python3.14/site-packages/uvicorn/_subprocess.pyÚ__annotate__r      s6   € ÷ Cñ CØðCàðCð ðCð ñ	Có    c                ó¼   €  \         P                  P                  4       pRV RVRVRV/p\
        P                  \        VR7      #   \        \        3 d    Rp L:i ; i)a´  
Called in the parent process, to instantiate a new child process instance.
The child is not yet started at this point.

* config - The Uvicorn configuration instance.
* target - A callable that accepts a list of sockets. In practice this will
           be the `Server.run()` method.
* sockets - A list of sockets to pass to the server. Sockets are bound once
            by the parent process, and then passed to the child processes.
Nr
   r   r   Ústdin_fileno)r   Úkwargs)ÚsysÚstdinÚfilenoÚAttributeErrorÚOSErrorr   ÚProcessÚsubprocess_started)r
   r   r   r   r   s   &&&  r   Úget_subprocessr      sg   € ð"Ü—y‘y×'Ñ'Ó)ˆð 	�&Ø�&Ø�7Ø˜ð	€Fô �=‰=Ô 2¸6ˆ=ÓBÐBøô œGÐ$ô ØŠðús   ‚A ÁAÁAc          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r	   r
   r   r   r   r   r   r   z
int | Noner   ÚNoner   )r   s   "r   r   r   6   s:   € ÷ ñ Øðàðð ðð ð	ð
 
ñr   c                ó¤   € Ve    \         P                  ! V4      \        n        V P	                  4         V! VR7       R#   \
         d     R# i ; i)aÖ  
Called when the child process starts.

* config - The Uvicorn configuration instance.
* target - A callable that accepts a list of sockets. In practice this will
           be the `Server.run()` method.
* sockets - A list of sockets to pass to the server. Sockets are bound once
            by the parent process, and then passed to the child processes.
* stdin_fileno - The file number of sys.stdin, so that it can be reattached
                 to the child process.
N)r   )ÚosÚfdopenr   r   Úconfigure_loggingÚKeyboardInterrupt)r
   r   r   r   s   &&&&r   r   r   6   sI   € ð$ ÒÜ—I’I˜lÓ+ŒŒ	ð ×ÑÔðá�w×øÜô ò 	ðús   µ	A  Á AÁA)Ú__doc__Ú
__future__r   Úmultiprocessingr#   r   Úcollections.abcr   Úmultiprocessing.contextr   r   Úuvicorn.configr   Úallow_connection_picklingÚget_contextr   r   r   r   r   r   Ú<module>r/      sL   ðñõ
 #ã Û 	Û 
Ý $Ý 0Ý å !à × )Ò )Ô +Ø×#Ò# GÓ,€õC÷Br   