Ë
    Z^(hv¾ ã                  ó 
  — U 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mZ d dl	m
Z
mZmZ d dlmZmZmZ erd dlmZmZ  ed¬	«       G d
„ d«      «       Z G d„ de«      ZdZdj/                  «       Zg d¢ZdgeD � cg c]  } d| z   ‘Œ	 c} z   ZddhZ G d„ de«      Z G d„ de«      Zdfd„ZeD ]4  ZeD ]-  Z  e!eee z   «      rŒ e«       Z" e#e"«        e$de› e › de"› �«      ‚ Œ6 ejJ                  ejL                  ejN                  ejP                  hZ)ejL                  ejN                  hZ*ejN                  ejV                  ejX                  ejZ                  ejL                  ejJ                  ejP                  ej\                  ej^                  ej`                  ejb                  ejd                  ejf                  ejh                  ejj                  ejl                  ejn                  ejp                  ejr                  ejt                  ejv                  ejx                  ejz                  ej|                  ej~                  ej€                  gZAdgd„ZBdgd„ZCdgd„ZDdgd„ZEdgd „ZFeCd!eDd"iZG G d#„ d$e«      ZHi ZId%eJd&<    eeHj–                  eHj˜                  eHjš                  eHjœ                  eHjž                  g«      eId'<    eeHj                   eHj¢                  g«      eId(<    eeHj¤                  eHj¦                  g«      eId)<   eId'   eId(   z  eId*<   eId*   eId)   z  eId+<   eId(   eId)   z  eId,<    G d-„ d.e«      ZT G d/„ d0e«      ZU G d1„ d2e«      ZV ed¬	«       G d3„ d4«      «       ZW G d5„ d6e«      ZX ed¬	«       G d7„ d8«      «       ZY ed¬	«       G d9„ d:«      «       ZZ ed¬	«       G d;„ d<«      «       Z[ ed¬	«       G d=„ d>«      «       Z\ ed¬	«       G d?„ d@«      «       Z] ed¬	«       G dA„ dB«      «       Z^ ed¬	«       G dC„ dD«      «       Z_ G dE„ dFe«      Z` ed¬	«       G dG„ dHe_«      «       Za ed¬	«       G dI„ dJe_«      «       Zb ed¬	«       G dK„ dLe_«      «       Zc ed¬	«       G dM„ dNe_«      «       Zd ed¬	«       G dO„ dP«      «       Ze ed¬	«       G dQ„ dR«      «       Zf ed¬	«       G dS„ dT«      «       Zg ed¬	«       G dU„ dV«      «       Zh ed¬	«       G dW„ dX«      «       Zig dY¢Zj ed¬	«       G dZ„ d[«      «       Zk ed¬	«       G d\„ d]«      «       Zl	 	 	 	 	 	 	 	 dhd^„Zm ed¬	«       G d_„ d`«      «       Zndida„Zodjdb„Zpdkdc„Zq ed¬	«       G dd„ de«      «       Zryc c} w )lé    )ÚannotationsN)Ú	dataclass)ÚautoÚEnum)ÚCallableÚOptionalÚTYPE_CHECKING)Úassert_neverÚNamespaceHelperÚ
OrderedSet)ÚIteratorÚSequenceT)Úfrozenc                  ó*   — e Zd ZU ded<   ded<   dd„Zy)ÚLocationÚstrÚfileÚintÚlinec                ó8   — | j                   › d| j                  › �S )Nú:)r   r   ©Úselfs    úL/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torchgen/model.pyÚ__str__zLocation.__str__0   s   € Ø—)‘)�˜A˜dŸi™i˜[Ð)Ð)ó    N©Úreturnr   )Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r   © r   r   r   r   +   s   … à
ƒIØ
ƒIô*r   r   c                  ó(   — e Zd Z e«       Z e«       Zy)ÚVariantN)r   r    r!   r   ÚfunctionÚmethodr#   r   r   r%   r%   5   s   „ Ù‹v€HÙ‹V�Fr   r%   z
at::nativezVCPU CUDA HIP XLA MTIA MPS IPU XPU HPU VE Lazy Meta PrivateUse1 PrivateUse2 PrivateUse3)Ú Ú	QuantizedÚSparseÚ	SparseCsrÚNestedTensorÚAutogradÚAutogradNestedTensorr-   Ú	quantizedÚquantized_decomposedc                  óÂ  — e Zd ZdZeZ e«       Z e«       Z e«       Z e«       Z	 e«       Z
 e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z  e«       Z! e«       Z" e«       Z# e«       Z$ e«       Z% e«       Z& e«       Z' e«       Z( e«       Z) e«       Z* e«       Z+ e«       Z, e«       Z- e«       Z. e«       Z/ e«       Z0 e«       Z1 e«       Z2 e«       Z3 e«       Z4 e«       Z5 e«       Z6 e«       Z7 e«       Z8 e«       Z9 e«       Z: e«       Z; e«       Z< e«       Z= e«       Z> e«       Z? e«       Z@ e«       ZA e«       ZB e«       ZC e«       ZD e«       ZE e«       ZF e«       ZG e«       ZH e«       ZI e«       ZJ e«       ZK e«       ZL e«       ZM e«       ZN e«       ZO e«       ZP e«       ZQ e«       ZR e«       ZS e«       ZT e«       ZU e«       ZV e«       ZW e«       ZX e«       ZY e«       ZZ e«       Z[ e«       Z\ e«       Z] e«       Z^ e«       Z_ e«       Z` e«       Za e«       Zb e«       Zc e«       Zd e«       Ze e«       Zf e«       Zg e«       Zh e«       Zi e«       Zj e«       Zk e«       Zl e«       Zm e«       Zn e«       Zo e«       Zp e«       Zq e«       Zr e«       Zs e«       Zt e«       Zu e«       Zv e«       Zw e«       Zx e«       Zy e«       Zz e«       Z{ e«       Z| e«       Z} e«       Z~ e«       Z e«       Z€ e«       Z� e«       Z‚ e«       Zƒ e«       Z„ e«       Z… e«       Z† e«       Z‡ e«       Zˆ e«       Z‰ e«       ZŠ e«       Z‹ e«       ZŒ e«       Z� e«       ZŽ e«       Z�dd„Z�dd„Z‘e’dd„«       Z“y)ÚDispatchKeyr   c                ó   — | j                   S ©N©Únamer   s    r   r   zDispatchKey.__str__ç   ó   € Ø�y‰yÐr   c                ó4   — t        | «      j                  «       S r4   )r   Úlowerr   s    r   r9   zDispatchKey.lowerê   s   € Ü�4‹y�‰Ó Ð r   c                ó|   — t         j                  j                  «       D ]  \  }}|| k(  sŒ|c S  t        d| › �«      ‚)Nzunknown dispatch key )r2   Ú__members__ÚitemsÚAssertionError©ÚvalueÚkÚvs      r   ÚparsezDispatchKey.parseí   sE   € ä×+Ñ+×1Ñ1Ó3ò 	‰DˆAˆqØ�E‹zØ’ð	ô Ð4°U°GÐ<Ó=Ð=r   Nr   )r?   r   r   r2   )”r   r    r!   Ú	UndefinedÚCatchAllr   ÚFPGAÚMAIAÚVulkanÚMetalÚMKLDNNÚOpenGLÚOpenCLÚIDEEPÚCustomRNGKeyIdÚ	MkldnnCPUr*   r+   r,   ÚDenseÚPythonTLSSnapshotÚPreDispatchÚPythonDispatcherÚPythonÚFuncTorchDynamicLayerBackModeÚ
ZeroTensorÚ	ConjugateÚNegativeÚBackendSelectÚNamedÚAutogradOtherÚAutogradFunctionalityr.   ÚTracerÚAutocastÚAutocastCPUÚAutocastCUDAÚBatchedÚVmapModeÚFuncTorchGradWrapperÚFuncTorchBatchedÚBatchedNestedTensorÚFuncTorchVmapModeÚFuncTorchDynamicLayerFrontModeÚFunctionalizeÚTESTING_ONLY_GenericWrapperÚTESTING_ONLY_GenericModeÚADInplaceOrViewr-   ÚCompositeImplicitAutogradÚ%CompositeImplicitAutogradNestedTensorÚCompositeExplicitAutogradÚ&CompositeExplicitAutogradNonFunctionalÚFuncTorchBatchedDecompositionÚCPUÚCUDAÚHIPÚXLAÚMTIAÚMPSÚIPUÚXPUÚHPUÚVEÚLazyÚMetaÚPrivateUse1ÚPrivateUse2ÚPrivateUse3ÚQuantizedCPUÚQuantizedCUDAÚQuantizedHIPÚQuantizedXLAÚQuantizedMTIAÚQuantizedMPSÚQuantizedIPUÚQuantizedXPUÚQuantizedHPUÚQuantizedVEÚQuantizedLazyÚQuantizedMetaÚQuantizedPrivateUse1ÚQuantizedPrivateUse2ÚQuantizedPrivateUse3Ú	SparseCPUÚ
SparseCUDAÚ	SparseHIPÚ	SparseXLAÚ
SparseMTIAÚ	SparseMPSÚ	SparseIPUÚ	SparseXPUÚ	SparseHPUÚSparseVEÚ
SparseLazyÚ
SparseMetaÚSparsePrivateUse1ÚSparsePrivateUse2ÚSparsePrivateUse3ÚSparseCsrCPUÚSparseCsrCUDAÚSparseCsrHIPÚSparseCsrXLAÚSparseCsrMTIAÚSparseCsrMPSÚSparseCsrIPUÚSparseCsrXPUÚSparseCsrHPUÚSparseCsrVEÚSparseCsrLazyÚSparseCsrMetaÚSparseCsrPrivateUse1ÚSparseCsrPrivateUse2ÚSparseCsrPrivateUse3ÚNestedTensorCPUÚNestedTensorCUDAÚNestedTensorHIPÚNestedTensorXLAÚNestedTensorMTIAÚNestedTensorMPSÚNestedTensorIPUÚNestedTensorXPUÚNestedTensorHPUÚNestedTensorVEÚNestedTensorLazyÚNestedTensorMetaÚNestedTensorPrivateUse1ÚNestedTensorPrivateUse2ÚNestedTensorPrivateUse3ÚAutogradCPUÚAutogradCUDAÚAutogradHIPÚAutogradXLAÚAutogradMTIAÚAutogradMPSÚAutogradIPUÚAutogradXPUÚAutogradHPUÚ
AutogradVEÚAutogradLazyÚAutogradMetaÚAutogradPrivateUse1ÚAutogradPrivateUse2ÚAutogradPrivateUse3r   r9   ÚstaticmethodrB   r#   r   r   r2   r2   S   s  „ Ø€IØ€Há‹6€DÙ‹6€DÙ‹V€FÙ‹F€EÙ‹V€FÙ‹V€FÙ‹V€FÙ‹F€EÙ“V€NÙ“€IÙ‹V€FÙ“€IÙ“6€LÙ‹F€Eá›ÐÙ“&€KÙ“vÐÙ‹V€FÙ$(£FÐ!Ù“€JÙ“€IÙ‹v€HÙ“F€MÙ‹F€EÙ“F€MÙ ›FÐÙ›6ÐÙ‹V€FÙ‹v€HÙ“&€KÙ“6€LÙ‹f€GÙ‹v€HÙ›6ÐÙ“vÐÙ›&ÐÙ›ÐÙ%)£VÐ"Ù“F€MÙ"&£&ÐÙ#›vÐá“f€OÙ‹v€HÙ $£ÐÙ,0«FÐ)Ù $£ÐÙ-1«VÐ*Ù$(£FÐ!ñ ‹&€CÙ‹6€DÙ
‹&€CÙ
‹&€CÙ‹6€DÙ
‹&€CÙ
‹&€CÙ
‹&€CÙ
‹&€CÙ	‹€BÙ‹6€DÙ‹6€DÙ“&€KÙ“&€KÙ“&€KÙ“6€LÙ“F€MÙ“6€LÙ“6€LÙ“F€MÙ“6€LÙ“6€LÙ“6€LÙ“6€LÙ“&€KÙ“F€MÙ“F€MÙ›6ÐÙ›6ÐÙ›6ÐÙ“€IÙ“€JÙ“€IÙ“€IÙ“€JÙ“€IÙ“€IÙ“€IÙ“€IÙ‹v€HÙ“€JÙ“€JÙ›ÐÙ›ÐÙ›ÐÙ“6€LÙ“F€MÙ“6€LÙ“6€LÙ“F€MÙ“6€LÙ“6€LÙ“6€LÙ“6€LÙ“&€KÙ“F€MÙ“F€MÙ›6ÐÙ›6ÐÙ›6ÐÙ“f€OÙ“vÐÙ“f€OÙ“f€OÙ“vÐÙ“f€OÙ“f€OÙ“f€OÙ“f€OÙ“V€NÙ“vÐÙ“vÐÙ"›fÐÙ"›fÐÙ"›fÐÙ“&€KÙ“6€LÙ“&€KÙ“&€KÙ“6€LÙ“&€KÙ“&€KÙ“&€KÙ“&€KÙ“€JÙ“6€LÙ“6€LÙ›&ÐÙ›&ÐÙ›&Ðóó!ð ò>ó ñ>r   r2   c                  ó6   — e Zd Z e«       Z e«       Z e«       Zy)Ú_TorchDispatchModeKeyN)r   r    r!   r   ÚFAKEÚPROXYÚ
FUNCTIONALr#   r   r   rÌ   rÌ   õ   s   „ Ù‹6€DÙ‹F€EÙ“�Jr   rÌ   c                 ó|   ‡— g } t         D ]   Š| j                  ˆfd„t        D «       «       Œ" dj                  | «      S )Nc              3  ó.   •K  — | ]  }d ‰› |› d�–— Œ y­w)z    z	 = auto()Nr#   )Ú.0ÚbcÚfks     €r   ú	<genexpr>z.codegen_per_backend_entries.<locals>.<genexpr>þ   s   øè ø€ ÒG¨b�4˜�t˜B˜4˜yÔ)ÑGùó   ƒú
)ÚFUNCTIONALITY_KEYSÚextendÚBACKEND_COMPONENTSÚjoin)ÚrrÔ   s    @r   Úcodegen_per_backend_entriesrÝ   û   s:   ø€ Ø€AÜ ò HˆØ	�‰ÓGÔ4FÔGÕGðHà�9‰9�Q‹<Ðr   zMissing zL from DispatchKey enum.  Here is the autogenerated list we expect to have:

c                ó‚   — | t         j                  t         j                  t         j                  t         j                  hv S r4   )r2   rm   rn   rk   rl   ©Údks    r   Úis_generic_dispatch_keyrá   7  s8   € ØÜ×-Ñ-Ü×:Ñ:Ü×-Ñ-Ü×9Ñ9ð	ð ð r   c                ó¾   — | t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  hv S r4   )r2   rq   r€   r�   rž   r­   r¼   rß   s    r   Úis_cuda_dispatch_keyrã   A  sJ   € ØÜ×ÑÜ×!Ñ!Ü×ÑÜ×!Ñ!Ü×$Ñ$Ü× Ñ ðð ð r   c                ó¾   — | t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  hv S r4   )r2   rw   r†   r•   r¤   r³   rÂ   rß   s    r   Úis_xpu_dispatch_keyrå   M  sH   € ØÜ�‰Ü× Ñ Ü×ÑÜ× Ñ Ü×#Ñ#Ü×Ñðð ð r   c                ó   — | t         v S r4   )ÚSTRUCTURED_DISPATCH_KEYSrß   s    r   Úis_structured_dispatch_keyrè   Z  s   € ØÔ)Ð)Ð)r   c                ó   — | t         v S r4   )ÚUFUNC_DISPATCH_KEYSrß   s    r   Úis_ufunc_dispatch_keyrë   ^  s   € àÔ$Ð$Ð$r   ÚcudaÚxpuc                  óF  — e Zd Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z	 e«       Z
 e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Zdd„Zedd„«       Zedd„«       Zed	d„«       Zy)
Ú
ScalarTypec                ó   — | j                   S r4   r5   r   s    r   r   zScalarType.__str__{  r7   r   c                ób   — t         j                  j                  «       D ]  \  }}|| k(  sŒ|c S  y r4   )rï   r;   r<   r>   s      r   Úmaybe_parsezScalarType.maybe_parse~  s5   € ä×*Ñ*×0Ñ0Ó2ò 	‰DˆAˆqØ�E‹zØ’ð	ð r   c                óH   — t         j                  | «      }|€
J d| › �«       ‚|S )Nzunknown dtype )rï   rò   )r?   Úmb_rs     r   rB   zScalarType.parse…  s/   € ä×%Ñ% eÓ,ˆØÐÐ9 >°%°Ð!9Ó9ÐØˆr   c                óÐ   — t        «       }| j                  d«      D ]G  }|t        v r|j                  t        |   «       Œ$|j	                  t
        j                  |«      «       ŒI |S )Nú, )r   ÚsplitÚDTYPE_CLASSESÚupdateÚaddrï   rB   )ÚvaluesÚdtypesr?   s      r   Ú	parse_setzScalarType.parse_set‹  sX   € ä)3«ˆØ—\‘\ $Ó'ò 	4ˆEØœÑ%Ø—‘œm¨EÑ2Õ3à—
