§
    žCfi)  ã                   óÄ  — d dl Z d dlZd dlZd dlZd dlZddlmZ ddlmZ g d¢Z e	ed¦  «        Z
ej        ej        fZdd„ iZe j        d	k    rLd dlZd dlZ e	ed
¦  «        re                     dej        i¦  «         e                     dej        i¦  «          G d„ de¦  «        Z G d„ de¦  «        Z e¦   «         Zej        Zej        Zej        Zej        Zd„ ZdS )é    Né   )Úspawn)Úutil)Úensure_runningÚregisterÚ
unregisterÚpthread_sigmaskÚnoopc                  ó   — d S ©N© r   ó    ú^C:\Users\johnn\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\resource_tracker.pyú<lambda>r   !   s   € �D€ r   ÚposixÚ
sem_unlinkÚ	semaphoreÚshared_memoryc                   ó   — e Zd ZdS )ÚReentrantCallErrorN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   6   s   € € € € € Ø€Dr   r   c                   óD   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
S )ÚResourceTrackerc                 óR   — t          j        ¦   «         | _        d | _        d | _        d S r   )Ú	threadingÚRLockÚ_lockÚ_fdÚ_pid©Úselfs    r   Ú__init__zResourceTracker.__init__<   s#   € Ý”_Ñ&Ô&ˆŒ
ØˆŒØˆŒ	ˆ	ˆ	r   c                 ó    — t          d¦  «        ‚)Nz8Reentrant call into the multiprocessing resource tracker)r   r"   s    r   Ú_reentrant_call_errorz%ResourceTracker._reentrant_call_errorA   s   € õ
 !ØFñHô Hð 	Hr   c                 ól  — | j         5  | j                              ¦   «         dk    r |                      ¦   «         cd d d ¦  «         S | j        €	 d d d ¦  «         d S t	          j        | j        ¦  «         d | _        t	          j        | j        d¦  «         d | _        d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   )r   Ú_recursion_countr&   r    ÚosÚcloseÚwaitpidr!   r"   s    r   Ú_stopzResourceTracker._stopI   s+  € ØŒZð 	ð 	ð Œz×*Ò*Ñ,Ô,¨qÒ0Ð0Ø×1Ò1Ñ3Ô3ð		ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð
 ŒxÐàð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	õ ŒH�T”XÑÔÐØˆDŒHåŒJ�t”y !Ñ$Ô$Ð$ØˆDŒIð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ˆ1B)ÁB)ÁAB)Â)B-Â0B-c                 ó8   — |                       ¦   «          | j        S r   )r   r    r"   s    r   ÚgetfdzResourceTracker.getfdZ   s   € Ø×ÒÑÔÐØŒxˆr   c                 ó,  — | j         5  | j                              ¦   «         dk    r |                      ¦   «         cddd¦  «         S | j        ��|                      ¦   «         r	 ddd¦  «         dS t          j        | j        ¦  «         	 | j        �t          j        | j        d¦  «         n# t          $ r Y nw xY wd| _        d| _        t          j        d¦  «         g }	 |                     t          j                             ¦   «         ¦  «         n# t           $ r Y nw xY wd}t          j        ¦   «         \  }}	 |                     |¦  «         t%          j        ¦   «         }|gt)          j        ¦   «         z   }|d||z  gz  }	 t,          r$t/          j        t.          j        t4          ¦  «         t)          j        |||¦  «        }t,          r$t/          j        t.          j        t4          ¦  «         n1# t,          r%t/          j        t.          j        t4          ¦  «         w w xY w|| _        || _        n#  t          j        |¦  «         ‚ xY w	 t          j        |¦  «         n# t          j        |¦  «         w xY w	 ddd¦  «         dS # 1 swxY w Y   dS )z¬Make sure that resource tracker process is running.

        This can be run from any process.  Usually a child process will use
        the resource created by its parent.r   Nr   zUresource_tracker: process died unexpectedly, relaunching.  Some resources might leak.z:from multiprocessing.resource_tracker import main;main(%d)z-c)r   r(   r&   r    Ú_check_aliver)   r*   r!   r+   ÚChildProcessErrorÚwarningsÚwarnÚappendÚsysÚstderrÚfilenoÚ	ExceptionÚpiper   Úget_executabler   Ú_args_from_interpreter_flagsÚ_HAVE_SIGMASKÚsignalr	   Ú	SIG_BLOCKÚ_IGNORED_SIGNALSÚspawnv_passfdsÚSIG_UNBLOCK)r#   Úfds_to_passÚcmdÚrÚwÚexeÚargsÚpids           r   r   zResourceTracker.ensure_running^   s  € ð
 ŒZð <	ð <	ØŒz×*Ò*Ñ,Ô,¨qÒ0Ð0à×1Ò1Ñ3Ô3ð<	ð <	ð <	ð <	ñ <	ô <	ð <	ð <	ð ŒxÐ#à×$Ò$Ñ&Ô&ð àð<	ð <	ð <	ñ <	ô <	ð <	ð <	ð <	õ ”˜œÑ"Ô"Ð"ðð ”yÐ,Ýœ
 4¤9¨aÑ0Ô0Ð0øøÝ(ð ð ð à�Dðøøøð  �”Ø �”	å”ð Iñ Jô Jð Jð ˆKðØ×"Ò"¥3¤:×#4Ò#4Ñ#6Ô#6Ñ7Ô7Ð7Ð7øÝð ð ð Ø�ðøøøàNˆCÝ”7‘9”9‰DˆAˆqðØ×"Ò" 1Ñ%Ô%Ð%åÔ*Ñ,Ô,�Ø�u�tÔ@ÑBÔBÑB�Ø˜˜s Q™w˜Ñ'�ðUÝ$ð SÝÔ.­vÔ/?ÕAQÑRÔRÐRÝÔ-¨c°4¸ÑEÔE�Cå$ð UÝÔ.­vÔ/AÕCSÑTÔTÐTøøõ %ð UÝÔ.­vÔ/AÕCSÑTÔTÐTÐTðUøøøð �”Ø�”	�	øðÝ”˜‘”�Øøøøð å”˜‘”��ø•”˜‘”��øøø�ðy<	ð <	ð <	ñ <	ô <	ð <	ð <	ð <	ð <	ð <	ð <	ð <	øøøð <	ð <	ð <	ð <	ð <	ð <	s©   ˆ1J	ÁJ	Á/J	Â	!B+Â*J	Â+
B8Â5J	Â7B8Â8'J	Ã 1DÄJ	Ä
DÄJ	ÄDÄJ	Ä;A	H2ÆAG2Ç,H2Ç2.H È H2È#I"È2I	É	I"ÉJ	É"I8É8J	Ê	JÊJc                 ó^   — 	 t          j        | j        d¦  «         dS # t          $ r Y dS w xY w)z;Check that the pipe has not been closed by sending a probe.s   PROBE:0:noop
TF)r)   Úwriter    ÚOSErrorr"   s    r   r0   zResourceTracker._check_alive¡   sI   € ð	õ ŒH�T”XÐ0Ñ1Ô1Ð1ð �4øõ ð 	ð 	ð 	Ø�5�5ð	øøøs   ‚ ž
,«,c                 ó4   — |                       d||¦  «         dS )z0Register name of resource with resource tracker.ÚREGISTERN©Ú_send©r#   ÚnameÚrtypes      r   r   zResourceTracker.register¬   s   € à�
Š
�:˜t UÑ+Ô+Ð+Ð+Ð+r   c                 ó4   — |                       d||¦  «         dS )z2Unregister name of resource with resource tracker.Ú
UNREGISTERNrN   rP   s      r   r   zResourceTracker.unregister°   s   € à�
Š
�<  uÑ-Ô-Ð-Ð-Ð-r   c                 óÐ  — 	 |                       ¦   «          n+# t          $ r t          j        d|› d|›d�¦  «         Y nw xY wd                     |||¦  «                             d¦  «        }t          |¦  «        dk    rt          d¦  «        ‚t          j	        | j
        |¦  «        }|t          |¦  «        k    s+J d                     |t          |¦  «        ¦  «        ¦   «         ‚d S )	NzSResourceTracker called reentrantly for resource cleanup, which is unsupported. The z object z might leak.z{0}:{1}:{2}
