Ë
    S²j| ã            
       ó2  — U d dl Z d dlZd dlZd dl­ d dlZd dlmc mZ d dl	m
Z
 d dlmZ ddlmZ g Zee   ed<   i Zeeef   ed<   d	„ Zdµd
„Z	 	 	 d¶d„Zd·d„Zdeddfd„Zdededededdf
d„Zd„ Zd„ Zd„ Z e j>                  ee«      Z de!dz  fd„Z"d„ Z#d„ Z$d„ Z%d„ Z& e ejN                  jP                  jR                  jT                  ejN                  jP                  jV                  jT                  ejN                  jP                  jX                  jT                  ejN                  jP                  jZ                  jT                  ejN                  jP                  j\                  jT                  ejN                  jP                  j^                  jT                  ejN                  jP                  j`                  jT                  gd«      d„ «       Z1 e ejN                  jd                  jf                  jT                  d«      d„ «       Z4 e ejN                  jP                  jj                  jT                  gd«      d¸d „«       Z6 e ejN                  jP                  jn                  jT                  d«      d!„ «       Z8  e ejN                  jP                  jn                  jr                  d"«      e8«        e ejN                  jP                  jt                  jT                  d"«      d#„ «       Z; e ejN                  jP                  jx                  jT                  d$«      d%„ «       Z= e ejN                  jP                  j|                  jT                  d&«      d'„ «       Z? e ejN                  jP                  j€                  jT                  d(«      d)„ «       ZA e ejN                  jP                  j„                  j†                  d*«      d+„ «       ZD e ejN                  jP                  jŠ                  jT                  d«      d,„ «       ZF e ejN                  jP                  jŽ                  jT                  d-«      d.„ «       ZH  e ejN                  jP                  j’                  jT                  d«      e$«        e ejN                  jP                  j”                  jT                  ejN                  jP                  j–                  jT                  ejN                  jP                  j˜                  jT                  ejN                  jP                  jš                  jT                  ejN                  jP                  jœ                  jT                  gd«      d/„ «       ZO  e ejN                  jP                  j                   jT                  d0«      eO«         e ejN                  jP                  j¢                  jT                  d1«      eO«         e ejN                  jP                  j¢                  j¤                  d2«      eO«        e ejN                  jP                  j¦                  jT                  d«      d3„ «       ZT e ejN                  jP                  jª                  jT                  d4«      d5„ «       ZV e ejN                  jP                  j®                  jT                  d4«      d6„ «       ZX e ejN                  jP                  j²                  jT                  d7«      d8„ «       ZZ e ejN                  jP                  j¶                  jT                  d9«      d:„ «       Z\ e ejN                  jP                  jº                  jT                  d;«      d<„ «       Z^ e ejN                  jP                  j¾                  jÀ                  d=«      d>„ «       Za e ejN                  jP                  j¾                  jT                  d?«      d@„ «       Zb e ejN                  jP                  jÆ                  jÈ                  dA«      dB„ «       Ze e ejN                  jP                  jÌ                  jT                  dC«      dD„ «       Zg e ejN                  jP                  jÐ                  jT                  dE«      dF„ «       Zh e ejN                  jP                  jÒ                  jT                  dG«      dH„ «       Zj e ejN                  jP                  jÖ                  jØ                  dI«      dJ„ «       Zm e ejN                  jP                  jÜ                  jX                  dK«      dL„ «       Zo e ejN                  jP                  jà                  jT                  dM«      dN„ «       Zq e ejN                  jP                  jä                  jT                  dO«      dP„ «       Zs e ejN                  jP                  jè                  jT                  dQ«      dR„ «       Zu e ejN                  jP                  jì                  jT                  dS«      dT„ «       Zw e ejN                  jP                  jð                  jT                  dU«      dV„ «       Zy e ejN                  jP                  jô                  jT                  dW«      dX„ «       Z{ e ejN                  jP                  jø                  jT                  dY«      dZ„ «       Z| e ejN                  jP                  jú                  jT                  d[«      d\„ «       Z} e ejN                  jP                  jü                  jþ                  d]«      d^„ «       Z€ e ejN                  jP                  �j                  jT                  d_«      d`„ «       Z‚ e ejN                  jP                  �j                  jT                  d_«      da„ «       Z„ e ejN                  jP                  �j
                  jT                  db«      dc„ «       Z†dd„ Z‡ e ejN                  jP                  �j                  jT                  d?«      de„ «       Z‰ e ejN                  jP                  �j                  �j                  df«      dg„ «       Z‹ e ejN                  jP                  �j                  jØ                  dh«      di„ «       Z� e ejN                  jP                  �j                  jT                  dj«      dk„ «       Z� e ejN                  jP                  �j                   jT                  ejN                  jP                  �j"                  jT                  gdY«      dl„ «       Z’ e ejN                  jP                  �j&                  jT                  dm«      dn„ «       Z” e ejN                  jP                  �j*                  jT                  do«      dp„ «       Z– e ejN                  jP                  �j.                  jØ                  dq«      dr„ «       Z˜ e ejN                  jP                  �j2                  jÈ                  ds«      dt„ «       Zš e ejN                  jP                  �j6                  jT                  du«       e ejN                  jP                  �j8                  jT                  du«      dv„ «       «       Zœ e ejN                  jP                  �j:                  jT                  dw«      dx„ «       Zž e ejN                  jP                  �j>                  jX                  df«      dy„ «       Z  e ejN                  jP                  �j>                  jT                  d?«      dz„ «       Z¡ e ejN                  jP                  �jD                  �jF                  d{«      d|„ «       Z¤ e ejN                  jP                  �jD                  jX                  d}«      d~„ «       Z¥ e ejN                  jP                  �jL                  �jF                  d{«      d„ «       Z§ e ejN                  jP                  �jL                  jX                  d}«      d€„ «       Z¨ e ejN                  jP                  �jL                  jT                  ejN                  jP                  �jD                  jT                  ejN                  jP                  �jR                  jT                  ejN                  jP                  �jT                  jT                  gd«      d�„ «       Z« e ejN                  jP                  �jX                  jT                  ejN                  jP                  �jZ                  jT                  gd«      d‚„ «       Z® e ejN                  jP                  �jT                  jX                  d}«      dƒ„ «       Z¯ e ejN                  jP                  �jR                  jX                  d}«      d„„ «       Z° e ejN                  jP                  �jb                  jT                  d{«      d…„ «       Z² e ejN                  jP                  �jf                  jT                  d{«      d†„ «       Z´ e ejN                  jP                  �jj                  jT                  d{«      d‡„ «       Z¶ e ejN                  jP                  �jn                  jT                  d{«      dˆ„ «       Z¸ e ejN                  jP                  �jr                  jT                  d‰«      dŠ„ «       Zº e ejN                  jP                  �jv                  jT                  dO«      d‹„ «       Z¼ e ejN                  jP                  �jz                  jT                  dŒ«      d�„ «       Z¾ e ejN                  jP                  �j~                  jT                  dŽ«      d�„ «       ZÀ e ejN                  jP                  �j‚                  jT                  ejN                  jP                  �j„                  jT                  gd«      d�„ «       ZÃ e ejN                  jP                  �jL                  jT                  d«      d‘„ «       ZÄ e ejN                  jP                  �jŠ                  jT                  d’«      d“„ «       ZÆ e ejN                  jP                  �jŽ                  jT                  d”«      d•„ «       ZÈ e ejN                  jP                  �j’                  jT                  d–«      d—„ «       ZÊ e ejN                  jP                  �j–                  jT                  d«      d˜„ «       ZË e ejN                  jP                  �j˜                  jT                  d«      d™„ «       ZÌ e ejN                  jP                  �jš                  jT                  d«      dš„ «       ZÍ e ejN                  jP                  �jœ                  jT                  d«      d›„ «       ZÎ e ejN                  jP                  �jž                  jT                  d«      dœ„ «       ZÏ e ejN                  jP                  �j                   jT                  d�«      dž„ «       ZÑ e ejN                  jP                  �j¤                  jT                  dŸ«      d „ «       ZÓ e ejN                  jP                  �j¨                  jT                  d¡«      d¸d¢„«       ZÕ e ejN                  jP                  �j¬                  jT                  ejN                  jP                  �j®                  jT                  ejN                  jP                  �j°                  jT                  gd£«      d¤„ «       ZÙ e ejN                  jP                  �j´                  jT                  ejN                  jP                  �j¶                  jT                  ejN                  jP                  �j¸                  jT                  ejN                  jP                  �jº                  jT                  ejN                  jP                  �j¼                  jT                  ejN                  jP                  �j¾                  jT                  gd¥«      d¦„ «       Zà e ejN                  jP                  �jÂ                  �jÄ                  d§«      d¨„ «       Zã e ejN                  jP                  �jÈ                  �jÄ                  d§«      d©„ «       Zå e ejN                  jP                  �jÌ                  jÈ                  d«      dª„ «       Zç e ejN                  jP                  �jÐ                  jT                  d««      d¬„ «       Zé e ejN                  jP                  �jÔ                  jT                  d­«      d®„ «       Zêe�jÖ                  �jÙ                  d¯d°«      5 Z(e(�jÛ                  d±eêd²«       e(�jÛ                  d±eêd³«       e(�jÛ                  d±eêd´«       ddd«       y# 1 sw Y   yxY w)¹é    N)Ú*)Únormalize_function)Ú#jagged_scaled_dot_product_attentioné   ©ÚNestedTensorÚ__all__ÚJAGGED_OPS_TABLEc                 óÖ   — | j                   rC|dk(  rt        j                  | «      j                  S t        j                  | «      j                  S |dk(  rt        d«      S t        d«      S )NÚmaxÚinfú-inf)Úis_floating_pointÚtorchÚfinfor   ÚminÚfloat)ÚdtypeÚpadding_types     úY/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torch/nested/_internal/ops.pyÚ_get_padding_valuer      s\   € Ø×Òà&2°eÒ&;ŒE�K‰K˜Ó×"Ñ"ð	
ÜAFÇÁÈUÓAS×AWÑAWð	
ð  ,¨uÒ4Œu�U‹|ÐG¼%À»-ÐGó    c                 ó&  ‡ ‡— ddl m} t        |t        t        f«      r? t        |«      ˆ ˆfd„|D «       «      } t        |«      t        j                  |«      «      S |r	 |‰ |«      }|dk\  r|‰ k  st        d|› d‰ › �«      ‚|dk(  r‰dz
  S |dz
  S )Nr   ©Úcanonicalize_dimsc              3   ó8   •K  — | ]  }t        ‰|‰«      –— Œ y ­w©N©Ú_outer_to_inner_dim)Ú.0ÚdÚndimÚ
ragged_dims     €€r   ú	<genexpr>z&_outer_to_inner_dim.<locals>.<genexpr>#   s   øè ø€ ÒQÈÔ.¨t°Q¸
×CÑQùó   ƒzdim z out of range for ndim r   )	Útorch._prims_commonr   Ú
isinstanceÚtupleÚlistÚtypeÚdictÚfromkeysÚAssertionError)r"   Údimr#   Úcanonicalizer   Úoutputs   ` `   r   r   r      s™   ù€ Ý5ä�#œœt�}Ô%Ø”�c“ÔQÈSÔQÓQˆàŒt�F‹|œDŸM™M¨&Ó1Ó2Ð2áÙ  cÓ*ˆà�1ŠH˜˜tšÜ˜t C 5Ð(?À¸vÐFÓGÐGð  š(ˆ
�Q‰ðà(+¨a©ðr   c                 ó°   — ddl m}  || |«      }||k(  r|st        |› d�«      ‚|dk(  r|st        |› d�«      ‚|rt        | ||«      n|}	|r	|dk(  }
|	|
fS |	S )Nr   r   z0(): not supported for NestedTensor on ragged dimz+(): not supported for NestedTensor on dim=0)r&   r   ÚRuntimeErrorr   )r"   r.   r#   Úop_nameÚconvert_to_inner_dimÚallow_ragged_dimÚallow_batch_dimr   ÚwrappedÚretÚoperating_on_batchs              r   Ú_wrap_jagged_dimr:   5   sŠ   € õ 6á  cÓ*€GØ�*ÒÑ%5Ü˜g˜YÐ&VÐWÓXÐXØ	�AŠ™oÜ˜g˜YÐ&QÐRÓSÐSñ  ô 	˜D '¨:Ô6àð ñ
 ð %¨™\ÐØÐ'Ð(Ð(Ø€Jr   c                 ó6  ‡ ‡— ddl m} t        |t        t        f«      st        dt        |«      › �«      ‚|D �cg c]  } |‰ |«      ‘Œ }}d|v }‰|v }t        ˆfd„|D «       «      }	t        t        j                  ˆ ˆfd„|D «       «      «      }
|
|||	fS c c}w )zŽ
    For NestedTensor operators,
    wraps dimensions to non-negative values,
    and returns metadata related to reduction dimension(s).
    r   r   z<_wrap_jagged_dims(): cannot iterate over dimensions of type c              3   ó6   •K  — | ]  }|d k7  xr |‰k7  –— Œ y­w)r   N© )r    r!   Ú
ragged_idxs     €r   r$   z$_wrap_jagged_dims.<locals>.<genexpr>e   s!   øè ø€ ÒP¸a˜q A™vÒ9¨!¨z©/Ó9ÑPùs   ƒc              3   ó8   •K  — | ]  }t        ‰|‰«      –— Œ y ­wr   r   )r    r!   r"   r>   s     €€r   r$   z$_wrap_jagged_dims.<locals>.<genexpr>i   s   øè ø€ ÒUÀ1Ô)¨$°°:×>ÑUùr%   )
r&   r   r'   r(   r)   r-   r*   Úanyr+   r,   )r"   Údimsr3   r>   r   r!   Úwrapped_dimsÚoperate_on_batchÚoperate_on_raggedÚoperate_on_non_batchÚouter_to_inner_dims   `  `       r   Ú_wrap_jagged_dimsrG   R   s·   ù€ õ 6ä�dœU¤D˜MÔ*ÜØJÌ4ÐPTË:È,ÐWó
ð 	
ð
 -1öØ'(Ñ˜$ Õ"ð€Lð ð ˜LÐ(ÐØ" lÐ2ÐÜÓPÀ<ÔPÓPÐô Ü�‰ÔUÈÔUÓUóÐð Ð/Ð1BÐDXÐXÐXùòs   ºBÚ
schema_strÚreturnc                 ó  ‡— | j                  d«      }|D �cg c]  }|j                  d«      ‘Œ c}j                  d«      }t        |«      |z
  }|d   dk(  r|d d }n\t        |«      |k\  rt        |«      t        |«      k  s7t	        d|j
                  › d| › d|› d	t        |«      › d
t        |«      › d�«      ‚d„ d„ d„ d„ dœ}t        |«      D ]·  \  }	}
|
j                  d«      \  }}|j                  d«      }|r|d d n|}||vrt        d|› �«      ‚|	t        |«      k\  r!|st	        d|j
                  › d| › d|› �«      ‚Œu||   Š|fˆfd„	} |||	   «      rŒ�ddddddœ}t	        d|j
                  › d| › d|› d||   › �«      ‚ y c c}w )Nú, ú?Téÿÿÿÿú...úNestedTensor ú(z): expected at least z arguments and at most z arguments, but got: z
 argumentsc                 ó\   — t        | t        j                  «      xr t        | t        «       S r   )r'   r   ÚTensorr   ©Úxs    r   ú<lambda>zcheck_schema.<locals>.<lambda>€   s    € ”z !¤U§\¡\Ó2ÒV¼:ÀaÌÓ;VÐ7V€ r   c                 ód   — t        | t        «      xr | j                  d u xr | j                  dk(  S ©Nr   )r'   r   Ú_lengthsÚ_ragged_idxrS   s    r   rU   zcheck_schema.<locals>.<lambda>�   s2   € œ
 1¤lÓ3ò Ø�J‰J˜$Ðòà�M‰M˜QÑð r   c                 ó"   — t        | t        «      S r   ©r'   r   rS   s    r   rU   zcheck_schema.<locals>.<lambda>„   s   € œJØŒ|ó