‘
œ:×+Ñ+¨EÓ2Õ3ð		4ð
 ˆr   Nr   )r?   r   r   zScalarType | None)r?   r   r   rï   )rû   r   r   úOrderedSet[ScalarType])r   r    r!   r   ÚByteÚCharÚShortÚIntÚLongÚHalfÚFloatÚDoubleÚComplexHalfÚComplexFloatÚComplexDoubleÚBoolÚBFloat16ÚFloat8_e5m2ÚFloat8_e5m2fnuzÚFloat8_e4m3fnÚFloat8_e4m3fnuzÚFloat8_e8m0fnur   rÊ   rò   rB   rý   r#   r   r   rï   rï   g  sÁ   „ Ù‹6€DÙ‹6€DÙ‹F€EÙ
‹&€CÙ‹6€DÙ‹6€DÙ‹F€EÙ‹V€FÙ“&€KÙ“6€LÙ“F€MÙ‹6€DÙ‹v€HÙ“&€KÙ“f€OÙ“F€MÙ“f€OÙ“V€Nóð òó ðð òó ðð
 òó ñr   rï   z!dict[str, OrderedSet[ScalarType]]rø   ÚIntegralÚFloatingÚComplexÚAllÚAllAndComplexÚFloatingAndComplexc                  óˆ   — e Zd Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z	 e«       Z
dd„Zedd„«       Zy)ÚUfuncKeyc                ó   — | j                   S r4   r5   r   s    r   r   zUfuncKey.__str__À  r7   r   c                ó|   — t         j                  j                  «       D ]  \  }}|| k(  sŒ|c S  t        d| › �«      ‚)Nzunknown ufunc key )r  r;   r<   r=   r>   s      r   rB   zUfuncKey.parseÃ  sE   € ä×(Ñ(×.Ñ.Ó0ò 	‰DˆAˆqØ�E‹zØ’ð	ô Ð1°%°Ð9Ó:Ð:r   Nr   )r?   r   r   r  )r   r    r!   r   ÚCUDAFunctorÚCUDAFunctorOnOtherÚCUDAFunctorOnSelfÚ	CPUScalarÚ	CPUVectorÚ
ScalarOnlyÚGenericr   rÊ   rB   r#   r   r   r  r  ±  sR   „ ñ “&€KÙ›ÐÙ›Ðá“€IÙ“€Iñ “€JÙ‹f€Góð ò;ó ñ;r   r  c                  ó   — e Zd ZdZdZy)ÚDeviceCheckTyper   é   N)r   r    r!   ÚNoCheckÚ	ExactSamer#   r   r   r#  r#  Ë  s   „ Ø€GØ�Ir   r#  c                  ó6   — e Zd Z e«       Z e«       Z e«       Zy)ÚViewSchemaKindN)r   r    r!   r   ÚaliasingÚaliasing_inplaceÚnon_aliasingr#   r   r   r(  r(  Ð  s   „ Ù‹v€HÙ“vÐÙ“6�Lr   r(  c                  ó�  — e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   d
ed<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   d
ed<   ded<   ded<   ded<   ded <   ded!<   ded"<   ded#<   ded$<   e	 d.	 	 	 	 	 	 	 	 	 d/d&„«       Zd0d'„Zd0d(„Zed1d)„«       Z	ed1d*„«       Z
ed2d+„«       Zed3d,„«       Zed1d-„«       Zy%)4ÚNativeFunctionr   Ú	namespaceÚFunctionSchemaÚfuncÚboolÚ!use_const_ref_for_mutable_tensorsÚdevice_guardr#  Údevice_checkú
str | NoneÚpython_moduleÚcategory_overridezset[Variant]ÚvariantsÚmanual_kernel_registrationÚmanual_cpp_bindingr   Úloczlist[OperatorName]Úautogenzdict[UfuncKey, UfuncInnerLoop]Úufunc_inner_loopÚ
structuredzOperatorName | NoneÚstructured_delegateÚstructured_inheritszPrecompute | NoneÚprecomputedúset[str]Úcpp_no_default_argsÚis_abstractÚ&has_composite_implicit_autograd_kernelÚ4has_composite_implicit_autograd_nested_tensor_kernelÚ&has_composite_explicit_autograd_kernelÚ5has_composite_explicit_autograd_non_functional_kernelÚtagsNc                ó  — | j                  «       }|j                  d«      }t        |t        «      s
J d|› �«       ‚t	        j
                  |d¬«      }|j                  d¬«      }t        j                  |j                  «      }|j                  dg «      }	t        |	t        «      sJ ‚t        |	«      }
|j                  dd	«      }t        |t        «      sJ ‚|r|j                  j                  rJ d
«       ‚|j                  dd«      }t        |t        «      sJ ‚t        «       }|j                  d«      D ]Y  }|dk(  r |j!                  t"        j$                  «       Œ(|dk(  r |j!                  t"        j&                  «       ŒMt)        d|› �«      ‚ |j                  dd	«      }t        |t        «      s
J d|› �«       ‚|j                  dd	«      }t        |t        «      s
J d|› �«       ‚|j                  dd«      }t        |t        «      s
J d|› �«       ‚|j                  dd«      }|�t        |t        «      s
J d|› �«       ‚|�|t*        j,                  v s
J d|› �«       ‚|€t*        j.                  }n	t*        |   }|j                  dd	«      }t        |t        «      s
J d|› �«       ‚|j                  dd«      }|�t        |t        «      s
J d|› �«       ‚|�d|vsJ d«       ‚d}|�t0        j                  |«      }|j                  dd«      }|�t        |t        «      s
J d|› �«       ‚|�d|vsJ d«       ‚|j                  dd«      }|�t        |t        «      s
J d|› �«       ‚|�t"        j&                  |vsJ d«       ‚|j                  d d«      }|�t        |t        «      s
J d|› �«       ‚|j                  d!d«      }|�|du sJ ‚|rt2        j                  |«      nd}|j                  d"g «      }t        |t        «      r|g}t        |t        «      sJ ‚|dk(  rd#|v r|j5                  d#«       t        «       }|D ]5  }t7        |«      d$kD  sJ ‚||v r|j!                  |«       Œ)t)        d%|› �«      ‚ d$d&lm} |j                  d'd«      } | �t        | t<        «      sJ |«       ‚i }!d$}"| ��Æ|rJ d(«       ‚d	}#| j?                  «       D �]  \  }$}|$d)k(  rŒt        |$t        «      sJ d*|$› d+| › �«       ‚t        |t        «      sJ d,|› d+| › �«       ‚|$j                  d-«      D ]Å  }%t@        j                  |%jC                  «       «      }&|"dz  }"|r|&|v rŒ2|&tD        v sJ d.|&› d/|› d0�«       ‚t	        j
                  |d1¬2«      }|j                  d3¬«      }'tG        |j                  |xr tI        |&«      |'d4z   ¬5«      |!|&<   |&t@        jJ                  u sŒ¯||jM                  |«      k(  sŒÄd}#ŒÇ �Œ" |"dk(  r	|#rJ d6«       ‚|�s)|!jO                  «       t@        jJ                  hk7  �s|!t@        jJ                     jQ                  «       så|"dk7  sàJ d7|jM                  |«      › d8|!t@        jJ                     › d9�«       ‚|s°|€®t        |jL                  jL                  «      }(|(jS                  d:«      sA|(jU                  d;«      s0|j                  jV                  r%|j                  jY                  «       sJ d<|(› d=�«       ‚tG        |jM                  |«      d	tZ        ¬>«      |!t@        jJ                  <   |!D �)cg c]P  })|)t@        j\                  k(  s9|)t@        j^                  k(  s&|)t@        jJ                  k(  s|)t@        j`                  k(  r|)‘ŒR }*})t7        |*«      dk  s9t7        |*«      d?k(  r$t@        j^                  |*vrt@        j`                  |*v sJ d@«       ‚|j                  dAdB«      }+t        |+t        «      sJ ‚|+dBk(  rg n1|+j                  d«      D �,cg c]  },t0        j                  |,«      ‘Œ c},}-|j                  dCi «      }.i }/t        |.t        «      r6tb        j                  |.td        jf                  «      |/td        jf                  <   nŸt        |.t<        «      r�|.j?                  «       D ]m  \  }%}0|%d)k(  rŒt        |%t        «      s