Úasciii   zmsg too longznbytes {0:n} but len(msg) {1:n})r   r   r2   r3   ÚformatÚencodeÚlenÚ
ValueErrorr)   rJ   r    )r#   rC   rQ   rR   ÚmsgÚnbytess         r   rO   zResourceTracker._send´   s  € ð
	<Ø×ÒÑ!Ô!Ð!Ð!øÝ!ð 	<ð 	<ð 	<õ
 ŒMð;àð;ð ;à&*ð;ð ;ð ;ñ<ô <ð <ð <ð <ð	<øøøð ×$Ò$ S¨$°Ñ6Ô6×=Ò=¸gÑFÔFˆÝˆs‰8Œ8�cŠ>ˆ>õ ˜^Ñ,Ô,Ð,Ý”˜$œ( CÑ(Ô(ˆØ�˜S™œÒ!Ð!Ð!Ð#D×#KÒ#KØ•C˜‘H”Hñ$ô $Ñ!Ô!Ð!Ð!Ð!s   ‚ —%?¾?N)r   r   r   r$   r&   r,   r.   r   r0   r   r   rO   r   r   r   r   r   :   s¢   € € € € € ðð ð ð
Hð Hð Hðð ð ð"ð ð ðAð Að AðF	ð 	ð 	ð,ð ,ð ,ð.ð .ð .ðð ð ð ð r   r   c                 óÚ  — t          j         t           j        t           j        ¦  «         t          j         t           j        t           j        ¦  «         t          r$t          j        t           j        t          ¦  «         t          j	        t          j
        fD ]'}	 |                     ¦   «          Œ# t          $ r Y Œ$w xY wd„ t                               ¦   «         D ¦   «         }	 t          | d¦  «        5 }|D �]	}	 |                     ¦   «                              d¦  «                             d¦  «        \  }}}t                               |d¦  «        }|€t)          d|› d|› �¦  «        ‚|dk    r||                              |¦  «         n;|d	k    r||                              |¦  «         n|d
k    rnt/          d|z  ¦  «        ‚ŒÒ# t          $ r, 	 t          j        t          j        ¦   «         Ž  n#  Y nxY wY �Œw xY w	 ddd¦  «         n# 1 swxY w Y   |                     ¦   «         D ]’\  }}|r8	 t7          j        dt;          |¦  «        |fz  ¦  «         n# t          $ r Y nw xY w|D ]P}	 	 t          |         |¦  «         n1# t          $ r$}	t7          j        d|›d|	›�¦  «         Y d}	~	nd}	~	ww xY wŒL# w xY wŒ“dS # |                     ¦   «         D ]’\  }}|r8	 t7          j        dt;          |¦  «        |fz  ¦  «         n# t          $ r Y nw xY w|D ]P}	 	 t          |         |¦  «         n1# t          $ r$}	t7          j        d|›d|	›�¦  «         Y d}	~	nd}	~	ww xY wŒL# w xY wŒ“w xY w)zRun resource tracker.c                 ó,   — i | ]}|t          ¦   «         “ŒS r   )Úset)Ú.0rR   s     r   ú
<dictcomp>zmain.<locals>.<dictcomp>ß   s   € Ð=Ð=Ð=˜eˆU•C‘E”EÐ=Ð=Ð=r   ÚrbrV   ú:NzCannot register z. for automatic cleanup: unknown resource type rM   rT   ÚPROBEzunrecognized command %rzQresource_tracker: There appear to be %d leaked %s objects to clean up at shutdownzresource_tracker: z: )r=   ÚSIGINTÚSIG_IGNÚSIGTERMr<   r	   rA   r?   r5   ÚstdinÚstdoutr*   r8   Ú_CLEANUP_FUNCSÚkeysÚopenÚstripÚdecodeÚsplitÚgetrZ   ÚaddÚremoveÚRuntimeErrorÚ
excepthookÚexc_infoÚitemsr2   r3   rY   )
ÚfdÚfÚcacheÚlinerC   rQ   rR   Úcleanup_funcÚrtype_cacheÚes
             r   Úmainr~   Ñ   s¡  € õ „M•&”-¥¤Ñ0Ô0Ð0Ý