€ r   c                  ó   — y)NTr=   rS   s    r   rU   zcheck_schema.<locals>.<lambda>‡   ó   � r   )ÚtÚjtÚjt_allr@   z: zUnknown arg type: z) missing required argument: c                 ó4   •— |r| d u xs  ‰| «      S  ‰| «      S r   r=   )rT   Úis_optionalÚ	_check_fns     €r   Úcheck_fnzcheck_schema.<locals>.check_fnš   s#   ø€ ÙØ˜D�yÒ0¡I¨a£LÐ0á  “|Ð#r   Útensorzoptional tensorz%contiguous jagged layout NestedTensorzjagged layout NestedTensorz
<any type>)r^   zt?r_   r`   r@   z): expected z	 to be a )ÚsplitÚendswithÚcountÚlenÚ
ValueErrorÚ__name__Ú	enumerater-   )rH   ÚfuncÚargsÚkwargsÚnamed_arg_typesrT   Únum_optional_argsÚmin_argsÚarg_type_check_fnsÚiÚnamed_arg_typeÚnameÚarg_typerb   Únormalized_arg_typerd   Útype_to_descrc   s                    @r   Úcheck_schemarz   o   s
  ø€ Ø ×&Ñ& tÓ,€OØ2AÖB¨Q˜Ÿ™ C�ÒB×HÑHÈÓNÐÜ�?Ó#Ð&7Ñ7€Hð �rÑ˜eÒ#Ø)¨#¨2Ð.‰ä�D“	˜XÒ%¬#¨d«)´s¸?Ó7KÒ*KÜØ §¡˜¨a°
¨|Ð;PÐQYÐPZð [)Ü),¨_Ó)=Ð(>Ð>SÜ�t“9�+˜Zð)óð ñ Wññ
ñ ñ	Ðô ' Ó7ò #Ñˆˆ>Ø'×-Ñ-¨dÓ3‰ˆˆhØ×'Ñ'¨Ó,ˆÙ/:˜h s¨™mÀÐØÐ&8Ñ8Ü Ð#5Ð6IÐ5JÐ!KÓLÐLà”�D“	Š>ÙÜ Ø# D§M¡M ?°!°J°<ð @2Ø26°ð9óð ð à&Ð':Ñ;ˆ	à$/õ 	$ñ ˜˜Q™Õ àØ'Ø=Ø6Ø#ñˆLô Ø §¡˜¨a°
¨|¸<ÈÀvÈYØ Ñ)Ð*ð,óð ñA#ùò1 Cs   —F
ÚaÚa_nameÚbÚb_namec           	      ó¨   — |j                   |j                     |j                   |j                     k7  rt        d| j                  › d|› d|› d�«      ‚y )NrO   z: expected ú and z' to have the same exact offsets tensor.)Ú_sizerY   r2   rk   )rm   r{   r|   r}   r~   s        r   Úcheck_ragged_dim_samer‚   ¯   sZ   € ð 	‡w�wˆq�}‰}Ñ §¡¨¯©Ñ!7Ò7ÜØ˜DŸM™M˜?¨+°f°X¸UÀ6À(ð K)ð )ó
ð 	
ð 8r   c                 ó²   — | j                   dz   }| j                  d | }|d | }t        |«      t        |«      k(  xr t        d„ t	        ||«      D «       «      S )Nr   c              3   ó:   K  — | ]  \  }}||k(  xs |d k(  –— Œ y­w)rM   Nr=   )r    ÚnsÚss      r   r$   z%raggedness_matches.<locals>.<genexpr>Á   s$   è ø€ ÒH¡5 2 qˆB�!‰GÒ�q˜B‘wÓÑHùs   ‚)rY   r�   ri   ÚallÚzip)ÚntÚsizeÚendÚ	nt_raggedÚsize_raggeds        r   Úraggedness_matchesrŽ   ¼   sZ   € Ø
�.‰.˜1Ñ
€CØ—‘˜˜#�€IØ�t˜�*€KÜˆy‹>œS Ó-Ñ-ò ÜÑH¬C°	¸;Ó,GÔHÓHðr   c                 ó¾   — | j                  «       dkD  rI| j                  d   dk(  r7| j                  d«      } | j                  «       dkD  r| j                  d   dk(  rŒ7| S ©Nr   r   )r.   ÚshapeÚsqueeze)r^   s    r   Úsqueeze_leading_onesr“   Å   sN   € ð& �%‰%‹'�AŠ+˜!Ÿ'™' !™*¨š/Ø�I‰I�a‹Lˆð �%‰%‹'�AŠ+˜!Ÿ'™' !™*¨›/à€Hr   c                 óf   ‡ ‡‡— t        ‰t        «      s‰gŠt        ‰ t        «      s‰ gŠ ˆˆˆ fd„}|S )Nc                 óH   •‡ — ‰D ]  }ˆ ˆfd„}‰D ]  } ||«      ||<   Œ Œ ‰ S )Nc                 ó   •‡ — ˆ ˆˆfd„}|S )Nc                  ó<   •— t        ‰‰g| ¢­i |¤Ž  ‰‰g| ¢­i |¤ŽS r   )rz   )rn   ro   Úaten_oprm   rH   s     €€€r   Úinnerz@register_func.<locals>.wrapper.<locals>.get_inner.<locals>.innerç   s,   ø€ Ü  ¨TÐC°DÒC¸FÒCÙ Ð9¨$Ò9°&Ñ9Ð9r   r=   )r˜   r™   rm   rH   s   ` €€r   Ú	get_innerz1register_func.<locals>.wrapper.<locals>.get_inneræ   s   ù€ ö:ð �r   r=   )rm   r˜   rš   ÚtableÚaten_opsrH   Útabless   `   €€€r   Úwrapperzregister_func.<locals>.wrapperã   s=   ù€ Øò 
	4ˆGõð  ò 4�Ù!*¨7Ó!3��g’ñ4ð
	4ð ˆr   )r'   r)   )r�   rœ   rH   rž   s   ``` r   Úregister_funcrŸ   Ý   s1   ú€ Ü�h¤Ô%Ø�:ˆÜ�fœdÔ#Ø�ˆöð €Nr   c                 ó  — t         j                  | d «      }|�|S t        j                  j                  | j
                  v �rAddlm} |D ]%  } ||«      sŒt        d| j                  › d|› �«      ‚ t        d„ |D «       «      }|dk(  rËg }| j                  j                  D ]d  }t        |j                  t        j                  «      r |j!                  |j"                  › d�«        n |j!                  |j"                  › d�«       Œf |j!                  d	«       d
j%                  |«      }t'        || g|¢­i |¤Ž t)        j*                  t,        | «      S |dk(  r*t'        d| g|¢­i |¤Ž t)        j*                  t.        | «      S y )Nr   ©Úis_nested_intrO   z: invalid argument c              3   óP   K  — | ]  }t        |t        j                  «      –— Œ  y ­wr   )r'   r   rR   )r    rT   s     r   r$   z lookup_jagged.<locals>.<genexpr>
  s   è ø€ ÒH¸aœj¨¬E¯L©L×9ÑHùs   ‚$&r   z: jt_allz: anyrN   rK   é   zlhs: any, rhs: any, ...)r
   Úgetr   ÚTagÚ	pointwiseÚtagsÚ%torch.fx.experimental.symbolic_shapesr¢   r2   rk   ÚsumÚ_schemaÚ	argumentsr'   r*   Ú
TensorTypeÚappendrv   Újoinrz   Ú	functoolsÚpartialÚjagged_unary_pointwiseÚjagged_binary_pointwise)	rm   rn   ro   Údispatch_funcr¢   ÚargÚnum_tensor_argsÚschema_partsÚcheck_schema_strs	            r   Úlookup_jaggedr¹   ÷   su  € Ü$×(Ñ(¨¨tÓ4€MØÐ ØÐô ‡y�y×Ñ˜dŸi™iÒ'ÝGð
 ò 	ˆCÙ˜SÕ!Ü"Ø# D§M¡M ?Ð2EÀcÀUÐKóð ð	ô ÑHÀ4ÔHÓHˆØ˜aÒð ˆLØ—|‘|×-Ñ-ò <�Ü˜cŸh™h¬×(8Ñ(8Ô9Ø ×'Ñ'¨3¯8©8¨*°HÐ(=Ô>Ùà ×'Ñ'¨3¯8©8¨*°EÐ(:Õ;ð<ð ×Ñ Ô&Ø#Ÿy™y¨Ó6ÐÜÐ)¨4ÐA°$ÒA¸&ÒAÜ×$Ñ$Ô%;¸TÓBÐBØ Ò!ÜÐ2°DÐJ¸4ÒJÀ6ÒJÜ×$Ñ$Ô%<¸dÓCÐCàr   c                 ót   — | j                  «       | j                  «       | j                  | j                  dœ}|S )N©ÚoffsetsÚlengthsÚ_metadata_cacherY   r»   )rµ   ro   s     r   Úextract_kwargsr¿      s2   € à—;‘;“=Ø—;‘;“=Ø×.Ñ.Ø—‘ñ	€Fð €Mr   c                 óp   ‡— t        d„ |D «       «      Št         | ˆfd„|D «       i |¤Žfi t        ‰«      ¤ŽS )Nc              3   óB   K  — | ]  }t        |t        «      sŒ|–— Œ y ­wr   r[   ©r    rµ   s     r   r$   z)jagged_unary_pointwise.<locals>.<genexpr>,  s   è ø€ ÒD�s¤j°´lÕ&CŒsÑDùó   ‚˜c              3   óB   •K  — | ]  }|‰u r|j                   n|–— Œ y ­wr   )Ú_values)r    rµ   Únjts     €r   r$   z)jagged_unary_pointwise.<locals>.<genexpr>.  s    øè ø€ ÒB°c˜c S™jˆs�{Š{¨cÓ1ÑBùs   ƒ©Únextr   r¿   )rm   rn   ro   rÆ   s      @r   r²   r²   *  s@   ø€ ä
ÑD˜dÔDÓ
D€CÜÙÓB¸TÔBÐMÀfÑMñä
˜Ó
ñð r   c                 ól  — |d   |d   }}t        |t        «      st        |t        «      st        d«      ‚d}t        |t        «      r—t        |t        «      r‡t        ||j                  «      r7t         | |j
                  |j
                  g|dd  ¢­i |¤Žfi t        |«      ¤ŽS t        |j                  | j                  |j                  |j                  «      «      ‚t        |t        «      }|rt        |«      n
t        |«      }|r||fn||f\  }}	|	j                  «       |j                  «       kD  rt        d«      ‚t        |	«      }
|j                  «       |
j                  «       dz   k\  r;|r|j
                  |
fn|
|j
                  f\  }}t         | ||g|dd  ¢­i |¤Žfi |¤ŽS |j                  «       |j                  «       k(  �r*|j                  d   |j                  d   k7  r:t        |j                  | j                  |j                  |j                  «      «      ‚ddlm} |j                   }|j"                  }|}|j
                  j                  |j$                  dz
     }|€|}|	j'                  t)        |	j                  «      D ��cg c]  \  }}||j$                  k7  r|n|‘Œ c}}«      }	 ||	|j*                  |j$                  |||¬«      }|r||fn||f\  }} | ||g|dd  ¢­i |¤ŽS t        |j                  | j                  |j                  |j                  «      «      ‚c c}}w )	Nr   r   z4At least one of the arguments must be a NestedTensorzHcannot call binary pointwise function {} with inputs of shapes {} and {}r¤   z+NYI: broadcasting NT with T with larger dim©Únested_from_padded©r¼   r>   Úsum_SÚ
min_seqlenÚ
max_seqlen)r'   r   r-   rŽ   r�   rÅ   r¿   r2   Úformatrk   r.   ÚNotImplementedErrorr“   r‘   Únested_tensorrË   Ú_maybe_min_seqlenÚ_maybe_max_seqlenrY   Úexpandrl   Ú_offsets)rm   rn   ro   r{   r}   Úmismatch_error_msgÚa_is_ntÚextracted_kwargsr‰   r^   Ú
t_squeezedÚlhsÚrhsrË   rÎ   rÏ   Úpadded_max_SÚtotal_Lrt   rT   Út_as_nts                        r   r³   r³   3  só  € Ø�‰7�D˜‘G€q€AÜ�qœ,Ô'¬:°a¼Ô+FÜÐSÓTÐTð 	Sð ô �!”\Ô"¤z°!´\Ô'Bô ˜a §¡Ô)ÜÙ�Q—Y‘Y §	¡	Ð?¨D°°¨HÒ?¸Ñ?ñÜCQÐRSÓCTñð ô Ð-×4Ñ4°T·]±]ÀAÇGÁGÈQÏWÉWÓUÓVÐVä˜œLÓ)€GÙ,3”~ aÔ(¼ÈÓ9JÐñ ˆQ�‰F A q 6�E€Bˆà‡u�uƒw�—‘“ÒÜ!Ð"OÓPÐPÜ% aÓ(€JØ	‡v�vƒx�:—>‘>Ó# aÑ'Ò'Ù/6�B—J‘J 
Ñ+¸ZÈÏÉÐ<T‰ˆˆSÜ™D  cÐ?¨D°°¨HÒ?¸Ñ?ÑTÐCSÑTÐTð 	‡u�uƒw�!—%‘%“'Óð �7‰7�1‰:˜Ÿ™ ™Ò#ÜØ"×)Ñ)¨$¯-©-¸¿¹À!Ç'Á'ÓJóð õ 	6ð ×)Ñ)ˆ
Ø×)Ñ)ˆ
Ø!ˆØ—*‘*×"Ñ" 2§>¡>°AÑ#5Ñ6ˆØÐà"ˆLð �H‰HÜDMÈaÏgÉgÓDV×W¹D¸A¸q�!�r—~‘~Ò%‰Q¨<Ñ7ÓWó
ˆñ %ØØ—K‘KØ—~‘~ØØ!Ø!ô
ˆñ %,�B˜‘=°'¸2°‰ˆˆSÙ�C˜Ð2˜t A B˜xÒ2¨6Ñ2Ð2ô Ð)×0Ñ0°·±ÀÇÁÈÏÉÓQÓ
RÐRùó# Xs   ÊL0
c                 ó   ‡— | t         j                  j                  j                  u rt	        |i |¤ŽS | j
                  dk(  r! | |d   j                  g|dd  ¢­i |¤Ž |d   S | j
                  dk(  rîddd„}t        |||d¬«      \  }}|j                  d«      }t        |j                  «       |d	   |j                  dd
¬«      }t        |j                  «       |d   |j                  dd
¬«      }||k(  r|S t        j                  t        j                  |j                   ||dz    «      }	g |j                   d | ¢|	‘|j                   |dz   d  ¢­}
 |j"                  |
Ž S | j
                  dk(  rw|d   Š‰j$                  r‰S ‰j'                  «       \  }}t         j                  j)                  «       5  |D ]"  }t+        ‰|d «      }|€Œ|j-                  «        Œ$ 	 d d d «       ‰S | j
                  dk(  r<|d   Š‰j$                  ry
‰j'                  «       \  }}|sy
t/        ˆfd„|D «       «      S | j
                  dk(  r¢ddd„}t        |||d¬«      \  }}|j                  d«      }|j                  d«      }|j                  «       |j                  z
  dz
  }t1        |«      |kD  rt3        d«      ‚t         j                  j)                  «       5   | |i |¤Žcd d d «       S t5        | «      ‚# 1 sw Y   ‰S xY w# 1 sw Y   t5        | «      ‚xY w)NÚapply_r   r   Úflattenc                  ó   — y r   r=   )ÚinputÚ	start_dimÚend_dims      r   Ú_flatten_sigz+jagged_torch_function.<locals>._flatten_sig�  ó   € Ør   T©rn   ro   Únormalize_to_only_use_kwargsrä   rå   F)r4   ræ   Úshare_memory_Ú	is_sharedc              3   ór   •K  — | ].  }t        ‰|«      d uxr t        ‰|«      j                  «       –— Œ0 y ­wr   )Úgetattrrì   )r    rv   r‰   s     €r   r$   z(jagged_torch_function.<locals>.<genexpr>É  s=   øè ø€ ò 
àô �B˜Ó TÐ)ÒK¬g°b¸$Ó.?×.IÑ.IÓ.KÓKñ
ùs   ƒ47Úrms_normc                  ó   — y r   r=   )rä   Únormalized_shapeÚweightÚepss       r   Ú_rms_norm_sigz,jagged_torch_function.<locals>._rms_norm_sigÑ  rè   r   rñ   zNrms_norm(): Normalization over the ragged dim not supported for nested tensors)r   rM   ©rI   N©NN)r   Ú_CÚ_nnÚscaled_dot_product_attentionr   rk   rÅ   r   Úpopr:   r.   rY   r°   ÚreduceÚoperatorÚmulr‘   ÚreshapeÚis_cudaÚ__tensor_flatten__ÚDisableTorchFunctionSubclassrî   rë   r‡   ri   rj   rÑ   )rm   rn   ro   rç   Ú_Ú
new_kwargsÚinprå   ræ   ÚproductÚ	new_shapeÚnamesrv   Ú	componentrô   rñ   Úmax_normalizabler‰   s                    @r   Újagged_torch_functionr
  ‚  s"  ø€ ð Œu�x‰x�|‰|×8Ñ8Ñ8Ü2°DÐC¸FÑCÐCà‡}�}˜Ò ÙˆT�!‰W�_‰_Ð2˜t A B˜xÒ2¨6Ò2Ø�A‰wˆð ‡}�}˜	Ò!ô	ô +Ø˜t¨FÐQUô
‰ˆˆ:ð �n‰n˜WÓ%ˆô %Ø�G‰G‹IØ�{Ñ#Ø�O‰OØØ!&ô
ˆ	ô #Ø�G‰G‹IØ�yÑ!Ø�O‰OØØ!&ô
ˆð ˜ÒØˆJä×"Ñ"¤8§<¡<°·±¸9ÀwÐQRÁ{Ð1SÓTˆØP�c—i‘i 
 Ð+ÐP¨WÐP°s·y±yÀÈ1ÁÀÐ7OÑPˆ	àˆs�{‰{˜IÐ&Ð&ð ‡}�}˜Ò'Ø�!‰Wˆà�:Š:ØˆIà×(Ñ(Ó*‰ˆˆqÜ�X‰X×2Ñ2Ó4ñ 	.Øò .�Ü# B¨¨dÓ3�	ØÑ(Ø×+Ñ+Õ-ñ.÷	.ð
 ˆ	ð ‡}�}˜Ò#Ø�!‰Wˆà�:Š:Øà×(Ñ(Ó*‰ˆˆqÙØÜó 
àô
ó 
ð 	
ð ‡}�}˜
Ò"ô	ô +Ø ¨VÐRVô
‰ˆˆ:ð �n‰n˜WÓ%ˆØ%Ÿ>™>Ð*<Ó=Ðð Ÿ7™7›9 s§¡Ñ6¸Ñ:ÐÜÐÓ Ð#3Ò3ÜØ`óð ô �X‰X×2Ñ2Ó4ñ 	)Ù˜Ð( Ñ(÷	)ñ 	)ô ˜dÓ
#Ð#÷[	.ð
 ˆ	ú÷J	)ô ˜dÓ