J dD|%› �«       ‚t        |0t        «      s
J dE› �«       ‚td        j                  |%«      }1tb        j                  |0|1«      |/|1<   Œo nt)        dF|.› �«      ‚|/rP|sJ dG«       ‚d$dl4m5c m6}2 tn        D ]5  }&|&|!vs
J dH|&› �«       ‚tG        |2jq                  ||&«      dtZ        ¬5«      |!|&<   Œ7 |rd}3ny|!jO                  «       t@        jJ                  hk7  xrU |!jO                  «       t@        j`                  hk7  xr1 |!jO                  «       t@        jJ                  t@        j`                  hk7  }3t@        jJ                  |!v }4t@        j`                  |!v }5t@        j\                  |!v }6t@        j^                  |!v }7|!j?                  «       D �%�ci c]  \  }%}|%|jL                  |i“Œ }8}%}|j                  d)d«       |r
J dI|› �«       ‚|�tr        D ]  }9|9|!vrŒJ dJ|9› dK�«       ‚ tu        dSi d|“d|“d|“d|“d|“d|“d!|“dA|-“dC|/“d|“d|“d|“d |“d|“d|“dL|“d|
“dM|3“dN|4“dO|5“dP|6“dQ|7“d"|“dR|“Ž|8fS c c})w c c},w c c}}%w )Tzp
        Parse a NativeFunction from a dictionary as directly parsed
        from native_functions.yaml
        r0  znot a str: r$  )Únamespaced_entityÚ	max_levelÚaten)ÚdefaultrC  r2  Fz4see https://github.com/pytorch/pytorch/issues/145522r8  r&   rö   r'   zillegal variant r9  znot a bool: r:  r3  Tr4  Nzillegal device_check: r>  r?  ú::zbnamespace is not supported in structured delegate, using the same namespace as the native functionr@  zbnamespace is not supported in structured inherits, using the same namespace as the native functionr6  z&functions in modules cannot be methodsr7  rA  rI  Úpt2_compliant_tagr   zillegal tag )ÚcppÚdispatchzncannot specify both manual_kernel_registration and dispatch; with manual registration, dispatch has no effect!Ú__line__zillegal dispatch key 'z' in zillegal dispatch value 'ú,zDispatch key z of kernel z! is not a supported dispatch key.é   )rL  Úatz::native)Úkernelr>  Úcpp_namespacezSunnecessary dispatch table for this function; just delete the dispatch key entirelyzQunexpected name for singleton CompositeImplicitAutograd dispatch entry: expected z	 but got zR.  Rename your implementation to the expected name, then delete the dispatch tableÚnew_Ú_likez	expected zÂ to have a CompositeExplicitAutograd dispatch entry, but there was no dispatch table.  Factory functions should not have implicit dispatch as they should not be decomposed for __torch_dispatch__)r>  rX  é   aH  cannot specify more than one of CompositeExplicitAutograd, CompositeExplicitAutogradNonFunctional, or CompositeImplicitAutograd on a single kernel; each strictly subsumes the other.  If you wanted to provide an explicit autograd implementation, specify CompositeExplicitAutograd; otherwise specify CompositeImplicitAutograd onlyr<  r(   r=  z#ufunc_inner_loop key is not a str: z%ufunc_inner_loop value is not a str: z"ufunc_inner_loop not str or dict: zufunc must be structuredz2ufunc should not have explicit dispatch entry for zleftover entries: z+if structured_delegate, then must not have z* in dispatch dictionary (it is delegated!)r;  rD  rE  rF  rG  rH  r.  r#   );ÚcopyÚpopÚ
isinstancer   r   Úfrom_namespaced_entityÚget_cpp_namespacer/  rB   Úentity_nameÚlistÚsetr1  Ú	argumentsÚoutr÷   rú   r%   r&   r'   r=   r#  r;   r&  ÚOperatorNameÚ
PrecomputeÚappendÚlenÚtorchgen.apirQ  Údictr<   r2   ÚstripÚdispatch_keysÚBackendMetadatarè   rk   r6   ÚkeysÚsupports_symintÚ
startswithÚendswithÚtensor_optionsÚhas_tensor_argÚDEFAULT_KERNEL_NAMESPACErm   rn   rl   ÚUfuncInnerLoopr  r!  Útorchgen.api.ufuncÚapiÚufuncrê   Úschema_kernel_namerç   r-  ):Úeir;  Ú
valid_tagsÚignore_keysÚeÚfuncsÚnamespace_helperr.  r0  Úcpp_no_default_args_listrC  r2  Ú
variants_sr8  rA   r9  r:  r3  Údevice_check_sr4  r>  Ústructured_delegate_sr?  r@  r6  r7  Úprecomputed_dictrA  Útags_inprI  ÚtrQ  Úraw_dispatchrR  Únum_dispatch_keysÚ%redundant_composite_implicit_autogradÚksr@   Údispatch_keyÚkernel_namespacer6   ÚdÚcomposites_in_dispatchÚautogen_strÚxr<  Úraw_ufunc_inner_loopr=  ÚvoÚ	ufunc_keyry  rD  rE  rF  rG  rH  Úbackend_metadataÚkeys:                                                             r   Ú	from_yamlzNativeFunction.from_yamlX  s  € ð �G‰G‹Iˆà—‘�f“ˆÜ˜%¤Ô%Ð<¨°U°GÐ'<Ó<Ð%ä*×AÑAØ#¨qô
Ðð %×6Ñ6¸vÐ6ÓFˆ	Ü×#Ñ#Ð$4×$@Ñ$@ÓAˆà#$§5¡5Ð)>ÀÓ#CÐ ÜÐ2´DÔ9Ð9Ð9Ü!Ð":Ó;Ðà,-¯E©EØ/°ó-
Ð)ô Ð;¼TÔBÐBÐBá,Ø—~‘~×)Ò)ð ØFóÐ)ð —U‘U˜: zÓ2ˆ
Ü˜*¤cÔ*Ð*Ð*Ü!$£ˆØ×!Ñ! $Ó'ò 	=ˆAØ�JŠØ—‘œW×-Ñ-Õ.Ø�h’Ø—‘œWŸ^™^Õ,ä$Ð'7¸°sÐ%;Ó<Ð<ð	=ð &'§U¡UÐ+GÈÓ%OÐ"ÜÐ4´dÔ;ð 	
ØÐ5Ð6Ð7ó	
Ð;ð ŸU™UÐ#7¸Ó?ÐÜÐ,¬dÔ3ÐX°|ÐDVÐCWÐ5XÓXÐ3à—u‘u˜^¨TÓ2ˆÜ˜,¬Ô-ÐL°¸l¸^Ð/LÓLÐ-àŸ™˜~¨tÓ4ˆØÐ%¬°NÄCÔ)Hð 	
Ø˜.Ð)Ð*ó	
ÐHð Ð" n¼×8SÑ8SÑ&Sð	5à# NÐ#3Ð4ó	5ØSð Ð!Ü*×4Ñ4‰Lä*¨>Ñ:ˆLà—U‘U˜<¨Ó/ˆ
Ü˜*¤dÔ+ÐH¨|¸J¸<Ð-HÓHÐ+à !§¡Ð&;¸TÓ BÐØ$Ð,´
Ø!¤3ô1
ð 	1àÐ.Ð/Ð0ó	1ð 
ð %Ð,°Ð<QÑ0Qð 	
ð?ó	
ÐQð 48ÐØ Ð,Ü".×"4Ñ"4Ð5JÓ"KÐàŸe™eÐ$9¸4Ó@ÐØ"Ð*¬jÐ9LÌcÔ.Rð 	
ØÐ-Ð.Ð/ó	
ÐRð #Ð*¨dÐ:MÑ.Mð 	
ð?ó	
ÐMð
 Ÿ™˜o¨tÓ4ˆØÐ$¬
°=Ä#Ô(Fð 	
Ø˜-˜Ð)ó	
ÐFð Ð$¬¯©¸hÑ(Fð 	
Ø4ó	
ÐFð ŸE™EÐ"5°tÓ<ÐØ Ð(¬JÐ7HÌ#Ô,Nð 	
ØÐ+Ð,Ð-ó	
ÐNð Ÿ5™5 °Ó5ÐØÐ'¨:¸Ñ+=Ð=Ð=Ù<L”j×&Ñ&Ð'7Ô8ÐRVˆà—5‘5˜ Ó$ˆÜ�h¤Ô$Ø �zˆHÜ˜(¤DÔ)Ð)Ð)ð ˜ÒÐ#6¸*Ñ#DØ�O‰OÐ/Ô0ä›ˆØò 	9ˆAÜ�z“? QÒ&Ð&Ð&à�J‰Ø—‘˜•ä$ |°A°3Ð%7Ó8Ð8ð	9õ 	%à—u‘u˜Z¨Ó.ˆØÐ#¤z°,ÄÔ'EÐHÀqÓHÐEØ79ˆØ!"ÐØÑ#Ù1ð ð?óÐ1ð 5:Ð1Ø%×+Ñ+Ó-ó &E‘��AØ˜Ò#ØÜ! "¤cÔ*ð Ø,¨R¨D°°l°^ÐDóÐ*ô " !¤SÔ)ð Ø.¨q¨c°°|°nÐEóÐ)ð Ÿ™ #›ò E�AÜ#.×#4Ñ#4°Q·W±W³YÓ#?�LØ%¨Ñ*Ð%á" |°{Ñ'BØ Ø'¬=Ñ8ð Ø'¨ ~°[ÀÀð D;ð ;óÐ8ô (7×'MÑ'MØ Qô(Ð$ð (8×'IÑ'IÐRVÐ'IÓ'WÐ$ô .=Ø/×;Ñ;Ø#-ò $EÜ6°|ÓDØ'7¸*Ñ'Dô	.�H˜\Ñ*ð %¬×(MÑ(MÒMØ §¡¨$£Ó/à@DÑ=ò;Eð&EðX " QÒ&Ñ+Pððóð ò $Ø—=‘=“?¤{×'LÑ'LÐ&MÓMØœK×AÑAÑB×RÑRÔTØ$¨Ò)ð		ð dÐdg×dlÑdlÐmqÓdrÐcsð tØ#¤K×$IÑ$IÑJÐKð L7ð7ó	ð*ñ Ð 3Ð ;Ü�t—y‘y—~‘~Ó&ˆDà—‘ Ô'Ø—=‘= Ô)ð —N‘N×1Ò1Ø ŸN™N×9Ñ9Ô;ðð ˜D˜6ð ")ð )óð ô ?NØ—‘˜“¨5Ô@Xô?ˆH”[×:Ñ:Ñ;ð ö"
àØ”K×9Ñ9Ò9Ø”K×FÑFÒFØ”K×9Ñ9Ò9Ø”K×EÑEÒEò ð"
Ðð "
ô Ð)Ó*¨aÒ/ÜÐ&Ó'¨1Ò,ä×BÑBØ-ñ.ô ×AÑAØ)ñ*ð	
ðró	
ð 

ð" —e‘e˜I rÓ*ˆÜ˜+¤sÔ+Ð+Ð+ð ˜bÒ ñ à1<×1BÑ1BÀ4Ó1HÖI¨A”,×$Ñ$ QÕ'ÒIð 	ð  !Ÿu™uÐ%7¸Ó<ÐØÐÜÐ*¬CÔ0Ü1?×1EÑ1EØ$¤h×&6Ñ&6ó2ÐœX×-Ñ-Ò.ô Ð,¬dÔ3Ø-×3Ñ3Ó5ò R‘��2Ø˜
’?ØÜ! !¤SÔ)ÐTÐ-PÐQRÐPSÐ+TÓTÐ)Ü! "¤cÔ*ÐWÐ.SÐTUÐSVÐ,WÓWÐ*Ü$ŸN™N¨1Ó-�	Ü.<×.BÑ.BÀ2ÀyÓ.QÐ  Ò+ñRô !Ø4Ð5IÐ4JÐKóð ñ ÙÐ9Ð9Ó9�:÷ /Ð.ä 3ò �Ø#¨8Ñ3ð ØHÈÈÐWóÐ3ô *9Ø ×3Ñ3°D¸,ÓGØ#Ü":ô*�˜Ò&ð	ñ à‰Kð —‘“¤K×$IÑ$IÐ#JÑJò Ø—M‘M“OÜ×EÑEÐFñGòð —M‘M“Oä×9Ñ9Ü×EÑEðñð	 ô ×1Ñ1°XÐ=ð 	/ô ×=Ñ=ÀÐIð 	=ô ×1Ñ1°XÐ=ð 	/ô ×>Ñ>À(ÐJð 	>ð ;C¿.¹.Ó:J×K±$°!°Q˜A §	¡	¨1˜~Ñ-ÐKÐÑKð 	
�‰ˆj˜$ÔÙÐ.Ð*¨1¨#Ð.Ó.ˆuð Ð*Ü/ò �Ø (Ò*ð ØAÀ#Àð G)ð )óÐ*ðô ò Ùðá2Sðñ "ðñ &ð	ñ
 %8ðñ %8ðñ (ðñ  ðñ "2ðñ ,Fðñ $6ðñ ,ðñ #4ðñ *ðñ *ðñ  ð!ñ" %8ð#ñ$ (ð%ñ& 8^ð'ñ( Fzð)ñ* 8^ð+ñ, G|ð-ñ. ð/ñ0 $ð1ð4 ð7
ð 	
ùòk"
ùò> JùóN Ls   Ü+Ak3àk8é
k=c                óP   — | j                   rJ d«       ‚| j                  sJ d«       ‚y )NzMThis function is structured, but there was no valid functional variant of it.z’This function delegates to another structured out function, but no valid function was found (the delegate may not exist, or it has the wrong type)©r>  r?  r   s    r   Úvalidate_unstructuredz$NativeFunction.validate_unstructuredÊ  s;   € ð —?’?ð 	
ð1ó	
Ð"ð ×'Ò'ð 	
ðeó	
Ñ'r   c                ó  — | j                   j                  j                  r%| j                  t        j
                  hk(  sJ d«       ‚| j                  rE| j                   j                  «       t        j                  k(  sJ d«       ‚| j                  sJ d«       ‚| j                  rE| j                   j                  «       t        j                  k7  sJ d«       ‚| j                  sJ d«       ‚| j                  r| j                  rJ d«       ‚| j                   j                  «       D �ch c]  }|j                  €Œ|j                  ’Œ }}t        j                  | j                   |«      }t#        |«      dk(  s
J d|› �«       ‚| j$                  �| j                  sJ d«       ‚t'        | j                   j                  «      j)                  d	«      r$| j*                  t,        j.                  k(  sJ d
«       ‚dt'        | j                   j                  «      v sÁdt'        | j                   j                  «      v s0t1        d„ | j                   j                  j2                  D «       «      rLdt'        | j                   j                  «      vr+t'        | j                   j                  j                  «      dvs$| j                   j                  j5                  «       r3d| j6                  v s$J t'        | j                   j                  «      «       ‚y y c c}w )NzëNative functions with out arguments MUST be declared with only function variant; e.g., variants: function; otherwise you will tickle a Python argument binding bug (which usually manifests itself as the result variable being undefined.)zYPut structured field on the out= variant of a function; did you mean structured_delegate?z:device_guard: False is not respected by structured kernelszQstructured_delegate field not allowed on out= functions; did you mean structured?z?Cannot have both structured and structured_delegate on functionr   zInvalid cpp_no_default_args: z4structured_inherits must also imply structured: TrueÚ_foreachzsforeach kernels fall back to slow path when tensor are on different devices, device_check not allowed to be enabledÚrandÚdropoutc              3  ó8   K  — | ]  }d |j                   v –— Œ y­w)rž  Nr5   ©rÒ   Úargs     r   rÕ   z/NativeFunction.__post_init__.<locals>.<genexpr>  s   è ø€ ò Ø25˜	 S§X¡XÔ-ñùs   ‚Úbackward)Ú_cudnn_init_dropout_stateÚnondeterministic_seeded)r0  rd  re  r8  r%   r&   r>  ÚkindÚ
SchemaKindr3  r?  Úschema_order_argumentsrN  r6   rc  Ú
differencerC  ri  r@  r   rq  r4  r#  r%  ÚanyÚflat_allÚhas_generator_argrI  )r   ÚaÚdefaulted_argumentsÚinvalid_argss       r   Ú__post_init__zNativeFunction.__post_init__Ý  sš  € Ø�9‰9×Ñ×"Ò"Ø—=‘=¤W×%5Ñ%5Ð$6Ò6ð ð[óÐ6ð �?Š?Ø—9‘9—>‘>Ó#¤z§~¡~Ò5ð ðKóÐ5ð ×$Ò$ð ØLóÐ$ð ×#Ò#Ø—9‘9—>‘>Ó#¤z§~¡~Ò5ð ð>óÐ5ð ×$Ò$ð ØLóÐ$ð
 —O’O¨×(@Ò(@ð 	
ØMó	
ÐAð !ŸI™I×<Ñ<Ó>ö
ØÀ!Ç)Á)ÑBWˆA�F‹Fð
Ðð 
ô —~‘~ d×&>Ñ&>Ð@SÓTˆÜ�<Ó  AÒ%ÐUÐ)FÀ|ÀnÐ'UÓUÐ%Ø×#Ñ#Ð/Ø—?’?ð ØFó�?ô ˆt�y‰y�~‰~Ó×)Ñ)¨*Ô5Ø×$Ñ$¬×(?Ñ(?Ò?ð ð9óÐ?ð ”c˜$Ÿ)™)Ÿ.™.Ó)Ñ)ð ¤ T§Y¡Y§^¡^Ó!4Ñ4Üñ Ø9=¿¹×9LÑ9L×9UÑ9Uôô ð
 ¤c¨$¯)©)¯.©.Ó&9Ñ9Ü˜Ÿ	™	Ÿ™×+Ñ+Ó,Ð4QÑQà�y‰y×"Ñ"×4Ñ4Ô6à,°·	±	Ñ9ÐN¼3¸t¿y¹y¿~¹~Ó;NÓNÑ9ð 7ùò=
s   Ä#LÄ5Lc                óŠ   — | j                   xs | j                  xs | j                  xs | j                   xr | j                  S r4   )rE  rG  rH  rF  r   s    r   Úhas_composite_kernelz#NativeFunction.has_composite_kernel  sO   € ð ×7Ñ7ò JØ×:Ñ:òJà×IÑIò
ð
 ×7Ñ7ò JØ×IÑIð	
r   c                ó†  — | j                   j                  }t        |«      dkD  xr t        d„ |D «       «      }d| j                  v xrF t        | j                   j                  «      dk7  xr" t        | j                   j                  «      dk7  }t        d„ | j                   j                  «       D «       «      }|xs |xs |S )Nr   c              3  ój   K  — | ]+  }|j                   d uxr |j                   j                   –— Œ- y ­wr4   ©Ú
annotationÚis_write©rÒ   rÜ   s     r   rÕ   z,NativeFunction.is_view_op.<locals>.<genexpr>*  s3   è ø€ ò 5
ØGHˆA�L‰L Ð$ÒB¨Q¯\©\×-BÑ-BÐ)BÓBñ5
ùs   ‚13Úinplace_viewÚresize_Ú
resize_as_c              3  ól   K  — | ],  }|j                   d uxr d|j                   j                  v –— Œ. y ­w)NÚ*)rµ  Úalias_set_after)rÒ   Úinps     r   rÕ   z,NativeFunction.is_view_op.<locals>.<genexpr>3  s8   è ø€ ò 
àð �N‰N $Ð&ÒP¨3°#·.±.×2PÑ2PÐ+PÓPñ
ùs   ‚24)r0  Úreturnsri  r©  rI  r   r6   r§  )r   ÚretsÚis_non_mutating_viewÚis_inplace_viewÚis_wildcard_views        r   Ú
is_view_opzNativeFunction.is_view_op'  s¹   € à�y‰y× Ñ ˆÜ" 4›y¨1™}ò  
´ñ 5
ØLPô5
ó 2
Ðð
 ˜dŸi™iÐ'ò 4Ü�D—I‘I—N‘NÓ# yÑ0ò4ä�D—I‘I—N‘NÓ# |Ñ3ð 	ô
 ñ 
à—y‘y×7Ñ7Ó9ô
ó 
Ðð $ÒJ ÒJÐ:JÐJr   c                ó  — | j                   rJ| j                  j                  j                  j                  r d| j                  v sJ ‚t
        j                  S | j                   rt
        j                  S t
        j                  S )Nr¸  )	rÄ  r0  r6   ÚinplacerI  r(  r*  r)  r+  r   s    r   Úview_schema_kindzNativeFunction.view_schema_kind9  s\   € à�?Š?˜tŸy™yŸ~™~×2Ñ2×:Ò:Ø! T§Y¡YÑ.Ð.Ð.Ü!×2Ñ2Ð2Ø�?Š?Ü!×*Ñ*Ð*ä!×.Ñ.Ð.r   c                óV   — | j                   j                  j                  j                  S r4   )r0  r6   Úbaser   s    r   Ú	root_namezNativeFunction.root_nameC  s   € à�y‰y�~‰~×"Ñ"×'Ñ'Ð'r   c                ó:   — | j                   xs | j                  d uS r4   r™  r   s    r   Úpart_of_structured_groupz'NativeFunction.part_of_structured_groupG  s   € à�‰ÒF $×":Ñ":À$Ð"FÐFr   r4   )
r{  zdict[str, object]r;  r   r|  rB  r}  zset[DispatchKey] | Noner   zMtuple[NativeFunction, dict[DispatchKey, dict[OperatorName, BackendMetadata]]]©r   ÚNone©r   r1  )r   r(  r   )r   r    r!   r"   rÊ   r—  rš  r¯  Úpropertyr±  rÄ  rÇ  rÊ  rÌ  r#   r   r   r-  r-  â  s}  … ð ƒNð Óð (,Ó+ð Óð "Ó!ð Óð "Ó!ð Óð
 !%Ó$ð Óð 
ƒMð  Óð 5Ó4ð Óð -Ó,ð $Ó#ð #Ó"ð "Ó!ð Óð -1Ó0Ø:>Ó>Ø,0Ó0Ø;?Ó?ð ƒNð ð
 04ð	o
Øðo
àðo
ð ðo
ð -ð	o
ð
 
Wòo
ó ðo
ób

ó&=Oð~ ò
ó ð
ð òKó ðKð" ò/ó ð/ð ò(ó ð(ð òGó ñGr   r-  c                  óR   — e Zd Z e«       Z e«       Z e«       Z e«       Z e«       Zy)r¦  N)	r   r    r!   r   Ú
functionalrÆ  re  ÚmutableÚscratchr#   r   r   r¦  r¦  L  s%   „ Ù“€JÙ‹f€GÙ
‹&€CÙ‹f€GÙ‹f�Gr   r¦  c                  ó„   — e Zd ZU ded<   ded<   ded<   ded<   edd„«       Zdd„Zdd	„Zdd
„Zedd„«       Z	e
dd„«       Zy)ÚNativeFunctionsGroupr-  rÒ  úNativeFunction | NonerÆ  rÓ  re  c                ó.   — | j                   j                  S r4   )re  r>  r   s    r   r>  zNativeFunctionsGroup.structureda  s   € ð �x‰x×"Ñ"Ð"r   c           
     óÆ	  — | j                   j                  j                  «       }| j                  «       D ]¤  }||j                  j                  «       k7  r)t	        d|› d|j                  j                  «       › �«      ‚| j
                  |j                  k7  sŒct	        d| j                  j                  j                  › d|j                  j                  › �«      ‚ | j                   j                  j                  «       t        j                   k(  sJ ‚| j                  j                  j                  «       t        j                  k(  sJ ‚| j                   j                  | j                  j                  k(  sJ ‚| j                  �f| j                  j                  j                  «       t        j                  k(  sJ ‚| j                  j                  | j                   j                  k(  sJ ‚| j                  �œ| j                  j                  j                  «       t        j                  k(  sJ ‚| j                  j                  | j                   j                  k(  sJ ‚| j                   j                  j                  j                  j                  sJ ‚| j
                  �r	| j                  j                  s| j                  j                   rJ ‚| j                   j"                  | j                  j                  j                  k(  s_J | j                   j                  j                  › d| j                   j"                  › d| j                  j                  j                  › �«       ‚| j                  �9| j                  j"                  | j                  j                  j                  k(  sJ ‚t%        | j                  «       D �cg c]0  }d|j&                  v sŒt)        |j                  j                  «      ‘Œ2 c}«      }dj+                  d	„ |D «       «      }t-        «       }| j                  «       D ]$  }|j/                  d
„ |j0                  D «       «       Œ& dj+                  d„ t%        |«      D «       «      }t3        |«      dk(  r?t3        |«      dkD  r1t5        d|› d|› dt)        j                  j                  «      › �«      ‚||k7  rt5        d|› d|› d|› d�«      ‚y c c}w )Nz_NativeFunctionsGroup constructed from two NativeFunctions that don't have matching signatures: ú != zMNativeFunctionsGroup constructed from structured and unstructured functions: ú and z delegates to z but its actual delegate is Ú	generatedrö   c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr4   ©r   ©rÒ   r‘  s     r   rÕ   z5NativeFunctionsGroup.__post_init__.<locals>.<genexpr>“  s   è ø€ Ò%D°¤c¨!§fÑ%Dùó   ‚c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr4   rÞ  )rÒ   Úops     r   rÕ   z5NativeFunctionsGroup.__post_init__.<locals>.<genexpr>–  s   è ø€ Ò)F°b¬#¨b¯'Ñ)Fùrà  c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr4   rÞ  rß  s     r   rÕ   z5NativeFunctionsGroup.__post_init__.<locals>.<genexpr>—  s   è ø€ ò /
ØŒC��Fñ/
ùrà  r   z,The codegen expects to be able to generate 'zv'. In order to generate them however, we expect them to be called out explicitly in the yaml. Please add an 'autogen: z' line to the entry for z*'. To do so, it expects a line: 'autogen: z'. Instead, it found 'autogen: ú')rÒ  r0  Ú	signatureÚ	functionsr=   r>  rÌ  re  r6   r¥  r¦  r.  rÆ  rÓ  Úfunctional_overloadrE  rF  r?  ÚsortedrI  r   rÛ   rc  rù   r<  ri  ÚRuntimeError)r   Útest_sigÚfÚgenerated_fnsÚgenerated_fns_strÚexpected_generated_fnsÚexpected_generated_fns_strs          r   r¯  z"NativeFunctionsGroup.__post_init__f  s&  € Ø#'§?¡?×#7Ñ#7×#AÑ#AÓ#CˆØ—‘Ó!ò 	ˆAØ˜1Ÿ6™6×+Ñ+Ó-Ò-Ü$ð<Ø<D¸:ÀTÈ!Ï&É&×JZÑJZÓJ\ÐI]ð_óð ð
 �‰ !×"<Ñ"<Ó<Ü$ð"Ø"&§(¡(§-¡-×"4Ñ"4Ð!5°U¸1¿6¹6¿;¹;¸-ðIóð ð	ð �‰×#Ñ#×(Ñ(Ó*¬j×.CÑ.CÒCÐCÐCØ�x‰x�}‰}×!Ñ!Ó#¤z§~¡~Ò5Ð5Ð5Ø�‰×(Ñ(¨D¯H©H×,>Ñ,>Ò>Ð>Ð>Ø�<‰<Ð#Ø—<‘<×$Ñ$×)Ñ)Ó+¬z×/AÑ/AÒAÐAÐAØ—<‘<×)Ñ)¨T¯_©_×-FÑ-FÒFÐFÐFà�<‰<Ð#Ø—<‘<×$Ñ$×)Ñ)Ó+¬z×/AÑ/AÒAÐAÐAØ—<‘<×)Ñ)¨T¯_©_×-FÑ-FÒFÐFÐFà—?‘?×'Ñ'×,Ñ,×1Ñ1×EÒEÐEÐEà�?‹?ð —H‘H×CÒCØŸ™×UÒUððVð —?‘?×6Ñ6¸$¿(¹(¿-¹-×:LÑ:LÒLð Ø—?‘?×'Ñ'×,Ñ,Ð-¨^¸D¿O¹O×<_Ñ<_Ð;`ð a.Ø.2¯h©h¯m©m×.@Ñ.@Ð-AðCóÐLð �|‰|Ð'Ø—|‘|×7Ñ7¸4¿8¹8¿=¹=×;MÑ;MÒMÐMÐMäØ'+§~¡~Ó'7ÖQ !¸;È!Ï&É&Ò;PŒS�—‘—‘ÕÒQó
