Ë
    L²jcå  ã                  ó¤  — d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z	m
ZmZmZ d dlmZ d dlZd dlZd dlZd dlmZ d dlmZ d dlmZ d dlmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ d d	l%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ d d
l,m-Z- d dl.m/Z/ erd dl0m1Z1m2Z2 d dl%m3Z3 d dl4m5Z5 e(ejl                  z  Z7 ed«      Z8 ed«      Z9 ed«      Z:ej*                  jv                  Z<g d¢Z=i Z>g Z?ej€                  j‚                  j„                  ZBdZd„ZCd[d„ZD eCg eBjŠ                  jŒ                  ‘eBjŠ                  jŽ                  ‘eBj�                  jŒ                  ‘eBj�                  jŽ                  ‘eBj’                  jŒ                  ‘eBj’                  jŽ                  ‘eBj”                  jŒ                  ‘eBj”                  j–                  ‘eBj”                  jŽ                  ‘eBj”                  j˜                  ‘eBjš                  jŒ                  ‘eBjš                  j–                  ‘eBjš                  jŽ                  ‘eBjš                  j˜                  ‘eBjœ                  jŒ                  ‘eBjœ                  j–                  ‘eBjœ                  jl                  ‘eBjœ                  jž                  ‘eBjœ                  j                   ‘eBjœ                  j¢                  ‘eBjœ                  jŽ                  ‘eBjœ                  j˜                  ‘eBjœ                  j¤                  ‘eBjœ                  j¦                  ‘eBjœ                  j¨                  ‘eBjœ                  jª                  ‘eBj¬                  jŒ                  ‘eBj¬                  jŽ                  ‘eBj®                  jŒ                  ‘eBj®                  jŽ                  ‘eBj°                  jŒ                  ‘eBj°                  jŽ                  ‘eBj²                  jŒ                  ‘eBj²                  jŽ                  ‘eBj´                  jŒ                  ‘eBj´                  jŽ                  ‘eBj¶                  jŒ                  ‘eBj¶                  jŽ                  ‘­Ž Z\ eCeBjº                  jŒ                  eBj¼                  jŒ                  eBj¼                  jŽ                  eBj¾                  jŒ                  eBjÀ                  jÂ                  eBjÀ                  jÄ                  eBjÆ                  jŒ                  eBjÈ                  jŒ                  eBjÈ                  jŽ                  eBjÊ                  jŒ                  eBjÊ                  jŽ                  «      ZfeBjÎ                  fZhd\d„ZiejÔ                  d]d„«       Zk	 	 	 	 d^d„Zld_d„Zmd`d„Zn ele>jÞ                  «      	 	 	 	 	 	 	 	 	 	 dad„«       Zp elek«       elg e\¢«      	 	 	 	 	 	 	 	 	 	 dbd„«       «       Zq eleBjÆ                  jŒ                  «      	 	 	 	 	 	 	 	 	 	 dcd„«       Zr elej‚                  jæ                  jè                  jŒ                  «      	 dd	 	 	 	 	 	 	 	 	 ded„«       Zt elej‚                  jæ                  jê                  jŒ                  «      	 	 	 	 	 	 	 	 dfd„«       Zu elej‚                  jæ                  jì                  jŒ                  «      	 dd	 	 	 	 	 	 	 	 	 dgd„«       Zv eleBjÀ                  jÄ                  «       eleBjÀ                  jÂ                  «      	 	 	 	 	 	 	 	 	 	 dbd „«       «       Zwd_d!„Zx elex«      	 	 	 	 	 	 	 	 	 	 dbd"„«       Zy eleBjô                  jŒ                  «      	 	 	 	 	 	 	 	 	 	 dbd#„«       Zz eleBjö                  jŒ                  «      	 	 	 	 	 	 	 	 	 	 dbd$„«       Z{ eld%„ «      	 	 	 	 	 	 	 	 	 	 dhd&„«       Z|	 	 	 did'd(œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 djd)„Z} eleBjü                  jŒ                  «      	 	 	 di	 	 	 	 	 	 	 	 	 	 	 	 	 dkd*„«       Z eleB�j                   �j                  «      	 	 	 	 	 	 	 	 	 	 	 	 dld+„«       Z‚ eleB�j                  jŒ                  «      	 	 	 di	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dmd,„«       Zƒ eleB�j                  jŒ                  «      	 	 	 dn	 	 	 	 	 	 	 	 	 	 	 	 	 dod-„«       Z„	 dp	 	 	 	 	 	 	 	 	 dqd.„Z…	 	 	 	 	 	 drd/„Z†	 	 ds	 	 	 	 	 	 	 	 	 dtd0„Z‡ eleB�j                  jŒ                  «      	 	 	 	 	 	 	 	 	 	 dud1„«       Zˆ eleB�j                  jŒ                  «       eleB�j                  jŒ                  «      d'd2œ	 	 	 	 	 	 	 	 	 	 	 dvd3„«       «       Z‹ eleB�j                  jŒ                  «      dd4œ	 	 	 	 	 	 	 	 	 	 	 dwd5„«       Z� eleB�j                  jl                  «      	 dd	 	 	 	 	 	 	 	 	 dxd6„«       Z� elej‚                  j„                  �j                   jŒ                  «       elej‚                  j„                  �j"                  jŒ                  «      	 	 	 	 	 	 	 	 dyd7„«       «       Z’ elej‚                  j„                  �j&                  jŒ                  «      	 	 	 	 	 	 	 	 dzd8„«       Z“ elej‚                  j„                  �j(                  jŒ                  «      d{d9„«       Z” elej‚                  j„                  �j*                  jŒ                  «      	 dd	 	 	 	 	 	 	 	 	 	 	 d|d:„«       Z•d}d;„Z– elej‚                  j„                  �j.                  jl                  «      	 	 	 	 d~	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd<„«       Z˜ elej‚                  j„                  �j2                  jŒ                  «      	 	 	 	 	 	 	 	 	 	 d€d=„«       Z™ elej‚                  j„                  �j4                  jŒ                  «      	 	 	 d�ddd>œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d‚d?„«       Z› eld@„ «      	 	 	 	 	 	 	 	 	 	 dhdA„«       Zœ	 	 	 	 	 	 	 	 dƒdB„Z�	 	 	 	 	 	 	 	 	 	 d„dC„Zž eCdDdEdF«      ZŸd_dG„Z d]dH„Z¡ eldI„ «      	 	 	 	 	 	 	 	 	 	 d…dJ„«       Z¢ eleB�jF                  jl                  «      	 	 	 	 	 	 	 	 	 	 dbdK„«       Z¤ eleB�jJ                  jŒ                  «      	 	 	 	 	 	 	 	 	 	 d†dL„«       Z¦ eleB�jN                  jŒ                  «       eleB�jP                  jŒ                  «       eleB�jR                  jŒ                  «       eleB�jT                  jŒ                  «       eleB�jV                  jŒ                  «      	 	 	 	 	 	 	 	 	 	 dbdM„«       «       «       «       «       Z¬ eleB�jP                  jŽ                  «       eleB�jT                  jŽ                  «      	 	 	 	 	 	 	 	 	 	 dbdN„«       «       Z­ eleB�j\                  jŒ                  «       eleB�j^                  jŒ                  «      	 	 	 	 	 	 	 	 	 	 dbdO„«       «       Z° eleBj¼                  jŒ                  «       eleBj¼                  jŽ                  «       eleB�jb                  jŒ                  «       eleB�jd                  jŒ                  «      	 	 	 	 	 	 	 	 	 	 dhdP„«       «       «       «       Z³ elefD � cg c]q  } | eBjÆ                  jŒ                  eBjÀ                  jÂ                  eBjÀ                  jÄ                  eBj¼                  jŒ                  eBj¼                  jŽ                  fvr| ‘Œs c} «      dhdQ„«       Z´ eleB�jj                  jŒ                  eB�jl                  jŒ                  g«      	 	 	 	 	 	 	 	 	 	 d‡dR„«       Z· elej‚                  j„                  �jp                  jŒ                  «      	 	 dˆ	 	 	 	 	 	 	 	 	 	 	 d‰dS„«       Z¸ elej‚                  j„                  �jr                  jŒ                  «      	 	 	 	 	 	 	 	 	 	 	 	 dŠdT„«       Z¹i Zº	 	 	 	 d‹dU„Z»	 	 	 	 	 	 dŒdV„Z¼e�jz                  f	 	 	 	 	 d�dW„Z¾	 dp	 	 	 	 	 	 	 dŽdX„Z¿ejÔ                  d�dY„«       ZÀyc c} w )�é    )ÚannotationsN)Úreduce)ÚAnyÚcastÚTYPE_CHECKINGÚTypeVar)Ú	ParamSpec)Úno_python_dispatcher)Ú
OpOverload)Úcanonicalize_dimÚelementwise_dtypesÚELEMENTWISE_TYPE_PROMOTION_KINDÚis_boolean_dtypeÚis_contiguousÚ(is_contiguous_for_memory_format_or_falseÚis_contiguous_or_falseÚis_float_dtypeÚis_integer_dtypeÚmake_contiguous_strides_forÚ	ShapeType)ÚDataDependentOutputExceptionÚDynamicOutputShapeExceptionÚ
FakeTensorÚin_kernel_invocation_managerÚrun_fallback_kernelÚUnsupportedOperatorException)Ú_normalize_function_or_error©Úcount_label)ÚCallableÚSequence)ÚFakeTensorMode)ÚIntLikeTypeÚ_PÚ_RÚ_T)Úop_implementations_checksÚget_fast_op_implsÚstride_incorrect_opÚhas_metac                 ó.   — t         j                  | d«      S )NT)ÚdictÚfromkeys)Úitemss    ú[/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torch/_subclasses/fake_impls.pyÚordered_setr0   I   s   € Ü�=‰=˜ Ó%Ð%ó    c                ó    — | j                   dk7  S )NÚhpu)Útype©Údevices    r/   Úis_noncontiguous_supportedr7   O   s   € Ø�;‰;˜%ÑÐr1   c                ó¸   — t         j                  j                  j                  «       }| j	                  |«      xs  t        d„ | j                  «       D «       «      S )Nc              3  ó2   K  — | ]  }t        |«      –— Œ y ­w©N)Úcontains_tensor_types)Ú.0Úes     r/   ú	<genexpr>z(contains_tensor_types.<locals>.<genexpr>‘   s   è ø€ ò 1Ø%&Ô˜a× ñ1ùs   ‚)ÚtorchÚ_CÚ
TensorTypeÚgetÚisSubtypeOfÚanyÚcontainedTypes)Útype_Útensor_types     r/   r;   r;   �   sO   € Ü—(‘(×%Ñ%×)Ñ)Ó+€KØ×Ñ˜[Ó)ò ¬Sñ 1Ø*/×*>Ñ*>Ó*@ô1ó .ð r1   c                óX  — t        | t        «      st        dt        | «      › �«      ‚| j                  }t        d„ |j                  D «       «      ryt        |j                  «      dk(  xrA |j                  d   j                  t        j                  j                  j                  «       u S )Nz func must be an OpOverload, got c              3  óF   K  — | ]  }t        |j                  «      –— Œ y ­wr:   )r;   r4   )r<   Úargs     r/   r>   z)_is_tensor_constructor.<locals>.<genexpr>›   s   è ø€ Ò
G¨sÔ  §¡×*Ñ
Gùs   ‚!Fé   r   )Ú
isinstancer   ÚAssertionErrorr4   Ú_schemarD   Ú	argumentsÚlenÚreturnsr?   r@   rA   rB   )ÚfuncÚschemas     r/   Ú_is_tensor_constructorrT   –   s‡   € ä�dœJÔ'ÜÐ?ÄÀTÃ
¸|ÐLÓMÐMØ�\‰\€FÜ
Ñ
G°f×6FÑ6FÔ
GÔGØô 	ˆF�N‰NÓ˜qÑ ÒX V§^¡^°AÑ%6×%;Ñ%;¼u¿x¹x×?RÑ?R×?VÑ?VÓ?XÐ%Xðr1   c                ó   ‡ — dˆ fd„}|S )Nc                ó<  •— t        ‰t        «      r!‰t        v rt        d‰› �«      ‚| t        ‰<   | S t        ‰t        t
        f«      r‰D ]  } t        |«      | «       Œ | S t        ‰«      st        dt        ‰«      › �«      ‚t        j                  ‰| f«       | S )Nzduplicate registration: z%run_impl_check must be callable, got )rL   r   Úop_implementations_dictrM   ÚlistÚtupleÚregister_op_implÚcallabler4   r'   Úappend)Úop_implÚopÚrun_impl_checks     €r/   Úimpl_decoratorz(register_op_impl.<locals>.impl_decorator©   s³   ø€ Ü�n¤jÔ1ØÔ!8Ñ8Ü$Ð'?ÀÐ?OÐ%PÓQÐQØ6=Ô# NÑ3ð ˆô ˜¬¬u¨Ô6Ø$ò .�Ø$Ô  Ó$ WÕ-ð.ð ˆô ˜NÔ+Ü$Ø;¼DÀÓ<PÐ;QÐRóð ô &×,Ñ,¨n¸gÐ-FÔGàˆr1   ©r]   úCallable[_P, _R]Úreturnrb   © )r_   r`   s   ` r/   rZ   rZ   £   s   ø€ õð" Ðr1   c                ó   — | t         v S r:   ©rW   ©r^   s    r/   Ú_is_op_registered_to_fake_rulerh   ½   s   € ØÔ(Ð(Ð(r1   c                ó†   — t         j                  | d «       t        D ]"  \  }}|| u sŒt        j                  ||f«        y  y r:   )rW   Úpopr'   Úremove)r^   ÚcheckÚimpls      r/   Ú_deregister_op_implrn   Á   sA   € Ü×Ñ  DÔ)Ü0ò ‰ˆˆtØ�BŠ;Ü%×,Ñ,¨e°T¨]Ô;Ùñr1   c                ó(   — t        |   | |g|¢­i |¤ŽS r:   rf   ©Ú	fake_moderR   ÚargsÚkwargss       r/   Ú#dispatch_to_op_implementations_dictrt   É   s    € ô # 4Ñ(¨°DÐJ¸4ÒJÀ6ÑJÐJr1   c                ó¼  — |t         v rt        d|› �«      ‚t        |||d¬«      \  }}d|v rt        |«      ‚|t        v r"|d   j
                  }|j                  d«      f}nt        j
                  d«      }d}|j                  dd «      }|�|n|}t        j
                  d	«      |d<   t        | «      5   ||i |¤Ž}d d d «       t        | |«      S # 1 sw Y   ŒxY w)
Nz8func must not be in _non_kwarg_device_constructors, got T©rr   rs   Únormalize_to_only_use_kwargsÚnamesÚinputÚcpurd   r6   Úmeta)
Ú_non_kwarg_device_constructorsrM   r   r   Ú_like_tensor_constructorsr6   rj   r?   r   r   )	rq   rR   rr   rs   Ú_Ú
new_kwargsÚdefault_deviceÚ
out_deviceÚrs	            r/   Úconstructorsrƒ   Ð   sý   € ð
 Ô-Ñ-ÜØFÀtÀfÐMó
ð 	
ô 1Ø�4 ÀTô�M€A€zð �&Ñä*¨4Ó0Ð0àÔ(Ñ(Ø# GÑ,×3Ñ3ˆà—‘˜wÓ'Ð)‰ô Ÿ™ eÓ,ˆØˆØ—‘ ¨$Ó/€JØ)Ð5‘¸>€JÜ Ÿ<™<¨Ó/€JˆxÑô 
& iÓ	0ñ &Ù�$Ð%˜*Ñ%ˆ÷&ä�i  JÓ/Ð/÷&ð &ús   Â4	CÃCc                óž   — t        |||d¬«      \  }}|j                  d«      }t        | «      5   ||«      }d d d «       |S # 1 sw Y   S xY w)NT©rw   ry   )r   rj   r   )rq   rR   rr   rs   r~   r   Úinpr‚   s           r/   Únon_kwarg_is_pinnedr‡   ò   sX   € ô 1Øˆd�F¸ô�M€A€zð �.‰.˜Ó
!€Cô 
& iÓ	0ñ Ù�‹Iˆ÷à€H÷à€Hús   ¯	AÁAc                óÂ   — t        | «      5   |||«      }d d d «       t        j                  d¬«      }t        | |t        j                  d«      «      S # 1 sw Y   Œ@xY w)Nr{   r5   rz   )r   r?   Ú
empty_liker   r6   )rq   rR   Únamerr   Úreal_handleÚmeta_handles         r/   Ú_record_function_enterr�     sY   € ô
 
& iÓ	0ñ 'Ù˜4 Ó&ˆ÷'ô ×"Ñ" ;°vÔ>€Kä�i ¬e¯l©l¸5Ó.AÓBÐB÷'ð 'ús   Œ
AÁAc                 ó   — y r:   rd   )rq   rR   Úhandles      r/   Ú_record_function_exitr�     s   € ð 	r1   c                óV   — t        | «      5   |||«      cd d d «       S # 1 sw Y   y xY wr:   ©r   )rq   rR   rŠ   rr   s       r/   Ú_record_function_enter_newr“     s+   € ô 
& iÓ	0ñ  Ù�D˜$Ó÷ ÷  ò  ús   Œ	Ÿ(c                ó4  — t        |||d¬«      \  }}|d   }|r|n|d   j                  }t        j                  d«      |d<   |j                  d«      }t	        | «      5   ||fi |¤Ž}	d d d «       | j
                  j                  | 	|«      S # 1 sw Y   Œ&xY w)NTr…   r6   ry   r{   )r   r6   r?   rj   r   Úfake_tensor_converterÚfrom_meta_and_device)
rq   rR   rr   rs   r~   r   Úinput_devicer�   r†   r‚   s
             r/   Únon_kwarg_tor˜   #  sª   € ô
 1Øˆd�F¸ô�M€A€zð ˜hÑ'€LÙ!-‘°:¸gÑ3F×3MÑ3M€JÜ Ÿ<™<¨Ó/€JˆxÑØ
�.‰.˜Ó
!€CÜ	% iÓ	0ñ $Ù�Ñ#˜
Ñ#ˆ÷$ð ×*Ñ*×?Ñ?Ø�1�jóð ÷$ð $ús   Á
BÂBc                 ó   — y)NFrd   rg   s    r/   r)   r)   7  s   € Ør1   c           	     ó  ‡— dd„Š| j                   rjt        ˆfd„t        j                  ||j	                  «       «      D «       «      }|s2t
        j                  ||f«      \  }}t        | |||t        d«      «      S t        |«      ‚)Nc                ó°   — t        | t        «      r| j                  S t        | t        j                  t        j
                  t        j                  f«      ryy)NTF)rL   r   Ú_has_symbolic_sizes_stridesr?   ÚSymIntÚSymFloatÚSymBool©Úxs    r/   Úis_symbolicz3workaround_stride_incorrect_op.<locals>.is_symbolicB  s;   € Ü�aœÔ$Ø×0Ñ0Ð0Ü�aœ%Ÿ,™,¬¯©¼¿¹ÐFÔGØØr1   c              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­wr:   rd   )r<   r¡   r¢   s     €r/   r>   z1workaround_stride_incorrect_op.<locals>.<genexpr>K  s   øè ø€ ò 
Ø ‰K˜�Nñ
ùó   ƒz2Cannot run fallback kernel for stride_incorrect_op)r¡   Úobjectrc   Úbool)
Úallow_fallback_kernelsrD   Ú	itertoolsÚchainÚvaluesÚpytreeÚtree_flattenr   ÚRuntimeErrorr   )rq   rR   rr   rs   Úrequire_dynamicÚ	flat_argsÚ	args_specr¢   s          @r/   Úworkaround_stride_incorrect_opr±   <  sŠ   ø€ óð ×'Ò'Üó 
Ü$-§O¡O°D¸&¿-¹-»/Ó$Jô
ó 
ˆñ Ü#)×#6Ñ#6¸¸f°~Ó#FÑ ˆI�yÜ&ØØØØô ÐQÓRóð ô ' tÓ
,Ð,r1   c                óT   — t        | «      5   ||i |¤Žcd d d «       S # 1 sw Y   y xY wr:   r’   rp   s       r/   Ú
resize_as_r³   _  s.   € ô 
& iÓ	0ñ %Ù�TÐ$˜VÑ$÷%÷ %ò %ús   Œž'c                ó"   — t        | |g|¢­i |¤ŽS r:   )rƒ   rp   s       r/   Ú(_sparse_coo_tensor_with_dims_and_tensorsrµ   g  s   € ô ˜	 4Ð9¨$Ò9°&Ñ9Ð9r1   c                óð   — t         j                  j                  | j                  v xrO | t        j
                  j                  t        j                  j                  t        j                  j                  fvS r:   )
r?   ÚTagÚdynamic_output_shapeÚtagsÚatenÚindexÚTensorÚnonzeroÚdefaultÚrepeat_interleave©rR   s    r/   ú<lambda>rÁ   p  sU   € ”—‘×/Ñ/°4·9±9Ð<ò TØÜ�J‰J×ÑœtŸ|™|×3Ñ3´T×5KÑ5K×5RÑ5RÐSð	Tð r1   c                ó   — t        |«      ‚r:   )r   rp   s       r/   Ú	dyn_shaperÃ   o  s   € ô & dÓ
+Ð+r1   F©Úunique_consecutivec               óÖ  — | j                   �| j                   j                  st        |«      ‚|r|j                  n|j                  }|€|€´ddlm}	m}
  |
|j                  «       «      s|j                  «       dk(  rd}nm| j                   j                  «       }t        j                  dz
  }|€|j                  «       n|j                  |«      } |
|«      st        |«      } |	||¬«       |€|r||_        n||_        |€|j                  |f«      g}n4 |j                  g |j                  d | ¢|‘|j                  |dz   d  ¢­Ž g}|d uxr" |j                   t#        j$                  d«      k(  }|s|r>|j                  |€|j                  n|j                  |   ft"        j&                  ¬«      }n!|j                  dt"        j&                  ¬«      }|j)                  |«       |s|rD|j                  |€|d   j                  n|d   j                  |   ft"        j&                  ¬«      }n!|j                  dt"        j&                  ¬«      }|j)                  |«       t+        |«      S )Nr   ©Ú_constrain_range_for_sizeÚhas_free_symbolsrK   ©Úmaxrz   ©Údtype)Ú	shape_envÚallow_dynamic_output_shape_opsr   Úunique_consecutive_memoÚunique_memoÚ%torch.fx.experimental.symbolic_shapesrÈ   rÉ   ÚnumelÚcreate_unbacked_symintÚsysÚmaxsizeÚsizeÚintÚ	new_emptyÚshapeÚfake_devicer?   r6   Úint64r\   rY   )rq   rR   rJ   ÚdimÚsortedÚreturn_inverseÚreturn_countsrÅ   ÚnnzrÈ   rÉ   ÚmaxvalrÓ   ÚretÚreturn_if_dim_and_cpuÚinverseÚcountss                    r/   Ú_uniquerç   z  s  € ð 	×ÑÐ#Ø×"Ñ"×AÒAô *¨$Ó/Ð/á);ˆ#×
%Ò
%ÀÇÁ€Cð €˜#˜+÷	
ñ
   §	¡	£Ô,°·±³ÀÒ1Að ‰Cà×%Ñ%×<Ñ<Ó>ˆCä—[‘[ 1‘_ˆFà#& ;�C—I‘I”K°C·H±H¸S³MˆEÙ# EÔ*Ü˜U›�á% c¨vÕ6àˆ;Ù!Ø.1�Õ+à"%�”à
€{à�}‰}˜c˜VÓ$Ð%‰ð ˆs�}‰}ÐJ˜cŸi™i¨¨˜oÐJ¨sÐJ°S·Y±Y¸sÀQ¹w¸yÐ5IÒJÐKˆà t˜OÒV°·±Ä5Ç<Á<ÐPUÓCVÑ0VÐÙÑ.Ø—-‘-Ø˜ˆC�IŠI¨3¯9©9°S©>Ð*;Ä5Ç;Á;ð  ó 
‰ð —-‘- ¬¯©�-Ó5ˆØ‡J�JˆwÔáÑ-Ø—‘Ø˜KˆC�‰F�LŠL¨c°!©f¯l©l¸3Ñ.?Ð-AÌÏÉð ó 
‰ð —‘˜q¬¯©�Ó4ˆØ‡J�JˆvÔä�‹:Ðr1   c           	     ó$   — t        | ||d |||«      S r:   ©rç   )rq   rR   rJ   rÞ   rß   rà   s         r/   Úunique2rê   Ì  s   € ô �9˜d C¨¨v°~À}ÓUÐUr1   c                ó¶  — ddl m} |j                  rt        S |j	                  «       }t        j                  |dk7  d„ «       |dk\  r|n||z   }|j                  |«      }t        |j                  «       «      }t        |j                  «       «      }	d }
 ||dk\  «      r|j                  «       ||	|   z  z   }
n' ||dk  «      r|j                  «       ||z   |	|   z  z   }
|
€S| j                  �"| j                  j                  s| j                  st        |«      ‚| j                  j                  «       }
||= |	|= |
€t        d«      ‚|j!                  ||	|
«      S )Nr   ©Úguard_or_falsec                  ó   — y)Nz-select() cannot be applied to a 0-dim tensor.rd   rd   r1   r/   rÁ   zmeta_select.<locals>.<lambda>è  s   � r1   z#new_storage_offset must not be None)rÒ   rí   Ú	is_sparseÚNotImplementedrÝ   r?   Ú_check_indexr×   rX   ÚstrideÚstorage_offsetrÎ   Úallow_scalar_outputsr   rÔ   rM   Ú
as_strided)rq   rR   ÚselfrÝ   r»   rí   Úndimr×   Únew_sizeÚ
new_strideÚnew_storage_offsets              r/   Úmeta_selectrû   Ø  sU  € õ Eà‡~‚~ÜÐà�8‰8‹:€DÜ	×ÑØ�‰	Ù?ôð
 ˜’‰#˜s T™z€CØ�9‰9�S‹>€Dä�D—I‘I“KÓ €HÜ�d—k‘k“mÓ$€JàÐÙ�e˜q‘jÔ!Ø!×0Ñ0Ó2°U¸ZÈ¹_Ñ5LÑLÑÙ	˜ ™	Ô	"Ø!×0Ñ0Ó2°e¸d±lÀjÐQTÁoÑ5UÑUÐàÐ!Ø×ÑÐ&Ø×#Ñ#×8Ò8Ø×2Ò2ä.¨tÓ4Ð4ð '×0Ñ0×GÑGÓIÐà�ˆØ�3ˆØÐ!ÜÐBÓCÐCà�?‰?˜8 ZÐ1CÓDÐDr1   c           
     ó`   — t        | |||dk\  r|n|t        |j                  d«      z  |||«      S )Nr   rK   )rç   rË   r÷   )rq   rR   rJ   rÝ   rÞ   rß   rà   s          r/   Ú