#Ð#ús   Æ3K-Ç	K-ËK:Ë-K7Ë:Lzself: jt_allc                 ó.  — | t         j                  j                  j                  j                  u ry| t         j                  j                  j
                  j                  u r|d   j                  S | t         j                  j                  j                  j                  u rt        |d   j                  «      S | t         j                  j                  j                  j                  t         j                  j                  j                  j                  fv rs|d   j                  �Gt        t        |d   j                  «      t        j                  |d   j                  dd  «      z  «      S |d   j                   j                  «       S | t         j                  j                  j"                  j                  u r|d   j$                  S | t         j                  j                  j&                  j                  u r|d   j                   j)                  «       S y )NFr   r¤   )r   ÚopsÚatenÚis_non_overlapping_and_denseÚdefaultÚsym_sizer�   r.   ri   Ú	sym_numelÚnumelrX   Úintrª   ÚmathÚprodrÅ   Ú
sym_strideÚ_stridesÚsym_storage_offsetÚstorage_offset©rm   rn   ro   s      r   Útensor_attr_supported_getterr  è  ss  € ð Œu�y‰y�~‰~×:Ñ:×BÑBÑBØàŒu�y‰y�~‰~×&Ñ&×.Ñ.Ñ.Ø�A‰w�}‰}ÐàŒu�y‰y�~‰~×!Ñ!×)Ñ)Ñ)Ü�4˜‘7—=‘=Ó!Ð!à”—	‘	—‘×(Ñ(×0Ñ0´%·)±)·.±.×2FÑ2F×2NÑ2NÐOÑOØ�‰7×ÑÐ'Ü”s˜4 ™7×+Ñ+Ó,¬t¯y©y¸¸a¹¿¹ÀqÀrÐ9JÓ/KÑKÓLÐLØ�A‰w�‰×$Ñ$Ó&Ð&àŒu�y‰y�~‰~×(Ñ(×0Ñ0Ñ0Ø�A‰w×ÑÐàŒu�y‰y�~‰~×0Ñ0×8Ñ8Ñ8Ø�A‰w�‰×-Ñ-Ó/Ð/ð 9r   c                 ó"   — t         j                  S r   )r   Újaggedr  s      r   Úprim_layout_defaultr  
  s   € ä�<‰<Ðr   c                 óz   — | t         j                  j                  j                  j                  u rt        d«      ‚y )NznNestedTensor does not support directly calling torch.ops.aten.size; please use `nested_tensor.size()` instead.)r   r  r  rŠ   r  r2   r  s      r   Útensor_attr_unsupported_getterr     s7   € ð
 Œu�y‰y�~‰~×"Ñ"×*Ñ*Ñ*Üð9ó
ð 	
ð +r   c                 ó  — ddl m} t        | ||d¬«      \  }}|j                  d«      }|j	                  «       �y|j                  dt        j                  «      |d<   |d   t        j                  k(  ry ||j                  fi |¤ŽS )Nr   )Úis_contiguous_for_memory_formatTré   rä   FÚmemory_format)
r&   r"  r   rú   r½   r¥   r   Úcontiguous_formatÚpreserve_formatrÅ   )rm   rn   ro   r"  r  r  r  s          r   Úis_contiguous_generalr&    s‡   € åCä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cð ‡{�{ƒ}Ð Øà",§.¡.Øœ×0Ñ0ó#€JˆÑð �/Ñ"¤e×&;Ñ&;Ò;ØÙ*¨3¯;©;ÑE¸*ÑEÐEr   z!self: jt_all, memory_format: any?c                 óZ  — t        | ||d¬«      \  }}|j                  d«      }|j                  «       �y|j                  dt        j
                  «      |d<   |d   t        j                  k(  ryt	        j                  j                  j                  j                  |j                  fi |¤ŽS )NTré   rä   Fr#  )r   rú   r½   r¥   r   r$  r%  r  r  Úsym_is_contiguousr  rÅ   ©rm   rn   ro   r  r  r  s         r   Úsym_is_contiguous_generalr*  5  sš   € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cð ‡{�{ƒ}Ð Øà",§.¡.Øœ×0Ñ0ó#€JˆÑð �/Ñ"¤e×&;Ñ&;Ò;Øä�9‰9�>‰>×+Ñ+×3Ñ3°C·K±KÑNÀ:ÑNÐNr   z"input: jt_all, memory_format: any?c                 óV  — t        | ||d¬«      \  }}|j                  d«      }t        |«      }|j                  �S|d   t        j
                  k(  r=ddlm} |j                  dk7  rt        d«      ‚ ||j                  «       d ¬«      \  }}|S t         | |j                  fi |¤Žfi |¤ŽS )	NTré   rä   r#  r   )Újagged_from_listz;NJT with ragged_idx != 1 not supported for contiguous clone)r¼   )r   rú   r¿   rX   r   r$  rÒ   r,  rY   r-   Úunbindr   rÅ   )	rm   rn   ro   r  r  r  Únew_metar,  Úcontigs	            r   Úclone_defaultr0  L  s°   € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cä˜cÓ"€Hà
‡|�|ÐØ�oÑ&¬%×*AÑ*AÒAõ 8ð �‰ !Ò#Ü$ØQóð ñ )¨¯©«¸tÔD‰IˆF�AØˆMä™˜SŸ[™[Ñ7¨JÑ7ÑD¸8ÑDÐDr   zinput: jt, weight: t, bias: t?c                 ó”   — t        | ||d¬«      \  }}|j                  d«      }t         | |j                  fi |¤Žfi t	        |«      ¤ŽS ©NTré   rä   ©r   rú   r   rÅ   r¿   r)  s         r   Úlinear_defaultr4  i  óL   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cä™˜SŸ[™[Ñ7¨JÑ7ÑO¼>È#Ó;NÑOÐOr   z6self: jt, grad_output: jt, weight: t, output_mask: anyc                 ó4  — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }|j                  d«      }|j                  d«      }d\  }	}
}t        | |d|d«       |d	   r3t        t	        j
                  |j                  |«      fi t        |«      ¤Ž}	|d
   rz|j                  j                  d|j                  d	«      «      }|j                  j                  d|j                  d
«      «      }t	        j
                  |j                  «       |«      }
|d   rmt        t        |j                  j                  d
z
  «      «      }|dk(  r|j                  j                  «       }n"t	        j                  |j                  |d¬«      }|	|
|fS )NTré   rä   Úgrad_outputrò   Úoutput_mask)NNNÚselfr   r   rM   r¤   r=   F)Úkeepdim)r   rú   r‚   r   r   ÚmatmulrÅ   r¿   rþ   rŠ   r^   r(   Úranger"   Úclonerª   )rm   rn   ro   r  r  r  r7  rò   r8  ÚdsÚdwÚdbÚgrad_2dÚinput_2dÚreduce_dimss                  r   Úlinear_backward_defaultrD  t  sj  € ô
 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ—.‘. Ó/€KØ�^‰^˜HÓ%€FØ—.‘. Ó/€Kà!�J€BˆˆBÜ˜$  V¨[¸-ÔHØ�1‚~ÜÜ�L‰L˜×,Ñ,¨fÓ5ñ
Ü9GÈÓ9Tñ
ˆð �1‚~ð ×%Ñ%×-Ñ-¨b°&·+±+¸a³.ÓAˆØ—;‘;×&Ñ& r¨6¯;©;°q«>Ó:ˆÜ�\‰\˜'Ÿ)™)›+ xÓ0ˆØ�1‚~ô œE +×"5Ñ"5×":Ñ":¸QÑ">Ó?Ó@ˆØ˜"ÒØ×$Ñ$×*Ñ*Ó,‰Bä—‘˜;×.Ñ.°ÀUÔKˆBØ��Bˆ<Ðr   zinput: jt_all, dtype: anyc                 ó”   — t        | ||d¬«      \  }}|j                  d«      }t         | |j                  fi |¤Žfi t	        |«      ¤ŽS r2  r3  r)  s         r   Úto_dtyperF  �  r5  r   c                 óv  — ddl m} t        | ||d¬«      \  }}|j                  d«      }|j                  d«        | |j                  fi |¤Ž}|j
                  j                  |j                  ¬«      }d }	|j                  �&|j                  j                  |j                  ¬«      }	dd	l	m
}
 dd
lm}m} |j                  €|j
                  n|j                  }|	€|n|	}t        ||
|f«      r" ||«      } ||«      }|j                  |_        n||   ||<   t!        |«      }||d<   |	|d<   t#        |fi |¤Ž}|S )Nr   ©Ú_tensor_symint_registryTré   rä   Úlayout©Údevicer   ©Ú
FakeTensor©ÚFunctionalTensorÚmb_unwrap_functional_tensorr¼   r½   )rÒ   rI  r   rú   rÅ   rÖ   ÚtorL  rX   Útorch._subclasses.fake_tensorrN  Ú#torch._subclasses.functional_tensorrP  rQ  r'   Únested_int_memor¿   r   )rm   rn   ro   rI  r  r  r  Ú
new_valuesÚnew_offsetsÚnew_lengthsrN  rP  rQ  Úragged_sourceÚ	new_thingÚtgtÚsrcÚ
inp_kwargsr0   s                      r   Úto_copy_defaultr^  ¨  s0  € å6ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cà‡N�N�8Ôá�c—k‘kÑ0 ZÑ0€JØ—,‘,—/‘/¨×):Ñ):�/Ó;€KØ€KØ
‡|�|ÐØ—l‘l—o‘o¨Z×->Ñ->�oÓ?ˆå8÷ð
 %(§L¡LÐ$8�C—L’L¸c¿l¹l€MØ*Ð2‘¸€IÜ�)˜jÐ*:Ð;Ô<á)¨)Ó4ˆÙ)¨-Ó8ˆà!×1Ñ1ˆÕà-DÀ]Ñ-SÐ 	Ñ*Ü Ó$€JØ'€JˆyÑØ'€JˆyÑä˜*Ñ3¨
Ñ3€FØ€Mr   z-self: jt_all, src: jt_all, non_blocking: any?c                 ó@  — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }|j                  |j                  k7  r¡|j                  «       }|D �cg c]  }|j                  ‘Œ }	}|j                  «       }
|
D �cg c]  }|j                  ‘Œ }}|	|k7  r%t        d|j                  › d|j                  › �«      ‚t        ||
«      D ]  \  }}|j                  |«       Œ |j                  j                  |j                  «       |S c c}w c c}w )NTré   rä   r\  z<copy_(): expected compatible input and src shapes, but got: r€   )	r   rú   r�   r-  r‘   r2   rˆ   Úcopy_rÅ   )rm   rn   ro   r  r  r  r\  Ú	inp_compsÚcÚinp_comp_shapesÚ	src_compsÚsrc_comp_shapesÚinp_compÚsrc_comps                 r   Úcopy_defaultrh  Ò  s  € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ
�.‰.˜Ó
€CØ
‡y�y�C—I‘IÒð —J‘J“Lˆ	Ø,5Ö6 q˜1Ÿ7›7Ð6ˆÐ6Ø—J‘J“Lˆ	Ø,5Ö6 q˜1Ÿ7›7Ð6ˆÐ6Ø˜oÒ-ÜØNØ—9‘9�+˜U 3§9¡9 +ð/óð ô #& i°Ó";ò 	%ÑˆH�hØ�N‰N˜8Õ$ð	%ð ‡K�K×Ñ�c—k‘kÔ"Ø€Jùò! 7ùâ6s   Á"DÂDc                 ó¸  — t        | ||d¬«      \  }}|j                  d«      }t        j                  |d<    | |j                  fi |¤Ž}|j
                  j                  |j                  ¬«      }d }|j                  �&|j                  j                  |j                  ¬«      }t        |«      }	d|	v r||	d<   d|	v r||	d<   |j                  |j                  k7  rvdd	l
m}
 dd
lm}m} ddlm} |j                  €|j
                  n|j                  }|€|n|}t#        ||
|f«      r" ||«      } ||«      }|j$                  |_        n||   ||<   t'        |fi |	¤ŽS )NTré   rä   rJ  rK  r¼   r½   r   rM  rO  r   rH  )r   rú   r   ÚstridedrÅ   rÖ   rR  rL  rX   r¿   rS  rN  rT  rP  rQ  rÒ   rI  r'   rU  r   )rm   rn   ro   r  r  r  rV  rW  rX  Úoutput_kwargsrN  rP  rQ  rI  rY  rZ  r[  r\  s                     r   Úlike_factory_defaultrl  ÷  sV  € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cô
 !Ÿ=™=€JˆxÑá�c—k‘kÑ0 ZÑ0€JØ—,‘,—/‘/¨×):Ñ):�/Ó;€KØ€KØ
‡|�|ÐØ—l‘l—o‘o¨Z×->Ñ->�oÓ?ˆÜ" 3Ó'€MØ�MÑ!Ø#.ˆ�iÑ Ø�MÑ!Ø#.ˆ�iÑ à
‡z�z�Z×&Ñ&Ò&õ 	=÷	
õ
 	;à(+¯©Ð(<˜ŸšÀ#Ç,Á,ˆØ#.Ð#6‘K¸Kˆ	Ü�i *Ð.>Ð!?Ô@á-¨iÓ8ˆCÙ-¨mÓ<ˆCà"%×"5Ñ"5ˆCÕà1HÈÑ1WÐ# IÑ.ä˜
Ñ4 mÑ4Ð4r   zself: jt_all, fill_value: anyzself: jt_all, high: anyz!self: jt_all, low: any, high: anyc                 óp   — t        | ||d¬«      \  }}|j                  d«      } | |j                  «       |S r2  ©r   rú   rÅ   r)  s         r   Úzero__defaultro  >  s:   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CÙˆ�‰ÔØ€Jr   z*self: jt_all, dim: any, half_to_float: anyc           
      óH  — t        | ||d¬«      \  }}t        |d   t        «      rt        d«      ‚|j	                  d«      }t        |j                  «       |d   fd|j                  «      \  |d<   }}}|rt        d«      ‚|r|j                  dkD  rt        d	«      ‚|r|j                  �t        d
