§
    ¸)ýf(%  ã                   óH  — d dl mZ d dlZd dlZ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
 g d¢Zej        dk    p( eed¦  «        o eed¦  «        o eej        d	¦  «        Z G d
„ dej        ¦  «        Zej        Zd*d„Zej        dk    r*eg d¢z  Zd dlZd+ddœd„Zd„ Zd„ Zd„ Z G d„ de¦  «        Zn%eg d¢z  Zd dlZej        dk    Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z G d„ d¦  «        Z  e e! e ¦   «         j"        ¦  «        e¦  «         d „ Z# e e!e$j%        ¦  «        e#¦  «          e e!e&j'        ¦  «        e#¦  «         d!„ Z(d"„ Z) eej*        e(¦  «         ej        dk    rd#„ Z+d$„ Z, eej        e+¦  «         nd%„ Z+d&„ Z, eej        e+¦  «          G d'„ d(e¬)¦  «        Z-dS ),é    )ÚABCMetaNé   )Úcontext)Úsend_handleÚrecv_handleÚForkingPicklerÚregisterÚdumpÚwin32ÚCMSG_LENÚ
SCM_RIGHTSÚsendmsgc                   óp   ‡ — e Zd ZdZi Zej        Zˆ fd„Ze	d„ ¦   «         Z
e	dd„¦   «         Zej        Zˆ xZS )r   z)Pickler subclass used by multiprocessing.c                 ó®   •—  t          ¦   «         j        |Ž  | j                             ¦   «         | _        | j                             | j        ¦  «         d S ©N)ÚsuperÚ__init__Ú_copyreg_dispatch_tableÚcopyÚdispatch_tableÚupdateÚ_extra_reducers)ÚselfÚargsÚ	__class__s     €úe/home/blender/git/blender-v430/install_release/4.3/python/lib/python3.11/multiprocessing/reduction.pyr   zForkingPickler.__init__&   sN   ø€ Ø�‰ŒÔ˜$ÐÐØ"Ô:×?Ò?ÑAÔAˆÔØÔ×"Ò" 4Ô#7Ñ8Ô8Ð8Ð8Ð8ó    c                 ó   — || j         |<   dS )z&Register a reduce function for a type.N)r   )ÚclsÚtypeÚreduces      r   r	   zForkingPickler.register+   s   € ð %+ˆÔ˜DÑ!Ð!Ð!r   Nc                 óŽ   — t          j        ¦   «         } | ||¦  «                             |¦  «         |                     ¦   «         S r   )ÚioÚBytesIOr
   Ú	getbuffer)r   ÚobjÚprotocolÚbufs       r   ÚdumpszForkingPickler.dumps0   s;   € åŒj‰lŒlˆØˆˆC�ÑÔ×Ò Ñ$Ô$Ð$Ø�}Š}‰ŒÐr   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úcopyregr   r   r   Úclassmethodr	   r)   ÚpickleÚloadsÚ__classcell__)r   s   @r   r   r   !   s„   ø€ € € € € Ø3Ð3Ø€OØ%Ô4Ðð9ð 9ð 9ð 9ð 9ð
 ð+ð +ñ „[ð+ð ðð ð ñ „[ðð
 ŒL€E€E€E€E€Er   r   c                 óL   — t          ||¦  «                             | ¦  «         dS )z3Replacement for pickle.dump() using ForkingPickler.N)r   r
   )r&   Úfiler'   s      r   r
   r
   :   s&   € å�4˜Ñ"Ô"×'Ò'¨Ñ,Ô,Ð,Ð,Ð,r   )Ú	DupHandleÚ	duplicateÚsteal_handleF)Úsource_processc                ó~   — t          j        ¦   «         }|€|}|€|}t          j        || |d|t           j        ¦  «        S )z<Duplicate a handle.  (target_process is a handle not a pid!)Nr   )Ú_winapiÚGetCurrentProcessÚDuplicateHandleÚDUPLICATE_SAME_ACCESS)ÚhandleÚtarget_processÚinheritabler8   Úcurrent_processs        r   r6   r6   G   sN   € õ "Ô3Ñ5Ô5ˆØÐ!Ø,ˆNØÐ!Ø,ˆNÝÔ&Ø˜F NØˆ{�GÔ9ñ;ô ;ð 	;r   c           	      ó   — t          j        t           j        d| ¦  «        }	 t          j        ||t          j        ¦   «         ddt           j        t           j        z  ¦  «        t          j        |¦  «         S # t          j        |¦  «         w xY w)z5Steal a handle from process identified by source_pid.Fr   )r:   ÚOpenProcessÚPROCESS_DUP_HANDLEr<   r;   r=   ÚDUPLICATE_CLOSE_SOURCEÚCloseHandle)Ú