unique_dimrý   
  s>   € ô ØØØà�aŠx‰˜S¤3 s§x¡x°Ó#3Ñ3ØØØó	ð 	r1   c           
     ó(   — t        | |||d||d¬«      S )NFTrÄ   ré   )rq   rR   rJ   rß   rà   rÝ   s         r/   rÅ   rÅ      s)   € ô ØØØØØØØØô	ð 	r1   c                óˆ  ‡‡‡— ddl mŠmŠm} dˆˆfd„}dˆˆfd„}t	        | «      dk(  rdgt	        |«      z  S t        t        j                  | d«      } ||dk(  «      }|r | || |«      «      rt        |«      S dgt	        |«      z  }	|rUt        t	        |«      dz
  dd«      D ]7  }
|
t	        |«      dz
  k(  rd|	|
<   Œt        ||
dz      d«      |	|
dz      z  |	|
<   Œ9 |	S t	        |«      dz
  }
|d   }d}d}t        t	        | «      dz
  dd«      D ]¨  }|| |   z  }|dk(  s' || |dz
     dk7  «      sŒ" |||dz
     ||z  k7  «      sŒ7|
dk\  rN |||k  «      s |||
   dk(  «      r5||z  |	|
<   |||
   z  }|
dz  }
|
dk\  r |||k  «      rŒ& |||
   dk(  «      rŒ5 |||k7  «      r y |dkD  sŒ�||dz
     }d}d}Œª |