«      ‚|d   d   |d<   |�r:t        j                  j                  j                  t        j                  j                  j                  |j                   j#                  |j                   j$                  d   d«      |j&                  g|j(                  gt+        d«      ¬«      |j                  ¬«      }	t        j                  j                  j-                  |	|j&                  g|j                   j$                  d   ¬«      j"                  dg|j                   j$                  dd  ¢­Ž }
t/        |
fi t1        |«      ¤ŽS t/         | |j                   fi |¤Žfi t1        |«      ¤ŽS )NTré   r.   zHsoftmax(): not supported for dimensions of type 'tuple' for NestedTensorrä   ÚsoftmaxzRsoftmax(): not supported when reducing across the batch dimension for NestedTensorr   zesoftmax(): not supported when reducing along the ragged dimension for ragged_idx > 1 for NestedTensorzksoftmax(): not supported where lengths is not None if reducing across the ragged dimension for NestedTensorr   rM   r   )Úmax_lengthsÚpadding_value©r.   ©rÞ   )r   r'   r(   r2   rú   rG   r.   rY   rX   r   ÚnnÚ
functionalrq  r  r  Ú_jagged_to_padded_dense_forwardrÅ   rþ   r‘   rÖ   Ú_max_seqlenr   Ú_padded_dense_to_jagged_forwardr   r¿   )rm   rn   ro   r  r  r  Úreduce_on_batchÚreduce_on_raggedÚ_reduce_on_non_batchÚpadded_softmax_valuesÚsoftmax_valuess              r   Ú_softmax_defaultr€  I  s)  € ô 'Ø�4 ÀTô�M€A€zô �*˜UÑ#¤UÔ+ÜØVó
ð 	
ð �.‰.˜Ó
!€Cô 	Ø�‰‹	Ø	�EÑ	ÐØØ�‰ó		ñØ�5ÑØØØñ ÜØ`ó
ð 	
ñ ˜CŸO™O¨aÒ/ÜØsó
ð 	
ñ ˜CŸL™LÐ4ÜðIó
ð 	
ð
 # 5Ñ)Ø	ñ€JˆuÑò Ü %§¡× 3Ñ 3× ;Ñ ;Ü�I‰I�N‰N×:Ñ:Ø—‘×#Ñ#Ø—K‘K×%Ñ% aÑ(¨"óð —‘�Ø Ÿ_™_Ð-Ü# F›mð ;ó ð —‘ð !<ó 
!
Ðô Ÿ™Ÿ™×GÑGØ!Ø�\‰\ˆNØ—K‘K×%Ñ%Øñð Hó 
÷ ‰'Øð
ð —‘×"Ñ" 1 2Ð&ò
ˆô ˜NÑB¬n¸SÓ.AÑBÐBä™˜SŸ[™[Ñ7¨JÑ7ÑO¼>È#Ó;NÑOÐOr   c                 ó~  — t        | ||d¬«      \  }}t        |d   t        «      rt        d«      ‚|j	                  d«      }t        |j                  «       |d   fd|j                  «      \  |d<   }}}|rt        d«      ‚|rt        d«      ‚|d   d	   |d<   t         | |j                  fi |¤Žfi t        |«      ¤ŽS )
NTré   r.   zLlog_softmax(): not supported for dimensions of type 'tuple' for NestedTensorrä   Úlog_softmaxzVlog_softmax(): not supported when reducing across the batch dimension for NestedTensorzVlog_softmax(): not supported when reducing along the ragged dimension for NestedTensorr   )r   r'   r(   r2   rú   rG   r.   rY   r   rÅ   r¿   )	rm   rn   ro   r  r  r  r{  r|  r}  s	            r   Ú_log_softmax_defaultrƒ  ”  sê   € ô 'Ø�4 ÀTô�M€A€zô �*˜UÑ#¤UÔ+ÜØZó
ð 	
ð �.‰.˜Ó
!€Cô 	Ø�‰‹	�J˜uÑ%Ð'¨¸¿¹ó	ñØ�5ÑØØØñ
 ÜØdó
ð 	
ñ ÜØdó
ð 	
ð
 # 5Ñ)¨!Ñ,€JˆuÑä™˜SŸ[™[Ñ7¨JÑ7ÑO¼>È#Ó;NÑOÐOr   z7grad_output: jt, output: jt, dim: any, input_dtype: anyc                 óÌ   — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }t         | |j                  |j                  fi |¤Žfi t	        |«      ¤ŽS )NTré   r7  r0   r3  )rm   rn   ro   r  r  Úgrad_outr0   s          r   Ú_softmax_backwardr†  ¼  sl   € ô
 'Ø�4 ÀTô�M€A€zð �~‰~˜mÓ,€HØ�^‰^˜HÓ%€FÜÙˆX×Ñ˜vŸ~™~Ñ<°Ñ<ñÜ@NÈxÓ@Xñð r   z!self: jt, float: any, train: any?c                 óÈ   — t        | ||d¬«      \  }}|j                  d«      } | |j                  fi |¤Ž\  }}t        |fi t	        |«      ¤Žt        |fi t	        |«      ¤ŽfS r2  ©r   rú   rÅ   r   r¿   )rm   rn   ro   r  r  r  Úout1Úout2s           r   Únative_dropout_defaultr‹  Ë  sp   € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CÙ�c—k‘kÑ0 ZÑ0�J€Dˆ$ä�TÑ1œ^¨CÓ0Ñ1Ü�TÑ1œ^¨CÓ0Ñ1ðð r   z%grad_output: jt, mask: jt, scale: anyc                 óÌ   — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }t         | |j                  |j                  fi |¤Žfi t	        |«      ¤ŽS )NTré   r7  Úmaskr3  )rm   rn   ro   r  r  r7  r�  s          r   Únative_dropout_backward_defaultrŽ  Û  sl   € ô
 'Ø�4 ÀTô�M€A€zð —.‘. Ó/€KØ�>‰>˜&Ó!€DÜÙˆ[× Ñ  $§,¡,Ñ=°*Ñ=ñä
˜Ó
%ñð r   z2self: jt_all, dim: any, keepdim: any?, dtype: any?c                 ó$   — t        | ddg|¢­i |¤ŽS )Nr  r   ©Ú_apply_reductionr  s      r   Úprod_dim_intr’  ë  s   € ô
 ˜D &¨!Ð=¨dÒ=°fÑ=Ð=r   zself: jt_all, dtype: any?c                 ón   — t        | ||d¬«      \  }}|j                  d«      } | |j                  fi |¤ŽS r2  rn  r)  s         r   Úprod_defaultr”  ó  ó=   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cá�—‘Ñ*˜zÑ*Ð*r   z$self: jt, split_size: any, dim: any?c                 óì   ‡— t        | ||d¬«      \  }}|j                  d«      Št        ‰j                  «       |d   ‰j                  d«      |d<   t        ˆfd„ | ‰j                  fi |¤ŽD «       «      S )NTré   rä   r.   rf   c              3   óJ   •K  — | ]  }t        dd |it        ‰«      ¤Ž–— Œ y­w)ÚvaluesNr=   )r   r¿   )r    rT   r  s     €r   r$   zsplit_tensor.<locals>.<genexpr>  s+   øè ø€ ò àô 	Ñ5˜AÐ5¤°Ó!4Õ5ñùs   ƒ #)r   rú   r:   r.   rY   r(   rÅ   r)  s        @r   Úsplit_tensorr™  þ  s}   ø€ ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cä(Ø�‰‹	�:˜eÑ$ c§o¡o°wó€JˆuÑô ó á�c—k‘kÑ0 ZÑ0ôó ð r   z%self: jt, split_sizes: any, dim: any?c           
      ó  — t        | ||d¬«      \  }}|j                  d«      }t        |j                  «       |d   |j                  d«      |d<    | |j
                  fi |¤ŽD �cg c]  }t        dd|it        |«      ¤Ž‘Œ c}S c c}w )NTré   rä   r.   Úsplit_with_sizesr˜  r=   ©r   rú   r:   r.   rY   rÅ   r   r¿   )rm   rn   ro   r  r  r  rT   s          r   Úsplit_with_sizes_defaultr�    s•   € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cä(Ø�‰‹	�:˜eÑ$ c§o¡oÐ7Ió€JˆuÑñ �c—k‘kÑ0 ZÑ0öàô 	Ñ5˜AÐ5¤°Ó!4Ó5òð ùò s   Á%Bz+self: jt, dim: any, start: any, length: anyc                 óü   — t        | ||d¬«      \  }}|j                  d«      }t        |j                  «       |d   |j                  d«      } | |j
                  ||d   |d   ¬«      }t        |fi t        |«      ¤ŽS )	NTré   rä   r.   ÚnarrowÚstartÚlength©r.   r   r¡  rœ  )rm   rn   ro   r  r  r  r.   r˜  s           r   rŸ  rŸ  &  s…   € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cä
˜3Ÿ7™7›9 j°Ñ&7¸¿¹È(Ó
S€CÙØ�‰ØØ˜Ñ!Ø˜(Ñ#ô	€Fô ˜Ñ6¤.°Ó"5Ñ6Ð6r   z self: jt, chunks: any, dim: any?c           
      ór  — t        | ||d¬«      \  }}|j                  d«      }t        |j                  «       |d   |j                  dd¬«      \  |d<   }|�r|d   }|j
                  j                  «       }|j                  |«      }	|	D �
cg c]  }
t        j                  |
d¬	«      ‘Œ }}
|D �
cg c]  }
t        j                  |
d
d¬«      ‘Œ }}
|D �cg c]  }||j                  dœ‘Œ }}|	D �
cg c]   }
|
j                  «       j                  «       ‘Œ" }}
|j                  j                  |«      }t!        t#        |«      «      D �cg c]  }t%        dd||   i||   ¤Ž‘Œ c}S  | |j                  fi |¤ŽD �
cg c]  }
t%        dd|
it'        |«      ¤Ž‘Œ c}
S c c}
w c c}
w c c}w c c}
w c c}w c c}
w )NTré   rä   r.   Úchunk©r6   Úchunksr   rt  ©r   r   )Úvalue)r¼   rY   r˜  r=   )r   rú   r:   r.   rY   rÖ   Údiffr¤  r   ÚcumsumÚFÚpadrª   ÚitemrÅ   rf   r<  ri   r   r¿   )rm   rn   ro   r  r  r  r9   r¦  r½   Úchunked_lengthsrT   Úchunked_offsetsÚper_offsetsÚnested_kwargsÚsplit_sizesÚchunk_valuesrt   s                    r   Úchunk_defaultr´  9  s½  € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cä,<Ø�‰‹	�:˜eÑ$ c§o¡o°wÐPTô-Ñ)€JˆuÑÐ)ò Ø˜HÑ%ˆð —,‘,×#Ñ#Ó%ˆØ!Ÿ-™-¨Ó/ˆØ;JÖK°aœ5Ÿ<™<¨¨qÖ1ÐKˆÐKØ>MÖN¸œ1Ÿ5™5  F°!Ö4ÐNˆÐNð  /ö
àð $°C·O±OÓDð
ˆð 
ð 0?Ö?¨!�q—u‘u“w—|‘|•~Ð?ˆÐ?Ø—{‘{×(Ñ(¨Ó5ˆô œ3˜|Ó,Ó-ö
àô ÑF ¨Q¡ÐF°MÀ!Ñ4DÓFò
ð 	
ñ ˜#Ÿ+™+Ñ4¨Ñ4ö
àô Ñ9 Ð9¤^°CÓ%8Ó9ò
ð 	
ùò% LùÚNùò
ùò @ùò

ùò

s$   ÂFÂ0F ÃF%Ã1%F*Å	F/Å;F4zself: jt_all, dim: any?c           
      óÊ  ‡‡— t        | ||d¬«      \  }}|d   }|dk7  rt        d«      ‚|j                  d«      }|j                  «       Š|j	                  «       }|j                  «       }|j                  Šddt        t           dt        t           d z  d	d fˆˆfd
„}	|€A|j                  «       j                  «       }
 |	|
«       t        j                  ‰|
‰dz
  ¬«      S ‰dk  rt        d«      ‚|j                  «       }
|j                  «       } |	|
|«       t        |j                  d   «      D �cg c]$  }t        j                  ‰‰dz
  ||   |
|   ¬«      ‘Œ& c}S c c}w )NTré   r.   r   z2unbind(): only supported for NestedTensor on dim=0rä   rX   rÖ   rI   c                 óü  •— d}‰j                   ‰dz
     }t        t        | «      «      D ]f  }t        j                  | |   dk\  «       t        j                  | |   |k  «       || |   z  }|€ŒDt        j                  ||   | |   z   |k  d„ «       Œh t        j                  ||k  «       |�Pt        t        |«      «      D ]8  }t        j                  ||   dk\  «       t        j                  ||   |k  «       Œ: y y )Nr   r   c                   ó   — y)NzMunbind(): nested tensor offsets and lengths do not match ragged_idx dimensionr=   r=   r   r   rU   z2unbind_int.<locals>._torch_check.<locals>.<lambda>ˆ  r]   r   )r‘   r<  ri   r   Ú_check)rX   rÖ   Úlengths_sumÚragged_dim_sizert   r>   r˜  s        €€r   Ú_torch_checkz unbind_int.<locals>._torch_checkt  sö   ø€ ð ˆØ Ÿ,™, z°A¡~Ñ6ˆÜ”s˜8“}Ó%ò 		ˆAÜ�L‰L˜ !™¨Ñ)Ô*Ü�L‰L˜ !™¨Ñ7Ô8à˜8 A™;Ñ&ˆKØÑ#Ü—‘Ø˜Q‘K (¨1¡+Ñ-°Ñ@Ùkõð		ô 	�‰�[ OÑ3Ô4àÐÜœ3˜x›=Ó)ò =�Ü—‘˜X a™[¨AÑ-Ô.Ü—‘˜X a™[¨OÑ;Õ<ñ=ð  r   r   rt  zAunbind(): nested tensor ragged_idx out of bounds (should be >= 1)r¢  r   )r   r2   rú   r˜  r¼   r½   rY   r)   r  r©  Útolistr   rf   r<  r‘   rŸ  )rm   rn   ro   r  r  r.   r  r¼   r½   r»  Úlengths_scalarsÚoffsets_scalarsrt   r>   r˜  s                @@r   Ú
unbind_intr¿  c  se  ù€ ô 'Ø�4 ÀTô�M€A€zð �UÑ
€CØ
ˆa‚xÜÐOÓPÐPà
�.‰.˜Ó
!€CØ�Z‰Z‹\€FØ�k‰k‹m€GØ�k‰k‹m€GØ—‘€Jñ=œt¤C™yð =´D¼±IÀÑ4Dð =ÐPTö =ð: €Ø!Ÿ,™,›.×/Ñ/Ó1ˆÙ�_Ô%ä�{‰{˜6 ?¸Àa¹ÔIÐIà�Q‚ÜØOó
ð 	
ð —n‘nÓ&€OØ—n‘nÓ&€Oá� /Ô2ô �w—}‘} QÑ'Ó(öð ô 	�‰ØØ˜a‘Ø! !Ñ$Ø" 1Ñ%ö		
òð ùò s   Ä4)E zself: jt, dim: anyc                 óú   — t        | ||d¬«      \  }}|j                  d«      }|j                  }t        t	        |j
                  «      |d   |j                  d«      |d<   t         | |fi |¤Žfi t        |«      ¤ŽS )NTré   rä   r.   r’   )	r   rú   rÅ   r:   ri   r�   rY   r   r¿   )rm   rn   ro   r  r  r  r˜  s          r   Úsqueeze_dimrÁ  ¬  s|   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�[‰[€Fä(ÜˆC�I‰I‹˜
 5Ñ)¨3¯?©?¸Ió€JˆuÑô ™˜VÑ2 zÑ2ÑJ´nÀSÓ6IÑJÐJr   zself: jt_all, dim: anyc                 óP  — t        | ||d¬«      \  }}|j                  d«      }|j                  }|d   }t        t	        |j
                  «      dz   ||j                  dd¬«      |d<   t        |«      }|d   |j                  dz
  k  r|dxx   dz  cc<   t         | |fi |¤Žfi |¤ŽS )	NTré   rä   r.   r   Ú	unsqueeze)r5   rY   )	r   rú   rÅ   r:   ri   r�   rY   r¿   r   )	rm   rn   ro   r  r  r  r˜  r.   rk  s	            r   Úunsqueeze_defaultrÄ  »  s¶   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�[‰[€Fð �UÑ
€CÜ(ÜˆC�I‰I‹˜Ñ˜C §¡°+ÐPTô€JˆuÑô
 # 3Ó'€MØ�%Ñ˜CŸO™O¨aÑ/Ò/Ø�mÓ$¨Ñ)Ó$ä™˜VÑ2 zÑ2ÑD°mÑDÐDr   ztensors: any, dim: any?c                 ó  — t        | ||d¬«      \  }}|j                  d«      }|D �cg c]  }|j                  sŒ|‘Œ }}t        |«      dk(  rt	        d«      ‚|d   }|D �cg c]!  }|j                  r|n|j                  |«      ‘Œ# }}|d   }	t        t        |j                  «      |	|j                  d«      |d<   t         | |D �cg c]  }|j                  ‘Œ c}fi |¤Žfi t        |d   «      ¤ŽS c c}w c c}w c c}w )NTré   Útensorsr   z"At least one tensor must be nestedr.   Úcat)r   rú   Ú	is_nestedri   r-   Ú	expand_asr:   r‘   rY   r   rÅ   r¿   )
rm   rn   ro   r  r  rÆ  r^   ÚnestedÚfirstr.   s
             r   Úcat_defaultrÌ  Ò  s  € ä&Ø�4 ÀTô�M€A€zð �n‰n˜YÓ'€Gð !Ö0�A A§K£KŠaÐ0€FÐ0Ü
ˆ6ƒ{�aÒÜÐAÓBÐBØ�1‰I€EØAHÖI¸A�A—K’K‰q Q§[¡[°Ó%7Ñ7ÐI€GÐIð �UÑ
€CÜ(ÜˆE�K‰KÓ˜#˜u×0Ñ0°%ó€JˆuÑô Ù Ö)˜Aˆa�i‹iÒ)Ñ8¨ZÑ8ñÜ<JÈ7ÐSTÉ:Ó<Vñð ùò 1ùò Jùò *s   ¨C4ºC4Á"&C9ÃC>zself: any, other: anyc                 óŒ  ‡ — t        ‰ ||d¬«      \  }}|j                  d«      }|j                  d«      }ˆ fd„}ˆ fd„}|j                  rç|j                  sÛ|j                  «       dk\  rJ|j                  «       |j                  «       k(  r)|j                  |j                  «       dz
  k  r	 |||«      S |j                  «       d	k(  �rX|j                  «       |j                  «       kD  �r6|j                  |j                  «       dz
  k  �rt         ‰ |j                  |fi |¤Žfi t        |«      ¤ŽS |j                  sÅ|j                  r¹|j                  «       dk\  r9|j                  «       |j                  «       k(  r|j                  d	k\  r	 |||«      S |j                  «       d	k(  �rv|j                  «       |j                  «       kD  �rT|j                  d	k\  �rDt         ‰ ||j                  fi |¤Žfi t        |«      ¤ŽS |j                  �r|j                  �r|j                  «       dkD  rY|j                  «       dkD  rFt        ||j                  «      r0t         ‰ |j                  |j                  «      fi t        |«      ¤ŽS |j                  «       dk(  r„|j                  «       dk(  rq|j                  d	k(  rb|j                  dk(  rS|j                  |j                  «      |j                  |j                  «      k(  rt        j                   |||«      «      S t        d
|j                  › d|j                  › �«      ‚)NTré   rä   Úotherc                 ó”   •— t        | j                  «       |j                  «       «      D ��cg c]  \  }} ‰||«      ‘Œ c}}S c c}}w r   )rˆ   r-  )r{   r}   Úa_compÚb_comprm   s       €r   Ú_unbind_implz$matmul_default.<locals>._unbind_implõ  s>   ø€ ä9<¸Q¿X¹X»ZÈÏÉËÓ9T÷
Ù%5 f¨f‰D�˜Õ ó
ð 	
ùó 
s   ­Ac                 óÖ  •— | j                   r| }n|}ddlm} |j                  }|j                  }|}|j
                  j                  |j                  dz
     }|€|}g |j                  d |j                   ¢|‘|j                  |j                  dz   d  ¢­}|j                  d|¬«      }	| j                   r
 ‰|	|«      }
n	 ‰| |	«      }
 ||
|j                  |j                  |||¬«      S )Nr   rÊ   ç        ©Úoutput_sizerÌ   )
rÈ  rÒ   rË   rÓ   rÔ   rÅ   r‘   rY   Úto_padded_tensorrÖ   )r{   r}   r‰   rË   rÎ   rÏ   rÝ   rÞ   Úpadded_shapeÚ	padded_ntÚpadded_trm   s              €r   Ú_padded_implz$matmul_default.<locals>._padded_implú  sý   ø€ Ø�;Š;Ø‰BàˆBå5à×)Ñ)ˆ
Ø×)Ñ)ˆ
Ø!ˆØ—*‘*×"Ñ" 2§>¡>°AÑ#5Ñ6ˆØÐà"ˆLð
Ø�X‰XÐ&˜Ÿ™Ð'ð
àð
ð �X‰X�b—n‘n qÑ(Ð*Ð+ñ
ˆð
 ×'Ñ'¨¸Ð'ÓFˆ	Ø�;Š;Ù˜I qÓ)‰Há˜A˜yÓ)ˆHÙ!ØØ—K‘KØ—~‘~ØØ!Ø!ô
ð 	
r   é   r   r¤   z1matmul(): not supported between inputs of shapes r€   )r   rú   rÈ  r.   rY   r   rÅ   r¿   rŽ   r�   rŠ   r   Ústackr2   r‘   )	rm   rn   ro   r  r  r  rÎ  rÒ  rÛ  s	   `        r   Úmatmul_defaultrÞ  ì  sž  ø€ ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�N‰N˜7Ó#€Eô
ô
!
ðJ ‡}‚}˜UŸ_š_ð �G‰G‹I˜ŠNØ—‘“	˜UŸY™Y›[Ò(Ø—‘ #§'¡'£)¨a¡-Ò/ñ    UÓ+Ð+ð �I‰I‹K˜1ÓØ—‘“	˜EŸI™I›KÓ'Ø—‘ #§'¡'£)¨a¡-Ó/äÙ�S—[‘[ %Ñ6¨:Ñ6ñÜ:HÈÓ:Mñð ð �]Š]˜uŸšà�9‰9‹;˜!Ò §	¡	£¨s¯w©w«yÒ 8¸U×=NÑ=NÐRSÒ=Sá  UÓ+Ð+ð
 �W‰W‹Y˜!‹^ §	¡	£¨c¯g©g«iÓ 7¸E×<MÑ<MÐQRÓ<RÜÙ�S˜%Ÿ-™-Ñ6¨:Ñ6ñÜ:HÈÓ:Oñð ð
 
�‹˜5Ÿ?›?ð �7‰7‹9�qŠ=˜UŸY™Y›[¨1š_Ô1CÀCÈÏÉÔ1UÜ¡ S§[¡[°%·-±-Ó @ÑXÄNÐSVÓDWÑXÐXð �G‰G‹I˜ŠNØ—	‘	“˜qÒ Ø—‘ 1Ò$Ø×!Ñ! QÒ&Ø—‘˜Ÿ™Ó)¨U¯Z©Z¸×8IÑ8IÓ-JÒJô —;‘;™|¨C°Ó7Ó8Ð8ä
Ø
;¸C¿I¹I¸;ÀeÈEÏKÉKÈ=ÐYóð r   zself: jt_all, mat2: anyc                 óT  — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }|j                  «       dk7  rt        d«      ‚|j                  «       dk7  rt        d«      ‚t	        t
        j                  j                  j                  j                  ||«      S )NTré   rä   Úmat2rÜ  zbmm(): input must be 3Dzbmm(): mat2 must be 3D)
r   rú   r.   rj   rÞ  r   r  r  r;  r  ©rm   rn   ro   r  r  r  rÎ  s          r   Úbmm_defaultrâ  Z  s�   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�N‰N˜6Ó"€Eà
‡w�wƒy�A‚~ÜÐ2Ó3Ð3Ø‡y�yƒ{�aÒÜÐ1Ó2Ð2äœ%Ÿ)™)Ÿ.™.×/Ñ/×7Ñ7¸¸eÓDÐDr   z'self: jt_all, size: any, implicit: any?c                 ó¬  — t        | ||d¬«      \  }}|j                  d«      }|d   }d|v r|j                  d«      rt        d«      ‚t        ||«      st	        d|j
                  › d|› �«      ‚t        d	|j                  «       «      D �cg c]  }||j                  k(  rd
n||   ‘Œ }}t         | |j                  |«      fi t        |«      ¤ŽS c c}w )NTré   rä   rŠ   Úimplicitz implicit expand is not supportedzexpand(): cannot expand shape z -> r   rM   )r   rú   r-   rŽ   r2   r�   r<  r.   rY   r   rÅ   r¿   )	rm   rn   ro   r  r  r  rŠ   r!   Ú
expand_args	            r   Úexpand_defaultræ  k  sÕ   € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�fÑ€Dà�ZÑ J§N¡N°:Ô$>ÜÐ?Ó@Ð@Ü˜c 4Ô(ÜÐ;¸C¿I¹I¸;ÀdÈ4È&ÐQÓRÐRäCHÈÈCÏGÉGËIÓCVÖW¸a˜˜SŸ_™_Ò,‘"°$°q±'Ñ9ÐW€JÐWÜ™˜SŸ[™[¨*Ó5ÑM¼ÈÓ9LÑMÐMùò Xs   ÂCzself: t, other: jtc                 ó¶   — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }t         | ||j                  «      fi t	        |«      ¤ŽS )NTré   rä   rÎ  r3  rá  s          r   Úexpand_as_defaultrè    sW   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�N‰N˜7Ó#€Eä™˜S %§-¡-Ó0ÑJ´NÀ5Ó4IÑJÐJr   zself: jt_all, size: anyc           
      ó6  — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }t        |«      |j                  «       k  r?|j	                  g d„ t        |j                  «       t        |«      z
  «      D «       ¢|¢«      S t        d«      ‚)NTré   rä   rŠ   c              3   ó    K  — | ]  }d –— Œ y­w)r   Nr=   )r    r  s     r   r$   zbroadcast_to.<locals>.<genexpr>•  s   è ø€ ÒE 1œQÑEùs   ‚zwbroadcast_to(): broadcasting to a higher-dim shape is currently not supported for nested tensors with the jagged layout)r   rú   ri   r.   rÕ   r<  rj   )rm   rn   ro   r  r  r  rŠ   s          r   Úbroadcast_torë  ‹  s�   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�>‰>˜&Ó!€Dä
