
    9i                        S SK r S SKrS SKrS SKrS SKrS SK Jr  S SKJrJr  S SK	r	S SK
r	S SKr	S SKJr  S SKJr  S SKJr  S SKJrJrJrJrJrJrJrJrJr  S SKJrJrJrJ r J!r!J"r"  S SK#J$r$  S S	K%J&r&  \	R                  RN                  r(/ S
Qr)0 r*/ r+\	RX                  RZ                  R\                  r.S r/S r0\/" \.Rb                  Rd                  \.Rb                  Rf                  \.Rh                  Rd                  \.Rh                  Rf                  \.Rj                  Rd                  \.Rj                  Rf                  \.Rl                  Rd                  \.Rl                  Rf                  \.Rn                  Rd                  \.Rn                  Rf                  \.Rp                  Rd                  \.Rp                  Rr                  \.Rp                  Rt                  \.Rp                  Rf                  \.Rp                  Rv                  \.Rp                  Rx                  \.Rz                  Rd                  \.Rz                  Rf                  \.R|                  Rd                  \.R|                  Rf                  \.R~                  Rd                  \.R~                  Rf                  \.R                  Rd                  \.R                  Rf                  \.R                  Rd                  \.R                  Rf                  \.R                  Rd                  \.R                  Rf                  5      rC\/" \.R                  Rd                  \.R                  Rd                  \.R                  Rf                  \.R                  Rd                  \.R                  R                  \.R                  R                  \.R                  Rd                  \.R                  Rd                  \.R                  Rf                  \.R                  Rd                  \.R                  Rf                  5      rM\.R                  4rOS rP\ R                  S\4S j5       rRS\\\/\S4   \4   4S jrTS rUS rV\T" \*R                  5      S 5       rX\T" \R5      \T" / \CQ5      S 5       5       rY\T" \.R                  Rd                  5      S 5       rZ\T" \.R                  R                  5      \T" \.R                  R                  5      S 5       5       r[S r\\T" \\5      S 5       r]\T" \.R                  Rd                  5      S 5       r^\T" \.R                  Rd                  5      S 5       r_\T" S 5      S 5       r`   SMSS.S  jjra\T" \.R                  Rd                  5       SMS! j5       rc\T" \.R                  R                  5      S" 5       rf\T" \.R                  Rd                  5       SMS# j5       rg\T" \.R                  Rd                  5      SNS$ j5       riSOS% jrjS& rkSPS' jrl\T" \.R                  Rd                  5      \T" \.R                  Rd                  5      S( 5       5       ro\T" \.R                  Rd                  5      SS).S* j5       rq\T" \.R                  Rr                  5      SQS+ j5       rs\T" \	RZ                  R\                  R                  Rd                  5      \T" \	RZ                  R\                  R                  Rd                  5      S, 5       5       rv\T" \	RZ                  R\                  R                  Rd                  5      S- 5       rw\T" \	RZ                  R\                  R                  Rd                  5      S. 5       rx\T" \	RZ                  R\                  R                  Rd                  5      SQS/ j5       ry\T" \	RZ                  R\                  R                  Rd                  5      S0 5       rz\T" \	RZ                  R\                  R                  Rd                  5         SRSSS1. SSS2 jjj5       r|\T" S3 5      S4 5       r}S5 r~S6 r\/" S7S8S95      rS: rS; r\T" S< 5      S= 5       r\T" \.GR                  Rr                  5      S> 5       r\T" \.GR                  Rd                  5      S? 5       r\T" \.GR                  Rd                  5      \T" \.GR                  Rd                  5      \T" \.GR                  Rd                  5      \T" \.GR                  Rd                  5      S@ 5       5       5       5       r\T" \.GR                  Rf                  5      \T" \.GR                  Rf                  5      SA 5       5       r\T" \.GR                  Rd                  5      \T" \.GR                  Rd                  5      SB 5       5       r\T" \.R                  Rd                  5      \T" \.R                  Rf                  5      \T" \.GR"                  Rd                  5      \T" \.GR$                  Rd                  5      SC 5       5       5       5       r\T" \M V s/ s Hv  n U \.R                  Rd                  \.R                  R                  \.R                  R                  \.R                  Rd                  \.R                  Rf                  4;  d  Mt  U PMx     sn 5      SD 5       r\T" \.GR*                  Rd                  \.GR,                  Rd                  /5      SE 5       r\T" \	RZ                  R\                  GR0                  Rd                  5      STSF j5       r\T" \	RZ                  R\                  GR2                  Rd                  5      SG 5       r0 rS\4SH jrSI r\GR:                  4SJ jrSOSK jr\ R                  SL 5       rgs  sn f )U    N)reduce)CallableUnion)no_python_dispatcher)
OpOverload)	elementwise_dtypesELEMENTWISE_TYPE_PROMOTION_KINDis_boolean_dtypeis_contiguous(is_contiguous_for_memory_format_or_falseis_contiguous_or_falseis_float_dtypeis_integer_dtypemake_contiguous_strides_for)DataDependentOutputExceptionDynamicOutputShapeException
FakeTensorin_kernel_invocation_managerrun_fallback_kernelUnsupportedOperatorException)normalize_functioncount_label)op_implementations_checksget_fast_op_implsstride_incorrect_ophas_metac                  .    [         R                  U S5      $ )NT)dictfromkeys)itemss    \/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/torch/_subclasses/fake_impls.pyordered_setr#   8   s    ==%%    c                      U R                   S:g  $ )Nhpu)typedevices    r"   is_noncontiguous_supportedr*   >   s    ;;%r$   c                     [         R                  R                  R                  5       nU R	                  U5      =(       d     [        S U R                  5        5       5      $ )Nc              3   8   #    U  H  n[        U5      v   M     g 7fN)contains_tensor_types).0es     r"   	<genexpr>(contains_tensor_types.<locals>.<genexpr>v   s      0*?Qa  *?s   )torch_C
TensorTypegetisSubtypeOfanycontainedTypes)r'   tensor_types     r"   r.   r.   t   sO    ((%%))+KK( C 0*.*=*=*?0 - r$   funcc                 L   [        U [        5      (       d   eU R                  n[        S UR                   5       5      (       a  g[        UR                  5      S:H  =(       aA    UR                  S   R                  [        R                  R                  R                  5       L $ )Nc              3   L   #    U  H  n[        UR                  5      v   M     g 7fr-   )r.   r'   )r/   args     r"   r1   )_is_tensor_constructor.<locals>.<genexpr>   s     
G6Fs **6Fs   "$F   r   )
isinstancer   _schemar8   	argumentslenreturnsr'   r3   r4   r5   r6   )r;   schemas     r"   _is_tensor_constructorrG   {   s|    dJ''''\\F

Gf6F6F
GGG 	FNNq XV^^A%6%;%;uxx?R?R?V?V?X%Xr$   run_impl_checkc                    ^  U 4S jnU$ )Nc                 0  > [        T[        5      (       a  T[        ;  d
   ST 35       eU [        T'   U $ [        T[        [        45      (       a  T H  n[        U5      " U 5        M     U $ [        T5      (       d   e[        R                  TU 45        U $ )Nzduplicate registration: )	rA   r   op_implementations_dictlisttupleregister_op_implcallabler   append)op_imploprH   s     r"   impl_decorator(register_op_impl.<locals>.impl_decorator   s    nj11!)@@ *>*:;@ 7>#N3  u66$ $W- %  N++++%,,ng-FGr$    )rH   rS   s   ` r"   rN   rN      s     r$   c                     U [         ;   $ r-   rK   rR   s    r"   _is_op_registered_to_fake_rulerY      s    (((r$   c                 |    U [         ;   a  [         U 	 [         H!  u  pXL d  M  [        R                  X45          g    g r-   )rK   r   remove)rR   checkimpls      r"   _deregister_op_implr^      s7    	$$#B'0;%,,e]; 1r$   c                 (    [         U   " X/UQ70 UD6$ r-   rW   	fake_moder;   argskwargss       r"   #dispatch_to_op_implementations_dictrd      s    "4(J4J6JJr$   c                    U[         ;  d   e[        XUSS9u  pESU;   a  [        S5      eU[        ;   a"  US   R                  nUR                  S5      4nO[        R                  " S5      nSnUR                  SS 5      nUb  UOUn[        R                  " S	5      US'   [        U 5         U" U0 UD6nS S S 5        [        U WU5      $ ! , (       d  f       N= f)
NTrb   rc   normalize_to_only_use_kwargsnamesz+torch.compile doesn't support named tensorsinputcpurU   r)   meta)	_non_kwarg_device_constructorsr   r   _like_tensor_constructorsr)   popr3   r   r   )	ra   r;   rb   rc   _
new_kwargsdefault_device
out_devicers	            r"   constructorsrt      s     5555&TMA &*9
 	
 ((#G,33w') e,$/J)5>J <</Jx 
&i	0$%*% 
1iJ// 
1	0s   ,	C


Cc                     [        XUSS9u  pEUR                  S5      n[        U 5         U" U5      nS S S 5        U$ ! , (       d  f       W$ = f)NTrg   ri   )r   rn   r   )ra   r;   rb   rc   ro   rp   inprs   s           r"   non_kwarg_is_pinnedrx      sP    &FMA ..
!C 
&i	0I 
1H 
1	0Hs	   	=
Ac                 @   [        XUSS9u  pEUS   nU(       a  UOUS   R                  n[        R                  " S5      US'   UR                  S5      n[	        U 5         U" U40 UD6n	S S S 5        U R
                  R                  U W	U5      $ ! , (       d  f       N+= f)NTrv   r)   ri   rk   )r   r)   r3   rn   r   fake_tensor_converterfrom_meta_and_device)
ra   r;   rb   rc   ro   rp   input_devicerr   rw   rs   s
             r"   non_kwarg_tor}      s     'FMA h'L!-:g3F3M3MJ <</Jx
..
!C	%i	0#
# 
1 **??1j  
1	0s    
B
Bc                     g)NFrU   rX   s    r"   r   r      s    r$   c                   ^ S mU R                   (       ac  [        U4S j[        R                  " X#R	                  5       5       5       5      nU(       d%  [
        R                  X#45      u  pV[        XXVS 5      $ [        U5      e)Nc                     [        U [        5      (       a  U R                  $ [        U [        R                  [        R
                  [        R                  45      (       a  gg)NTF)rA   r   _has_symbolic_sizes_stridesr3   SymIntSymFloatSymBoolxs    r"   is_symbolic3wordaround_stride_incorrect_op.<locals>.is_symbolic   sA    a$$000a%,,FGGr$   c              3   4   >#    U  H  nT" U5      v   M     g 7fr-   rU   )r/   r   r   s     r"   r1   1wordaround_stride_incorrect_op.<locals>.<genexpr>   s      
$JqKNN$Js   )	allow_fallback_kernelsr8   	itertoolschainvaluespytreetree_flattenr   r   )ra   r;   rb   rc   require_dynamic	flat_args	args_specr   s          @r"   wordaround_stride_incorrect_opr      sm     '' 
$-OOD--/$J
 
 #)#6#6~#F I&y	dSS
&t
,,r$   c                 ^    [        U 5         U" U0 UD6sS S S 5        $ ! , (       d  f       g = fr-   )r   r`   s       r"   
resize_as_r     s#    	%i	0T$V$ 
1	0	0s   
,c                      [        X/UQ70 UD6$ r-   )rt   r`   s       r"   (_sparse_coo_tensor_with_dims_and_tensorsr     s     	9$9&99r$   c                     [         R                  R                  U R                  ;   =(       aP    U [        R
                  R                  [        R                  R                  [        R                  R                  4;  $ r-   )
r3   Tagdynamic_output_shapetagsatenindexTensornonzerodefaultrepeat_interleaver;   s    r"   <lambda>r     sV    //499< TJJt||33T5K5K5R5RS	TTr$   c                     [        U5      er-   )r   r`   s       r"   	dyn_shaper     s     &d
++r$   Funique_consecutivec                   U R                   b  U R                   R                  (       d  [        U5      eU(       a  UR                  OUR                  nUc  Uc  SSKJn	Jn
  U
" UR                  5       5      (       d  UR                  5       S:X  a  SnOoU R                   R                  5       n[        R                  S-
  nUc  UR                  5       OUR                  U5      nU
" U5      (       d  [        U5      nU	" XS9  Uc  U(       a  Xl        OXl        Uc  UR                  U45      /nO4UR                  " / UR                  S U QUPUR                  US-   S  Q76 /nUS L=(       a#    UR                   ["        R$                  " S5      :H  nU(       d  U(       a/  UR                  Uc  UR                  OUR                  U   45      nOUR                  S5      nUR'                  U5        U(       d  U(       a5  UR                  Uc  US   R                  OUS   R                  U   45      nOUR                  S5      nUR'                  U5        [)        U5      $ )Nr   _constrain_range_for_sizehas_free_symbolsr@   maxrj   )	shape_envallow_dynamic_output_shape_opsr   unique_consecutive_memounique_memo%torch.fx.experimental.symbolic_shapesr   r   numelcreate_unbacked_symintsysmaxsizesizeint	new_emptyshapefake_devicer3   r)   rP   rM   )ra   r;   r>   dimsortedreturn_inversereturn_countsr   nnzr   r   maxvalr   retreturn_if_dim_and_cpuinversecountss                    r"   _uniquer     s    	#""AA *$//);#
%
%C #+	

  		,,1A C%%<<>C[[1_F#&;CIIKCHHSME#E**U%c6;!.1+"%
{}}cV$%}}JciioJsJSYYsQwy5IJKtOV5<<PUCV0V.--S[		syy~>OP--"JJw-s{s1v||QcAR@TUq!JJv:r$   c           	           [        XUS X4U5      $ r-   r   )ra   r;   r>   r   r   r   s         r"   unique2r   i  s     9Cv}UUr$   c                    SSK Jn  UR                  (       a  [        $ UR	                  5       n[
        R                  " US:g  S 5        US:  a  UOX6-   nUR                  U5      n[        UR                  5       5      n[        UR                  5       5      n	S n
U" US:  5      (       a  UR                  5       XIU   -  -   n
O*U" US:  5      (       a  UR                  5       XG-   X   -  -   n
U
c^  U R                  b,  U R                  R                  (       d  U R                  (       d  [        U5      eU R                  R                  5       n
X	 X	 U
c   eUR                  XU
5      $ )Nr   guard_or_falsec                      g)Nz-select() cannot be applied to a 0-dim tensor.rU   rU   r$   r"   r   meta_select.<locals>.<lambda>z  s    ?r$   )r   r   	is_sparseNotImplementedr   r3   _check_indexr   rL   stridestorage_offsetr   allow_scalar_outputsr   r   
as_strided)ra   r;   selfr   r   r   ndimr   new_size
new_stridenew_storage_offsets              r"   meta_selectr   p  sC   D~~88:D		?
 #szC99S>DDIIK Hdkkm$Jeqj!!!002U_5LL			"	"!002eljo5UU!&##8822.t44 '00GGI)))??81CDDr$   c           
      b    [        U UUUS:  a  UOU[        UR                  S5      -  UUU5      $ )Nr   r@   )r   r   r   )ra   r;   r>   r   r   r   r   s          r"   
unique_dimr     s>     axS3sxx#33	 	r$   c                 "    [        U UUUSUUSS9$ )NFTr   r   )ra   r;   r>   r   r   r   s         r"   ro   ro     s'    	 	r$   c                   ^^^ SSK JmJmJn  UU4S jnUU4S jn[	        U 5      S:X  a  S/[	        U5      -  $ [        [        R                  U S5      nU" US:H  5      nU(       a  U" U" X5      5      (       a  U$ S/[	        U5      -  n	U(       aU  [        [	        U5      S-
  SS5       H6  n
U
[	        U5      S-
  :X  a  SX'   M  [        X*S-      S5      XS-      -  X'   M8     U	$ [	        U5      S-
  n
US   nSnSn[        [	        U 5      S-
  SS5       H  nXU   -  nUS:X  d0  U" XS-
     S:g  5      (       d  M'  U" XS-
     X-  :g  5      (       d  M@  U
S:  a^  U" X:  5      (       d  U" X*   S:H  5      (       a=  X-  X'   XU
   -  nU
S-  n
U
S:  a%  U" X:  5      (       a  M)  U" X*   S:H  5      (       a  M=  U" X:g  5      (       a    g US:  d  M  XS-
     nSnSnM     U
S:w  a  g U	$ )Nr   )r   guard_or_truesym_eqc                 &   > T(       a  T" U 5      $ U $ r-   rU   )r   r   size_obliviouss    r"   maybe_guard_or_false-_compute_stride.<locals>.maybe_guard_or_false  s    !!$$r$   c                 &   > T(       a  T" U 5      $ U $ r-   rU   )r   r   r   s    r"   maybe_guard_or_true,_compute_stride.<locals>.maybe_guard_or_true  s     ##r$   r@   )
r   r   r   r   rD   r   operatormulranger   )	old_shape
old_stride	new_shaper   r   r   r   r   
zero_numelr   view_dchunk_base_stridetensor_numel
view_numeltensor_dr   r   s      `           @@r"   _compute_strider     s&     9~sS^##8<<A.E%eqj1J*6)+GHHs9~%JC	NQ.B7FY!++%&
" 	1*-q1Jz4JJ "	 8 ^aF"2LJ#i.1,b"5(++q=	Q, 71 <==#a<(L,LL  A+#J$=>>'	(9Q(>??%/%C
"//
! A+#J$=>>'	(9Q(>?? #:#=>>!|$.!|$<! 
/ 60 |r$   c                   ^ SSK Jm  [        R                  " USS9n[	        U4S jU R                  5        5       5      =(       d?    [	        U4S jU R                  5        5       5      =(       d    [	        U4S jU 5       5      $ )Nr   has_hintFvalidatec              3   >   >#    U  H  nT" U5      (       + v   M     g 7fr-   rU   r/   sr   s     r"   r1   +_view_has_unbacked_input.<locals>.<genexpr>  s     .XOOX   c              3   >   >#    U  H  nT" U5      (       + v   M     g 7fr-   rU   r   s     r"   r1   r   	  s     3
18A;
r  c              3   >   >#    U  H  nT" U5      (       + v   M     g 7fr-   rU   r   s     r"   r1   r   
  s     .18A;r  )r   r   utilsextract_shape_from_varargsr8   r   r   )ar   r   s     @r"   _view_has_unbacked_inputr    s_    >,,UUCE 	.QVVX.. 	/3
33	/...r$   c                 b  ^ ^ SSK Jn  SSKJnJn  [
        R                  " TSS9m[
        R                  " TT R                  5       5      mT R                  S:X  aS  T nT H<  n[        R                  " US:H  5        [        R                  R                  US5      nM>     UT L a  U" T 5      $ U$ [        T5      S:X  a]  T nT R                   H<  n[        R                  " US:H  5        [        R                  R!                  US5      nM>     UT L a  U" T 5      $ U$ [#        [$        R&                  TS5      n[        R                  " T R                  5       U:H  U U4S j5        [        T5      [        T R                  5      :X  a&  U" U" TT R                  5      5      (       a  U" T 5      $ U(       a  [)        T 5      (       a.  O[+        T 5      (       a  [-        T5      n	T R/                  TU	5      $ [1        T R3                  5       T R5                  5       TUS	9n
U
b  T R/                  TU
5      $ U(       aO  [        R6                  R8                  R:                  R<                  (       d  [?        T T5      (       a  [A        T TSS
9$ ST R                   ST R5                  5        ST S3n[C        U5      e)Nr   )view_ofr   r   Fr   r@   r   c                  *   > ST R                    ST S3$ )Nz&Could not reshape a tensor with shape  as a tensor with shape !)r   )r  r   s   r"   r   %_view_unbacked_meta.<locals>.<lambda>3  s    8	AYZ_Y``abr$   )r   )size_oblivious_enabledz Cannot view a tensor with shape z and strides r  r  )"torch._primsr	  r   r   r   r  r  
infer_sizer   r   r3   _check_refs	unsqueezerD   r   squeezer   r   r   r   r   r   r   r   r   r   fxexperimental_configbacked_size_obliviousr  _view_unbacked_meta
ValueError)r  r   r  r	  r   r   _alengthshape_numelstridesnew_stridesmsgs   ``          r"   r  r    s+   $L ,,UUCE UAGGI.E 	vv{FLL1%&&r2.B  71:I 5zQggFLL1%$$R,B  71:Iua0K	LL		[ b
 5zS\!nVE1775K&L&Lqz$:a  a@P@P-e4||E7++!	!((*e4JK ||E;// %%;;#Au--"1eEJJ,QWWI]188:,Nfglfmmn
oC
S/r$   c                     [         R                  R                  R                  R                  (       d  [        X#5      (       a  [        X#5      $ [         R                  R                  " U/UQ7SS06$ )N
allow_copyF)	r3   r  r  r  r  r  r  r  _reshape_view_helper)ra   r;   r  r   s       r"   
_view_metar%  S  sY     xx$$::>V	? ? #1,,{{//LELeLLr$   )outc                T    [        XU/UQ76 nUb  U$ [        R                  S U5      $ )Nc                 <    U R                  [        R                  S9$ Nmemory_format)cloner3   contiguous_formatr   s    r"   r   !_view_meta_copy.<locals>.<lambda>e  s    !''(?(?'@r$   )r%  r   tree_map)ra   r;   r  r&  r   results         r"   _view_meta_copyr1  ^  s4    	3U3F
??@ r$   c                     Uc[  U R                   b  U R                   R                  (       d  [        U5      eU R                   R                  5       nSSKJn  U" U5        UR                  U5      $ Nr   r   )r   r   r   r   r   r   r   )ra   r;   repeatsoutput_sizer   s        r"   repeat_interleave_tensorr7  j  sa    '&&EE-d33))@@B 	T!+.[))r$   c                 *   UR                   =nb  U$ U R                  b,  U R                  R                  (       d  U R                  (       d  [        U5      e[	        UR
                  5      (       a  U R                  R                  5       nO[        UR
                  5      (       a  U R                  R                  5       nOM[        UR
                  5      (       a  U R                  R                  5       nO[        SUR
                   35      eX2l         U$ )Nz local_scalar_dense/item NYI for )	item_memor   r   r   r   dtypecreate_unbacked_symfloatr   r   r
   create_unbacked_symboolNotImplementedError)ra   r;   r>   rs   s       r"   local_scalar_denser>  }  s     ]]'"44.. +400cii  88:	#))	$	$668	#))	$	$779!$DSYYK"PQQMHr$   c                     [         R                  R                  R                  R	                  U5      R                  S5      $ )Nr@   )r3   opsr   r   r   unbind)ra   r;   r>   s      r"   nonzero_numpyrB    s,    99>>!!))#.55a88r$   c                 h   U R                   b  U R                   R                  (       d  [        U5      eUR                  =nGc@  SSKJnJn  SSKJn  SSK	J
n  U" UR                  5       5      (       d  UR                  5       S:X  a  SnOU R                   R                  5       n[        R                  S-
  nU" UR                  5       5      (       d  [        UR                  5       5      nO[         R"                  " UR$                  5      R&                  n	U" U	R(                  U	R                   R*                  5      n
[-        U
R.                  U5      (       a  [        R                  S-
  nOU
R.                  nU" X8S9  X2l        UR1                  X2R3                  5       4SU4[4        R6                  S9$ )Nr   r   IntInfinitybound_sympyr@   r   )r:  )r   r   r   nonzero_memor   r   r   torch.utils._sympy.numbersrE  torch.utils._sympy.value_rangesrG  r   r   r   r   r   mathprodr   nodeexprvar_to_rangerA   uppernew_empty_stridedr   r3   int64)ra   r;   r>   r   r   r   rE  rG  r   	prod_node
prod_ranges              r"   r   r     sL    	#""AA *$//(	
 	;?		,,1A C%%<<>C[[1_F#CIIK00SYY[) IIcii055	(NNI$7$7$D$D
 j..<< [[1_F'--F%c6  #wwy!1As85;; OOr$   c                    [        U5      S:X  d   eU(       d  U R                  b  U R                  R                  (       d  [        U5      eU R                  R	                  5       n[
        R                  S-
  nSSKJnJ	n  U" UR                  5       5      (       d  [        UR                  5       5      nU" USUS9  U/UR                  SS  Q7nUR                  U5      $ )Nr@   r   r   )minr      )rD   r   r   r   r   r   r   r   r   r   r   r   r   r   )	ra   r;   paddedoffsetstotal_Lr   r   r   output_shapes	            r"   _padded_dense_to_jagged_forwardr\    s     w<1'&&EE .d33%%<<>q	

  //(F!'qf=/fll12./LL))r$   c                    U R                   b  U R                   R                  (       d  [        U5      eU R                   R                  5       n[        R
                  S-
  nSSKJnJn  SSK	J
n  SSKJn	  U" UR                  5       5      (       d  [        UR                  5       5      n
O[        R                   " UR"                  5      R$                  nU	" UR&                  UR                   R(                  5      n[+        UR,                  U5      (       a  [        R
                  S-
  n
OUR,                  n
U
S:  a  U
nU" XES9  UR/                  U45      $ )Nr@   r   r   rD  rF  rW  r   )r   r   r   r   r   r   r   r   r   rI  rE  rJ  rG  r   r   rK  rL  r   rM  rN  rO  rA   rP  r   )ra   r;   r   maskr   r   r   r   rE  rG  num_elementsrS  rT  s                r"   masked_selectr`    s    	#""AA *$//



4
4
6C [[1_F 7;
 DJJL))4::<(IIdjj)..	 1D1D1Q1QR
j&&44;;?L%++Lac.>>3&!!r$   )r)   layoutc                   Ub/  UR                  5       U:X  d   SU SUR                  5        35       eUb/  UR                  5       U:X  d   SU SUR                  5        35       eUb'  UR                  U:X  d   SU SUR                   35       eUb+  UR                  U:X  d   SU SUR                  5        35       eUb(  UR                  U:X  d   SU SUR                   35       eg g )Nz!Tensor sizes mismatch! Expected: z, Got: z#Tensor strides mismatch! Expected: z!Tensor dtype mismatch! Expected: z"Tensor layout mismatch! Expected: z"Tensor device mismatch! Expected: )r   r   r:  ra  r)   )ra   r;   tsizesr  r:  r)   ra  s           r"   assert_tensor_metadatare    s    vvx5  	
/wgaffhZH	
  xxzW$ 	
1''!((*N	
$ ww% 	
/wgaggYG	
 xx6! 	
0
|L	
! xx6! 	
0zJ	
! r$   c                 P    [         R                  R                  U R                  ;   $ r-   )r3   r   data_dependent_outputr   r   s    r"   r   r   :  s    uyy>>$))Kr$   c                     [        U5      er-   )r   r`   s       r"   data_depri  :  s    
&t
,,r$   c                     U HA  nUc  M  UR                   [        R                  [        R                  4;   d  M8  [	        U 5      e   g r-   )r:  r3   booluint8r   )r;   r   indicesr   s       r"   check_no_bool_index_tensorsrn  A  s5    U[[0I!I-d33 r$   c                    [        XUSS9u  pEUS   R                  n[        U 5         U" U0 UD6n[        U5      (       d  UR	                  UR
                  5      nS S S 5        WUS   L a  U$ [        XU5      $ ! , (       d  f       N$= fNTrf   ri   )r   r)   r   r*   r   r   r   )ra   r;   rb   rc   ro   rp   rr   r&  s           r"   )run_and_return_new_tensor_of_input_devicerq  G  s    &TMA G$++J	%i	0D#F#)*55--		*C 
1
 j!!
ij11 
1	0s   4A::
Br   primsprimc                 (    U R                   [        ;   $ r-   )	namespace_is_builtin_namespacesrX   s    r"   
is_builtinrw  Z  s    <<111r$   c                 ^    [         R                  R                  U R                  5       S5      $ )NMeta)r3   r4   ._dispatch_has_computed_kernel_for_dispatch_keynamer   s    r"   r   r   ^  s     88BB499;PVWWr$   c                     [        U 5      =(       a1    U R                  5       R                  S5      =(       a    [        U 5      $ )Nzaten::_foreach_)rw  r{  
startswithr   r   s    r"   r   r   d  s4    D! 		01r$   c           	         [         R                  " X#R                  5       5       Vs/ s HX  n[        U[        [
        45      (       d  M   [        U5      (       d  M2  [        US   [        R                  5      (       d  MV  UPMZ     nn [        U 5         U" U0 UD6nS S S 5        W(       d  U$ U(       d   e/ n[        U5       H[  u  p[        R                  " X V
s/ s H  oU   PM	     sn
5      u  pUR                  U R                   R#                  X	U5      5        M]     U$ s  snf ! , (       d  f       N= f! [         a	    [        s $ f = fs  sn
f Nr   )r   r   r   rA   rL   rM   rD   r3   r   r   r=  r   	enumerater   _find_common_devicerP   rz   r{   )ra   r;   rb   rc   r>   tensor_listsout_metaout_fakeimeta_ttlr)   ro   s                r"    foreach_run_and_map_input_devicer  c  s)    ??499CcD%=) 	 H 	 s1vu||,	 	9  ))4T,V,H 5
 <Hx(	224,9W,BQ%,9WX	++@@6	
 ) O9 54  :XsM   D%
D% D% D%	D; 	D*D; E*
D84D; 8D; ;EEc                     SSK Jn  [        XUSS9u  pVUS   R                  nU    U" U0 UD6nUR	                  U5      sS S S 5        $ ! , (       d  f       g = f)Nr   )meta_index_TensorTrf   ri   )torch._meta_registrationsr  r   r)   to)	ra   r;   rb   rc   r  ro   rp   rr   r&  s	            r"   index_tensorr    sR    ;&TMA G$++J	00vvj! 
s   A
Ac                 X    SSK Jn  U    U" U0 UD6sS S S 5        $ ! , (       d  f       g = f)Nr   )meta_embedding_bag)r  r  )ra   r;   rb   rc   r  s        r"   embedding_bagr    s    <	!4262 
s   
)c                     [        XX#5      $ r-   )rq  r`   s       r"   multi_device_op_defaultr    s    
 5YdSSr$   c                     [        U 5         U" U0 UD6  S S S 5        [        XUSS9u  pEUS   $ ! , (       d  f       N = frp  )r   r   )ra   r;   rb   rc   ro   rp   s         r"   multi_device_op_outr    sI     
&i	0df 
1 'TMA g 
1	0s   	/
=c                 `  ^^^ [        TX#SS9u  pEUS   mUS   R                  m[        R                  " TTR                  :H  =(       d)    TR                  S:H  =(       a    TR                  5       S:H  UUU4S j5        [        U TX#5      nT[        R                  R                  L a  US   $ U$ )NTrf   r   ri   r   r@   c                  0   > ST  ST STR                    S3$ )NzMismatching z device between self (z) and values ()r(   )r;   self_devicer   s   r"   r    index_put_impl.<locals>.<lambda>  s$    ,tf$:;-~V\VcVcUddefr$   )
r   r   r3   r  r   r   rq  r   
index_put_r   )	ra   r;   rb   rc   ro   rp   r&  r  r   s	    `     @@r"   index_put_implr    s     '4TMA !FW%11K	LLv)))WfkkQ.>.V6<<>UVCVf
 4ItT
RCt&&&'""
r$   c                     [        S5      e)Nz3torch.compile does not support strided NestedTensor)r   r`   s       r"   nested_tensors_unsupportedr    s    
 '= r$   c                 ,    U[         ;  d
   SU 35       eg )NzNYI: )_device_not_kwarg_opsr`   s       r"   nyir    s      ,,<dVn<,r$   c                   ^ ^ [        XUSS9u  pCUS   R                  mT    US   R                  nUS   R                  S   nSSKJn  U" U5      (       d  S nOUS:X  a+  US   R                  (       d  US   R                  (       d  S nOU[        R                  R                  L a!  [        R                  R                  " S0 UD6n	OA[        R                  R                  US   US   S US   US	   US
   US   US   US   US   S9
n	[        R                  R                  US   US   U	5      nS S S 5        UU 4S jn
[        T 5         U" S0 UD6nU[        R                  R                  L a  U
" UW5      sS S S 5        $ U
" US   W5      U
" US   U5      U
" US   S 5      4sS S S 5        $ ! , (       d  f       N= f! , (       d  f       g = f)NTrf   ri   weightr   r      r   paddingdilation
transposedoutput_paddinggroups
bias_sizes)biasr   r  r  r  r  r  r  c                 L   > U c  U $ Ub  U R                  US9n [        TU T5      $ r)  )r  r   )rc  mem_fmtr)   ra   s     r"   convertconv.<locals>.convert  s2    9H7+A)Q//r$   r@   rW  rU   )r   r   r   r   r   r   	is_mkldnnis_xpur   convolutionr   r3   r4   _select_conv_backend%_conv_determine_backend_memory_formatr   )ra   r;   rb   rc   ro   kbatchr   r  conv_backendr  r&  r)   s   `           @r"   convr    s   "TIA G_((F	8!!w%%a( 	C G!VF7O55fWo>T>TGt''///$xx<<FvF$xx<<7O8$!(+"9-#J/%l3#)*:#;!(+%l3  =   hhDDw!1<G= 
D0 
&i	0nVn4##+++3(	 
1	0 A(A(A% 
1	0S 
R 
1	0s   DF.
.F?"F?.
F<?
Gc                 
   U R                   b  U R                   R                  (       d  [        U5      eU R                   R                  5       nSSKJn  U" U5        [        R                  " XT:  5        UR                  U5      $ r3  )	r   r   r   r   r   r   r3   r  r   )ra   r;   inputsweights	minlengthr   r   s          r"   bincountr  *  sk     	#""AA *$//""99;HOh'	LL&'H%%r$   c                 T   U R                   b  U R                   R                  (       d  [        U5      eU R                   R                  5       nSSKJn  U" U5        U(       d  UR                  SS5      nUR                  SS  nUR                  U5      nUR                  U45      n	X4$ )Nr   r4  r@   )	r   r   r   r   r   r   	transposer   r   )
ra   r;   r  lengthsbatch_firstnew_batch_sizer   res_sizepacked_data
batch_sizes
             r"   _pack_padded_sequencer  <  s     	#""AA *$//((??ANOn-!!!Q'||ABH""8,K!!>"34J$$r$   c                    ^  U 4S jnU$ )Nc                    > U [         T'   U $ r-   )FAST_OP_IMPLEMENTATIONS)rQ   r;   s    r"   rS   -register_fast_op_impl.<locals>.impl_decorator[  s    (/%r$   rU   )r;   rS   s   ` r"   register_fast_op_implr  Z  s     r$   c                   ^
^^ SSK Jn  [        U 5      n[        U5      n[        X45      nS/U-  n[	        US-
  SS5       H  m
US-
  T
-
  nUS-
  U-
  nUS-
  U-
  n	US:  a  X   OSmU	S:  a  X   OSm[
        R                  " U" TS:H  5      =(       d    U" TS:H  5      =(       d    TT:H  U
UU4S j5        U" TS:H  5      (       a  TOTUT
'   M     [        U5      $ )Nr   r   r@   r   c                     > ST ST ST  S3$ )NzThe size of tensor a (z#) must match the size of tensor b (z) at non-singleton dimension r  rU   )r  sizeAsizeBs   r"   r   infer_size.<locals>.<lambda>~  s%    ,UG 4005w 7**+A/r$   )r   r   rD   r   r   r3   r  rM   )r  br   dimsAdimsBr   expandedSizesoffsetdimAdimBr  r  r  s             @@@r"   r  r  c  s    DFEFEuDC$JM4!8R$Aqy6!qy6!19!19! 	5A:&V.!*DVQV/	
 %35A:$>$>5Ea1 %2 r$   c                    ^ ^ U U4S jnU$ )Nc           
      B  >^ ^^ UUU U4S jn[        S5        TnS nU H@  n[        U[        R                  5      (       a  UR                  OSnUc  Un[        XW5      nMB     Uc   eSSKJnJn	  U Hh  n[        U[        R                  5      (       d  M$  [        UR                  5      [        U5      :X  d  MH  U" U	" UR                  U5      5      (       d  Mh    O
   U" S5      $ [        R                  " S5      n
U
nS nSnU Hu  n[        U[        R                  5      (       d  S	nM&  X:X  a&  UR                  R                  S:X  d  UR                  nUc  UR                  nMb  XR                  :w  d  Ms  S	nMw     U(       a  [        US
T06u  pSnSnU H~  n[        U[        R                  5      (       d  M$  X:w  a;  UR                  5       S:X  a'  UR                  U
:X  a  UU:  a
  U" S5      s  $ US-  nMd  UR                  U:w  d  Mv  U" S5      s  $    S	nS	n[        U5      (       al  U Hf  n[        U[        R                  5      (       d  M$  U=(       a    [!        U[        R"                  S9nU=(       a    [!        U[        R$                  S9nMh     U(       a9  [        S5        ['        T [        R(                  " UUS[        R"                  S9US9$ U(       a9  [        S5        ['        T [        R(                  " UUS[        R$                  S9US9$ U" S5      $ )Nc                 j   > [        SU  35        T   T" T0 TD6sS S S 5        $ ! , (       d  f       g = f)Nzslow r   )r!  rb   rc   modeslow_refs    r"   slow=make_fast_binary_impl.<locals>.fast_binary_impl.<locals>.slow  s+    %u&00 s   $
2zattempt fastrU   r   r
  z#both tensors nontrivially broadcastrj   FTtype_promotion_kindr@   errorr*  zfast is_contiguousrk   )r:  r)   r+  r(   zfast channels_lastzno contiguity match)r   rA   r3   r   r   r  r   r   r   rD   r)   r'   r:  r   r   r*   r   r-  channels_lastr   empty)r  rb   rc   r  operandsfinal_shaperR   r   r   r   rj   common_devicecommon_dtypehas_different_input_dtypesro   current_cpu_scalars_on_non_cpumax_cpu_scalars_on_non_cpudefinitely_contiguousdefinitely_channels_lastr  r  s   ```                r"   fast_binary_impl/make_fast_binary_impl.<locals>.fast_binary_impl  s   	1 	1
 	N#  B *2u|| < <BHH"E"# %[8K  &&&P B2u||,,MS%55"6"((K#@AA  =>> ll5!%*"Bb%,,//-1*#BIINNe,C "		#!xx)-1*  & 1/BOA *+&%&"Bb%,,//#A"))s:J15OO=(.!3.m+G}$  !%#' 
 &m44!"ell33) @%*A*A & - @%*=*= )  !,-&!"'"9"9	 %	 	 $,-&!"'"5"5	 %	 	 )**r$   rU   )r  r  r  s   `` r"   make_fast_binary_implr    s    G+R r$   c                 v   [        5          [        U 5         [        R                  R                  R
                  R                  U5      nS S S 5        S S S 5        U(       a   [        U WUR                  UR                  S9$ [        U WUR                  5      $ ! , (       d  f       NT= f! , (       d  f       N]= f)N)real_tensor)
r   r   r3   r@  r   detachr   r   r)   r  )ra   r   include_realr&  s       r"   fast_detachr    sw    		!=i!Hiinn##++A. "I	)S!((NNiahh//	 "I!H		s"   B*4BB*
B'	#B**
B8c                  Z   SS K n [        U R                  R                  R                  R
                  5      " [        U R                  R                  5      5        [        U R                  R                  R                  R
                  5      " [        U R                  R                  5      5        [        U R                  R                  R                  R
                  5      " [        U R                  R                  5      5        [        U R                  R                  R                  R
                  5      " [        U R                  R                  [        R                  S95        [        U R                  R                  R                  R                  5      " [        5        [         $ )Nr   )r  )torch._refsr  r@  r   addr   r  r  subr   divr	   INT_TO_FLOATr  r   r  r  )r3   s    r"   r   r     s   %))..,,334ekkoo. %))..,,334ekkoo. %))..,,334ekkoo. %))..,,334KKOO ? L L	
 %))..//778E""r$   )TFF)FFN)F)Tr-   )NNN)returnNr  )	functoolsr   rK  r   r   r   typingr   r   r3   torch._custom_optorch._loggingtorch._prims_common_prims_commonr  torch._dispatch.pythonr   
torch._opsr   r   r	   r
   r   r   r   r   r   r   torch._subclasses.fake_tensorr   r   r   r   r   r   torch.fx.operator_schemasr   torch.utils._statsr   _pytreer   __all__rK   r   _opsr@  r   r#   r*   
empty_liker   r&  	full_like	ones_like	rand_like
randn_likerandint_liker   
Tensor_out	low_dtypelow_dtype_out
zeros_liker   rQ  new_full	new_zerosnew_onesrm   _resize_output__nested_tensor_from_tensor_list
pin_memoryr  r)   prim_Device	is_pinned_pin_memory_resize_outputr  _list_to_tensorrl   r.   cacherG   rk  rN   rY   r^   __contains__rd   rt   rx   r}   r   r   r   r   r   r   _unique2r   selectr   r   r   r   ro   r   r  r  view_unsafe_viewr%  	view_copyr1  r   r7  item_local_scalar_denser>  rB  r   r\  r`  _assert_tensor_metadatare  ri  rn  rq  rv  rw  r   r  r   r  _embedding_bagr  _unsafe_index_putcopycopy_slice_scatterr  r  	index_putr  r  _nested_view_from_buffer_nested_view_from_buffer_copyr  r  r  convolution_backwardr  r  r  r  r  r  DEFAULTr  r  r   r   s   0r"   <module>r1     sg
       
  "    # 7 !
 
 
  9 * 
		    zz~~&  (OOOONNNNNNNNNNNNOOOO  ##OOOONNNN""MMMMNNNNMMMM9 @ $  ((00((,,OOGGNNGGNN  #'"6"6!8    U8ZL$4F+G+S%T &) )667K 8K ().-./0 0 *08 $..(()	 *	 $''%%&$''..! " ' 
 %&- '-0 $//))*% +%
 $??GGH: I: T
,
, I IX $--''(KPV )V $++//"&E #&ER $//))*PU + $))112
 3
FR	BJ $))##$$##++,M - %M $..(()48  * $((//0* 1*$ %))..%%--.%))..44<<= > /* %))....6679 89 %))..((0010P 20Pf %))..@@HHI* J*> %))....667&" 8&"R %))..88@@A
 

 
 

 B
D KL- M-42  %VWf= 2X
 

F $**##$" %"  $%%--.3 /3 $((001$))##$$**$$%$$$,,-T . & % 2T
 $))-- $$$(() * ! $..(()$//))* + *& $66>>?$66::;$//778$44<<= > 9 < @  '&A NN""GGNNGG00880044

 	
&== 4##++T-F-F-N-NOP9 Q9x %))..))112& 3&" %))..66>>?% @%0  

   H #B"I"ILb0 # #K
s   4A3m+m