dk7  ry |	S )Nr   )rí   Úguard_or_trueÚsym_eqc                ó   •— ‰r ‰| «      S | S r:   rd   )r¡   rí   Úsize_obliviouss    €€r/   Úmaybe_guard_or_falsez-_compute_stride.<locals>.maybe_guard_or_falseB  s   ø€ ÙÙ! !Ó$Ð$àˆr1   c                ó   •— ‰r ‰| «      S | S r:   rd   )r¡   r   r  s    €€r/   Úmaybe_guard_or_truez,_compute_stride.<locals>.maybe_guard_or_trueH  s   ø€ ÙÙ  Ó#Ð#àˆr1   rK   éÿÿÿÿ)r¡   r   rc   r   )rÒ   rí   r   r  rP   r   ÚoperatorÚmulrX   ÚrangerË   )Ú	old_shapeÚ
old_strideÚ	new_shaper  r  r  r  rÓ   Ú
zero_numelrù   Úview_dÚchunk_base_strideÚtensor_numelÚ
view_numelÚtensor_drí   r   s      `           @@r/   Ú_compute_strider  6  sA  ú€ ÷ñ ööô ˆ9ƒ~˜ÒØˆs”S˜“^Ñ#Ð#ä”8—<‘< ¨AÓ.€EÙ% e¨q¡jÓ1€JÙÑ*©6°)¸YÓ+GÔHÜ�JÓÐà%& C¬#¨i«.Ñ$8€JáÜœC 	›N¨QÑ.°°BÓ7ò 	ˆFØœ˜Y›¨!Ñ+Ò+Ø%&�
˜6Ò"ô ˜	 &¨1¡*Ñ-¨qÓ1°J¸vÈ¹zÑ4JÑJð ˜6Ò"ð		ð Ðä�‹^˜aÑ€Fà%/°¡^ÐØ !€LØ€Jäœ#˜i›.¨1Ñ,¨b°"Ó5ò ˆØ˜	 (Ñ+Ñ+ˆà�qŠ=Ù 	¨(°Q©,Ñ 7¸1Ñ <Õ=Ù#Ø˜8 a™<Ñ(¨LÐ;LÑ,LÑLõð ˜A’+Ù# J°Ñ$=Ô>Ù'¨	°&Ñ(9¸QÑ(>Ô?à%/Ð2CÑ%C�
˜6Ñ"Ø˜i¨Ñ/Ñ/�
Ø˜!‘�ð ˜A’+Ù# J°Ñ$=Õ>Ù'¨	°&Ñ(9¸QÑ(>Õ?ñ # :°Ñ#=Ô>Ùà˜!‹|Ø$.¨x¸!©|Ñ$<Ð!Ø �Ø‘
ð/ð0 �‚|ØØÐr1   c                óö   ‡— ddl mŠ t        j                  |d¬«      }t	        ˆfd„| j                  «       D «       «      xs8 t	        ˆfd„| j                  «       D «       «      xs t	        ˆfd„|D «       «      S )Nr   ©Úhas_guarding_hintF©Úvalidatec              3  ó0   •K  — | ]  } ‰|«       –— Œ y ­wr:   rd   ©r<   Úsr  s     €r/   r>   z+_view_has_unbacked_input.<locals>.<genexpr>�  s   øè ø€ Ò7¨Ñ! !Ó$Ô$Ñ7ùó   ƒc              3  ó0   •K  — | ]  } ‰|«       –— Œ y ­wr:   rd   r  s     €r/   r>   z+_view_has_unbacked_input.<locals>.<genexpr>Ž  s   øè ø€ Ò<¨AÑ$ QÓ'Ô'Ñ<ùr  c              3  ó0   •K  — | ]  } ‰|«       –— Œ y ­wr:   rd   r  s     €r/   r>   z+_view_has_unbacked_input.<locals>.<genexpr>�  s   øè ø€ Ò7¨AÑ$ QÓ'Ô'Ñ7ùr  )rÒ   r  ÚutilsÚextract_shape_from_varargsrD   r×   rò   )ÚarÚ   r  s     @r/   Ú_view_has_unbacked_inputr#  …  sb   ø€ õ Hä×,Ñ,¨U¸UÔC€Eô 	Ó7¨a¯f©f«hÔ7Ó7ò 	8ÜÓ<°·±³Ô<Ó<ò	8äÓ7°Ô7Ó7ðr1   c                óŠ  ‡ ‡— ddl m} ddlm}m} t        j                  ‰d¬«      Št        j                  ‰‰ j                  «       «      Š‰ j                  dk(  rO‰ }‰D ]:  }t        j                  |dk(  «       t        j                  j                  |d«      }Œ< |‰ u r |‰ «      S |S t        ‰«      dk(  rY‰ }‰ j                  D ]:  }t        j                  |dk(  «       t        j                  j!                  |d«      }Œ< |‰ u r |‰ «      S |S t#        t$        j&                  ‰d«      }	t        j                  ‰ j                  «       |	k(  ˆ ˆfd„«       t        ‰«      t        ‰ j                  «      k(  r! | |‰‰ j                  «      «      r |‰ «      S |rt)        ‰ «      r)nt+        ‰ «      rt-        ‰«      }
‰ j/                  ‰|
«      S t1        ‰ j3                  «       ‰ j5                  «       ‰|¬	«      }|�‰ j/                  ‰|«      S |rIt        j6                  j8                  j:                  j<                  st?        ‰ ‰«      rtA        ‰ ‰d|¬
«      S |r;t-        ‰«      }
‰ jC                  t        jD                  ¬«      j/                  ‰|
«      S d‰ j                  › d‰ j5                  «       › d‰› d�}tG        |«      ‚)Nr   )Úview_of©rí   r  Fr  rK   r  c                 ó*   •— d‰ j                   › d‰› d�S )Nz&Could not reshape a tensor with shape ú as a tensor with shape ú!)rÚ   )r"  rÚ   s   €€r/   rÁ   z%_view_unbacked_meta.<locals>.<lambda>½  s   ø€ Ð8¸¿¹¸	ÐAYÐZ_ÐY`Ð`aÐb€ r1   )r  )Úsize_oblivious_enabledÚ
allow_copy©Úmemory_formatz Cannot view a tensor with shape z and strides r(  r)  )$Útorch._primsr%  rÒ   rí   r  r   r!  Ú
infer_sizerÓ   r÷   r?   Ú_checkÚ_refsÚ	unsqueezerP   rÚ   Úsqueezer   r  r	  r   r   r   rõ   r  r×   rò   ÚfxÚexperimentalÚ_configÚbacked_size_obliviousr#  Ú_view_unbacked_metaÚcloneÚcontiguous_formatÚ
ValueError)r"  rÚ   r*  r+  r%  rí   r  Ú_aÚlengthÚshape_numelÚstridesÚnew_stridesÚmsgs   ``           r/   r8  r8  “  sf  ù€ õ %ßLô ×,Ñ,¨U¸UÔC€Eô ×Ñ˜U A§G¡G£IÓ.€Eð 	‡v�v�‚{ØˆØò 	/ˆFÜ�L‰L˜ 1™Ô%Ü—‘×&Ñ& r¨2Ó.‰Bð	/ð �‰7Ù˜1“:ÐàˆIô ˆ5ƒz�Q‚ØˆØ—g‘gò 	-ˆFÜ�L‰L˜ 1™Ô%Ü—‘×$Ñ$ R¨Ó,‰Bð	-ð �‰7Ù˜1“:ÐàˆIäœŸ™ u¨aÓ0€Kä	‡L�LØ	�‰‹	�[Ñ Übôô
 ˆ5ƒz”S˜Ÿ™“\Ò!¡n±V¸EÀ1Ç7Á7Ó5KÔ&LÙ�q‹zÐá$:Ô˜aÕ ÄÈaÔ@PÜ-¨eÓ4ˆØ�|‰|˜E 7Ó+Ð+ä!Ø	�‰‹�!—(‘(“*˜eÐ4Jô€Kð ÐØ�|‰|˜E ;Ó/Ð/ñ Ü�‰×Ñ×%Ñ%×;Ò;Ü# A uÔ-ä"Øˆu¨U¸zô
ð 	
ñ Ü-¨eÓ4ˆà�w‰w¤U×%<Ñ%<ˆwÓ=×HÑHÈÐPWÓXÐXà,¨Q¯W©W¨I°]À1Ç8Á8Ã:À,ÐNfÐglÐfmÐmnÐ
o€CÜ
�S‹/Ðr1   c           
     óŠ  — |j                   s|j                  rt        S t        j                  g |¢|j                  «       ‘­Ž }t        |«      r<t        | ||g|¢­Ž }t        t        |j                  t        j                  ¬«      «      S t        | |t        t        |j                  t        j                  ¬«      «      g|¢­Ž S ©Nr,  )rï   Ú	is_mkldnnrð   r   r/  rÓ   r   Ú
_view_metaÚtyping_castr   r9  r?   r:  )rq   rR   r"  rÚ   Úviews        r/   Ú_reshape_copyrH  æ  s¯   € ð 	‡{‚{�a—k’kÜÐô ×ÑÐ/˜eÐ/ Q§W¡W£YÒ/€EÜ˜aÔ Ü˜) T¨1Ð5¨uÒ5ˆÜÜ˜Ÿ
™
´×1HÑ1H˜
ÓIó
ð 	
ô ØØÜœ
 A§G¡G¼%×:QÑ:Q GÓ$RÓSð
ð ò	
ð 	
r1   ©r+  c               ó  — t         j                  j                  j                  j                  st        ||«      rt        t        t        |||¬«      «      S t        t        t        j                  j                  |g|¢­d|iŽ«      S )NrI  r+  )r?   r4  r5  r6  r7  r#  rF  r   r8  r1  Ú_reshape_view_helper)rq   rR   r"  r+  rÚ   s        r/   rE  rE  ý  sv   € ô ‡x�x×Ñ×$Ñ$×:Ò:Ô>VØ	ˆ5ô?ô ÜÔ+¨A¨uÀÔLó
ð 	
ô ÜÜ�K‰K×,Ñ,¨QÐN°ÒNÀ:ÑNó
ð 	
r1   )Úoutc               óZ   — t        | ||g|¢­ddiŽ}|�|S t        j                  d„ |«      S )Nr+  Tc                óB   — | j                  t        j                  ¬«      S rC  )r9  r?   r:  r    s    r/   rÁ   z!_view_meta_copy.<locals>.<lambda>$  s   € �!—'‘'¬×(?Ñ(?�'Ó@€ r1   )rE  r«   Útree_map)rq   rR   r"  rL  rÚ   Úresults         r/   Ú_view_meta_copyrQ    s=   € ô ˜	 4¨ÐD¨UÒD¸tÑD€Fà
€Øˆä�?‰?Ù@Øóð r1   c                óÒ   — |€U| j                   �| j                   j                  st        |«      ‚| j                   j                  «       }ddlm}  ||«       |j                  |«      S ©Nr   ©rÈ   )rÎ   rÏ   r   rÔ   rÒ   rÈ   rÙ   )rq   rR   ÚrepeatsÚoutput_sizerÈ   s        r/   Úrepeat_interleave_tensorrW  )  sc   € ð Ðà×ÑÐ'Ø×&Ñ&×EÒEä-¨dÓ3Ð3à×)Ñ)×@Ñ@ÓBˆõ 	Tá! +Ô.à×Ñ˜[Ó)Ð)r1   c                óö  — |j                   x}�|S | j                  �"| j                  j                  s| j                  st        |«      ‚t	        |j
                  «      r| j                  j                  «       }nxt        |j
                  «      r| j                  j                  «       }nHt        |j
                  «      r| j                  j                  «       }nt        d|j
                  › �«      ‚||_         |S )Nz local_scalar_dense/item NYI for )Ú	item_memorÎ   rô   r   r   rÍ   Úcreate_unbacked_symfloatr   rÔ   r   Úcreate_unbacked_symboolÚNotImplementedError)rq   rR   rJ   r‚   s       r/   Úlocal_scalar_denser]  A  sÌ   € ð
 �]‰]ÐˆÐ'ØˆØ×ÑÐ"Ø×Ñ×4Ò4Ø×.Ò.ô +¨4Ó0Ð0Ü�c—i‘iÔ Ø×Ñ×8Ñ8Ó:‰Ü	˜#Ÿ)™)Ô	$Ø×Ñ×6Ñ6Ó8‰Ü	˜#Ÿ)™)Ô	$Ø×Ñ×7Ñ7Ó9‰ä!Ð$DÀSÇYÁYÀKÐ"PÓQÐQØ€C„MØ€Hr1   c                ó†   — t         j                  j                  j                  j	                  |«      j                  d«      S )NrK   )r?   Úopsrº   r½   r¾   Úunbind)rq   rR   rJ   s      r/   Únonzero_numpyra  Z  s.   € ô �9‰9�>‰>×!Ñ!×)Ñ)¨#Ó.×5Ñ5°aÓ8Ð8r1   c                óJ  — | j                   �| j                   j                  st        |«      ‚|j                  x}�€4ddlm}m} ddlm} ddl	m
}  ||j                  «       «      s|j                  «       dk(  rd}ní| j                   j                  «       }t        j                  dz
  } ||j                  «       «      st        |j                  «       «      }n†t!        j"                  |j$                  «      j&                  }	 ||	j(                  |	j                   j*                  «      }
t-        |
j.                  |«      rt        j                  dz
  }n|
j.                  } |||¬«       ||_        |j1                  ||j3                  «       fd|ft4        j6                  ¬«      S )Nr   rÇ   ©ÚIntInfinity©Úbound_sympyrK   rÊ   rÌ   )rÎ   rÏ   r   Únonzero_memorÒ   rÈ   rÉ   Útorch.utils._sympy.numbersrd  Útorch.utils._sympy.value_rangesrf  rÓ   rÔ   rÕ   rÖ   rØ   ÚmathÚprodrÚ   ÚnodeÚexprÚvar_to_rangerL   ÚupperÚnew_empty_stridedrÝ   r?   rÜ   )rq   rR   rJ   rá   rÈ   rÉ   rd  rf  râ   Ú	prod_nodeÚ
prod_ranges              r/   r½   r½   a  sI  € ð 	×ÑÐ#Ø×"Ñ"×AÒAô *¨$Ó/Ð/à×ÑÐˆÑ(÷	
õ 	;Ý?á §	¡	£Ô,°·±³ÀÒ1Að ‰Cà×%Ñ%×<Ñ<Ó>ˆCä—[‘[ 1‘_ˆFá# C§I¡I£KÔ0Ü˜SŸY™Y›[Ó)‘ä ŸI™I c§i¡iÓ0×5Ñ5�	Ù(Ø—N‘N I×$7Ñ$7×$DÑ$Dó�
ô ˜j×.Ñ.°Ô<Ü Ÿ[™[¨1™_‘Fà'×-Ñ-�Fá% c¨vÕ6àˆÔØ× Ñ  # s§w¡w£yÐ!1°A°s°8Ä5Ç;Á;Ð ÓOÐOr1   c                óÒ  — t        |«      dk7  rt        dt        |«      › d�«      ‚|sœ| j                  �| j                  j                  st	        |«      ‚| j                  j                  «       }t        j                  dz
  }ddlm	}m
}  ||j                  «       «      st        |j                  «       «      } ||d|¬«       |g|j                  dd  ¢­}|j                  |«      S )NrK   z&Only one jagged dim is supported, got z offsetsr   rÇ   )ÚminrË   é   )rP   rM   rÎ   rÏ   r   rÔ   rÕ   rÖ   rÒ   rÈ   rÉ   rÓ   rØ   rÚ   rÙ   )	rq   rR   ÚpaddedÚoffsetsÚtotal_Lrâ   rÈ   rÉ   Úoutput_shapes	            r/   Ú_padded_dense_to_jagged_forwardrz  ”  sÕ   € ô ˆ7ƒ|�qÒÜØ4´S¸³\°NÀ(ÐKó
ð 	
ñ à×ÑÐ'Ø×&Ñ&×EÒEô .¨dÓ3Ð3à×%Ñ%×<Ñ<Ó>ˆä—‘˜q‘ˆ÷	
ñ
   §¡£Ô/Ü˜Ÿ™›Ó(ˆFá! '¨q°fÕ=àÐ/˜fŸl™l¨1¨2Ð.Ñ/€LØ×Ñ˜LÓ)Ð)r1   c                ó6  — ddl m}m}  | ||dk\  || k  «      «      r|S  | ||dk  ||  k\  «      «      r|| z   S  |||  k  «      ry ||| kD  «      r| S  ||dk\  «      rt        j                  || «      S  ||dk  «      rt        j
                  || z   d«      S y )Nr   )rí   Úsym_and)rÒ   rí   r|  r?   Úsym_minÚsym_max)r×   r»   rí   r|  s       r/   Ú_compute_slice_indexr  ½  s§   € ßMá‘g˜e q™j¨%°4©-Ó8Ô9ØˆÙ	™ ¨¡	¨5°T°E©>Ó:Ô	;Ø�t‰|ÐÙ	˜  ™Ô	&ØÙ	˜ ™Ô	%ØˆÙ	˜ ™
Ô	#Ü�}‰}˜U DÓ)Ð)Ù	˜ ™	Ô	"Ü�}‰}˜U T™\¨1Ó-Ð-àr1   c                ó  — ddl m}m} | j                  }	|j	                  «       }
|
dk(  rt        d«      ‚t        |j	                  «       |«      }t        |j                  «       «      }t        |j                  «       «      }|dk  rt        d«      ‚|€dnt        ||   |«      } ||t        j                  k(  «      s|€||   nt        ||   |«      }d }|�N|�L |||k\  «      r||z
  |z   dz
  |z  }n2 |||k\  «      rd}n$t        j                  ||z
  d«      }||z   dz
  |z  }|€P|	€t        d«      ‚|	j!                  «       }t        j"                  |dk\  «       t        j"                  |||   k  «       ||   |z  }|�|j%                  «       |||   z  z   }n5|	€t        d«      ‚|	j!                  «       }t        j"                  |dk\  «       |||<   |||<   |j&                  rt)        d«      ‚|j+                  |||«      S )Nr   )rí   Ústatically_known_truez,slice() cannot be applied to a 0-dim tensor.zslice step must be positiverK   z$Must have shape_env to create symintz<Slice decomposition for quantized tensors aren't implemented)rÒ   rí   r�  rÎ   rÝ   r­   r   rX   r×   rò   r  rÕ   rÖ   r?   r~  rM   rÔ   r0  ró   Úis_quantizedr\  rõ   )rq   rR   rö   rÝ   ÚstartÚendÚsteprí   r�  rÎ   r÷   Úsizesr?  Ústart_indexÚ	end_indexrø   Údiffrù   ró   s                      r/   Úslice_forwardrŠ  Ð  s(  € ÷ð
 ×#Ñ#€IØ�8‰8‹:€DØˆq‚yÜÐIÓJÐJÜ
˜4Ÿ8™8›: sÓ
+€CÜ�—‘“Ó€EÜ�4—;‘;“=Ó!€Gàˆq‚yÜÐ8Ó9Ð9ð �}‘!Ô*>¸uÀS¹zÈ5Ó*Q€Kñ ! ¬¯©Ñ!3Ô4¸¸ð 	ˆcŠ
ä! %¨¡*¨cÓ2ð ð $(€HØÐ 9Ð#8Ù˜) {Ñ2Ô3Ø! KÑ/°$Ñ6¸Ñ:¸tÑC‰HÙ˜K¨9Ñ4Ô5Ø‰Hô
 —=‘= ¨[Ñ!8¸!Ó<ˆDØ˜t™ a™¨DÑ0ˆHð ÐØÐÜ Ð!GÓHÐHØ×3Ñ3Ó5ˆÜ�‰�X ‘]Ô#Ü�‰�X  s¡Ñ+Ô,ð ˜‘ Ñ$€Jð ÐØ×,Ñ,Ó.°¸wÀs¹|Ñ1KÑK‰àÐÜ Ð!GÓHÐHØ"×9Ñ9Ó;ˆÜ�‰�^ qÑ(Ô)à€Eˆ#�JØ€GˆC�LØ×ÒÜ!ØJó
ð 	
ð �‰˜u g¨~Ó>Ð>r1   c                ó�  — | j                   �| j                   j                  st        |«      ‚| j                   j                  «       }t        j
                  dz
  }ddlm}m} ddl	m
} ddlm}	  ||j                  «       «      st        |j                  «       «      }
n†t        j                   |j"                  «      j$                  } |	|j&                  |j                   j(                  «      }t+        |j,                  |«      rt        j
                  dz
  }
n|j,                  }
|
dkD  r|
} |||¬«       |j/                  |f«      S )NrK   r   rÇ   rc  re  ru  rÊ   )rÎ   rÏ   r   rÔ   rÕ   rÖ   rÒ   rÈ   rÉ   rh  rd  ri  rf  rÓ   rØ   rj  rk  rÚ   rl  rm  rn  rL   ro  rÙ   )rq   rR   rö   Úmaskrá   râ   rÈ   rÉ   rd  rf  Únum_elementsrq  rr  s                r/   Úmasked_selectrŽ    s   € ð
 	×ÑÐ#Ø×"Ñ"×AÒAô *¨$Ó/Ð/à
×
Ñ
×
4Ñ
4Ó
6€Cô �[‰[˜1‰_€F÷õ 7Ý;ñ
 ˜DŸJ™J›LÔ)Ü˜4Ÿ:™:›<Ó(‰ä—I‘I˜dŸj™jÓ)×.Ñ.ˆ	Ù  §¡°×1DÑ1D×1QÑ1QÓRˆ
Ü�j×&Ñ&¨Ô4ÜŸ;™;¨™?‰Là%×+Ñ+ˆLØ�aÒØˆá˜c vÕ.à�>‰>˜3˜&Ó!Ð!r1   )r6   Úlayoutc               óÞ  — |�2|j                  «       |k7  rt        d|› d|j                  «       › �«      ‚|�2|j                  «       |k7  rt        d|› d|j                  «       › �«      ‚|�*|j                  |k7  rt        d|› d|j                  › �«      ‚|�*|j                  |k7  rt        d|› d|j                  › �«      ‚|�+|j
                  |k7  rt        d|› d|j
                  › �«      ‚y y )Nz!Tensor sizes mismatch! Expected: z, Got: z#Tensor strides mismatch! Expected: z!Tensor dtype mismatch! Expected: z"Tensor layout mismatch! Expected: z"Tensor device mismatch! Expected: )r×   rM   rò   rÍ   r�  r6   )rq   rR   Útr†  r?  rÍ   r6   r�  s           r/   Úassert_tensor_metadatar’  J  s  € ð ÐØ�6‰6‹8�uÒÜ Ø3°E°7¸'À!Ç&Á&Ã(ÀÐLóð ð ÐØ�8‰8‹:˜Ò Ü Ø5°g°Y¸gÀaÇhÁhÃjÀ\ÐRóð ð ÐØ�7‰7�eÒÜ Ø3°E°7¸'À!Ç'Á'ÀÐKóð ð ÐØ�8‰8�vÒÜ Ø4°V°H¸GÀAÇHÁHÀ:ÐNóð ð ÐØ�8‰8�vÒÜ Ø4°V°H¸GÀAÇHÁHÀ:ÐNóð ð ð r1   c                óN   — t         j                  j                  | j                  v S r:   )r?   r·   Údata_dependent_outputr¹   rÀ   s    r/   rÁ   rÁ   r  s   € œuŸy™y×>Ñ>À$Ç)Á)ÐK€ r1   c                ó   — t        |«      ‚r:   )r   rp   s       r/   Údata_depr–  r  s   € ô ' tÓ
,Ð,r1   c                ó†   — |D ]<  }|€Œ|j                   t        j                  t        j                  fv sŒ3t	        | «      ‚ y r:   )rÍ   r?   r¦   Úuint8r   )rR   rö   Úindicesr»   s       r/   Úcheck_no_bool_index_tensorsrš  {  s<   € ð ò 4ˆØÑ §¡´·±¼U¿[¹[Ð0IÒ!IÜ-¨dÓ3Ð3ñ4r1   c                ó  — t        |||d¬«      \  }}|d   j                  }t        | «      5   ||i |¤Ž}t        |«      s|j	                  |j
                  «      }d d d «       |d   u r|S t        | ||«      S # 1 sw Y   ŒxY w©NTrv   ry   )r   r6   r   r7   rÙ   rÚ   r   )rq   rR   rr   rs   r~   r   r�   rL  s           r/   Ú)run_and_return_new_tensor_of_input_devicer�  ƒ  s–   € ô 1Ø�4 ÀTô�M€A€zð ˜GÑ$×+Ñ+€JÜ	% iÓ	0ñ +Ù�DÐ#˜FÑ#ˆÜ)¨*Ô5Ø—-‘- §	¡	Ó*ˆC÷+ð
 ˆj˜Ñ!Ñ!Øˆ
Ü�i  jÓ1Ð1÷+ð +ús   ­/A:Á:Brº   ÚprimsÚprimc                ó&   — | j                   t        v S r:   )Ú	namespaceÚ_is_builtin_namespacesrg   s    r/   Ú
is_builtinr£  ›  s   € Ø�<‰<Ô1Ð1Ð1r1   c                ó^   — t         j                  j                  | j                  «       d«      S )NÚMeta)r?   r@   Ú._dispatch_has_computed_kernel_for_dispatch_keyrŠ   rÀ   s    r/   r*   r*   Ÿ  s    € Ü�8‰8×BÑBÀ4Ç9Á9Ã;ÐPVÓWÐWr1   c                ót   — t        | «      xr, | j                  «       j                  d«      xr t        | «      S )Nzaten::_foreach_)r£  rŠ   Ú
startswithr*   rÀ   s    r/   rÁ   rÁ   ¥  s4   € ”˜DÓ!ò Ø�	‰	‹×ÑÐ0Ó1òä�‹ð r1   c           	     ól  — t        j                  ||j                  «       «      D �cg c]B  }t        |t        t
        f«      r*t        |«      rt        |d   t        j                  «      r|‘ŒD }}	 t        | «      5   ||i |¤Ž}d d d «       s|S |st        d«      ‚g }t        |«      D ][  \  }}	t        j                  ||D �
cg c]  }
|
|   ‘Œ	 c}
«      \  }}|j!                  | j"                  j%                  | |	|«      «       Œ] |S c c}w # 1 sw Y   ŒŒxY w# t        $ r	 t        cY S w xY wc c}
w )Nr   ztensor_lists must not be empty)r¨   r©   rª   rL   rX   rY   rP   r?   r¼   r   r\  rð   rM   Ú	enumerater   Ú_find_common_devicer\   r•   r–   )rq   rR   rr   rs   rJ   Útensor_listsÚout_metaÚout_fakeÚiÚmeta_tÚtlr6   r~   s                r/   Ú foreach_run_and_map_input_devicer²  ¤  s1  € ô —?‘? 4¨¯©«Ó9öàÜ�cœD¤%˜=Ô)Ü�ŒHÜ�s˜1‘vœuŸ|™|Ô,ò	 	ð€Lð ðÜ)¨)Ó4ñ 	-Ù˜TÐ, VÑ,ˆH÷	-ñ
 ØˆáÜÐ=Ó>Ð>Ø€Hä˜xÓ(ò 
‰	ˆˆ6Ü×2Ñ2°4È,Ö9WÀB¸"¸Q»%Ò9WÓX‰	ˆ�Ø�‰Ø×+Ñ+×@Ñ@Ø˜6 6óõ	
ð
ð €Oùò;÷	-ð 	-ûäò ÜÒðüò :Xs6   §ADÁ1D Á<	DÂD ÃD1ÄDÄD ÄD.Ä-D.c                ó²   — ddl m} t        |||d¬«      \  }}|d   j                  }| 5   ||i |¤Ž}|j	                  |«      cd d d «       S # 1 sw Y   y xY w)Nr   )Úmeta_index_TensorTrv   ry   )Útorch._meta_registrationsr´  r   r6   Úto)	rq   rR   rr   rs   r´  r~   r   r�   rL  s	            r/   Úindex_tensorr·  Ï  sc   € õ <ä0Ø�4 ÀTô�M€A€zð ˜GÑ$×+Ñ+€Jà	ñ "Ù Ð0¨Ñ0ˆØ�v‰v�jÓ!÷"÷ "ò "ús   ªAÁAc                óN   — ddl m} | 5   ||i |¤Žcd d d «       S # 1 sw Y   y xY w)Nr   )Úmeta_embedding_bag)rµ  r¹  )rq   rR   rr   rs   r¹  s        r/   Úembedding_bagrº  â  s,   € õ =à	ñ 3Ù! 4Ð2¨6Ñ2÷3÷ 3ò 3ús   ‰›$c                ó   — t        | |||«      S r:   )r�  rp   s       r/   Úmulti_device_op_defaultr¼  í  s   € ô 5°YÀÀdÈFÓSÐSr1   c                ó€   — t        | «      5   ||i |¤Ž d d d «       t        |||d¬«      \  }}|d   S # 1 sw Y   Œ xY wrœ  )r   r   )rq   rR   rr   rs   r~   r   s         r/   Úmulti_device_op_outr¾  ù  sT   € ô
 
& iÓ	0ñ ÙˆdÐ�fÒ÷ô 1Ø�4 ÀTô�M€A€zð �gÑÐ÷ð ús   Œ	4´=c                óR  ‡‡‡— t        ‰||d¬«      \  }}|d   Š|d   j                  Št        j                  ‰‰j                  k(  xs$ ‰j                  dk(  xr ‰j                  «       dk(  ˆˆˆfd„«       t        | ‰||«      }‰t        j                  j                  u r|d   S |S )NTrv   rª   ry   r   rK   c                 ó0   •— d‰ › d‰› d‰j                   › d�S )NzMismatching z device between self (z) and values (ú)r5   )rR   Úself_devicerª   s   €€€r/   rÁ   z index_put_impl.<locals>.<lambda>  s&   ø€ �,˜t˜fÐ$:¸;¸-À~ÐV\×VcÑVcÐUdÐdeÐf€ r1   )
r   rÛ   r?   r0  r÷   rÓ   r�  rº   Ú
index_put_r¾   )	rq   rR   rr   rs   r~   r   rL  rÂ  rª   s	    `     @@r/   Úindex_put_implrÄ    s¨   ú€ ô
 1Ø�4 ÀTô�M€A€zð ˜Ñ!€FØ˜WÑ%×1Ñ1€KÜ	‡L�LØ�v×)Ñ)Ñ)ÒW¨f¯k©k¸QÑ.>Ò.VÀ6Ç<Á<Ã>ÐUVÑCVÝfôô
 4°I¸tÀTÈ6Ó
