§
    Ë²Åjë\  ã                   óH  — d dl Z d dlZd dlZd dl mZ d dlmZ d dlmZ d dlZd dl	m
Z
 	 d dlZ n# e$ r Y nw xY w G d„ d¦  «        Z G d„ d	e¦  «        Z e¦   «         Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd d„Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&dS )!é    N)Ú	reduction)Úregister_after_fork)ÚUnion)Úcheck_serializing_named_tensorc                   óN   — e Zd ZdZddgZd„ Zed„ ¦   «         Zd„ Zd„ Z	d„ Z
d	„ Zd
S )ÚStorageWeakRefzŽA weak reference to a Storage.

    The cdata member is a Python number containing the integer representation of
    the Storage pointer.
    ÚcdataÚ_free_weak_refc                 ód   — |                      ¦   «         | _        t          j        j        | _        d S ©N)Ú	_weak_refr	   ÚtorchÚStorager
   )ÚselfÚstorages     úQC:\Projects\Historical\venv\Lib\site-packages\torch/multiprocessing/reductions.pyÚ__init__zStorageWeakRef.__init__!   s*   € Ø×&Ò&Ñ(Ô(ˆŒ
õ $œmÔ:ˆÔÐÐó    c                 ój   — |                       | ¦  «        }||_        t          j        j        |_        |S r   )Ú__new__r	   r   r   r
   )Úclsr	   Úinstances      r   Úfrom_weakrefzStorageWeakRef.from_weakref'   s,   € à—;’;˜sÑ#Ô#ˆØˆŒÝ"'¤-Ô">ˆÔØˆr   c                 óJ   — t           j                             | j        ¦  «        S r   )r   r   Ú_expiredr	   ©r   s    r   ÚexpiredzStorageWeakRef.expired.   s   € ÝŒ}×%Ò% d¤jÑ1Ô1Ð1r   c                 ó:   — |                       | j        ¦  «         d S r   )r
   r	   r   s    r   Ú__del__zStorageWeakRef.__del__1   s   € Ø×Ò˜DœJÑ'Ô'Ð'Ð'Ð'r   c                 ó   — | j         S r   )r	   r   s    r   Ú__hash__zStorageWeakRef.__hash__4   s
   € ØŒzÐr   c                 óf   — t          | ¦  «        t          |¦  «        k    rdS | j        |j        k    S )NT)Úidr	   )r   Úothers     r   Ú__eq__zStorageWeakRef.__eq__7   s-   € Ýˆd‰8Œ8•r˜%‘y”yÒ Ð Ø�4ØŒz˜Uœ[Ò(Ð(r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   Úclassmethodr   r   r   r!   r%   © r   r   r   r      s‘   € € € € € ðð ð Ð*Ð+€Ið;ð ;ð ;ð ðð ñ „[ðð2ð 2ð 2ð(ð (ð (ðð ð ð)ð )ð )ð )ð )r   r   c                   ó2   — e Zd ZdZd	d„Zd„ Zd„ Zd„ Zd„ ZdS )
ÚSharedCachez:Dictionary from multiprocessing handles to StorageWeakRef.ÚreturnNc                 óp   — d| _         |                      ¦   «          t          | t          j        ¦  «         d S )Né€   )ÚlimitÚ_after_forkr   r.   r   s    r   r   zSharedCache.__init__@   s8   € ð ˆŒ
ð 	×ÒÑÔÐÝ˜D¥+Ô"9Ñ:Ô:Ð:Ð:Ð:r   c                 ó6   — t          j        ¦   «         | _        d S r   )Ú	threadingÚLockÚlockr   s    r   r3   zSharedCache._after_forkJ   s   € Ý”NÑ$Ô$ˆŒ	ˆ	ˆ	r   c                 óz   — | j         5  t                               | |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r   )r7   ÚdictÚget)r   Úkeys     r   r:   zSharedCache.getM   s   € ØŒYð 	'ð 	'Ý—8’8˜D #Ñ&Ô&ð	'ð 	'ð 	'ð 	'ñ 	'ô 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'øøøð 	'ð 	'ð 	'ð 	'ð 	'ð 	's   ˆ0°4·4c                 óÖ   — | j         5  t                               | ||¦  «         t          | ¦  «        | j        k    r|                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r   )r7   r9   Ú__setitem__Úlenr2   Úfree_dead_references)r   r;   Ústorage_refs      r   r=   zSharedCache.__setitem__Q   s«   € ØŒYð 	,ð 	,Ý×Ò˜T 3¨Ñ4Ô4Ð4Ý�4‰yŒy˜4œ:Ò%Ð%Ø×)Ò)Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,s   ˆA	AÁA"Á%A"c                 óÂ   — d}t          |                      ¦   «         ¦  «        D ]"\  }}|                     ¦   «         r| |= Œ|dz  }Œ#t          d|dz  ¦  «        | _        d S )Nr   é   r1   é   )ÚlistÚitemsr   Úmaxr2   )r   Úliver;   r@   s       r   r?   z SharedCache.free_dead_referencesW   sl   € ØˆÝ $ T§Z¢Z¡\¤\Ñ 2Ô 2ð 	ð 	ÑˆC�Ø×"Ò"Ñ$Ô$ð Ø˜�I�Ià˜‘	��Ý˜˜d Q™hÑ'Ô'ˆŒ
ˆ
ˆ
r   )r/   N)	r&   r'   r(   r)   r   r3   r:   r=   r?   r,   r   r   r.   r.   =   sj   € € € € € ØDÐDð;ð ;ð ;ð ;ð%ð %ð %ð'ð 'ð 'ð,ð ,ð ,ð(ð (ð (ð (ð (r   r.   c                 óL   — t           j        j                             | |¦  «        S r   )r   ÚcudaÚEventÚfrom_ipc_handle)ÚdeviceÚhandles     r   Úrebuild_eventrN   e   s   € ÝŒ:Ô×+Ò+¨F°FÑ;Ô;Ð;r   c                 óJ   — |                       ¦   «         }t          | j        |ffS r   )Ú
ipc_handlerN   rL   )ÚeventrM   s     r   Úreduce_eventrR   i   s%   € Ø×ÒÑÔ€FÝ˜EœL¨&Ð1Ð2Ð2r   c                 óè   — |\  }}}}t           j                             ||||¦  «        }| t           j        j        j        k    r't           j        j                             ||¬¦  «        }n||_        |S )N©Úrequires_grad)r   Ú_utilsÚ_rebuild_tensorÚnnÚ	parameterÚ	ParameterrU   )r   r   ÚmetadataÚstorage_offsetÚsizeÚstriderU   Úts           r   Úrebuild_tensorr`   n   sk   € Ø2:Ñ/€N�D˜& -ÝŒ×$Ò$ W¨n¸dÀFÑKÔK€AØ
�eŒhÔ Ô*Ò*Ð*õ ŒHÔ×(Ò(¨¸-Ð(ÑHÔHˆˆà'ˆŒØ€Hr   c                 ó4  — t          j        |d¬¦  «        }t          j        ||d¬¦  «        }t           j                             ||||¦  «        }	| t           j        j        j        k    r't           j        j                             |	|¬¦  «        }	n||	_        |	S )NÚmeta©rL   T©Úwrap_storageÚdtypeÚ	_internalrT   )	r   ÚUntypedStorageÚTypedStoragerV   rW   rX   rY   rZ   rU   )
Ú
tensor_clsÚtensor_sizeÚtensor_strideÚtensor_offsetrf   Ústorage_size_bytesrU   Úuntyped_storageÚtyped_storager_   s
             r   Úrebuild_meta_tensorrq   {   sŸ   € õ Ô*Ð+=ÀfÐMÑMÔM€OåÔ&Ø$¨E¸Tðñ ô €Mõ 	Œ×$Ò$ØØØØñ		ô 	€Að •U”XÔ'Ô1Ò1Ð1õ ŒHÔ×(Ò(¨¸-Ð(ÑHÔHˆˆà'ˆŒà€Hr   c           
      ó�  — |�|dk    r |d||d¬¦  «        }n€t          |||	f¦  «        }|€Tt          j                             ¦   «          |                     ||||	||||¦  «        }t          |¦  «        t          ||	f<   n|                     |||¬¦  «         t          |t          j	        ¦  «        r|n|j
        }t          j                             t          j                             ||d¬¦  «        |||¦  «        }| t          j        j        j        k    r't          j        j                             ||