ˆ4ƒy�C—G‘G“IÒØ�z‰zÐMÑE¬¨c¯g©g«i¼#¸d»)Ñ.CÓ(DÔEÐMÈÐMÓNÐNä
ð	4óð r   ztensors: anyc           
      óT  — t        | ||d¬«      \  }}|j                  d«      }t        |«      dk(  rt        d«      ‚t        |«      dk(  r|d   S g }t	        j
                  d„ |D «       Ž }t        d„ |D «       «      }|D ]�  }	|	j                  r!|j                  |	j                  |«      «       Œ0|	j                  «       t        |«      k  rH|j                  t        |	j                  |j                  j                  «      fi t        |«      ¤Ž«       Œ”t        d	«      ‚ t        |«      S )
NTré   rÆ  r   z7broadcast_tensors(): expected at least one tensor inputr   c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr   )r‘   ©r    r^   s     r   r$   z$broadcast_tensors.<locals>.<genexpr>ª  s   è ø€ Ò.H¸1¨q¯w­wÑ.Hùs   ‚c              3   óB   K  — | ]  }t        |t        «      sŒ|–— Œ y ­wr   r[   rî  s     r   r$   z$broadcast_tensors.<locals>.<genexpr>¬  s   è ø€ ÒA�Q¤Z°´<Õ%@ŒqÑAùrÃ   zubroadcast_tensors(): broadcasting nested tensors with dense tensors of equal or higher dim is not currently supported)r   rú   ri   rj   r   Úbroadcast_shapesrÈ   rÈ  r®   rë  r.   r   rÅ   r‘   r¿   r(   )
rm   rn   ro   r  r  rÆ  ÚoutsÚbroadcast_shaperÆ   r^   s
             r   Úbroadcast_tensorsró  �  s  € ä&Ø�4 ÀTô�M€A€zð �n‰n˜YÓ'€GÜ
ˆ7ƒ|�qÒÜÐRÓSÐSÜ
ˆ7ƒ|�qÒØ�q‰zÐà€DÜ×,Ñ,Ñ.HÀÔ.HÐI€Oä
ÑA˜'ÔAÓ
A€CØò ˆØ�;Š;Ø�K‰K˜Ÿ™ Ó7Õ8Ø�U‰U‹W”s˜?Ó+Ò+Ø�K‰KÜ˜QŸ^™^¨C¯K©K×,=Ñ,=Ó>ÑVÄ.ÐQTÓBUÑVõô ð;óð ðô �‹;Ðr   z(condition: jt_all, self: any, other: anyc                 ó:  — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }|j                  d«      }t        j                  |||«      \  }}}t	         | |j
                  |j
                  |j
                  fi |¤Žfi t        |«      ¤ŽS )NTré   Ú	conditionrä   rÎ  )r   rú   r   ró  r   rÅ   r¿   )rm   rn   ro   r  r  rõ  r  rÎ  s           r   Ú
where_selfrö  ½  s�   € ô 'Ø�4 ÀTô�M€A€zð —‘˜{Ó+€IØ
�.‰.˜Ó
!€CØ�N‰N˜7Ó#€Eô "×3Ñ3°I¸sÀEÓJÑ€Iˆs�EäÙˆY×Ñ §¡¨U¯]©]ÑI¸jÑIñä
˜Ó
#ñð r   zself: jt, device: any?c                 ó”   — t        | ||d¬«      \  }}|j                  d«      }t         | |j                  fi |¤Žfi t	        |«      ¤ŽS r2  r3  r)  s         r   Ú_pin_memory_defaultrø  Ò  r5  r   c                 ón   — t        | ||d¬«      \  }}|j                  d«      } | |j                  fi |¤ŽS r2  rn  r)  s         r   Úis_pinned_defaultrú  Ý  r•  r   zself: jt_all, other: jt_allc                 ó@   — |d   j                   |d   j                   k(  S r�   )r�   r  s      r   Úis_same_size_defaultrü  è  s   € ð �‰7�=‰=˜D ™GŸM™MÑ)Ð)r   c                 óà  ‡‡— t        | ||d¬«      \  }}|j                  d«      Š|d   d u xs, t        |d   t        t        f«      xr t        |d   «      dk(  }|rt | ‰j                  fi |¤Ž}|j                  dd«      rMt        |t        t        f«      r t        |«      ˆfd„|D «       «      }|S |j                  ‰j                  «      }|S |d   }	t        |d   t        t        f«      }
|
s|	g}	t        ‰j                  «       |	|› ‰j                  «      \  }}}}|
s|d   }||d<   |r‰j                  �t        |› d	�«      ‚dd
lm} |r‰|r1 | ‰j                  fi |¤Ž}|j                  dd«      r
 |d„ |«      }|S |rt        |› d�«      ‚|j                  d«       |
r‰j                  gn‰j                  } | ‰j#                  |«      fd|i|¤ŽS |rt        |› d�«      ‚ | ‰j                  fi |¤Ž}t%        ‰«      Š|j                  dd«      sKt        |d   t        t        f«      r|d   n|d   g}|D ]"  }|‰j                  dz
  k  sŒ‰dxx   dz  cc<   Œ$  |ˆfd„|«      S )NTré   rä   r.   r   r:  Fc              3   óT   •K  — | ]  }|j                  ‰j                  «      –— Œ! y ­wr   )rÃ  rY   )r    Úor  s     €r   r$   z#_apply_reduction.<locals>.<genexpr>ÿ  s   øè ø€ ÒJÀ §¡¨C¯O©O× <ÑJùs   ƒ%(zf(): reducing across the ragged dimension is not supported for non-contiguous nested tensors with holes)Útree_mapc                 ó$   — | j                  d«      S )Nr   )rÃ  )rÿ  s    r   rU   z"_apply_reduction.<locals>.<lambda>+  s   € ¨¯©°Q«€ r   zW(): reducing along a ragged and non-batch dimension is not supported for nested tensorszg(): reducing along the batch dimension but not the ragged dimension is not supported for nested tensorsr   rY   c                 ó   •— t        | fi ‰¤ŽS r   r   )rÿ  Ú
out_kwargss    €r   rU   z"_apply_reduction.<locals>.<lambda>V  s   ø€ ¤,¨qÑ"?°JÑ"?€ r   )r   rú   r'   r(   r)   ri   rÅ   r¥   r*   rÃ  rY   rG   r.   rX   r2   Útorch.utils._pytreer   r×  r¿   )rm   Ú	func_nameÚidentity_elementrn   ro   r  r  Úfull_reductionÚoutÚdim_to_convertÚ
is_dimlistÚconverted_dimr{  r|  Úreduce_on_non_batchr   Údim_to_passÚdimlistr!   r  r  s                      @@r   r‘  r‘  ï  så  ù€ Ü&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cð   Ñ&¨$Ð.ò Ü�:˜eÑ$¤u¬d mÓ4ÒT¼¸ZÈÑ=NÓ9OÐSTÑ9Tð ñ Ù�3—;‘;Ñ- *Ñ-ˆØ�>‰>˜) UÔ+Ü˜#¤¤t˜}Ô-à”d˜3“iÓJÀcÔJÓJ�ð ˆ
ð —m‘m C§O¡OÓ4�Øˆ
ð   Ñ&€NÜ˜J uÑ-´´t¨}Ó=€JÙØ(Ð)ˆô 	Ø�‰‹	ØØˆ+Ø�‰ó		ñØØØØñ à% aÑ(ˆØ%€JˆuÑá˜CŸL™LÐ4ÜØˆkð ;ð ;ó
ð 	
õ
 -ñ áá�s—{‘{Ñ1 jÑ1ˆCØ�~‰~˜i¨Ô/áÑ7¸Ó=�ØˆJñ #Ü"Ø �kð ":ð :óð ð �N‰N˜5Ô!Ù/9˜3Ÿ?™?Ñ+¸s¿¹ˆKÙØ×$Ñ$Ð%5Ó6ñØ<GðØKUñð ñ ÜØ�+ð Kð Kóð ñ �3—;‘;Ñ- *Ñ-ˆÜ# CÓ(ˆ
Ø�~‰~˜i¨Ô/ô ˜j¨Ñ/´%¼°Ô?ð ˜5Ò!à  Ñ'Ð(ð ð
 ò 3�à�s—‘¨Ñ*Ó*Ø˜}Ó-°Ñ2Ô-ð3ñ Ó?ÀÓEÐEr   c                 ón   — t        | ||d¬«      \  }}|j                  d«      } | |j                  fi |¤ŽS r2  rn  r)  s         r   Úsum_defaultr  Y  r•  r   z3self: jt_all, dim: any?, keepdim: any?, dtype: any?c                 ó$   — t        | ddg|¢­i |¤ŽS )Nrª   r   r�  r  s      r   Úsum_dim_IntListr  d  s   € ô
 ˜D %¨Ð<¨TÒ<°VÑ<Ð<r   z"self: jt_all, dim0: any, dim1: anyc           
      ó6  — t        | ||d¬«      \  }}ddlm} |j                  d«      } ||j	                  «       |d   |d   f«      \  }}||j
                  k(  s||j
                  k(  r³|dk(  s|dk(  rt        d«      ‚||j
                  k(  r|}	n|}	t        |«      }
|	|
d	<   t        |j                  «       j                  t        t        |j                  «      ||j
                  «      t        t        |j                  «      ||j
                  «      «      fi |
¤ŽS t        |j	                  «       |d   |j
                  d
«      |d<   t        |j	                  «       |d   |j
                  d
«      |d<   t         | |j                  fi |¤Žfi t        |«      ¤ŽS )NTré   r   r   rä   Údim0Údim1z?Transpose is not supported on the batch dimension for jagged NTrY   Ú	transpose)r   r&   r   rú   r.   rY   rj   r¿   r   r˜  r  r   ri   r�   r:   rÅ   )rm   rn   ro   r  r  r   r  r  r  Úto_dimr]  s              r   Útranspose_intr  l  s‡  € ô 'Ø�4 ÀTô�M€A€zõ 6à
�.‰.˜Ó
!€CÙ" 3§7¡7£9¨z¸&Ñ/AÀ:ÈfÑCUÐ.VÓW�J€Dˆ$ð
 ˆs�‰Ò $¨#¯/©/Ò"9Ø�1Š9˜ š	ÜØQóð ð �3—?‘?Ò"Ø‰FàˆFÜ# CÓ(ˆ
Ø$*ˆ
�=Ñ!ÜØ�J‰J‹L×"Ñ"Ü#¤C¨¯	©	£N°D¸#¿/¹/ÓJÜ#¤C¨¯	©	£N°D¸#¿/¹/ÓJóñ
ð
 ñ
ð 	
ô *Ø�‰‹	�:˜fÑ% s§¡¸ó€JˆvÑô *Ø�‰‹	�:˜fÑ% s§¡¸ó€JˆvÑô ™˜SŸ[™[Ñ7¨JÑ7ÑO¼>È#Ó;NÑOÐOr   zself: jt_all, dims: anyc                 ó¤  — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }t        |«      }t        |j                  «      }|t        |«      k7  rt        d|› d�dt        |«      › d�z   «      ‚d	d
lm}	  |	||«      }
t        |
«      t        t        |
«      «      k7  rt        d«      ‚|j                  �t        d«      ‚|
d	   d	k7  rt        d«      ‚|
j                  |j                  «      |d<   |
dd  D �cg c]  }t        |||j                  «      ‘Œ }}||d<   t         | |j                  fi |¤Žfi |¤ŽS c c}w )NTré   rä   rA   z5permute(): number of dimensions in the tensor input (z) zAdoes not match the length of the desired ordering of dimensions (ú).r   r   z*permute(): duplicate dims are not allowed.zBpermute(): not supported on jagged layout nested tensor with holesz=Permute is not supported on the batch dimension for jagged NTrY   r   )r   rú   r¿   ri   r�   rj   r&   r   ÚsetrX   ÚindexrY   r   r   rÅ   )rm   rn   ro   r  r  r  rA   r]  Úinp_dimr   Úcanonicalized_dimsr.   Ú
inner_dimss                r   Úpermute_defaultr   ™  s}  € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�>‰>˜&Ó!€DÜ Ó$€JÜ�#—)‘)‹n€Gð ”#�d“)ÒÜØCÀGÀ9ÈBÐOØQÔRUÐVZÓR[ÐQ\Ð\^Ð_ñ`ó
ð 	
õ
 6á*¨7°DÓ9Ðä