R€CØŒt�‰×&Ñ&Ñ&Ø˜'Ñ"Ð"àˆ
r1   c                ó   — t        |«      ‚r:   )r   rp   s       r/   Únested_tensors_unsupportedrÆ    s   € ô ' tÓ
,Ð,r1   c                ó0   — |t         v rt        d|› �«      ‚y )NzNYI: )Ú_device_not_kwarg_opsrM   rp   s       r/   ÚnyirÉ  (  s#   € ð  Ô$Ñ$Ü˜u T F˜^Ó,Ð,ð %r1   c           
     óò  ‡ ‡‡— t        |||d¬«      \  }}|d   }|d   }|j                  Š‰ 5  |j                  }ddlmŠ t        ˆfd„|j                  D «       «      xr t        ˆfd„|j                  D «       «      }	|	sd }
nÚ|j                  d	«      }t        |d
   |d   |d   |d   |d   |d   |¬«      }|€|j                  d«      |d<   t        j                  j                  ||fi |¤Ž}|dk(  rH|j                  s<|j                  s0|j                  «       j                  d«      }|j                  d«      }t        j                  j!                  |||«      }
d d d «       	 	 	 	 	 	 dˆˆ fd„}t#        ‰ «      5   |di |¤Ž}|t$        j&                  j(                  u r ||
«      cd d d «       S  ||d   
«       ||d   |
«       ||d   d «      fcd d d «       S # 1 sw Y   Œ„xY w# 1 sw Y   y xY w)NTrv   ry   Úweightr   r  c              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­wr:   rd   r  s     €r/   r>   zconv.<locals>.<genexpr>N  s   øè ø€ ÒD°!Ñ*¨1×-ÑDùr¤   c              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­wr:   rd   r  s     €r/   r>   zconv.<locals>.<genexpr>N  s   øè ø€ ò M
Ø%&Ñ˜a× ñM
ùr¤   Úbiasrò   ÚpaddingÚdilationÚ
transposedÚoutput_paddingÚgroups)rò   rÏ  rÐ  rÑ  rÒ  rÓ  rÎ  Ú
bias_sizesé   ru  c                óü   •— | €| S |�i| j                  «       dk(  rD|t        j                  k(  r1| j                  d«      j	                  |¬«      j                  d«      } n| j	                  |¬«      } t        ‰| ‰«      S )NrÕ  ru  r,  )rÝ   r?   Úchannels_lastr2  r¶  r3  r   )r‘  Úmem_fmtr6   rq   s     €€r/   Úconvertzconv.<locals>.converts  st   ø€ ð ˆ9ØˆHØÐà�u‰u‹w˜!Š| ¬5×+>Ñ+>Ò >Ø—K‘K “N×%Ñ%°GÐ%Ó<×DÑDÀQÓG‘à—D‘D w�DÓ/�Ü˜) Q¨Ó/Ð/r1   rK   )r‘  ztorch.Tensor | NonerØ  ztorch.memory_format | Nonerc   úFakeTensor | Nonerd   )r   rÛ   r÷   rÒ   r  ÚallrÚ   rB   r,   r?   r@   Ú_select_conv_backendrD  Úis_xpuÚ
contiguousr2  Ú%_conv_determine_backend_memory_formatr   rº   Úconvolutionr¾   )rq   rR   rr   rs   r~   r   Úinput_rË  ÚkÚ
all_hintedrØ  rÎ  Úselect_kwargsÚconv_backendrÙ  rL  r6   r  s   `               @@r/   Úconvræ  <  s3  ú€ ô 1Ø�4 ÀTô�M€A€zð ˜Ñ €FØ˜Ñ!€FØ×Ñ€Fà	ñ *à�K‰Kˆõ 	LäÓD°v·|±|ÔDÓDò 
Ìó M
Ø*0¯,©,ôM
ó J
ˆ
ñ ð ‰Gð —>‘> &Ó)ˆDÜ/3Ø! (Ñ+Ø" 9Ñ-Ø# JÑ/Ø% lÑ3Ø)Ð*:Ñ;Ø! (Ñ+Øô0ˆMð ˆ|Ø.8¯n©n¸\Ó.J�˜lÑ+Ü Ÿ8™8×8Ñ8Ø˜ñØ"/ñˆLð �AŠv˜f×.Ò.°v·}²}à×*Ñ*Ó,×6Ñ6°qÓ9�Ø×)Ñ)¨!Ó,�Ü—h‘h×DÑDØ˜ óˆG÷Q*ðX0Øð0Ø)Cð0à	ö0ô 
& iÓ	0ñ 
ÙÑ �ZÑ ˆà”4×#Ñ#×+Ñ+Ñ+Ù˜3 Ó(÷	
ñ 
ñ ˜˜A™ Ó(Ù˜˜A™ Ó(Ù˜˜A™ Ó%ð÷
ñ 
÷s*ð *ú÷r
ð 
ús   ®D0G!Å>-G-Æ5"G-Ç!G*Ç-G6c                óþ   — | j                   �| j                   j                  st        |«      ‚| j                   j                  «       }ddlm}  ||«       t        j                  ||k\  «       |j                  |«      S rS  )	rÎ   rÏ   r   rÔ   rÒ   rÈ   r?   r0  rÙ   )rq   rR   ÚinputsÚweightsÚ	minlengthrø   rÈ   s          r/   Úbincountrë  �  sm   € ð 	×ÑÐ#Ø×"Ñ"×AÒAô *¨$Ó/Ð/à×"Ñ"×9Ñ9Ó;€HåOá˜hÔ'Ü	‡L�L�˜YÑ&Ô'Ø×Ñ˜HÓ%Ð%r1   c                ó@  — | j                   �| j                   j                  st        |«      ‚| j                   j                  «       }ddlm}  ||«       |s|j                  dd«      }|j                  dd  }|j                  |«      }|j                  |f«      }	||	fS )Nr   rT  rK   )	rÎ   rÏ   r   rÔ   rÒ   rÈ   Ú	transposerÚ   rÙ   )
rq   rR   rè  ÚlengthsÚbatch_firstÚnew_batch_sizerÈ   Úres_sizeÚpacked_dataÚ
batch_sizes
             r/   Ú_pack_padded_sequencerô  ¥  sž   € ð 	×ÑÐ#Ø×"Ñ"×AÒAô *¨$Ó/Ð/à×(Ñ(×?Ñ?ÓA€NåOá˜nÔ-áà×!Ñ! ! QÓ'ˆà�|‰|˜A˜BÐ€HØ×"Ñ" 8Ó,€KØ×!Ñ! >Ð"3Ó4€JØ˜Ð$Ð$r1   c                ó   ‡ — dˆ fd„}|S )Nc                ó   •— | t         ‰<   | S r:   )ÚFAST_OP_IMPLEMENTATIONS)r]   rR   s    €r/   r`   z-register_fast_op_impl.<locals>.impl_decoratorÍ  s   ø€ Ø(/Ô Ñ%Øˆr1   ra   rd   )rR   r`   s   ` r/   Úregister_fast_op_implrø  Ê  s   ø€ õð Ðr1   c                ó˜  ‡
