§
    �ŠtjÄ{ ã            
       óà#  — U d dl Z d dlZd dlT 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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j'        j(        j)        j*        ej'        j(        j+        j*        ej'        j(        j,        j*        ej'        j(        j-        j*        ej'        j(        j.        j*        ej'        j(        j/        j*        ej'        j(        j0        j*        gd¦  «        d „ ¦   «         Z1 e ej'        j2        j3        j*        d¦  «        d!„ ¦   «         Z4 e ej'        j(        j5        j*        gd¦  «        dºd"„¦   «         Z6 e ej'        j(        j7        j*        d¦  «        d#„ ¦   «         Z8  e ej'        j(        j7        j9        d$¦  «        e8¦  «          e ej'        j(        j:        j*        d$¦  «        d%„ ¦   «         Z; e ej'        j(        j<        j*        d&¦  «        d'„ ¦   «         Z= e ej'        j(        j>        j*        d(¦  «        d)„ ¦   «         Z? e ej'        j(        j@        j*        d*¦  «        d+„ ¦   «         ZA e ej'        j(        jB        jC        d,¦  «        d-„ ¦   «         ZD e ej'        j(        jE        j*        d¦  «        d.„ ¦   «         ZF e ej'        j(        jG        j*        d/¦  «        d0„ ¦   «         ZH  e ej'        j(        jI        j*        d¦  «        e$¦  «          e ej'        j(        jJ        j*        ej'        j(        jK        j*        ej'        j(        jL        j*        ej'        j(        jM        j*        ej'        j(        jN        j*        gd¦  «        d1„ ¦   «         ZO  e ej'        j(        jP        j*        d2¦  «        eO¦  «           e ej'        j(        jQ        j*        d3¦  «        eO¦  «           e ej'        j(        jQ        jR        d4¦  «        eO¦  «          e ej'        j(        jS        j*        d¦  «        d5„ ¦   «         ZT e ej'        j(        jU        j*        d6¦  «        d7„ ¦   «         ZV e ej'        j(        jW        j*        d6¦  «        d8„ ¦   «         ZX e ej'        j(        jY        j*        d9¦  «        d:„ ¦   «         ZZ e ej'        j(        j[        j*        d;¦  «        d<„ ¦   «         Z\ e ej'        j(        j]        j*        d=¦  «        d>„ ¦   «         Z^ e ej'        j(        j_        j`        d?¦  «        d@„ ¦   «         Za e ej'        j(        j_        j*        dA¦  «        dB„ ¦   «         Zb e ej'        j(        jc        jd        dC¦  «        dD„ ¦   «         Ze e ej'        j(        jf        j*        dE¦  «        dF„ ¦   «         Zg e ej'        j(        jh        j*        dG¦  «        dH„ ¦   «         Zh e ej'        j(        ji        j*        dI¦  «        dJ„ ¦   «         Zj e ej'        j(        jk        jl        dK¦  «        dL„ ¦   «         Zm e ej'        j(        jn        j,        dM¦  «        dN„ ¦   «         Zo e ej'        j(        jp        j*        dO¦  «        dP„ ¦   «         Zq e ej'        j(        jr        j*        dQ¦  «        dR„ ¦   «         Zs e ej'        j(        jt        j*        dS¦  «        dT„ ¦   «         Zu e ej'        j(        jv        j*        dU¦  «        dV„ ¦   «         Zw e ej'        j(        jx        j*        dW¦  «        dX„ ¦   «         Zy e ej'        j(        jz        j*        dY¦  «        dZ„ ¦   «         Z{ e ej'        j(        j|        j*        d[¦  «        d\„ ¦   «         Z| e ej'        j(        j}        j*        d]¦  «        d^„ ¦   «         Z} e ej'        j(        j~        j        d_¦  «        d`„ ¦   «         Z€ e ej'        j(        j�        j*        da¦  «        db„ ¦   «         Z‚ e ej'        j(        jƒ        j*        da¦  «        dc„ ¦   «         Z„ e ej'        j(        j…        j*        dd¦  «        de„ ¦   «         Z†df„ Z‡ e ej'        j(        jˆ        j*        dA¦  «        dg„ ¦   «         Z‰ e ej'        j(        jˆ        jŠ        dh¦  «        di„ ¦   «         Z‹ e ej'        j(        jŒ        jl        dj¦  «        dk„ ¦   «         Z� e ej'        j(        jŽ        j*        dl¦  «        dm„ ¦   «         Z� e ej'        j(        j�        j*        ej'        j(        j‘        j*        gd[¦  «        dn„ ¦   «         Z’ e ej'        j(        j“        j*        do¦  «        dp„ ¦   «         Z” e ej'        j(        j•        j*        dq¦  «        dr„ ¦   «         Z– e ej'        j(        j—        jl        ds¦  «        dt„ ¦   «         Z˜ e ej'        j(        j™        jd        du¦  «        dv„ ¦   «         Zš e ej'        j(        j›        j*        dw¦  «         e ej'        j(        jœ        j*        dw¦  «        dx„ ¦   «         ¦   «         Zœ e ej'        j(        j�        j*        dy¦  «        dz„ ¦   «         Zž e ej'        j(        jŸ        j,        dh¦  «        d{„ ¦   «         Z  e ej'        j(        jŸ        j*        dA¦  «        d|„ ¦   «         Z¡ e ej'        j(        j¢        j£        d}¦  «        d~„ ¦   «         Z¤ e ej'        j(        j¢        j,        d¦  «        d€„ ¦   «         Z¥ e ej'        j(        j¦        j£        d}¦  «        d�„ ¦   «         Z§ e ej'        j(        j¦        j,        d¦  «        d‚„ ¦   «         Z¨ e ej'        j(        j¦        j*        ej'        j(        j¢        j*        ej'        j(        j©        j*        ej'        j(        jª        j*        gd¦  «        dƒ„ ¦   «         Z« e ej'        j(        j¬        j*        ej'        j(        j­        j*        gd¦  «        d„„ ¦   «         Z® e ej'        j(        jª        j,        d¦  «        d…„ ¦   «         Z¯ e ej'        j(        j©        j,        d¦  «        d†„ ¦   «         Z° e ej'        j(        j±        j*        d}¦  «        d‡„ ¦   «         Z² e ej'        j(        j³        j*        d}¦  «        dˆ„ ¦   «         Z´ e ej'        j(        jµ        j*        d}¦  «        d‰„ ¦   «         Z¶ e ej'        j(        j·        j*        d}¦  «        dŠ„ ¦   «         Z¸ e ej'        j(        j¹        j*        d‹¦  «        dŒ„ ¦   «         Zº e ej'        j(        j»        j*        dQ¦  «        d�„ ¦   «         Z¼ e ej'        j(        j½        j*        dŽ¦  «        d�„ ¦   «         Z¾ e ej'        j(        j¿        j*        d�¦  «        d‘„ ¦   «         ZÀ e ej'        j(        jÁ        j*        ej'        j(        jÂ        j*        gd¦  «        d’„ ¦   «         ZÃ e ej'        j(        j¦        j*        d¦  «        d“„ ¦   «         ZÄ e ej'        j(        jÅ        j*        d”¦  «        d•„ ¦   «         ZÆ e ej'        j(        jÇ        j*        d–¦  «        d—„ ¦   «         ZÈ e ej'        j(        jÉ        j*        d˜¦  «        d™„ ¦   «         ZÊ e ej'        j(        jË        j*        d¦  «        dš„ ¦   «         ZË e ej'        j(        jÌ        j*        d¦  «        d›„ ¦   «         ZÌ e ej'        j(        jÍ        j*        d¦  «        dœ„ ¦   «         ZÍ e ej'        j(        jÎ        j*        d¦  «        d�„ ¦   «         ZÎ e ej'        j(        jÏ        j*        d¦  «        dž„ ¦   «         ZÏ e ej'        j(        jÐ        j*        dŸ¦  «        d „ ¦   «         ZÑ e ej'        j(        jÒ        j*        d¡¦  «        d¢„ ¦   «         ZÓ e ej'        j(        jÔ        j*        d£¦  «        dºd¤„¦   «         ZÕ e ej'        j(        jÖ        j*        ej'        j(        j×        j*        ej'        j(        jØ        j*        gd¥¦  «        d¦„ ¦   «         ZÙ e ej'        j(        jÚ        j*        ej'        j(        jÛ        j*        ej'        j(        jÜ        j*        ej'        j(        jÝ        j*        ej'        j(        jÞ        j*        ej'        j(        jß        j*        gd§¦  «        d¨„ ¦   «         Zà e ej'        j(        já        jâ        d©¦  «        dª„ ¦   «         Zã e ej'        j(        jä        jâ        d©¦  «        d«„ ¦   «         Zå e ej'        j(        jæ        jd        d¦  «        d¬„ ¦   «         Zç e ej'        j(        jè        j*        d­¦  «        d®„ ¦   «         Zé e ej'        j(        jê        j*        d¯¦  «        d°„ ¦   «         Zêejë         ì                    d±d²¦  «        5 Z(e( í                    d³eêd´¦  «         e( í                    d³eêdµ¦  «         e( í                    d³eêd¶¦  «         ddd¦  «         dS # 1 swxY w Y   dS )»é    N)Ú*)Únormalize_function)Ú#jagged_scaled_dot_product_attentioné   )Ú_jagged_numelÚNestedTensorÚ__all__ÚJAGGED_OPS_TABLEc                 óÈ   — | j         r8|dk    rt          j        | ¦  «        j        nt          j        | ¦  «        j        S |dk    rt          d¦  «        nt          d¦  «        S )NÚmaxÚinfú-inf)Úis_floating_pointÚtorchÚfinfor   ÚminÚfloat)ÚdtypeÚpadding_types     úX/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/nested/_internal/ops.pyÚ_get_padding_valuer      sa   € ØÔð Hà&2°eÒ&;Ð&;�EŒK˜ÑÔÔ"Ð"ÅÄÈUÑASÔASÔAWð	
ð  ,¨uÒ4Ð4�u�U‰|Œ|ˆ|½%À¹-¼-ÐGó    Fc                 ór  ‡ ‡— ddl m} t          |t          t          f¦  «        rU t          |¦  «        ˆ ˆfd„|D ¦   «         ¦  «        } t          |¦  «        t                               |¦  «        ¦  «        S |r |‰ |¦  «        }|dk    r|‰ k     st          d|› d‰ › �¦  «        ‚|dk    r‰dz
  n|dz
  S )Nr   ©Úcanonicalize_dimsc              3   ó:   •K  — | ]}t          ‰|‰¦  «        V — Œd S ©N©Ú_outer_to_inner_dim)Ú.0ÚdÚndimÚ
ragged_dims     €€r   ú	<genexpr>z&_outer_to_inner_dim.<locals>.<genexpr>"   s0   øè è € ÐQÐQÈÕ.¨t°Q¸
ÑCÔCÐQÐQÐQÐQÐQÐQr   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Ð5Ð5Ð5Ð5Ð5å�#��t�}Ñ%Ô%ð 3Ø•�c‘”ÐQÐQÐQÐQÐQÈSÐQÑQÔQÑQÔQˆà�t�F‰|Œ|�DŸMšM¨&Ñ1Ô1Ñ2Ô2Ð2àð +ØÐ  cÑ*Ô*ˆà�1ŠHˆH˜˜tš˜ÝÐF CÐFÐFÀÐFÐFÑGÔGÐGð  š(˜(ˆ
�Q‰ˆ¨¨a©ðr   Tc                 óÔ   — 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_dimr9   4   s¿   € ð 6Ð5Ð5Ð5Ð5Ð5àÐ  cÑ*Ô*€GØ�*ÒÐÐ%5ÐÝ˜gÐWÐWÐWÑXÔXÐXØ	�AŠˆ˜oˆÝ˜gÐRÐRÐRÑSÔSÐSð  ð	Õ˜D '¨:Ñ6Ô6Ð6àð ð
 ð )ð %¨š\ÐØÐ'Ð(Ð(Ø€Jr   c                 ób  ‡ ‡‡	— ddl mŠ	 t          |t          t          f¦  «        st          dt          |¦  «        › �¦  «        ‚ˆ	ˆ fd„|D ¦   «         }d|v }‰|v }t          ˆfd„|D ¦   «         ¦  «        }t          t           	                    ˆ ˆfd„|D ¦   «         ¦  «        ¦  «        }||||fS )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                 ó(   •— g | ]} ‰‰|¦  «        ‘ŒS © r<   )r    r!   r   r"   s     €€r   ú
<listcomp>z%_wrap_jagged_dims.<locals>.<listcomp>^   s4   ø€ ð ð ð Ø'(ÐÐ˜$ Ñ"Ô"ðð ð r   c              3   ó0   •K  — | ]}|d k    o|‰k    V — ŒdS )r   Nr<   )r    r!   Ú
ragged_idxs     €r   r$   z$_wrap_jagged_dims.<locals>.<genexpr>d   s0   øè è € ÐPÐP¸a˜q AšvÐ9¨!¨zª/ÐPÐPÐPÐPÐPÐPr   c              3   ó:   •K  — | ]}t          ‰|‰¦  «        V — Œd S r   r   )r    r!   r"   r?   s     €€r   r$   z$_wrap_jagged_dims.<locals>.<genexpr>h   s0   øè è € ÐUÐUÀ1Õ)¨$°°:Ñ>Ô>ÐUÐUÐUÐUÐUÐUr   )
r%   r   r&   r'   r(   r,   r)   Úanyr*   r+   )
r"   Údimsr2   r?   Úwrapped_dimsÚoperate_on_batchÚoperate_on_raggedÚoperate_on_non_batchÚouter_to_inner_dimr   s
   `  `     @r   Ú_wrap_jagged_dimsrH   Q   s  øøø€ ð 6Ð5Ð5Ð5Ð5Ð5å�d�U¥D˜MÑ*Ô*ð 
ÝØWÍ4ÐPTÉ:Ì:ÐWÐWñ
ô 
ð 	
ðð ð ð ð Ø,0ðñ ô €Lð ˜LÐ(ÐØ" lÐ2ÐÝÐPÐPÐPÐPÀ<ÐPÑPÔPÑPÔPÐõ Ý�ŠÐUÐUÐUÐUÐUÈÐUÑUÔUÑUÔUñô Ðð Ð/Ð1BÐDXÐXÐXr   Ú
schema_strÚreturnc                 óˆ  ‡— |                       d¦  «        }d„ |D ¦   «                              d¦  «        }t          |¦  «        |z
  }|d         dk    r|d d…         }nqt          |¦  «        |k    r t          |¦  «        t          |¦  «        k    s>t          d|j        › d| › d|› d	t          |¦  «        › d
t          |¦  «        › d�¦  «        ‚d„ d„ d„ d„ dœ}t          |¦  «        D ]×\  }}	|	                      d¦  «        \  }
}|                     d¦  «        }|r
|d d…         n|}||vrt          d|› �¦  «        ‚|t          |¦  «        k    r |st          d|j        › d| › d|
› �¦  «        ‚Œ‰||         Š|fˆfd„	} |||         ¦  «        s.ddddddœ}t          d|j        › d| › d|
› d||         › �¦  «        ‚ŒØd S )Nú, c                 ó8   — g | ]}|                      d ¦  «        ‘ŒS )ú?)Úendswith©r    Úxs     r   r=   z check_schema.<locals>.<listcomp>p   s"   € ÐBÐBÐB¨Q˜Ÿš C™œÐBÐBÐBr   Téÿÿÿÿú...úNestedTensor ú(z): expected at least z arguments and at most z arguments, but got: z
 argumentsc                 ób   — t          | t          j        ¦  «        ot          | t          ¦  «         S r   )r&   r   ÚTensorr   ©rQ   s    r   ú<lambda>zcheck_schema.<locals>.<lambda>   s$   € •z !¥U¤\Ñ2Ô2ÐV½:ÀaÍÑ;VÔ;VÐ7V€ r   c                 óT   — t          | t          ¦  «        o| j        d u o
| j        dk    S ©Nr   )r&   r   Ú_lengthsÚ_ragged_idxrX   s    r   rY   zcheck_schema.<locals>.<lambda>€   s1   € �
 1¥lÑ3Ô3ð ØŒJ˜$ÐðàŒM˜QÒð r   c                 ó,   — t          | t          ¦  «        S r   ©r&   r   rX   s    r   rY   zcheck_schema.<locals>.<lambda>ƒ   s   € �JØ�|ñ
ô 
€ r   c                 ó   — dS )NTr<   rX   s    r   rY   zcheck_schema.<locals>.<lambda>†   s   € ˜€ r   )ÚtÚjtÚjt_allrA   z: rN   zUnknown arg type: z) missing required argument: c                 ó<   •— |r| d u p
 ‰| ¦  «        S  ‰| ¦  «        S r   r<   )rQ   Úis_optionalÚ	_check_fns     €r   Úcheck_fnzcheck_schema.<locals>.check_fn™   s0   ø€ Øð $Ø˜D�yÐ0 I I¨a¡L¤LÐ0à �y ‘|”|Ð#r   Útensorzoptional tensorz%contiguous jagged layout NestedTensorzjagged layout NestedTensorz