„M•&”.¥&¤.Ñ1Ô1Ð1Ýð EÝÔ�vÔ1Õ3CÑDÔDÐDåŒi�œÐ$ð ð ˆð	Ø�GŠG‰IŒIˆIˆIøÝð 	ð 	ð 	ØˆDð	øøøð >Ð=¥~×':Ò':Ñ'<Ô'<Ð=Ñ=Ô=€Eð-å�"�d‰^Œ^ð 	˜qØð ñ �ðØ'+§z¢z¡|¤|×':Ò':¸7Ñ'CÔ'C×'IÒ'IÈ#Ñ'NÔ'NÑ$�C˜˜uÝ#1×#5Ò#5°e¸TÑ#BÔ#B�LØ#Ð+Ý(ð=¨tð =ð =Ø5:ð=ð =ñ>ô >ð >ð ˜jÒ(Ð(Ø˜eœ×(Ò(¨Ñ.Ô.Ð.Ð.Ø Ò,Ð,Ø˜eœ×+Ò+¨DÑ1Ô1Ð1Ð1Ø š˜Øå*Ð+DÀsÑ+JÑKÔKÐKøøÝ ð ð ð ðÝœ­¬©¬Ð7Ð7Ð7øðØ˜øøøøùð	øøøð#ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð2 #(§+¢+¡-¤-ð 	ð 	ÑˆE�;Øð ðÝ”Mð #Nå#& {Ñ#3Ô#3°UÐ";ñ#<ñ =ô =ð =ð =øõ !ð ð ð Ø�Dðøøøà#ð 
ð 
�ððNÝ& uÔ-¨dÑ3Ô3Ð3Ð3øÝ$ð Nð Nð NÝ œ˜ÀDÀDÀDÈ!È!Ð&LÑMÔMÐMÐMÐMÐMÐMÐMøøøøðNøøøð ø�D�D�D�Dð
ð	ð 	ø %§+¢+¡-¤-ð 	ð 	ÑˆE�;Øð ðÝ”Mð #Nå#& {Ñ#3Ô#3°UÐ";ñ#<ñ =ô =ð =ð =øõ !ð ð ð Ø�Dðøøøà#ð 
ð 
�ððNÝ& uÔ-¨dÑ3Ô3Ð3Ð3øÝ$ð Nð Nð NÝ œ˜ÀDÀDÀDÈ!È!Ð&LÑMÔMÐMÐMÐMÐMÐMÐMøøøøðNøøøð ø�D�D�D�Dð
ð	øøøs!  ÂB.Â.
B;Â:B;Ã"K Ã2HÃ9CGÇHÇ
G=ÇG2Ç1G=Ç2G6	Ç4G=Ç9HÇ<G=Ç=HÈK ÈHÈK ÈHÈK È4&IÉ
I(É'I(É1JÊJ9Ê
J5ÊJ0Ê+J9Ê0J5Ê5J9Ê9J;ËM*Ë&LÌM*Ì
L	ÌM*ÌL	ÌM*ÌL1Ì0M#Ì1
MÌ;MÍM#ÍMÍM#Í"M*Í#M%Í%M*)r)   r=   r5   r   r2   Ú r   r   Ú__all__Úhasattrr<   re   rg   r?   rj   rQ   Ú_multiprocessingÚ_posixshmemÚupdater   Ú
shm_unlinkrs   r   Úobjectr   Ú_resource_trackerr   r   r   r.   r~   r   r   r   ú<module>rˆ      sÈ  ðð$ 
€	€	€	Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à
6Ð
6Ð
6€à�˜Ð 1Ñ2Ô2€Ø”M 6¤>Ð2Ð ð ˆLˆLð€ð „7ˆgÒÐØÐÐÐØÐÐÐð €wÐ Ñ.Ô.ð Ø×ÒØÐ)Ô4ð
ñ 	ô 	ð 	ð ×ÒØ˜Ô/ðñ ô ð ð
	ð 	ð 	ð 	ð 	˜ñ 	ô 	ð 	ðMð Mð Mð Mð M�fñ Mô Mð Mð` $�OÑ%Ô%Ð Ø"Ô1€ØÔ%€ØÔ)€
ØÔ€ð<ð <ð <ð <ð <r   