‡‡— ddl m} t        | «      }t        |«      }t        ||«      }dg|z  }t	        |dz
  dd«      D ]|  Š
|dz
  ‰
z
  }|dz
  |z
  }|dz
  |z
  }	|dk\  r| |   ndŠ|	dk\  r||	   ndŠt        j                   |‰dk(  «      xs  |‰dk(  «      xs ‰‰k(  ˆ
ˆˆfd„«        |‰dk(  «      r‰n‰|‰
<   Œ~ t        |«      S )Nr   rì   rK   r  c                 ó   •— d‰› d‰› d‰ › d�S )NzThe size of tensor a (z#) must match the size of tensor b (z) at non-singleton dimension rÁ  rd   )r¯  ÚsizeAÚsizeBs   €€€r/   rÁ   zinfer_size.<locals>.<lambda>ò  s'   ø€ Ð,¨U¨Gð 40Ø05¨wð 7*Ø*+¨¨Að/€ r1   )rÒ   rí   rP   rË   r
  r?   r0  rY   )r"  Úbrí   ÚdimsAÚdimsBr÷   ÚexpandedSizesÚoffsetÚdimAÚdimBr¯  rû  rü  s             @@@r/   r/  r/  Õ  sø   ú€ õ Eä�‹F€EÜ�‹F€EÜˆu�eÓ€DØ() s¨T¡z€MÜ�4˜!‘8˜R Ó$ò JˆØ˜‘˜A‘ˆØ�q‰y˜6Ñ!ˆØ�q‰y˜6Ñ!ˆØ 1š9��$’¨!ˆØ 1š9��$’¨!ˆô 	�‰Ù˜5 A™:Ó&ÒV©.¸À!¹Ó*DÒVÈÐQVÉõ/ô	
ñ %3°5¸A±:Ô$>™5ÀEˆ�aÒð1Jô2 �ÓÐr1   c                ó   ‡ ‡— dˆ ˆfd„}|S )Nc           	     óô  •‡ ‡‡— dˆˆˆ ˆfd„}t        d«       ‰}d }|D ]:  }t        |t        j                  «      r|j                  nd}|€|}t        ||«      }Œ< |€t        d«      ‚ddlm}m	}	 |D ]Z  }t        |t        j                  «      sŒt        |j                  «      t        |«      k(  sŒ@ | |	|j                  |«      «      sŒZ n	  |d«      S t        j                  d«      }
|
}d }d	}|D ]€  }t        |t        j                  «      sd
}Œ ||
k(  r%|j                  j                  dk7  r|j                  }|€#‰t        j                  k7  rd
}Œb|j                  }Œo||j                  k7  sŒd
}Œ‚ |rt!        |d‰iŽ\  }}d}d}|D ]r  }t        |t        j                  «      sŒ||
k7  r7|j#                  «       dk(  r$|j                  |
k(  r||k\  r
 |d«      c S |dz  }ŒZ|j                  |k7  sŒj |d«      c S  d
}d
}t%        |«      r`|D ][  }t        |t        j                  «      sŒ|xr t'        |t        j(                  ¬«      }|xr t'        |t        j*                  ¬«      }Œ] |r>t        d«       t-        ‰ t        j.                  ||dt        j(                  ¬«      |¬«      S |r>t        d«       t-        ‰ t        j.                  ||dt        j*                  ¬«      |¬«      S  |d«      S )Nc                ó`   •— t        d| › �«       ‰5   ‰‰i ‰¤Žcd d d «       S # 1 sw Y   y xY w)Nzslow r   )rA  rr   rs   ÚmodeÚslow_refs    €€€€r/   Úslowz=make_fast_binary_impl.<locals>.fast_binary_impl.<locals>.slowÿ  s6   ø€ Ü˜% ˜u˜Ô&Øñ 1Ù Ð0¨Ñ0÷1÷ 1ò 1ús   ’$¤-zattempt fastrd   zfinal_shape must not be Noner   r&  z#both tensors nontrivially broadcastrz   FTÚtype_promotion_kindrK   Úerrorr,  zfast is_contiguousr{   )rÍ   r6   r-  r5   zfast channels_lastzno contiguity match)rA  Ústrrc   r   )r   rL   r?   r¼   rÚ   r/  rM   rÒ   rí   r  rP   r6   r4   r   ÚDEFAULTrÍ   r   rÝ   r7   r   r:  r×  r   Úempty)r  rr   rs   r	  ÚoperandsÚfinal_shaper^   rÚ   rí   r  rz   Úcommon_deviceÚcommon_dtypeÚhas_different_input_dtypesr~   Úcurrent_cpu_scalars_on_non_cpuÚmax_cpu_scalars_on_non_cpuÚdefinitely_contiguousÚdefinitely_channels_lastr  r
  s   ```                €€r/   Úfast_binary_implz/make_fast_binary_impl.<locals>.fast_binary_implþ  s  û€ ÷	1ð 	1ô
 	�NÔ#ð ˆð )-ˆØò 	9ˆBÜ+5°b¼%¿,¹,Ô+G˜rŸxšxÈRˆEØÐ"Ø#�ô
 % [°%Ó8‰Kð	9ð ÐÜ Ð!?Ó@Ð@çPð ò 
	?ˆBä˜2œuŸ|™|Õ,Ü˜Ÿ™“M¤S¨Ó%5Ó5á"¡6¨"¯(©(°KÓ#@ÕAáð
	?ñ Ð=Ó>Ð>ô �l‰l˜5Ó!ˆØ&)ˆØ+/ˆØ%*Ð"Øò 	2ˆBÜ˜b¤%§,¡,Ô/à-1Ð*ØØ Ò#¨¯	©	¯©¸%Ò(?Ø "§	¡	�ØÐ#Ø&Ô*I×*QÑ*QÒQØ15Ñ.à#%§8¡8‘LØ §¡Ó)Ø-1Ñ*ð	2ñ &ô 1ØðØ/Bñ‰OˆAˆ|ð *+Ð&Ø%&Ð"Øò 	%ˆBÜ˜b¤%§,¡,Ô/ØØ Ò#¨¯©«°Aª¸"¿)¹)ÀsÒ:JØ1Ð5OÒOÙ ›=Ò(Ø.°!Ñ3Ñ.Ø—‘˜mÓ+Ù˜G“}Ò$ð	%ð !%ÐØ#'Ð ô
 & mÔ4Øò �Ü! "¤e§l¡lÔ3Øà)ò Ü@Ø¬%×*AÑ*Aôð &ð -ò Ü@Ø¬%×*=Ñ*=ôñ )ðñ !äÐ,Ô-ÜØÜ—‘ØØ&Ø!Ü"'×"9Ñ"9ô	ð %ô	ð 	ñ $ÜÐ,Ô-äØÜ—‘ØØ&Ø!Ü"'×"5Ñ"5ô	ð %ô	ð 	ñ Ð)Ó*Ð*r1   )r  r"   rr   r   rs   r   rc   r   rd   )r  r
  r  s   `` r/   Úmake_fast_binary_implr  ú  s   ù€ öK+ðZ Ðr1   c                ó^  — t        «       5  t        | «      5  t        j                  j                  j
                  j                  |«      }d d d «       d d d «       |r#t        | |j                  |j                  ¬«      S t        | |j                  «      S # 1 sw Y   ŒMxY w# 1 sw Y   ŒQxY w)N)Úreal_tensor)
r
   r   r?   r_  rº   Údetachr¾   r   r6   r  )rq   r¡   Úinclude_realrL  s       r/   Úfast_detachr  �  s‰   € ô 
Ó	ñ /Ô!=¸iÓ!Hñ /Ü�i‰i�n‰n×#Ñ#×+Ñ+¨AÓ.ˆ÷/÷ /áÜ˜) S¨!¯(©(ÀÇÁÔNÐNÜ�i  a§h¡hÓ/Ð/÷	/ð /ú÷ /ð /ús"   ‹B#—4BÁB#ÂB 	ÂB#Â#B,c                 ó`  — dd l }  t        | j                  j                  j                  j
                  «      t        | j                  j                  «      «        t        | j                  j                  j                  j
                  «      t        | j                  j                  «      «        t        | j                  j                  j                  j
                  «      t        | j                  j                  «      «        t        | j                  j                  j                  j
                  «      t        | j                  j                  t        j                  ¬«      «        t        | j                  j                  j                  j                  «      t        «       t         S )Nr   )r
  )Útorch._refsrø  r_  rº   Úaddr¼   r  r1  Úsubr	  Údivr   ÚINT_TO_FLOATr  r¾   r  r÷  )r?   s    r/   r(   r(   š  s  € ãà4Ô˜%Ÿ)™)Ÿ.™.×,Ñ,×3Ñ3Ó4Ü˜eŸk™kŸo™oÓ.ôð 5Ô˜%Ÿ)™)Ÿ.™.×,Ñ,×3Ñ3Ó4Ü˜eŸk™kŸo™oÓ.ôð 5Ô˜%Ÿ)™)Ÿ.™.×,Ñ,×3Ñ3Ó4Ü˜eŸk™kŸo™oÓ.ôð 5Ô˜%Ÿ)™)Ÿ.™.×,Ñ,×3Ñ3Ó4ÜØ�K‰K�O‰OÜ ?× LÑ Lô	