source_pidr>   Úsource_process_handles      r   r7   r7   S   sˆ   € å 'Ô 3ÝÔ&¨¨zñ!;ô !;Ðð	7ÝÔ*Ø% vÝÔ)Ñ+Ô+¨Q°ÝÔ-µÔ0NÑNñPô Põ
 ÔÐ 5Ñ6Ô6Ð6Ð6ø�GÔÐ 5Ñ6Ô6Ð6Ð6øøøs   ¢A A7 Á7Bc                 óf   — t          |t          j        |¦  «        }|                      |¦  «         dS ©z&Send a handle over a local connection.N)r5   r:   r=   Úsend)Úconnr>   Údestination_pidÚdhs       r   r   r   _   s)   € å�v�wÔ<¸oÑNÔNˆØ�	Š	�"‰Œˆˆˆr   c                 óN   — |                       ¦   «                              ¦   «         S )ú)Receive a handle over a local connection.)ÚrecvÚdetach)rL   s    r   r   r   d   s   € à�yŠy‰{Œ{×!Ò!Ñ#Ô#Ð#r   c                   ó    — e Zd ZdZdd„Zd„ ZdS )r5   zPicklable wrapper for a handle.Nc                 óH  — |€t          j        ¦   «         }t          j        t          j        d|¦  «        }	 t          j        t          j        ¦   «         |||dd¦  «        | _        t          j        |¦  «         n# t          j        |¦  «         w xY w|| _	        || _
        d S )NFr   )ÚosÚgetpidr:   rC   rD   r<   r;   Ú_handlerF   Ú_accessÚ_pid)r   r>   ÚaccessÚpidÚprocs        r   r   zDupHandle.__init__j   sš   € Øˆ{õ ”i‘k”k�ÝÔ&¥wÔ'AÀ5È#ÑNÔNˆDð*Ý&Ô6ÝÔ-Ñ/Ô/Ø˜D &¨%°ñ 4ô  4�”õ Ô# DÑ)Ô)Ð)Ð)ø•Ô# DÑ)Ô)Ð)Ð)øøøØ!ˆDŒLØˆDŒIˆIˆIs   ·/A; Á;Bc                 ój  — | j         t          j        ¦   «         k    r| j        S t	          j        t          j        d| j         ¦  «        }	 t	          j        || j        t	          j        ¦   «         | j	        dt          j
        ¦  «        t	          j        |¦  «         S # t	          j        |¦  «         w xY w)z1Get the handle.  This should only be called once.F)rY   rU   rV   rW   r:   rC   rD   r<   r;   rX   rE   rF   )r   r\   s     r   rR   zDupHandle.detachy   sŸ   € ð Œy�BœI™KœKÒ'Ð'à”|Ð#åÔ&¥wÔ'AÀ5Ø'+¤yñ2ô 2ˆDð*ÝÔ.Ø˜$œ,­Ô(AÑ(CÔ(CØ”L %­Ô)GñIô Iõ Ô# DÑ)Ô)Ð)Ð)ø•Ô# DÑ)Ô)Ð)Ð)øøøs   Á
=B ÂB2r   )r*   r+   r,   r-   r   rR   © r   r   r5   r5   h   s=   € € € € € Ø-Ð-ð	ð 	ð 	ð 	ð	*ð 	*ð 	*ð 	*ð 	*r   r5   )ÚDupFdÚsendfdsÚrecvfdsÚdarwinc                 ó0  — t          j         d|¦  «        }t          t          |¦  «        dz  g¦  «        }|                      |gt          j        t          j        |fg¦  «         t          r(|                      d¦  «        dk    rt          d¦  «        ‚dS dS )z,Send an array of fds over an AF_UNIX socket.Úié   r   ó   Az%did not receive acknowledgement of fdN)
ÚarrayÚbytesÚlenr   ÚsocketÚ
SOL_SOCKETr   ÚACKNOWLEDGErQ   ÚRuntimeError)ÚsockÚfdsÚmsgs      r   r`   r`   ‘   s‘   € åŒk˜#˜sÑ#Ô#ˆÝ•S˜‘X”X ‘^Ð$Ñ%Ô%ˆØ�Š�c�U�fÔ/µÔ1BÀCÐHÐIÑJÔJÐJÝð 	H˜4Ÿ9š9 Q™<œ<¨4Ò/Ð/ÝÐFÑGÔGÐGð	Hð 	HÐ/Ð/r   c                 ó"  — t          j         d¦  «        }|j        |z  }|                      dt          j        |¦  «        ¦  «        \  }}}}|s	|st
          ‚	 t          r|                      d¦  «         t          |¦  «        dk    rt          dt          |¦  «        z  ¦  «        ‚|d         \  }}	}