<any type>)ra   zt?rb   rc   rA   z): expected z	 to be a )ÚsplitÚcountÚlenÚ
ValueErrorÚ__name__Ú	enumeraterO   r,   )rI   ÚfuncÚargsÚkwargsÚnamed_arg_typesÚnum_optional_argsÚmin_argsÚarg_type_check_fnsÚiÚnamed_arg_typeÚnameÚarg_typere   Únormalized_arg_typerg   Útype_to_descrf   s                   @r   Úcheck_schemar|   n   sÎ  ø€ Ø ×&Ò& tÑ,Ô,€OØBÐB°/ÐBÑBÔB×HÒHÈÑNÔNÐÝ�?Ñ#Ô#Ð&7Ñ7€Hð �rÔ˜eÒ#Ð#Ø)¨#¨2¨#Ô.ˆˆå�D‘	”	˜XÒ%Ð%­#¨d©)¬)µs¸?Ñ7KÔ7KÒ*KÐ*KÝð) ¤ð )ð )°
ð )ð )ÐQYð )ð )Ý),¨_Ñ)=Ô)=ð)ð )å�t‘9”9ð)ð )ð )ñô ð ð WÐVðð ð
ð 
ð ˆ~ð	ð 	Ðõ ' Ñ7Ô7ð #ð #Ñˆˆ>Ø'×-Ò-¨dÑ3Ô3‰ˆˆhØ×'Ò'¨Ñ,Ô,ˆØ/:ÐH˜h s¨ sœm˜mÀÐØÐ&8Ð8Ð8Ý Ð!KÐ6IÐ!KÐ!KÑLÔLÐLà•�D‘	”	Š>ˆ>Øð Ý ð9 D¤Mð 9ð 9°Jð 9ð 9Ø26ð9ð 9ñô ð ð à&Ð':Ô;ˆ	à$/ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð ˆx˜˜QœÑ Ô ð 	àØ'Ø=Ø6Ø#ðð ˆLõ ð, ¤ð ,ð ,°
ð ,ð ,Èð ,ð ,Ø Ô)ð,ð ,ñô ð ð	ð/#ð #r   ÚaÚa_nameÚbÚb_namec           	      óŽ   — |j         |j                 |j         |j                 k    rt          d| j        › d|› d|› d�¦  «        ‚d S )NrT   z: expected ú and z' to have the same exact offsets tensor.)Ú_sizer]   r1   rm   )ro   r}   r~   r   r€   s        r   Úcheck_ragged_dim_samer„   ®   sk   € ð 	„wˆqŒ}Ô ¤¨¬Ô!7Ò7Ð7Ýð)˜DœMð )ð )°fð )ð )À6ð )ð )ð )ñ
ô 
ð 	
ð 8Ð7r   c                 óÖ   — | j         dz   }| j        d |…         }|d |…         }t          |¦  «        t          |¦  «        k    o&t          d„ t	          ||¦  «        D ¦   «         ¦  «        S )Nr   c              3   ó4   K  — | ]\  }}||k    p|d k    V — ŒdS )rR   Nr<   )r    ÚnsÚss      r   r$   z%raggedness_matches.<locals>.<genexpr>À   s3   è è € ÐHÐH¡5 2 qˆB�!ŠGÐ�q˜B’wÐHÐHÐHÐHÐHÐHr   )r]   rƒ   rk   ÚallÚzip)ÚntÚsizeÚendÚ	nt_raggedÚsize_raggeds        r   Úraggedness_matchesr�   »   sn   € Ø
Œ.˜1Ñ
€CØ”˜˜#˜”€IØ�t˜�t”*€KÝˆy‰>Œ>�S Ñ-Ô-Ò-ð ÝÐHÐH­C°	¸;Ñ,GÔ,GÐHÑHÔHÑHÔHðr   c                 óÔ   — |                       ¦   «         dk    rO| j        d         dk    r>|                      d¦  «        } |                       ¦   «         dk    r| j        d         dk    °>| S ©Nr   r   )r-   ÚshapeÚsqueeze)ra   s    r   Úsqueeze_leading_onesr•   Ä   sX   € ð& �%Š%‰'Œ'�AŠ+ˆ+˜!œ' !œ*¨š/˜/Ø�IŠI�a‰LŒLˆð �%Š%‰'Œ'�AŠ+ˆ+˜!œ' !œ*¨š/˜/à€Hr   c                 óz   ‡ ‡‡— t          ‰t          ¦  «        s‰gŠt          ‰ t          ¦  «        s‰ gŠ ˆˆˆ fd„}|S )Nc                 óF   •‡ — ‰D ]}ˆ ˆfd„}‰D ]} ||¦  «        ||<   ŒŒ‰ S )Nc                 ó   •‡ — ˆ ˆˆfd„}|S )Nc                  ó>   •— t          ‰‰g| ¢R i |¤Ž  ‰‰g| ¢R i |¤ŽS r   )r|   )rp   rq   Úaten_opro   rI   s     €€€r   Úinnerz@register_func.<locals>.wrapper.<locals>.get_inner.<locals>.inneræ   sC   ø€ Ý  ¨TÐC°DÐCÐCÐC¸FÐCÐCÐCØ˜4 Ð9¨$Ð9Ð9Ð9°&Ð9Ð9Ð9r   r<   )rš   r›   ro   rI   s   ` €€r   Ú	get_innerz1register_func.<locals>.wrapper.<locals>.get_innerå   s.   øø€ ð:ð :ð :ð :ð :ð :ð :ð �r   r<   )ro   rš   rœ   ÚtableÚaten_opsrI   Útabless   `   €€€r   Úwrapperzregister_func.<locals>.wrapperâ   sa   øø€ Øð 
	4ð 
	4ˆGðð ð ð ð ð ð  ð 4ð 4�Ø!* ¨7Ñ!3Ô!3��g‘�ð4àˆr   )r&   r(   )rŸ   rž   rI   r    s   ``` r   Úregister_funcr¡   Ü   sa   øøø€ Ý�h¥Ñ%Ô%ð Ø�:ˆÝ�f�dÑ#Ô#ð Ø�ˆðð ð ð ð ð ð ð €Nr   c                 óø  — t                                | d ¦  «        }|�|S t          j        j        | j        v �rAddlm} |D ]'} ||¦  «        rt          d| j	        › d|› �¦  «        ‚Œ(t          d„ |D ¦   «         ¦  «        }|dk    rÁg }| j        j        D ]]}t          |j        t          j        ¦  «        r|                     |j        › d�¦  «          n|                     |j        › d�¦  «         Œ^|                     d	¦  «         d
                     |¦  «        }t'          || g|¢R i |¤Ž t)          j        t,          | ¦  «        S |dk    r+t'          d| g|¢R i |¤Ž t)          j        t.          | ¦  «        S d S )Nr   ©Úis_nested_intrT   z: invalid argument c              3   óJ   K  — | ]}t          |t          j        ¦  «        V — Œd S r   )r&   r   rW   rP   s     r   r$   z lookup_jagged.<locals>.<genexpr>	  s.   è è € ÐHÐH¸a�j¨­E¬LÑ9Ô9ÐHÐHÐHÐHÐHÐHr   r   z: jt_allz: anyrS   rL   é   zlhs: any, rhs: any, ...)r
   Úgetr   ÚTagÚ	pointwiseÚtagsÚ%torch.fx.experimental.symbolic_shapesr¤   r1   rm   ÚsumÚ_schemaÚ	argumentsr&   r)   Ú
TensorTypeÚappendrx   Újoinr|   Ú	functoolsÚpartialÚjagged_unary_pointwiseÚjagged_binary_pointwise)	ro   rp   rq   Údispatch_funcr¤   ÚargÚnum_tensor_argsÚschema_partsÚcheck_schema_strs	            r   Úlookup_jaggedr»   ö   sÙ  € Ý$×(Ò(¨¨tÑ4Ô4€MØÐ ØÐõ „yÔ˜dœiÐ'Ñ'ØGÐGÐGÐGÐGÐGð
 ð 	ð 	ˆCØˆ}˜SÑ!Ô!ð Ý"ØK D¤MÐKÐKÀcÐKÐKñô ð ðõ ÐHÐHÀ4ÐHÑHÔHÑHÔHˆØ˜aÒÐð ˆLØ”|Ô-ð <ð <�Ý˜cœh­Ô(8Ñ9Ô9ð <Ø ×'Ò'¨3¬8Ð(=Ð(=Ð(=Ñ>Ô>Ð>Ø�Eà ×'Ò'¨3¬8Ð(:Ð(:Ð(:Ñ;Ô;Ð;Ð;Ø×Ò Ñ&Ô&Ð&Ø#Ÿyšy¨Ñ6Ô6ÐÝÐ)¨4ÐA°$ÐAÐAÐA¸&ÐAÐAÐAÝÔ$Õ%;¸TÑBÔBÐBØ Ò!Ð!ÝÐ2°DÐJ¸4ÐJÐJÐJÀ6ÐJÐJÐJÝÔ$Õ%<¸dÑCÔCÐCàˆ4r   c                 óp   — |                       ¦   «         |                      ¦   «         | j        | j        dœ}|S )N©ÚoffsetsÚlengthsÚ_metadata_cacher]   r½   )r·   rq   s     r   Úextract_kwargsrÁ     s6   € à—;’;‘=”=Ø—;’;‘=”=ØÔ.Ø”ð	ð €Fð €Mr   c                 óŽ   ‡— t          d„ |D ¦   «         ¦  «        Št           | ˆfd„|D ¦   «         i |¤Žfi t          ‰¦  «        ¤ŽS )Nc              3   óD   K  — | ]}t          |t          ¦  «        ¯|V — Œd S r   r_   ©r    r·   s     r   r$   z)jagged_unary_pointwise.<locals>.<genexpr>+  s1   è è € ÐDÐD�s¥j°µlÑ&CÔ&CÐDˆsÐDÐDÐDÐDÐDÐDr   c              3   ó2   •K  — | ]}|‰u r|j         n|V — Œd S r   ©Ú_values)r    r·   Únjts     €r   r$   z)jagged_unary_pointwise.<locals>.<genexpr>-  s1   øè è € ÐBÐB°c˜c S˜j˜jˆsŒ{ˆ{¨cÐBÐBÐBÐBÐBÐBr   ©Únextr   rÁ   )ro   rp   rq   rÈ   s      @r   r´   r´   )  sm   ø€ å
ÐDÐD˜dÐDÑDÔDÑ
DÔ
D€CÝØˆÐBÐBÐBÐB¸TÐBÑBÔBÐMÀfÐMÐ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 …         ¢R i |¤Žfi t          |¦  «        ¤ŽS t          |                     | j	        |j        |j        ¦  «        ¦  «        ‚t          |t          ¦  «        }|rt          |¦  «        nt          |¦  «        }|r||fn||f\  Š}| 
                    ¦   «         ‰ 
                    ¦   «         k    rt          d¦  «        ‚t          |¦  «        }	‰ 
                    ¦   «         |	 
                    ¦   «         dz   k    r7|r	‰j        |	fn|	‰j        f\  }
}t           | |
|g|dd …         ¢R i |¤Žfi |¤ŽS | 
                    ¦   «         | 
                    ¦   «         k    rô|j        d         |j        d         k    r3t          |                     | j	        |j        |j        ¦  «        ¦  «        ‚ddlm} ‰j        }‰j        }|Š‰j        j        ‰j        dz
           }‰€|Š|                     ˆˆfd„t)          |j        ¦  «        D ¦   «         ¦  «        } ||‰j        ‰j        |||¬	¦  «        }|r‰|fn|‰f\  }
} | |
|g|dd …         ¢R i |¤ŽS t          |                     | j	        |j        |j        ¦  «        ¦  «        ‚)
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_paddedc                 ó4   •— g | ]\  }}|‰j         k    r|n‰‘ŒS r<   ©r]   )r    rv   rQ   r‹   Úpadded_max_Ss      €€r   r=   z+jagged_binary_pointwise.<locals>.<listcomp>m  s-   ø€ ÐWÐWÐW¹D¸A¸q�!�r”~Ò%Ð%ˆQˆQ¨<ÐWÐWÐWr   ©r¾   r?   Úsum_SÚ
min_seqlenÚ
max_seqlen)r&   r   r,   r�   rƒ   rÇ   rÁ   r1   Úformatrm   r-   ÚNotImplementedErrorr•   r“   Únested_tensorrÍ   Ú_maybe_min_seqlenÚ_maybe_max_seqlenr]   Úexpandrn   Ú_offsets)ro   rp   rq   r}   r   Úmismatch_error_msgÚa_is_ntÚextracted_kwargsra   Ú
t_squeezedÚlhsÚrhsrÍ   rÓ   rÔ   Útotal_LÚt_as_ntr‹   rÐ   s                    @@r   rµ   rµ   2  s“  øø€ Ø�Œ7�D˜”G€q€AÝ�q�,Ñ'Ô'ð U­:°a½Ñ+FÔ+Fð UÝÐSÑTÔTÐTð 	Sð õ �!•\Ñ"Ô"ð W¥z°!µ\Ñ'BÔ'Bð Wõ ˜a ¤Ñ)Ô)ð 	ÝØ��Q”Y ¤	Ð?¨D°°°¬HÐ?Ð?Ð?¸Ð?Ð?ðð ÝCQÐRSÑCTÔCTðð ð õ Ð-×4Ò4°T´]ÀAÄGÈQÌWÑUÔUÑVÔVÐVå˜�LÑ)Ô)€GØ,3ÐJ•~ aÑ(Ô(Ð(½ÈÑ9JÔ9JÐð Ð)ˆQ�ˆFˆF A q 6�E€Bˆà‡u‚u�w„w�—’‘”ÒÐÝ!Ð"OÑPÔPÐPÝ% aÑ(Ô(€JØ	‡v‚v�x„x�:—>’>Ñ#Ô# aÑ'Ò'Ð'Ø/6ÐT�B”J 
Ð+Ð+¸ZÈÌÐ<T‰ˆˆSÝ˜D˜D  cÐ?¨D°°°¬HÐ?Ð?Ð?¸Ð?Ð?ÐTÐTÐCSÐTÐTÐTð 	‡u‚u�w„w�!—%’%‘'”'ÒÐð Œ7�1Œ:˜œ œÒ#Ð#ÝØ"×)Ò)¨$¬-¸¼À!Ä'ÑJÔJñô ð ð 	6Ð5Ð5Ð5Ð5Ð5ð Ô)ˆ
ØÔ)ˆ
Ø!ˆØ”*Ô" 2¤>°AÑ#5Ô6ˆØÐà"ˆLð �HŠHØWÐWÐWÐWÐWÅIÈaÌgÑDVÔDVÐWÑWÔWñ
ô 
ˆð %Ð$ØØ”KØ”~ØØ!Ø!ð
ñ 
ô 
ˆð %,Ð>�B˜�=�=°'¸2°‰ˆˆSØˆt�C˜Ð2˜t A B BœxÐ2Ð2Ð2¨6Ð2Ð2Ð2õ Ð)×0Ò0°´ÀÄÈÌÑQÔQÑ
RÔ
RÐRr   c                 ód  ‡— | t           j        j        j        u rt	          |i |¤ŽS | j        dk    r' | |d         j        g|dd …         ¢R i |¤Ž |d         S | j        dk    rùddd„}t          |||d¬	¦  «        \  }}|                     d
¦  «        }t          | 
                    ¦   «         |d         |j        dd¬¦  «        }t          | 
                    ¦   «         |d         |j        dd¬¦  «        }||k    r|S t          j        t          j        |j        ||dz   …         ¦  «        }	g |j        d |…         ¢|	‘|j        |dz   d …         ¢R }
 |j        |
Ž S | j        dk    r”|d         Š‰j        s	‰j        s‰S ‰                     ¦   «         \  }}t           j                             ¦   «         5  |D ])}t-          ‰|d ¦  «        }|�|                     ¦   «          Œ*	 d d d ¦  «         n# 1 swxY w Y   ‰S | j        dk    rN|d         Š‰j        s	‰j        sdS ‰                     ¦   «         \  }}|sdS t1          ˆfd„|D ¦   «         ¦  «        S | j        dk    rÄddd„}t          |||d¬	¦  «        \  }}|                     d
¦  «        }|                     d¦  «        }| 
                    ¦   «         |j        z
  dz
  }t3          |¦  «        |k    rt5          d¦  «        ‚t           j                             ¦   «         5   | |i |¤Žcd d d ¦  «         S # 1 swxY w Y   t7          | ¦  «        ‚)NÚapply_r   r   ÚflattenrR   rJ   c                 ó   — d S r   r<   )ÚinputÚ	start_dimÚend_dims      r   Ú_flatten_sigz+jagged_torch_function.<locals>._flatten_sigŽ  ó   € ØˆDr   T©rp   rq   Únormalize_to_only_use_kwargsrè   ré   F)r3   rê   Úshare_memory_Ú	is_sharedc              3   ó€   •K  — | ]8}t          ‰|¦  «        d uo!t          ‰|¦  «                             ¦   «         V — Œ9d S r   )Úgetattrrð   )r    rx   r‹   s     €r   r$   z(jagged_torch_function.<locals>.<genexpr>È  sa   øè è € ð 
ð 
àõ �B˜ÑÔ TÐ)ÐK­g°b¸$Ñ.?Ô.?×.IÒ.IÑ.KÔ.Kð
ð 
ð 
ð 
ð 
ð 
r   Úrms_normc                 ó   — d S 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   rR   ©rJ   N©NN)r   Ú_CÚ_nnÚscaled_dot_product_attentionr   rm   rÇ   r   Úpopr9   r-   r]   r²   ÚreduceÚoperatorÚmulr“   ÚreshapeÚis_cpuÚis_metaÚ__tensor_flatten__ÚDisableTorchFunctionSubclassrò   rï   r‰   rk   rl   rÖ   )ro   rp   rq   rë   Ú_Ú
new_kwargsÚinpré   rê   ÚproductÚ	new_shapeÚnamesrx   Ú	componentrø   rõ   Úmax_normalizabler‹   s                    @r   Újagged_torch_functionr  �  ss  ø€ ð �uŒxŒ|Ô8Ð8Ð8Ý2°DÐC¸FÐCÐCÐCà„}˜Ò Ð ØˆˆT�!ŒWŒ_Ð2˜t A B BœxÐ2Ð2Ð2¨6Ð2Ð2Ð2Ø�AŒwˆð „}˜	Ò!Ð!ð	ð 	ð 	ð 	ð 	õ +Ø˜t¨FÐQUð
ñ 
ô 
‰ˆˆ:ð �nŠn˜WÑ%Ô%ˆõ %Ø�GŠG‰IŒIØ�{Ô#ØŒOØØ!&ð
ñ 
ô 
ˆ	õ #Ø�GŠG‰IŒIØ�yÔ!ØŒOØØ!&ð
ñ 
ô 
ˆð ˜ÒÐØˆJåÔ"¥8¤<°´¸9ÀwÐQRÁ{Ð;RÔ1SÑTÔTˆØP�c”i 
  
Ô+ÐP¨WÐP°s´yÀÈ1ÁÀÀÔ7OÐPÐPˆ	àˆsŒ{˜IÐ&Ð&ð „}˜Ò'Ð'Ø�!ŒWˆàŒyð 	 ¤ð 	ØˆIà×(Ò(Ñ*Ô*‰ˆˆqÝŒX×2Ò2Ñ4Ô4ð 	.ð 	.Øð .ð .�Ý# B¨¨dÑ3Ô3�	ØÐ(Ø×+Ò+Ñ-Ô-Ð-øð.ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð
 ˆ	ð „}˜Ò#Ð#Ø�!ŒWˆàŒyð 	 ¤ð 	Ø�4à×(Ò(Ñ*Ô*‰ˆˆqØð 	Ø�5Ýð 
ð 
ð 
ð 
àð
ñ 
ô 
ñ 
ô 
ð 	
ð „}˜
Ò"Ð"ð	ð 	ð 	ð 	ð 	õ +Ø ¨VÐRVð
ñ 
ô 
‰ˆˆ:ð �nŠn˜WÑ%Ô%ˆØ%Ÿ>š>Ð*<Ñ=Ô=Ðð Ÿ7š7™9œ9 s¤Ñ6¸Ñ:ÐÝÐÑ Ô Ð#3Ò3Ð3ÝØ`ñô ð õ ŒX×2Ò2Ñ4Ô4ð 	)ð 	)Ø�4˜Ð( Ð(Ð(ð	)ð 	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)õ ˜dÑ
#Ô
#Ð#s$   Æ4-G.Ç.G2Ç5G2ÌLÌLÌLzself: jt_allc                 ón  — | t           j        j        j        j        u rdS | 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 rt          |d         | ¦  «        S | t           j        j        j        j        u r|d         j        S | t           j        j        j        j        u r|d         j                             ¦   «         S d S )NFr   )r   ÚopsÚatenÚis_non_overlapping_and_denseÚdefaultÚsym_sizerƒ   r-   rk   Ú	sym_numelÚnumelr   Ú
sym_strideÚ_stridesÚsym_storage_offsetrÇ   Ústorage_offset©ro   rp   rq   s      r   Útensor_attr_supported_getterr  ç  s÷   € ð �uŒyŒ~Ô:ÔBÐBÐBØˆuà�uŒyŒ~Ô&Ô.Ð.Ð.Ø�AŒwŒ}Ðà�uŒyŒ~Ô!Ô)Ð)Ð)Ý�4˜”7”=Ñ!Ô!Ð!à•”	”Ô(Ô0µ%´)´.Ô2FÔ2NÐOÐOÐOÝ˜T !œW dÑ+Ô+Ð+à�uŒyŒ~Ô(Ô0Ð0Ð0Ø�AŒwÔÐà�uŒyŒ~Ô0Ô8Ð8Ð8Ø�AŒwŒ×-Ò-Ñ/Ô/Ð/ð 9Ð8r   c                 ó   — t           j        S r   )r   Újaggedr  s      r   Úprim_layout_defaultr     s
   € åŒ<Ðr   c                 ó^   — | t           j        j        j        j        u rt          d¦  «        ‚d S )NznNestedTensor does not support directly calling torch.ops.aten.size; please use `nested_tensor.size()` instead.)r   r  r  rŒ   r  r1   r  s      r   Útensor_attr_unsupported_getterr"    s8   € ð
 �uŒyŒ~Ô"Ô*Ð*Ð*Ýð9ñ