ôð 9Ô˜%Ÿ)™)Ÿ.™.×/Ñ/×7Ñ7Ó8¼ÔEÜ"Ð"r1   )r.   r&   rc   zdict[_T, bool])r6   ztorch.devicerc   r¦   )rF   r   rc   r¦   )rR   r   rc   r¦   )r_   zUCallable[[OpOverload], bool] | OpOverload | list[OpOverload] | tuple[OpOverload, ...]rc   ú.Callable[[Callable[_P, _R]], Callable[_P, _R]])r^   r   rc   r¦   )r^   r   rc   ÚNone)
rq   r"   rR   r   rr   r   rs   r   rc   r   )
rq   r"   rR   r   rr   r   rs   r   rc   r   )
rq   r"   rR   r   rr   r   rs   r   rc   r¦   r:   )
rq   r"   rR   r   rŠ   r  rr   úobject | Nonerc   r   )rq   r"   rR   r   r�   r   rc   r&  )
rq   r"   rR   r   rŠ   r  rr   r'  rc   r   )
rq   r"   rR   r   rr   r   rs   r   rc   r&  )TFF)rq   r"   rR   r   rJ   r   rÝ   ú
int | NonerÞ   r¦   rß   r¦   rà   r¦   rÅ   r¦   rc   ú)tuple[FakeTensor, FakeTensor, FakeTensor])rq   r"   rR   r   rJ   r   rÞ   r¦   rß   r¦   rà   r¦   rc   r)  )rq   r"   rR   r   rö   r   rÝ   rØ   r»   r#   rc   r   )rq   r"   rR   r   rJ   r   rÝ   rØ   rÞ   r¦   rß   r¦   rà   r¦   rc   r)  )FFN)rq   r"   rR   r   rJ   r   rß   r¦   rà   r¦   rÝ   r(  rc   r)  )F)
r  úSequence[IntLikeType]r  r*  r  r*  r  r¦   rc   zlist[IntLikeType] | None)r"  útorch.TensorrÚ   úShapeType | tuple[ShapeType]rc   r¦   )TF)
r"  r+  rÚ   r,  r*  r¦   r+  r¦   rc   r+  )
rq   r"   rR   r   r"  r   rÚ   r   rc   zFakeTensor | Exception)rq   r"   rR   r   r"  r   rÚ   r   r+  r¦   rc   r   )rq   r"   rR   r   r"  r   rÚ   r#   rL  rÚ  rc   r   )
rq   r"   rR   r   rU  r   rV  úIntLikeType | Nonerc   r   )rq   r"   rR   r   rJ   r   rc   zBint | float | bool | torch.SymInt | torch.SymFloat | torch.SymBool)rq   r"   rR   r   rJ   r   rc   úlist[FakeTensor])rq   r"   rR   r   rJ   r   rc   r   )rq   r"   rR   r   rv  r   rw  r.  rx  r-  rc   r   )r×   r#   r»   r#   rc   r-  )r   NNrK   )rq   r"   rR   r   rö   r   rÝ   rØ   rƒ  r(  r„  r(  r…  rØ   rc   r   )
rq   r"   rR   r   rö   r   rŒ  r   rc   r   )NNN)rq   r"   rR   r   r‘  r   r†  ztorch.Size | Noner?  ztuple[int, ...] | NonerÍ   ztorch.dtype | Noner6   ztorch.device | Noner�  ztorch.layout | Nonerc   r&  )rR   r   rö   r   r™  zlist[FakeTensor | None]rc   r&  )
rq   r"   rR   r   rr   ztuple[Any, ...]rs   zdict[str, Any]rc   r   )
rq   r"   rR   r   rr   r   rs   r   rc   zlist[FakeTensor] | None)
rq   r"   rR   r   rr   r   rs   r   rc   z5tuple[FakeTensor, FakeTensor, FakeTensor, FakeTensor])
rq   r"   rR   r   rr   r   rs   r   rc   zKFakeTensor | tuple[FakeTensor | None, FakeTensor | None, FakeTensor | None])Nr   )rq   r"   rR   r   rè  r   ré  rÚ  rê  r#   rc   r   )rq   r"   rR   r   rè  r   rî  r   rï  r¦   rc   ztuple[FakeTensor, FakeTensor])rR   r   rc   r%  )r"  r*  rý  r*  rc   ztuple[IntLikeType, ...])r  zCallable[..., Any]r
  r   rc   zCallable[..., FakeTensor])rq   r"   r¡   r   r  r¦   rc   r   )rc   z$dict[OpOverload, Callable[..., Any]])ÁÚ
