
    JThK                        S SK Jr  S SKJrJr  S SKJrJrJrJ	r	J
r
  S SKJr  S SKrS SKJr  S SKJr  S SKJr  \(       a  S S	KJr  S S
KJr  S SKJr  S/rS\S\S   4S jrS\S\S   4S jrSS jrS S jrS!S\S\\ \      S\!4S jjr" S"S\\RF                     S\\
\$\RJ                  4      S\!S\&\&\RF                        4S jjr'\	" S\S9r( S"S\(S\\
\$\RJ                  4      S\!S\&\(   4S jjr)g)#    )OrderedDict)IteratorSequence)castOptionalTYPE_CHECKINGTypeVarUnion)TypeIsN)_get_device_index)Module)comm)ScriptMethod)ScriptModule)EnabledProxy	replicatemodulereturnr   c                 H    SS K n[        XR                  R                  5      $ Nr   )	torch.jit
isinstancejitr   r   torchs     S/var/www/auris/envauris/lib/python3.13/site-packages/torch/nn/parallel/replicate.py_is_script_moduler      s    fii4455    r   c                 H    SS K n[        XR                  R                  5      $ r   )r   r   _Cr   r   s     r   _is_script_methodr!      s    fhh3344r   c                  >    SS K n U R                  R                  5       $ r   )r   r   r   r   s    r   _init_script_moduler$   !   s    99!!##r   c                  J    SS K n U R                  R                  R                  $ r   )torch.jit._stater   _state_enabledr#   s    r   _is_jit_enabledr)   '   s    99$$$r   memoc                 n   S[         S[        [            4S jn[        5       (       d  gUc
  [        5       nUR	                  U 5        [        U 5      (       a/  UR                  U" U 5      5        [        S U" U 5       5       5      $ U R                  5        H  nX1;   a  M
  [        X15      (       a  M    g   g)Nr   r   c                 <    U R                  5       n[        U5        U$ N)modulesnext)r   gens     r   descendant_modules0_replicatable_module.<locals>.descendant_modules6   s    nnS	
r   Tc              3   8   #    U  H  n[        U5      v   M     g 7fr-   )r   ).0
descendants     r   	<genexpr>'_replicatable_module.<locals>.<genexpr>D   s      
<Vjj))<Vs   F)
r   r   r)   setaddr   updateallchildren_replicatable_module)r   r*   r1   childs       r   r=   r=   4   s    6 hv.> 
 |u 	HHV  &v./ 
<Nv<V
 
 	
 " =#E00 # r   tensorsdevicesdetachc           	         SSK Jn  U(       a  [        R                  " X5      $ [	        U 5      S:  aQ  UR
                  " U/U Q76 n[        S[	        U5      [	        U 5      5       Vs/ s H  nXEU[	        U 5      -    PM     sn$ / $ s  snf )Nr   )	Broadcast)torch.nn.parallel._functionsrC   r   broadcast_coalescedlenapplyrange)r?   r@   rA   rC   tensor_copiesis         r   _broadcast_coalesced_reshaperK   S   s    
 7''99 w<!%OOG>g>M q#m"4c'lCCA !c'l"23C 
 Is   'BT)boundnetworkc           	         [        U 5      (       d  [        S5      eU(       d  / $ U Vs/ s H  n[        US5      PM     nn[        U5      n[	        U R                  5       5      n[        U5       VVs0 s H  u  pgXv_M	     nnn[        XQU5      n	[	        U R                  5       5      n
/ n/ nU
 H?  nUR                  (       a  U(       d  UR                  U5        M.  UR                  U5        MA     [        U5       VVs0 s H  u  pmX_M	     nnn[        U5       VVs0 s H  u  pmX_M	     nnn[        XUS9n[        XSS9n[	        U R                  5       5      nU Vs/ s H  n/ PM     nn0 n[        U5       HP  u  nnUUU'   [        U5       H6  nUR                  5       n[        5       Ul        UU   R                  U5        M8     MR     [        U5       GH  u  nnUR                   R#                  5        Hf  u  nnUc+  [        U5       H  nUU   U   nS UR                   U'   M     M4  UU   n[        U5       H  nUU   U   n[%        UUUU   U   5        M      Mh     UR&                  R#                  5        Hv  u  nnUc+  [        U5       H  nUU   U   nS UR&                  U'   M     M4  X   n[        U5       H/  nUU   U   nU	U   U   n[%        UUU5        UUR                  U'   M1     Mx     UR(                  R#                  5        H  u  nnUc+  [        U5       H  nUU   U   nS UR(                  U'   M     M4  UR                  (       a  U(       d  UnX   n OUnX   n [        U5       H  nUU   U   n[%        UUUU   U    5        M      M     GM     [        U5       Vs/ s H  n[+        [,        UU   S   5      PM     sn$ s  snf s  snnf s  snnf s  snnf s  snf s  snf )NzKCannot replicate network where python modules are childrens of ScriptModuleT)rA   r   )r=   RuntimeErrorr   rF   list
parameters	enumeraterK   buffersrequires_gradappendr.   rH   _replicate_for_data_parallelr   _former_parameters_modulesitemssetattr_parameters_buffersr   rL   )!rN   r@   rA   xnum_replicasparamsidxparamparam_indicesparam_copiesrT   
buffers_rgbuffers_not_rgbufbuffer_indices_rgbuffer_indices_not_rgbuffer_copies_rgbuffer_copies_not_rgr.   _module_copiesmodule_indicesrJ   r   jreplicakeyr>   
module_idx	param_idx
param_copybuffer_copies
buffer_idxs!                                    r   r   r   k   s   
  (((
 	

 	3:;7a D)7G;w<L'$$&'F2;F2CD2CJCUZ2CMD/HL7??$%G%'J)+NVc"!!#&	  3<J2GH2Ghc2GH6?6OP6O(#SX6OP3JPVW7 7??$%G5<(=WWM(=(*Nw'	6!"v|$A99;G *5G&!##G, % ( w'	6 ////1JC}|,A+A.q1G,0G$$S) - ,E2
|,A+A.q1GGS-*::*FG - 2 !,,224JC}|,A+A.q1G/3G'', - *0	|,A+A.q1G!-a!;J GS*56@G..s3 - 5 --/HC{|,A+A.q1G,0G$$S) - $$V$4M!2!7J$8M!6!;J|,A+A.q1GGS-*::*FG - 05 (T 382EF2EQDM!$Q'(2EFFg < E IP )>t Gs#   O3O OO$!O*0 O/)r   r   )r   r   r-   )F)*collectionsr   collections.abcr   r   typingr   r   r   r	   r
   typing_extensionsr   r   torch._utilsr   torch.nn.modulesr   torch.nn.parallelr   torch._Cr   r   r   r&   r   __all__r   objectr!   r$   r)   r8   boolr=   TensorintdevicerQ   rK   rL   r    r   r   <module>r      sK   # . @ @ $  * # " %&- -6f 6)? 65f 5)? 5$% xF/D PT D ell#eC-./  
$u||
	* Cv aGaGeC-./aG aG 
!W	aGr   