ô 
ð 	
ð +Ð*r   c                 ó"  — ddl m} t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     ¦   «         �dS |                     dt          j        ¦  «        |d<   |d         t          j        k    rdS  ||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Ç   )ro   rp   rq   r$  r  r  r	  s          r   Úis_contiguous_generalr(    s²   € àCÐCÐCÐCÐCÐCå&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cð ‡{‚{�}„}Ð Øˆuà",§.¢.Ø�Ô0ñ#ô #€JˆÑð �/Ô"¥eÔ&;Ò;Ð;ØˆtØ*Ð*¨3¬;ÐEÐE¸*ÐEÐEÐEr   z!self: jt_all, memory_format: any?c                 óF  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     ¦   «         �dS |                     dt          j        ¦  «        |d<   |d         t          j        k    rdS 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Ç   ©ro   rp   rq   r  r  r	  s         r   Úsym_is_contiguous_generalr,  2  s©   € õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cð ‡{‚{�}„}Ð Øˆuà",§.¢.Ø�Ô0ñ#ô #€JˆÑð �/Ô"¥eÔ&;Ò;Ð;ØˆtåŒ9Œ>Ô+Ô3°C´KÐNÐNÀ:ÐNÐNÐNr   z"input: jt_all, memory_format: any?c                 ój  — t          | ||d¬¦  «        \  }}|                     d¦  «        }t          |¦  «        }|j        �Z|d         t          j        k    rDddlm} |j        dk    rt          d¦  «        ‚ || 
                    ¦   «         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Á   r\   r   r&  r×   r.  r]   r,   Úunbindr   rÇ   )	ro   rp   rq   r  r  r	  Únew_metar.  Úcontigs	            r   Úclone_defaultr2  I  sê   € õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cå˜cÑ"Ô"€Hà
„|ÐØ�oÔ&­%Ô*AÒAÐAð 8Ð7Ð7Ð7Ð7Ð7ð Œ !Ò#Ð#Ý$ØQñô ð ð )Ð(¨¯ª©¬¸tÐDÑDÔD‰IˆF�AØˆMå˜˜˜Sœ[Ð7Ð7¨JÐ7Ð7ÐDÐD¸8ÐDÐDÐDr   zinput: jt, weight: t, bias: t?c                 ó¤   — t          | ||d¬¦  «        \  }}|                     d¦  «        }t           | |j        fi |¤Žfi t	          |¦  «        ¤ŽS ©NTrí   rè   ©r   rþ   r   rÇ   rÁ   r+  s         r   Úlinear_defaultr6  f  óh   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cå˜˜˜Sœ[Ð7Ð7¨JÐ7Ð7ÐOÐO½>È#Ñ;NÔ;NÐOÐOÐOr   z6self: jt, grad_output: jt, weight: t, output_mask: anyc                 óv  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }|                     d¦  «        }|                     d¦  «        }d\  }	}
}t          | |d|d¦  «         |d	         r2t          t	          j        |j        |¦  «        fi t          |¦  «        ¤Ž}	|d
         rƒ|j                             d| 	                    d	¦  «        ¦  «        }|j                             d| 	                    d
¦  «        ¦  «        }t	          j        | 
                    ¦   «         |¦  «        }
|d         ret          t          |j        j        d
z
  ¦  «        ¦  «        }|dk    r|j                             ¦   «         }nt	          j        |j        |d¬¦  «        }|	|
|fS )NTrí   rè   Úgrad_outputrö   Úoutput_mask)NNNÚselfr   r   rR   r¦   r<   F)Úkeepdim)r   rþ   r„   r   r   ÚmatmulrÇ   rÁ   r  rŒ   ra   r'   Úranger"   Úcloner¬   )ro   rp   rq   r  r  r	  r9  rö   r:  ÚdsÚdwÚdbÚgrad_2dÚinput_2dÚreduce_dimss                  r   Úlinear_backward_defaultrF  q  s¯  € õ
 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ—.’. Ñ/Ô/€KØ�^Š^˜HÑ%Ô%€FØ—.’. Ñ/Ô/€Kà!�J€BˆˆBÝ˜$  V¨[¸-ÑHÔHÐHØ�1„~ð 
ÝÝŒL˜Ô,¨fÑ5Ô5ð
ð 
Ý9GÈÑ9TÔ9Tð
ð 
ˆð �1„~ð 1ð Ô%×-Ò-¨b°&·+²+¸a±.´.ÑAÔAˆØ”;×&Ò& r¨6¯;ª;°q©>¬>Ñ:Ô:ˆÝŒ\˜'Ÿ)š)™+œ+ xÑ0Ô0ˆØ�1„~ð Lõ �E +Ô"5Ô":¸QÑ">Ñ?Ô?Ñ@Ô@ˆØ˜"ÒÐØÔ$×*Ò*Ñ,Ô,ˆBˆBå”˜;Ô.°ÀUÐKÑKÔKˆBØ��Bˆ<Ðr   zinput: jt_all, dtype: anyc                 ó¤   — t          | ||d¬¦  «        \  }}|                     d¦  «        }t           | |j        fi |¤Žfi t	          |¦  «        ¤ŽS r4  r5  r+  s         r   Úto_dtyperH  š  r7  r   c                 ó^  — ddl m} t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «          | |j        fi |¤Ž}|j                             |j        ¬¦  «        }d }	|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×   rK  r   rþ   rÇ   rÛ   ÚtorN  r\   Útorch._subclasses.fake_tensorrP  Ú#torch._subclasses.functional_tensorrR  rS  r&   Únested_int_memorÁ   r   )ro   rp   rq   rK  r  r  r	  Ú
new_valuesÚnew_offsetsÚnew_lengthsrP  rR  rS  Úragged_sourceÚ	new_thingÚtgtÚsrcÚ
inp_kwargsr/   s                      r   Úto_copy_defaultr`  ¥  s   € à6Ð6Ð6Ð6Ð6Ð6å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cà‡N‚N�8ÑÔÐà��c”kÐ0Ð0 ZÐ0Ð0€JØ”,—/’/¨Ô):�/Ñ;Ô;€KØ€KØ
„|ÐØ”l—o’o¨ZÔ->�oÑ?Ô?ˆà8Ð8Ð8Ð8Ð8Ð8ðð ð ð ð ð ð ð ð
 %(¤LÐ$8�C”L�L¸c¼l€MØ*Ð2��¸€IÝ�)˜jÐ*:Ð;Ñ<Ô<ð Tà)Ð)¨)Ñ4Ô4ˆØ)Ð)¨-Ñ8Ô8ˆà!Ô1ˆÔÐà-DÀ]Ô-SÐ 	Ñ*Ý Ñ$Ô$€JØ'€JˆyÑØ'€JˆyÑå˜*Ð3Ð3¨
Ð3Ð3€FØ€Mr   z-self: jt_all, src: jt_all, non_blocking: any?c                 ó  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }|j        |j        k    r�|                     ¦   «         }d„ |D ¦   «         }|                     ¦   «         }	d„ |	D ¦   «         }
||
k    rt	          d|j        › d|j        › �¦  «        ‚t          ||	¦  «        D ]\  }}|                     |¦  «         Œ|j                             |j        ¦  «         |S )	NTrí   rè   r^  c                 ó   — g | ]	}|j         ‘Œ
S r<   ©r“   ©r    Úcs     r   r=   z copy_default.<locals>.<listcomp>Ü  ó   € Ð6Ð6Ð6 q˜1œ7Ð6Ð6Ð6r   c                 ó   — g | ]	}|j         ‘Œ
S r<   rc  rd  s     r   r=   z copy_default.<locals>.<listcomp>Þ  rf  r   z<copy_(): expected compatible input and src shapes, but got: r‚   )	r   rþ   rƒ   r/  r1   r“   rŠ   Úcopy_rÇ   )ro   rp   rq   r  r  r	  r^  Ú	inp_compsÚinp_comp_shapesÚ	src_compsÚsrc_comp_shapesÚinp_compÚsrc_comps                r   Úcopy_defaultro  Ï  s.  € õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ
�.Š.˜Ñ
Ô
€CØ
„y�C”IÒÐð —J’J‘L”Lˆ	Ø6Ð6¨IÐ6Ñ6Ô6ˆØ—J’J‘L”Lˆ	Ø6Ð6¨IÐ6Ñ6Ô6ˆØ˜oÒ-Ð-Ýð/Ø”9ð/ð /Ø#&¤9ð/ð /ñô ð õ #& i°Ñ";Ô";ð 	%ð 	%ÑˆH�hØ�NŠN˜8Ñ$Ô$Ð$Ð$ð „K×Ò�c”kÑ"Ô"Ð"Ø€Jr   c                 ó~  — t          | ||d¬¦  «        \  }}|                     d¦  «        }t          j        |d<    | |j        fi |¤Ž}|j                             |j        ¬¦  «        }d }|j        � |j                             |j        ¬¦  «        }t          |¦  «        }	d|	v r||	d<   d|	v r||	d<   |j        |j        k    rod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è   rL  rM  r¾   r¿   r   rO  rQ  r   rJ  )r   rþ   r   ÚstridedrÇ   rÛ   rT  rN  r\   rÁ   rU  rP  rV  rR  rS  r×   rK  r&   rW  r   )ro   rp   rq   r  r  r	  rX  rY  rZ  Úoutput_kwargsrP  rR  rS  rK  r[  r\  r]  r^  s                     r   Úlike_factory_defaultrs  ô  sÂ  € õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cõ
 !œ=€JˆxÑà��c”kÐ0Ð0 ZÐ0Ð0€JØ”,—/’/¨Ô):�/Ñ;Ô;€KØ€KØ
„|ÐØ”l—o’o¨ZÔ->�oÑ?Ô?ˆÝ" 3Ñ'Ô'€MØ�MÐ!Ð!Ø#.ˆ�iÑ Ø�MÐ!Ð!Ø#.ˆ�iÑ à
„z�ZÔ&Ò&Ð&ð 	=Ð<Ð<Ð<Ð<Ð<ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð
 	;Ð:Ð:Ð:Ð:Ð:à(+¬Ð(<˜œ˜À#Ä,ˆØ#.Ð#6�K�K¸Kˆ	Ý�i *Ð.>Ð!?Ñ@Ô@ð 	Xà-Ð-¨iÑ8Ô8ˆCØ-Ð-¨mÑ<Ô<ˆCà"%Ô"5ˆCÔÐà1HÈÔ1WÐ# IÑ.å˜
Ð4Ð4 mÐ4Ð4Ð4r   zself: jt_all, fill_value: anyzself: jt_all, high: anyz!self: jt_all, low: any, high: anyc                 ó|   — t          | ||d¬¦  «        \  }}|                     d¦  «        } | |j        ¦  «         |S r4  ©r   rþ   rÇ   r+  s         r   Úzero__defaultrv  ;  sM   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ€DˆŒÑÔÐØ€Jr   z*self: jt_all, dim: any, half_to_float: anyc           
      ó(  — t          | ||d¬¦  «        \  }}t          |d         t          ¦  «        rt          d¦  «        ‚|                     d¦  «        }t          |                     ¦   «         |d         fd|j        ¦  «        \  |d<   }}}|rt          d¦  «        ‚|r|j        dk    rt          d	¦  «        ‚|r|j        �t          d
¦  «        ‚|d         d         |d<   |�rt          j
        j                             t          j        j                             |j                             |j        j        d         d¦  «        |j        g|j        gt+          d¦  «        ¬¦  «        |j        ¬¦  «        }	t          j        j                             |	|j        g|j        j        d         ¬¦  «        j        dg|j        j        dd …         ¢R Ž }
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   rR   r   )Úmax_lengthsÚpadding_value©r-   ©râ   )r   r&   r'   r1   rþ   rH   r-   r]   r\   r   ÚnnÚ
functionalrx  r  r  Ú_jagged_to_padded_dense_forwardrÇ   r  r“   rÛ   Ú_max_seqlenr   Ú_padded_dense_to_jagged_forwardr   rÁ   )ro   rp   rq   r  r  r	  Úreduce_on_batchÚreduce_on_raggedÚ_reduce_on_non_batchÚpadded_softmax_valuesÚsoftmax_valuess              r   Ú_softmax_defaultr‡  F  s}  € õ 'Ø�4 ÀTðñ ô �M€A€zõ �*˜UÔ#¥UÑ+Ô+ð 
ÝØVñ
ô 
ð 	
ð �.Š.˜Ñ
!Ô
!€Cõ 	Ø�Š‰	Œ	Ø	�EÔ	ÐØØŒñ		ô 	ñØ�5ÑØØØð ð 
ÝØ`ñ
ô 
ð 	
ð ð 
˜CœO¨aÒ/Ð/ÝØsñ
ô 
ð 	
ð ð 
˜CœLÐ4ÝðIñ
ô 
ð 	
ð
 # 5Ô)Ø	ô€JˆuÑð ñ CÝ %¤Ô 3× ;Ò ;ÝŒIŒN×:Ò:Ø”×#Ò#Ø”KÔ% aÔ(¨"ñô ð ”�Ø œ_Ð-Ý# F™mœmð ;ñ ô ð ”ð !<ñ 
!
ô 
!
Ðõ œœ×GÒGØ!ØŒ\ˆNØ”KÔ%Øôð Hñ 
ô 
ô Øð
ð ”Ô" 1 2 2Ô&ð
ð 
ð 
ˆõ ˜NÐBÐB­n¸SÑ.AÔ.AÐBÐBÐBå˜˜˜Sœ[Ð7Ð7¨JÐ7Ð7ÐOÐO½>È#Ñ;NÔ;NÐOÐOÐOr   c                 óÎ  — t          | ||d¬¦  «        \  }}t          |d         t          ¦  «        rt          d¦  «        ‚|                     d¦  «        }t          |                     ¦   «         |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'   r1   rþ   rH   r-   r]   r   rÇ   rÁ   )	ro   rp   rq   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Ð7¨JÐ7Ð7ÐOÐO½>È#Ñ;NÔ;NÐOÐOÐOr   z7grad_output: jt, output: jt, dim: any, input_dtype: anyc                 óÚ   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }t           | |j        |j        fi |¤Žfi t	          |¦  «        ¤ŽS )NTrí   r9  r/   r5  )ro   rp   rq   r  r  Úgrad_outr/   s          r   Ú_softmax_backwardr�  ¹  sŒ   € õ
 'Ø�4 ÀTðñ ô �M€A€zð �~Š~˜mÑ,Ô,€HØ�^Š^˜HÑ%Ô%€FÝØˆˆXÔ˜vœ~Ð<Ð<°Ð<Ð<ðð Ý@NÈxÑ@XÔ@Xðð ð r   z!self: jt, float: any, train: any?c                 óâ   — t          | ||d¬¦  «        \  }}|                     d¦  «        } | |j        fi |¤Ž\  }}t          |fi t	          |¦  «        ¤Žt          |fi t	          |¦  «        ¤ŽfS r4  ©r   rþ   rÇ   r   rÁ   )ro   rp   rq   r  r  r	  Úout1Úout2s           r   Únative_dropout_defaultr’  È  s•   € õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ��c”kÐ0Ð0 ZÐ0Ð0�J€Dˆ$å�TÐ1Ð1�^¨CÑ0Ô0Ð1Ð1Ý�TÐ1Ð1�^¨CÑ0Ô0Ð1Ð1ðð r   z%grad_output: jt, mask: jt, scale: anyc                 óÚ   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }t           | |j        |j        fi |¤Žfi t	          |¦  «        ¤ŽS )NTrí   r9  Úmaskr5  )ro   rp   rq   r  r  r9  r”  s          r   Únative_dropout_backward_defaultr•  Ø  sŒ   € õ
 'Ø�4 ÀTðñ ô �M€A€zð —.’. Ñ/Ô/€KØ�>Š>˜&Ñ!Ô!€DÝØˆˆ[Ô  $¤,Ð=Ð=°*Ð=Ð=ðð å
˜Ñ
%Ô
%ðð ð r   z2self: jt_all, dim: any, keepdim: any?, dtype: any?c                 ó&   — t          | ddg|¢R i |¤ŽS )NÚprodr   ©Ú_apply_reductionr  s      r   Úprod_dim_intrš  è  s&   € õ
 ˜D &¨!Ð=¨dÐ=Ð=Ð=°fÐ=Ð=Ð=r   zself: jt_all, dtype: any?c                 ót   — t          | ||d¬¦  «        \  }}|                     d¦  «        } | |j        fi |¤ŽS r4  ru  r+  s         r   Úprod_defaultrœ  ð  óP   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Càˆ4�”Ð*Ð*˜zÐ*Ð*Ð*r   z$self: jt, split_size: any, dim: any?c                 ó  ‡— t          | ||d¬¦  «        \  }}|                     d¦  «        Št          ‰                     ¦   «         |d         ‰j        d¦  «        |d<   t          ˆfd„ | ‰j        fi |¤ŽD ¦   «         ¦  «        S )NTrí   rè   r-   ri   c              3   óN   •K  — | ]}t          dd |it          ‰¦  «        ¤ŽV — Œ dS )ÚvaluesNr<   ©r   rÁ   ©r    rQ   r	  s     €r   r$   zsplit_tensor.<locals>.<genexpr>	  sR   øè è € ð ð àõ 	Ð5Ð5˜AÐ5¥°Ñ!4Ô!4Ð5Ð5ðð ð ð ð ð r   )r   rþ   r9   r-   r]   r'   rÇ   r+  s        @r   Úsplit_tensorr£  û  s³   ø€ õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cå(Ø�Š‰	Œ	�:˜eÔ$ c¤o°wñô €JˆuÑõ ð ð ð ð à��c”kÐ0Ð0 ZÐ0Ð0ðñ ô ñ ô ð r   z%self: jt, split_sizes: any, dim: any?c                 óò   ‡— t          | ||d¬¦  «        \  }}|                     d¦  «        Št          ‰                     ¦   «         |d         ‰j        d¦  «        |d<   ˆfd„ | ‰j        fi |¤ŽD ¦   «         S )NTrí   rè   r-   Úsplit_with_sizesc           	      óF   •— g | ]}t          dd |it          ‰¦  «        ¤Ž‘ŒS ©r   r<   r¡  r¢  s     €r   r=   z,split_with_sizes_default.<locals>.<listcomp>  sD   ø€ ð ð ð àõ 	Ð5Ð5˜AÐ5¥°Ñ!4Ô!4Ð5Ð5ðð ð r   )r   rþ   r9   r-   r]   rÇ   r+  s        @r   Úsplit_with_sizes_defaultr¨    s¥   ø€ õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cå(Ø�Š‰	Œ	�:˜eÔ$ c¤oÐ7Iñô €JˆuÑðð ð ð à��c”kÐ0Ð0 ZÐ0Ð0ðñ ô ð r   z+self: jt, dim: any, start: any, length: anyc                 ó*  — t          | ||d¬¦  «        \  }}|                     d¦  «        }t          |                     ¦   «         |d         |j        d¦  «        } | |j        ||d         |d         ¬¦  «        }t          |fi t          |¦  «        ¤ŽS )	NTrí   rè   r-   ÚnarrowÚstartÚlength©r-   r«  r¬  )r   rþ   r9   r-   r]   rÇ   r   rÁ   )ro   rp   rq   r  r  r	  r-   r   s           r   rª  rª  #  s¨   € õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cå