ˆð !ŸI™IÑ%D°mÔ%DÓDÐÜ+.«5ÐØ—‘Ó!ò 	GˆAØ"×)Ñ)Ñ)F¸A¿I¹IÔ)FÕFð	Gà%)§Y¡Yñ /
Ü"Ð#9Ó:ô/
ó &
Ð"ô Ð%Ó&¨!Ò+´°MÓ0BÀQÒ0FÜØ>Ð?PÐ>Qð R,à,=Ð+>Ð>VÔWZÐ[\×[aÑ[a×[fÑ[fÓWgÐVhðjóð ð
 &Ð):Ò:ÜØ>Ð?PÐ>Qð R;Ø;LÐ:Mð N0Ø0JÐ/KÈ1ðNóð ð ;ùò Rs   Ï SÏ!Sc                óJ   — | j                   j                  j                  «       S r4   )re  r0  rå  r   s    r   rå  zNativeFunctionsGroup.signature§  s   € Ø�x‰x�}‰}×&Ñ&Ó(Ð(r   c              #  ó®   K  — | j                   –— | j                  –— | j                  �| j                  –— | j                  �| j                  –— y y ­wr4   )rÒ  re  rÆ  rÓ  r   s    r   ræ  zNativeFunctionsGroup.functionsª  sF   è ø€ Ø�o‰oÒØ�h‰hŠØ�<‰<Ð#Ø—,‘,ÒØ�<‰<Ð#Ø—,‘,Óð $ùs   ‚AAc                ó.   — | j                   j                  S r4   )rÒ  rÊ  r   s    r   rÊ  zNativeFunctionsGroup.root_name²  s   € à�‰×(Ñ(Ð(r   c                ór  — | sJ ‚t        | «      dk(  ry t        | «      } | j                  t        j                  d «      }| j                  t        j
                  d «      }| j                  t        j                  d «      }| j                  t        j                  d «      }| rJ ‚|€J ‚|€y t        ||||¬«      S )Nr$  )rÒ  rÆ  rÓ  re  )	ri  rk  r]  r¦  rÒ  rÆ  rÓ  re  rÖ  )rŽ  rÒ  rÆ  rÓ  re  s        r   Ú	from_dictzNativeFunctionsGroup.from_dict¶  s¬   € áˆˆqÜˆq‹6�QŠ;ØÜ�‹GˆØ—U‘Uœ:×0Ñ0°$Ó7ˆ
Ø—%‘%œ
×*Ñ*¨DÓ1ˆØ—%‘%œ
×*Ñ*¨DÓ1ˆØ�e‰e”J—N‘N DÓ)ˆÙˆˆuØÐ%Ð%Ð%ð ˆ;Øä#Ø!ØØØô	
ð 	
r   NrÏ  rÍ  ©r   r/  )r   úIterator[NativeFunction]r   )rŽ  z dict[SchemaKind, NativeFunction]r   zNativeFunctionsGroup | None)r   r    r!   r"   rÐ  r>  r¯  rå  ræ  rÊ  rÊ   rô  r#   r   r   rÖ  rÖ  Z  sd   … àÓØ"Ó"Ø"Ó"Ø	Óàò#ó ð#ó?óB)óð ò)ó ð)ð ò
ó ñ
r   rÖ  c                  ó4   — e Zd ZU ded<   ded<   ded<   dd„Zy)	rn  r   rW  r1  r>  rX  c                ó   — d| j                   v S )NÚ_symint)rW  r   s    r   rp  zBackendMetadata.supports_symintâ  s   € Ø˜DŸK™KÐ'Ð'r   NrÏ  )r   r    r!   r"   rp  r#   r   r   rn  rn  Ï  s   … ð ƒKð
 Óð Óô(r   rn  c                  ó>   — e Zd ZU ded<   ded<   ded<   ed	d„«       Zy)
rv  r   r6   rþ   Úsupported_dtypesr  r”  c                óæ   — | j                  dd«      \  }}|d   dk(  sJ ‚|d   dk(  sJ ‚t        «       }|dd j                  d«      D ]  }|t        j                  |«      z  }Œ t	        |||¬«      S )	Nú r$  r   ú(éÿÿÿÿú)rö   )r6   rû  r”  )r÷   r   rï   rý   rv  )r?   r”  r6   Úsupported_dtypes_strrû  r@   s         r   rB   zUfuncInnerLoop.parseî  s’   € à%*§[¡[°°aÓ%8Ñ"ˆÐ"Ø# AÑ&¨#Ò-Ð-Ð-Ø# BÑ'¨3Ò.Ð.Ð.Ü3=³<ÐØ% a¨Ð+×1Ñ1°$Ó7ò 	8ˆAØ¤
× 4Ñ 4°QÓ 7Ñ7Ñð	8äØÐ(8ÀIô
ð 	
r   N)r?   r   r”  r  r   rv  )r   r    r!   r"   rÊ   rB   r#   r   r   rv  rv  æ  s'   … à
ƒIØ,Ó,ð Óàò	
ó ñ	
r   rv  c                  ó†   — e Zd ZU ded<   ded<   ded<   ded<   ded<   e	 	 	 	 	 	 dd	„«       Zdd
„Zdd„Z	 	 	 	 dd„Zdd„Z	y)ÚBackendIndexr2   rŒ  r1  Úuse_out_as_primaryr3  Úexternalz#dict[OperatorName, BackendMetadata]Úindexc                óœ   — |j                  «       D ]9  \  }}|j                  «       D ]!  \  }}|| |   vsJ d|› d|› �«       ‚|| |   |<   Œ# Œ; y )Nzduplicate operator z for dispatch key )r<   )Úparent_indexÚchild_indexr@   rA   Úop_nameÚmetadatas         r   Ú
grow_indexzBackendIndex.grow_index  st   € ð
  ×%Ñ%Ó'ò 	4‰DˆAˆqØ%&§W¡W£Yò 4Ñ!�˜Ø l°1¡oÑ5ð Ø)¨'¨Ð2DÀQÀCÐHóÐ5ð ,4�˜Q‘ Ò(ñ	4ñ	4r   c                óJ   — | j                   r|j                  S |j                  S r4   )r  re  rÒ  )r   Úgs     r   ÚprimaryzBackendIndex.primary  s   € Ø×"Ò"Ø—5‘5ˆLà—<‘<Ðr   c                ó,   — | j                  |«      }|d uS r4   )Ú
get_kernel)r   r  Úms      r   Ú
has_kernelzBackendIndex.has_kernel#  s   € Ø�O‰O˜AÓˆØ˜ˆ}Ðr   c                ó  — t        |t        «      r|}n-t        |t        «      r| j                  |«      }nt	        |«       j
                  j                  | j                  vry | j                  |j
                  j                     S r4   )r^  r-  rÖ  r  r
   r0  r6   r  )r   r  rë  s      r   r  zBackendIndex.get_kernel'  s`   € ô �aœÔ(Ø‰AÜ˜Ô/Ô0Ø—‘˜Q“‰Aä˜ŒOØ�6‰6�;‰;˜dŸj™jÑ(ØØ�z‰z˜!Ÿ&™&Ÿ+™+Ñ&Ð&r   c                óL   — | j                   rt        | j                  «      › d�S y )NÚNativeFunctions)r  r   rŒ  r   s    r   Únative_function_class_namez'BackendIndex.native_function_class_name4  s'   € Ø�=Š=Ü˜$×+Ñ+Ó,Ð-¨_Ð=Ð=ð
 r   N)r  ú6dict[DispatchKey, dict[OperatorName, BackendMetadata]]r	  r  r   rÎ  )r  rÖ  r   r-  )r  ú%NativeFunction | NativeFunctionsGroupr   r1  )r  r  r   zBackendMetadata | None)r   r5  )
r   r    r!   r"   rÊ   r  r  r  r  r  r#   r   r   r  r    ss   … àÓð Óð ÓàƒNà.Ó.àð	4ØLð	4àKð	4ð 
ò	4ó ð	4ó óð'Ø6ð'à	ó'ôr   r  c                  óþ   — e Zd ZU ded<   ded<   ded<   edd„«       Zdd„Z ej                  d	«      Z	e
dd
„«       Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zddddœ	 	 	 	 	 	 	 d d„Zd!d„Zd"d„Zedd„«       Zdd„Zd#d„Zy)$r/  rf  r6   Ú	Argumentsrd  útuple[Return, ...]r¿  c                ó\   ‡— dd„Št        ˆfd„| j                  j                  D «       «      S )Nc                óH   — | j                   €y| j                   j                  S ©NFr´  )r¡  s    r   r¶  z+FunctionSchema.is_mutable.<locals>.is_write  s   € Ø�~‰~Ð%ØØ—>‘>×*Ñ*Ð*r   c              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­wr4   r#   )rÒ   r¬  r¶  s     €r   rÕ   z,FunctionSchema.is_mutable.<locals>.<genexpr>†  s   øè ø€ Ò@ 1‘8˜A—;Ñ@ùrÖ   )r¡  ÚArgumentr   r1  )r©  rd  rª  )r   r¶  s    @r   Ú
is_mutablezFunctionSchema.is_mutable}  s%   ø€ ó	+ô Ó@¨¯©×(?Ñ(?Ô@Ó@Ð@r   c                ó¨   — t        j                  | j                  j                  | j                  j                  | j                  j
                  «      S r4   )Ú	itertoolsÚchainrd  Úflat_positionalÚflat_kwarg_onlyre  r   s    r   r§  z%FunctionSchema.schema_order_argumentsˆ  s:   € Ü�‰Ø�N‰N×*Ñ*Ø�N‰N×*Ñ*Ø�N‰N×Ñó
ð 	
r   z3(?P<name>[^\(]+)\((?P<args>.*)\) -> (?P<returns>.*)c                óR  — t         j                  j                  | «      }t        |«      dk(  s
J d| › �«       ‚|d   \  }}}t        j                  |«      }t        j                  |«      }t        |«      }t        |||¬«      }t        |«      | k(  sJ t        |«      › d| › �«       ‚|S )Nr$  zInvalid function schema: r   ©r6   rd  r¿  rÚ  )	r/  Údecl_reÚfindallri  rf  rB   r  Úparse_returnsr   )	r0  ÚdeclsÚopsÚargsÚreturn_declr6   rd  r¿  rÜ   s	            r   rB   zFunctionSchema.parse‘  s¦   € ô ×&Ñ&×.Ñ.¨tÓ4ˆÜ�5‹z˜QŠÐBÐ";¸D¸6Ð BÓBˆØ!& q¡ÑˆˆT�;Ü×!Ñ! #Ó&ˆÜ—O‘O DÓ)ˆ	Ü Ó,ˆÜ °	À7ÔKˆÜ�1‹v˜Š~Ð4¤# a£& ¨¨d¨VÐ4Ó4ˆ~Øˆr   c                ó:   — t        d„ | j                  D «       «      S )Nc              3  ód   K  — | ](  }|j                   �|j                   j                  r|–— Œ* y ­wr4   r´  r·  s     r   rÕ   z5FunctionSchema.returns_are_aliased.<locals>.<genexpr>   s.   è ø€ ò 
àØ�|‰|Ð'¨A¯L©L×,AÒ,Aô ñ
ùs   ‚.0)r©  r¿  r   s    r   Úreturns_are_aliasedz"FunctionSchema.returns_are_aliasedž  s    € äñ 
à—\‘\ô
ó 
ð 	
r   c                óJ  ‡‡— t        | j                  j                  | j                  «      D ]%  \  }Š|j                  ‰j                  k(  rŒ J d«       ‚ | j                  j
                  D ]3  Št        ˆfd„| j                  D «       «      sŒ"J dt        | «      › �«       ‚ t        | j                  j                  «      | j                  j                  D �cg c]  }|j                  dk(  sŒ|‘Œ c}z   }| j                  D �cg c]&  }|j                  �|j                  j                  r|‘Œ( }}| j                  D �cg c]&  }|j                  �|j                  j                  s|‘Œ( }}t        |«      dk(  s!t        |«      dk(  sJ dt        | «      › �«       ‚|D ]  Št        ˆfd„|D «       «      rŒJ d«       ‚ | j                  j                  r«t        d	„ | j                  j                  D «       «      r t        | j                  «      dk(  sJ d