¬¦  «        }n|
|_        |S )Nr   T)rf   rL   rg   rc   rd   rT   )Ústorage_from_cacher   rI   Ú
_lazy_initÚ_new_shared_cudar   Úshared_cacheÚ_release_ipc_counterÚ
isinstancerh   Ú_untyped_storagerV   rW   r   ri   rX   rY   rZ   rU   )rj   rk   rl   rm   Ústorage_clsrf   Ústorage_deviceÚstorage_handlern   Ústorage_offset_bytesrU   Úref_counter_handleÚref_counter_offsetÚevent_handleÚevent_sync_requiredr   Ú_storager_   s                     r   Úrebuild_cuda_tensorrƒ   ›   sƒ  € ð$ ÐÐ!3°qÒ!8Ð!8Ø�+˜a u°^ÈtÐTÑTÔTˆˆå$Ø˜.Ð*>Ð?ñ
ô 
ˆð ˆ?ÝŒJ×!Ò!Ñ#Ô#Ð#Ø!×2Ò2ØØØ"Ø$Ø"Ø"ØØ#ñ	ô 	ˆGõ DRØñDô D�L˜.Ð*>Ð?Ñ@Ð@ð
 ×,Ò,Ø"Ð$6¸~ð -ñ ô ð õ �g�uÔ3Ñ4Ô4ð	&ˆˆàÔ%ð õ 	Œ×$Ò$ÝŒ×"Ò"°ÀÐQUÐ"ÑVÔVØØØñ		ô 	€Að •U”XÔ'Ô1Ò1Ð1õ ŒHÔ×(Ò(¨¸-Ð(ÑHÔHˆˆà'ˆŒà€Hr   c                 ó  — | j         r| j        st          d¦  «        ‚t          | ¦  «         t          j        j                             | ¦  «         ddlm	} | j
        rt          | |¦  «        st          | ¦  «        S | j        t          j        t          j        t          j        t          j        t          j        hv rt'          | ¦  «        S |                      ¦   «         }|j        j        j        dk    r¨|                     ¦   «         \  }}}}}}}	}