˜3Ÿ7š7™9œ9 j°Ô&7¸¼È(Ñ
SÔ
S€CØˆTØŒØØ˜Ô!Ø˜(Ô#ð	ñ ô €Fõ ˜Ð6Ð6¥.°Ñ"5Ô"5Ð6Ð6Ð6r   z self: jt, chunks: any, dim: any?c                 óZ  ‡‡‡— t          | ||d¬¦  «        \  }}|                     d¦  «        Št          ‰                     ¦   «         |d         ‰j        dd¬¦  «        \  |d<   }|r«|d         }‰j                             ¦   «         }|                     |¦  «        }d„ |D ¦   «         }	d	„ |	D ¦   «         }	ˆfd
„|	D ¦   «         Šd„ |D ¦   «         }
‰j         	                    |
¦  «        Šˆˆfd„t          t          ‰¦  «        ¦  «        D ¦   «         S ˆfd„ | ‰j        fi |¤ŽD ¦   «         S )NTrí   rè   r-   Úchunk©r5   Úchunksc                 ó:   — g | ]}t          j        |d ¬¦  «        ‘ŒS )r   r{  )r   ÚcumsumrP   s     r   r=   z!chunk_default.<locals>.<listcomp>H  s'   € ÐKÐKÐK°a�5œ<¨¨qÐ1Ñ1Ô1ÐKÐKÐKr   c                 ó<   — g | ]}t          j        |d d¬¦  «        ‘ŒS )©r   r   r   )Úvalue)ÚFÚpadrP   s     r   r=   z!chunk_default.<locals>.<listcomp>I  s)   € ÐNÐNÐN¸�1œ5  F°!Ð4Ñ4Ô4ÐNÐNÐNr   c                 ó$   •— g | ]}|‰j         d œ‘ŒS ))r¾   r]   rÏ   )r    Úper_offsetsr	  s     €r   r=   z!chunk_default.<locals>.<listcomp>J  s3   ø€ ð 
ð 
ð 
àð $°C´OÐDÐDð
ð 
ð 
r   c                 óZ   — g | ](}|                      ¦   «                              ¦   «         ‘Œ)S r<   )r¬   ÚitemrP   s     r   r=   z!chunk_default.<locals>.<listcomp>P  s(   € Ð?Ð?Ð?¨!�q—u’u‘w”w—|’|‘~”~Ð?Ð?Ð?r   c                 óD   •— g | ]}t          dd ‰|         i‰|         ¤Ž‘ŒS r§  ©r   )r    rv   Úchunk_valuesÚnested_kwargss     €€r   r=   z!chunk_default.<locals>.<listcomp>U  sE   ø€ ð 
ð 
ð 
àõ ÐFÐF ¨Q¤ÐF°MÀ!Ô4DÐFÐFð
ð 
ð 
r   c           	      óF   •— g | ]}t          dd |it          ‰¦  «        ¤Ž‘ŒS r§  r¡  r¢  s     €r   r=   z!chunk_default.<locals>.<listcomp>Z  sD   ø€ ð 
ð 
ð 
àõ Ð9Ð9 Ð9¥^°CÑ%8Ô%8Ð9Ð9ð
ð 
ð 
r   )r   rþ   r9   r-   r]   rÛ   Údiffr¯  rÇ   ri   r>  rk   )ro   rp   rq   r  r  r8   r±  r¿   Úchunked_lengthsÚchunked_offsetsÚsplit_sizesr¿  r	  rÀ  s              @@@r   Úchunk_defaultrÆ  6  s¥  øøø€ å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cå,<Ø�Š‰	Œ	�:˜eÔ$ c¤o°wÐPTð-ñ -ô -Ñ)€JˆuÑÐ)ð ð 
Ø˜HÔ%ˆð ”,×#Ò#Ñ%Ô%ˆØ!Ÿ-š-¨Ñ/Ô/ˆØKÐK¸?ÐKÑKÔKˆØNÐN¸oÐNÑNÔNˆð
ð 
ð 
ð 
à.ð
ñ 
ô 
ˆð @Ð?¨Ð?Ñ?Ô?ˆØ”{×(Ò(¨Ñ5Ô5ˆð
ð 
ð 
ð 
ð 
å�3˜|Ñ,Ô,Ñ-Ô-ð
ñ 
ô 
ð 	
ð

ð 
ð 
ð 
à�T˜#œ+Ð4Ð4¨Ð4Ð4ð
ñ 
ô 
ð 	
r   zself: jt_all, dim: any?c                 ó   ‡
‡‡‡— t          | ||d¬¦  «        \  }}|d         }|dk    rt          d¦  «        ‚|                     d¦  «        }|                     ¦   «         Š|                     ¦   «         }|                     ¦   «         }|j        Šddt          t                   dt          t                   d z  d	d fˆˆfd
„}	|€K| 	                    ¦   «          
                    ¦   «         Š
 |	‰
¦  «         t          j        ‰‰
‰dz
  ¬¦  «        S ‰dk    rt          d¦  «        ‚| 
                    ¦   «         Š
| 
                    ¦   «         Š |	‰
‰¦  «         ˆ
ˆˆˆfd„t          |j        d         ¦  «        D ¦   «         S )NTrí   r-   r   z2unbind(): only supported for NestedTensor on dim=0rè   r\   rÛ   rJ   c                 ó<  •— d}‰j         ‰dz
           }t          t          | ¦  «        ¦  «        D ]t}t          j        | |         dk    ¦  «         t          j        | |         |k    ¦  «         || |         z  }|�)t          j        ||         | |         z   |k    d„ ¦  «         Œut          j        ||k    ¦  «         |�[t          t          |¦  «        ¦  «        D ]@}t          j        ||         dk    ¦  «         t          j        ||         |k    ¦  «         Œ?d S d S )Nr   r   c                  ó   — dS )NzMunbind(): nested tensor offsets and lengths do not match ragged_idx dimensionr<   r<   r   r   rY   z2unbind_int.<locals>._torch_check.<locals>.<lambda>…  s   € Ðk€ r   )r“   r>  rk   r   Ú_check)r\   rÛ   Úlengths_sumÚragged_dim_sizerv   r?   r   s        €€r   Ú_torch_checkz unbind_int.<locals>._torch_checkq  s.  ø€ ð ˆØ œ, z°A¡~Ô6ˆÝ•s˜8‘}”}Ñ%Ô%ð 		ð 		ˆAÝŒL˜ !œ¨Ò)Ñ*Ô*Ð*ÝŒL˜ !œ¨Ò7Ñ8Ô8Ð8à˜8 Aœ;Ñ&ˆKØÐ#Ý”Ø˜Q”K (¨1¤+Ñ-°Ò@ØkÐkñô ð øõ 	Œ�[ OÒ3Ñ4Ô4Ð4àÐÝ�3˜x™=œ=Ñ)Ô)ð =ð =�Ý”˜X aœ[¨AÒ-Ñ.Ô.Ð.Ý”˜X aœ[¨OÒ;Ñ<Ô<Ð<Ð<ð  Ðð=ð =r   r   r{  zAunbind(): nested tensor ragged_idx out of bounds (should be >= 1)c           	      ó^   •— g | ])}t          j        ‰‰d z
  ‰|         ‰|         ¬¦  «        ‘Œ*S )r   r­  )r   rª  )r    rv   Úlengths_scalarsÚoffsets_scalarsr?   r   s     €€€€r   r=   zunbind_int.<locals>.<listcomp>ž  sV   ø€ ð ð ð ð õ 	ŒØØ˜a‘Ø! !Ô$Ø" 1Ô%ð		