|t          j
        k    r¨|	t          j        k    r˜t          |
¦  «        |j        z  dk    rt          ‚|                     |
¦  «         t          |¦  «        dz  |d         k    r6t          d                     t          |¦  «        |d         ¦  «        ¦  «        ‚t!          |¦  «        S n# t          t"          f$ r Y nw xY wt          d¦  «        ‚)	z/Receive an array of fds over an AF_UNIX socket.rd   r   rf   zreceived %d items of ancdatar   re   z Len is {0:n} but msg[0] is {1!r}zInvalid data received)rg   ÚitemsizeÚrecvmsgrj   Ú
CMSG_SPACEÚEOFErrorrl   rK   ri   rm   rk   r   Ú
ValueErrorÚ	frombytesÚAssertionErrorÚformatÚlistÚ
IndexError)rn   ÚsizeÚaÚ
bytes_sizerp   ÚancdataÚflagsÚaddrÚ
cmsg_levelÚ	cmsg_typeÚ	cmsg_datas              r   ra   ra   ™   s“  € åŒK˜ÑÔˆØ”Z $Ñ&ˆ
Ø$(§L¢L°µFÔ4EÀjÑ4QÔ4QÑ$RÔ$RÑ!ˆˆW�e˜TØð 	˜7ð 	ÝˆNð	Ýð  Ø—	’	˜$‘”�Ý�7‰|Œ|˜qÒ Ð Ý"Ð#AÝ#& w¡<¤<ñ$0ñ 1ô 1ð 1à/6°q¬zÑ,ˆJ˜	 9Ø�fÔ/Ò/Ð/Ø�VÔ.Ò.Ð.Ý�y‘>”> A¤JÑ.°!Ò3Ð3Ý$Ð$Ø—’˜IÑ&Ô&Ð&Ý�q‘6”6˜C‘< 3 q¤6Ò)Ð)Ý(Ø:×AÒAÝ ™FœF C¨¤Fñ,ô ,ñ-ô -ð -õ ˜A‘w”w�øøÝ�JÐ'ð 	ð 	ð 	ØˆDð	øøøåÐ2Ñ3Ô3Ð3s   ÁDE+ Å+E?Å>E?c                 óÒ   — t          j        |                      ¦   «         t           j        t           j        ¦  «        5 }t          ||g¦  «         ddd¦  «         dS # 1 swxY w Y   dS rJ   )rj   ÚfromfdÚfilenoÚAF_UNIXÚSOCK_STREAMr`   )rL   r>   rM   Úss       r   r   r   µ   s—   € åŒ]˜4Ÿ;š;™=œ=­&¬.½&Ô:LÑMÔMð 	!ÐQRÝ�A˜�xÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s   ½AÁA Á#A c                 óÚ   — t          j        |                      ¦   «         t           j        t           j        ¦  «        5 }t          |d¦  «        d         cddd¦  «         S # 1 swxY w Y   dS )rP   r   r   N)rj   r†   r‡   rˆ   r‰   ra   )rL   rŠ   s     r   r   r   º   s•   € åŒ]˜4Ÿ;š;™=œ=­&¬.½&Ô:LÑMÔMð 	$ÐQRÝ˜1˜a‘=”= Ô#ð	$ð 	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$s   ½A Á A$Á'A$c                 óÞ   — t          j        ¦   «         }|�(|                     |                     | ¦  «        ¦  «        S t          rddlm} |                     | ¦  «        S t          d¦  «        ‚)zReturn a wrapper for an fd.Nr   )Úresource_sharerz&SCM_RIGHTS appears not to be available)r   Úget_spawning_popenr_   Úduplicate_for_childÚHAVE_SEND_HANDLEÚ r�   rv   )ÚfdÚ	popen_objr�   s      r   r_   r_   ¿   st   € åÔ.Ñ0Ô0ˆ	ØÐ Ø—?’? 9×#@Ò#@ÀÑ#DÔ#DÑEÔEÐEÝð 	GØ)Ð)Ð)Ð)Ð)Ð)Ø"×(Ò(¨Ñ,Ô,Ð,åÐEÑFÔFÐFr   c                 óx   — | j         €t          | j        | j        j        ffS t          | j         | j        j        ffS r   )Ú__self__Úgetattrr   Ú__func__r*   ©Úms    r   Ú_reduce_methodrš   Î   s8   € Ø„zÐÝ˜œ a¤jÔ&9Ð:Ð:Ð:å˜œ Q¤ZÔ%8Ð9Ð9Ð9r   c                   ó   — e Zd Zd„ ZdS )Ú_Cc                 ó   — d S r   r^   )r   s    r   Úfz_C.fÔ   s   € Øˆr   N)r*   r+   r,   rž   r^   r   r   rœ   rœ   Ó   s#   € € € € € ðð ð ð ð r   rœ   c                 ó,   — t           | j        | j        ffS r   )r–   Ú__objclass__r*   r˜   s    r   Ú_reduce_method_descriptorr¡   Ù   s   € Ý�Q”^ Q¤ZÐ0Ð0Ð0r   c                 ó<   — t           | j        | j        | j        pi ffS r   )Ú_rebuild_partialÚfuncr   Úkeywords)Úps    r   Ú_reduce_partialr§   ß   s   € Ý˜aœf a¤f¨a¬jÐ.>¸BÐ?Ð?Ð?r   c                 ó,   — t          j        | g|¢R i |¤ŽS r   )Ú	functoolsÚpartial)r¤   r   r¥   s      r   r£   r£   á   s#   € ÝÔ˜TÐ5 DÐ5Ð5Ð5¨HÐ5Ð5Ð5r   c                 ó4   — ddl m} t           || ¦  «        ffS )Nr   )Ú	DupSocket)r�   r¬   Ú_rebuild_socket)rŠ   r¬   s     r   Ú_reduce_socketr®   ê   s)   € Ø.Ð.Ð.Ð.Ð.Ð.Ý  ¨1¡¤ Ð/Ð/r   c                 ó*   — |                       ¦   «         S r   )rR   )Údss    r   r­   r­   í   s   € Ø�yŠy‰{Œ{Ðr   c                 ó|   — t          |                      ¦   «         ¦  «        }t          || j        | j        | j        ffS r   )r_   r‡   r­   Úfamilyr    Úproto)rŠ   Údfs     r   r®   r®   ò   s1   € Ý�1—8’8‘:”:ÑÔˆÝ  Q¤X¨q¬v°q´wÐ ?Ð?Ð?r   c                 óZ   — |                       ¦   «         }t          j        ||||¬¦  «        S )N)r‡   )rR   rj   )r´   r²   r    r³   r’   s        r   r­   r­   õ   s(   € Ø�YŠY‰[Œ[ˆÝŒ}˜V T¨5¸Ð<Ñ<Ô<Ð<r   c                   óp   — e Zd ZdZeZeZeZeZeZe	j
        dk    reZeZeZneZeZeZeZeZeZeZeZd„ ZdS )ÚAbstractReducerz�Abstract base class for use in implementing a Reduction class
    suitable for use in replacing the standard reduction mechanism
    used in multiprocessing.r   c                 ó˜  — t          t          t          ¦   «         j        ¦  «        t          ¦  «         t          t          t
          j        ¦  «        t          ¦  «         t          t          t          j	        ¦  «        t          ¦  «         t          t          j        t          ¦  «         t          t          j        t          ¦  «         d S r   )r	   r    rœ   rž   rš   rz   Úappendr¡   ÚintÚ__add__r©   rª   r§   rj   r®   )r   r   s     r   r   zAbstractReducer.__init__  s   € Ý••b‘d”d”f‘”�~Ñ.Ô.Ð.Ý••d”kÑ"Ô"Õ$=Ñ>Ô>Ð>Ý••c”kÑ"Ô"Õ$=Ñ>Ô>Ð>Ý•Ô"¥OÑ4Ô4Ð4Ý•”¥Ñ/Ô/Ð/Ð/Ð/r   N)r*   r+   r,   r-   r   r	   r
   r   r   ÚsysÚplatformr7   r6   r5   r`   ra   r_   rš   r¡   r£   r®   r­   r   r^   r   r   r·   r·   û   s�   € € € € € ð ð  ð $€NØ€HØ€DØ€KØ€Kà
„|�wÒÐØ#ˆØˆ	Øˆ	ˆ	àˆØˆØˆà#€NØ 9ÐØ'ÐØ#€NØ%€Oð0ð 0ð 0ð 0ð 0r   r·   )Ú	metaclassr   )NF).Úabcr   r.   r©   r#   rU   r0   rj   r¼   r‘   r   Ú__all__r½   Úhasattrr�   ÚPicklerr   r	   r
   r:   r6   r7   r   r   Úobjectr5   rg   rl   r`   ra   r_   rš   rœ   r    rž   r¡   rz   r¹   rº   r»   r§   r£   rª   r®   r­   r·   r^   r   r   ú<module>rÄ      sÅ  ðð Ð Ð Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø 	€	€	€	Ø 	€	€	€	Ø €€€Ø €€€Ø 