|                      ¦   «         }t5          |¦  «        t6          |<   t8          t/          | ¦  «        |                      ¦   «         |                      ¦   «         |t/          |¦  «        | j        ||||| j         |||	|
ffS |j        j        j        dk    r�t@          t/          | ¦  «        |                      ¦   «         |                      ¦   «         |                      ¦   «         | j        |  !                    ¦   «                              ¦   «         | j         ffS |                      ¦   «         |                      ¦   «         |                      ¦   «         | j         f}tD          t/          | ¦  «        ||ffS )NzøCowardly refusing to serialize non-leaf tensor which requires_grad, since autograd does not support crossing process boundaries.  If you just want to transfer the data, call detach() on the tensor before serializing (e.g., putting it on the queue).r   )ÚNestedTensorrI   rb   )#rU   Úis_leafÚRuntimeErrorr   r   ÚutilsÚhooksÚwarn_if_has_hooksÚ$torch.nested._internal.nested_tensorr…   Ú	is_nestedrx   Úreduce_nested_tensorÚlayoutÚ
sparse_cooÚ
sparse_csrÚ
sparse_bsrÚ
sparse_cscÚ
sparse_bscÚreduce_sparse_tensorÚ_typed_storagery   rL   ÚtypeÚ_share_cuda_r\   r   rv   rƒ   r]   r^   rf   rq   ro   r`   )Útensorr…   r   rL   rM   rn   r}   r~   r   r€   r�   rm   r[   s                r   Úreduce_tensorr™   ß   s{  € ØÔð 
 F¤Nð 
ÝðBñ
ô 
ð 	
õ # 6Ñ*Ô*Ð*Ý	„KÔ×'Ò'¨Ñ/Ô/Ð/ð~ BÐAÐAÐAÐAÐAàÔð ,¥
¨6°<Ñ @Ô @ð ,Ý# FÑ+Ô+Ð+à„}ÝÔÝÔÝÔÝÔÝÔðð ð õ $ FÑ+Ô+Ð+à×#Ò#Ñ%Ô%€GàÔÔ&Ô+¨vÒ5Ð5ð × Ò Ñ"Ô"ñ		
ØØØØ ØØØØà×-Ò-Ñ/Ô/ˆÝ-¨gÑ6Ô6��VÑõ  å�V‘”Ø—’‘”Ø—’‘”ØÝ�W‘”Ø”ØØØ"Ø$ØÔ$Ø"Ø"ØØ#ðð
ð 	
ð( 
Ô	!Ô	(Ô	-°Ò	7Ð	7åå�V‘”Ø—’‘”Ø—’‘”Ø×%Ò%Ñ'Ô'Ø”Ø×&Ò&Ñ(Ô(×-Ò-Ñ/Ô/ØÔ$ðð
ð 	
ð 	×ÒÑÔØ�Š‰ŒØ�Š‰ŒØÔð	€Hõ �T &™\œ\¨7°HÐ=Ð>Ð>r   c                 óX   —  | |Ž } ||Ž }	 ||Ž }
 ||Ž }t          j        ||	|
|¦  «        S r   )r   Ú_nested_view_from_buffer_copy)Úrebuild_buffer_funcÚrebuild_buffer_argsÚrebuild_sizes_funcÚrebuild_sizes_argsÚrebuild_strides_funcÚrebuild_strides_argsÚrebuild_offsets_funcÚrebuild_offsets_argsÚbufferÚsizesÚstridesÚoffsetss               r   Úrebuild_nested_tensorr¨   “  sS   € ð !Ð Ð"5Ð6€FØÐÐ 2Ð3€EØ"Ð"Ð$8Ð9€GØ"Ð"Ð$8Ð9€GÝÔ.¨v°u¸gÀwÑOÔOÐOr   c           	      óD  — t          |                      ¦   «         ¦  «        \  }}t          |                      ¦   «         ¦  «        \  }}t          |                      ¦   «         ¦  «        \  }}t          |                      ¦   «         ¦  «        \  }}t
          ||||||||ffS r   )r™   ÚvaluesÚ_nested_tensor_sizeÚ_nested_tensor_stridesÚ_nested_tensor_storage_offsetsr¨   )	Úntrœ   r�   rž   rŸ   r    r¡   r¢   r£   s	            r   r�   r�   ¤  s¶   € Ý/<¸R¿YºY¹[¼[Ñ/IÔ/IÑ,ÐÐ,Ý-:¸2×;QÒ;QÑ;SÔ;SÑ-TÔ-TÑ*ÐÐ*Ý1>Ø
×!Ò!Ñ#Ô#ñ2ô 2Ñ.ÐÐ.õ 2?Ø
×)Ò)Ñ+Ô+ñ2ô 2Ñ.ÐÐ.õ
 	àØØØØ Ø Ø Ø ð		
ðð r   c                 óF   —  | |Ž } ||Ž }t          j        ||||¬¦  «        S )N)Úis_coalesced)r   Úsparse_coo_tensor)Úrebuild_indices_funcÚrebuild_indices_argsÚrebuild_values_funcÚrebuild_values_argsÚshaper°   Úindicesrª   s           r   Úrebuild_sparse_coo_tensorr¸   ½  s:   € ð #Ð"Ð$8Ð9€GØ Ð Ð"5Ð6€FÝÔ" 7¨F°EÈÐUÑUÔUÐUr   c                 óR   —  | |Ž } ||Ž }	 ||Ž }
t          j        ||	|
||¬¦  «        S )N)rŽ   )r   Úsparse_compressed_tensor)Úrebuild_compressed_indices_funcÚrebuild_compressed_indices_argsÚrebuild_plain_indices_funcÚrebuild_plain_indices_argsr´   rµ   r¶   rŽ   Úcompressed_indicesÚplain_indicesrª   s              r   Ú rebuild_sparse_compressed_tensorrÁ   Ê  sX   € ð 9Ð8Ø	(ðÐð /Ð.Ð0JÐK€MØ Ð Ð"5Ð6€FÝÔ)Ø˜M¨6°5Àðñ ô ð r   c           	      ó  — | j         t          j        u rnt          |                      ¦   «         ¦  «        \  }}t          |                      ¦   «         ¦  «        \  }}t          ||||| j        |                      ¦   «         ffS | j         t          j	        t          j
        hv r)|                      ¦   «         }|                      ¦   «         }n\| j         t          j        t          j        hv r)|                      ¦   «         }|                      ¦   «         }nt#          | j         ¦  «        ‚t          |¦  «        \  }}t          |¦  «        \  }	}
t          |                      ¦   «         ¦  «        \  }}t&          |||	|
||| j        | j         ffS r   )rŽ   r   r�   r™   Ú_indicesÚ_valuesr¸   r¶   r°   r�   r‘   Úcrow_indicesÚcol_indicesr’   r“   Úccol_indicesÚrow_indicesÚNotImplementedErrorrª   rÁ   )Úsparser²   r³   r´   rµ   r¿   rÀ   r»   r¼   r½   r¾   s              r   r”   r”   Þ  s�  € Ø„}�Ô(Ð(Ð(Ý5BÀ6Ç?Â?ÑCTÔCTÑ5UÔ5UÑ2ÐÐ2Ý3@ÀÇÂÑAQÔAQÑ3RÔ3RÑ0ÐÐ0å%à$Ø$Ø#Ø#Ø”Ø×#Ò#Ñ%Ô%ðð

ð 
	
ð Œ=�UÔ-­uÔ/?Ð@Ð@Ð@Ø!'×!4Ò!4Ñ!6Ô!6ÐØ"×.Ò.Ñ0Ô0ˆMˆMØŒ]�uÔ/µÔ1AÐBÐBÐBØ!'×!4Ò!4Ñ!6Ô!6ÐØ"×.Ò.Ñ0Ô0ˆMˆMå% f¤mÑ4Ô4Ð4õ Ð,Ñ-Ô-ñ	
Ø+Ø+åANØñB
ô B
Ñ>Ð"Ð$>õ 4AÀÇÂÁÄÑ3QÔ3QÑ0ÐÐ0å,à/Ø/Ø*Ø*Ø#Ø#Ø”Ø”ð	ð
ð 	
r   c                 óF   — t          j        | ¦  «        }|j        |j        fS r   )ÚosÚfstatÚst_inoÚst_dev)ÚfdÚstats     r   Úfd_idrÒ     s    € õ Œ8�B‰<Œ<€DØŒK˜œÐ%Ð%r   c                 ó†   — t                                |¦  «        }|€d S t          j                             |j        ¦  «        S r   )rv   r:   r   rh   Ú_new_with_weak_ptrr	   )r   r;   r@   s      r   rs   rs     s:   € Ý×"Ò" 3Ñ'Ô'€KØÐØˆtÝÔ×2Ò2°;Ô3DÑEÔEÐEr   c                 óh  — |                      ¦   «         }	 t          | t          |¦  «        ¦  «        }|�|t          j        |¦  «         S |                      ||¦  «        }t          |¦  «        t          t          |¦  «        <   |t          j        |¦  «         S # t          j        |¦  «         w xY wr   )Údetachrs   rÒ   rÌ   ÚcloseÚ_new_shared_fd_cpur   rv   )r   Údfr]   rÐ   r   s        r   Úrebuild_storage_fdrÚ     s–   € Ø	�Š‰Œ€BðÝ$ S­%°©)¬)Ñ4Ô4ˆØÐØõ
 	Œ�‰Œˆˆð	 ×(Ò(¨¨TÑ2Ô2ˆÝ"0°Ñ"9Ô"9�•U˜2‘Y”YÑØå
Œ�‰Œˆˆø�Œ�‰Œˆˆøøøs   – B Á;B ÂB1c                 ó   — t          | |¦  «        }|�|                     ¦   «         S |€"t          j                             |||¦  «        }nZ|t          j                             |¦  «        z  }t          j                             |||¦  «        }t          j        ||d¬¦  «        }t          |¦  «        t          |<   |                     ¦   «         S ©NTrd   )
rs   Ú_shared_decrefr   rh   Ú_new_shared_filename_cpurV   Ú_element_sizeri   r   rv   )r   ÚmanagerrM   r]   rf   r   Ú	byte_sizero   s           r   Úrebuild_storage_filenamerâ   )  sÑ   € Ý?QØˆVñ@ô @€Gð ÐØ×%Ò%Ñ'Ô'Ð'Ø€}ÝÔ&×?Ò?ÀÈÐQUÑVÔVˆˆà�5œ<×5Ò5°eÑ<Ô<Ñ<ˆ	åÔ ×9Ò9¸'À6È9ÑUÔUð 	õ Ô$Ø(°Àð
ñ 
ô 
ˆõ *¨'Ñ2Ô2…L�ÑØ×!Ò!Ñ#Ô#Ð#r   c                 ó   —  | ¦   «         S r   r,   )r   s    r   Úrebuild_storage_emptyrä   =  s   € Øˆ3‰5Œ5€Lr   c                 óF   — t           j                             | |d¬¦  «        S rÜ   )r   r   ri   )r   rf   s     r   Úrebuild_typed_storageræ   A  s    € ÝŒ=×%Ò%°7À%ÐSWÐ%ÑXÔXÐXr   c                 ó,   — t           | j        | j        ffS r   )ræ   ry   rf   ©r   s    r   Úreduce_typed_storageré   F  s   € Ý! GÔ$<¸g¼mÐ#LÐMÐMr   c                 ó   —  || d¬¦  «        S )NT)re   rg   r,   )r   Ústorage_types     r   Úrebuild_typed_storage_childrì   J  s   € Øˆ< W¸Ð=Ñ=Ô=Ð=r   c                 ó<   — t           | j        t          | ¦  «        ffS r   )rì   ry   r–   rè   s    r   Úreduce_typed_storage_childrî   O  s   € Ý'¨'Ô*BÅDÈÁMÄMÐ)RÐSÐSr   c                 ó¤  — ddl m} | j        rt          d¦  «        ‚| j        j        dk    rt          d¦  «        ‚ |¦   «         dk    r]|                      ¦   «         }|d         }t          }t          | t          j
        ¦  «        r|| j        fz  }|                      ¦   «          n|                      ¦   «         dk    rt          t          | ¦  «        ffS |                      ¦   «         \  }}t           j                             |¦  «        }t'          |¦  «        }||f}t(          }t+          | ¦  «        t,          |<   |t          | ¦  «        f|z   fS )NrB   )Úget_sharing_strategyz>Cannot pickle CUDA storage; try pickling a CUDA tensor insteadrb   z>Cannot pickle meta storage; try pickling a meta tensor insteadÚfile_systemr   )Ú rð   Úis_cudar‡   rL   r–   Ú_share_filename_cpu_râ   rx   r   ri   rf   Ú_shared_increfr]   rä   Ú_share_fd_cpu_Úmultiprocessingr   ÚDupFdrÒ   rÚ   r   rv   )r   rð   r[   Ú	cache_keyÚrebuildrÐ   r]   rÙ   s           r   Úreduce_storagerû   S  s`  € Ø&Ð&Ð&Ð&Ð&Ð&à„ð %ÝØLñ