ñ 	
ô 	
ðð ð r   r   )r   r1   rþ   r   r¾   r¿   r]   r(   ÚintrÂ  Útolistr   ri   r>  r“   )ro   rp   rq   r  r  r-   r	  r¾   r¿   rÍ  rÏ  rÐ  r?   r   s             @@@@r   Ú
unbind_intrÓ  `  s½  øøøø€ õ 'Ø�4 ÀTðñ ô �M€A€zð �UÔ
€CØ
ˆa‚x€xÝÐOÑPÔPÐPà
�.Š.˜Ñ
!Ô
!€CØ�ZŠZ‰\Œ\€FØ�kŠk‰mŒm€GØ�kŠk‰mŒm€GØ”€Jð=ð =�t¥Cœyð =µD½´IÀÑ4Dð =ÐPTð =ð =ð =ð =ð =ð =ð =ð: €Ø!Ÿ,š,™.œ.×/Ò/Ñ1Ô1ˆØˆ�_Ñ%Ô%Ð%åŒ{˜6 ?¸Àa¹ÐIÑIÔIÐIà�Q‚€ÝØOñ
ô 
ð 	
ð —n’nÑ&Ô&€OØ—n’nÑ&Ô&€Oà€L� /Ñ2Ô2Ð2ðð ð ð ð ð ð õ �w”} QÔ'Ñ(Ô(ðñ ô ð r   zself: jt, dim: anyc                 ó  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|j        }t          t	          |j        ¦  «        |d         |j        d¦  «        |d<   t           | |fi |¤Žfi t          |¦  «        ¤ŽS )NTrí   rè   r-   r”   )	r   rþ   rÇ   r9   rk   rƒ   r]   r   rÁ   )ro   rp   rq   r  r  r	  r   s          r   Úsqueeze_dimrÕ  ©  s›   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØŒ[€Få(ÝˆCŒI‰Œ˜
 5Ô)¨3¬?¸Iñô €JˆuÑõ ˜˜˜VÐ2Ð2 zÐ2Ð2ÐJÐJµnÀSÑ6IÔ6IÐJÐJÐJr   zself: jt_all, dim: anyc                 óf  — t          | ||d¬¦  «        \  }}|                     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)r4   r]   )	r   rþ   rÇ   r9   rk   rƒ   r]   rÁ   r   )	ro   rp   rq   r  r  r	  r   r-   rr  s	            r   Úunsqueeze_defaultrØ  ¸  sç   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØŒ[€Fð �UÔ
€CÝ(ÝˆCŒI‰Œ˜Ñ˜C ¤°+ÐPTðñ ô €JˆuÑõ
 # 3Ñ'Ô'€MØ�%Ô˜CœO¨aÑ/Ò/Ð/Ø�mÐ$Ð$Ô$¨Ñ)Ð$Ð$Ñ$å˜˜˜VÐ2Ð2 zÐ2Ð2ÐDÐD°mÐDÐDÐDr   ztensors: any, dim: any?c                 ó¬  ‡— t          | ||d¬¦  «        \  }}|                     d¦  «        }d„ |D ¦   «         }t          |¦  «        dk    rt          d¦  «        ‚|d         Šˆfd„|D ¦   «         }|d         }t	          t          ‰j        ¦  «        |‰j        d	¦  «        |d<   t           | d
„ |D ¦   «         fi |¤Žfi t          |d         ¦  «        ¤ŽS )NTrí   Útensorsc                 ó    — g | ]}|j         ¯	|‘ŒS r<   )Ú	is_nested©r    ra   s     r   r=   zcat_default.<locals>.<listcomp>Ø  s   € Ð0Ð0Ð0�A A¤KÐ0ˆaÐ0Ð0Ð0r   r   z"At least one tensor must be nestedc                 óL   •— g | ] }|j         r|n|                     ‰¦  «        ‘Œ!S r<   )rÜ  Ú	expand_as)r    ra   Úfirsts     €r   r=   zcat_default.<locals>.<listcomp>Ü  s0   ø€ ÐIÐIÐI¸A�A”KÐ7ˆqˆq Q§[¢[°Ñ%7Ô%7ÐIÐIÐIr   r-   Úcatc                 ó   — g | ]	}|j         ‘Œ
S r<   rÆ   rÝ  s     r   r=   zcat_default.<locals>.<listcomp>å  ó   € Ð)Ð)Ð)˜AˆaŒiÐ)Ð)Ð)r   )	r   rþ   rk   r,   r9   r“   r]   r   rÁ   )	ro   rp   rq   r  r  rÚ  Únestedr-   rà  s	           @r   Úcat_defaultrå  Ï  s  ø€ å&Ø�4 ÀTðñ ô �M€A€zð �nŠn˜YÑ'Ô'€Gð 1Ð0˜Ð0Ñ0Ô0€FÝ
ˆ6�{„{�aÒÐÝÐAÑBÔBÐBØ�1ŒI€EØIÐIÐIÐIÀÐIÑIÔI€Gð �UÔ
€CÝ(ÝˆEŒKÑÔ˜#˜uÔ0°%ñô €JˆuÑõ ØˆÐ)Ð) Ð)Ñ)Ô)Ð8Ð8¨ZÐ8Ð8ðð Ý<JÈ7ÐSTÌ:Ñ<VÔ<Vðð ð r   zself: any, other: anyc                 óÚ  ‡ — t          ‰ ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }ˆ fd„}ˆ fd„}|j        �r |j        sù|                     ¦   «         dk    rV|                     ¦   «         |                     ¦   «         k    r,|j        |                     ¦   «         dz
  k     r |||¦  «        S |                     ¦   «         d	k    rq|                     ¦   «         |                     ¦   «         k    rG|j        |                     ¦   «         dz
  k     r't           ‰ |j        |fi |¤Žfi t          |¦  «        ¤ŽS �nú|j        sÖ|j        rÏ|                     ¦   «         dk    rA|                     ¦   «         |                     ¦   «         k    r|j        d	k    r |||¦  «        S |                     ¦   «         d	k    r\|                     ¦   «         |                     ¦   «         k    r2|j        d	k    r't           ‰ ||j        fi |¤Žfi t          |¦  «        ¤ŽS �n|j        �r|j        �r|                     ¦   «         dk    r[|                     ¦   «         dk    rCt          ||j	        ¦  «        r.t           ‰ |j        |j        ¦  «        fi t          |¦  «        ¤ŽS |                     ¦   «         dk    r‚|                     ¦   «         dk    rj|j        d	k    r_|j        dk    rT| 
                    |j        ¦  «        | 
                    |j        ¦  «        k    rt          j         |||¦  «        ¦  «        S t          d
|j	        › d|j        › �¦  «        ‚)NTrí   rè   Úotherc                 ó„   •— ˆfd„t          |                      ¦   «         |                     ¦   «         ¦  «        D ¦   «         S )Nc                 ó.   •— g | ]\  }} ‰||¦  «        ‘ŒS r<   r<   )r    Úa_compÚb_compro   s      €r   r=   z8matmul_default.<locals>._unbind_impl.<locals>.<listcomp>ó  s6   ø€ ð 
ð 
ð 
Ù%5 f¨fˆDˆD�˜Ñ Ô ð
ð 
ð 
r   )rŠ   r/  )r}   r   ro   s     €r   Ú_unbind_implz$matmul_default.<locals>._unbind_implò  sH   ø€ ð
ð 
ð 
ð 
Ý9<¸Q¿XºX¹Z¼ZÈÏÊÉÌÑ9TÔ9Tð
ñ 
ô 
ð 	
r   c                 óˆ  •— | j         r| }n|}ddlm} |j        }|j        }|}|j        j        |j        dz
           }|€|}g |j        d |j        …         ¢|‘|j        |j        dz   d …         ¢R }|                     d|¬¦  «        }	| j         r ‰|	|¦  «        }
n ‰| |	¦  «        }
 ||
|j	        |j        |||¬¦  «        S )Nr   rÌ   ç        ©Úoutput_sizerÑ   )
rÜ  r×   rÍ   rØ   rÙ   rÇ   r“   r]   Úto_padded_tensorrÛ   )r}   r   r‹   rÍ   rÓ   rÔ   rÐ   râ   Úpadded_shapeÚ	padded_ntÚpadded_tro   s              €r   Ú_padded_implz$matmul_default.<locals>._padded_impl÷  s"  ø€ ØŒ;ð 	ØˆBˆBàˆBà5Ð5Ð5Ð5Ð5Ð5àÔ)ˆ
ØÔ)ˆ
Ø!ˆØ”*Ô" 2¤>°AÑ#5Ô6ˆØÐà"ˆLð
ØŒXÐ&˜œÐ&Ô'ð
àð
ð ŒX�b”n qÑ(Ð*Ð*Ô+ð
ð 
ˆð
 ×'Ò'¨¸Ð'ÑFÔFˆ	ØŒ;ð 	*Ø�t˜I qÑ)Ô)ˆHˆHà�t˜A˜yÑ)Ô)ˆHØ!Ð!ØØ”KØ”~ØØ!Ø!ð
ñ 
ô 
ð 	
r   é   r   r¦   z1matmul(): not supported between inputs of shapes r‚   )r   rþ   rÜ  r-   r]   r   rÇ   rÁ   r�   rƒ   rŒ   r   Ústackr1   r“   )	ro   rp   rq   r  r  r	  rç  rì  rõ  s	   `        r   Úmatmul_defaultrø  é  s{  ø€ å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ�NŠN˜7Ñ#Ô#€Eð
ð 
ð 
ð 
ð 
ð
!
ð !
ð !
ð !
ð !
ðJ „}ñ 49˜Uœ_ð 49ð �GŠG‰IŒI˜ŠNˆNØ—’‘	”	˜UŸYšY™[œ[Ò(Ð(Ø” #§'¢'¡)¤)¨a¡-Ò/Ð/ð  �<  UÑ+Ô+Ð+ð �IŠI‰KŒK˜1ÒÐØ—’‘	”	˜EŸIšI™KœKÒ'Ð'Ø” #§'¢'¡)¤)¨a¡-Ò/Ð/åØ��S”[ %Ð6Ð6¨:Ð6Ð6ðð Ý:HÈÑ:MÔ:Mðð ð ùð Œ]ð 9˜uœð 9à�9Š9‰;Œ;˜!ÒÐ §	¢	¡¤¨s¯wªw©y¬yÒ 8Ð 8¸UÔ=NÐRSÒ=SÐ=Sà�<  UÑ+Ô+Ð+ð
 �WŠW‰YŒY˜!Š^ˆ^ §	¢	¡¤¨c¯gªg©i¬iÒ 7Ð 7¸EÔ<MÐQRÒ<RÐ<RÝØ��S˜%œ-Ð6Ð6¨:Ð6Ð6ðð Ý:HÈÑ:OÔ:Oðð ð ùð
 
Œñ 9˜5œ?ñ 9ð �7Š7‰9Œ9�qŠ=ˆ=˜UŸYšY™[œ[¨1š_˜_Õ1CÀCÈÌÑ1UÔ1U˜_Ý   S¤[°%´-Ñ @Ô @ÐXÐXÅNÐSVÑDWÔDWÐXÐXÐXð �GŠG‰IŒI˜ŠNˆNØ—	’	‘”˜qÒ Ð Ø” 1Ò$Ð$ØÔ! QÒ&Ð&Ø—’˜œÑ)Ô)¨U¯ZªZ¸Ô8IÑ-JÔ-JÒJÐJõ ”;˜|˜|¨C°Ñ7Ô7Ñ8Ô8Ð8å
ØY¸C¼IÐYÐYÈEÌKÐYÐYñô ð r   zself: jt_all, mat2: anyc                 ór  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }|                     ¦   «         dk    rt          d¦  «        ‚|                     ¦   «         dk    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-   rl   rø  r   r  r  r=  r  ©ro   rp   rq   r  r  r	  rç  s          r   Úbmm_defaultrü  W  s¥   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ�NŠN˜6Ñ"Ô"€Eà
‡w‚w�y„y�A‚~€~ÝÐ2Ñ3Ô3Ð3Ø‡y‚y�{„{�aÒÐÝÐ1Ñ2Ô2Ð2å�%œ)œ.Ô/Ô7¸¸eÑDÔDÐDr   z'self: jt_all, size: any, implicit: any?c                 óÀ  ‡‡— t          | ||d¬¦  «        \  }}|                     d¦  «        Š|d         Šd|v r$|                     d¦  «        rt          d¦  «        ‚t          ‰‰¦  «        st	          d‰j        › d‰› �¦  «        ‚ˆˆfd	„t          d
‰                     ¦   «         ¦  «        D ¦   «         }t           | ‰j	        |¦  «        fi t          ‰¦  «        ¤ŽS )NTrí   rè   rŒ   Úimplicitz implicit expand is not supportedzexpand(): cannot expand shape z -> c                 ó:   •— g | ]}|‰j         k    rd n‰|         ‘ŒS )rR   rÏ   )r    r!   r	  rŒ   s     €€r   r=   z"expand_default.<locals>.<listcomp>x  s-   ø€ ÐWÐWÐW¸a˜˜Sœ_Ò,Ð,�"�"°$°q´'ÐWÐWÐWr   r   )r   rþ   r,   r�   r1   rƒ   r>  r-   r   rÇ   rÁ   )ro   rp   rq   r  r  Ú
expand_argr	  rŒ   s         @@r   Úexpand_defaultr  h  sý   øø€ õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ�fÔ€Dà�ZÐÐ J§N¢N°:Ñ$>Ô$>ÐÝÐ?Ñ@Ô@Ð@Ý˜c 4Ñ(Ô(ð SÝÐQ¸C¼IÐQÐQÈ4ÐQÐQÑRÔRÐRàWÐWÐWÐWÐWÅ5ÈÈCÏGÊGÉIÌIÑCVÔCVÐWÑWÔW€JÝ˜˜˜Sœ[¨*Ñ5Ô5ÐMÐM½ÈÑ9LÔ9LÐMÐMÐMr   zself: t, other: jtc                 óÔ   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }t           | ||j        ¦  «        fi t	          |¦  «        ¤ŽS )NTrí   rè   rç  r5  rû  s          r   Úexpand_as_defaultr  |  ss   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ�NŠN˜7Ñ#Ô#€Eå˜˜˜S %¤-Ñ0Ô0ÐJÐJµNÀ5Ñ4IÔ4IÐJÐJÐJr   zself: jt_all, size: anyc           
      óŽ  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }t          |¦  «        |                     ¦   «         k    rR|                     g d„ t          |                     ¦   «         t          |¦  «        z
  ¦  «        D ¦   «         ¢|¢¦  «        S t          d¦  «        ‚)NTrí   rè   rŒ   c              3   ó   K  — | ]}d V — ŒdS )r   Nr<   )r    r  s     r   r$   zbroadcast_to.<locals>.<genexpr>’  s"   è è € ÐEÐE 1˜QÐEÐEÐEÐEÐEÐEr   zwbroadcast_to(): broadcasting to a higher-dim shape is currently not supported for nested tensors with the jagged layout)r   rþ   rk   r-   rÚ   r>  rl   )ro   rp   rq   r  r  r	  rŒ   s          r   Úbroadcast_tor  ˆ  s¾   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ�>Š>˜&Ñ!Ô!€Då
ˆ4�y„y�C—G’G‘I”IÒÐØ�zŠzÐMÐEÐE­¨c¯gªg©i¬i½#¸d¹)¼)Ñ.CÑ(DÔ(DÐEÑEÔEÐMÈÐMÑNÔNÐNå
ð	4ñô ð r   ztensors: anyc           
      ó¼  — t          | ||d¬¦  «        \  }}|                     d¦  «        }t          |¦  «        dk    rt          d¦  «        ‚t          |¦  «        dk    r|d         S g }t	          j        d„ |D ¦   «         Ž }t          d„ |D ¦   «         ¦  «        }|D ]°}	|	j        r)|                     |	 	                    |¦  «        ¦  «         Œ2|	 
                    ¦   «         t          |¦  «        k     rK|                     t          |	 	                    |j        j        ¦  «        fi t          |¦  «        ¤Ž¦  «         Œ¢t          d	¦  «        ‚t          |¦  «        S )
NTrí   rÚ  r   z7broadcast_tensors(): expected at least one tensor inputr   c              3   ó$   K  — | ]}|j         V — Œd S r   rc  rÝ  s     r   r$   z$broadcast_tensors.<locals>.<genexpr>§  s$   è è € Ð.HÐ.H¸1¨q¬wÐ.HÐ.HÐ.HÐ.HÐ.HÐ.Hr   c              3   óD   K  — | ]}t          |t          ¦  «        ¯|V — Œd S r   r_   rÝ  s     r   r$   z$broadcast_tensors.<locals>.<genexpr>©  s1   è è € ÐAÐA�Q¥Z°µ<Ñ%@Ô%@ÐAˆqÐAÐAÐAÐAÐAÐAr   zubroadcast_tensors(): broadcasting nested tensors with dense tensors of equal or higher dim is not currently supported)r   rþ   rk   rl   r   Úbroadcast_shapesrÊ   rÜ  r°   r  r-   r   rÇ   r“   rÁ   r'   )
ro   rp   rq   r  r  rÚ  ÚoutsÚbroadcast_shaperÈ   ra   s
             r   Úbroadcast_tensorsr  š  sr  € å&Ø�4 ÀTðñ ô �M€A€zð �nŠn˜YÑ'Ô'€GÝ
ˆ7�|„|�qÒÐÝÐRÑSÔSÐSÝ
ˆ7�|„|�qÒÐØ�qŒzÐà€DÝÔ,Ð.HÐ.HÀÐ.HÑ.HÔ.HÐI€Oå
ÐAÐA˜'ÐAÑAÔAÑ
AÔ
A€CØð ð ˆØŒ;ð 
	Ø�KŠK˜Ÿš Ñ7Ô7Ñ8Ô8Ð8Ð8Ø�UŠU‰WŒW•s˜?Ñ+Ô+Ò+Ð+Ø�KŠKÝ˜QŸ^š^¨C¬KÔ,=Ñ>Ô>ÐVÐVÅ.ÐQTÑBUÔBUÐVÐVñô ð ð õ ð;ñô ð õ
 �‰;Œ;Ðr   z(condition: jt_all, self: any, other: anyc                 óD  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }|                     d¦  «        }t          j        |||¦  «        \  }}}t	           | |j        |j        |j        fi |¤Žfi t          |¦  «        ¤ŽS )NTrí   Ú	conditionrè   rç  )r   rþ   r   r  r   rÇ   rÁ   )ro   rp   rq   r  r  r  r	  rç  s           r   Ú
where_selfr  º  s¾   € õ 'Ø�4 ÀTðñ ô �M€A€zð —’˜{Ñ+Ô+€IØ
�.Š.˜Ñ
!Ô
!€CØ�NŠN˜7Ñ#Ô#€Eõ "Ô3°I¸sÀEÑJÔJÑ€Iˆs�EåØˆˆYÔ ¤¨U¬]ÐIÐI¸jÐIÐIðð å
˜Ñ
#Ô
#ðð ð r   zself: jt, device: any?c                 ó¤   — t          | ||d¬¦  «        \  }}|                     d¦  «        }t           | |j        fi |¤Žfi t	          |¦  «        ¤ŽS r4  r5  r+  s         r   Ú_pin_memory_defaultr  Ï  r7  r   c                 ót   — t          | ||d¬¦  «        \  }}|                     d¦  «        } | |j        fi |¤ŽS r4  ru  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Ò)Ð)r   c                 ó~  ‡‡— t          | ||d¬¦  «        \  }}|                     d¦  «        Š|d         d u p:t          |d         t          t          f¦  «        ot          |d         ¦  «        dk    }|r� | ‰j        fi |¤Ž}|                     dd¦  «        r[t          |t          t          f¦  «        r% t          |¦  «        ˆfd„|D ¦   «         ¦  «        }n| 	                    ‰j
        ¦  «        }|S |d         }	t          |d         t          t          f¦  «        }
|
s|	g}	t          ‰                     ¦   «         |	|› ‰j
        ¦  «        \  }}}}|
s|d         }||d<   |r‰j        �t          |› d	�¦  «        ‚dd
lm} |r�|r3 | ‰j        fi |¤Ž}|                     dd¦  «        r |d„ |¦  «        }|S |rt          |› d�¦  «        ‚|                     d¦  «         |
r‰j
        gn‰j
        } | ‰                     |¦  «        fd|i|¤ŽS |rt          |› d�¦  «        ‚ | ‰j        fi |¤Ž}t%          ‰¦  «        Š|                     dd¦  «        sVt          |d         t          t          f¦  «        r|d         n|d         g}|D ] }|‰j
        dz
  k     r‰dxx         dz  cc<   Œ! |ˆfd„|¦  «        S )NTrí   rè   r-   r   r<  Fc              3   óL   •K  — | ]}|                      ‰j        ¦  «        V — Œd S r   )r×  r]   )r    Úor	  s     €r   r$   z#_apply_reduction.<locals>.<genexpr>ü  s1   øè è € ÐJÐJÀ §¢¨C¬OÑ <Ô <ÐJÐJÐJÐJÐJÐJr   zf(): reducing across the ragged dimension is not supported for non-contiguous nested tensors with holes)Útree_mapc                 ó,   — |                       d¦  «        S )Nr   )r×  )r  s    r   rY   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   r]   c                 ó   •— t          | fi ‰¤ŽS r   r¾  )r  Ú
out_kwargss    €r   rY   z"_apply_reduction.<locals>.<lambda>S  s   ø€ ¥,¨qÐ"?Ð"?°JÐ"?Ð"?€ r   )r   rþ   r&   r'   r(   rk   rÇ   r§   r)   r×  r]   rH   r-   r\   r1   Útorch.utils._pytreer  rñ  rÁ   )ro   Ú	func_nameÚidentity_elementrp   rq   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Ô4ÐT½¸ZÈÔ=NÑ9OÔ9OÐSTÒ9Tð ð ð Øˆd�3”;Ð-Ð- *Ð-Ð-ˆØ�>Š>˜) UÑ+Ô+ð 	5Ý˜#¥¥t˜}Ñ-Ô-ð 5à•d˜3‘i”iÐJÐJÐJÐJÀcÐJÑJÔJÑJÔJ��à—m’m C¤OÑ4Ô4�Øˆ
ð   Ô&€NÝ˜J uÔ-µµt¨}Ñ=Ô=€JØð *Ø(Ð)ˆõ 	Ø�Š‰	Œ	ØØˆØŒñ		ô 	ñØØØØð ð )à% aÔ(ˆØ%€JˆuÑàð 
˜CœLÐ4ÝØð ;ð ;ð ;ñ
ô 
ð 	
ð
 -Ð,Ð,Ð,Ð,Ð,ð ð 2Fàð 	à�$�s”{Ð1Ð1 jÐ1Ð1ˆCØ�~Š~˜i¨Ñ/Ô/ð >à�hÐ7Ð7¸Ñ=Ô=�ØˆJð #ð Ý"Ø ð :ð :ð :ñô ð ð �NŠN˜5Ñ!Ô!Ð!Ø/9ÐN˜3œ?Ð+Ð+¸s¼ˆKØ�4Ø×$Ò$Ð%5Ñ6Ô6ðð Ø<GðØKUðð ð ð ð 	ÝØð Kð Kð Kñô ð ð ˆd�3”;Ð-Ð- *Ð-Ð-ˆÝ# CÑ(Ô(ˆ
Ø�~Š~˜i¨Ñ/Ô/ð 
	3õ ˜j¨Ô/µ%½°Ñ?Ô?ð)�
˜5Ô!Ð!à  Ô'Ð(ð ð
 ð 3ð 3�à�s”¨Ñ*Ò*Ð*Ø˜}Ð-Ð-Ô-°Ñ2Ð-Ð-Ñ-øð ˆxÐ?Ð?Ð?Ð?ÀÑEÔEÐEr   c                 ót   — t          | ||d¬¦  «        \  }}|                     d¦  «        } | |j        fi |¤ŽS r4  ru  r+  s         r   Úsum_defaultr*  V  r�  r   z3self: jt_all, dim: any?, keepdim: any?, dtype: any?c                 ó&   — t          | ddg|¢R i |¤ŽS )Nr¬   r   r˜  r  s      r   Úsum_dim_IntListr,  a  s&   € õ
 ˜D %¨Ð<¨TÐ<Ð<Ð<°VÐ<Ð<Ð<r   z"self: jt_all, dim0: any, dim1: anyc           
      ó~  — t          | ||d¬¦  «        \  }}ddlm} |                     d¦  «        } ||                     ¦   «         |d         |d         f¦  «        \  }}||j        k    s||j        k    r¾|dk    s|dk    rt          d¦  «        ‚||j        k    r|}	n|}	t          |¦  «        }