__future__r   Ú	functoolsr¨   rj  r  rÕ   r   Útypingr   r   rF  r   r   Útyping_extensionsr	   r?   Útorch._custom_opÚtorch._loggingÚtorch._prims_commonÚ_prims_commonr   Útorch._dispatch.pythonr
   Ú
torch._opsr   r   r   r   r   r   r   r   r   r   r   r   Útorch._subclasses.fake_tensorr   r   r   r   r   r   Útorch.fx.operator_schemasr   Útorch.utils._statsr   Úcollections.abcr    r!   r"   Útorch.typesr#   r¼   ÚFakeTensorLiker$   r%   r&   Ú_pytreer«   Ú__all__rW   r'   Ú_opsr_  rº   r0   r7   r‰   r¾   rL  Ú	full_likeÚ	ones_likeÚ	rand_likeÚ	generatorÚgenerator_outÚ
randn_likeÚrandint_likeÚTensor_generatorÚ
Tensor_outÚTensor_generator_outÚ	low_dtypeÚlow_generator_dtypeÚlow_dtype_outÚlow_generator_dtype_outÚ
zeros_likerÙ   rp  Únew_fullÚ	new_zerosÚnew_onesr}   Ú_resize_output_Ú_nested_tensor_from_tensor_listÚ
pin_memoryr¶  r6   Úprim_DeviceÚ	is_pinnedÚ_pin_memoryÚ_resize_outputrÈ  Ú_list_to_tensorr|   r;   ÚcacherT   rZ   rh   rn   Ú__contains__rt   rƒ   r‡   Úprofilerr�   r�   r“   r˜   r)   r±   r³   rµ   rÃ   rç   Ú_unique2rê   ÚselectrØ   rû   rý   rÅ   r  r#  r8  rH  rG  Ú_unsafe_viewrE  Ú	view_copyrQ  r¿   rW  ÚitemÚ_local_scalar_denser]  ra  r½   rz  r  ÚslicerŠ  rŽ  Ú_assert_tensor_metadatar’  r–  rš  r�  r¢  r£  r*   r²  r»   r·  Ú_embedding_bagrº  Ú_unsafe_index_putÚcopyÚcopy_Úslice_scatterÚdiagonal_scatterr¼  r¾  Ú	index_putrÃ  rÄ  Ú_nested_view_from_bufferÚ_nested_view_from_buffer_copyrÆ  rÉ  rà  Úconvolution_backwardræ  rë  rô  r÷  rø  r/  r  r  r  r(   r    s   0r/   ú<module>rq     sÜ  ðÝ "ã Û Û Û Û 
Ý ß CÓ CÝ 'ã Û Û Ý #Ý 7Ý !÷÷ ÷ ñ ÷÷ õ CÝ *ñ ß2å<Ý'ð ˜eŸl™lÑ*€Ùˆtƒ_€ÙˆTƒ]€ÙˆTƒ]€à	�‰×	Ñ	€ò€ð Ð àÐ ð ‡z�z‡~�~×Ñ€ó&ó ñ (ð 'Ø‡O�O×Ñð'à‡O�O×Ñð'ð 	‡N�N×Ñð'ð 	‡N�N×Ñð	'ð
 	‡N�N×Ñð'ð 	‡N�N×Ñð'ð 	‡N�N×Ñð'ð 	‡N�N×Ñð'ð 	‡N�N×Ñð'ð 	‡N�N× Ñ ð'ð 	‡O�O×Ñð'ð 	‡O�O×Ñð'ð 	‡O�O×Ñð'ð 	‡O�O×!Ñ!ð'ð 	×Ñ×Ñð'ð  	×Ñ×Ñð!'ð" 	×Ñ×Ñð#'ð$ 	×Ñ×&Ñ&ð%'ð& 	×Ñ× Ñ ð''ð( 	×Ñ×*Ñ*ð)'ð* 	×Ñ×Ñð+'ð, 	×Ñ×#Ñ#ð-'ð. 	×Ñ×Ñð/'ð0 	×Ñ×)Ñ)ð1'ð2 	×Ñ×#Ñ#ð3'ð4 	×Ñ×-Ñ-ð5'ð6 	‡O�O×Ñð7'ð8 	‡O�O×Ñð9'ð: 	‡N�N×Ñð;'ð< 	‡N�N×Ñð='ð> 	×Ñ×"Ñ"ð?'ð@ 	×Ñ×ÑðA'ðB 	‡M�M×ÑðC'ðD 	‡M�M×ÑðE'ðF 	‡N�N×ÑðG'ðH 	‡N�N×ÑðI'ðJ 	‡M�M×ÑðK'ðL 	‡M�M×ÑòM'Ð ñT $Ø×Ñ× Ñ Ø×(Ñ(×0Ñ0Ø×(Ñ(×,Ñ,Ø‡O�O×ÑØ‡G�G‡N�NØ‡G�G×ÑØ‡N�N×ÑØ×Ñ×ÑØ×Ñ×ÑØ×Ñ×ÑØ×Ñ×ÑóÐ ð #'×"6Ñ"6Ð!8Ð óð ‡�ò	ó ð	ðððð
 4óó4)óñ Ð)×6Ñ6Ó7ðKØðKØ%/ðKØ8;ðKØGJðKàòKó 8ðKñ Ð(Ó)ÙÐ.Ð-Ð.Ó/ð0Øð0Ø%/ð0Ø8;ð0ØGJð0àò0ó 0ó *ð0ñ@ �$—.‘.×(Ñ(Ó)ðØðØ%/ðØ8;ðØGJðà	òó *ðñ  �%—)‘)×$Ñ$×;Ñ;×CÑCÓDàRVð	CØð	CØ%/ð	CØ7:ð	CØBOð	Càò	Có Eð	Cñ �%—)‘)×$Ñ$×:Ñ:×BÑBÓCð	Øð	Ø%/ð	Ø9<ð	à	ò	ó Dð	ñ �%—)‘)×$Ñ$×?Ñ?×GÑGÓHàRVð Øð Ø%/ð Ø7:ð ØBOð àò ó Ið ñ �$—'‘'×%Ñ%Ó&Ù�$—'‘'—.‘.Ó!ðØðØ%/ðØ8;ðØGJðàòó "ó 'ðó$ñ
 Ð%Ó&ð-Øð-Ø%/ð-Ø8;ð-ØGJð-àò-ó 'ð-ñD �$—/‘/×)Ñ)Ó*ð%Øð%Ø%/ð%Ø8;ð%ØGJð%àò%ó +ð%ñ �$×?Ñ?×GÑGÓHð:Øð:Ø%/ð:Ø8;ð:ØGJð:àò:ó Ið:ñ ñTóð