ô 
ð 	
ð 
ŒÔ	 Ò	&Ð	&ÝØLñ
ô 
ð 	
ð 
Ð	Ñ	Ô	 =Ò	0Ð	0Ø×/Ò/Ñ1Ô1ˆØ˜Q”Kˆ	Ý*ˆÝ�g�uÔ1Ñ2Ô2ð 	)Ø˜œÐ(Ñ(ˆHØ×ÒÑ Ô Ð Ð Ø	�Š‰Œ˜1Ò	Ð	õ &­¨W©¬Ð'7Ð8Ð8à×)Ò)Ñ+Ô+‰ˆˆDÝÔ&×,Ò,¨RÑ0Ô0ˆÝ˜"‘I”Iˆ	Ø˜�:ˆÝ$ˆå,¨WÑ5Ô5…L�ÑØ•d˜7‘m”mÐ%¨Ñ0Ð1Ð1r   c                  ó"  — t          j        t          j        j        t
          ¦  «         t          j        D ]B} | j        dk    rt          j        | t          ¦  «         Œ(t          j        | t          ¦  «         ŒCt          j        t          j
        j        t          ¦  «         t          j        D ]} t          j        | t          ¦  «         Œt          j        t          j        t          ¦  «         ddlm} t          j        |t          ¦  «         d S )Nrh   r   )rZ   )r   Úregisterr   rI   rJ   rR   Ú_storage_classesr&   rû   rî   r   ri   ré   Ú_tensor_classesr™   ÚTensorÚtorch.nn.parameterrZ   )r_   rZ   s     r   Úinit_reductionsr  t  sê   € ÝÔ•u”zÔ'­Ñ6Ô6Ð6åÔ#ð >ð >ˆØŒ:Ð)Ò)Ð)ÝÔ˜q¥.Ñ1Ô1Ð1Ð1åÔ˜qÕ"<Ñ=Ô=Ð=Ð=åÔ•u”}Ô1Õ3GÑHÔHÐHåÔ"ð -ð -ˆÝÔ˜1�mÑ,Ô,Ð,Ð,õ Ô•u”|¥]Ñ3Ô3Ð3à,Ð,Ð,Ð,Ð,Ð,åÔ�y¥-Ñ0Ô0Ð0Ð0Ð0r   r   )'r÷   rÌ   r5   r   Úmultiprocessing.utilr   Útypingr   r   Útorch._namedtensor_internalsr   Úmultiprocessing.resource_sharerÚImportErrorr   r9   r.   rv   rN   rR   r`   rq   rƒ   r™   r¨   r�   r¸   rÁ   r”   rÒ   rs   rÚ   râ   rä   ræ   ré   rì   rî   rû   r  r,   r   r   ú<module>r     s„  ðà Ð Ð Ð Ø 	€	€	€	Ø Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø Ð Ð Ð Ð Ð à €€€Ø GÐ GÐ GÐ GÐ GÐ Gð	ð +Ð*Ð*Ð*Ð*øØð 	ð 	ð 	Ø€Dð	øøøð")ð ")ð ")ð ")ð ")ñ ")ô ")ð ")ðJ!(ð !(ð !(ð !(ð !(�$ñ !(ô !(ð !(ðJ ˆ{‰}Œ}€ð<ð <ð <ð3ð 3ð 3ð

ð 
ð 
ðð ð ð@Að Að AðHq?ð q?ð q?ðhPð Pð Pð"ð ð ð2
Vð 
Vð 
Vðð ð ð(,
ð ,
ð ,
ð^&ð &ð &ðFð Fð Fð
ð 
ð 
ð$ð $ð $ð $ð(ð ð ðYð Yð Yð
Nð Nð Nð>ð >ð >ð
Tð Tð Tð2ð 2ð 2ðB1ð 1ð 1ð 1ð 1s   ª/ ¯7¶7