|	|
d	<   t          | 	                    ¦   «          
                    t          t          |j        ¦  «        ||j        ¦  «        t          t          |j        ¦  «        ||j        ¦  «        ¦  «        fi |
¤ŽS t          |                     ¦   «         |d         |j        d
¦  «        |d<   t          |                     ¦   «         |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 NTr]   Ú	transpose)r   r%   r   rþ   r-   r]   rl   rÁ   r   r   r0  r   rk   rƒ   r9   rÇ   )ro   rp   rq   r  r  r   r	  r.  r/  Úto_dimr_  s              r   Útranspose_intr2  i  sè  € õ 'Ø�4 ÀTðñ ô �M€A€zð 6Ð5Ð5Ð5Ð5Ð5à
�.Š.˜Ñ
!Ô
!€CØ"Ð" 3§7¢7¡9¤9¨z¸&Ô/AÀ:ÈfÔCUÐ.VÑWÔW�J€Dˆ$ð
 ˆsŒÒÐ $¨#¬/Ò"9Ð"9Ø�1Š9ˆ9˜ š	˜	ÝØQñô ð ð �3”?Ò"Ð"ØˆFˆFàˆFÝ# CÑ(Ô(ˆ
Ø$*ˆ
�=Ñ!ÝØ�JŠJ‰LŒL×"Ò"Ý#¥C¨¬	¡N¤N°D¸#¼/ÑJÔJÝ#¥C¨¬	¡N¤N°D¸#¼/ÑJÔJñô ð
ð 
ð
 ð
ð 
ð 	
õ *Ø�Š‰	Œ	�:˜fÔ% s¤¸ñô €JˆvÑõ *Ø�Š‰	Œ	�:˜fÔ% s¤¸ñô €JˆvÑõ ˜˜˜Sœ[Ð7Ð7¨JÐ7Ð7ÐOÐO½>È#Ñ;NÔ;NÐOÐOÐOr   zself: jt_all, dims: anyc                 óâ  ‡
‡— t          | ||d¬¦  «        \  }}|                     d¦  «        Š
|                     d¦  «        }t          ‰
¦  «        }t          ‰
j        ¦  «        Š‰t          |¦  «        k    r't          d‰› d�dt          |¦  «        › d�z   ¦  «        ‚d	d
lm}  |‰|¦  «        }t          |¦  «        t          t          |¦  «        ¦  «        k    rt          d¦  «        ‚‰
j	        �t          d¦  «        ‚|d	         d	k    rt          d¦  «        ‚| 
                    ‰
j        ¦  «        |d<   ˆ
ˆfd„|dd …         D ¦   «         }	|	|d<   t           | ‰
j        fi |¤Žfi |¤ŽS )NTrí   rè   rB   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 NTr]   c                 ó<   •— g | ]}t          ‰|‰j        ¦  «        ‘ŒS r<   )r   r]   )r    r-   r	  Úinp_dims     €€r   r=   z#permute_default.<locals>.<listcomp>·  s7   ø€ ð ð ð àõ 	˜G S¨#¬/Ñ:Ô:ðð ð r   r   )r   rþ   rÁ   rk   rƒ   rl   r%   r   Úsetr\   Úindexr]   r   rÇ   )ro   rp   rq   r  r  rB   r_  r   Úcanonicalized_dimsÚ
inner_dimsr	  r6  s             @@r   Úpermute_defaultr;  –  sÛ  øø€ å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ�>Š>˜&Ñ!Ô!€DÝ Ñ$Ô$€JÝ�#”)‰nŒn€Gð •#�d‘)”)ÒÐÝØOÀGÐOÐOÐOØ_ÕRUÐVZÑR[ÔR[Ð_Ð_Ð_ñ`ñ
ô 
ð 	
ð
 6Ð5Ð5Ð5Ð5Ð5à*Ð*¨7°DÑ9Ô9Ðå
ÐÑÔ¥#¥cÐ*<Ñ&=Ô&=Ñ">Ô">Ò>Ð>ÝÐEÑFÔFÐFà
„|ÐÝØPñ
ô 
ð 	
ð ˜!Ô Ò!Ð!ÝØKñ
ô 
ð 	
ð !3× 8Ò 8¸¼Ñ IÔ I€Jˆ}Ñðð ð ð ð à% a b bÔ)ðñ ô €Jð $€JˆvÑÝ˜˜˜Sœ[Ð7Ð7¨JÐ7Ð7ÐFÐF¸:ÐFÐFÐFr   c                 óÌ  ‡‡‡— t          | ||d¬¦  «        \  }}|                     d¦  «        Š|                     d¦  «        Š‰j        dk    r@t          ‰j        ¦  «        t          ‰¦  «        k    rt          d‰j        › d‰› d�¦  «        ‚t          ‰¦  «        d	k     st          ‰‰¦  «        st          d
‰j        › d‰› �¦  «        ‚ˆˆfd„Šˆfd„t          t          ‰¦  «        dz
  ¦  «        D ¦   «         }t          j
        ‰                     ¦   «         ¦  «        5  t           | ‰j        |¦  «        fi t          ‰¦  «        ¤Žcd d d ¦  «         S # 1 swxY w Y   d S )NTrí   rè   rŒ   r   zVview(): does not support ragged_idx != 1 except when inp._size == size. inp._size is (z) and size is (r4  rö  zview(): cannot view shape z as c                 ój   •— | ‰j         dz
  k    r‰j                             | ¦  «        S ‰| dz            S r[   )r]   rÇ   rŒ   )Ú	inner_idxr	  rŒ   s    €€r   Úget_inner_sizez$view_default.<locals>.get_inner_sizeã  s:   ø€ à˜œ¨!Ñ+Ò+Ð+Ø”;×#Ò# IÑ.Ô.Ð.à˜	 A™Ô&Ð&r   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r<   r<   )r    rv   r?  s     €r   r=   z view_default.<locals>.<listcomp>ê  s#   ø€ ÐBÐBÐB¨�.�. Ñ#Ô#ÐBÐBÐBr   )r   rþ   r]   r'   rƒ   r1   rk   r�   r>  r   Úinference_modeÚis_inferencer   rÇ   rÁ   )	ro   rp   rq   r  r  Ú
inner_sizer?  r	  rŒ   s	         @@@r   Úview_defaultrD  ¿  sþ  øøø€ õ
 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ�>Š>˜&Ñ!Ô!€Dà
„˜!ÒÐ¥ c¤iÑ 0Ô 0µE¸$±K´KÒ ?Ð ?Ýð@Ø œYð@ð @Ø7;ð@ð @ð @ñ
ô 
ð 	
õ ˆ4�y„y�1‚}€}Õ.¨s°DÑ9Ô9€}ÝÐM¸¼	ÐMÐMÀtÐMÐMÑNÔNÐNð 'ð 'ð 'ð 'ð 'ð 'ð CÐBÐBÐB­Uµ3°t±9´9¸q±=Ñ-AÔ-AÐBÑBÔB€Jõ 
Ô	˜c×.Ò.Ñ0Ô0Ñ	1Ô	1ð Rð RÝ˜D˜D ¤¨jÑ9Ô9ÐQÐQ½^ÈCÑ=PÔ=PÐQÐQðRð Rð Rð Rñ Rô Rð Rð Rð Rð Rð Rð Røøøð Rð Rð Rð Rð Rð Rs   Ä#)EÅEÅ EzHinput: jt_all, normalized_shape: any, weight: any?, bias: any?, eps: anyc                 ó  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     ¦   «         dk    rt          d¦  «        ‚|d         }|j        |j                 }|                     ¦   «         t          |¦  «        z
  }|dk    rt          d¦  «        ‚||v r|j        �t          d	¦  «        ‚||v �rt          j	        j
                             |j                             |j        ¬
¦  «        |j        g|j        g¬¦  «        }	t          j	        j
                             t          j        |j        j        d         df|j        |j        ¬¦  «        |j        g|j        g¬¦  «                             |	j        ¦  «        }
|j                             ¦   «                              d¦  «                             d¦  «        |	j        d         z  }t          j        |	dd¬¦  «        |z  }|	|z
  |
z  }t          j        t          j        |¦  «        dd¬¦  «        |z  }t          j        ||d         z   ¦  «        }||z  }t          j	        j
                             ||j        g|j        j        d         ¬¦  «                             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é   )ry  r   )rN  r   )r   r¦   )r-   r<  r÷   r|  rR   )r   rþ   r-   r1   r“   r]   rk   r\   r   r  r  r  rÇ   ræ   rÛ   r€  ÚonesrN  r   rÚ   rÂ  r×  r¬   ÚsquareÚsqrtr�  Ú	unflattenr   rÁ   )ro   rp   rq   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_valuesr/   s                      r   Únative_layer_norm_defaultrV  ò  sm  € õ
 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cà
‡w‚w�y„y�A‚~€~ÝØ]ñ
ô 
ð 	
ð "Ð"4Ô5ÐØ”)˜CœOÔ,€Kà!Ÿgšg™iœi­#Ð.>Ñ*?Ô*?Ñ?Ðð 	  1Ò$Ð$åØdñ
ô 
ð 	
ð Ð&Ð&Ð&¨3¬<Ð+CÝØyñ
ô 
ð 	
ð
 	Ð'Ð'Ñ'å”y”~×EÒEØŒK×ÒØœ/ð  ñ ô ð Œ\ˆNØœÐ)ð Fñ 
ô 
ˆõ ”i”n×DÒDÝŒJ˜œÔ)¨!Ô,¨aÐ0¸¼È3Ì9ÐUÑUÔUØŒ\ˆNØœÐ)ð Eñ 
ô 
÷ Š&ØÔñ
ô 
ð	 	ð ŒL×ÒÑÔ×)Ò)¨!Ñ,Ô,×6Ò6°qÑ9Ô9¸LÔ<NÈqÔ<QÑQð 	õ
 ŒIØØØðñ ô ð
 ñð 	ð ˜DÑ  KÑ/ð 	õ
 ŒIÝ”Ð.Ñ/Ô/ØØðñ ô ð
 ñð 	õ Œj˜ J¨uÔ$5Ñ5Ñ6Ô6ˆØ-°Ñ3Ðå#(¤9¤>×#QÒ#QØØŒ\ˆNØ”KÔ%Øôð $Rñ $
ô $
÷ Š)Ø�”	˜#œ/¨AÑ-Ð/Ð/Ô0ñ
ô 
ð 	!õ Ð1ÐIÐIµ^ÀCÑ5HÔ5HÐIÐIØØð
ð 	
ð ˜˜Sœ[Ð7Ð7¨JÐ7Ð7Ñ€FˆD�#Ý˜Ð7Ð7¥>°#Ñ#6Ô#6Ð7Ð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¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        } | |j        |j        fi |¤Ž\  }}}	|€d ||	fS t          |fi t	          |¦  «        ¤Ž||	fS )NTrí   rŒ  rè   r�  )
ro   rp   rq   r  r  rŒ  r	  Úd_inputÚd_gammaÚd_betas
             r   Ú"native_layer_norm_backward_defaultr[  W  s¥   € õ
 'Ø�4 ÀTðñ ô �M€A€zð �~Š~˜jÑ)Ô)€HØ
�.Š.˜Ñ
!Ô
!€CØ#˜t HÔ$4°c´kÐPÐPÀZÐPÐPÑ€GˆW�fØ€Ø�g˜vÐ&Ð&å˜Ð8Ð8¥N°3Ñ$7Ô$7Ð8Ð8¸'À6ÐJÐJr   z"self: jt_all, dim: any, index: anyc                 óÎ  — t          | ||d¬¦  «        \  }}|                     d¦  «        }t          |                     ¦   «         |d         |j        dd¬¦  «        \  |d<   }|r |                     ¦   «         |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°  r8  zSselect(): not yet supported on dim != 0 for non-contiguous nested tensor with holesr   r]   )r   rþ   r9   r-   r]   r/  r\   rl   rÁ   r   rÇ   )ro   rp   rq   r  r  r	  r8   r  s           r   Ú
select_intr^  h  s  € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CÝ,<Ø�Š‰	Œ	�:˜eÔ$ c¤o°xÐQUð-ñ -ô -Ñ)€JˆuÑÐ)ð ð 1Ø�zŠz‰|Œ|˜J wÔ/Ô0Ð0à
„|ÐÝØañ
ô 
ð 	
õ
   Ñ$Ô$€JØ�%Ô˜3œ?¨QÑ.Ò.Ð.Ø�=Ð!Ð!Ô! QÑ&Ð!Ð!Ñ!å˜˜˜Sœ[Ð7Ð7¨JÐ7Ð7ÐFÐF¸:ÐFÐFÐFr   z7self: jt, dim: any?, start: any?, end: any?, step: any?c                 ó  — t          | ||d¬¦  «        \  }}|                     d¦  «        }t          |                     ¦   «         |d         |j        d¦  «        |d<   t           | |j        fi |¤Žfi t          |¦  «        ¤ŽS )NTrí   rè   r-   Úslice)r   rþ   r9   r-   r]   r   rÇ   rÁ   r+  s         r   Úslice_tensorra  …  s˜   € õ
 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CÝ(Ø�Š‰	Œ	�:˜eÔ$ c¤o°wñô €JˆuÑõ ˜˜˜Sœ[Ð7Ð7¨JÐ7Ð7ÐOÐO½>È#Ñ;NÔ;NÐOÐOÐOr   z8input: jt_all, indices: any, values: t, accumulate: any?c                 óð  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }t          |¦  «        |                     ¦   «         k    r5t	          dt          |¦  «        › d|                     ¦   «         › d�¦  «        ‚t          |¦  «        |j        dz   k     �r|                     ¦   «         st          d	¦  «        ‚dd
lm	} |j
        }|j        }	|	}
|j        j        |j        dz
           }|
€|}
g |j        d |j        …         ¢|
‘|j        |j        dz   d …         ¢R }|                     d|¬¦  «        } | | ||fi |¤Ž|j        |j        |||	¬¦  «        }| t           j        j        j        j        u r.|j                             |                     ¦   «         ¦  «         |S |S |                     ¦   «         €'|                     ¦   «                              ¦   «         }n|                     ¦   «         }t!          j        t!          j        ||j                 |k     ¦  «        d¦  «         |                     ¦   «         |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þ   rk   r-   r,   r]   Úis_contiguousr1   r×   rÍ   rØ   rÙ   rÇ   r“   rñ  rÛ   r   r  r  Ú
index_put_r  rh  r   r¿   r¾   rÂ  Ú_assert_asyncr‰   r   rÁ   )ro   rp   rq   r  r  r	  rc  rÍ   rÓ   rÔ   rÐ   râ   rò  Ú
padded_inpÚnew_njtr¿   Úragged_indicesÚfunc_indicess                     r   re  re  –  sO  € õ 'Ø�4 ÀTðñ ô �M€A€zð #Ÿš wÑ/Ô/€Cð �nŠn˜YÑ'Ô'€Gå
ˆ7�|„|�c—g’g‘i”iÒÐÝØY¥S¨¡\¤\ÐYÐYÀ3Ç7Â7Á9Ä9ÐYÐYÐYñ
ô 
ð 	
õ ˆ7�|„|�c”o¨Ñ)Ò)Ñ)Ø× Ò Ñ"Ô"ð 	ÝØmñô ð ð 	6Ð5Ð5Ð5Ð5Ð5àÔ*ˆ
ØÔ*ˆ
Ø!ˆØ”+Ô# C¤O°aÑ$7Ô8ˆØÐà"ˆLð
ØŒYÐ(˜œÐ(Ô)ð
àð
ð ŒY�s”¨Ñ*Ð,Ð,Ô-ð
ð 
ˆð
 ×)Ò)¨#¸<Ð)ÑHÔHˆ
Ø$Ð$ØˆD�˜WÐ3Ð3¨
Ð3Ð3Ø”LØ”ØØ!Ø!ð
ñ 
ô 
ˆð •5”9”>Ô,Ô4Ð4Ð4ØŒK×Ò˜gŸnšnÑ.Ô.Ñ/Ô/Ð/ØˆJØˆð
 ‡{‚{�}„}ÐØ—+’+‘-”-×$Ò$Ñ&Ô&ˆˆà—+’+‘-”-ˆÝ	ÔåŒ	�'˜#œ/Ô*¨WÒ4Ñ5Ô5ØAñô ð ð —[’[‘]”] 7¨1¤:Ô.°¸¼Ô1IÑI€Nð 	��C”OÐ#Ô$àÐ
ñ	ð �#”/ AÑ%Ð'Ð'Ô
(ñ		)ð ð �uŒyŒ~Ô(Ô0Ð0Ð0Ø�d˜3œ;¨ÐCÐC¸
ÐCÐCˆŒØˆ
åØˆˆSŒ[˜,Ð5Ð5¨*Ð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¬¦  «        \  }}|                     d¦  «        }t           | |j        fi |¤Žfi t	          |¦  «        ¤ŽS r4  r5  r+  s         r   Úconvolution_defaultrl  ö  sj   € õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cå˜˜˜Sœ[Ð7Ð7¨JÐ7Ð7ÐOÐO½>È#Ñ;NÔ;NÐOÐOÐOr   c                 óh  — t          | ||d¬¦  «        \  }}|d         }t          |                     ¦   «         |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                             ¦   «         }t          |
                     ¦   «         d	z
  ¦  «        D ]}|                     d