«       ‚net        | j                  j                  D �cg c]  }|j                  j                  d«      s|‘Œ! c}«      t        | j                  «      k(  sJ d«       ‚| j                  j                  j                  rä| j                  j                  }|r6|j                   j                  r |j                   j                  j                  sJ ‚|j                   j"                  t%        t&        j(                  «      k(  rJt        | j                  «      dk(  r0| j                  d   j                  |j                   j                  k(  sJ ‚t        | j                  «      dk(  sJ ‚| j                  j*                  �4| j-                  «       t.        j0                  k(  sJ dt        | «      › �«       ‚| j3                  «       r5| j-                  «       t.        j0                  k(  sJ dt        | «      › �«       ‚y y c c}w c c}w c c}w c c}w )NzsOut arguments must have matching return Tensor; furthermore, the ith-argument needs to correspond to the ith returnc              3  óP   •K  — | ]  }‰j                   |j                   k(  –— Œ y ­wr4   ©rµ  ©rÒ   rÜ   r¬  s     €r   rÕ   z/FunctionSchema.__post_init__.<locals>.<genexpr>¯  s   øè ø€ ÒN¸A˜1Ÿ<™<¨1¯<©<Õ7ÑNùó   ƒ#&z^If you have a schema with mutable positional args, we expect them to not be returned. schema: r   r   zYNativeFunctions must have either only mutable returns, or only immutable returns. Found: c              3  óP   •K  — | ]  }‰j                   |j                   k(  –— Œ y ­wr4   r6  )rÒ   r¡  Úrets     €r   rÕ   z/FunctionSchema.__post_init__.<locals>.<genexpr>Ì  s   øè ø€ ÒP¸C�s—~‘~¨¯©Õ7ÑPùr8  z‡All mutable returns must be aliased either to a keyword argument, or to "self". Did you forget to mark an out argument as keyword-only?c              3  óh   K  — | ]*  }|j                   t        t        j                  «      k7  –— Œ, y ­wr4   )ÚtypeÚBaseTypeÚBaseTyÚTensor©rÒ   r¬  s     r   rÕ   z/FunctionSchema.__post_init__.<locals>.<genexpr>Ö  s"   è ø€ ÒQ¸�1—6‘6œX¤f§m¡mÓ4Õ4ÑQùó   ‚02z3out= ops that accept tensor lists as out arguments Ú	_scratch_zMMust return as many arguments as there are out arguments, or no return at allr$  z·Found an operator that is not functional or out variant, but has tensor options arguments.This is not allowed- tensor options arguments are only allowed for factory functions.schema: z³Found an operator that is not functional, but its overload contains the string 'functional'.This is a special keyword in the codegen, please use a different overload name.schema: )Úziprd  re  r¿  rµ  Úpost_self_positional_mutabler©  r   rb  r&  r6   r¶  ri  rq  rÆ  Úself_argÚargumentr<  r=  r>  r?  rs  r¥  r¦  rÒ  Úis_functional_fn)r   r¡  Úout_and_selfr:  Úmutable_returnsÚimmutable_returnsÚself_ar¬  s      `   @r   r¯  zFunctionSchema.__post_init__¦  s×  ù€ Ü˜DŸN™N×.Ñ.°·±Ó=ò 	‰HˆC�Ø—>‘> S§^¡^Ó3ð ðIóÐ3ð	ð —‘×<Ñ<ò 	ˆAÜÓNÀÇÁÔNÕNð ØpÔqtÐuyÓqzÐp{Ð|óÐNð	ô ˜DŸN™N×.Ñ.Ó/ØŸ>™>×9Ñ9ö3
Ø¸S¿X¹XÈÓ=OŠCò3
ñ 
ˆð
 —|‘|ö
àØ�~‰~Ð)¨c¯n©n×.EÒ.Eò ð
ˆð 
ð —|‘|ö
àØ�~‰~Ð%¨S¯^©^×-DÒ-Dò ð
Ðð 
ô �?Ó# qÒ(¬CÐ0AÓ,BÀaÒ,Gð 	
ØgÔhkÐlpÓhqÐgrÐsó	
ÐGð #ò 	ˆCÜÓPÀ<ÔPÕPð ðJóÐPð	ð
 �>‰>×Òô ÑQ¸d¿n¹n×>PÑ>PÔQÔQÜ˜4Ÿ<™<Ó(¨AÒ-ð ØIóÐ-ð cô ð $(§>¡>×#5Ñ#5öàØ"Ÿx™x×2Ñ2°;Ô?ò òóô ˜Ÿ™Ó&ò'ð ð dóð 'ð �9‰9�>‰>×!Ò!Ø—^‘^×,Ñ,ˆFáØ—O‘O×.Ò.Ø—O‘O×.Ñ.×7Ò7ðð8ð �‰×#Ñ#¤x´·±Ó'>Ò>ô ˜Ÿ™Ó%¨Ò*ØŸ™ Q™×2Ñ2°f·o±o×6PÑ6PÒPððQô ˜4Ÿ<™<Ó(¨AÒ-Ð-Ð-à�>‰>×(Ñ(Ð4Ø—9‘9“;¤*×"7Ñ"7Ò7ð ðä˜t›9˜+ð'óÐ7ð
 × Ñ Ô"Ø—9‘9“;¤*×"7Ñ"7Ò7ð ðä˜t›9˜+ð'óÑ7ð #ùòW3
ùò
ùò

ùòBs   ÃPÃ,PÄ+PÄ>+PÈ5$P c                ó2   — d| j                   j                  v S )NrÒ  ©r6   Úoverload_namer   s    r   rG  zFunctionSchema.is_functional_fn  s   € Ø˜tŸy™y×6Ñ6Ð6Ð6r   c                ó@   — t        | j                  j                  «      S r4   )r1  rd  re  r   s    r   Ú	is_out_fnzFunctionSchema.is_out_fn  s   € ô6 �D—N‘N×&Ñ&Ó'Ð'r   c                óH  — t        | j                  j                  «      }t        | j                  j                  D �cg c]   }|j                  j	                  d«      sŒ|‘Œ" c}«      }| j                  j                  j
                  }t        d„ | j                  j                  D «       «      }|r|rJ ‚|rt        j
                  S |r|sJ d«       ‚t        j                  S |r|rJ d«       ‚t        j                  S |rt        j                  S t        j                  S c c}w )a	  
        What kind of schema is this?  A functional schema is one
        that returns a newly allocated output; an inplace schema
        modifies the self argument inplace; an out schema writes
        the result into an explicitly provided out argument.
        rB  c              3  óh   K  — | ]*  }|j                   d uxr |j                   j                  –— Œ, y ­wr4   r´  r@  s     r   rÕ   z&FunctionSchema.kind.<locals>.<genexpr>4  s3   è ø€ ò 
àð �L‰L Ð$Ò>¨¯©×)>Ñ)>Ó>ñ
ùrA  zFinvariant: all scratch operators are expected to be out= operators toozjWe should not categorize a scratch op as an out variant. Check if the order of if statements are expected!)r1  rd  re  r6   rq  rÆ  r©  Úpost_self_positionalr¦  rÔ  rÓ  rÒ  )r   Úis_outr¡  Ú
is_scratchÚ
is_inplacer"  s         r   r¥  zFunctionSchema.kind(  s  € ô �d—n‘n×(Ñ(Ó)ˆÜØ ŸN™N×.Ñ.ÖS�S°#·(±(×2EÑ2EÀkÕ2RŠSÒSó
ˆ
ð —Y‘Y—^‘^×+Ñ+ˆ
Üñ 
à—^‘^×8Ñ8ô
ó 
ˆ
ñ ™zÐ*Ð*ñ Ü×%Ñ%Ð%ÙÙð ØXó�6ô ×%Ñ%Ð%ÙÙ!ð Ø|ó�>ô —>‘>Ð!ÙÜ×%Ñ%Ð%ä×(Ñ(Ð(ùò= Ts   ½ DÁDc                óÆ  — g }| j                   D ]Ê  }| j                  j                  D �cg c])  }|j                  �|j                  |j                  k(  r|‘Œ+ }}t	        |«      dk(  r|j                  d «       Œkt	        |«      dk(  r|j                  |d   j                  «       Œ˜dj                  d„ |D «       «      }t        d|j                  › d|› d�«      ‚ |S c c}w )Nr   r$  rö   c              3  ó4   K  — | ]  }|j                   –— Œ y ­wr4   r5   r@  s     r   rÕ   z6FunctionSchema.aliased_return_names.<locals>.<genexpr>b  s   è ø€ Ò)G°Q¨!¯&­&Ñ)Gùs   ‚zFound a return (z)that aliases multiple inputs (r   )	r¿  rd  rª  rµ  ri  rh  r6   rÛ   r=   )r   ÚoutsrÜ   r¬  Úaliased_argsÚaliased_namess         r   Úaliased_return_namesz#FunctionSchema.aliased_return_namesU  sß   € Ø!#ˆØ—‘ò 	ˆAð Ÿ™×0Ñ0öàØ—<‘<Ð+°·±ÀÇÁÒ0Lò ðˆLð ô
 �<Ó  AÒ%Ø—‘˜DÕ!Ü�\Ó" aÒ'Ø—‘˜L¨™O×0Ñ0Õ1à $§	¡	Ñ)G¸,Ô)GÓ G�Ü$Ø& q§v¡v hÐ.MÈmÈ_Ð\]Ð^óð ð	ð ˆùòs   ª.CF)Ústrip_defaultÚstrip_view_copy_nameÚkeep_return_namesc          	     óˆ  ‡ ‡— dˆfd„}‰ j                   j                   j                  }|rG|j                  d«      r|j                  dd«      }n#|j                  d«      r|j                  dd«      }t	        ˆˆ fd„t        j                  ‰ j                  j                  �!‰ j                  j                  j                  gng ‰ j                  j                  ‰ j                  j                  «      D «       «      }t	        t        |‰ j                  «      «      }||z   }‰ j                  j                  |¬«      }	t        ‰ j                   «      d	k(  r.t         j#                  t        |	«      j                  d
d«      «      }	t%        t'        t)        |d‰ j                   j                   j*                  ¬«      d¬«      |	|¬«      S )aö
  
                Certain schemas are 'related', in that they are simply
                inplace/out/functional versions of the same function.  This method
                factors these schemas into the "core" functional signature which
                is equal across all versions.

                Here is what normalization happens to the schema to convert
                it to a signature:
                - The overload name is stripped (name is retained, since
                  it expresses semantic content about what the function does)
                - Inplace is set False
                - Out arguments are stripped
                - Mutable post_self_positional args are converted to returns
                - Mutability annotations are stripped  (this is sound
                  because you cannot overload on mutability annotation)
                - Return names are stripped since they are not overloadable and
                  some variants have return names but some not
                - TensorOptions are dropped
                  because out= variants of factory functions don't include them
                  (and we want to be able to pair up factory functions with their out variants)

                Finally, we want to be able to pair up related "view" and their
                corresponding "view_copy" operators. We do this by optionally
                stripping the trailing "_copy" from the base name.

                Example of a mutable op before and after:

                f.func (Mutable operator):
        _fused_moving_avg_obs_fq_helper(Tensor self, Tensor observer_on, Tensor fake_quant_on, Tensor(a!) running_min, Tensor(b!) running_max, Tensor(c!) scale, Tensor(d!) zero_point, float averaging_const, int quant_min, int quant_max, int ch_axis, bool per_row_fake_quant=False, bool symmetric_quant=False) -> (Tensor output, Tensor mask)  # noqa: B950

                f.func (Corresponding functional operator):
        _fused_moving_avg_obs_fq_helper.functional(Tensor self, Tensor observer_on, Tensor fake_quant_on, Tensor running_min, Tensor running_max, Tensor scale, Tensor zero_point, float averaging_const, int quant_min, int quant_max, int ch_axis, bool per_row_fake_quant=False, bool symmetric_quant=False) -> (Tensor output, Tensor mask, Tensor running_min_out, Tensor running_max_out, Tensor scale_out, Tensor zero_point_out)  # noqa: B950

                f.func.signature() output:
        _fused_moving_avg_obs_fq_helper(Tensor self, Tensor observer_on, Tensor fake_quant_on, Tensor running_min, Tensor running_max, Tensor scale, Tensor zero_point, float averaging_const, int quant_min, int quant_max, int ch_axis, bool per_row_fake_quant=False, bool symmetric_quant=False) -> (Tensor, Tensor, Tensor, Tensor, Tensor, Tensor)  # noqa: B950
        c                óP   •— t        ‰r| j                  nd | j                  d ¬«      S )N©r6   r<  rµ  )ÚReturnr6   r<  )rÜ   r_  s    €r   Ústrip_ret_annotationz6FunctionSchema.signature.<locals>.strip_ret_annotation”  s%   ø€ ÜÙ0�Q—V’V°dØ—V‘VØôð r   Ú_copyr(   Ú_scatterÚscatterÚinversec              3  óò   •‡K  — | ]m  Š‰j                   �_‰j                   j                  rIt        ˆfd„‰j                  D «       «      s+t	        ‰r‰j
                  › d�nd ‰j                  d ¬«      –— Œo y ­w)Nc              3  óP   •K  — | ]  }‰j                   |j                   k(  –— Œ y ­wr4   r6  r7  s     €r   rÕ   z5FunctionSchema.signature.<locals>.<genexpr>.<genexpr>¹  s   øè ø€ ÒK¸˜Ÿ™¨¯©Õ4ÑKùr8  Ú_outrb  )rµ  r¶  r©  r¿  rc  r6   r<  )rÒ   r¬  r_  r   s    @€€r   rÕ   z+FunctionSchema.signature.<locals>.<genexpr>£  sk   ùè ø€ ò ,
ð ð �|‰|Ð'Ø—‘×%Ò%ÜÓK¸d¿l¹lÔKÔKô% Ù(9˜Ÿ™�x˜t‘_¸tØ—V‘VØ÷ð ñ	,
ùs   „A3A7©r]  zbernoulli.pzfloat pzfloat p=0.5F©rÉ  rÆ  Údunder_methodrM  r)  )rÜ   rc  r   rc  )r6   rÉ  rr  ÚreplaceÚtupler$  r%  rd  rE  rF  re  rS  Úmapr¿  rå  r   r  rB   r/  rf  ÚBaseOperatorNamern  )
r   r]  r^  r_  rd  Ú	base_nameÚreturns_from_mutable_inputsÚoriginal_returnsr¿  Úargs_sigs
   `  `      r   rå  zFunctionSchema.signatureh  sx  ù€ õX	ð —I‘I—N‘N×'Ñ'ˆ	ÙØ×!Ñ! 'Ô*Ø%×-Ñ-¨g°rÓ:‘	Ø×#Ñ# JÔ/Ø%×-Ñ-¨i¸ÓC�	ô ',ô ,
ô —_‘_ð
 —~‘~×.Ñ.Ð:ð —^‘^×,Ñ,×5Ñ5Ñ6àà—‘×"Ñ"Ø—‘×3Ñ3ó
ô,
ó '
Ð#ô0 !¤Ð%9¸4¿<¹<Ó!HÓIÐà"Ð%@Ñ@ˆà—>‘>×+Ñ+¸-Ð+ÓHˆäˆt�y‰y‹>˜]Ò*Ü —‘¤s¨8£}×'<Ñ'<¸YÈÓ'VÓWˆHäÜÜ%Ø"Ø!Ø"&§)¡)§.¡.×">Ñ">ôð
 !ôð Øô
ð 	
r   c                ó&   — | j                  d¬«      S )NT©r^  )rå  r   s    r   Úview_signaturezFunctionSchema.view_signatureÑ  s   € Ø�~‰~°4ˆ~Ó8Ð8r   c                óF   — t        || j                  | j                  ¬«      S )Nr)  )r/  rd  r¿  )r   r6   s     r   Ú	with_namezFunctionSchema.with_nameÔ  s    € ÜØØ—n‘nØ—L‘Lô
ð 	
r   c                ó€   — | j                  «       t        j                  t        j                  t        j                  fv S r4   )r¥  r¦  rÆ  re  rÓ  r   s    r   Úmodifies_argumentsz!FunctionSchema.modifies_argumentsÛ  s*   € à�y‰y‹{œz×1Ñ1´:·>±>Ä:×CUÑCUÐVÐVÐVr   c                ó6   — | j                   j                  «       S r4   )rd  Úhas_symint_argr   s    r   Ú
has_symintzFunctionSchema.has_symintß  s   € Ø�~‰~×,Ñ,Ó.Ð.r   c                ó  — t        | j                  «      }t        | j                  «      dk(  rt        | j                  d   «      }n/ddj	                  t        t         | j                  «      «      z   dz   }| j                  › d|› d|› �S )Nr$  r   rþ  rö   r   z) -> )r   rd  ri  r¿  rÛ   rq  r6   )r   Úall_arguments_strr¿  s      r   r   zFunctionSchema.__str__â  st   € Ü §¡Ó/ÐÜˆt�|‰|Ó Ò!Ü˜$Ÿ,™, q™/Ó*‰Gà˜DŸI™I¤c¬#¨t¯|©|Ó&<Ó=Ñ=ÀÑCˆGØ—)‘)�˜AÐ/Ð0°°g°YÐ?Ð?r   NrÏ  )r   zIterator[Argument])r0  r   r   r/  rÍ  )r   r¦  )r   zlist[str | None])r]  r1  r^  r1  r_  r1  r   r/  rõ  )r6   rf  r   r/  r   )r   r    r!   r"   rÐ  r"  r§  ÚreÚcompiler*  rÊ   rB   r3  r¯  rG  rP  r¥  r\  rå  ry  r{  r}  r€  r   r#   r   r   r/  r/  s  sà   … ð ÓàÓð  ÓàòAó ðAó
ð ˆb�j‰jÐOÓP€Gàò
ó ð
ó
ó`óD7ó(ó:')óZð, $Ø%*Ø"'ñg
ð ðg
ð #ð	g
ð
  ðg
ð 
óg
óR9ó
ð òWó ðWó/ô@r   r/  c                  óF   — e Zd ZU ded<   ded<   ded<   ed	d„«       Zd
d„Zy)Ú
Annotationztuple[str, ...]Ú	alias_setr1  r¶  r½  c                ó^  — t        j                  d| «      }|€
J d| › �«       ‚|j                  d«      |j                  d«      r|j                  d«      ndz   }t        |j	                  d«      «      }|j                  d«      dk(  }|rt        |«      dkD  rJ d	| › d
�«       ‚|j                  d«      r)t        |j                  d«      j	                  d«      «      nd}t        |«      dkD  rt        |«      dkD  rJ d| › d
�«       ‚t        |||¬«      }t        |«      | k(  sJ |› d| › �«       ‚|S )Nz2^([a-z])(\|[a-z])*(!?)( -> (\*|[a-z](\|[a-z])*))?$zunrecognized alias annotation r$  r[  r(   ú|rU  ú!z,alias set larger than 1 is not mutable, got z	 instead.é   r#   zSbefore alias set and after alias set cannot be larger than 1 at the same time, got )r‡  r¶  r½  rÚ  )rƒ  ÚmatchÚgrouprp  r÷   ri  r†  r   )Úannr  Úbefore_aliasr‡  r¶  Ú	after_setrÜ   s          r   rB   zAnnotation.parseû  s8  € ô  �H‰HÐJÈCÓPˆàˆ}ÐDÐ >¸s¸eÐDÓDˆ}Ø—w‘w˜q“z°1·7±7¸1´: Q§W¡W¨Q¤ZÀ2ÑFˆÜ˜,×,Ñ,¨SÓ1Ó2ˆ	Ø—7‘7˜1“: Ñ$ˆÙ¤ Y£°!Ò!3ð 	
Ø:¸3¸%¸yÐIó	
Ð4ð 56·G±G¸A´J”E˜!Ÿ'™' !›*×*Ñ*¨3Ó/Ô0ÀBˆ	Ü˜Ó%¨Ò)¬c°)«n¸qÒ.@ð 	
ØaÐbeÐafÐfoÐpó	
ÐAô Ø¨(ÀIô
ˆô �1‹v˜Š}Ð-   4¨ u˜oÓ-ˆ}Øˆr   c                ó¦   — dj                  | j                  «      }| j                  r|› d�}dj                  | j                  «      }|r|› d|› �}|S )Nr‰  rŠ  ú -> )rÛ   r‡  r¶  r½  )r   r‡  r½  s      r   r   zAnnotation.__str__  sT   € Ø—H‘H˜TŸ^™^Ó,ˆ	Ø�=Š=Ø$˜+ Q˜ˆIØŸ(™( 4×#7Ñ#7Ó8ˆÙØ$˜+ T¨/Ð):Ð;ˆIØÐr   N)rŽ  r   r   r†  r   )r   r    r!   r"   rÊ   rB   r   r#   r   r   r†  r†  ó  s-   … ð ÓØƒNØ$Ó$àò ó ð ôDr   r†  c                  óh   — e Zd Zedd„«       Zedd„«       Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd„Zdd	„Zy
)ÚTypec                ód   — t         j                  | «      }t        |«      | k(  sJ |› d| › �«       ‚|S )NrÚ  )r”  Ú_parser   )r‡  rÜ   s     r   rB   z
Type.parse0  s3   € ä�K‰K˜‹NˆÜ�1‹v˜Š{Ð)˜q˜c  a S˜MÓ)ˆ{Øˆr   c                ó>  — t        j                  d| «      }|�-t        t        j	                  |j                  d«      «      «      S t        j                  d| «      }|�\|j                  d«      �t        |j                  d«      «      nd }t        t        j	                  |j                  d«      «      |¬«      S t        j                  d| «      }|�t        |j                  d«      «      S 	 t        t        |    «      S # t        $ r}t        d| › �«      |‚d }~ww xY w)Nz^(.+)\?$r$  z^(.+)\[([0-9]+)?\]$r[  )ÚelemÚsizez-^__torch__\.torch\.classes\.([a-zA-Z0-9_.]+)$zunrecognized type )rƒ  rŒ  ÚOptionalTyper”  rB   r�  r   ÚListTypeÚCustomClassTyper=  r>  ÚKeyErrorré  )r‡  r  r™  r~  s       r   r–  zType._parse6  sî   € ä�H‰H�[ !Ó$ˆØˆ=Ü¤§
¡
¨1¯7©7°1«:Ó 6Ó7Ð7Ü�H‰HÐ+¨QÓ/ˆØˆ=Ø&'§g¡g¨a£jÐ&<”3�q—w‘w˜q“z”?À$ˆDÜ¤§¡¨A¯G©G°A«JÓ!7¸dÔCÐCô �H‰HÐEÀqÓIˆØˆ=Ü" 1§7¡7¨1£:Ó.Ð.ð	@ÜœF 1™IÓ&Ð&øÜò 	@ÜÐ!3°A°3Ð7Ó8¸aÐ?ûð	@ús   Ã-C? Ã?	DÄDÄDc                ó   — t         ‚r4   ©ÚNotImplementedErrorr   s    r   r   zType.__str__I  ó   € Ü!Ð!r   c                ó   — t         ‚r4   rŸ  ©r   Úbase_tys     r   Úis_base_ty_likezType.is_base_ty_likeQ  r¡  r   c                ó@   — | j                  t        j                  «      S r4   )r¥  r>  r?  r   s    r   Úis_tensor_likezType.is_tensor_likeT  ó   € Ø×#Ñ#¤F§M¡MÓ2Ð2r   c                ó@   — | j                  t        j                  «      S r4   )r¥  r>  Ú	Generatorr   s    r   Úis_generator_likezType.is_generator_likeW  s   € Ø×#Ñ#¤F×$4Ñ$4Ó5Ð5r   c                ó@   — | j                  t        j                  «      S r4   )r¥  r>  ÚSymIntr   s    r   Úis_symint_likezType.is_symint_likeZ  r¨  r   c                ó   — t         ‚r4   rŸ  r   s    r   Úis_nullablezType.is_nullable]  r¡  r   c                ó   — t         ‚r4   rŸ  r   s    r   Úis_list_likezType.is_list_like`  r¡  r   N)r‡  r   r   r”  r   ©r¤  r>  r   r1  rÏ  ©r   zListType | None)r   r    r!   rÊ   rB   r–  r   r¥  r§  r«  r®  r°  r²  r#   r   r   r”  r”  .  sM   „ àòó ðð
 ò@ó ð@ó$"ó"ó3ó6ó3ó"ô"r   r”  c                  ó$  — e Zd Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z	 e«       Z
 e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Z e«       Zy)r>  N)r   r    r!   r   rª  rï   r?  r   ÚDimnameÚ	DimVectorÚfloatr   r1  ÚLayoutÚDeviceÚDeviceIndexÚScalarÚMemoryFormatÚQSchemeÚStorageÚStreamr­  ÚSymBoolÚGraphModuler#   r   r   r>  r>  e  sŽ   „ Ù“€IÙ“€JÙ‹V€FÙ