,Øð,Ø%/ð,Ø8;ð,ØGJð,à	ò,óð
,ð Ø ØðOð  %ñOØðOà
ðOð 
ðOð 
ð	Oð
 ðOð ðOð ðOð ðOð /óOñd �$—-‘-×'Ñ'Ó(ð
 Ø ØðVØðVà
ðVð 
ðVð ð	Vð
 ðVð ðVð /òVó )ðVñ �$—+’+—/’/Ó"ð.EØð.Eà
ð.Eð ð.Eð 
ð	.Eð
 ð.Eð ò.Eó #ð.Eñb �$—/’/×)Ñ)Ó*ð Ø ØðØðà
ðð 
ðð 
ð	ð
 ðð ðð ðð /òó +ðñ* �$×)Ò)×1Ñ1Ó2ð
 !ØØðØðà
ðð 
ðð ð	ð
 ðð 
ðð /òó 3ðð2 !ð	LØ$ðLà%ðLð %ðLð ð	Lð
 óLð^ØðØ8ðà	óð" $(Øð	PØðPà'ðPð !ðPð ð	Pð
 óPñf �$×$Ò$×,Ñ,Ó-ð
Øð
Ø%/ð
Ø4>ð
ØHKð
àò
ó .ð
ñ, �$—)’)×#Ñ#Ó$Ù�$×#Ò#×+Ñ+Ó,ð ñ
Øð
à
ð
ð ð
ð ð	
ð
 ð
ð ò
ó -ó %ð
ñ( �$—.’.×(Ñ(Ó)ð "ñØðà
ðð ðð ð	ð
 
ðð òó *ðñ* �$×(Ò(×/Ñ/Ó0ð
 '+ð	*Øð*à
ð*ð ð*ð $ð	*ð
 ò*ó 1ð*ñ. �%—)‘)—.‘.×%Ò%×-Ñ-Ó.Ù�%—)‘)—.‘.×4Ò4×<Ñ<Ó=ðØðØ%/ðØ6@ðàGòó >ó /ðñ. �%—)‘)—.‘.×.Ò.×6Ñ6Ó7ð9Øð9Ø%/ð9Ø6@ð9àò9ó 8ð9ñ �%—)‘)—.‘.×(Ò(×0Ñ0Ó1ò/Pó 2ð/Pñd �%—)‘)—.‘.×@Ò@×HÑHÓIð #'ð%*Øð%*à
ð%*ð ð%*ð ð	%*ð
  ð%*ð ò%*ó Jð%*óPñ& �%—)‘)—.‘.×&Ò&×-Ñ-Ó.ð
 ØØØðJ?ØðJ?à
ðJ?ð ðJ?ð 
ð	J?ð
 ðJ?ð 
ðJ?ð ðJ?ð òJ?ó /ðJ?ñZ �%—)‘)—.‘.×.Ò.×6Ñ6Ó7ð("Øð("Ø%/ð("Ø7Að("ØISð("àò("ó 8ð("ñV �%—)‘)—.‘.×8Ò8×@Ñ@ÓAð
  $Ø&*Ø $ð#ð #'Ø"&ñ#Øð#à
ð#ð ð#ð ð	#ð
 $ð#ð ð#ð  ð#ð  ð#ð 
ò#ó Bð#ñN ÑKÓLð-Øð-Ø%/ð-Ø8;ð-ØGJð-à	ò-ó Mð-ð4Ø
ð4Ø&ð4Ø1Hð4à	ó4ð2Øð2à
ð2ð ð2ð ð	2ð
 ó2ñ* % V¨W°fÓ=Ð ó2óXñ
 ñóð
 Øð Ø%/ð Ø8;ð ØGJð àò óð
 ñL �$—*’*×#Ñ#Ó$ð"Øð"Ø%/ð"Ø8;ð"ØGJð"àò"ó %ð"ñ$ �$×%Ò%×-Ñ-Ó.ð3Øð3Ø%/ð3Ø8;ð3ØGJð3à:ò3ó /ð3ñ �$×(Ò(×0Ñ0Ó1Ù�$—)’)×#Ñ#Ó$Ù�$—*’*×$Ñ$Ó%Ù�$×$Ò$×,Ñ,Ó-Ù�$×'Ò'×/Ñ/Ó0ðTØðTØ%/ðTØ8;ðTØGJðTàòTó 1ó .ó &ó %ó 2ð
Tñ �$—)’)—-‘-Ó Ù�$×$Ò$×(Ñ(Ó)ð
Øð
Ø%/ð
Ø8;ð
ØGJð
àò
ó *ó !ð
ñ �$—.’.×(Ñ(Ó)Ù�$—/’/×)Ñ)Ó*ðØðØ%/ðØ8;ðØGJðàòó +ó *ðñ( �$×6Ñ6×>Ñ>Ó?Ù�$×6Ñ6×:Ñ:Ó;Ù�$×/Ò/×7Ñ7Ó8Ù�$×4Ò4×<Ñ<Ó=ð-Øð-Ø%/ð-Ø8;ð-ØGJð-à	ò-ó >ó 9ó <ó @ð-ñ ð 'öàØð �N‰N×"Ñ"Ø�G‰G�N‰NØ�G‰G×ÑØ×0Ñ0×8Ñ8Ø×0Ñ0×4Ñ4ð
ñ
ò 	
òóò-óð-ñ
 �4×#Ò#×+Ñ+¨T×-FÒ-F×-NÑ-NÐOÓPðMØðMØ%/ðMØ8;ðMØGJðMàPòMó QðMñ` �%—)‘)—.‘.×)Ò)×1Ñ1Ó2ð
 "&Øð&Øð&à
ð&ð ð&ð ð	&ð
 ð&ð ò&ó 3ð&ñ. �%—)‘)—.‘.×6Ò6×>Ñ>Ó?ð%Øð%à
ð%ð ð%ð ð	%ð
 ð%ð #ò%ó @ð%ð> Ð ð
Ø
ðà3óð" Øð" Ø!6ð" àó" ðN <[×;bÒ;bðQØ ðQà8ðQð óQðn DIð0Øð0Ø",ð0Ø<@ð0àó0ð ‡�ò#ó ñ#ùòes   ø/A6