Ë
    ÷eœiˆ  ã                  ó˜  — d Z ddlmZ ddlZddlZddlZddlZddlmZm	Z	m
Z
 dZej                  j                  e«      Zdd„Zdd„Zej$                  dk(  r eed	d
«      Zdd„Zydd„Zdd„Zdd„Zedk(  rI eed«      r	  ej4                  «         e eej8                  dd «      «        ej:                  d«       yy# e$ r Y Œ6w xY w)ac  Support for spawning a daemon process.

PyMongo only attempts to spawn the mongocryptd daemon process when automatic
client-side field level encryption is enabled. See
`Client-side Field Level Encryption <https://www.mongodb.com/docs/languages/python/pymongo-driver/current/security/in-use-encryption/#client-side-field-level-encryption>`_ for more info.
é    )ÚannotationsN)ÚAnyÚOptionalÚSequenceé
   c                óZ   — 	 | j                  |¬«      S # t        j                  $ r Y yw xY w)z,Implement wait timeout support for Python 3.)ÚtimeoutN)ÚwaitÚ
subprocessÚTimeoutExpired)Úpopenr	   s     úc/var/www/html/Whatsapp_Customer_Support_Chatbot/venv/lib/python3.12/site-packages/pymongo/daemon.pyÚ_popen_waitr   "   s0   € ðØ�z‰z 'ˆzÓ*Ð*øÜ×$Ñ$ò áðús   ‚ ”*©*c                ó   — | �d| _         yy)zpSilence Popen's ResourceWarning.

    Note this should only be used if the process was created as a daemon.
    Nr   )Ú
returncode)r   s    r   Ú_silence_resource_warningr   +   s   € ð ÐØˆÕð ó    Úwin32ÚDETACHED_PROCESSé   c                ó,  — 	 t        t        j                  d«      5 }t        j                  | t
        |||¬«      }t        |«       ddd«       y# 1 sw Y   yxY w# t        $ r/}t        j                  d| d   › d|› �t        d¬«       Y d}~yd}~ww xY w)	z!Spawn a daemon process (Windows).úr+b)ÚcreationflagsÚstdinÚstderrÚstdoutNúFailed to start r   ú+: is it on your $PATH?
Original exception: é   ©Ú
stacklevel)ÚopenÚosÚdevnullr   ÚPopenÚ_DETACHED_PROCESSr   ÚFileNotFoundErrorÚwarningsÚwarnÚRuntimeWarning)Úargsr$   r   Úexcs       r   Ú_spawn_daemonr-   =   s”   € ð	Ü”b—j‘j %Ó(ð 1¨GÜ"×(Ñ(ØÜ"3Ø!Ø"Ø"ô�ô *¨%Ô0÷1÷ 1ñ 1ûô !ò 	Ü�M‰MØ" 4¨¡7 )Ð+WÐX[ÐW\Ð]ÜØ÷ò ûð	ús4   ‚A œ*AÁA ÁAÁA ÁA Á	BÁ$%BÂBc                ó  — 	 t        t        j                  d«      5 }t        j                  | d|||¬«      cddd«       S # 1 sw Y   yxY w# t
        $ r/}t        j                  d| d   › d|› �t        d¬	«       Y d}~yd}~ww xY w)
z,Spawn the process and silence stdout/stderr.r   T)Ú	close_fdsr   r   r   Nr   r   r   r   r    )	r"   r#   r$   r   r%   r'   r(   r)   r*   )r+   r$   r,   s      r   Ú_spawnr0   \   s’   € ð	Ü”b—j‘j %Ó(ð ¨GÜ!×'Ñ'ØØ"Ø!Ø"Ø"ô÷÷ ñ ð ûô !ò 	Ü�M‰MØ" 4¨¡7 )Ð+WÐX[ÐW\Ð]ÜØ÷ñ ð
 ûð	ús3   ‚A œA ¶	A Á A	ÁA Á	A Á	BÁ%A?Á?Bc                ó    — t         j                  t        g}|j                  | «       t	        j
                  |d¬«      }t        |t        «       y)z7Spawn a daemon process using a double subprocess.Popen.T)r/   N)ÚsysÚ
executableÚ
_THIS_FILEÚextendr   r%   r   Ú_WAIT_TIMEOUT)r+   Úspawner_argsÚ	temp_procs      r   Ú_spawn_daemon_double_popenr9   o   s<   € äŸ™¬
Ð3ˆØ×Ñ˜DÔ!Ü×$Ñ$ \¸TÔBˆ	ô 	�Iœ}Õ-r   c                óR   — t         j                  rt        | «       yt        | «       y)zSpawn a daemon process (Unix).N)r2   r3   r9   r0   )r+   s    r   r-   r-   x   s   € ô �>Š>Ü& tÕ,ô �4�Lr   Ú__main__Úsetsidé   )r   zsubprocess.Popen[Any]r	   zOptional[float]ÚreturnzOptional[int])r   úOptional[subprocess.Popen[Any]]r>   ÚNone)r+   úSequence[str]r>   r@   )r+   rA   r>   r?   )Ú__doc__Ú
__future__r   r#   r   r2   r(   Útypingr   r   r   r6   ÚpathÚrealpathÚ__file__r4   r   r   ÚplatformÚgetattrr&   r-   r0   r9   Ú__name__Úhasattrr<   ÚOSErrorÚargvÚ_exit© r   r   ú<module>rP      sÛ   ðñõ #ã 	Û Û 
Û ß *Ñ *ð €Ø�W‰W×Ñ˜hÓ'€
óóð ‡<�<�7Òá 
Ð,>À
ÓKÐôó>ó&.óð" �:Òá�2�xÔ ðØ�—	‘	”ñ 	"¡&¨¯©°!°"¨Ó"6Ô7Øˆ�‰��ð øð
 ò Ùðús   ÂC ÃC	ÃC	