ÐÓ¤#¤cÐ*<Ó&=Ó">Ò>ÜÐEÓFÐFà
‡|�|ÐÜØPó
ð 	
ð ˜!Ñ Ò!ÜØKó
ð 	
ð !3× 8Ñ 8¸¿¹Ó I€Jˆ}Ñð & a bÐ)öàô 	˜G S¨#¯/©/Õ:ð€Jð ð $€JˆvÑÜ™˜SŸ[™[Ñ7¨JÑ7ÑF¸:ÑFÐFùòs   ÄEc                 ó˜  ‡‡	— t        | ||d¬«      \  }}|j                  d«      Š|j                  d«      Š	‰j                  dk7  r=t        ‰j                  «      t        ‰	«      k7  rt        d‰j                  › d‰	› d�«      ‚t        ‰	«      d	k  st        ‰‰	«      st        d
‰j                  › d‰	› �«      ‚ˆˆ	fd„}t        t        ‰	«      dz
  «      D �cg c]
  } ||«      ‘Œ }}t        j                  ‰j                  «       «      5  t         | ‰j                  |«      fi t        ‰«      ¤Žcd d d «       S c c}w # 1 sw Y   y xY w)NTré   rä   rŠ   r   zVview(): does not support ragged_idx != 1 except when inp._size == size. inp._size is (z) and size is (r  rÜ  zview(): cannot view shape z as c                 ón   •— | ‰j                   dz
  k(  r‰j                  j                  | «      S ‰| dz      S rW   )rY   rÅ   rŠ   )Ú	inner_idxr  rŠ   s    €€r   Úget_inner_sizez$view_default.<locals>.get_inner_sizeæ  s8   ø€ à˜Ÿ™¨!Ñ+Ò+Ø—;‘;×#Ñ# IÓ.Ð.à˜	 A™Ñ&Ð&r   )r   rú   rY   r(   r�   r2   ri   rŽ   r<  r   Úinference_modeÚis_inferencer   rÅ   r¿   )
rm   rn   ro   r  r  r$  rt   Ú
inner_sizer  rŠ   s
           @@r   Úview_defaultr(  Â  s>  ù€ ô
 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�>‰>˜&Ó!€Dà
‡�˜!Ò¤ c§i¡iÓ 0´E¸$³KÒ ?ÜðØ ŸY™Y˜K °t°f¸Bð@ó
ð 	
ô ˆ4ƒy�1‚}Ô.¨s°DÔ9ÜÐ7¸¿	¹	°{À$ÀtÀfÐMÓNÐNõ 'ô .3´3°t³9¸q±=Ó-AÖB¨‘. Õ#ÐB€JÐBô 
×	Ñ	˜c×.Ñ.Ó0Ó	1ñ RÜ™D §¡¨jÓ9ÑQ¼^ÈCÓ=PÑQ÷Rñ Rùò	 C÷Rð Rús   ÃD;Ä&E Å E	zHinput: jt_all, normalized_shape: any, weight: any?, bias: any?, eps: anyc                 óP  — t        | ||d¬«      \  }}|j                  d«      }|j                  «       dk  rt        d«      ‚|d   }|j                  |j
                     }|j                  «       t        |«      z
  }|dk(  rt        d«      ‚||v r|j                  �t        d	«      ‚||v �rMt        j                  j                  j                  |j                  j                  |j
                  ¬
«      |j                  g|j                  g¬«      }	t        j                  j                  j                  t        j                   |j                  j                  d   df|j"                  |j$                  ¬«      |j                  g|j                  g¬«      j'                  |	j                  «      }
|j                  j)                  «       j+                  d«      j+                  d«      |	j                  d   z  }t        j,                  |	dd¬«      |z  }|	|z
  |
z  }t        j,                  t        j.                  |«      dd¬«      |z  }t        j0                  ||d   z   «      }||z  }t        j                  j                  j3                  ||j                  g|j                  j                  d   ¬«      j5                  d|j                  |j
                  dz   d  «      }t7        |fi t9        |«      ¤Ž||fS  | |j                  fi |¤Ž\  }}}t7        |fi t9        |«      ¤Ž||fS )NTré   rä   r¤   zOlayer_norm(): not supported for NestedTensor objects with 2 or fewer dimensionsrñ   r   zVlayer_norm(): not supported when normalizing over the batch dimension for NestedTensorzklayer_norm(): not supported where lengths is not None if operating on the ragged dimension for NestedTensor©rå   )rr  r   )rL  r   )r   r¤   )r.   r:  ró   ru  rM   )r   rú   r.   r2   r‘   rY   ri   rX   r   r  r  rx  rÅ   râ   rÖ   ry  ÚonesrL  r   rÕ   r©  rÃ  rª   ÚsquareÚsqrtrz  Ú	unflattenr   r¿   )rm   rn   ro   r  r  r  rñ   Úragged_sizeÚnum_dims_not_normalizedÚpadded_inputÚpadded_maskÚragged_lengthsÚmeanÚpadded_normalizedÚvarianceÚstdÚpadded_layer_normÚjagged_layer_norm_valuesr0   s                      r   Únative_layer_norm_defaultr:  õ  s!  € ô
 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cà
‡w�wƒy�A‚~ÜØ]ó
ð 	
ð "Ð"4Ñ5ÐØ—)‘)˜CŸO™OÑ,€Kà!Ÿg™g›i¬#Ð.>Ó*?Ñ?Ðð 	  1Ò$äØdó
ð 	
ð Ð&Ñ&¨3¯<©<Ð+CÜØyó
ð 	
ð
 	Ð'Ò'ä—y‘y—~‘~×EÑEØ�K‰K×ÑØŸ/™/ð  ó ð �\‰\ˆNØŸ™Ð)ð Fó 
ˆô —i‘i—n‘n×DÑDÜ�J‰J˜Ÿ™×)Ñ)¨!Ñ,¨aÐ0¸¿¹È3Ï9É9ÔUØ�\‰\ˆNØŸ™Ð)ð Eó 
÷ ‰&Ø×Ñó
ð	 	ð �L‰L×ÑÓ×)Ñ)¨!Ó,×6Ñ6°qÓ9¸L×<NÑ<NÈqÑ<QÑQð 	ô
 �I‰IØØØôð
 ñð 	ð ˜DÑ  KÑ/ð 	ô
 �I‰IÜ—‘Ð.Ó/ØØôð
 ñð 	ô �j‰j˜ J¨uÑ$5Ñ5Ó6ˆØ-°Ñ3Ðä#(§9¡9§>¡>×#QÑ#QØØ�\‰\ˆNØ—K‘K×%Ñ%Øñð $Ró $
÷ ‰)Ø�—	‘	˜#Ÿ/™/¨AÑ-Ð/Ð0ó
ð 	!ô Ð1ÑI´^ÀCÓ5HÑIØØð
ð 	
ñ ˜SŸ[™[Ñ7¨JÑ7Ñ€FˆD�#Ü˜Ñ7¤>°#Ó#6Ñ7¸¸sÐCÐCr   zpgrad_out: jt, input: jt, normalized_shape: any, mean: any, rstd: any, weight: any?, bias: any?, output_mask: anyc                 óì   — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      } | |j                  |j                  fi |¤Ž\  }}}	|€d ||	fS t        |fi t	        |«      ¤Ž||	fS )NTré   r…  rä   rˆ  )
rm   rn   ro   r  r  r…  r  Úd_inputÚd_gammaÚd_betas
             r   Ú"native_layer_norm_backward_defaultr?  Z  s‰   € ô
 'Ø�4 ÀTô�M€A€zð �~‰~˜jÓ)€HØ
�.‰.˜Ó
!€CÙ# H×$4Ñ$4°c·k±kÑPÀZÑPÑ€GˆW�fØ€Ø�g˜vÐ&Ð&ä˜Ñ8¤N°3Ó$7Ñ8¸'À6ÐJÐJr   z"self: jt_all, dim: any, index: anyc                 óœ  — t        | ||d¬«      \  }}|j                  d«      }t        |j                  «       |d   |j                  dd¬«      \  |d<   }|r|j                  «       |d      S |j                  �t        d«      ‚t        |«      }|d   |j                  d	z
  k  r|d
xx   d	z  cc<   t         | |j                  fi |¤Žfi |¤ŽS )NTré   rä   r.   Úselectr¥  r  zSselect(): not yet supported on dim != 0 for non-contiguous nested tensor with holesr   rY   )r   rú   r:   r.   rY   r-  rX   rj   r¿   r   rÅ   )rm   rn   ro   r  r  r  r9   r  s           r   Ú
select_intrB  k  sÞ   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CÜ,<Ø�‰‹	�:˜eÑ$ c§o¡o°xÐQUô-Ñ)€JˆuÑÐ)ñ Ø�z‰z‹|˜J wÑ/Ñ0Ð0à
‡|�|ÐÜØaó
ð 	
ô
   Ó$€JØ�%Ñ˜3Ÿ?™?¨QÑ.Ò.Ø�=Ó! QÑ&Ó!ä™˜SŸ[™[Ñ7¨JÑ7ÑF¸:ÑFÐFr   z7self: jt, dim: any?, start: any?, end: any?, step: any?c                 óì   — t        | ||d¬«      \  }}|j                  d«      }t        |j                  «       |d   |j                  d«      |d<   t         | |j                  fi |¤Žfi t        |«      ¤ŽS )NTré   rä   r.   Úslice)r   rú   r:   r.   rY   r   rÅ   r¿   r)  s         r   Úslice_tensorrE  ˆ  sw   € ô
 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CÜ(Ø�‰‹	�:˜eÑ$ c§o¡o°wó€JˆuÑô ™˜SŸ[™[Ñ7¨JÑ7ÑO¼>È#Ó;NÑOÐOr   z8input: jt_all, indices: any, values: t, accumulate: any?c                 ó
  — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }t        |«      |j                  «       kD  r)t	        dt        |«      › d|j                  «       › d�«      ‚t        |«      |j
                  dz   k  �r9|j                  «       st        d	«      ‚dd
lm	} |j                  }|j                  }	|	}
|j                  j                  |j
                  dz
     }|
€|}
g |j                  d |j
                   ¢|
‘|j                  |j
                  dz   d  ¢­}|j                  d|¬«      } | | ||fi |¤Ž|j                  |j
                  |||	¬«      }| t         j"                  j$                  j&                  j(                  u r+|j                  j+                  |j-                  «       «       |S |S |j/                  «       €|j1                  «       j3                  «       }n|j/                  «       }t!        j4                  t!        j6                  ||j
                     |k  «      d«       |j1                  «       |d      ||j
                     z   }|d|j
                   |gz   ||j
                  dz   d  z   }| t         j"                  j$                  j&                  j(                  u r | |j                  |fi |¤Ž|_        |S t9         | |j                  |fi |¤Žfi t;        |«      ¤ŽS )NTré   rä   ÚindiceszToo many indices: got z but tensor has z dimensionsr   z[index_put(): If ragged dimension is not part of indices, this only works on contiguous NJTsrÊ   rÔ  rÕ  rÌ   z7Some indices in the ragged dimension are out of bounds!r   )r   rú   ri   r.   r-   rY   Úis_contiguousr2   rÒ   rË   rÓ   rÔ   rÅ   r‘   r×  rÖ   r   r  r  Ú