¦  «        }Œ|
|z  }|	s|                     |j        ¦  «        }|S d}t          | d|fi |¤ŽS )NTrí   rè   r-   rP  zTCannot reduce on both ragged and non-batch dimensions without also reducing on batchr<  r   r   rR   gáz®GáÚ?)r   rH   r-   r]   r,   r™  r   r  r  r¬   Údim_IntListr\   rÛ   rÂ  r>  r×  r”   )ro   rp   rq   r  r  r	  r‚  rƒ  r&  r<  Úintermediate_sumr¿   r"  Úintermediate_values                 r   Úmean_dimrq    s‡  € õ 'Ø�4 ÀTðñ ô �M€A€zð �WÔ
€CÝBSØ�Š‰	Œ	Ø�5ÔØØŒñ	Cô CÑ?€QˆÐ)Ð+>ð ð  ð Øð 	Ý Øfñô ð ð ˜YÔ'ˆØ $ˆ
�9ÑÝ+ÝŒIŒNÔÔ*¨F°Að
ð 
Ø9Cð
ð 
Ðð
 #&¤,Ð":�#”,�,ÀÄ×@QÒ@QÑ@SÔ@SˆÝÐ'×+Ò+Ñ-Ô-°Ñ1Ñ2Ô2ð 	,ð 	,ˆAØ×'Ò'¨Ñ+Ô+ˆGˆGØ Ñ(ˆØð 	/Ø—+’+˜cœoÑ.Ô.ˆCØˆ
ð
 ÐÝ˜D &Ð*<ÐKÐKÀ
ÐKÐKÐKr   c                 ót   — t          | ||d¬¦  «        \  }}|                     d¦  «        } | |j        fi |¤ŽS r4  ru  r+  s         r   Úmean_defaultrs  1  r�  r   z&self: jt_all, dim: any?, keepdim: any?c                 ó&   — t          | ddg|¢R i |¤ŽS )NrA   Fr˜  r  s      r   Úany_dimsru  <  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   ru  r   r  r  rA   rB   ©ro   rp   rq   r  r  s        r   Úany_dimry  A  óW   € å&Ø�4 ÀTðñ ô �M€A€zð
 $ EÔ*Ð+€JˆuÑÝ•E”I”NÔ&Ô+Ð:Ð:¨zÐ:Ð:Ð:r   c                 ó&   — t          | ddg|¢R i |¤ŽS )Nr‰   Tr˜  r  s      r   Úall_dimsr|  L  s$   € å˜D %¨Ð?°Ð?Ð?Ð?¸Ð?Ð?Ð?r   c                 ó’   — t          | ||d¬¦  «        \  }}|d         g|d<   t          t          j        j        j        j        fi |¤ŽS rw  )r   r|  r   r  r  r‰   rB   rx  s        r   Úall_dimr~  Q  rz  r   c                 ót   — t          | ||d¬¦  «        \  }}|                     d¦  «        } | |j        fi |¤ŽS r4  ru  r+  s         r   Úall_any_max_min_defaultr€  \  sR   € õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Càˆ4�”Ð*Ð*˜zÐ*Ð*Ð*r   c                 óx   — t          | ||d¬¦  «        \  }}|                     d¦  «        } | |j        ¦  «        S r4  ru  r+  s         r   Ú_is_true_defaultr‚  o  sJ   € õ
 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØˆ4�”ÑÔÐr   c                 óŒ   — t          | ||d¬¦  «        \  }}|d         j        }t          |d¦  «        }t          | d|g|¢R i |¤ŽS )NTrí   rè   r   r   ©r   r   r   r™  ©ro   rp   rq   r  r  r   Ú	dtype_maxs          r   Úmin_dimr‡  |  óc   € å&Ø�4 ÀTðñ ô �M€A€zð �wÔÔ%€EÝ" 5¨%Ñ0Ô0€IÝ˜D %¨ÐD°TÐDÐDÐD¸VÐDÐDÐDr   c                 óŒ   — t          | ||d¬¦  «        \  }}|d         j        }t          |d¦  «        }t          | d|g|¢R i |¤ŽS )NTrí   rè   r   r   r„  ©ro   rp   rq   r  r  r   Ú	dtype_mins          r   Úmax_dimrŒ  ‡  rˆ  r   c                 óŒ   — t          | ||d¬¦  «        \  }}|d         j        }t          |d¦  «        }t          | d|g|¢R i |¤ŽS )NTrí   rè   r   Úaminr„  r…  s          r   Úamin_defaultr�  ’  óe   € õ 'Ø�4 ÀTðñ ô �M€A€zð �wÔÔ%€EÝ" 5¨%Ñ0Ô0€IÝ˜D &¨)ÐE°dÐEÐEÐE¸fÐEÐEÐEr   c                 óŒ   — t          | ||d¬¦  «        \  }}|d         j        }t          |d¦  «        }t          | d|g|¢R i |¤ŽS )NTrí   rè   r   Úamaxr„  rŠ  s          r   Úamax_defaultr“  Ÿ  r�  r   c                 óŒ   — t          | ||d¬¦  «        \  }}|d         j        }t          |d¦  «        }t          | d|g|¢R i |¤ŽS )NTrí   rè   r   Úargminr„  r…  s          r   Úargmin_defaultr–  ¬  óe   € õ 'Ø�4 ÀTðñ ô �M€A€zð �wÔÔ%€EÝ" 5¨%Ñ0Ô0€IÝ˜D (¨IÐG¸ÐGÐGÐGÀÐGÐGÐGr   c                 óŒ   — t          | ||d¬¦  «        \  }}|d         j        }t          |d¦  «        }t          | d|g|¢R i |¤ŽS )NTrí   rè   r   Úargmaxr„  rŠ  s          r   Úargmax_defaultrš  ¹  r—  r   zAgrad: jt_all, dim: any, indices: jt_all, sizes: any, keepdim: anyc                 óP  ‡
— ddl mŠ
 t          | ||d¬¦  «        \  }}|                     d¦  «        }|j        |d<   |                     d¦  «        }|j        |d<   t          ˆ
fd„t          |d         ¦  «        D ¦   «         ¦  «        }t          t          |d         ¦  «        |d	         |d
¦  «        |d	<   |                     d¦  «        }|j         	                    |j
        dz
  ¦  «        ||<   |dd …         }||d<   t          |¦  «        }	||	d<   t           | di |¤Žfi |	¤ŽS )Nr   r£   Trí   Úgradrc  c              3   ó8   •K  — | ]\  }} ‰|¦  «        ¯|V — Œd S r   r<   )r    rv   rˆ   r¤   s      €r   r$   z=value_selecting_reduction_backward_default.<locals>.<genexpr>Ö  s7   øè è € ÐWÐW™D˜A˜qÀmÀmÐTUÑFVÔFVÐW�aÐWÐWÐWÐWÐWÐWr   Úsizesr-   Ú"value_selecting_reduction_backwardr   r]   r<   )r«   r¤   r   rþ   rÇ   rÊ   rn   r9   rk   rŒ   r]   rÁ   r   )ro   rp   rq   r  r  rœ  rc  r?   rž  rr  r¤   s             @r   Ú*value_selecting_reduction_backward_defaultr   Æ  s_  ø€ ð
 DÐCÐCÐCÐCÐCå&Ø�4 ÀTðñ ô �M€A€zð �>Š>˜&Ñ!Ô!€DØœ€JˆvÑØ�nŠn˜YÑ'Ô'€GØ#œO€JˆyÑåÐWÐWÐWÐW¥I¨j¸Ô.AÑ$BÔ$BÐWÑWÔWÑWÔW€Jå(ÝˆJ�wÔÑ Ô Ø�5ÔØØ,ñ	ô €JˆuÑð �NŠN˜7Ñ#Ô#€EØœ×,Ò,¨WÔ-@À1Ñ-DÑEÔE€Eˆ*ÑØ�!�"�"ŒI€EØ€JˆwÑå" 7Ñ+Ô+€MØ#-€M�-Ñ å˜˜Ð*Ð*˜zÐ*Ð*Ð<Ð<¨mÐ<Ð<Ð<r   c                 ó`  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|D ]�}t          |t          ¦  «        st	          d¦  «        ‚|                     ¦   «         |d                              ¦   «         k    rt	          d¦  «        ‚t          ||d         j        ¦  «        st	          d¦  «        ‚Œ�t          |d                              ¦   «         dz   |d	         |d         j	        d
¦  «        |d	<   t           | d„ |D ¦   «         fi |¤Žfi t          |d         ¦  «        ¤ŽS )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÷  c                 ó   — g | ]	}|j         ‘Œ
S r<   rÆ   rÝ  s     r   r=   z!stack_default.<locals>.<listcomp>	  rã  r   )r   rþ   r&   r   r1   r-   r�   r“   r9   r]   rÁ   )ro   rp   rq   r  r  rÚ  ra   s          r   Ústack_defaultr£  ê  sb  € å&Ø�4 ÀTðñ ô �M€A€zð
 �nŠn˜YÑ'Ô'€GØð ð ˆÝ˜!�\Ñ*Ô*ð 	NÝÐLÑMÔMÐMà�5Š5‰7Œ7�g˜a”j—n’nÑ&Ô&Ò&Ð&ÝØKñô ð õ " ! W¨Q¤ZÔ%5Ñ6Ô6ð 	ÝØXñô ð ð	õ
 )Ø�Œ
�ŠÑÔ˜1Ñ˜j¨Ô/°¸´Ô1GÈñô €JˆuÑõ ØˆÐ)Ð) Ð)Ñ)Ô)Ð8Ð8¨ZÐ8Ð8ðð Ý<JÈ7ÐSTÌ:Ñ<VÔ<Vðð ð r   zQweight: t, indices: jt, padding_idx: any?, scale_grad_by_freq: any?, sparse: any?c                 óÐ   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }t           | ||j        fi |¤Žfi t	          |¦  «        ¤ŽS )NTrí   rc  rö   r5  )ro   rp   rq   r  r  rc  rö   s          r   Úembedding_defaultr¥  		  s‰   € õ
 'Ø�4 ÀTðñ ô �M€A€zð
 �nŠn˜YÑ'Ô'€GØ�^Š^˜HÑ%Ô%€FåØˆˆV�W”_Ð3Ð3¨
Ð3Ð3ðð Ý7EÀgÑ7NÔ7Nðð ð r   zYgrad_output: jt, indices: jt, num_weights: any, padding_idx: any, scale_grad_by_freq: anyc                 óª   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        } | |j        |j        fi |¤ŽS )NTrí   rc  r9  ru  )ro   rp   rq   r  r  rc  r9  s          r   Ú embedding_dense_backward_defaultr§  	  sh   € õ
 'Ø�4 ÀTðñ ô �M€A€zð �nŠn˜YÑ'Ô'€GØ—.’. Ñ/Ô/€KØˆ4�Ô# W¤_ÐCÐC¸
ÐCÐCÐCr   c                 óŠ   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|j                             ¦   «         S r4  )r   rþ   rÇ   Údetachr+  s         r   Úvalues_defaultrª  )	  sN   € õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cð Œ;×ÒÑÔÐr   c                 óx   — t          | ||d¬¦  «        \  }}|                     d¦  «        } | |j        ¦  «        S r4  ru  r+  s         r   Úall_defaultr¬  <	  sH   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Càˆ4�”ÑÔÐr   z-self: jt_all, padding: any, output_size: any?c                 óv  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|j        �t          d¦  «        ‚|d         }|�||j                 }n(|j        �|j        n|j                             d¦  «        }| 	                    ¦   «         }|j        dk    r| 
                    |j        dz
  d¦  «        }|j        }	|                     ¦   «         dk    r|                     d¬	¦  «        }n-|                     ¦   «         dk    r|                     d
¦  «        }|j        t           j        u }
|
r&|j        r|                     t           j        ¦  «        }t           j        j                             ||j        g|g|d         ¦  «        }|
r&|j        r|                     t           j        ¦  «        }t3          |	¦  «        dk    r|                     d
|	dd …         ¦  «        }n(t3          |	¦  «        dk    r|                     d
¦  «        }|j        dk    r| 
                    |j        d¦  «        }|S )NTrí   rè   z?to_padded_tensor(): not supported for nested tensors with holesrð  r   r   r¦   rF  rR   Úpadding)r   rþ   r\   r1   r]   Ú_max_seqlen_tensorr€  rÇ   rŒ   r   r0  r“   r-   ræ   r×  r   r   ÚboolÚis_cudarT  Úhalfr  r  r  rÛ   rk   rJ  r”   )ro   rp   rq   r  r  r	  rð  Úmax_seq_lenr   Úvalues_shapeÚis_boolÚ
padded_outs               r   Úto_padded_tensor_defaultr·  G	  s>  € õ
 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cà
„|ÐÝØMñ
ô 
ð 	
ð
 ˜]Ô+€KØÐØ! #¤/Ô2ˆˆð Ô%Ð1ð ŒOˆOà”×!Ò! !Ñ$Ô$ð 	ð �ZŠZ‰\Œ\€FØ
„˜ÒÐØ×!Ò! #¤/°AÑ"5°qÑ9Ô9ˆØ”<€LØ‡z‚z�|„|�aÒÐØ—’¨!�Ñ,Ô,ˆˆØ	�Š‰Œ˜Ò	Ð	Ø×!Ò! "Ñ%Ô%ˆð Œl�eœjÐ(€GØð '�6”>ð 'Ø—’�5œ:Ñ&Ô&ˆÝ””×?Ò?ØØ	ŒˆØ	ˆØ�9Ôñ	ô €Jð ð /�:Ô%ð /Ø—]’]¥5¤:Ñ.Ô.ˆ
õ ˆ<ÑÔ˜1ÒÐØ×)Ò)¨"¨l¸1¸2¸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         }}|                     dd¦  «        }|dk    r|                     |d¦  «        }|j        }|                     ¦   «         dk    r|                     d¬	¦  «        }n-|                     ¦   «         dk     r|                     d
¦  «        }|j        t          j	        u }	|	r&|j
        r|                     t          j        ¦  «        }t          j        j                             ||g|d         ¦  «        }
|	r&|
j
        r|
                     t          j	        ¦  «        }
t!          |¦  «        dk    r|
                     d
|dd …         ¦  «        }
n(t!          |¦  «        dk     r|
                     d
¦  «        }
|dk    r|
                     |dz
  d¦  «        }
|d         }|d         }i }|�||d<   |�||d<   t'          |
|||¬¦  «        S )NTrí   Úpaddedr¾   r?   r   rö  r¦   rF  rR   rÒ   r   rÓ   rÔ   )r]   rÀ   )r   r§   r0  r“   r-   ræ   r×  r   r   r°  r±  rT  r²  r  r  r�  rk   rJ  r”   r   )ro   rp   rq   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Ô0€Jð �A‚~€~Ø×!Ò! *¨aÑ0Ô0ˆØ%œ|ÐØ‡z‚z�|„|�aÒÐØ—’¨!�Ñ,Ô,ˆˆØ	�Š‰Œ˜Ò	Ð	Ø×!Ò! "Ñ%Ô%ˆð Œl�eœjÐ(€GØð '�6”>ð 'Ø—’�5œ:Ñ&Ô&ˆÝŒYŒ^×;Ò;Ø��	˜: gÔ.ñô €Fð ð '�6”>ð 'Ø—’�5œ:Ñ&Ô&ˆõ Ð#Ñ$Ô$ qÒ(Ð(Ø×!Ò! "Ð&>¸q¸r¸rÔ&BÑCÔCˆˆÝ	Ð%Ñ	&Ô	&¨Ò	*Ð	*Ø—’ Ñ#Ô#ˆØ�A‚~€~Ø×!Ò! *¨q¡.°!Ñ4Ô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¿   r]   rÀ   )r   r   )ro   rp   rq   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                 óf   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|j        S r4  )r   rþ   rÛ   r+  s         r   Ú_nested_get_offsetsrÀ  ß	  ó>   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØŒ<Ðr   c                 óf   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|j        S r4  )r   rþ   r\   r+  s         r   Ú_nested_get_lengthsrÃ  é	  rÁ  r   c                 óf   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|j        S r4  )r   rþ   r]   r+  s         r   Ú_nested_get_ragged_idxrÅ  ó	  s>   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØŒ?Ðr   c                 óŽ   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|j                             dd ¦  «        S )NTrí   rè   rÓ   ©r   rþ   rÀ   r§   r+  s         r   Ú_nested_get_min_seqlenrÈ  ý	  óO   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØÔ×"Ò" <°Ñ6Ô6Ð6r   c                 óŽ   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|j                             dd ¦  «        S )NTrí   rè   rÔ   rÇ  r+  s         r   Ú_nested_get_max_seqlenrË  
  rÉ  r   zself: jt, mask: anyc                 ó<  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }|j        dk    rt          d¦  «        ‚|j        |j        k    rt          d|j        › d|j        › �¦  «        ‚|j                             |                     ¦   «         ¦  «        }t          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   r{  rµ  r¾   r   r<   )r   rþ   r"   r1   r“   rÇ   Úmasked_selectr   r·  r¸  r³  rÁ   rÛ   r   )	ro   rp   rq   r  r  r	  r”  Ú
res_valuesÚmask_cumsums	            r   Úmasked_select_defaultrÐ  
  s(  € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ�>Š>˜&Ñ!Ô!€Dà
„x�!‚|€|ÝÐPÑQÔQÐQØ	Œ�d”jÒ	 Ð	 ÝØ\˜tœzÐ\Ð\ÐQTÔQZÐ\Ð\ñ
ô 
ð 	
ð ”×*Ò*¨4¯;ª;©=¬=Ñ9Ô9€JÝ”%˜Ÿš™œ×,Ò,°Ð,Ñ3Ô3°VÑ<Ô<€Kå˜#ÑÔ€DØ! #¤,Ô/€Dˆ�OÝð ð Øðà
ðð ð r   z2grad_output: t, self: jt_all, dim: any, index: anyc                 ó&  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }t          j        ||j        ¬¦  «        }|                     |d         |d         ¦  «                             |¦  «         |S )NTrí   rè   r9  )r   r-   r8  )r   rþ   r   Ú
zeros_liker   r]  rh  )ro   rp   rq   r  r  r	  r9  Ú
grad_inputs           r   Ú_nested_select_backward_defaultrÔ  +
  s•   € õ
 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ—.’. Ñ/Ô/€KåÔ! #¨[Ô->Ð?Ñ?Ô?€JØ×Ò�j Ô'¨°GÔ)<Ñ=Ô=×CÒCÀKÑPÔPÐPàÐr   zself: jt_all, s: anyc                 óž   — |d         }|d         } | |j         |¦  «          | |j        |¦  «         |j        � | |j        |¦  «         d S d S r’   )rÇ   rÛ   r\   )ro   rp   rq   r	  Ústreams        r   Úrecord_stream_defaultr×  =
  sf   € à