‹&€CÙ‹f€GÙ“€IÙ‹F€EÙ
‹&€CÙ‹6€DÙ‹V€FÙ‹V€FÙ“&€KÙ‹V€FÙ“6€LÙ‹f€GÙ‹f€GÙ‹V€FÙ‹V€FÙ‹f€GÙ“&�Kr   r>  c                  ó@   — e Zd ZU ded<   d	d„Zd
d„Zdd„Zdd„Zdd„Zy)r=  r>  r6   c                ó0   — | j                   j                   › S r4   r5   r   s    r   r   zBaseType.__str__€  s   € Ø—)‘)—.‘.Ð!Ð"r   c                ó    — | j                   |k(  S r4   r5   r£  s     r   r¥  zBaseType.is_base_ty_likeƒ  s   € Ø�y‰y˜GÑ#Ð#r   c                 ó   — yr  r#   r   s    r   r°  zBaseType.is_nullable†  ó   € Ør   c                 ó   — y r4   r#   r   s    r   r²  zBaseType.is_list_like‰  ó   € Ør   c                ó<   — | j                   t        j                  k(  S r4   )r6   r>  r­  r   s    r   r®  zBaseType.is_symint_likeŒ  s   € Ø�y‰yœFŸM™MÑ)Ð)r   Nr   r³  rÏ  r´  )	r   r    r!   r"   r   r¥  r°  r²  r®  r#   r   r   r=  r=  |  s    … à
ƒLó#ó$óóô*r   r=  c                  ó@   — e Zd ZU ded<   d	d„Zd
d„Zdd„Zdd„Zdd„Zy)rš  r”  r˜  c                ó    — | j                   › d�S )Nú?)r˜  r   s    r   r   zOptionalType.__str__•  s   € Ø—)‘)�˜AˆÐr   c                ó8   — | j                   j                  |«      S r4   ©r˜  r¥  r£  s     r   r¥  zOptionalType.is_base_ty_like˜  ó   € Ø�y‰y×(Ñ(¨Ó1Ð1r   c                ó6   — | j                   j                  «       S r4   ©r˜  r®  r   s    r   r®  zOptionalType.is_symint_like›  ó   € Ø�y‰y×'Ñ'Ó)Ð)r   c                 ó   — y)NTr#   r   s    r   r°  zOptionalType.is_nullablež  rÉ  r   c                ó6   — | j                   j                  «       S r4   )r˜  r²  r   s    r   r²  zOptionalType.is_list_like¡  s   € Ø�y‰y×%Ñ%Ó'Ð'r   Nr   r³  rÏ  r´  ©	r   r    r!   r"   r   r¥  r®  r°  r²  r#   r   r   rš  rš  ‘  s    … à
ƒJóó2ó*óô(r   rš  c                  ó@   — e Zd ZU ded<   d	d„Zd
d„Zdd„Zdd„Zdd„Zy)rœ  r   Ú
class_namec                ó    — d| j                   › �S )zK
        Return the class name will prefix __torch__.torch.classes
        z__torch__.torch.classes.)rØ  r   s    r   r   zCustomClassType.__str__ª  s   € ð *¨$¯/©/Ð):Ð;Ð;r   c                 ó   — yr  r#   r£  s     r   r¥  zCustomClassType.is_base_ty_like°  rÇ  r   c                 ó   — yr  r#   r   s    r   r®  zCustomClassType.is_symint_like³  rÇ  r   c                 ó   — y)z8
        Assume a custom class is not nullable.
        Fr#   r   s    r   r°  zCustomClassType.is_nullable¶  s   € ð r   c                 ó   — y r4   r#   r   s    r   r²  zCustomClassType.is_list_like¼  rÉ  r   Nr   r³  rÏ  r´  rÖ  r#   r   r   rœ  rœ  ¦  s    … àƒOó<óóóôr   rœ  c                  óJ   — e Zd ZU ded<   ded<   dd„Zdd„Zdd„Zdd„Zdd	„Zy
)r›  r”  r˜  z
int | Noner™  c                ó\   — | j                   r| j                   › nd}| j                  › d|› d�S )Nr(   ú[ú])r™  r˜  )r   r™  s     r   r   zListType.__str__Ì  s,   € Ø!%§¢�$—)‘)‘°ˆØ—)‘)�˜A˜d˜V 1Ð%Ð%r   c                ó8   — | j                   j                  |«      S r4   rÏ  r£  s     r   r¥  zListType.is_base_ty_likeÐ  rÐ  r   c                ó6   — | j                   j                  «       S r4   rÒ  r   s    r   r®  zListType.is_symint_likeÓ  rÓ  r   c                ó6   — | j                   j                  «       S r4   )r˜  r°  r   s    r   r°  zListType.is_nullableÖ  s   € Ø�y‰y×$Ñ$Ó&Ð&r   c                ó   — | S r4   r#   r   s    r   r²  zListType.is_list_likeÙ  s   € Øˆr   Nr   r³  rÏ  r´  rÖ  r#   r   r   r›  r›  Ç  s&   … à
ƒJØ
Óó&ó2ó*ó'ôr   r›  c                  ót   — e Zd ZU ded<   ded<   ded<   ded<   edd	„«       Zedd
„«       Zedd„«       Zdd„Z	y)r!  r   r6   r”  r<  r5  rN  úAnnotation | Nonerµ  c                ó   — | j                   S r4   r6  r   s    r   Ú
alias_infozArgument.alias_infoû  ó   € à�‰Ðr   c                ój  — d| v sJ d| › d�«       ‚d| v rP| j                  d«      dk(  sJ d| › d�«       ‚| j                  d«      \  }}|j                  dd«      \  }}|› d|› �}n| j                  dd«      \  }}|}d }t        j                  d|«      }|rS|j                  d«      d	v sJ d
«       ‚d|j                  d«      z   }t        j                  |j                  d«      «      }n|}d }t        j                  |«      }	t        ||	||¬«      }
t        |
«      | k(  sJ t        |
«      › d| › �«       ‚|
S )Nrý  zillegal argument 'rä  ú=r$  z&illegal argument with default value: 'úTensor\((.+)\)(.*)r[  ©r(   rÍ  z[]ú,unrecognized alias analysis form with Tensorr?  ©r6   r<  rN  rµ  rÚ  )Úcountr÷   Úrsplitrƒ  rŒ  r�  r†  rB   r”  r!  r   )r¡  Útype_and_annot_and_namerN  Útype_and_annotr6   Úname_and_defaultrŒ  Útype_srµ  r<  rÜ   s              r   rB   zArgument.parseÿ  sk  € ð �c‰zÐ6Ð/°¨u°AÐ6Ó6ˆzØ�#‰:Ø—9‘9˜S“> QÒ&ÐWÐ*PÐQTÐPUÐUVÐ(WÓWÐ&Ø/2¯y©y¸«~Ñ,Ð# WØ#:×#AÑ#AÀ#ÀqÓ#IÑ ˆN˜DØ"&  q¨¨	Ð2Ñà/2¯z©z¸#¸qÓ/AÑ,ˆNÐ,Ø#ˆDØˆGä—‘Ð.°Ó?ˆáà—;‘;˜q“>ð &ñ ð >ð >ó	>ð ð
  §¡¨A£Ñ.ˆFÜ#×)Ñ)¨%¯+©+°a«.Ó9‰Jà#ˆFØˆJÜ�z‰z˜&Ó!ˆÜØØØØ!ô	
ˆô �1‹v˜Š}Ð2¤ Q£ ¨¨S¨EÐ2Ó2ˆ}Øˆr   c                óN   — | j                   d uxr | j                   j                  S r4   r´  r   s    r   r¶  zArgument.is_write&  ó    € à�‰ dÐ*ÒG¨t¯©×/GÑ/GÐGr   c                óü   — | j                   › }| j                  r&|dv sJ ‚|j                  dd| j                  › d�«      }| j                  €|S d}| j                  rd| j                  › �}|› d| j                  › |› �S )N©r?  zTensor?zTensor[]r?  úTensor(r   r(   rì  rý  )r<  rµ  ro  r6   rN  )r   r<  Ú
mb_defaults      r   r   zArgument.__str__*  s…   € Ø—)‘)�ˆØ�?Š?ØÐ<Ñ<Ð<Ð<Ø—<‘< ¨G°D·O±OÐ3DÀAÐ*FÓGˆDØ�9‰9ÐØˆKàˆJØ�|Š|Ø  §¡ Ð/�
Ø�V˜1˜TŸY™Y˜K¨
 |Ð4Ð4r   N©r   rç  )r¡  r   r   r!  rÏ  r   ©
r   r    r!   r"   rÐ  ré  rÊ   rB   r¶  r   r#   r   r   r!  r!  Ý  s^   … ð
 ƒIØ
ƒJØÓð* "Ó!àòó ðð ò$ó ð$ðL òHó ðHô5r   r!  c                  ój   — e Zd ZU ded<   ded<   ded<   edd„«       Zedd„«       Zedd	„«       Zdd
„Z	y)rc  r5  r6   r”  r<  rç  rµ  c                ó   — | j                   S r4   r6  r   s    r   ré  zReturn.alias_info>  rê  r   c                ó¬  — d| v r| j                  dd«      \  }}n| }d }t        j                  d|«      }|rS|j                  d«      dv sJ d«       ‚d|j                  d«      z   }t        j                  |j                  d«      «      }n|}d }t        j                  |«      }t        |||¬«      }t        |«      | k(  sJ t        |«      › d	| › �«       ‚|S )
Nrý  r$  rí  r[  rî  rï  r?  rb  rÚ  )	rò  rƒ  rŒ  r�  r†  rB   r”  rc  r   )r¡  rô  r6   rŒ  rö  rµ  r<  rÜ   s           r   rB   zReturn.parseB  sé   € ð �#‰:Ø#&§:¡:¨c°1Ó#5Ñ ˆN™Dà ˆNØˆDÜ—‘Ð.°Ó?ˆáà—;‘;˜q“>ð &ñ ð >ð >ó	>ð ð
  §¡¨A£Ñ.ˆFÜ#×)Ñ)¨%¯+©+°a«.Ó9‰Jà#ˆFØˆJÜ�z‰z˜&Ó!ˆÜØØØ!ô
ˆô
 �1‹v˜Š}Ð2¤ Q£ ¨¨S¨EÐ2Ó2ˆ}Øˆr   c                óN   — | j                   d uxr | j                   j                  S r4   r´  r   s    r   r¶  zReturn.is_writea  rø  r   c                ó¾   — | j                   › }| j                  r&|dv sJ ‚|j                  dd| j                  › d�«      }| j                  €|S |› d| j                  › �S )Nrú  r?  rû  r   rý  )r<  rµ  ro  r6   )r   r<  s     r   r   zReturn.__str__e  se   € Ø—)‘)�ˆØ�?Š?ØÐ<Ñ<Ð<Ð<Ø—<‘< ¨G°D·O±OÐ3DÀAÐ*FÓGˆDØ�9‰9ÐØˆKà�V˜1˜TŸY™Y˜KÐ(Ð(r   Nrý  )r¡  r   r   rc  rÏ  r   rþ  r#   r   r   rc  rc  8  sT   … à
ÓØ
ƒJØ!Ó!àòó ðð òó ðð< òHó ðHô)r   rc  c                  ó   — e Zd ZU ded<   y)ÚSelfArgumentr!  rF  N)r   r    r!   r"   r#   r   r   r  r  q  s   … àÔr   r  c                  ó>   — e Zd ZU ded<   ded<   ded<   ded<   dd„Zy)	ÚTensorOptionsArgumentsr!  ÚdtypeÚlayoutÚdeviceÚ
pin_memoryc                ó^   — | j                   | j                  | j                  | j                  gS r4   ©r  r	  r
  r  r   s    r   ÚallzTensorOptionsArguments.all€  s!   € Ø—
‘
˜DŸK™K¨¯©°d·o±oÐFÐFr   N©r   zSequence[Argument])r   r    r!   r"   r  r#   r   r   r  r  y  s   … àƒOØÓØÓØÓôGr   r  c                  ól  — e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ed"d„«       Zed"d„«       Zed"d„«       Zed"d„«       Zed"d„«       Z	e	 	 d#d„«       Z
ed$d„«       Zed%d„«       Zed#d„«       Zd&d„Zd'd„Zd'd„Zd'd„Zddœd(d„Zd)d„Zd*d„Zed+d„«       Zed,d„«       Zd-d„Zd.d „Zy!)/r  ztuple[Argument, ...]Úpre_self_positionalzSelfArgument | NonerE  rS  Úpre_tensor_options_kwarg_onlyzTensorOptionsArguments | Noners  Úpost_tensor_options_kwarg_onlyre  c                óv   — g }|j                  | j                  «       |j                  | j                  «       |S r4   )rÙ   r&  r'  ©r   r:  s     r   Úflat_non_outzArguments.flat_non_out›  s0   € à ˆØ�
‰
�4×'Ñ'Ô(Ø�
‰
�4×'Ñ'Ô(Øˆ
r   c                óØ   — g }|j                  | j                  «       | j                  �%|j                  | j                  j                  «       |j                  | j
                  «       |S r4   )rÙ   r  rE  rh  rF  rS  r  s     r   r&  zArguments.flat_positional¢  sP   € à ˆØ�
‰
�4×+Ñ+Ô,Ø�=‰=Ð$Ø�J‰J�t—}‘}×-Ñ-Ô.Ø�
‰
�4×,Ñ,Ô-Øˆ
r   c                óZ   — | j                   D �cg c]  }|j                  sŒ|‘Œ c}S c c}w r4   )rS  r¶  ©r   r¬  s     r   rD  z&Arguments.post_self_positional_mutable«  s"   € à×4Ñ4ÖC�a¸¿
»
’ÒCÐCùÒCs   �(¡(c                óà   — g }|j                  | j                  «       | j                  �)|j                  | j                  j                  «       «       |j                  | j                  «       |S r4   )rÙ   r  rs  r  r  r  s     r   r'  zArguments.flat_kwarg_only°  sW   € à ˆØ�
‰
�4×5Ñ5Ô6Ø×ÑÐ*Ø�J‰J�t×*Ñ*×.Ñ.Ó0Ô1Ø�
‰
�4×6Ñ6Ô7Øˆ
r   c                ó¬   — g }|j                  | j                  «       |j                  | j                  «       |j                  | j                  «       |S r4   )rÙ   r&  r'  re  r  s     r   rª  zArguments.flat_all¹  s@   € à ˆØ�
‰
�4×'Ñ'Ô(Ø�
‰
�4×'Ñ'Ô(Ø�
‰
�4—8‘8ÔØˆ
r   c                óv   — g }|j                  | j                  «       |j                  | j                  «       |S r4   )rÙ   Ú
positionalÚ
kwarg_onlyr  s     r   Únon_outzArguments.non_outÁ  s0   € ð GIˆØ�
‰
�4—?‘?Ô#Ø�
‰
�4—?‘?Ô#Øˆ
r   c                óÄ   — g }|j                  | j                  «       | j                  �|j                  | j                  «       |j                  | j                  «       |S r4   )rÙ   r  rE  rh  rS  r  s     r   r  zArguments.positionalÊ  sJ   € à-/ˆØ�
‰
�4×+Ñ+Ô,Ø�=‰=Ð$Ø�J‰J�t—}‘}Ô%Ø�
‰
�4×,Ñ,Ô-Øˆ
r   c                óÄ   — g }|j                  | j                  «       | j                  �|j                  | j                  «       |j                  | j                  «       |S r4   )rÙ   r  rs  rh  r  r  s     r   r  zArguments.kwarg_onlyÓ  sN   € à79ˆØ�
‰
�4×5Ñ5Ô6Ø×ÑÐ*Ø�J‰J�t×*Ñ*Ô+Ø�
‰
�4×6Ñ6Ô7Øˆ
r   c                ó¬   — g }|j                  | j                  «       |j                  | j                  «       |j                  | j                  «       |S r4   )rÙ   r  r  re  r  s     r   r  zArguments.allÜ  s<   € àFHˆØ�
‰
�4—?‘?Ô#Ø�
‰
�4—?‘?Ô#Ø�
‰
�4—8‘8ÔØˆ
r   c                ó˜   — | j                   D �cg c]0  }|j                  �"|j                  j                  r|j                  ‘Œ2 c}S c c}w r4   )rª  rµ  r¶  r6   r  s     r   Úmutable_arg_nameszArguments.mutable_arg_namesä  sB   € ð —]‘]ö
àØ�|‰|Ð'¨A¯L©L×,AÒ,Að �F‹Fò
ð 	
ùò 
s   �5Ac                ó:   — t        d„ | j                  D «       «      S )Nc              3  óP   K  — | ]  }|j                   j                  «       –— Œ  y ­wr4   )r<  r§  r@  s     r   rÕ   z+Arguments.has_tensor_arg.<locals>.<genexpr>ì  ó   è ø€ ÒF¨q�1—6‘6×(Ñ(×*ÑFùó   ‚$&©r©  r  r   s    r   rt  zArguments.has_tensor_argë  ó   € ÜÑF°D×4EÑ4EÔFÓFÐFr   c                ó:   — t        d„ | j                  D «       «      S )Nc              3  óP   K  — | ]  }|j                   j                  «       –— Œ  y ­wr4   )r<  r®  r@  s     r   rÕ   z+Arguments.has_symint_arg.<locals>.<genexpr>ï  r'  r(  r)  r   s    r   r  zArguments.has_symint_argî  r*  r   c                ó:   — t        d„ | j                  D «       «      S )Nc              3  óP   K  — | ]  }|j                   j                  «       –— Œ  y ­wr4   )r<  r«  r@  s     r   rÕ   z.Arguments.has_generator_arg.<locals>.<genexpr>ò  s   è ø€ ÒI°!�1—6‘6×+Ñ+×-ÑIùr(  r)  r   s    r   r«  zArguments.has_generator_argñ  s   € ÜÑI°t×7HÑ7HÔIÓIÐIr   Frl  c               ó„  ‡— dˆfd„}t        t        t        || j                  «      «      | j                  �%t         || j                  j                  «      «      nd t        t        || j                  «      «      t        t        || j                  «      «      t        t        || j                  «      «      z   d dd¬«      S )Nc                ór   •— t        | j                  | j                  ‰s| j                  d ¬«      S d d ¬«      S )Nrð  )r!  r6   r<  rN  )r¬  r]  s    €r   Ústrip_arg_annotationz1Arguments.signature.<locals>.strip_arg_annotation÷  s=   ø€ ÜØ—V‘VØ—V‘VÙ)6˜Ÿ	™	Øô	ð ð =AØô	ð r   r#   ©r  rE  rS  r  rs  r  re  )r¬  r!  r   r!  )
r  rp  rq  r  rE  r  rF  rS  r  r  )r   r]  r1  s    ` r   rå  zArguments.signatureô  s¶   ø€ õ	ô Ü %ÜÐ(¨$×*BÑ*BÓCó!ð
 —=‘=Ð,ô Ñ1°$·-±-×2HÑ2HÓIÔJàä!&ÜÐ(¨$×*CÑ*CÓDó"ô
 +0ÜÐ(¨$×*LÑ*LÓMó+ô ”CÐ,¨d×.QÑ.QÓRÓSñ+Tð  Ø+-àô/
ð 	
r   c           	     ó°   — | j                   €J ‚t        j                  | t        t        j                  | j                   j                  d ¬«      «      ¬«      S )Nr6  )rE  )rE  Údataclassesro  r  rF  r   s    r   Úremove_self_annotationz Arguments.remove_self_annotation	  sJ   € Ø�}‰}Ð(Ð(Ð(Ü×"Ñ"ØÜ!Ü×#Ñ# D§M¡M×$:Ñ$:ÀtÔLóô
ð 	
r   c                óv   — t        | j                  «      dk(  sJ ‚t        j                  | t	        |«      ¬«      S )Nr   )re  )ri  re  r4  ro  rp  )r   rY  s     r   Úwith_out_argszArguments.with_out_args"	  s5   € Ü�4—8‘8‹} Ò!Ð!Ð!Ü×"Ñ"ØÜ�d“ô
ð 	
r   c                ó(  — g }g }g }|}| j                  d«      D ]r  }|sŒ|dk(  r||u sJ d«       ‚|}Œt        j                  |«      }|j                  �"|j                  j                  r||u rn||u r	|}n||usJ ‚|j                  |«       Œt |||fS )Nrö   r¼  z:invalid syntax: kwarg-only specifier * can only occur once)r÷   r!  rB   rµ  r¶  rh  )r/  r  r  re  Úarguments_accr¡  Úpargs          r   Ú	_preparsezArguments._preparse)	  sÈ   € à%'ˆ
Ø%'ˆ
Ø ˆØ"ˆð —:‘:˜dÓ#ò 	'ˆCÙØØ�cŠzØ$¨
Ñ2ð ØPóÐ2ð !+�ØÜ—>‘> #Ó&ˆDð �‰Ð*¨t¯©×/GÒ/GØ  JÑ.ØØ" jÑ0Ø$'‘Mà$¨CÑ/Ð/Ð/Ø× Ñ  Õ&ð/	'ð2 ˜: sÐ*Ð*r   c                ó®  — t         j                  | «      \  }}}d}t        |«      D ]  \  }}|j                  dk(  sŒ|} n |�|d| }t	        ||   «      }||dz   d }	ng }d}|}	g }
d}g }|
}dd„} |dt
        j                  d«      «       |dt
        j                  d«      «       |d	t
        j                  d
«      «       |dt
        j                  d«      «      g}d}|t        |«      k  r¨|t        |«      t        |«      z
  k  rft        d„ t        ||||t        |«      z    «      D «       «      r;||
u sJ ‚t        ||   ||dz      ||dz      ||dz      ¬«      }|t        |«      z  }|}ŒŽ|j                  ||   «       |dz  }|t        |«      k  rŒ¨t        t        |«      |t        |	«      t        |
«      |t        |«      t        |«      ¬«      S )z.
        Input: 'int x, int y, int z'
        Nr   r$  c                ó   ‡ ‡— ˆ ˆfd„S )Nc                óX   •— | j                   ‰k(  xr | j                  ‰t        ‰«      fv S r4   )r6   r<  rš  )r¬  r6   Útys    €€r   ú<lambda>z/Arguments.parse.<locals>.pred.<locals>.<lambda>s	  s'   ø€ ˜QŸV™V t™^ÒP°·±¸2¼|ÈBÓ?OÐ:PÐ0P€ r   r#   )r6   r?  s   ``r   ÚpredzArguments.parse.<locals>.predr	  s	   ù€ ÜPÐPr   r  rï   r	  r¹  r
  rº  r  r1  r   c              3  ó2   K  — | ]  \  }} ||«      –— Œ y ­wr4   r#   )rÒ   Úpr¬  s      r   rÕ   z"Arguments.parse.<locals>.<genexpr>�	  s    è ø€ ò á˜˜1ñ �a—Dñùrà  r[  rU  r  r2  )r6   r   r?  r”  r   zCallable[[Argument], bool])r  r;  Ú	enumerater6   r  r”  rB   ri  r  rC  r  rh  rp  )r/  r  r  re  Úself_ixÚir¬  r  rE  rS  r  rs  r  Úkwarg_only_accrA  Ú
predicatess                   r   rB   zArguments.parseM	  s"  € ô '0×&9Ñ&9¸$Ó&?Ñ#ˆ
�J ð ˆÜ˜jÓ)ò 	‰DˆAˆqØ�v‰v˜ÓØ�Ùð	ð ÐØ",¨X¨gÐ"6ÐÜ# J¨wÑ$7Ó8ˆHØ#-¨g¸©k¨mÐ#<Ñ à"$ÐØˆHØ#-Ð ð 9;Ð%Ø8<ˆØ9;Ð&Ø6ˆó	Qñ �œ$Ÿ*™* \Ó2Ó3Ù�œ4Ÿ:™: hÓ/Ó0Ù�œ4Ÿ:™: hÓ/Ó0Ù�œtŸz™z¨&Ó1Ó2ð	
ˆ
ð ˆØ”#�j“/Ò!à”C˜
“O¤c¨*£oÑ5Ò5äñ ä # J°
¸1¸qÄ3ÀzÃ?Ñ?RÐ0SÓ Tôô ð *Ð-JÑJÐJÐJä%;Ø(¨™mØ)¨!¨a©%Ñ0Ø)¨!¨a©%Ñ0Ø#-¨a°!©eÑ#4ô	&�Nð œ˜Z›Ñ(�AØ%C�NØØ×!Ñ! *¨Q¡-Ô0Ø�‰FˆAð) ”#�j“/Ó!ô, Ü %Ð&9Ó :ØÜ!&Ð';Ó!<Ü*/Ð0MÓ*NØ)Ü+0Ð1OÓ+PÜ�c“
ô
ð 	
r   c                óp  — g }|j                  t        t        | j                  «      «       | j                  s| j
                  r|j                  d«       |j                  t        t        | j                  «      «       |j                  t        t        | j
                  «      «       dj                  |«      S )Nr¼  rö   )rÙ   rq  r   r&  r'  re  rh  rÛ   )r   Úall_argumentss     r   r   zArguments.__str__�	  s‚   € Ø#%ˆØ×ÑœS¤ d×&:Ñ&:Ó;Ô<Ø×Ò 4§8¢8Ø× Ñ  Ô%Ø×ÑœS¤ d×&:Ñ&:Ó;Ô<Ø×ÑœS¤ d§h¡hÓ/Ô0Ø�y‰y˜Ó'Ð'r   c                ó  — | j                   €| j                  rJ ‚| j                  €| j                  rJ ‚| j                  D �cg c]&  }|j                  �|j                  j
                  r|‘Œ( }}t        |«      dk(  sJ d«       ‚y c c}w )Nr   zOmutable pre_self_positional arguments are not currently supported in the schema)rE  r  rs  r  rµ  r¶  ri  )r   r¬  Úmutable_pre_self_positionalss      r   r¯  zArguments.__post_init__¦	  s™   € ð �=‰=Ð Ø×/Ò/Ð/Ð/Ø×ÑÐ&Ø×:Ò:Ð:Ð:ð ×-Ñ-ö(
àØ�|‰|Ð'¨A¯L©L×,AÒ,Aò ð(
Ð$ð (
ô
 Ð/Ó0°AÒ5ð 	
Ø]ó	
Ñ5ùò(
s   Á+BNr  )r   z:Sequence[Argument | SelfArgument | TensorOptionsArguments])r   z!Sequence[Argument | SelfArgument])r   z+Sequence[Argument | TensorOptionsArguments]©r   z	list[str]rÏ  )r]  r1  r   r  )r   r  )rY  úlist[Argument]r   r  )r/  r   r   z5tuple[list[Argument], list[Argument], list[Argument]])r/  r   r   r  r   rÍ  )r   r    r!   r"   rÐ  r  r&  rD  r'  rª  r  r  r  r  r$  rt  r  r«  rå  r5  r7  rÊ   r;  rB   r   r¯  r#   r   r   r  r  „  sP  … ð
 .Ó-Ø!Ó!Ø.Ó.à#7Ó7Ø1Ó1ð %9Ó8ð 
Óàòó ðð òó ðð òDó ðDð òó ðð òó ðð ðà	Còó ðð òó ðð òó ðð òó ðó
óGóGóJð 27õ #
óJ
ó
ð ò!+ó ð!+ðF òM
ó ðM
ó^(ô
r   r  )rú   ÚsubÚmulÚdivÚmodÚpowÚlshiftÚrshiftÚandÚxorÚorc                  ób   — e Zd ZU ded<   ded<   ded<   dZded<   dZd	ed
<   edd„«       Zdd„Zy)rr  r   rÉ  r1  rÆ  rn  Frç  NzOptional[str]r.  c                ó^  ‡
— | dk7  sJ ‚| j                  d«      rJ d«       ‚t        j                  d| «      }|r|j                  d«      nd}|r|j                  d«      n| }t        j                  d|«      }|�?d}|j                  d«      Š
t	        ˆ
fd	„t
        D «       «      rd}‰
dd  Š
n"d
}‰
d   dk7  sJ ‚d
}|Š
‰
d   dk(  rd}‰
d d Š
nd
}d}‰
j                  |«      rd}‰
d t        |«        Š
|s|rJ ‚d
}t        ‰
||||¬«      }	t        |	«      | k(  sJ t        |	«      › d| › �«       ‚|	S )Nr(   rk  zs_out suffix is reserved and not permitted for operator names; did you mean to specify an out overload name instead?z^(?:(.*)::)?(.*)$r$  r[  z^__([^_]+)__$Tc              3  ó.   •K  — | ]  }‰d |› �k(  –— Œ y­w)rF  Nr#   )rÒ   ÚnrÉ  s     €r   rÕ   z)BaseOperatorName.parse.<locals>.<genexpr>
  s   øè ø€ ÒG q�4˜Q˜q˜c˜7•?ÑGùrÖ   Fr   rF  rÿ  Ú_Ú_functional)rÉ  rÆ  rn  rç  r.  rÚ  )	rr  rƒ  rŒ  r�  r©  ÚAUGMENTED_ASSIGNMENT_NAMESri  rr  r   )râ  rŒ  r.  Úop_without_nsr  rn  rÆ  Úfunctional_suffixrç  rÜ   rÉ  s             @r   rB   zBaseOperatorName.parseò	  sr  ø€ à�RŠxˆˆxØ—;‘;˜vÔ&ð 	
ðDó	
Ð&ô —‘Ð-¨rÓ2ˆÙ&+�E—K‘K ”N°ˆ	Ù*/˜Ÿ™ Aœ°RˆÜ�H‰HÐ% }Ó5ˆØˆ=Ø ˆMØ—7‘7˜1“:ˆDÜÓGÔ,FÔGÔGØ�Ø˜A˜B�x‘à�ð
 ˜A‘w #’~Ð%�~à!ˆMØ ˆDØ�B‰x˜3ŠØ�Ø˜C˜R�y‘à�ð *ÐØ�=‰=Ð*Ô+Ø"&ÐØÐ1œ3Ð0Ó1Ð1Ð2ˆDñ %©WÐ4Ð4à"'ÐäØØØ'Ø 3Øô
ˆô �1‹v˜Š|Ð0¤ A£˜x t¨B¨4Ð0Ó0ˆ|Øˆr   c                óü   — | j                   r| j                   › d�nd}| j                  r$| j                  rdnd}|› d|› | j                  › d�S | j                  rdn| j                  rdnd}|› | j                  › |› �S )NrO  r(   rF  Ú__r]  r^  )r.  rn  rÆ  rÉ  rç  )r   Únamespace_prefixrF  s      r   r   zBaseOperatorName.__str__+
  sŽ   € Ø48·N²N˜dŸn™nÐ-¨RÑ0ÈÐØ×ÒØ—|’|‘¨ˆAØ&Ð' r¨!¨¨T¯Y©Y¨K°rÐ:Ð:ð —<’<ñ ð ×+Ò+ñ #àð ð 'Ð'¨¯	©	 {°1°#Ð6Ð6r   )râ  r   r   rr  r   )	r   r    r!   r"   rç  r.  rÊ   rB   r   r#   r   r   rr  rr  Ò	  sC   … à
ƒIØƒMØÓð( !&Ð˜Ó%ð  $€Iˆ}Ó#àò6ó ð6ôp7r   rr  c                  óT   — e Zd ZU ded<   ded<   edd„«       Zdd„Zdd„Zdd„Zdd	„Z	y
)rf  rr  r6   r   rN  c                óÈ   — d| v r| j                  dd«      \  }}n| }d}t        t        j                  |«      |¬«      }t	        |«      | k(  sJ t	        |«      › d| › �«       ‚|S )Nú.r$  r(   rM  rÚ  )r÷   rf  rr  rB   r   )r
  r6   rN  rÜ   s       r   rB   zOperatorName.parseB
  sk   € à�'‰>Ø")§-¡-°°QÓ"7ÑˆD‘-àˆDØˆMÜÔ.×4Ñ4°TÓ:È-ÔXˆÜ�1‹v˜Ò Ð:¤S¨£V H¨D°°	Ð":Ó:Ð Øˆr   c                ój   — | j                   r| j                  › d| j                   › �S | j                  › S )Nrg  ©rN  r6   r   s    r   r   zOperatorName.__str__M
  ó3   € Ø×ÒØ—i‘i�[  $×"4Ñ"4Ð!5Ð6Ð6à—i‘i�[Ð!r   c                ój   — | j                   r| j                  › d| j                   › �S | j                  › S )Nr]  ri  r   s    r   Úunambiguous_namezOperatorName.unambiguous_nameX
  rj  r   c                ó˜   — t        t        | j                  j                  d| j                  j                  ¬«      | j
                  ¬«      S ©NFrm  rM  )rf  rr  r6   rÉ  rn  rN  r   s    r   Úremove_inplacezOperatorName.remove_inplace^
  s=   € ÜÜ!Ø—Y‘Y—^‘^ØØ"Ÿi™i×5Ñ5ôð
 ×,Ñ,ô
ð 	
r   c                ó„   — t        t        | j                  j                  d| j                  j                  ¬«      |¬«      S rn  )rf  rr  r6   rÉ  rn  )r   Úoverloads     r   Úwith_overloadzOperatorName.with_overloadh
  s7   € ÜÜ!Ø—Y‘Y—^‘^ØØ"Ÿi™i×5Ñ5ôð
 #ô
ð 	
r   N)r
  r   r   rf  r   )r   rf  )rq  r   r   rf  )
r   r    r!   r"   rÊ   rB   r   rl  ro  rr  r#   r   r   rf  rf  =
  s4   … à
ÓØÓàòó ðó"ó"ó
ô
r   rf  c                ó¸   — | j                   j                  «       t        j                  uxr/ |j	                  | «       xr |j	                  |j                  «      S r4   )r0  r¥  r¦  rÒ  r  )rë  r  Úbs      r   Ú"gets_generated_out_inplace_wrapperru  s
  sI   € ð 	
�‰�‰‹œZ×2Ñ2Ð2ò 	'Ø—‘˜Q“Ðò	'à�L‰L˜Ÿ™Ó&ðr   c                  óf   — e Zd ZU ded<   ded<   ded<   dd„Zddœdd	„Zedd
„«       Zedd„«       Zy)ÚNativeFunctionsViewGroupr-  Úviewr×  Ú	view_copyÚview_inplacec                óø  — | j                   j                  sJ ‚| j                  €]t        | j                   «      �rAJ t	        | j                   j
                  j                  «      › dt        | j                   «      ›d�«       ‚| j                  j
                  j                  j                  j                  j                  d«      sJ ‚| j                   j
                  j                  «       | j                  j
                  j                  d¬«      k(  sJ ‚d| j                  j                  v sPJ t	        | j                  j
                  j                  «      t	        | j                   j                  «      f› d�«       ‚| j                  �K| j                   j
                  j                  «       | j                  j
                  j                  «       k(  sJ ‚| j                   j                  r}| j                  �q| j                  j                  s[J t	        | j                   j
                  j                  «      › dt	        | j                  j
                  j                  «      › d	�«       ‚| j                   j                  r| j                  �r| j                  j                  s[J t	        | j                   j
                  j                  «      › dt	        | j                  j
                  j                  «      › d
�«       ‚y y y )Nz‰ appears to be a new operator that aliases its inputs. The codegen expects you to add a corresponding operator to native_functions.yaml: z3. See Note [view_copy NativeFunctions] for details.)re  rf  Trx  ry  zÀ appears to be a view_copy operator. The codegen expects view_copy operators to be annotated with the 'view_copy' tag in native_functions.yaml. See Note [view_copy NativeFunction] for details.rÛ  z] must either both have CompositeImplicitAutograd kernels, or both not have composite kernels.zi must either both have CompositeImplicitAutogradNestedTensor kernels, or both not have composite kernels.)rx  rÄ  ry  Úgets_generated_view_copyr   r0  r6   Úget_view_copy_namerÉ  rr  rå  rI  rz  rE  rF  r   s    r   r¯  z&NativeFunctionsViewGroup.__post_init__’
  sƒ  € Ø�y‰y×#Ò#Ð#Ð#Ø�>‰>Ð!Ü/°·	±	Õ:ð Ü�t—y‘y—~‘~×*Ñ*Ó+Ð,ð -ä& t§y¡yÓ1Ð4ð 5EðEóÐ:ð —>‘>×&Ñ&×+Ñ+×0Ñ0×5Ñ5×>Ñ>Ð?TÔUÐUÐUØ—9‘9—>‘>×+Ñ+Ó-°·±×1DÑ1D×1NÑ1NØ%)ð 2Oó 2ò ð ð ð  $§.¡.×"5Ñ"5Ñ5ð Ü�t—~‘~×*Ñ*×/Ñ/Ó0´#°d·i±i·n±nÓ2EÐEÐFð GDð DóÐ5ð
 ×ÑÐ(Ø—9‘9—>‘>×+Ñ+Ó-°×1BÑ1B×1GÑ1G×1QÑ1QÓ1SÒSÐSÐSà�9‰9×;Ò;Ø× Ñ Ð,Ø×(Ñ(×OÒOð Ü˜4Ÿ9™9Ÿ>™>×.Ñ.Ó/Ð0°´c¸$×:KÑ:K×:PÑ:P×:UÑ:UÓ6VÐ5Wð Xhð hóÐOð �9‰9×IÒIØ× Ñ Ð,Ø×(Ñ(×]Ò]ð Ü˜4Ÿ9™9Ÿ>™>×.Ñ.Ó/Ð0°´c¸$×:KÑ:K×:PÑ:P×:UÑ:UÓ6VÐ5Wð Xtð tóÑ]ð -ð Jr   T)Úinclude_copyc             #  ó˜   K  — | j                   –— | j                  �| j                  –— | j                  �|r| j                  –— y y y ­wr4   )rx  rz  ry  )r   r~  s     r   ræ  z"NativeFunctionsViewGroup.functionsµ
  sE   è ø€ Ø�i‰iŠØ×ÑÐ(Ø×#Ñ#Ò#Ø�>‰>Ð%©,Ø—.‘.Ó ð +7Ð%ùs   ‚AA
c                ó.   — | j                   j                  S r4   )rx  rÊ  r   s    r   rÊ  z"NativeFunctionsViewGroup.root_name¼
  s   € à�y‰y×"Ñ"Ð"r   c                ó.   — | j                   j                  S r4   )rx  rE  r   s    r   Ú	compositez"NativeFunctionsViewGroup.compositeÀ
  s   € ð �y‰y×?Ñ?Ð?r   NrÍ  )r~  r1  r   rö  r   rÏ  )	r   r    r!   r"   r¯  ræ  rÐ  rÊ  r‚  r#   r   r   rw  rw  ˆ
  sP   … à
Óð %Ó$à'Ó'ó!ðF 15õ !ð ò#ó ð#ð ò@ó ñ@r   rw  c                óÊ   — | j                   sy| j                  ryd| j                  v ry| j                  j                  j                  j
                  j                  d«      ryy)NFr¸  Ú_inverseT)rÄ  rE  rI  r0  r6   rÉ  rr  )rë  s    r   r|  r|  Ç
  sS   € à�<Š<Øð 	×/Ò/Øà˜Ÿ™ÑØð 	‡v�v‡{�{×Ñ×Ñ×%Ñ% jÔ1ØØr   c                ó€  — dg}t        | j                  j                  «      |vrt        | «      sJ ‚| j                  j                  j                  j                  › d�}t        t        |d| j                  j                  j                  j                  ¬«      | j                  j                  j                  ¬«      }|S )NÚnarrowre  Frm  rM  )	r   r0  r6   r|  rÉ  rf  rr  rn  rN  )rë  Ú-list_of_ops_with_explicit_view_copy_operatorsrs  Úview_copy_names       r   r}  r}  Þ
  s™   € ð 6>°JÐ1Ü
ˆ1�6‰6�;‰;ÓÐLÑLÜ'¨Ô*Ð*Ð*à—6‘6—;‘;×#Ñ#×(Ñ(Ð)¨Ð/€IÜ!ÜØ E¸¿¹¿¹×9IÑ9I×9WÑ9Wô
ð —f‘f—k‘k×/Ñ/ô	€Nð Ðr   c                óz   — | dk(  ry| d   dk(  r| d   dk(  r| dd } t        d„ | j                  d	«      D «       «      S )
z$
    Input: '()'
    Output: []
    z()r#   r   rþ  rÿ  r   r$  c              3  óF   K  — | ]  }t         j                  |«      –— Œ y ­wr4   )rc  rB   r   s     r   rÕ   z parse_returns.<locals>.<genexpr>ÿ
  s   è ø€ ÒF s”—‘˜c×"ÑFùs   ‚!rö   )rp  r÷   )r0  s    r   r,  r,  ö
  sN   € ð
 �dÒØØ�1�~˜Ò ¨R¡°CÒ!7Ø! ! BÐ'ˆÜÑF¨k×.?Ñ.?ÀÓ.EÔFÓFÐFr   c                  óD   — e Zd ZU ded<   ded<   ed	d„«       Zd
d„Zdd„Zy)rg  zdict[str, list[Argument]]ro  rN  rú   c                óN  — t        | t        «      sJ ‚g }d| d   vrI| d   j                  d«      }|D �cg c]%  }t        j	                  |j                  «       «      ‘Œ' }}| d d } i }| D ]ˆ  }t        |t        «      sJ ‚d|v sJ d«       ‚|j                  d«      \  }}d|vsJ d|› d�«       ‚|j                  d«      }|D �cg c]%  }t        j	                  |j                  «       «      ‘Œ' }	}|	||<   ŒŠ t        ||¬«      }
|
j                  «       | k(  sJ d	«       ‚|
S c c}w c c}w )
Nr’  rÿ  rT  zLprecomputed parameters without replacement are allowed only in the last linerý  zillegal kernel param name 'z' in precomputed parameters')ro  rú   zr.to_list() != src)	r^  rb  r÷   r!  rB   rl  r   rg  Úto_list)ÚsrcÚadd_argsÚadd_listr6   ro  Úraw_replace_itemr¡  Úwith_list_rawÚ	with_listÚwith_list_argsrÜ   s              r   rB   zPrecompute.parse  sR  € ä˜#œtÔ$Ð$Ð$ð ˆØ˜˜R™Ñ Ø˜2‘w—}‘} SÓ)ˆHØAIÖJ¸œŸ™ t§z¡z£|Õ4ÐJˆHÐJØ�c�r�(ˆCàˆØ #ò 	*ÐÜÐ.´Ô4Ð4Ð4ØÐ-Ñ-ð ð5óÐ-ð
 "2×!7Ñ!7¸Ó!?ÑˆC�Ø˜c‘>ð Ø-¨c¨UÐ2NÐOó�>ð &×+Ñ+¨CÓ0ˆIØGPÖQ¸tœhŸn™n¨T¯Z©Z«\Õ:ÐQˆNÐQØ)ˆG�CŠLð	*ô ˜w¨HÔ5ˆØ�y‰y‹{˜cÒ!Ð7Ð#7Ó7Ð!Øˆùò+ Kùò  Rs   ´*DÃ*D"c                ó  — | j                   D ]+  }|j                  j                  «       |j                  k7  rŒ+J ‚ | j                  j	                  «       D ]2  }|D ]+  }|j                  j                  «       |j                  k7  rŒ+J ‚ Œ4 y r4   )rú   r6   Úupperro  rû   )r   r¬  r/  s      r   r¯  zPrecompute.__post_init__2  sz   € ð —‘ò 	,ˆAØ—6‘6—<‘<“> Q§V¡VÓ+Ð+Ð+ð	,à—L‘L×'Ñ'Ó)ò 	0ˆDØò 0�Ø—v‘v—|‘|“~¨¯©Ó/Ð/Ð/ñ0ñ	0r   c                óª   — g }| j                   j                  «       D ]3  \  }}dj                  d„ |D «       «      }|j                  |› d|› �«       Œ5 |S )Nrö   c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr4   rÞ  )rÒ   Úparams     r   rÕ   z%Precompute.to_list.<locals>.<genexpr>>  s   è ø€ Ò$P°E¤S¨§ZÑ$Pùrà  r’  )ro  r<   rÛ   rh  )r   Úreplace_listÚkernel_paramÚreplacement_paramsÚreplacementss        r   r�  zPrecompute.to_list;  sa   € ØˆØ04·±×0BÑ0BÓ0Dò 	EÑ,ˆLÐ,ØŸ9™9Ñ$PÐ=OÔ$PÓPˆLØ×Ñ < .°°\°NÐ CÕDð	Eð Ðr   N)rŽ  Úobjectr   rg  rÍ  rM  )r   r    r!   r"   rÊ   rB   r¯  r�  r#   r   r   rg  rg    s-   … ð 'Ó&à	Óàò"ó ð"óH0ôr   rg  r   )rà   r2   r   r1  )rë  r-  r  rÖ  rt  r  r   r1  )rë  r-  r   r1  )rë  r-  r   rf  )r0  r   r   r  )sÚ
__future__r   r4  r$  rƒ  r   Úenumr   r   Útypingr   r   r	   Útorchgen.utilsr
   r   r   Úcollections.abcr   r   r   r%   ru  r÷   rÚ   rØ   ÚAUTOGRAD_KEYSÚFRAGMENT_NAMESPACESr2   rÌ   rÝ   rÔ   rÓ   ÚhasattrrÜ   Úprintré  ru   rq   rp   rw   rç   rê   rŽ   r�   rN   r•   r¤   r�   rž   r   r€   rk   rl   rm   rn   r¬   r­   r³   r{   r™   r¨   rŠ   r·   rU   rm  rá   rã   rå   rè   rë   Údispatch_device_maprï   rø   r"   rÿ   r   r  r  r  r  r  r  r	  r  r#  r(  r-  r¦  rÖ  rn  rv  r  r/  r†  r”  r>  r=  rš  rœ  r›  r!  rc  r  r  r  r_  rr  rf  ru  rw  r|  r}  r,  rg  )Ú	components   0r   ú<module>rª     s™  ðÞ "ã Û Û 	Ý !ß ß 4Ñ 4ç DÑ Dñ ß2ñ: �$Ô÷*ð *ó ð*ôˆdô ð (Ð ð n×sÑsÓuÐ òÐ ð (Ð(Ø,>ö,Ø(€J�Óò,ñ €ð #Ð$:Ð;Ð ô
_>�$ô _>ôD˜Dô óð ò €BØ ò ˆÙ�{ B¨¡GÕ,Ù+Ó-ˆAÙ�!ŒHÙØ˜2˜$˜r˜dÐ"pÐqrÐpsÐtóð ñ	ðð ‡O�OØ×ÑØ‡O�OØ‡O�Oð	Ð ð #×'Ñ'¨¯©Ð9Ð ð ‡O�OØ×ÑØ×ÑØ×ÑØ×ÑØ‡O�OØ‡O�OØ×ÑØ×ÑØ×ÑØ×ÑØ×ÑØ×ÑØ×)Ñ)Ø×5Ñ5Ø×)Ñ)Ø×6Ñ6Ø×ÑØ× Ñ Ø×Ñð ×ÑØ×ÑØ×ÑØ×ÑØ× Ñ Ø×Ñð9€óDóóó*ó%ð
 ,¨VÐ5HÈ%ÐPÐ ô,�ô ,ð^ 46€Ð0Ó 5á&à�‰Ø�‰Ø�‰Ø�‰Ø×Ñðó€ˆjÑ ñ '¨
×(8Ñ(8¸*×:KÑ:KÐ'LÓM€ˆjÑ Ù%Ø×Ñ˜j×6Ñ6Ð7ó€ˆiÑ ð % ZÑ0°=ÀÑ3LÑL€ˆeÑ Ø!.¨uÑ!5¸ÀiÑ8PÑ!P€ˆoÑ à�*Ñ ¨iÑ 8Ñ8ð Ð"Ñ #ô;ˆtô ;ô4�dô ô
�Tô ñ$ �$Ô÷f	Gð f	Gó ðf	GôR�ô ñ �$Ô÷q
ð q
ó ðq
ñh �$Ô÷(ð (ó ð(ñ, �$Ô÷
ð 
ó ð
ñ6 �$Ô÷8ð 8ó ð8ñ` �$Ô÷t@ð t@ó ðt@ñ~ �$Ô÷1ð 1ó ð1ñt �$Ô÷2"ð 2"ó ð2"ôlˆTô ñ. �$Ôô*ˆtó *ó ð*ñ( �$Ôô(�4ó (ó ð(ñ( �$Ôô�dó ó ðñ@ �$Ôôˆtó ó ðñ* �$Ô÷W5ð W5ó ðW5ñt �$Ô÷4)ð 4)ó ð4)ñp �$Ô÷ð ó ðñ �$Ô÷Gð Gó ðGñ �$Ô÷r
ð r
ó ðr
òp	Ð ñ* �$Ô÷e7ð e7ó ðe7ñT �$Ô÷2
ð 2
ó ð2
ðjØðØ.ðØ3?ðà	óñ* �$Ô÷;@ð ;@ó ð;@ó|ó.ó0	Gñ �$Ô÷;ð ;ó ñ;ùòyU,s   Á=U