index_put_r  r`  r˜  r½   r¼   r©  Ú_assert_asyncr‡   r   r¿   )rm   rn   ro   r  r  r  rG  rË   rÎ   rÏ   rÝ   rÞ   rØ  Ú
padded_inpÚnew_njtr½   Úragged_indicesÚfunc_indicess                     r   rI  rI  ™  sÞ  € ô 'Ø�4 ÀTô�M€A€zð #Ÿ™ wÓ/€Cð �n‰n˜YÓ'€Gä
ˆ7ƒ|�c—g‘g“iÒÜØ$¤S¨£\ NÐ2BÀ3Ç7Á7Ã9À+È[ÐYó
ð 	
ô ˆ7ƒ|�c—o‘o¨Ñ)Ó)Ø× Ñ Ô"ÜØmóð õ 	6à×*Ñ*ˆ
Ø×*Ñ*ˆ
Ø!ˆØ—+‘+×#Ñ# C§O¡O°aÑ$7Ñ8ˆØÐà"ˆLð
Ø�Y‰YÐ(˜Ÿ™Ð)ð
àð
ð �Y‰Y�s—‘¨Ñ*Ð,Ð-ñ
ˆð
 ×)Ñ)¨#¸<Ð)ÓHˆ
Ù$Ù�˜WÑ3¨
Ñ3Ø—L‘LØ—‘ØØ!Ø!ô
ˆð ”5—9‘9—>‘>×,Ñ,×4Ñ4Ñ4Ø�K‰K×Ñ˜gŸn™nÓ.Ô/ØˆJØˆð
 ‡{�{ƒ}ÐØ—+‘+“-×$Ñ$Ó&‰à—+‘+“-ˆÜ	×Ñä�	‰	�'˜#Ÿ/™/Ñ*¨WÑ4Ó5ØAôð —[‘[“] 7¨1¡:Ñ.°¸¿¹Ñ1IÑI€Nð 	��C—O‘OÐ$àÐ
ñ	ð �#—/‘/ AÑ%Ð'Ð
(ñ		)ð ð Œu�y‰y�~‰~×(Ñ(×0Ñ0Ñ0Ù˜3Ÿ;™;¨ÑC¸
ÑCˆŒØˆ
äÙˆS�[‰[˜,Ñ5¨*Ñ5ñä
˜Ó
ñð r   z{input: jt, weight: t, bias: t?, stride: any, padding: any, dilation: any, transposed: any, output_padding: any, groups: anyc                 ó”   — t        | ||d¬«      \  }}|j                  d«      }t         | |j                  fi |¤Žfi t	        |«      ¤ŽS r2  r3  r)  s         r   Úconvolution_defaultrP  ù  sN   € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cä™˜SŸ[™[Ñ7¨JÑ7ÑO¼>È#Ó;NÑOÐOr   c                 óf  — t        | ||d¬«      \  }}|d   }t        |j                  «       |d   d|j                  «      \  }}}}|rÛ|sÙ|rt	        d«      ‚|d   }	d|d<   t        t        j                  j                  j                  j                  ddfi |¤Ž}
|j                  �|j                  n|j                  j                  «       }t        |
j                  «       d	z
  «      D ]  }|j                  d
«      }Œ |
|z  }|	s|j!                  |j                  «      }|S d}t        | d|fi |¤ŽS )NTré   rä   r.   r4  zTCannot reduce on both ragged and non-batch dimensions without also reducing on batchr:  r   r   rM   gáz®GáÚ?)r   rG   r.   rY   r-   r‘  r   r  r  rª   Údim_IntListrX   rÖ   r©  r<  rÃ  r’   )rm   rn   ro   r  r  r  r{  r|  r  r:  Úintermediate_sumr½   r  Úintermediate_values                 r   Úmean_dimrU    sM  € ô 'Ø�4 ÀTô�M€A€zð �WÑ
€CÜBSØ�‰‹	Ø�5ÑØØ�‰ó	CÑ?€QˆÐ)Ð+>ñ ¡ÙÜ Øfóð ð ˜YÑ'ˆØ $ˆ
�9ÑÜ+Ü�I‰I�N‰N×Ñ×*Ñ*¨F°Añ
Ø9Cñ
Ðð
 #&§,¡,Ð":�#—,’,ÀÇÁ×@QÑ@QÓ@SˆÜÐ'×+Ñ+Ó-°Ñ1Ó2ò 	,ˆAØ×'Ñ'¨Ó+‰Gð	,à Ñ(ˆÙØ—+‘+˜cŸo™oÓ.ˆCØˆ
ð
 ÐÜ˜D &Ð*<ÑKÀ
ÑKÐKr   c                 ón   — t        | ||d¬«      \  }}|j                  d«      } | |j                  fi |¤ŽS r2  rn  r)  s         r   Úmean_defaultrW  4  r•  r   z&self: jt_all, dim: any?, keepdim: any?c                 ó$   — t        | ddg|¢­i |¤ŽS )Nr@   Fr�  r  s      r   Úany_dimsrY  ?  s   € ä˜D %¨Ð@°Ò@¸Ñ@Ð@r   z%self: jt_all, dim: any, keepdim: any?c                 ó¨   — t        | ||d¬«      \  }}|d   g|d<   t        t        j                  j                  j
                  j                  fi |¤ŽS ©NTré   r.   )r   rY  r   r  r  r@   rA   ©rm   rn   ro   r  r  s        r   Úany_dimr]  D  óQ   € ä&Ø�4 ÀTô�M€A€zð
 $ EÑ*Ð+€JˆuÑÜ”E—I‘I—N‘N×&Ñ&×+Ñ+Ñ:¨zÑ:Ð:r   c                 ó$   — t        | ddg|¢­i |¤ŽS )Nr‡   Tr�  r  s      r   Úall_dimsr`  O  s   € ä˜D %¨Ð?°Ò?¸Ñ?Ð?r   c                 ó¨   — t        | ||d¬«      \  }}|d   g|d<   t        t        j                  j                  j
                  j                  fi |¤ŽS r[  )r   r`  r   r  r  r‡   rA   r\  s        r   Úall_dimrb  T  r^  r   c                 ón   — t        | ||d¬«      \  }}|j                  d«      } | |j                  fi |¤ŽS r2  rn  r)  s         r   Úall_any_max_min_defaultrd  _  s?   € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cá�—‘Ñ*˜zÑ*Ð*r   c                 ól   — t        | ||d¬«      \  }}|j                  d«      } | |j                  «      S r2  rn  r)  s         r   Ú_is_true_defaultrf  r  s:   € ô
 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CÙ�—‘ÓÐr   c                 ó~   — t        | ||d¬«      \  }}|d   j                  }t        |d«      }t        | d|g|¢­i |¤ŽS )NTré   rä   r   r   ©r   r   r   r‘  ©rm   rn   ro   r  r  r   Ú	dtype_maxs          r   Úmin_dimrk    óP   € ä&Ø�4 ÀTô�M€A€zð �wÑ×%Ñ%€EÜ" 5¨%Ó0€IÜ˜D %¨ÐD°TÒD¸VÑDÐDr   c                 ó~   — t        | ||d¬«      \  }}|d   j                  }t        |d«      }t        | d|g|¢­i |¤ŽS )NTré   rä   r   r   rh  ©rm   rn   ro   r  r  r   Ú	dtype_mins          r   Úmax_dimrp  Š  rl  r   c                 ó~   — t        | ||d¬«      \  }}|d   j                  }t        |d«      }t        | d|g|¢­i |¤ŽS )NTré   rä   r   Úaminrh  ri  s          r   Úamin_defaultrs  •  óR   € ô 'Ø�4 ÀTô�M€A€zð �wÑ×%Ñ%€EÜ" 5¨%Ó0€IÜ˜D &¨)ÐE°dÒE¸fÑEÐEr   c                 ó~   — t        | ||d¬«      \  }}|d   j                  }t        |d«      }t        | d|g|¢­i |¤ŽS )NTré   rä   r   Úamaxrh  rn  s          r   Úamax_defaultrw  ¢  rt  r   c                 ó~   — t        | ||d¬«      \  }}|d   j                  }t        |d«      }t        | d|g|¢­i |¤ŽS )NTré   rä   r   Úargminrh  ri  s          r   Úargmin_defaultrz  ¯  óR   € ô 'Ø�4 ÀTô�M€A€zð �wÑ×%Ñ%€EÜ" 5¨%Ó0€IÜ˜D (¨IÐG¸ÒGÀÑGÐGr   c                 ó~   — t        | ||d¬«      \  }}|d   j                  }t        |d«      }t        | d|g|¢­i |¤ŽS )NTré   rä   r   Úargmaxrh  rn  s          r   Úargmax_defaultr~  ¼  r{  r   zAgrad: jt_all, dim: any, indices: jt_all, sizes: any, keepdim: anyc                 ó  ‡
— ddl mŠ
 t        | ||d¬«      \  }}|j                  d«      }|j                  |d<   |j                  d«      }|j                  |d<   t        ˆ
fd„t        |d   «      D «       «      }t        t        |d   «      |d	   |d
«      |d	<   |j                  d«      }|j                  j                  |j                  dz
  «      ||<   |dd  }||d<   t        |«      }	||	d<   t         | di |¤Žfi |	¤ŽS )Nr   r¡   Tré   ÚgradrG  c              3   ó:   •K  — | ]  \  }} ‰|«      sŒ|–— Œ y ­wr   r=   )r    rt   r†   r¢   s      €r   r$   z=value_selecting_reduction_backward_default.<locals>.<genexpr>Ù  s   øè ø€ ÒW™D˜A˜qÁmÐTUÕFV”aÑWùs   ƒ”Úsizesr.   Ú"value_selecting_reduction_backwardr   rY   r=   )r©   r¢   r   rú   rÅ   rÈ   rl   r:   ri   rŠ   rY   r¿   r   )rm   rn   ro   r  r  r€  rG  r>   r‚  rk  r¢   s             @r   Ú*value_selecting_reduction_backward_defaultr„  É  s  ø€ õ
 Dä&Ø�4 ÀTô�M€A€zð �>‰>˜&Ó!€DØŸ™€JˆvÑØ�n‰n˜YÓ'€GØ#ŸO™O€JˆyÑäÓW¤I¨j¸Ñ.AÓ$BÔWÓW€Jä(ÜˆJ�wÑÓ Ø�5ÑØØ,ó	€JˆuÑð �N‰N˜7Ó#€EØŸ™×,Ñ,¨W×-@Ñ-@À1Ñ-DÓE€Eˆ*ÑØ�!�"ˆI€EØ€JˆwÑä" 7Ó+€MØ#-€M�-Ñ ä™Ñ*˜zÑ*Ñ<¨mÑ<Ð<r   c                 ó  — t        | ||d¬«      \  }}|j                  d«      }|D ]p  }t        |t        «      st	        d«      ‚|j                  «       |d   j                  «       k7  rt	        d«      ‚t        ||d   j                  «      rŒgt	        d«      ‚ t        |d   j                  «       dz   |d	   |d   j                  d
«      |d	<   t         | |D �cg c]  }|j                  ‘Œ c}fi |¤Žfi t        |d   «      ¤ŽS c c}w )NTré   rÆ  z+stack(): expected all nested tensors inputsr   z9stack(): expected all nested tensors to have the same dimzFstack(): expected all nested tensors to have the same nested structurer   r.   rÝ  )r   rú   r'   r   r2   r.   rŽ   r‘   r:   rY   rÅ   r¿   )rm   rn   ro   r  r  rÆ  r^   s          r   Ústack_defaultr†  í  s  € ä&Ø�4 ÀTô�M€A€zð
 �n‰n˜YÓ'€GØò ˆÜ˜!œ\Ô*ÜÐLÓMÐMà�5‰5‹7�g˜a‘j—n‘nÓ&Ò&ÜØKóð ô " ! W¨Q¡Z×%5Ñ%5Õ6ÜØXóð ðô )Ø�‰
�‰Ó˜1Ñ˜j¨Ñ/°¸±×1GÑ1GÈó€JˆuÑô Ù Ö)˜Aˆa�i‹iÒ)Ñ8¨ZÑ8ñÜ<JÈ7ÐSTÉ:Ó<Vñð ùÚ)s   ÃDzQweight: t, indices: jt, padding_idx: any?, scale_grad_by_freq: any?, sparse: any?c                 ó¸   — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }t         | ||j                  fi |¤Žfi t	        |«      ¤ŽS )NTré   rG  rò   r3  )rm   rn   ro   r  r  rG  rò   s          r   Úembedding_defaultrˆ  	  sf   € ô
 'Ø�4 ÀTô�M€A€zð
 �n‰n˜YÓ'€GØ�^‰^˜HÓ%€FäÙˆV�W—_‘_Ñ3¨
Ñ3ñÜ7EÀgÓ7Nñð r   zYgrad_output: jt, indices: jt, num_weights: any, padding_idx: any, scale_grad_by_freq: anyc                 ó¦   — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      } | |j                  |j                  fi |¤ŽS )NTré   rG  r7  rn  )rm   rn   ro   r  r  rG  r7  s          r   Ú embedding_dense_backward_defaultrŠ  	  sU   € ô
 'Ø�4 ÀTô�M€A€zð �n‰n˜YÓ'€GØ—.‘. Ó/€KÙ�×#Ñ# W§_¡_ÑC¸
ÑCÐCr   c                 ó|   — t        | ||d¬«      \  }}|j                  d«      }|j                  j                  «       S r2  )r   rú   rÅ   Údetachr)  s         r   Úvalues_defaultr�  ,	  s@   € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cð �;‰;×ÑÓÐr   c                 ól   — t        | ||d¬«      \  }}|j                  d«      } | |j                  «      S r2  rn  r)  s         r   Úall_defaultr�  ?	  s8   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cá�—‘ÓÐr   z-self: jt_all, padding: any, output_size: any?c                 ót  — t        | ||d¬«      \  }}|j                  d«      }|j                  �t        d«      ‚|d   }|�||j                     }n3|j
                  �|j                  n|j                  j                  d«      }|j                  «       }|j                  dkD  r|j                  |j                  dz
  d«      }|j                  }	|j                  «       dkD  r|j                  d¬	«      }n$|j                  «       dk(  r|j                  d
«      }|j                  t         j"                  u }
|
r+|j$                  r|j'                  t         j(                  «      }t         j*                  j,                  j/                  ||j0                  g|g|d   «      }|
r+|j$                  r|j'                  t         j"                  «      }t3        |	«      dkD  r|j5                  d
|	dd  «      }nt3        |	«      dk(  r|j7                  d
«      }|j                  dkD  r|j                  |j                  d«      }|S )NTré   rä   z?to_padded_tensor(): not supported for nested tensors with holesrÖ  r   r   r¤   r*  rM   Úpadding)r   rú   rX   r2   rY   Ú_max_seqlen_tensorry  rÅ   rŠ   r˜  r  r‘   r.   râ   rÃ  r   r   Úboolrÿ   rR  Úhalfr  r  rx  rÖ   ri   r.  r’   )rm   rn   ro   r  r  r  rÖ  Úmax_seq_lenr˜  Úvalues_shapeÚis_boolÚ
padded_outs               r   Úto_padded_tensor_defaultr™  J	  sø  € ô
 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cà
‡|�|ÐÜØMó
ð 	
ð
 ˜]Ñ+€KØÐØ! #§/¡/Ñ2‰ð ×%Ñ%Ð1ð �OŠOà—‘×!Ñ! !Ó$ð 	ð �Z‰Z‹\€FØ
‡�˜ÒØ×!Ñ! #§/¡/°AÑ"5°qÓ9ˆØ—<‘<€LØ‡z�zƒ|�aÒØ—‘¨!�Ó,‰Ø	�‰‹˜Ò	Ø×!Ñ! "Ó%ˆð �l‰lœeŸj™jÐ(€GÙ�6—>’>Ø—‘œ5Ÿ:™:Ó&ˆÜ—‘—‘×?Ñ?ØØ	�‰ˆØ	ˆØ�9Ñó	€Jñ �:×%Ò%Ø—]‘]¤5§:¡:Ó.ˆ
ô ˆ<Ó˜1ÒØ×)Ñ)¨"¨l¸1¸2Ð.>Ó?‰
Ü	ˆ\Ó	˜aÒ	Ø×'Ñ'¨Ó+ˆ
Ø
‡�˜ÒØ×)Ñ)¨#¯/©/¸1Ó=ˆ
àÐr   zcpadded: t, offsets: t, dummy: jt, ragged_idx: any?, min_seqlen: any?, max_seqlen: any?, sum_S: any?c                 óŽ  — t        | ||d¬«      \  }}|d   |d   }}|j                  dd«      }|dkD  r|j                  |d«      }|j                  }|j	                  «       dkD  r|j                  d¬	«      }n$|j	                  «       dk  r|j                  d
«      }|j                  t        j                  u }	|	r+|j                  r|j                  t        j                  «      }t        j                  j                  j                  ||g|d   «      }
|	r+|
j                  r|
j                  t        j                  «      }
t!        |«      dkD  r|
j#                  d
|dd  «      }
nt!        |«      dk  r|
j%                  d
«      }
|dkD  r|
j                  |dz
  d«      }
|d   }|d   }i }|�||d<   |�||d<   t'        |
|||¬«      S )NTré   Úpaddedr¼   r>   r   rÜ  r¤   r*  rM   rÍ   r   rÎ   rÏ   )rY   r¾   )r   r¥   r  r‘   r.   râ   rÃ  r   r   r“  rÿ   rR  r”  r  r  rz  ri   r.  r’   r   )rm   rn   ro   r  r  r›  r¼   r>   Úpadded_ragged_dim1_shaper—  r˜  rÎ   rÏ   Úmetadata_caches                 r   Ú"_nested_from_padded_tensor_defaultrž  ‰	  sÈ  € ô
 'Ø�4 ÀTô�M€A€zð ! Ñ*¨J°yÑ,AˆG€FØ—‘ ¨aÓ0€Jð �A‚~Ø×!Ñ! *¨aÓ0ˆØ%Ÿ|™|ÐØ‡z�zƒ|�aÒØ—‘¨!�Ó,‰Ø	�‰‹˜Ò	Ø×!Ñ! "Ó%ˆð �l‰lœeŸj™jÐ(€GÙ�6—>’>Ø—‘œ5Ÿ:™:Ó&ˆÜ�Y‰Y�^‰^×;Ñ;Ø��	˜: gÑ.ó€Fñ �6—>’>Ø—‘œ5Ÿ:™:Ó&ˆô Ð#Ó$ qÒ(Ø×!Ñ! "Ð&>¸q¸rÐ&BÓC‰Ü	Ð%Ó	&¨Ò	*Ø—‘ Ó#ˆØ�A‚~Ø×!Ñ! *¨q¡.°!Ó4ˆà˜LÑ)€JØ˜LÑ)€JØ€NØÐØ'1ˆ�|Ñ$ØÐØ'1ˆ�|Ñ$äØØØØ&ô	ð r   zcvalues: t, offsets: t, dummy: jt_all, lengths: t?, ragged_idx: any?, min_seqlen: t?, max_seqlen: t?c                 ó¢   — t        | ||d¬«      \  }}|d   |d   |d   }}}|d   }|d   }	|d   }
i }|	�|	|d<   |
�|
|d<   t        |||||¬	«      S )
NTré   rä   r¼   r½   r>   rÎ   rÏ   )r½   rY   r¾   )r   r   )rm   rn   ro   r  r  r˜  r¼   r½   r>   rÎ   rÏ   r�  s               r   Ú _nested_view_from_jagged_defaultr   Â	  sŸ   € ô
 'Ø�4 ÀTô�M€A€zð
 	�7ÑØ�9ÑØ�9Ñð ˆG€Fð
 ˜LÑ)€JØ˜LÑ)€JØ˜LÑ)€JØ€NØÐØ'1ˆ�|Ñ$ØÐØ'1ˆ�|Ñ$äØØØØØ&ôð r   c                 ó`   — t        | ||d¬«      \  }}|j                  d«      }|j                  S r2  )r   rú   rÖ   r)  s         r   Ú_nested_get_offsetsr¢  â	  ó3   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�<‰<Ðr   c                 ó`   — t        | ||d¬«      \  }}|j                  d«      }|j                  S r2  )r   rú   rX   r)  s         r   Ú_nested_get_lengthsr¥  ì	  r£  r   c                 ó`   — t        | ||d¬«      \  }}|j                  d«      }|j                  S r2  )r   rú   rY   r)  s         r   Ú_nested_get_ragged_idxr§  ö	  s3   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�?‰?Ðr   c                 ó€   — t        | ||d¬«      \  }}|j                  d«      }|j                  j                  dd «      S )NTré   rä   rÎ   ©r   rú   r¾   r¥   r)  s         r   Ú_nested_get_min_seqlenrª   
  óB   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ×Ñ×"Ñ" <°Ó6Ð6r   c                 ó€   — t        | ||d¬«      \  }}|j                  d«      }|j                  j                  dd «      S )NTré   rä   rÏ   r©  r)  s         r   Ú_nested_get_max_seqlenr­  

  r«  r   zself: jt, mask: anyc                 ó(  — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }|j                  dkD  rt        d«      ‚|j                  |j                  k7  r%t        d|j                  › d|j                  › �«      ‚|j
                  j                  |j                  «       «      }t        j                  |j                  «       j                  d	¬
«      d«      }t        |«      }||j                     |d<   t        dd|i|¤ŽS )NTré   rä   r�  r¤   z3masked_select only support 2-D selections currentlyzMask with shape z& is not compatible with input's shape r   rt  r§  r¼   r˜  r=   )r   rú   r"   r2   r‘   rÅ   Úmasked_selectr˜  r«  r¬  rª  r¿   rÖ   r   )	rm   rn   ro   r  r  r  r�  Ú
res_valuesÚmask_cumsums	            r   Úmasked_select_defaultr²  
  s  € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ�>‰>˜&Ó!€Dà
‡x�x�!‚|ÜÐPÓQÐQØ	�‰�d—j‘jÒ	 ÜØ˜tŸz™z˜lÐ*PÐQT×QZÑQZÐP[Ð\ó
ð 	
ð —‘×*Ñ*¨4¯;©;«=Ó9€JÜ—%‘%˜Ÿ™›×,Ñ,°Ð,Ó3°VÓ<€Kä˜#Ó€DØ! #§,¡,Ñ/€Dˆ�OÜñ Øðà
ñð r   z2grad_output: t, self: jt_all, dim: any, index: anyc                 óþ   — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }t        j                  ||j                  ¬«      }|j                  |d   |d   «      j                  |«       |S )NTré   rä   r7  )r   r.   r  )r   rú   r   Ú
zeros_liker   rA  r`  )rm   rn   ro   r  r  r  r7  Ú
grad_inputs           r   Ú_nested_select_backward_defaultr¶  .
  s|   € ô
 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CØ—.‘. Ó/€Kä×!Ñ! #¨[×->Ñ->Ô?€JØ×Ñ�j Ñ'¨°GÑ)<Ó=×CÑCÀKÔPàÐr   zself: jt_all, s: anyc                 ó¤   — |d   }|d   } | |j                   |«        | |j                  |«       |j                  � | |j                  |«       y y r�   )rÅ   rÖ   rX   )rm   rn   ro   r  Ústreams        r   Úrecord_stream_defaultr¹  @
  sM   € à
ˆq‰'€CØ�!‰W€Fáˆ�‰�fÔÙˆ�‰�vÔØ
‡|�|ÐÙˆS�\‰\˜6Õ"ð  r   zRself: jt_all, size: any, dtype: any?, layout: any?, device: any?, pin_memory: any?c                 ó¦   — t        | ||d¬«      \  }}|j                  d«      }t        |d   «      dk(  r | |j                  fi |¤ŽS t	        d«      ‚)NTré   rä   rŠ   r   z2new_empty() not supported for NJT with shape != ())r   rú   ri   rÅ   r2   r)  s         r   Únew_empty_defaultr»  K
  s]   € ô 'Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cä
ˆ:�fÑÓ !Ò#Ù�C—K‘KÑ. :Ñ.Ð.ä
ÐKÓ
LÐLr   zself: jt_all, ...c                 ój   — t        d„ |D «       «      }t         | d„ |D «       i |¤Žfi t        |«      ¤ŽS )Nc              3   óB   K  — | ]  }t        |t        «      sŒ|–— Œ y ­wr   r[   rÂ   s     r   r$   z&activation_backward.<locals>.<genexpr>m
  s   è ø€ ÒL˜s¬j¸¼lÕ.K”sÑLùrÃ   c              3   óX   K  — | ]"  }t        |t        «      r|j                  n|–— Œ$ y ­wr   )r'   r   rÅ   rÂ   s     r   r$   z&activation_backward.<locals>.<genexpr>p
  s"   è ø€ ÒTÈœZ¨¬\Ô:ˆc�kŠkÀÓCÑTùs   ‚(*rÇ   )rm   rn   ro   r7  s       r   Úactivation_backwardr¿  `
  sH   € ô ÑL dÔLÓL€KÜÙÙTÈtÔTð	