ˆqŒ'€CØ�!ŒW€Fà€DˆŒ�fÑÔÐØ€DˆŒ�vÑÔÐØ
„|ÐØˆˆSŒ\˜6Ñ"Ô"Ð"Ð"Ð"ð  Ðr   zRself: jt_all, size: any, dtype: any?, layout: any?, device: any?, pin_memory: any?c                 óÄ   — t          | ||d¬¦  «        \  }}|                     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þ   rk   rÇ   r1   r+  s         r   Únew_empty_defaultrÙ  H
  sy   € õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cå
ˆ:�fÔÑÔ !Ò#Ð#Øˆt�C”KÐ.Ð. :Ð.Ð.Ð.å
ÐKÑ
LÔ
LÐLr   zself: jt_all, ...c                 óˆ   — t          d„ |D ¦   «         ¦  «        }t           | d„ |D ¦   «         i |¤Žfi t          |¦  «        ¤ŽS )Nc              3   óD   K  — | ]}t          |t          ¦  «        ¯|V — Œd S r   r_   rÄ   s     r   r$   z&activation_backward.<locals>.<genexpr>j
  s1   è è € ÐLÐL˜s­j¸½lÑ.KÔ.KÐL�sÐLÐLÐLÐLÐLÐLr   c              3   óR   K  — | ]"}t          |t          ¦  «        r|j        n|V — Œ#d S r   )r&   r   rÇ   rÄ   s     r   r$   z&activation_backward.<locals>.<genexpr>m
  s7   è è € ÐTÐTÈ�Z¨­\Ñ:Ô:ÐCˆcŒkˆkÀÐTÐTÐTÐTÐTÐTr   rÉ   )ro   rp   rq   r9  s       r   Úactivation_backwardrÝ  ]
  sq   € õ ÐLÐL dÐLÑLÔLÑLÔL€KÝØˆØTÐTÈtÐTÑTÔTð	
àð	
ð 	
ðð õ
 ˜Ñ
%Ô
%ðð ð r   zself: jt_all, value: anyc                 ó¤   — t          | ||d¬¦  «        \  }}|                     d¦  «        }t           | |j        fi |¤Žfi t	          |¦  «        ¤ŽS r4  r5  r+  s         r   Úfill_Scalarrß  t
  r7  r   c                 óx   — t          | ||d¬¦  «        \  }}|                     d¦  «        } | |j        fi |¤Ž |S r4  ru  r+  s         r   Úfill__Scalarrá  
  sU   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cà€DˆŒÐ#Ð#˜
Ð#Ð#Ð#Ø€Jr   c                 óÐ   — t          | ||d¬¦  «        \  }}|                     d¦  «        }t          |¦  «        } | |j        ¦  «        \  }}t	          |fi |¤Žt	          |fi |¤ŽfS r4  )r   rþ   rÁ   rÇ   r   )	ro   rp   rq   r  r  r	  rr  ÚmantissaÚexponents	            r   Úfrexp_Tensorrå  ‹
  s’   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CÝ" 3Ñ'Ô'€Mà˜˜cœkÑ*Ô*Ñ€HˆhÝ˜Ð2Ð2 MÐ2Ð2µLØð5ð 5Ø!ð5ð 5ð ð r   z+grad: any, self: any, other: any, mask: anyc                 ó²  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }|                     d¦  «        }|                     d¦  «        }|€dS d }	|d         r)t          j        ||                     d	d
¦  «        ¦  «        }	d }
|d         r)t          j        |                     d	d
¦  «        |¦  «        }
|	|
fS )NTrí   rœ  rè   rç  r”  rú   r   rR   éþÿÿÿr   )r   rþ   r   r=  r0  )ro   rp   rq   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  u§¢°r¸2Ñ'>Ô'>Ñ?Ô?ˆ	à€JØ�qÔð ?Ý”\ #§-¢-°°BÑ"7Ô"7¸Ñ>Ô>ˆ
à�zÐ"Ð"r   z	self: anyc                 ó"   — ddl m}  |¦   «         S )Nr   )Ú_nt_view_dummy)Ú$torch.nested._internal.nested_tensorrí  )ro   rp   rq   rí  s       r   Ú_nested_get_jagged_dummyrï  ·
  s"   € àCÐCÐCÐCÐCÐCàˆ>ÑÔÐr   r  ÚIMPLrï  ÚCPUÚCUDAÚMeta)F)TFF)r   rù   )îr²   r   Útypingr   Útorch.nn.functionalr}  r~  r·  Útorch.fx.operator_schemasr   Útorch.nested._internal.sdpar   r×   r   r   r	   r(   ÚAnyÚ__annotations__r
   ÚDictr   r   r9   rH   Ústrr|   r„   r�   r•   r¡   r³   Úregister_jagged_funcÚCallabler»   rÁ   r´   rµ   r  r  r  r  r  r  r-   r  r  r  r  r  ÚprimrL  r   rŒ   r"  rd  r(  r%  r*  r,  r?  r2  Úlinearr6  Úlinear_backwardrF  rT  r   rH  Ú_to_copyr`  rh  ro  r©  Ú
empty_likeÚ	ones_likerÒ  Ú	rand_likeÚ
randn_likers  Ú	full_likeÚrandint_likeÚ	low_dtypeÚzero_rv  Ú_softmaxr‡  Ú_log_softmaxrŠ  Ú_softmax_backward_datar�  Únative_dropoutr’  Únative_dropout_backwardr•  r—  Údim_intrš  rœ  ri   rW   r£  r¥  r¨  rª  r¯  rÆ  r/  rÑ  rÓ  r”   rÕ  r×  rØ  rá  rå  r=  rø  Úbmmrü  rÚ   r  rß  r  r  r  Úwherer;  r  Ú_pin_memoryr  Ú	is_pinnedr  Úis_same_sizer  r™  r¬   r*  rn  r,  r0  r2  Úpermuter;  ÚviewÚ_unsafe_viewrD  Únative_layer_normrV  Únative_layer_norm_backwardr[  r]  r^  r`  ra  Ú	index_putre  Úconvolutionrl  rP  rq  rs  rA   rB   ru  ry  r‰   r|  r~  r   r   r€  Ú_is_all_trueÚ_is_any_truer‚  r‡  rŒ  rŽ  r�  r’  r“  r•  r–  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>r6     s/  ðà Ð Ð Ð Ð Ø €€€Ø Ð Ð Ð à €€€Ø Ð Ð Ð Ð Ð Ð Ð Ð Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø KÐ KÐ KÐ KÐ KÐ Kà 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6ð €ˆˆcŒÐ Ð Ñ à#%Ð �$�s˜C�x”.Ð %Ð %Ñ %ðHð Hð Hðð ð ð ð6 ØØðð ð ð ð:Yð Yð Yð Yð:=˜Sð =¸Dð =ð =ð =ð =ð@
Øð
Ø#&ð
Ø+7ð
ØADð
à	ð
ð 
ð 
ð 
ðð ð ðð ð ð0ð ð ð. )�yÔ(¨Ð8HÑIÔIÐ ð&¨H°t©Oð &ð &ð &ð &ðRð ð ðð ð ðLSð LSð LSð^c$ð c$ð c$ðL ÐàŒ	ŒÔ3Ô;ØŒ	ŒÔÔ'ØŒ	ŒÔÔ"ØŒ	ŒÔÔ$ØŒ	ŒÔ Ô(ØŒ	ŒÔ!Ô)ØŒ	ŒÔ)Ô1ðð ñô ð0ð 0ñô ð0ð( Ð�e”i”nÔ+Ô3°^ÑDÔDðð ñ EÔDðð ÐØ
„Y„^ÔÔ Ð!Øñô ð
ð 
ð 
ñ	ô ð
ð Ð�e”i”nÔ2Ô:¸NÑKÔKðFð Fñ LÔKðFð(Ð Ð Ø	„I„NÔ Ô.Ð0Sñô àñô ð ð
 ÐØ	„I„NÔ$Ô,Ð.Qñô ðOð Oñô ðOð( ÐØ	„I„NÔÔ Ð"Fñô ðEð Eñô ðEð4 Ð�e”i”nÔ+Ô3Ð5UÑVÔVðPð Pñ WÔVðPð ÐØ	„I„NÔ"Ô*Ø<ñô ð"ð "ñ	ô ð"ðJ Ð�e”i”nÔ'Ô-Ð/JÑKÔKðPð Pñ LÔKðPð Ð�e”i”nÔ-Ô5°~ÑFÔFð&ð &ñ GÔFð&ðR ÐØ	„I„NÔÔ Ð"Qñô ðð ñô ðð: DÐ Ð �U”Y”^Ô*Ô2°NÑ CÔ CØñô ð ð
 ÐàŒ	ŒÔ!Ô)ØŒ	ŒÔ Ô(ØŒ	ŒÔ!Ô)ØŒ	ŒÔ Ô(ØŒ	ŒÔ!Ô)ðð ñ	ô 	ð-5ð -5ñ	ô 	ð-5ð` XÐ Ð �U”Y”^Ô-Ô5Ð7VÑ WÔ WØñô ð ð UÐ Ð �U”Y”^Ô0Ô8Ð:SÑ TÔ TØñô ð ðÐ Ð Ø	„I„NÔÔ)Ð+Nñô àñô ð ð
 Ð�e”i”nÔ*Ô2°NÑCÔCðð ñ DÔCðð ÐØ	„I„NÔÔ#Ð%Qñô ðEPð EPñô ðEPðP ÐØ	„I„NÔÔ'Ð)Uñô ð"Pð "Pñô ð"PðJ ÐØ	„I„NÔ)Ô1Ø=ñô ðð ñ	ô ðð ÐØ	„I„NÔ!Ô)Ð+Nñô ð
ð 
ñô ð
ð ÐØ	„I„NÔ*Ô2Ø+ñô ð	ð 	ñ	ô ð	ð ÐØ	„I„NÔÔØ8ñô ð>ð >ñ	ô ð>ð Ð�e”i”nÔ)Ô1Ð3NÑOÔOð+ð +ñ PÔOð+ð ÐØ	„I„NÔÔÐ!Gñô ðð ñô ðð" ÐØ	„I„NÔ#Ô+Ð-Tñô ðð ñô ðð" ÐØ	„I„NÔÔ!Ð#Pñô ð7ð 7ñô ð7ð  Ð�e”i”nÔ*Ô2Ð4VÑWÔWð&
ð &
ñ XÔWð&
ðR Ð�e”i”nÔ+Ô/Ð1JÑKÔKðEð Eñ LÔKðEðP Ð�e”i”nÔ,Ô0Ð2FÑGÔGðKð Kñ HÔGðKð Ð�e”i”nÔ.Ô6Ð8PÑQÔQðEð Eñ RÔQðEð, Ð�e”i”nÔ(Ô0Ð2KÑLÔLðð ñ MÔLðð2 Ð�e”i”nÔ+Ô3Ð5LÑMÔMðjð jñ NÔMðjðZ Ð�e”i”nÔ(Ô0Ð2KÑLÔLðEð Eñ MÔLðEð  ÐØ	„I„NÔÔ!Ð#Lñô ðNð Nñô ðNð" Ð�e”i”nÔ.Ô6Ð8LÑMÔMðKð Kñ NÔMðKð Ð�e”i”nÔ1Ô9Ð;TÑUÔUðð ñ VÔUðð" Ð�e”i”nÔ6Ô>ÀÑOÔOðð ñ PÔOðð> ÐØ	„I„NÔÔÐIñô ðð ñô ðð$ Ð�e”i”nÔ0Ô8Ð:RÑSÔSðPð Pñ TÔSðPð Ð�e”i”nÔ.Ô6Ð8PÑQÔQð+ð +ñ RÔQð+ð ÐØ	„I„NÔÔ'Ð)Fñô ð*ð *ñô ð*ðgFð gFð gFðT Ð�e”i”nÔ(Ô0Ð2MÑNÔNð+ð +ñ OÔNð+ð ÐØ	„I„NÔÔ"Ø9ñô ð=ð =ñ	ô ð=ð ÐØ	„I„NÔÔ Ð"Fñô ð'Pð 'Pñô ð'PðT Ð�e”i”nÔ,Ô4Ð6OÑPÔPð%Gð %Gñ QÔPð%GðP ÐØ
„Y„^ÔÔ  %¤)¤.Ô"=Ô"EÐFØñô ð,Rð ,Rñ	ô ð,Rð^ ÐØ	„I„NÔ$Ô,ØNñô ð^Dð ^Dñ	ô ð^DðB ÐØ	„I„NÔ-Ô5Øvñô ð
Kð 
Kñ	ô ð
Kð Ð�e”i”nÔ+Ô/Ð1UÑVÔVðGð Gñ WÔVðGð8 ÐØ	„I„NÔÔØ=ñô ð
Pð 
Pñ	ô ð
Pð ÐØ	„I„NÔÔ$Ø>ñô ð ÐØ	„I„NÔÔ%Ø>ñô ðUð Uñ	ô ñ	ô ðUðp ÐØ	„I„NÔÔ&ðGñô ð
Pð Pñô ð
Pð ÐØ	„I„NÔÔÐRñô ð&Lð &Lñô ð&LðR Ð�e”i”nÔ)Ô1Ð3NÑOÔOð+ð +ñ PÔOð+ð Ð�e”i”nÔ(Ô-Ð/WÑXÔXðAð Añ YÔXðAð Ð�e”i”nÔ(Ô,Ð.UÑVÔVð;ð ;ñ WÔVð;ð Ð�e”i”nÔ(Ô-Ð/WÑXÔXð@ð @ñ YÔXð@ð Ð�e”i”nÔ(Ô,Ð.UÑVÔVð;ð ;ñ WÔVð;ð ÐàŒ	ŒÔÔ"ØŒ	ŒÔÔ"ØŒ	ŒÔÔ"ØŒ	ŒÔÔ"ð	ð ñô ð+ð +ñô ð+ð ÐØ
„Y„^Ô Ô(¨%¬)¬.Ô*EÔ*MÐNØñô ðð ñ	ô ðð Ð�e”i”nÔ(Ô,Ð.UÑVÔVðEð Eñ WÔVðEð Ð�e”i”nÔ(Ô,Ð.UÑVÔVðEð Eñ WÔVðEð ÐØ	„I„NÔÔÐ!Iñô ðFð Fñô ðFð ÐØ	„I„NÔÔÐ!Iñô ðFð Fñô ðFð ÐØ	„I„NÔÔ!Ð#Kñô ðHð Hñô ðHð ÐØ	„I„NÔÔ!Ð#Kñô ðHð Hñô ðHð ÐØ	„I„NÔ5Ô=ØGñô ð=ð =ñ	ô ð=ð@ Ð�e”i”nÔ*Ô2Ð4MÑNÔNðð ñ OÔNðð< ÐØ	„I„NÔÔ$ØWñô ðð ñ	ô ðð ÐØ	„I„NÔ+Ô3Ø_ñô ðDð Dñ	ô ðDð ÐàŒ	ŒÔÔ%ØŒ	ŒÔ)Ô1ðð ñô ð	 ð 	 ñô ð	 ð Ð�e”i”nÔ(Ô0°.ÑAÔAðð ñ BÔAðð ÐØ	„I„NÔ#Ô+Ø3ñô ð8ð 8ñ	ô ð8ðv ÐØ	„I„NÔ-Ô5Øiñô ð2ð 2ñ	ô ð2ðj ÐØ	„I„NÔ+Ô3Øiñô ðð ñ	ô ðð8 Ð�e”i”nÔ8Ô@À.ÑQÔQðð ñ RÔQðð Ð�e”i”nÔ8Ô@À.ÑQÔQðð ñ RÔQðð Ð�e”i”nÔ;ÔCÀ^ÑTÔTðð ñ UÔTðð Ð�e”i”nÔ;ÔCÀ^ÑTÔTð7ð 7ñ UÔTð7ð Ð�e”i”nÔ;ÔCÀ^ÑTÔTð7ð 7ñ UÔTð7ð Ð�e”i”nÔ2Ô:Ð<QÑRÔRðð ñ SÔRðð0 ÐØ	„I„NÔ*Ô2Ø8ñô ðð ñ	ô ðð Ð�e”i”nÔ2Ô:Ð<RÑSÔSð#ð #ð #ñ TÔSð#ð ÐàŒ	ŒÔ Ô(ØŒ	ŒÔ Ô(ØŒ	ŒÔÔ'ðð
 Yñô ð
Mð 
Mñô ð
Mð ÐàŒ	ŒÔ#Ô+ØŒ	ŒÔ*Ô2ØŒ	ŒÔ+Ô3ØŒ	ŒÔ(Ô0ØŒ	ŒÔ(Ô0ØŒ	ŒÔ*Ô2ðð ñ
ô 
ð	ð 	ñ
ô 
ð	ð Ð�e”i”nÔ)Ô0Ð2LÑMÔMðPð Pñ NÔMðPð Ð�e”i”nÔ*Ô1Ð3MÑNÔNðð ñ OÔNðð Ð�e”i”nÔ*Ô1°>ÑBÔBðð ñ CÔBðð ÐØ	„I„NÔ"Ô*Ø1ñô ð#ð #ñ	ô ð#ð2 Ð�e”i”nÔ=ÔEÀ{ÑSÔSðð ñ TÔSðð „]×"Ò" 6¨6Ñ2Ô2ð L°dØ‡I‚IÐ(Ð*BÀEÑJÔJÐJØ‡I‚IÐ(Ð*BÀFÑKÔKÐKØ‡I‚IÐ(Ð*BÀFÑKÔKÐKðLð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Lð Lð Ls   ÁFAAG#ÁG#AG'ÁG*AG'