€
€
€
à Ð Ð Ð Ð Ð à
NÐ
NÐ
N€ð ”L GÒ+ð 8Ø�W˜V ZÑ0Ô0ð 7Ø�W˜V \Ñ2Ô2ð7à�W˜Vœ]¨IÑ6Ô6ð ðð ð ð ð �V”^ñ ô ð ð. Ô"€ð-ð -ð -ð -ð „<�7ÒÐàÐ9Ð9Ð9Ñ9€GØ€N€N€Nð
;Ø$(ð
;ð 
;ð 
;ð 
;ð 
;ð
7ð 
7ð 
7ðð ð ð
$ð $ð $ð*ð *ð *ð *ð *�Fñ *ô *ð *ð *ðF Ð.Ð.Ð.Ñ.€GØ€L€L€Lð ”, (Ò*€KðHð Hð Hð4ð 4ð 4ð8!ð !ð !ð
$ð $ð $ð
	Gð 	Gð 	Gð:ð :ð :ð
ð ð ð ð ñ ô ð ð 	€ˆˆˆbˆb‰dŒdŒf‰Œ�~Ñ &Ô &Ð &ð1ð 1ð 1à €ˆˆˆdŒkÑ	Ô	Ð5Ñ 6Ô 6Ð 6Ø €ˆˆˆcŒkÑ	Ô	Ð5Ñ 6Ô 6Ð 6ð@ð @ð @ð6ð 6ð 6à €ˆÔ	˜OÑ ,Ô ,Ð ,ð „<�7ÒÐð0ð 0ð 0ðð ð à€HˆVŒ]˜NÑ+Ô+Ð+Ð+ð@ð @ð @ð=ð =ð =ð €HˆVŒ]˜NÑ+Ô+Ð+ð0ð 0ð 0ð 0ð 0 ð 0ñ 0ô 0ð 0ð 0ð 0r   