àñ	
ñô
 ˜Ó
%ñð r   zself: jt_all, value: anyc                 ó”   — t        | ||d¬«      \  }}|j                  d«      }t         | |j                  fi |¤Žfi t	        |«      ¤ŽS r2  r3  r)  s         r   Úfill_ScalarrÁ  w
  r5  r   c                 ór   — t        | ||d¬«      \  }}|j                  d«      } | |j                  fi |¤Ž |S r2  rn  r)  s         r   Úfill__ScalarrÃ  ‚
  s?   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€Cáˆ�‰Ñ#˜
Ò#Ø€Jr   c                 ó¸   — t        | ||d¬«      \  }}|j                  d«      }t        |«      } | |j                  «      \  }}t	        |fi |¤Žt	        |fi |¤ŽfS r2  )r   rú   r¿   rÅ   r   )	rm   rn   ro   r  r  r  rk  ÚmantissaÚexponents	            r   Úfrexp_TensorrÇ  Ž
  so   € ä&Ø�4 ÀTô�M€A€zð �.‰.˜Ó
!€CÜ" 3Ó'€Má˜cŸk™kÓ*Ñ€HˆhÜ˜Ñ2 MÑ2´LØñ5Ø!ñ5ð ð r   z+grad: any, self: any, other: any, mask: anyc                 óp  — t        | ||d¬«      \  }}|j                  d«      }|j                  d«      }|j                  d«      }|j                  d«      }|€yd }	|d   r&t        j                  ||j	                  d	d
«      «      }	d }
|d   r&t        j                  |j	                  d	d
«      |«      }
|	|
fS )NTré   r€  rä   rÎ  r�  rö   r   rM   éþÿÿÿr   )r   rú   r   r;  r  )rm   rn   ro   r  r  r€  r  rÎ  Úgrad_input_maskÚ	grad_selfÚ
grad_others              r   Úmatmul_backward_defaultrÍ  �
  s¸   € ô
 'Ø�4 ÀTô�M€A€zð �>‰>˜&Ó!€DØ
�.‰.˜Ó
!€CØ�N‰N˜7Ó#€EØ —n‘n VÓ,€Oà€|Øà€IØ�qÒÜ—L‘L  u§¡°r¸2Ó'>Ó?ˆ	à€JØ�qÒÜ—\‘\ #§-¡-°°BÓ"7¸Ó>ˆ
à�zÐ"Ð"r   z	self: anyc                 ó   — ddl m}  |«       S )Nr   )Ú_nt_view_dummy)Ú$torch.nested._internal.nested_tensorrÏ  )rm   rn   ro   rÏ  s       r   Ú_nested_get_jagged_dummyrÑ  º
  s   € åCáÓÐr   r  ÚIMPLrÑ  ÚCPUÚCUDAÚMeta)F)TFF)r   rõ   )îr°   r  rü   Útypingr   Útorch.nn.functionalrv  rw  r«  Útorch.fx.operator_schemasr   Útorch.nested._internal.sdpar   rÒ   r   r	   r)   ÚAnyÚ__annotations__r
   ÚDictr   r   r:   rG   Ústrrz   r‚   rŽ   r“   rŸ   r±   Úregister_jagged_funcÚCallabler¹   r¿   r²   r³   r
  r  r  r  r  r  r.   r  r  r  r  r  ÚprimrJ  r  rŠ   r   rH  r&  r#  r(  r*  r=  r0  Úlinearr4  Úlinear_backwardrD  rR  r   rF  Ú_to_copyr^  r`  rh  rŒ  Ú
empty_likeÚ	ones_liker´  Ú	rand_likeÚ
randn_likerl  Ú	full_likeÚrandint_likeÚ	low_dtypeÚzero_ro  Ú_softmaxr€  Ú_log_softmaxrƒ  Ú_softmax_backward_datar†  Únative_dropoutr‹  Únative_dropout_backwardrŽ  r  Údim_intr’  r”  rf   rR   r™  r›  r�  rŸ  r¤  r´  r-  r  r¿  r’   rÁ  rÃ  rÄ  rÇ  rÌ  r;  rÞ  Úbmmrâ  rÕ   ræ  rÉ  rè  rë  ró  Úwherer9  rö  Ú_pin_memoryrø  Ú	is_pinnedrú  Úis_same_sizerü  r‘  rª   r  rR  r  r  r  Úpermuter   ÚviewÚ_unsafe_viewr(  Únative_layer_normr:  Únative_layer_norm_backwardr?  rA  rB  rD  rE  Ú	index_putrI  ÚconvolutionrP  r4  rU  rW  r@   rA   rY  r]  r‡   r`  rb  r   r   rd  Ú_is_all_trueÚ_is_any_truerf  rk  rp  rr  rs  rv  rw  ry  rz  r}  r~  rƒ  r„  rÝ  r†  Ú	embeddingrˆ  Úembedding_dense_backwardrŠ  r˜  Ú_nested_get_valuesr�  r�  r×  r™  Ú_nested_from_padded_tensorrž  Ú_nested_view_from_jaggedr   r¢  r¥  r§  rª  r­  r¯  r²  Ú_nested_select_backwardr¶  Úrecord_streamr¹  Ú	new_emptyÚ	new_zerosÚnew_onesr»  Úelu_backwardÚhardshrink_backwardÚhardsigmoid_backwardÚhardtanh_backwardÚsoftplus_backwardÚsoftshrink_backwardr¿  ÚfillÚScalarrÁ  Úfill_rÃ  ÚfrexprÇ  Úmatmul_backwardrÍ  rÑ  ÚlibraryÚ_scoped_libraryÚimplr=   r   r   ú<module>r     s  ðä Û Û Ü ã ß Ð Ý 8Ý Kå 'ð €ˆˆc‰Ó à#%Ð �$�s˜C�x‘.Ó %òHóð6 ØØóó:Yð:=˜Sð =¸Dó =ð@
Øð
Ø#&ð
Ø+7ð
ØADð
à	ó
òòò0ð. )�y×(Ñ(¨Ð8HÓIÐ ð&¨H°t©Oó &òRòòLSò^c$ñL à�	‰	�‰×3Ñ3×;Ñ;Ø�	‰	�‰×Ñ×'Ñ'Ø�	‰	�‰×Ñ×"Ñ"Ø�	‰	�‰×Ñ×$Ñ$Ø�	‰	�‰× Ñ ×(Ñ(Ø�	‰	�‰×!Ñ!×)Ñ)Ø�	‰	�‰×)Ñ)×1Ñ1ðð óñ0óð0ñ, �e—i‘i—n‘n×+Ñ+×3Ñ3°^ÓDñó Eðñ Ø
‡Y�Y‡^�^×Ñ× Ñ Ð!Øóò
ó	ð
ñ �e—i‘i—n‘n×2Ñ2×:Ñ:¸NÓKñFó LðFð(Ñ Ø	‡I�I‡N�N× Ñ ×.Ñ.Ð0Sóàôñ
 Ø	‡I�I‡N�N×$Ñ$×,Ñ,Ð.QóñOóðOñ( Ø	‡I�I‡N�N×Ñ× Ñ Ð"FóñEóðEñ4 �e—i‘i—n‘n×+Ñ+×3Ñ3Ð5UÓVñPó WðPñ Ø	‡I�I‡N�N×"Ñ"×*Ñ*Ø<óñ"ó	ð"ñJ �e—i‘i—n‘n×'Ñ'×-Ñ-Ð/JÓKñPó LðPñ �e—i‘i—n‘n×-Ñ-×5Ñ5°~ÓFñ&ó Gð&ñR Ø	‡I�I‡N�N×Ñ× Ñ Ð"Qóñóðð: DÑ �U—Y‘Y—^‘^×*Ñ*×2Ñ2°NÓ CØôñ
 à�	‰	�‰×!Ñ!×)Ñ)Ø�	‰	�‰× Ñ ×(Ñ(Ø�	‰	�‰×!Ñ!×)Ñ)Ø�	‰	�‰× Ñ ×(Ñ(Ø�	‰	�‰×!Ñ!×)Ñ)ðð ó	ñ-5ó	ð-5ð` XÑ �U—Y‘Y—^‘^×-Ñ-×5Ñ5Ð7VÓ WØôð UÑ �U—Y‘Y—^‘^×0Ñ0×8Ñ8Ð:SÓ TØôðÑ Ø	‡I�I‡N�N×Ñ×)Ñ)Ð+Nóàôñ
 �e—i‘i—n‘n×*Ñ*×2Ñ2°NÓCñó Dðñ Ø	‡I�I‡N�N×Ñ×#Ñ#Ð%QóñEPóðEPñP Ø	‡I�I‡N�N×Ñ×'Ñ'Ð)Uóñ"Póð"PñJ Ø	‡I�I‡N�N×)Ñ)×1Ñ1Ø=óñó	ðñ Ø	‡I�I‡N�N×!Ñ!×)Ñ)Ð+Nóñ
óð
ñ Ø	‡I�I‡N�N×*Ñ*×2Ñ2Ø+óñ	ó	ð	ñ Ø	‡I�I‡N�N×Ñ×ÑØ8óñ>ó	ð>ñ �e—i‘i—n‘n×)Ñ)×1Ñ1Ð3NÓOñ+ó Pð+ñ Ø	‡I�I‡N�N×Ñ×ÑÐ!Góñóðñ" Ø	‡I�I‡N�N×#Ñ#×+Ñ+Ð-Tóñóðñ" Ø	‡I�I‡N�N×Ñ×!Ñ!Ð#Póñ7óð7ñ  �e—i‘i—n‘n×*Ñ*×2Ñ2Ð4VÓWñ&
ó Xð&
ñR �e—i‘i—n‘n×+Ñ+×/Ñ/Ð1JÓKñEó LðEñP �e—i‘i—n‘n×,Ñ,×0Ñ0Ð2FÓGñKó HðKñ �e—i‘i—n‘n×.Ñ.×6Ñ6Ð8PÓQñEó RðEñ, �e—i‘i—n‘n×(Ñ(×0Ñ0Ð2KÓLñó Mðñ2 �e—i‘i—n‘n×+Ñ+×3Ñ3Ð5LÓMñjó NðjñZ �e—i‘i—n‘n×(Ñ(×0Ñ0Ð2KÓLñEó MðEñ  Ø	‡I�I‡N�N×Ñ×!Ñ!Ð#LóñNóðNñ" �e—i‘i—n‘n×.Ñ.×6Ñ6Ð8LÓMñKó NðKñ �e—i‘i—n‘n×1Ñ1×9Ñ9Ð;TÓUñó Vðñ" �e—i‘i—n‘n×6Ñ6×>Ñ>ÀÓOñó Pðñ> Ø	‡I�I‡N�N×Ñ×ÑÐIóñóðñ$ �e—i‘i—n‘n×0Ò0×8Ñ8Ð:RÓSñPó TðPñ �e—i‘i—n‘n×.Ò.×6Ñ6Ð8PÓQñ+ó Rð+ñ Ø	‡I�I‡N�N×Ò×'Ñ'Ð)Fóñ*óð*ògFñT �e—i‘i—n‘n×(Ò(×0Ñ0Ð2MÓNñ+ó Oð+ñ Ø	‡I�I‡N�N×Ò×"Ò"Ø9óñ=ó	ð=ñ Ø	‡I�I‡N�N×Ò× Ñ Ð"Fóñ'Póð'PñT �e—i‘i—n‘n×,Ò,×4Ñ4Ð6OÓPñ%Gó Qð%GñP Ø
‡Y�Y‡^�^×Ò× Ñ  %§)¡)§.¡.×"=Ò"=×"EÑ"EÐFØóñ,Ró	ð,Rñ^ Ø	‡I�I‡N�N×$Ò$×,Ñ,ØNóñ^Dó	ð^DñB Ø	‡I�I‡N�N×-Ò-×5Ñ5Øvóñ
Kó	ð
Kñ �e—i‘i—n‘n×+Ò+×/Ñ/Ð1UÓVñGó WðGñ8 Ø	‡I�I‡N�N×Ò×ÑØ=óñ
Pó	ð
Pñ Ø	‡I�I‡N�N×Ò×$Ñ$Ø>óñ Ø	‡I�I‡N�N×Ò×%Ñ%Ø>óñUó	ó	ðUñp Ø	‡I�I‡N�N×Ò×&Ñ&ðGóñ
Póð
Pñ Ø	‡I�I‡N�N×Ò×ÑÐRóñ&Lóð&LñR �e—i‘i—n‘n×)Ò)×1Ñ1Ð3NÓOñ+ó Pð+ñ �e—i‘i—n‘n×(Ò(×-Ò-Ð/WÓXñAó YðAñ �e—i‘i—n‘n×(Ò(×,Ñ,Ð.UÓVñ;ó Wð;ñ �e—i‘i—n‘n×(Ò(×-Ò-Ð/WÓXñ@ó Yð@ñ �e—i‘i—n‘n×(Ò(×,Ñ,Ð.UÓVñ;ó Wð;ñ à�	‰	�‰×Ò×"Ñ"Ø�	‰	�‰×Ò×"Ñ"Ø�	‰	�‰×Ò×"Ñ"Ø�	‰	�‰×Ò×"Ñ"ð	ð óñ+óð+ñ Ø
‡Y�Y‡^�^× Ò ×(Ñ(¨%¯)©)¯.©.×*EÒ*E×*MÑ*MÐNØóñó	ðñ �e—i‘i—n‘n×(Ò(×,Ñ,Ð.UÓVñEó WðEñ �e—i‘i—n‘n×(Ò(×,Ñ,Ð.UÓVñEó WðEñ Ø	‡I�I‡N�N×Ò×ÑÐ!IóñFóðFñ Ø	‡I�I‡N�N×Ò×ÑÐ!IóñFóðFñ Ø	‡I�I‡N�N×Ò×!Ñ!Ð#KóñHóðHñ Ø	‡I�I‡N�N×Ò×!Ñ!Ð#KóñHóðHñ Ø	‡I�I‡N�N×5Ò5×=Ñ=ØGóñ=ó	ð=ñ@ �e—i‘i—n‘n×*Ò*×2Ñ2Ð4MÓNñó Oðñ< Ø	‡I�I‡N�N×Ò×$Ñ$ØWóñó	ðñ Ø	‡I�I‡N�N×+Ò+×3Ñ3Ø_óñDó	ðDñ à�	‰	�‰×Ò×%Ñ%Ø�	‰	�‰×)Ò)×1Ñ1ðð óñ	 óð	 ñ �e—i‘i—n‘n×(Ò(×0Ñ0°.ÓAñó Bðñ Ø	‡I�I‡N�N×#Ò#×+Ñ+Ø3óñ8ó	ð8ñv Ø	‡I�I‡N�N×-Ò-×5Ñ5Øióñ2ó	ð2ñj Ø	‡I�I‡N�N×+Ò+×3Ñ3Øióñó	ðñ8 �e—i‘i—n‘n×8Ò8×@Ñ@À.ÓQñó Rðñ �e—i‘i—n‘n×8Ò8×@Ñ@À.ÓQñó Rðñ �e—i‘i—n‘n×;Ò;×CÑCÀ^ÓTñó Uðñ �e—i‘i—n‘n×;Ò;×CÑCÀ^ÓTñ7ó Uð7ñ �e—i‘i—n‘n×;Ò;×CÑCÀ^ÓTñ7ó Uð7ñ �e—i‘i—n‘n×2Ò2×:Ñ:Ð<QÓRñó Sðñ0 Ø	‡I�I‡N�N×*Ò*×2Ñ2Ø8óñó	ðñ �e—i‘i—n‘n×2Ò2×:Ñ:Ð<RÓSò#ó Tð#ñ à�	‰	�‰× Ò ×(Ñ(Ø�	‰	�‰× Ò ×(Ñ(Ø�	‰	�‰×Ò×'Ñ'ðð
 Yóñ
Móð
Mñ à�	‰	�‰×#Ò#×+Ñ+Ø�	‰	�‰×*Ò*×2Ñ2Ø�	‰	�‰×+Ò+×3Ñ3Ø�	‰	�‰×(Ò(×0Ñ0Ø�	‰	�‰×(Ò(×0Ñ0Ø�	‰	�‰×*Ò*×2Ñ2ðð ó
ñ	ó
ð	ñ �e—i‘i—n‘n×)Ò)×0Ò0Ð2LÓMñPó NðPñ �e—i‘i—n‘n×*Ò*×1Ò1Ð3MÓNñó Oðñ �e—i‘i—n‘n×*Ò*×1Ñ1°>ÓBñó Cðñ Ø	‡I�I‡N�N×"Ò"×*Ñ*Ø1óñ#ó	ð#ñ2 �e—i‘i—n‘n×=Ò=×EÑEÀ{ÓSñó Tðð ‡]‚]×"Ò" 6¨6Ó2ð L°dØ‡I‚IÐ(Ð*BÀEÔJØ‡I‚IÐ(Ð*BÀFÔKØ‡I‚IÐ(Ð*BÀFÔK÷L÷ Lñ Lús   Áb;=AdÁdAd
