§
    �Štj§å ã                  ó  — 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
 d dlmZ d dlmZmZ e
r
d dlmZmZmZ  ed	¬
¦  «         G d„ d¦  «        ¦   «         Z G d„ de¦  «        ZdZg d¢Zg d¢Zdgd„ eD ¦   «         z   ZddhZ G d„ de¦  «        Z G d„ de¦  «        Zdpd„ZeD ]>ZeD ]9Z e eeez   ¦  «        s( e¦   «         Z! e"e!¦  «          e#de› e› de!› �¦  «        ‚Œ:Œ?ej$        ej%        ej&        ej'        ej(        hZ)ej%        ej&        hZ*ej&        ej+        ej,        ej-        ej%        ej$        ej'        ej.        ej/        ej0        ej1        ej2        ej3        ej4        ej5        ej6        ej7        ej8        ej9        ej:        ej;        ej<        ej=        ej>        ej?        ej@        ejA        ejB        ejC        ej(        gZDdqd!„ZEdqd"„ZFdqd#„ZGdqd$„ZHdqd%„ZIeFd&eGd'iZJ G d(„ d)e¦  «        ZKi ZLd*eMd+<    eeKjN        eKjO        eKjP        eKjQ        eKjR        g¦  «        eLd,<    eeKjS        eKjT        g¦  «        eLd-<    eeKjU        eKjV        g¦  «        eLd.<   eLd,         eLd-         z  eLd/<   eLd/         eLd.         z  eLd0<   eLd-         eLd.         z  eLd1<    G d2„ d3e¦  «        ZW G d4„ d5e¦  «        ZX G d6„ d7e¦  «        ZY ed	¬
¦  «         G d8„ d9¦  «        ¦   «         ZZ G d:„ d;e¦  «        Z[ ed	¬
¦  «         G d<„ d=¦  «        ¦   «         Z\ ed	¬
¦  «         G d>„ d?¦  «        ¦   «         Z] ed	¬
¦  «         G d@„ dA¦  «        ¦   «         Z^ ed	¬
¦  «         G dB„ dC¦  «        ¦   «         Z_ ed	¬
¦  «         G dD„ dE¦  «        ¦   «         Z` ed	¬
¦  «         G dF„ dG¦  «        ¦   «         Za ed	¬
¦  «         G dH„ dI¦  «        ¦   «         Zb G dJ„ dKe¦  «        Zc ed	¬
¦  «         G dL„ dMeb¦  «        ¦   «         Zd ed	¬
¦  «         G dN„ dOeb¦  «        ¦   «         Ze ed	¬
¦  «         G dP„ dQeb¦  «        ¦   «         Zf ed	¬
¦  «         G dR„ dSeb¦  «        ¦   «         Zg ed	¬
¦  «         G dT„ dU¦  «        ¦   «         Zh ed	¬
¦  «         G dV„ dW¦  «        ¦   «         Zi ed	¬
¦  «         G dX„ dY¦  «        ¦   «         Zj ed	¬
¦  «         G dZ„ d[¦  «        ¦   «         Zk ed	¬
¦  «         G d\„ d]¦  «        ¦   «         Zlg d^¢Zm ed	¬
¦  «         G d_„ d`¦  «        ¦   «         Zn ed	¬
¦  «         G da„ db¦  «        ¦   «         Zodrdf„Zp ed	¬
¦  «         G dg„ dh¦  «        ¦   «         Zqdsdi„Zrdtdj„Zsdudm„Zt ed	¬
¦  «         G dn„ do¦  «        ¦   «         ZudS )vé    )ÚannotationsN)Ú	dataclass)ÚautoÚEnum)ÚTYPE_CHECKING)Úassert_never)ÚNamespaceHelperÚ
OrderedSet)ÚCallableÚIteratorÚSequenceT)Úfrozenc                  ó,   — e Zd ZU ded<   ded<   dd„ZdS )	ÚLocationÚstrÚfileÚintÚlineÚreturnc                ó$   — | j         › d| j        › �S )Nú:)r   r   ©Úselfs    úL/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torchgen/model.pyÚ__str__zLocation.__str__1   s   € Ø”)Ð)Ð)˜dœiÐ)Ð)Ð)ó    N©r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r   © r   r   r   r   ,   s<   € € € € € € à€I€I�IØ€I€I�Ið*ð *ð *ð *ð *ð *r   r   c                  ó6   — e Zd Z e¦   «         Z e¦   «         ZdS )ÚVariantN)r   r   r    r   ÚfunctionÚmethodr"   r   r   r$   r$   6   s$   € € € € € Øˆt‰vŒv€HØˆT‰VŒV€F€F€Fr   r$   z
at::native)ÚCPUÚCUDAÚHIPÚXLAÚMTIAÚMPSÚIPUÚXPUÚHPUÚVEÚLazyÚMetaÚPrivateUse1ÚPrivateUse2ÚPrivateUse3)Ú Ú	QuantizedÚSparseÚ	SparseCsrÚNestedTensorÚAutogradÚAutogradNestedTensorc                ó   — g | ]}d |z   ‘ŒS )r;   r"   )Ú.0Ú	components     r   ú
<listcomp>r@   [   s*   € ð ,ð ,ð ,Ø(€J�Ñð,ð ,ð ,r   Ú	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� e¦   «         Z�d	d„Z‘d	d„Z’e“d
d„¦   «         Z”dS )ÚDispatchKeyr   r   r   c                ó   — | j         S ©N©Únamer   s    r   r   zDispatchKey.__str__ù   ó
   € ØŒyÐr   c                óD   — t          | ¦  «                             ¦   «         S rF   )r   Úlowerr   s    r   rK   zDispatchKey.lowerü   s   € Ý�4‰yŒy�ŠÑ Ô Ð r   Úvaluec                ó‚   — t           j                             ¦   «         D ]\  }}|| k    r|c S Œt          d| › �¦  «        ‚)Nzunknown dispatch key )rD   Ú__members__ÚitemsÚAssertionError©rL   ÚkÚvs      r   ÚparsezDispatchKey.parseÿ   sR   € åÔ+×1Ò1Ñ3Ô3ð 	ð 	‰DˆAˆqØ�EŠzˆzØ���ð åÐ<°UÐ<Ð<Ñ=Ô=Ð=r   Nr   )rL   r   r   rD   )•r   r   r    Ú	UndefinedÚCatchAllr   ÚFPGAÚMAIAÚVulkanÚMetalÚMKLDNNÚOpenGLÚOpenCLÚIDEEPÚCustomRNGKeyIdÚ	MkldnnCPUr8   r9   r:   ÚDenseÚPythonTLSSnapshotÚPreDispatchÚPythonDispatcherÚPythonÚFuncTorchDynamicLayerBackModeÚ
ZeroTensorÚ	ConjugateÚNegativeÚBackendSelectÚNamedÚAutogradOtherÚAutogradFunctionalityr<   ÚTracerÚAutocastÚAutocastCPUÚAutocastCUDAÚAutocastXPUÚBatchedÚVmapModeÚFuncTorchGradWrapperÚFuncTorchBatchedÚBatchedNestedTensorÚFuncTorchVmapModeÚFuncTorchDynamicLayerFrontModeÚFunctionalizeÚTESTING_ONLY_GenericWrapperÚTESTING_ONLY_GenericModeÚADInplaceOrViewr;   ÚCompositeImplicitAutogradÚ%CompositeImplicitAutogradNestedTensorÚCompositeExplicitAutogradÚ&CompositeExplicitAutogradNonFunctionalÚFuncTorchBatchedDecompositionr'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   Ú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   rK   ÚstaticmethodrT   r"   r   r   rD   rD   d   s…  € € € € € Ø€IØ€Hàˆ4‰6Œ6€DØˆ4‰6Œ6€DØˆT‰VŒV€FØˆD‰FŒF€EØˆT‰VŒV€FØˆT‰VŒV€FØˆT‰VŒV€FØˆD‰FŒF€EØ�T‘V”V€NØ�‘”€IØˆT‰VŒV€FØ�‘”€IØ�4‘6”6€LØˆD‰FŒF€Eà˜™œÐØ�$‘&”&€KØ�t‘v”vÐØˆT‰VŒV€FØ$( D¡F¤FÐ!Ø�‘”€JØ�‘”€IØˆt‰vŒv€HØ�D‘F”F€MØˆD‰FŒF€EØ�D‘F”F€MØ ˜D™FœFÐØ˜4™6œ6ÐØˆT‰VŒV€FØˆt‰vŒv€HØ�$‘&”&€KØ�4‘6”6€LØ�$‘&”&€KØˆd‰fŒf€GØˆt‰vŒv€HØ˜4™6œ6ÐØ�t‘v”vÐØ˜$™&œ&ÐØ˜™œÐØ%) T¡V¤VÐ"Ø�D‘F”F€MØ"& $¡&¤&ÐØ#˜t™vœvÐà�d‘f”f€OØˆt‰vŒv€HØ $ ¡¤ÐØ,0¨D©F¬FÐ)Ø $ ¡¤ÐØ-1¨T©V¬VÐ*Ø$( D¡F¤FÐ!ð ˆ$‰&Œ&€CØˆ4‰6Œ6€DØ
ˆ$‰&Œ&€CØ
ˆ$‰&Œ&€CØˆ4‰6Œ6€DØ
ˆ$‰&Œ&€CØ
ˆ$‰&Œ&€CØ
ˆ$‰&Œ&€CØ
ˆ$‰&Œ&€CØ	ˆ‰Œ€BØˆ4‰6Œ6€DØˆ4‰6Œ6€DØ�$‘&”&€KØ�$‘&”&€KØ�$‘&”&€KØ�4‘6”6€LØ�D‘F”F€MØ�4‘6”6€LØ�4‘6”6€LØ�D‘F”F€MØ�4‘6”6€LØ�4‘6”6€LØ�4‘6”6€LØ�4‘6”6€LØ�$‘&”&€KØ�D‘F”F€MØ�D‘F”F€MØ˜4™6œ6ÐØ˜4™6œ6ÐØ˜4™6œ6ÐØ�‘”€IØ�‘”€JØ�‘”€IØ�‘”€IØ�‘”€JØ�‘”€IØ�‘”€IØ�‘”€IØ�‘”€IØˆt‰vŒv€HØ�‘”€JØ�‘”€JØ˜™œÐØ˜™œÐØ˜™œÐØ�4‘6”6€LØ�D‘F”F€MØ�4‘6”6€LØ�4‘6”6€LØ�D‘F”F€MØ�4‘6”6€LØ�4‘6”6€LØ�4‘6”6€LØ�4‘6”6€LØ�$‘&”&€KØ�D‘F”F€MØ�D‘F”F€MØ˜4™6œ6ÐØ˜4™6œ6ÐØ˜4™6œ6ÐØ�d‘f”f€OØ�t‘v”vÐØ�d‘f”f€OØ�d‘f”f€OØ�t‘v”vÐØ�d‘f”f€OØ�d‘f”f€OØ�d‘f”f€OØ�d‘f”f€OØ�T‘V”V€NØ�t‘v”vÐØ�t‘v”vÐØ"˜d™fœfÐØ"˜d™fœfÐØ"˜d™fœfÐØ�$‘&”&€KØ�4‘6”6€LØ�$‘&”&€KØ�$‘&”&€KØ�4‘6”6€LØ�$‘&”&€KØ�$‘&”&€KØ�$‘&”&€KØ�$‘&”&€KØ�‘”€JØ�4‘6”6€LØ�4‘6”6€LØ˜$™&œ&ÐØ˜$™&œ&ÐØ˜$™&œ&Ððð ð ð ð!ð !ð !ð !ð ð>ð >ð >ñ „\ð>ð >ð >r   rD   c                  óJ   — e Zd Z e¦   «         Z e¦   «         Z e¦   «         ZdS )Ú_TorchDispatchModeKeyN)r   r   r    r   ÚFAKEÚPROXYÚ
FUNCTIONALr"   r   r   rÐ   rÐ     s/   € € € € € Øˆ4‰6Œ6€DØˆD‰FŒF€EØ�‘”€J€J€Jr   rÐ   r   r   c                 ó’   ‡— g } t           D ](Š|                      ˆfd„t          D ¦   «         ¦  «         Œ)d                     | ¦  «        S )Nc              3  ó(   •K  — | ]}d ‰› |› d�V — ŒdS )z    z	 = auto()Nr"   )r>   ÚbcÚfks     €r   ú	<genexpr>z.codegen_per_backend_entries.<locals>.<genexpr>  s4   øè è € ÐGÐG¨bÐ)˜Ð)˜BÐ)Ð)Ð)ÐGÐGÐGÐGÐGÐGr   ú
)ÚFUNCTIONALITY_KEYSÚextendÚBACKEND_COMPONENTSÚjoin)Úrr×   s    @r   Úcodegen_per_backend_entriesrß     sT   ø€ Ø€AÝ ð Hð HˆØ	�ŠÐGÐGÐGÐGÕ4FÐGÑGÔGÑGÔGÐGÐGØ�9Š9�Q‰<Œ<Ðr   zMissing zL from DispatchKey enum.  Here is the autogenerated list we expect to have:

ÚdkÚboolc                ób   — | t           j        t           j        t           j        t           j        hv S rF   ©rD   r€   r�   r~   r   ©rà   s    r   Úis_generic_dispatch_keyrå   N  s,   € ØÝÔ-ÝÔ:ÝÔ-ÝÔ9ð	ð ð r   c                óŽ   — | t           j        t           j        t           j        t           j        t           j        t           j        hv S rF   )rD   r(   r„   r“   r¢   r±   rÀ   rä   s    r   Úis_cuda_dispatch_keyrç   X  s8   € ØÝÔÝÔ!ÝÔÝÔ!ÝÔ$ÝÔ ðð ð r   c                óŽ   — | t           j        t           j        t           j        t           j        t           j        t           j        hv S rF   )rD   r.   rŠ   r™   r¨   r·   rÆ   rä   s    r   Úis_xpu_dispatch_keyré   d  s7   € ØÝŒÝÔ ÝÔÝÔ ÝÔ#ÝÔðð ð r   c                ó   — | t           v S rF   )ÚSTRUCTURED_DISPATCH_KEYSrä   s    r   Úis_structured_dispatch_keyrì   q  s   € ØÕ)Ð)Ð)r   c                ó   — | t           v S rF   )ÚUFUNC_DISPATCH_KEYSrä   s    r   Úis_ufunc_dispatch_keyrï   u  s   € àÕ$Ð$Ð$r   ÚcudaÚxpuc                  óÆ  — 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dS )Ú
ScalarTyper   r   c                ó   — | j         S rF   rG   r   s    r   r   zScalarType.__str__’  rI   r   rL   úScalarType | Nonec                ób   — t           j                             ¦   «         D ]\  }}|| k    r|c S Œd S rF   )ró   rN   rO   rQ   s      r   Úmaybe_parsezScalarType.maybe_parse•  s@   € åÔ*×0Ò0Ñ2Ô2ð 	ð 	‰DˆAˆqØ�EŠzˆzØ���ð àˆtr   c                ób   — t                                | ¦  «        }|€t          d| › �¦  «        ‚|S )Nzunknown dtype )ró   r÷   rP   )rL   Úmb_rs     r   rT   zScalarType.parseœ  s6   € å×%Ò% eÑ,Ô,ˆØˆ<Ý Ð!9°%Ð!9Ð!9Ñ:Ô:Ð:Øˆr   ÚvaluesúOrderedSet[ScalarType]c                ó   — t          ¦   «         }|                      d¦  «        D ]Y}|t          v r!|                     t          |         ¦  «         Œ,|                     t
                               |¦  «        ¦  «         ŒZ|S )Nú, )r
   ÚsplitÚDTYPE_CLASSESÚupdateÚaddró   rT   )rú   ÚdtypesrL   s      r   Ú	parse_setzScalarType.parse_set£  ss   € å)3©¬ˆØ—\’\ $Ñ'Ô'ð 	4ð 	4ˆEØ�Ð%Ð%Ø—’�m¨EÔ2Ñ3Ô3Ð3Ð3à—
’
�:×+Ò+¨EÑ2Ô2Ñ3Ô3Ð3Ð3Øˆr   Nr   )rL   r   r   rõ   )rL   r   r   ró   )rú   r   r   rû   )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÷   rT   r  r"   r   r   ró   ró   ~  sN  € € € € € Øˆ4‰6Œ6€DØˆ4‰6Œ6€DØˆD‰FŒF€EØ
ˆ$‰&Œ&€CØˆ4‰6Œ6€DØˆ4‰6Œ6€DØˆD‰FŒF€EØˆT‰VŒV€FØ�$‘&”&€KØ�4‘6”6€LØ�D‘F”F€MØˆ4‰6Œ6€DØˆt‰vŒv€HØ�$‘&”&€KØ�d‘f”f€OØ�D‘F”F€MØ�d‘f”f€OØ�T‘V”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dS )	ÚUfuncKeyr   r   c                ó   — | j         S rF   rG   r   s    r   r   zUfuncKey.__str__Ø  rI   r   rL   c                ó‚   — t           j                             ¦   «         D ]\  }}|| k    r|c S Œt          d| › �¦  «        ‚)Nzunknown ufunc key )r  rN   rO   rP   rQ   s      r   rT   zUfuncKey.parseÛ  sR   € åÔ(×.Ò.Ñ0Ô0ð 	ð 	‰DˆAˆqØ�EŠzˆzØ���ð åÐ9°%Ð9Ð9Ñ:Ô:Ð:r   Nr   )rL   r   r   r  )r   r   r    r   ÚCUDAFunctorÚCUDAFunctorOnOtherÚCUDAFunctorOnSelfÚ	CPUScalarÚ	CPUVectorÚ
ScalarOnlyÚGenericr   rÎ   rT   r"   r   r   r  r  É  s›   € € € € € ð �$‘&”&€KØ˜™œÐØ˜™œÐà�‘”€IØ�‘”€Ið �‘”€JØˆd‰fŒf€Gðð ð ð ð ð;ð ;ð ;ñ „\ð;ð ;ð ;r   r  c                  ó   — e Zd ZdZdZdS )ÚDeviceCheckTyper   é   N)r   r   r    ÚNoCheckÚ	ExactSamer"   r   r   r(  r(  ã  s   € € € € € Ø€GØ€I€I€Ir   r(  c                  óJ   — e Zd Z e¦   «         Z e¦   «         Z e¦   «         ZdS )ÚViewSchemaKindN)r   r   r    r   ÚaliasingÚaliasing_inplaceÚnon_aliasingr"   r   r   r-  r-  è  s0   € € € € € Øˆt‰vŒv€HØ�t‘v”vÐØ�4‘6”6€L€L€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	 d7d8d-„¦   «         Zd9d/„Zd9d0„Zed:d1„¦   «         Z	ed:d2„¦   «         Z
ed;d4„¦   «         Zed<d5„¦   «         Zed:d6„¦   «         Zd%S )=ÚNativeFunctionr   Ú	namespaceÚFunctionSchemaÚfuncrá   Ú!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ÚtagsNÚeiúdict[str, object]Ú
valid_tagsÚignore_keysúset[DispatchKey] | Noner   úMtuple[NativeFunction, dict[DispatchKey, dict[OperatorName, BackendMetadata]]]c           	     ól  ‡7— |                       ¦   «         }|                     d¦  «        }t          |t          ¦  «        st	          d|› �¦  «        ‚t          j        |d¬¦  «        }|                     d¬¦  «        }t           	                    |j
        ¦  «        Š7|                     dg ¦  «        }t          |t          ¦  «        st	          d|› �¦  «        ‚t          |¦  «        }	|                     d	d
¦  «        }
t          |
t          ¦  «        st	          d|
› �¦  «        ‚|
r‰7j        j        rt	          d¦  «        ‚|                     dd¦  «        }t          |t          ¦  «        st	          d|› �¦  «        ‚t          ¦   «         }|                     d¦  «        D ]_}|dk    r |                     t$          j        ¦  «         Œ(|dk    r |                     t$          j        ¦  «         ŒNt	          d|› �¦  «        ‚|                     dd
¦  «        }t          |t          ¦  «        st	          d|› �¦  «        ‚|                     dd
¦  «        }t          |t          ¦  «        st	          d|› �¦  «        ‚|                     dd¦  «        }t          |t          ¦  «        st	          d|› �¦  «        ‚|                     dd¦  «        }|�'t          |t          ¦  «        st	          d|› �¦  «        ‚|� |t*          j        v st	          d|› �¦  «        ‚|€t*          j        }nt*          |         }|                     dd
¦  «        }t          |t          ¦  «        st	          d|› �¦  «        ‚|                     dd¦  «        }|�'t          |t          ¦  «        st	          d|› �¦  «        ‚|�d|v rt	          d¦  «        ‚d}|�t0           	                    |¦  «        }|                     dd¦  «        }|�'t          |t          ¦  «        st	          d|› �¦  «        ‚|�d|v rt	          d ¦  «        ‚|                     d!d¦  «        }|�'t          |t          ¦  «        st	          d|› �¦  «        ‚|�t$          j        |v rt	          d"¦  «        ‚|                     d#d¦  «        }|�'t          |t          ¦  «        st	          d|› �¦  «        ‚|                     d$d¦  «        }|�|durt	          d%|› �¦  «        ‚|rt2           	                    |¦  «        nd}|                     d&g ¦  «        }t          |t          ¦  «        r|g}t          |t          ¦  «        st	          d'|› �¦  «        ‚|dk    rd(|v r|                     d(¦  «         ‰7                     ¦   «         rd)|v r|                     d)¦  «         ‰7j        j        j        rd*|v r|                     d*¦  «         t          ¦   «         }|D ]O}t=          |¦  «        d+k    rt	          d,¦  «        ‚||v r|                     |¦  «         Œ>t	          d-|› �¦  «        ‚d+d.lm } |                     d/d¦  «        }|�'t          |tB          ¦  «        st	          d0|› �¦  «        ‚i } d+}!|��|rt	          d1¦  «        ‚d
}"| "                    ¦   «         D �]Q\  }#}|#d2k    rŒt          |#t          ¦  «        st	          d3|#› d4|› �¦  «        ‚t          |t          ¦  «        st	          d5|› d4|› �¦  «        ‚|#                     d6¦  «        D ]Ú}$tF           	                    |$ $                    ¦   «         ¦  «        }%|!dz  }!|r|%|v rŒ:|%tJ          vrt	          d7|%› d8|› d9�¦  «        ‚t          j        |d:¬;¦  «        }|                     d<¬¦  «        }&tM          |j
        |otO          |%¦  «        |&d=z   ¬>¦  «        | |%<   |%tF          j(        u r||                     ‰7¦  «        k    rd}"ŒÛ�ŒS|!dk    r|"rt	          d?¦  «        ‚|s†|  )                    ¦   «         tF          j(        hk    sc| tF          j(                  *                    ¦   «         s?|!dk    s9t	          d@|                     ‰7¦  «        › dA| tF          j(                 › dB�¦  «        ‚n¶|s´|€²t          ‰7j        j        ¦  «        }'|' +                    dC¦  «        s:|' ,                    dD¦  «        s%‰7j        j-        r,‰7j         .                    ¦   «         st	          dE|'› dF�¦  «        ‚tM          |                     ‰7¦  «        d
t^          ¬G¦  «        | tF          j(        <   dH„ | D ¦   «         }(t=          |(¦  «        dk    s>t=          |(¦  «        dIk    rtF          j0        |(vrtF          j1        |(v st	          dJ¦  «        ‚|                     dKdL¦  «        })t          |)t          ¦  «        st	          dM|)› �¦  «        ‚|)dLk    rg ndN„ |)                     d¦  «        D ¦   «         }*|                     dOi ¦  «        }+i },t          |+t          ¦  «        r3td           	                    |+tf          j4        ¦  «        |,tf          j4        <   nÏt          |+tB          ¦  «        r¨|+ "                    ¦   «         D ]’\  }$}-|$d2k    rŒt          |$t          ¦  «        st	          dP|$› �¦  «        ‚t          |-t          ¦  «        st	          dQ|-› �¦  «        ‚tf           	                    |$¦  «        }.td           	                    |-|.¦  «        |,|.<   Œ“nt	          dR|+› �¦  «        ‚|,rh|st	          dS¦  «        ‚d+dl5m6c m7}/ tp          D ]F}%|%| v rt	          dT|%› �¦  «        ‚tM          |/ 9                    ‰7|%¦  «        dt^          ¬>¦  «        | |%<   ŒG|rd}0nt|  )                    ¦   «         tF          j(        hk    oP|  )                    ¦   «         tF          j1        hk    o-|  )                    ¦   «         tF          j(        tF          j1        hk    }0tF          j(        | v }1tF          j1        | v }2tF          j:        | v }3tF          j0        | v }4ˆ7fdU„|  "                    ¦   «         D ¦   «         }5|                     d2d¦  «         |rt	          dV|› �¦  «        ‚|�!tv          D ]}6|6| v rt	          dW|6› dX�¦  «        ‚Œty          d`i d‰7“d	|
“d|“d|“d|“d|“d$|“dK|*“dO|,“d|“d|“d!|“d#|“d|“d|“dY|“d|	“dZ|0“d[|1“d\|2“d]|3“d^|4“d&|“d_|“Ž|5fS )azp
        Parse a NativeFunction from a dictionary as directly parsed
        from native_functions.yaml
        r5  znot a str: r)  )Únamespaced_entityÚ	max_levelÚaten)ÚdefaultrG  z#cpp_no_default_args is not a list: r6  Fz1use_const_ref_for_mutable_tensors is not a bool: z4see https://github.com/pytorch/pytorch/issues/145522r<  r%   zvariants is not a str: rý   r&   zillegal variant r=  znot a bool: r>  r7  Tr8  Nzillegal device_check: rB  rC  ú::zbnamespace is not supported in structured delegate, using the same namespace as the native functionrD  zbnamespace is not supported in structured inherits, using the same namespace as the native functionr:  z&functions in modules cannot be methodsr;  rE  z5precomputed requires structured=True, got structured=rM  ztags is not a list: Úpt2_compliant_tagÚoutÚinplacer   zvalid_tags is emptyzillegal tag )ÚcppÚdispatchzdispatch is not a dict: zncannot 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.é   )rV  Úatz::native)ÚkernelrB  Ú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__)rB  rd  c                ó’   — g | ]D}|t           j        k    s0|t           j        k    s |t           j        k    s|t           j        k    ¯B|‘ŒES r"   rã   )r>   Úds     r   r@   z,NativeFunction.from_yaml.<locals>.<listcomp>l  s]   € ð "
ð "
ð "
àØ•KÔ9Ò9Ð9Ø•KÔFÒFÐFØ•KÔ9Ò9Ð9Ø•KÔEÒEÐEð ð
 FÐEÐEr   é   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@  r6   zautogen is not a str: c                óB   — g | ]}t                                |¦  «        ‘ŒS r"   )ÚOperatorNamerT   ©r>   Úxs     r   r@   z,NativeFunction.from_yaml.<locals>.<listcomp>�  s&   € ÐIÐIÐI¨A•,×$Ò$ QÑ'Ô'ÐIÐIÐIr   rA  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 c                ó*   •— i | ]\  }}|‰j         |i“ŒS r"   rG   )r>   rR   rS   r5  s      €r   ú
<dictcomp>z,NativeFunction.from_yaml.<locals>.<dictcomp>Û  s%   ø€ ÐKÐKÐK±$°!°Q˜A ¤	¨1˜~ÐKÐKÐKr   zleftover entries: z+if structured_delegate, then must not have z* in dispatch dictionary (it is delegated!)r?  rH  rI  rJ  rK  rL  r3  r"   )=ÚcopyÚpopÚ
isinstancer   rP   r	   Úfrom_namespaced_entityÚget_cpp_namespacer4  rT   Úentity_nameÚlistÚsetrá   Ú	argumentsr[  rþ   r  r$   r%   r&   r(  rN   r+  rk  Ú
PrecomputeÚappendÚ	is_out_fnrH   r\  ÚlenÚtorchgen.apir]  ÚdictrO   rD   ÚstripÚdispatch_keysÚBackendMetadatarì   r~   ÚkeysÚsupports_symintÚ
startswithÚendswithÚtensor_optionsÚhas_tensor_argÚDEFAULT_KERNEL_NAMESPACEr�   r   ÚUfuncInnerLoopr  r&  Útorchgen.api.ufuncÚapiÚufuncrî   Úschema_kernel_namer€   rë   r2  )8rN  r?  rP  rQ  ÚeÚfuncsÚnamespace_helperr3  Úcpp_no_default_args_listrG  r6  Ú
variants_sr<  rS   r=  r>  r7  Údevice_check_sr8  rB  Ústructured_delegate_srC  rD  r:  r;  Úprecomputed_dictrE  Útags_inprM  Útr]  Úraw_dispatchr^  Únum_dispatch_keysÚ%redundant_composite_implicit_autogradÚksrR   Údispatch_keyÚkernel_namespacerH   Úcomposites_in_dispatchÚautogen_strr@  Úraw_ufunc_inner_looprA  ÚvoÚ	ufunc_keyrŒ  rH  rI  rJ  rK  rL  Úbackend_metadataÚkeyr5  s8                                                          @r   Ú	from_yamlzNativeFunction.from_yamlp  s�  ø€ ð �GŠG‰IŒIˆà—’�f‘”ˆÝ˜%¥Ñ%Ô%ð 	8Ý Ð!6¨uÐ!6Ð!6Ñ7Ô7Ð7å*ÔAØ#¨qð
ñ 
ô 
Ðð %×6Ò6¸vÐ6ÑFÔFˆ	Ý×#Ò#Ð$4Ô$@ÑAÔAˆà#$§5¢5Ð)>ÀÑ#CÔ#CÐ ÝÐ2µDÑ9Ô9ð 	Ý ØPÐ6NÐPÐPñô ð õ "Ð":Ñ;Ô;Ðà,-¯EªEØ/°ñ-
ô -
Ð)õ Ð;½TÑBÔBð 	Ý ØgÐDeÐgÐgñô ð ð -ð 	ØŒ~Ô!ð Ý$ØJñô ð ð —U’U˜: zÑ2Ô2ˆ
Ý˜*¥cÑ*Ô*ð 	IÝ Ð!G¸:Ð!GÐ!GÑHÔHÐHÝ!$¡¤ˆØ×!Ò! $Ñ'Ô'ð 	=ð 	=ˆAØ�JŠˆØ—’�WÔ-Ñ.Ô.Ð.Ð.Ø�h’�Ø—’�Wœ^Ñ,Ô,Ð,Ð,å$Ð%;¸Ð%;Ð%;Ñ<Ô<Ð<à%&§U¢UÐ+GÈÑ%OÔ%OÐ"ÝÐ4µdÑ;Ô;ð 	NÝ Ð!LÐ0JÐ!LÐ!LÑMÔMÐMàŸUšUÐ#7¸Ñ?Ô?ÐÝÐ,­dÑ3Ô3ð 	FÝ Ð!DÐ0BÐ!DÐ!DÑEÔEÐEà—u’u˜^¨TÑ2Ô2ˆÝ˜,­Ñ-Ô-ð 	@Ý Ð!>°Ð!>Ð!>Ñ?Ô?Ð?àŸš˜~¨tÑ4Ô4ˆØÐ&­*°^ÅSÑ*IÔ*IÐ&Ý Ð!?¨~Ð!?Ð!?Ñ@Ô@Ð@àÐ" n½Ô8SÐ&SÐ&Så Ð!J¸.Ð!JÐ!JÑKÔKÐKàÐ!Ý*Ô4ˆLˆLå*¨>Ô:ˆLà—U’U˜<¨Ñ/Ô/ˆ
Ý˜*¥dÑ+Ô+ð 	>Ý Ð!<°
Ð!<Ð!<Ñ=Ô=Ð=à !§¢Ð&;¸TÑ BÔ BÐà!Ð)­ZÐ8MÍsÑ-SÔ-SÐ)å Ð!FÐ/DÐ!FÐ!FÑGÔGÐGØ Ð,°Ð9NÐ1NÐ1NÝ ðCñô ð ð 48ÐØ Ð,Ý".×"4Ò"4Ð5JÑ"KÔ"KÐàŸešeÐ$9¸4Ñ@Ô@ÐØ#Ð+­zÐ:MÍsÑ/SÔ/SÐ+Ý Ð!DÐ/BÐ!DÐ!DÑEÔEÐEØÐ*¨tÐ7JÐ/JÐ/JÝ ðCñô ð ð
 Ÿš˜o¨tÑ4Ô4ˆØÐ%­°MÅ3Ñ)GÔ)GÐ%Ý Ð!>¨}Ð!>Ð!>Ñ?Ô?Ð?ØÐ$­¬¸8Ð)CÐ)CÝ Ð!IÑJÔJÐJàŸEšEÐ"5°tÑ<Ô<ÐØ!Ð)­ZÐ8IÍ3Ñ-OÔ-OÐ)Ý Ð!BÐ/@Ð!BÐ!BÑCÔCÐCàŸ5š5 °Ñ5Ô5ÐØÐ'¨J¸dÐ,BÐ,BÝ ØTÈ
ÐTÐTñô ð ð =MÐV•j×&Ò&Ð'7Ñ8Ô8Ð8ÐRVˆà—5’5˜ Ñ$Ô$ˆÝ�h¥Ñ$Ô$ð 	"Ø �zˆHÝ˜(¥DÑ)Ô)ð 	DÝ Ð!B¸Ð!BÐ!BÑCÔCÐCð ˜ÒÐÐ#6¸*Ð#DÐ#DØ�OŠOÐ/Ñ0Ô0Ð0ð �>Š>ÑÔð 	# ¨Ð 3Ð 3Ø�OŠO˜EÑ"Ô"Ð"ð Œ9Œ>Ô!ð 	' i°:Ð&=Ð&=Ø�OŠO˜IÑ&Ô&Ð&å™œˆØð 	9ð 	9ˆAÝ�:‰Œ !Ò#Ð#Ý$Ð%:Ñ;Ô;Ð;à�JˆˆØ—’˜‘”��å$Ð%7°AÐ%7Ð%7Ñ8Ô8Ð8à$Ð$Ð$Ð$Ð$Ð$à—u’u˜Z¨Ñ.Ô.ˆØÐ$­
°<ÅÑ(FÔ(FÐ$Ý Ð!?¸AÐ!?Ð!?Ñ@Ô@Ð@Ø79ˆØ!"ÐØÑ#Ø)ð Ý$ðCñô ð ð 5:Ð1Ø%×+Ò+Ñ-Ô-ð )Eñ )E‘��AØ˜Ò#Ð#ØÝ! "¥cÑ*Ô*ð Ý(ØH°ÐHÐH¸,ÐHÐHñô ð õ " !¥SÑ)Ô)ð Ý(ØI°1ÐIÐI¸<ÐIÐIñô ð ð Ÿš #™œð Eð E�AÝ#.×#4Ò#4°Q·W²W±Y´YÑ#?Ô#?�LØ%¨Ñ*Ð%à"ð ! |°{Ð'BÐ'BØ Ø#­=Ð8Ð8Ý,ð?¨Lð ?ð ?ÀQð ?ð ?ð ?ñô ð õ (7Ô'MØ Qð(ñ (ô (Ð$ð (8×'IÒ'IÐRVÐ'IÑ'WÔ'WÐ$õ .=Ø/Ô;Ø#-ð $EÝ6°|ÑDÔDØ'7¸*Ñ'Dð	.ñ .ô .�H˜\Ñ*ð %­Ô(MÐMÐMØ §¢¨$¡¤Ò/Ð/à@DÐ=øñ=EðF ! AÒ%Ð%Ð*OÐ%Ý$ð#ñô ð ð $ð
à—=’=‘?”?¥{Ô'LÐ&MÒMÐMØ�KÔAÔB×RÒRÑTÔTð Nà$¨Ò)Ð)å$ð;Ðhk×hpÒhpÐquÑhvÔhvð ;ð ;Ø'­Ô(MÔNð;ð ;ð ;ñô ð øð
 ð 	Ð 3Ð ;Ý�t”y”~Ñ&Ô&ˆDà—’ Ñ'Ô'ðà—=’= Ñ)Ô)ðð
 ”NÔ1ðð !œN×9Ò9Ñ;Ô;ðõ %ð- ð -ð -ð -ñô ð õ ?NØ—’˜‘”¨5Õ@Xð?ñ ?ô ?ˆH•[Ô:Ñ;ð"
ð "
àð"
ñ "
ô "
Ðõ Ð&Ñ'Ô'¨1Ò,Ð,åÐ*Ñ+Ô+¨qÒ0Ð0åÔFØ1ð2ð 2õ  ÔEØ-ð.ð .õ
 !ðvñô ð ð —e’e˜I rÑ*Ô*ˆÝ˜+¥sÑ+Ô+ð 	IÝ Ð!G¸+Ð!GÐ!GÑHÔHÐHð ˜bÒ Ð ð ˆBàIÐI°×1BÒ1BÀ4Ñ1HÔ1HÐIÑIÔIð 	ð  !ŸušuÐ%7¸Ñ<Ô<ÐØÐÝÐ*­CÑ0Ô0ð 	Ý1?×1EÒ1EØ$¥hÔ&6ñ2ô 2Ð�XÔ-Ñ.Ð.õ Ð,­dÑ3Ô3ð 	Ø-×3Ò3Ñ5Ô5ð Rð R‘��2Ø˜
’?�?ØÝ! !¥SÑ)Ô)ð TÝ(Ð)RÈqÐ)RÐ)RÑSÔSÐSÝ! "¥cÑ*Ô*ð WÝ(Ð)UÐQSÐ)UÐ)UÑVÔVÐVÝ$ŸNšN¨1Ñ-Ô-�	Ý.<×.BÒ.BÀ2ÀyÑ.QÔ.QÐ  Ñ+Ð+ðRõ !ØKÐ5IÐKÐKñô ð ð ð 	Øð AÝ$Ð%?Ñ@Ô@Ð@ð /Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.å 3ð 	ð 	�Ø 8Ð+Ð+Ý(Ø[È\Ð[Ð[ñô ð õ *9Ø ×3Ò3°D¸,ÑGÔGØ#Ý":ð*ñ *ô *�˜Ñ&Ð&ð ð 	àˆKˆKð —’‘”¥KÔ$IÐ#JÒJð Ø—M’M‘O”OÝÔEÐFòGðð —M’M‘O”OåÔ9ÝÔEðòð	 õ Ô1°XÐ=ð 	/õ Ô=ÀÐIð 	=õ Ô1°XÐ=ð 	/õ Ô>À(ÐJð 	>ð LÐKÐKÐK¸(¿.º.Ñ:JÔ:JÐKÑKÔKÐð 	
�Šˆj˜$ÑÔÐØð 	;Ý Ð!9°aÐ!9Ð!9Ñ:Ô:Ð:ð Ð*Ý/ð ð �Ø˜(�?�?Ý(ð-Àcð -ð -ð -ñô ð ð #õ ð ð ð Ø�Tðà2SÐ2Sðð "˜ðð &˜:ð	ð
 %8Ð$7ðð %8Ð$7ðð (˜Kðð  ˜ðð "2Ð!1ðð ,FÐ+Eðð $6Ð#5ðð ,˜mðð #4Ð"3ðð *˜\ðð *˜\ðð  �Cð!ð" %8Ð$7ð#ð$ (˜Kð%ð& 8^Ð7]ð'ð( FzÐEyð)ð* 8^Ð7]ð+ð, G|ÐF{ð-ð. �Tð/ð0 $˜)ð1ð4 ð7
ð 	
r   ÚNonec                ó^   — | j         rt          d¦  «        ‚| j        st          d¦  «        ‚d S )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))rB  rP   rC  r   s    r   Úvalidate_unstructuredz$NativeFunction.validate_unstructured
  sT   € ð Œ?ð 	Ý ð5ñô ð ð Ô'ð 	Ý ðiñô ð ð	ð 	r   c                ób  — | j         j        j        r%| j        t          j        hk    rt          d¦  «        ‚| j        rL| j                              ¦   «         t          j        k    rt          d¦  «        ‚| j
        st          d¦  «        ‚| j        rL| j                              ¦   «         t          j        k    rt          d¦  «        ‚| j
        st          d¦  «        ‚| j        r| j        rt          d¦  «        ‚d„ | j                              ¦   «         D ¦   «         }t                               | j        |¦  «        }t!          |¦  «        dk    rt          d|› �¦  «        ‚| j        �| j        st          d	¦  «        ‚t%          | j         j        ¦  «                             d
¦  «        r$| j        t,          j        k    rt          d¦  «        ‚dt%          | j         j        ¦  «        v sždt%          | j         j        ¦  «        v s(t1          d„ | j         j        j        D ¦   «         ¦  «        r=dt%          | j         j        ¦  «        vr"t%          | j         j        j        ¦  «        dk    s| j         j                             ¦   «         r'd| j        vrt          d| j         j        › �¦  «        ‚d S d S )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 functionc                ó*   — h | ]}|j         ®	|j        ’ŒS rF   )rX  rH   ©r>   Úas     r   ú	<setcomp>z/NativeFunction.__post_init__.<locals>.<setcomp>B  s(   € ð 
ð 
ð 
ØÀ!Ä)ÐBWˆAŒFÐBWÐBWÐBWr   r   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  ó(   K  — | ]}d |j         v V — ŒdS )r°  NrG   ©r>   Úargs     r   rØ   z/NativeFunction.__post_init__.<locals>.<genexpr>[  s:   è è € ð ð Ø25˜	 S¤XÐ-ðð ð ð ð ð r   ÚbackwardÚ_cudnn_init_dropout_stateÚnondeterministic_seededz(nondeterministic_seeded tag missing for )r5  rx  r[  r<  r$   r%   rP   rB  ÚkindÚ
SchemaKindr7  rC  Úschema_order_argumentsrw  Ú
differencerG  r|  rD  r   rH   r„  r8  r(  r*  ÚanyÚflat_allÚhas_generator_argrM  )r   Údefaulted_argumentsÚinvalid_argss      r   Ú__post_init__zNativeFunction.__post_init__  s  € ØŒ9ÔÔ"ð 	ØŒ}¥Ô!1Ð 2Ò2Ð2Ý$ð_ñô ð ð Œ?ð 		ØŒy�~Š~ÑÔ¥:¤>Ò1Ð1Ý$ðOñô ð ð Ô$ð Ý$ØPñô ð ð Ô#ð 		ØŒy�~Š~ÑÔ¥:¤>Ò1Ð1Ý$ðBñô ð ð Ô$ð Ý$ØPñô ð ð
 Œ?ð 	˜tÔ7ð 	Ý ØQñô ð ð
ð 
Ø œI×<Ò<Ñ>Ô>ð
ñ 
ô 
Ðõ —~’~ dÔ&>Ð@SÑTÔTˆÝˆ|ÑÔ Ò!Ð!Ý Ð!OÀÐ!OÐ!OÑPÔPÐPØÔ#Ð/Ø”?ð Ý$ØJñô ð õ ˆtŒyŒ~ÑÔ×)Ò)¨*Ñ5Ô5ð 	ØÔ ¥OÔ$;Ò;Ð;Ý$ð=ñô ð ð •c˜$œ)œ.Ñ)Ô)Ð)Ð)ð ¥ T¤Y¤^Ñ!4Ô!4Ð4Ð4Ýð ð Ø9=¼Ô9LÔ9Uðñ ô ñ ô ð 5ð ¥c¨$¬)¬.Ñ&9Ô&9Ð9Ð9Ý˜œ	œÔ+Ñ,Ô,Ð0KÒKÐKàŒyÔ"×4Ò4Ñ6Ô6ð Lð )°´	Ð9Ð9Ý$ØO¸t¼y¼~ÐOÐOñô ð ð :Ð9ð	 LÐKr   c                óH   — | j         p| j        p| j        p| j         o| j        S rF   )rI  rK  rL  rJ  r   s    r   Úhas_composite_kernelz#NativeFunction.has_composite_kernelj  s@   € ð Ô7ð JØÔ:ðJàÔIð
ð
 Ô7ð JØÔIð	
r   c                ód  — | j         j        }t          |¦  «        dk    ot          d„ |D ¦   «         ¦  «        }d| j        v o9t          | j         j        ¦  «        dk    ot          | j         j        ¦  «        dk    }t          d„ | j                              ¦   «         D ¦   «         ¦  «        }|p|p|S )Nr   c              3  óB   K  — | ]}|j         d uo|j         j         V — Œd S rF   ©Ú
annotationÚis_write©r>   rÞ   s     r   rØ   z,NativeFunction.is_view_op.<locals>.<genexpr>x  sG   è è € ð 5
ð 5
ØGHˆAŒL Ð$ÐB¨Q¬\Ô-BÐ)Bð5
ð 5
ð 5
ð 5
ð 5
ð 5
r   Úinplace_viewÚresize_Ú
resize_as_c              3  óD   K  — | ]}|j         d uod|j         j        v V — Œd S )NÚ*)rÆ  Úalias_set_after)r>   Úinps     r   rØ   z,NativeFunction.is_view_op.<locals>.<genexpr>�  sL   è è € ð 
ð 
àð ŒN $Ð&ÐP¨3°#´.Ô2PÐ+Pð
ð 
ð 
ð 
ð 
ð 
r   )r5  Úreturnsr|  r»  rM  r   rH   r¹  )r   ÚretsÚis_non_mutating_viewÚis_inplace_viewÚis_wildcard_views        r   Ú
is_view_opzNativeFunction.is_view_opu  sÛ   € àŒyÔ ˆÝ" 4™yœy¨1š}ð  
µð 5
ð 5
ØLPð5
ñ 5
ô 5
ñ 2
ô 2
Ðð
 ˜dœiÐ'ð 4Ý�D”I”NÑ#Ô# yÒ0ð4å�D”I”NÑ#Ô# |Ò3ð 	õ
 ð 
ð 
à”y×7Ò7Ñ9Ô9ð
ñ 
ô 
ñ 
ô 
Ðð $ÐJ ÐJÐ:JÐJr   r-  c                óÜ   — | j         rG| j        j        j        j        r1d| j        vrt          d| j        j        › �¦  «        ‚t          j        S | j         rt          j        S t          j	        S )NrÉ  zinplace_view tag missing for )
rÕ  r5  rH   r\  rM  rP   r-  r/  r.  r0  r   s    r   Úview_schema_kindzNativeFunction.view_schema_kind‡  sj   € àŒ?ð 	3˜tœyœ~Ô2Ô:ð 	3Ø T¤YÐ.Ð.Ý$Ð%UÀTÄYÄ^Ð%UÐ%UÑVÔVÐVÝ!Ô2Ð2ØŒ?ð 	/Ý!Ô*Ð*å!Ô.Ð.r   c                ó.   — | j         j        j        j        S rF   )r5  rH   Úbaser   s    r   Ú	root_namezNativeFunction.root_name’  s   € àŒyŒ~Ô"Ô'Ð'r   c                ó"   — | j         p| j        d uS rF   )rB  rC  r   s    r   Úpart_of_structured_groupz'NativeFunction.part_of_structured_group–  s   € àŒÐF $Ô":À$Ð"FÐFr   rF   )
rN  rO  r?  r   rP  rF  rQ  rR  r   rS  ©r   r¦  ©r   rá   )r   r-  r   )r   r   r    r!   rÎ   r¥  r¨  rÀ  ÚpropertyrÂ  rÕ  r×  rÚ  rÜ  r"   r   r   r2  r2  ú  s^  € € € € € € ð €N€N�Nð ÐÐÑð ,Ð+Ð+Ñ+ð ÐÐÑð "Ð!Ð!Ñ!ð ÐÐÑð "Ð!Ð!Ñ!ð ÐÐÑð
 %Ð$Ð$Ñ$ð ÐÐÑð €M€M�Mð  ÐÐÑð 5Ð4Ð4Ñ4ð ÐÐÑð -Ð,Ð,Ñ,ð $Ð#Ð#Ñ#ð #Ð"Ð"Ñ"ð "Ð!Ð!Ñ!ð ÐÐÑð 1Ð0Ð0Ñ0Ø>Ð>Ð>Ñ>Ø0Ð0Ð0Ñ0Ø?Ð?Ð?Ñ?ð €N€N�Nð ð
 04ð	W
ð W
ð W
ð W
ñ „\ðW
ðrð ð ð ð*Ið Ið Ið IðV ð
ð 
ð 
ñ „Xð
ð ðKð Kð Kñ „XðKð" ð/ð /ð /ñ „Xð/ð ð(ð (ð (ñ „Xð(ð ðGð Gð Gñ „XðGð Gð Gr   r2  c                  ór   — e Zd Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         ZdS )r¸  N)	r   r   r    r   Ú
functionalr\  r[  ÚmutableÚscratchr"   r   r   r¸  r¸  ›  sE   € € € € € Ø�‘”€JØˆd‰fŒf€GØ
ˆ$‰&Œ&€CØˆd‰fŒf€GØˆd‰fŒf€G€G€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dS )ÚNativeFunctionsGroupr2  rá  úNativeFunction | Noner\  râ  r[  r   rá   c                ó   — | j         j        S rF   )r[  rB  r   s    r   rB  zNativeFunctionsGroup.structured°  s   € ð ŒxÔ"Ð"r   r¦  c           
     ó¦
  — | j         j                             ¦   «         }|                      ¦   «         D ]‰}||j                             ¦   «         k    r,t	          d|› d|j                             ¦   «         › �¦  «        ‚| j        |j        k    r.t	          d| j        j        j        › d|j        j        › �¦  «        ‚ŒŠ| j         j         	                    ¦   «         t          j         k    r/t	          d| j         j         	                    ¦   «         › d�¦  «        ‚| j        j         	                    ¦   «         t          j        k    r/t	          d| j        j         	                    ¦   «         › d�¦  «        ‚| j         j        | j        j        k    r*t	          d	| j         j        › d
| j        j        › d�¦  «        ‚| j        �Ÿ| j        j         	                    ¦   «         t          j        k    r/t	          d| j        j         	                    ¦   «         › d�¦  «        ‚| j        j        | j         j        k    r*t	          d| j        j        › d| j         j        › d�¦  «        ‚| j        �É| j        j         	                    ¦   «         t          j        k    r/t	          d| j        j         	                    ¦   «         › d�¦  «        ‚| j        j        | j         j        k    r*t	          d| j        j        › d| j         j        › d�¦  «        ‚| j         j        j        j        j        st	          d¦  «        ‚| j        rê| j        j        s| j        j        rt	          d¦  «        ‚| j         j        | j        j        j        k    r?t	          | j         j        j        › d| j         j        › d| j        j        j        › �¦  «        ‚| j        �^| j        j        | j        j        j        k    r?t	          | j        j        j        › d| j        j        › d| j        j        j        › �¦  «        ‚t%          d„ |                      ¦   «         D ¦   «         ¦  «        }d                     d„ |D ¦   «         ¦  «        }t)          ¦   «         }|                      ¦   «         D ]&}|                     d„ |j        D ¦   «         ¦  «         Œ'd                     d„ t%          |¦  «        D ¦   «         ¦  «        }t/          |¦  «        dk    rBt/          |¦  «        dk    r/t1          d|› d|› dt3          |j        j        ¦  «        › �¦  «        ‚||k    rt1          d|› d |› d!|› d"�¦  «        ‚d S )#Nz_NativeFunctionsGroup constructed from two NativeFunctions that don't have matching signatures: ú != zMNativeFunctionsGroup constructed from structured and unstructured functions: ú and zfunctional.func.kind() is z , expected SchemaKind.functionalzout.func.kind() is z, expected SchemaKind.outzfunctional.namespace (z) != out.namespace (ú)zinplace.func.kind() is z, expected SchemaKind.inplacezinplace.namespace (z) != functional.namespace (zmutable.func.kind() is z, expected SchemaKind.mutablezmutable.namespace (zSfunctional.func.name.name.functional_overload must be True when mutable is not Nonez.structured composite kernels are not supportedz delegates to z but its actual delegate is c                óR   — g | ]$}d |j         v ¯t          |j        j        ¦  «        ‘Œ%S )Ú	generated)rM  r   r5  rH   )r>   Úfs     r   r@   z6NativeFunctionsGroup.__post_init__.<locals>.<listcomp>þ  s0   € ÐQÐQÐQ !¸;È!Ì&Ð;PÐ;P�S�””ÑÔÐ;PÐ;PÐ;Pr   rý   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S rF   ©r   rl  s     r   rØ   z5NativeFunctionsGroup.__post_init__.<locals>.<genexpr>   s(   è è € Ð%DÐ%D°¥c¨!¡f¤fÐ%DÐ%DÐ%DÐ%DÐ%DÐ%Dr   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S rF   rð  )r>   Úops     r   rØ   z5NativeFunctionsGroup.__post_init__.<locals>.<genexpr>  s(   è è € Ð)FÐ)F°b­#¨b©'¬'Ð)FÐ)FÐ)FÐ)FÐ)FÐ)Fr   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S rF   rð  rl  s     r   rØ   z5NativeFunctionsGroup.__post_init__.<locals>.<genexpr>  s9   è è € ð /
ð /
Ø�C�‰FŒ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á  r5  Ú	signatureÚ	functionsrP   rB  rÜ  r[  rH   r·  r¸  r3  r\  râ  Úfunctional_overloadrI  rJ  rC  ÚsortedrÝ   rw  r   r@  r|  ÚRuntimeErrorr   )r   Útest_sigrî  Úgenerated_fnsÚgenerated_fns_strÚexpected_generated_fnsÚexpected_generated_fns_strs          r   rÀ  z"NativeFunctionsGroup.__post_init__µ  s  € Ø#'¤?Ô#7×#AÒ#AÑ#CÔ#CˆØ—’Ñ!Ô!ð 	ð 	ˆAØ˜1œ6×+Ò+Ñ-Ô-Ò-Ð-Ý$ð_Ø<Dð_ð _ØJKÌ&×JZÒJZÑJ\ÔJ\ð_ð _ñô ð ð
 Œ !Ô"<Ò<Ð<Ý$ðIØ"&¤(¤-Ô"4ðIð IØ;<¼6¼;ðIð Iñô ð ð =ð
 Œ?Ô×$Ò$Ñ&Ô&­*Ô*?Ò?Ð?Ý Øj¨T¬_Ô-A×-FÒ-FÑ-HÔ-HÐjÐjÐjñô ð ð Œ8Œ=×ÒÑÔ¥:¤>Ò1Ð1Ý ØU d¤h¤m×&8Ò&8Ñ&:Ô&:ÐUÐUÐUñô ð ð Œ?Ô$¨¬Ô(:Ò:Ð:Ý Øm¨¬Ô)BÐmÐmÐX\ÔX`ÔXjÐmÐmÐmñô ð ð Œ<Ð#ØŒ|Ô ×%Ò%Ñ'Ô'­:Ô+=Ò=Ð=Ý$Øe¨d¬lÔ.?×.DÒ.DÑ.FÔ.FÐeÐeÐeñô ð ð Œ|Ô%¨¬Ô)BÒBÐBÝ$Øy¨$¬,Ô*@ÐyÐyÐ]aÔ]lÔ]vÐyÐyÐyñô ð ð Œ<Ð#ØŒ|Ô ×%Ò%Ñ'Ô'­:Ô+=Ò=Ð=Ý$Øe¨d¬lÔ.?×.DÒ.DÑ.FÔ.FÐeÐeÐeñô ð ð Œ|Ô%¨¬Ô)BÒBÐBÝ$Øy¨$¬,Ô*@ÐyÐyÐ]aÔ]lÔ]vÐyÐyÐyñô ð ð ”?Ô'Ô,Ô1ÔEð Ý$Øiñô ð ð Œ?ð 	ð ”Ô?ðWà”8ÔPðWõ %Ð%UÑVÔVÐVàŒÔ2°d´h´mÔ6HÒHÐHÝ$Ø”Ô+Ô0ð Gð GÀÄÔ@cð Gð GØ26´(´-Ô2DðGð Gñô ð ð Œ|Ð'Ø”<Ô3°t´x´}Ô7IÒIÐIÝ(Øœ<Ô,Ô1ð Kð KÀÄÔAað Kð KØ6:´h´mÔ6HðKð Kñô ð õ
 ØQÐQ t§~¢~Ñ'7Ô'7ÐQÑQÔQñ
ô 
ˆð !ŸIšIÐ%DÐ%D°mÐ%DÑ%DÔ%DÑDÔDÐÝ+.©5¬5ÐØ—’Ñ!Ô!ð 	Gð 	GˆAØ"×)Ò)Ð)FÐ)F¸A¼IÐ)FÑ)FÔ)FÑFÔFÐFÐFØ%)§Y¢Yð /
ð /
Ý"Ð#9Ñ:Ô:ð/
ñ /
ô /
ñ &
ô &
Ð"õ Ð%Ñ&Ô&¨!Ò+Ð+µ°MÑ0BÔ0BÀQÒ0FÐ0FÝðjÐ?Pð jð jà,=ðjð jåWZÐ[\Ô[aÔ[fÑWgÔWgðjð jñô ð ð
 &Ð):Ò:Ð:ÝðNÐ?Pð Nð NØ;LðNð Nà0JðNð Nð Nñô ð ð ;Ð:r   r4  c                ó>   — | j         j                             ¦   «         S rF   )r[  r5  rõ  r   s    r   rõ  zNativeFunctionsGroup.signature  s   € ØŒxŒ}×&Ò&Ñ(Ô(Ð(r   úIterator[NativeFunction]c              #  ór   K  — | j         V — | j        V — | j        �	| j        V — | j        �| j        V — d S d S rF   )rá  r[  r\  râ  r   s    r   rö  zNativeFunctionsGroup.functions  sY   è è € ØŒoÐÐÐØŒhˆˆˆØŒ<Ð#Ø”,ÐÐÐØŒ<Ð#Ø”,ÐÐÐÐÐð $Ð#r   r   c                ó   — | j         j        S rF   )rá  rÚ  r   s    r   rÚ  zNativeFunctionsGroup.root_name  s   € àŒÔ(Ð(r   rh  ú dict[SchemaKind, NativeFunction]úNativeFunctionsGroup | Nonec                óä  — | st          d¦  «        ‚t          | ¦  «        dk    rd S t          | ¦  «        } |                      t          j        d ¦  «        }|                      t          j        d ¦  «        }|                      t          j        d ¦  «        }|                      t          j        d ¦  «        }| rt          d| › �¦  «        ‚|€t          d¦  «        ‚|€d S t          ||||¬¦  «        S )Nz from_dict called with empty dictr)  zunexpected keys in dict: zfunctional variant is required)rá  r\  râ  r[  )
rP   r|  r~  rq  r¸  rá  r\  râ  r[  rå  )rh  rá  r\  râ  r[  s        r   Ú	from_dictzNativeFunctionsGroup.from_dict#  sô   € àð 	EÝ Ð!CÑDÔDÐDÝˆq‰6Œ6�QŠ;ˆ;Ø�4Ý�‰GŒGˆØ—U’U�:Ô0°$Ñ7Ô7ˆ
Ø—%’%�
Ô*¨DÑ1Ô1ˆØ—%’%�
Ô*¨DÑ1Ô1ˆØ�eŠe•J”N DÑ)Ô)ˆØð 	BÝ Ð!@¸QÐ!@Ð!@ÑAÔAÐAØÐÝ Ð!AÑBÔBÐBð ˆ;Ø�4å#Ø!ØØØð	
ñ 
ô 
ð 	
r   NrÞ  rÝ  ©r   r4  )r   r   r   )rh  r  r   r  )r   r   r    r!   rß  rB  rÀ  rõ  rö  rÚ  rÎ   r  r"   r   r   rå  rå  ©  så   € € € € € € àÐÐÑØ"Ð"Ð"Ñ"Ø"Ð"Ð"Ñ"ØÐÐÑàð#ð #ð #ñ „Xð#ð]ð ]ð ]ð ]ð~)ð )ð )ð )ðð ð ð ð ð)ð )ð )ñ „Xð)ð ð
ð 
ð 
ñ „\ð
ð 
ð 
r   rå  c                  ó6   — e Zd ZU ded<   ded<   ded<   d	d„ZdS )
r�  r   rc  rá   rB  rd  r   c                ó   — d| j         v S )NÚ_symint)rc  r   s    r   rƒ  zBackendMetadata.supports_symintR  s   € Ø˜DœKÐ'Ð'r   NrÞ  )r   r   r    r!   rƒ  r"   r   r   r�  r�  ?  sQ   € € € € € € ð €K€K�Kð
 ÐÐÑð ÐÐÑð(ð (ð (ð (ð (ð (r   r�  c                  óF   — e Zd ZU ded<   ded<   ded<   edd	„¦   «         Zd
S )r‰  r   rH   rû   Úsupported_dtypesr  r¢  rL   r   c                óf  — |                       dd¦  «        \  }}|d         dk    rt          d|› �¦  «        ‚|d         dk    rt          d|› �¦  «        ‚t          ¦   «         }|dd…                               d	¦  «        D ]}|t                               |¦  «        z  }Œ t          |||¬
¦  «        S )Nú r)  r   ú(z0expected '(' at start of supported_dtypes, got: éÿÿÿÿrë  z.expected ')' at end of supported_dtypes, got: rý   )rH   r  r¢  )rþ   rP   r
   ró   r  r‰  )rL   r¢  rH   Úsupported_dtypes_strr  rR   s         r   rT   zUfuncInnerLoop.parse^  sæ   € à%*§[¢[°°aÑ%8Ô%8Ñ"ˆÐ"Ø Ô" cÒ)Ð)Ý ØYÐCWÐYÐYñô ð ð   Ô# sÒ*Ð*Ý ØWÐAUÐWÐWñô ð õ 4>±<´<ÐØ% a¨ dÔ+×1Ò1°$Ñ7Ô7ð 	8ð 	8ˆAØ¥
× 4Ò 4°QÑ 7Ô 7Ñ7ÐÐÝØÐ(8ÀIð
ñ 
ô 
ð 	
r   N)rL   r   r¢  r  r   r‰  )r   r   r    r!   rÎ   rT   r"   r   r   r‰  r‰  V  sW   € € € € € € à€I€I�IØ,Ð,Ð,Ñ,ð ÐÐÑàð
ð 
ð 
ñ „\ð
ð 
ð 
r   r‰  c                  óz   — 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	dS )ÚBackendIndexrD   rœ  rá   Úuse_out_as_primaryr7  Úexternalz#dict[OperatorName, BackendMetadata]ÚindexÚparent_indexú6dict[DispatchKey, dict[OperatorName, BackendMetadata]]Úchild_indexr   r¦  c                óÂ   — |                      ¦   «         D ]I\  }}|                      ¦   «         D ]/\  }}|| |         v rt          d|› d|› �¦  «        ‚|| |         |<   Œ0ŒJd S )Nzduplicate operator z for dispatch key )rO   rP   )r  r  rR   rS   Úop_nameÚmetadatas         r   Ú
grow_indexzBackendIndex.grow_index‡  s•   € ð
  ×%Ò%Ñ'Ô'ð 	4ð 	4‰DˆAˆqØ%&§W¢W¡Y¤Yð 4ð 4Ñ!�˜Ø˜l¨1œoÐ-Ð-Ý(ØL¨gÐLÐLÈÐLÐLñô ð ð ,4�˜Q” Ñ(Ð(ð4ð	4ð 	4r   Úgrå  r2  c                ó,   — | j         r|j        S |j        S rF   )r  r[  rá  )r   r  s     r   ÚprimaryzBackendIndex.primary”  s   € ØÔ"ð 	 Ø”5ˆLà”<Ðr   ú%NativeFunction | NativeFunctionsGroupc                ó4   — |                       |¦  «        }|d uS rF   )Ú
get_kernel)r   r  Úms      r   Ú
has_kernelzBackendIndex.has_kernelš  s   € Ø�OŠO˜AÑÔˆØ˜ˆ}Ðr   úBackendMetadata | Nonec                óþ   — t          |t          ¦  «        r|}n:t          |t          ¦  «        r|                      |¦  «        }nt	          |¦  «         |j        j        | j        vrd S | j        |j        j                 S rF   )rr  r2  rå  r   r   r5  rH   r  )r   r  rî  s      r   r#  zBackendIndex.get_kernelž  ss   € õ �a�Ñ(Ô(ð 	ØˆAˆAÝ˜Õ/Ñ0Ô0ð 	Ø—’˜Q‘”ˆAˆAå˜‰OŒOˆOØŒ6Œ;˜dœjÐ(Ð(Ø�4ØŒz˜!œ&œ+Ô&Ð&r   r9  c                óB   — | j         rt          | j        ¦  «        › d�S d S )NÚNativeFunctions)r  r   rœ  r   s    r   Únative_function_class_namez'BackendIndex.native_function_class_name«  s-   € ØŒ=ð 	Ý˜$Ô+Ñ,Ô,Ð=Ð=Ð=Ð=ð
 �4r   N)r  r  r  r  r   r¦  )r  rå  r   r2  )r  r!  r   rá   )r  r!  r   r&  )r   r9  )
r   r   r    r!   rÎ   r  r   r%  r#  r*  r"   r   r   r  r  x  sÁ   € € € € € € àÐÐÑð ÐÐÑð ÐÐÑà€N€N�Nà.Ð.Ð.Ñ.àð
4ð 
4ð 
4ñ „\ð
4ð ð  ð  ð  ðð ð ð ð'ð 'ð 'ð 'ðð ð ð ð ð 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d$S )/r4  rk  rH   Ú	Argumentsrx  útuple[Return, ...]rÐ  r   rá   c                óV   ‡— dd„Št          ˆfd„| j        j        D ¦   «         ¦  «        S )Nr³  ÚArgumentr   rá   c                ó,   — | j         €dS | j         j        S ©NFrÅ  )r³  s    r   rÇ  z+FunctionSchema.is_mutable.<locals>.is_writeö  s   € ØŒ~Ð%Ø�uØ”>Ô*Ð*r   c              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S rF   r"   )r>   r¬  rÇ  s     €r   rØ   z,FunctionSchema.is_mutable.<locals>.<genexpr>ý  s+   øè è € Ð@Ð@ 1�8�8˜A‘;”;Ð@Ð@Ð@Ð@Ð@Ð@r   )r³  r/  r   rá   )r»  rx  r¼  )r   rÇ  s    @r   Ú
is_mutablezFunctionSchema.is_mutableô  sA   ø€ ð	+ð 	+ð 	+ð 	+õ Ð@Ð@Ð@Ð@¨¬Ô(?Ð@Ñ@Ô@Ñ@Ô@Ð@r   úIterator[Argument]c                ój   — t          j        | j        j        | j        j        | j        j        ¦  «        S rF   )Ú	itertoolsÚchainrx  Úflat_positionalÚflat_kwarg_onlyr[  r   s    r   r¹  z%FunctionSchema.schema_order_argumentsÿ  s.   € ÝŒØŒNÔ*ØŒNÔ*ØŒNÔñ
ô 
ð 	
r   z3(?P<name>[^\(]+)\((?P<args>.*)\) -> (?P<returns>.*)r5  r   c                ó¸  — t           j                             | ¦  «        }t          |¦  «        dk    rt	          d| › �¦  «        ‚|d         \  }}}t
                               |¦  «        }t                               |¦  «        }t          |¦  «        }t          |||¬¦  «        }t          |¦  «        | k    r!t	          t          |¦  «        › d| › �¦  «        ‚|S )Nr)  zInvalid function schema: r   ©rH   rx  rÐ  ré  )
r4  Údecl_reÚfindallr|  rP   rk  rT   r,  Úparse_returnsr   )	r5  ÚdeclsÚopsÚargsÚreturn_declrH   rx  rÐ  rÞ   s	            r   rT   zFunctionSchema.parse  sË   € õ Ô&×.Ò.¨tÑ4Ô4ˆÝˆu‰:Œ:˜Š?ˆ?Ý Ð!C¸TÐ!CÐ!CÑDÔDÐDØ!& q¤ÑˆˆT�;Ý×!Ò! #Ñ&Ô&ˆÝ—O’O DÑ)Ô)ˆ	Ý Ñ,Ô,ˆÝ °	À7ÐKÑKÔKˆÝˆq‰6Œ6�TŠ>ˆ>Ý ¥C¨¡F¤FÐ!6Ð!6°Ð!6Ð!6Ñ7Ô7Ð7Øˆr   c                ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3  ó@   K  — | ]}|j         ®	|j         j        ¯|V — Œd S rF   rÅ  rÈ  s     r   rØ   z5FunctionSchema.returns_are_aliased.<locals>.<genexpr>  s@   è è € ð 
ð 
àØŒ|Ð'¨A¬LÔ,AÐ'ð à'Ð'Ð'Ð'ð
ð 
r   )r»  rÐ  r   s    r   Úreturns_are_aliasedz"FunctionSchema.returns_are_aliased  s2   € åð 
ð 
à”\ð
ñ 
ô 
ñ 
ô 
ð 	
r   r¦  c                óŽ  ‡‡— t          | j        j        | j        ¦  «        D ]4\  }Š|j        ‰j        k    rt          d|j        › d‰j        › �¦  «        ‚Œ5| j        j        D ]AŠt          ˆfd„| j        D ¦   «         ¦  «        rt          dt          | ¦  «        › �¦  «        ‚ŒBt          | j        j        ¦  «        d„ | j        j
        D ¦   «         z   }d„ | j        D ¦   «         }d„ | j        D ¦   «         }t          |¦  «        dk    s2t          |¦  «        dk    st          d	t          | ¦  «        › �¦  «        ‚|D ],Št          ˆfd
„|D ¦   «         ¦  «        st          d¦  «        ‚Œ-| j        j        r®t          d„ | j        j        D ¦   «         ¦  «        r(t          | j        ¦  «        dk    rt          d¦  «        ‚nct          d„ | j        j        D ¦   «         ¦  «        }|t          | j        ¦  «        k    r(t          d|› dt          | j        ¦  «        › d�¦  «        ‚| j        j        j        rë| j        j        }|r|j        j        r|j        j        j        st          d| j        › d�¦  «        ‚|j        j        t%          t&          j        ¦  «        k    rQt          | j        ¦  «        dk    r | j        d         j        |j        j        k    st          d| j        › d�¦  «        ‚n0t          | j        ¦  «        dk    rt          d| j        › d�¦  «        ‚| j        j        �A|                      ¦   «         t.          j        k    rt          dt          | ¦  «        › �¦  «        ‚|                      ¦   «         rA|                      ¦   «         t.          j        k    r!t          dt          | ¦  «        › �¦  «        ‚d S d S )Nz„Out arguments must have matching return Tensor; furthermore, the ith-argument needs to correspond to the ith return. arg.annotation=z, ret.annotation=c              3  ó8   •K  — | ]}‰j         |j         k    V — Œd S rF   ©rÆ  ©r>   rÞ   r¬  s     €r   rØ   z/FunctionSchema.__post_init__.<locals>.<genexpr>*  s,   øè è € ÐFÐF°A�1”< 1¤<Ò/ÐFÐFÐFÐFÐFÐFr   z^If you have a schema with mutable positional args, we expect them to not be returned. schema: c                ó(   — g | ]}|j         d k    ¯|‘ŒS r   rG   r²  s     r   r@   z0FunctionSchema.__post_init__.<locals>.<listcomp>2  s+   € ð 3
ð 3
ð 3
Ø¸S¼XÈÒ=OÐ=OˆCÐ=OÐ=OÐ=Or   c                ó8   — g | ]}|j         ®	|j         j        ¯|‘ŒS rF   rÅ  ©r>   Úrets     r   r@   z0FunctionSchema.__post_init__.<locals>.<listcomp>5  s4   € ð 
ð 
ð 
àØŒ~Ð)¨c¬nÔ.EÐ)ð à)Ð)Ð)r   c                ó8   — g | ]}|j         �|j         j        °|‘ŒS rF   rÅ  rL  s     r   r@   z0FunctionSchema.__post_init__.<locals>.<listcomp>:  s4   € ð 
ð 
ð 
àØŒ~Ð%¨S¬^Ô-DÐ%ð à%Ð%Ð%r   r   zYNativeFunctions must have either only mutable returns, or only immutable returns. Found: c              3  ó8   •K  — | ]}‰j         |j         k    V — Œd S rF   rH  )r>   r³  rM  s     €r   rØ   z/FunctionSchema.__post_init__.<locals>.<genexpr>I  s,   øè è € ÐPÐP¸C�s”~¨¬Ò7ÐPÐPÐPÐPÐPÐPr   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  óZ   K  — | ]&}|j         t          t          j        ¦  «        k    V — Œ'd S rF   )ÚtypeÚBaseTypeÚBaseTyÚTensorr«  s     r   rØ   z/FunctionSchema.__post_init__.<locals>.<genexpr>T  s3   è è € ÐQÐQ¸�1”6�X¥f¤mÑ4Ô4Ò4ÐQÐQÐQÐQÐQÐQr   zƒout= ops that accept tensor lists as out arguments are expected to have no return type (since you can't do method chaining on them)c                óF   — g | ]}|j                              d ¦  «        °|‘ŒS ©Ú	_scratch_©rH   r„  r²  s     r   r@   z0FunctionSchema.__post_init__.<locals>.<listcomp>^  s>   € ð ð ð àØ"œx×2Ò2°;Ñ?Ô?ðØðð ð r   zSMust return as many arguments as there are out arguments, or no return at all. Got z non-scratch out args and z returnszInplace op z4 must have a self argument with a mutable annotationr)  z" with Tensor self must return selfz* with non-Tensor self must have no returnsz·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: )Úziprx  r[  rÐ  rÆ  rP   Úpost_self_positional_mutabler»  r   rv  r8  r|  rH   r\  Úself_argÚargumentrÇ  rQ  rR  rS  rT  r†  r·  r¸  rá  Úis_functional_fn)	r   r³  Úout_and_selfÚmutable_returnsÚimmutable_returnsÚnon_scratch_out_argsÚself_ar¬  rM  s	          @@r   rÀ  zFunctionSchema.__post_init__  sÄ  øø€ Ý˜DœNÔ.°´Ñ=Ô=ð 	ð 	‰HˆC�ØŒ~ ¤Ò/Ð/Ý$ðXà&)¤nðXð XàGJÄ~ðXð Xñô ð ð 0ð ”Ô<ð 	ð 	ˆAÝÐFÐFÐFÐF¸¼ÐFÑFÔFÑFÔFð Ý$ð AÕuxÐy}Ñu~Ôu~ð  Að  Añô ð ðõ ˜DœNÔ.Ñ/Ô/ð 3
ð 3
Øœ>Ô9ð3
ñ 3
ô 3
ñ 
ˆð
ð 
à”|ð
ñ 
ô 
ˆð

ð 
à”|ð
ñ 
ô 
Ðõ �OÑ$Ô$¨Ò)Ð)­SÐ1BÑ-CÔ-CÀqÒ-HÐ-HÝ ØwÕloÐptÑluÔluÐwÐwñô ð ð #ð 	ð 	ˆCÝÐPÐPÐPÐPÀ<ÐPÑPÔPÑPÔPð Ý$ðNñô ð ðð
 Œ>Ôð 	õ ÐQÐQ¸d¼nÔ>PÐQÑQÔQÑQÔQð Ý�t”|Ñ$Ô$¨Ò)Ð)Ý(ðkñô ð ð *õ (+ðð à#'¤>Ô#5ðñ ô ñ(ô (Ð$ð (­3¨t¬|Ñ+<Ô+<Ò<Ð<Ý(ðkØ3ðkð kÝORÐSWÔS_ÑO`ÔO`ðkð kð kñô ð ð
 Œ9Œ>Ô!ð 	Ø”^Ô,ˆFàðà”OÔ.ðð ”OÔ.Ô7ðõ
 %Øa $¤)ÐaÐaÐañô ð ð ŒÔ#¥xµ´Ñ'>Ô'>Ò>Ð>õ ˜œÑ%Ô%¨Ò*Ð*Øœ QœÔ2°f´oÔ6PÒPÐPå(ØS d¤iÐSÐSÐSñô ð ð Qõ �t”|Ñ$Ô$¨Ò)Ð)Ý(Ø[ d¤iÐ[Ð[Ð[ñô ð ð Œ>Ô(Ð4Ø�yŠy‰{Œ{�jÔ3Ò3Ð3Ý$ð+å" 4™yœyð+ð +ñô ð ð
 × Ò Ñ"Ô"ð 	Ø�yŠy‰{Œ{�jÔ3Ò3Ð3Ý$ð+å" 4™yœyð+ð +ñô ð ð	ð 	Ø3Ð3r   c                ó   — d| j         j        v S )Nrá  ©rH   Úoverload_namer   s    r   r]  zFunctionSchema.is_functional_fn•  s   € Ø˜tœyÔ6Ð6Ð6r   c                ó4   — t          | j        j        ¦  «        S rF   )rá   rx  r[  r   s    r   r{  zFunctionSchema.is_out_fn˜  s   € õ6 �D”NÔ&Ñ'Ô'Ð'r   r¸  c                óÔ  — t          | j        j        ¦  «        }t          d„ | j        j        D ¦   «         ¦  «        }| j        j        j        }t          d„ | j        j        D ¦   «         ¦  «        }|r|rt          d¦  «        ‚|rt          j        S |r|st          d¦  «        ‚t          j	        S |r|rt          d¦  «        ‚t          j        S |rt          j
        S t          j        S )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.
        c                óF   — g | ]}|j                              d ¦  «        ¯|‘ŒS rV  rX  r²  s     r   r@   z'FunctionSchema.kind.<locals>.<listcomp>¾  s-   € ÐSÐSÐS�S°#´(×2EÒ2EÀkÑ2RÔ2RÐSˆSÐSÐSÐSr   c              3  ó@   K  — | ]}|j         d uo|j         j        V — Œd S rF   rÅ  r«  s     r   rØ   z&FunctionSchema.kind.<locals>.<genexpr>Á  sG   è è € ð 
ð 
àð ŒL Ð$Ð>¨¬Ô)>ð
ð 
ð 
ð 
ð 
ð 
r   z(A schema cannot be both out= and inplacezFinvariant: 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!)rá   rx  r[  rH   r\  r»  Úpost_self_positionalrP   r¸  rã  râ  rá  )r   Úis_outÚ
is_scratchÚ
is_inplacer3  s        r   r·  zFunctionSchema.kindµ  s*  € õ �d”nÔ(Ñ)Ô)ˆÝØSÐS˜DœNÔ.ÐSÑSÔSñ
ô 
ˆ
ð ”Y”^Ô+ˆ
Ýð 
ð 
à”^Ô8ð
ñ 
ô 
ñ 
ô 
ˆ
ð ð 	M�jð 	MÝ Ð!KÑLÔLÐLð ð 	)ÝÔ%Ð%Øð 	)Øð Ý$Ø\ñô ð õ Ô%Ð%Øð 		)Øð Ý$ð Añô ð õ ”>Ð!Øð 	)ÝÔ%Ð%åÔ(Ð(r   úlist[str | None]c                ó|  ‡— g }| j         D ]°Šˆfd„| j        j        D ¦   «         }t          |¦  «        dk    r|                     d ¦  «         ŒCt          |¦  «        dk    r!|                     |d         j        ¦  «         Œwd                     d„ |D ¦   «         ¦  «        }t          d‰j        › d|› d�¦  «        ‚|S )	Nc                óB   •— g | ]}|j         ®	|j         ‰j         k    ¯|‘ŒS rF   rH  )r>   r¬  rÞ   s     €r   r@   z7FunctionSchema.aliased_return_names.<locals>.<listcomp>è  s9   ø€ ð ð ð àØ”<Ð+°´ÀÄÒ0LÐ0Lð à0LÐ0LÐ0Lr   r   r)  rý   c              3  ó$   K  — | ]}|j         V — Œd S rF   rG   r«  s     r   rØ   z6FunctionSchema.aliased_return_names.<locals>.<genexpr>ò  s$   è è € Ð)GÐ)G°Q¨!¬&Ð)GÐ)GÐ)GÐ)GÐ)GÐ)Gr   zFound a return (z)that aliases multiple inputs (rë  )rÐ  rx  r¼  r|  rz  rH   rÝ   rP   )r   ÚoutsÚaliased_argsÚaliased_namesrÞ   s       @r   Úaliased_return_namesz#FunctionSchema.aliased_return_nameså  sð   ø€ Ø!#ˆØ”ð 	ð 	ˆAðð ð ð àœÔ0ðñ ô ˆLõ
 �<Ñ Ô  AÒ%Ð%Ø—’˜DÑ!Ô!Ð!Ð!Ý�\Ñ"Ô" aÒ'Ð'Ø—’˜L¨œOÔ0Ñ1Ô1Ð1Ð1à $§	¢	Ð)GÐ)G¸,Ð)GÑ)GÔ)GÑ GÔ G�Ý$Ø^ q¤vÐ^Ð^ÈmÐ^Ð^Ð^ñô ð ð ˆr   F)Ústrip_defaultÚstrip_view_copy_nameÚkeep_return_namesrv  rw  rx  c          	     óT  ‡ ‡— dˆfd„}‰ j         j         j        }|rW|                     d¦  «        r|                     dd¦  «        }n+|                     d¦  «        r|                     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                             |¬¦  «        }	t          ‰ j         ¦  «        dk    r;t                                t          |	¦  «                             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
        rÞ   ÚReturnr   c                óD   •— t          ‰r| j        nd | j        d ¬¦  «        S )N©rH   rQ  rÆ  )rz  rH   rQ  )rÞ   rx  s    €r   Ústrip_ret_annotationz6FunctionSchema.signature.<locals>.strip_ret_annotation$  s0   ø€ ÝØ0Ð:�Q”V�V°dØ”VØðñ ô ð r   Ú_copyr6   Ú_scatterÚscatterÚinversec              3  óÆ   •‡K  — | ]ZŠ‰j         ®	‰j         j        ¯t          ˆfd„‰j        D ¦   «         ¦  «        °5t	          ‰r
‰j        › d�nd ‰j        d ¬¦  «        V — Œ[d S )Nc              3  ó8   •K  — | ]}‰j         |j         k    V — Œd S rF   rH  rI  s     €r   rØ   z5FunctionSchema.signature.<locals>.<genexpr>.<genexpr>I  s,   øè è € ÐKÐK¸˜œ¨¬Ò4ÐKÐKÐKÐKÐKÐKr   Ú_outr|  )rÆ  rÇ  r»  rÐ  rz  rH   rQ  )r>   r¬  rx  r   s    @€€r   rØ   z+FunctionSchema.signature.<locals>.<genexpr>3  s�   øøè è € ð ,
ð ,
ð ð Œ|Ð'Ø”Ô%ð (åÐKÐKÐKÐK¸d¼lÐKÑKÔKÑKÔKð (õ! Ø(9ÐC˜œ�_�_�_�_¸tØ”VØðñ ô ð  (Ð'Ð'Ð'ð),
ð ,
r   N©rv  zbernoulli.pzfloat pzfloat p=0.5F©rÙ  r\  Údunder_methodrd  r;  )rÞ   rz  r   rz  )rH   rÙ  r…  ÚreplaceÚtupler6  r7  rx  r[  r\  r[  rj  ÚmaprÐ  rõ  r   r,  rT   r4  rk  ÚBaseOperatorNamer‡  )
r   rv  rw  rx  r}  Ú	base_nameÚreturns_from_mutable_inputsÚoriginal_returnsrÐ  Úargs_sigs
   `  `      r   rõ  zFunctionSchema.signatureø  sä  øø€ ðX	ð 	ð 	ð 	ð 	ð 	ð ”I”NÔ'ˆ	Øð 	DØ×!Ò! 'Ñ*Ô*ð DØ%×-Ò-¨g°rÑ:Ô:�	�	Ø×#Ò# JÑ/Ô/ð DØ%×-Ò-¨i¸ÑCÔC�	õ ',ð ,
ð ,
ð ,
ð ,
ð ,
õ ”_ð
 ”~Ô.Ð:ð ”^Ô,Ô5Ð6Ð6àà”Ô"Ø”Ô3ñ
ô 
ð,
ñ ,
ô ,
ñ '
ô '
Ð#õ0 !¥Ð%9¸4¼<Ñ!HÔ!HÑIÔIÐà"Ð%@Ñ@ˆà”>×+Ò+¸-Ð+ÑHÔHˆåˆtŒy‰>Œ>˜]Ò*Ð*Ý —’¥s¨8¡}¤}×'<Ò'<¸YÈÑ'VÔ'VÑWÔWˆHåÝÝ%Ø"Ø!Ø"&¤)¤.Ô">ðñ ô ð
 !ðñ ô ð Øð
ñ 
ô 
ð 	
r   c                ó.   — |                       d¬¦  «        S )NT©rw  )rõ  r   s    r   Úview_signaturezFunctionSchema.view_signaturea  s   € Ø�~Š~°4ˆ~Ñ8Ô8Ð8r   c                ó:   — t          || j        | j        ¬¦  «        S )Nr;  )r4  rx  rÐ  )r   rH   s     r   Ú	with_namezFunctionSchema.with_named  s&   € ÝØØ”nØ”Lð
ñ 
ô 
ð 	
r   c                óp   — |                       ¦   «         t          j        t          j        t          j        fv S rF   )r·  r¸  r\  r[  râ  r   s    r   Úmodifies_argumentsz!FunctionSchema.modifies_argumentsk  s$   € à�yŠy‰{Œ{�zÔ1µ:´>Å:ÔCUÐVÐVÐVr   c                ó4   — | j                              ¦   «         S rF   )rx  Úhas_symint_argr   s    r   Ú
has_symintzFunctionSchema.has_syminto  s   € ØŒ~×,Ò,Ñ.Ô.Ð.r   c                ó  — t          | j        ¦  «        }t          | j        ¦  «        dk    rt          | j        d         ¦  «        }n3dd                     t          t           | j        ¦  «        ¦  «        z   dz   }| j        › d|› d|› �S )Nr)  r   r  rý   rë  z) -> )r   rx  r|  rÐ  rÝ   rŠ  rH   )r   Úall_arguments_strrÐ  s      r   r   zFunctionSchema.__str__r  s‚   € Ý ¤Ñ/Ô/ÐÝˆtŒ|ÑÔ Ò!Ð!Ý˜$œ, qœ/Ñ*Ô*ˆGˆGà˜DŸIšI¥c­#¨t¬|Ñ&<Ô&<Ñ=Ô=Ñ=ÀÑCˆGØ”)Ð?Ð?Ð/Ð?Ð?°gÐ?Ð?Ð?r   NrÞ  )r   r4  )r5  r   r   r4  rÝ  )r   r¸  )r   rn  )rv  rá   rw  rá   rx  rá   r   r4  r  )rH   rk  r   r4  r   )r   r   r    r!   rß  r3  r¹  ÚreÚcompiler<  rÎ   rT   rE  rÀ  r]  r{  r·  ru  rõ  r’  r”  r–  r™  r   r"   r   r   r4  r4  ê  sÎ  € € € € € € ð ÐÐÑàÐÐÑð  ÐÐÑàðAð Að Añ „XðAð
ð 
ð 
ð 
ð ˆbŒjÐOÑPÔP€Gàðð ð ñ „\ðð
ð 
ð 
ð 
ðtð tð tð tðl7ð 7ð 7ð 7ð(ð (ð (ð (ð:*)ð *)ð *)ð *)ð`ð ð ð ð, $Ø%*Ø"'ðg
ð g
ð g
ð g
ð g
ð g
ðR9ð 9ð 9ð 9ð
ð 
ð 
ð 
ð ðWð Wð Wñ „XðWð/ð /ð /ð /ð@ð @ð @ð @ð @ð @r   r4  c                  óN   — e Zd ZU ded<   ded<   ded<   edd	„¦   «         Zdd
„ZdS )Ú
Annotationztuple[str, ...]Ú	alias_setrá   rÇ  rÎ  Úannr   r   c                ó  — t          j        d| ¦  «        }|€t          d| › �¦  «        ‚|                     d¦  «        |                     d¦  «        r|                     d¦  «        ndz   }t	          |                     d¦  «        ¦  «        }|                     d¦  «        dk    }|r&t          |¦  «        dk    rt          d	| › d
�¦  «        ‚|                     d¦  «        r5t	          |                     d¦  «                             d¦  «        ¦  «        nd}t          |¦  «        dk    r&t          |¦  «        dk    rt          d| › d
�¦  «        ‚t          |||¬¦  «        }t          |¦  «        | k    rt          |› d| › �¦  «        ‚|S )Nz2^([a-z])(\|[a-z])*(!?)( -> (\*|[a-z](\|[a-z])*))?$zunrecognized alias annotation r)  ri  r6   ú|ra  ú!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œ  ÚmatchrP   Úgroupr‰  rþ   r|  rŸ  r   )r¡  r$  Úbefore_aliasr   rÇ  Ú	after_setrÞ   s          r   rT   zAnnotation.parse‹  s”  € õ  ŒHÐJÈCÑPÔPˆàˆ9Ý Ð!GÀ#Ð!GÐ!GÑHÔHÐHØ—w’w˜q‘z”z°1·7²7¸1±:´:Ð%E Q§W¢W¨Q¡Z¤Z ZÀ2ÑFˆÝ˜,×,Ò,¨SÑ1Ô1Ñ2Ô2ˆ	Ø—7’7˜1‘:”: Ò$ˆØð 	�˜I™œ¨Ò*Ð*Ý ØM¸sÐMÐMÐMñô ð ð 56·G²G¸A±J´JÐF•E˜!Ÿ'š' !™*œ*×*Ò*¨3Ñ/Ô/Ñ0Ô0Ð0ÀBˆ	Ýˆ|ÑÔ˜qÒ Ð ¥S¨¡^¤^°aÒ%7Ð%7Ý ØtÐfiÐtÐtÐtñô ð õ Ø¨(ÀIð
ñ 
ô 
ˆõ ˆq‰6Œ6�SŠ=ˆ=Ý  A  ¨3  Ñ1Ô1Ð1Øˆr   c                ó˜   — d                      | j        ¦  «        }| j        r|› d�}d                      | j        ¦  «        }|r|› d|› �}|S )Nr£  r¤  ú -> )rÝ   r   rÇ  rÎ  )r   r   rÎ  s      r   r   zAnnotation.__str__²  s_   € Ø—H’H˜Tœ^Ñ,Ô,ˆ	ØŒ=ð 	(Ø$˜˜˜ˆIØŸ(š( 4Ô#7Ñ8Ô8ˆØð 	<Ø$Ð;Ð;¨/Ð;Ð;ˆIØÐr   N)r¡  r   r   rŸ  r   )r   r   r    r!   rÎ   rT   r   r"   r   r   rŸ  rŸ  ƒ  sl   € € € € € € ð ÐÐÑØ€N€N�NØ$Ð$Ð$Ñ$àð$ð $ð $ñ „\ð$ðLð ð ð ð ð r   rŸ  c                  óv   — 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dS )ÚTyper—  r   r   c                óˆ   — t                                | ¦  «        }t          |¦  «        | k    rt          |› d| › �¦  «        ‚|S )Nré  )r­  Ú_parser   rP   )r—  rÞ   s     r   rT   z
Type.parseÄ  s=   € å�KŠK˜‰NŒNˆÝˆq‰6Œ6�QŠ;ˆ;Ý  A  ¨1  Ñ/Ô/Ð/Øˆr   c                ó®  — t          j        d| ¦  «        }|�:t          t                               |                     d¦  «        ¦  «        ¦  «        S t          j        d| ¦  «        }|�u|                     d¦  «        �"t          |                     d¦  «        ¦  «        nd }t          t                               |                     d¦  «        ¦  «        |¬¦  «        S t          j        d| ¦  «        }|�"t          |                     d¦  «        ¦  «        S 	 t          t          |          ¦  «        S # t          $ r}t          d| › �¦  «        |‚d }~ww xY w)Nz^(.+)\?$r)  z^(.+)\[([0-9]+)?\]$ri  )ÚelemÚsizez-^__torch__\.torch\.classes\.([a-zA-Z0-9_.]+)$zunrecognized type )rœ  r¦  ÚOptionalTyper­  rT   r§  r   ÚListTypeÚCustomClassTyperR  rS  ÚKeyErrorrù  )r—  r$  r²  rŽ  s       r   r¯  zType._parseË  s)  € åŒH�[ !Ñ$Ô$ˆØˆ=Ý¥§
¢
¨1¯7ª7°1©:¬:Ñ 6Ô 6Ñ7Ô7Ð7ÝŒHÐ+¨QÑ/Ô/ˆØˆ=Ø&'§g¢g¨a¡j¤jÐ&<•3�q—w’w˜q‘z”z‘?”?�?À$ˆDÝ¥§¢¨A¯GªG°A©J¬JÑ!7Ô!7¸dÐCÑCÔCÐCõ ŒHÐEÀqÑIÔIˆØˆ=Ý" 1§7¢7¨1¡:¤:Ñ.Ô.Ð.ð	@Ý�F 1œIÑ&Ô&Ð&øÝð 	@ð 	@ð 	@ÝÐ7°AÐ7Ð7Ñ8Ô8¸aÐ?øøøøð	@øøøs   ÄD2 Ä2
EÄ<EÅEc                ó   — t           ‚rF   ©ÚNotImplementedErrorr   s    r   r   zType.__str__Þ  ó   € Ý!Ð!r   Úbase_tyrS  rá   c                ó   — t           ‚rF   r¸  ©r   r»  s     r   Úis_base_ty_likezType.is_base_ty_likeæ  rº  r   c                ó@   — |                       t          j        ¦  «        S rF   )r¾  rS  rT  r   s    r   Úis_tensor_likezType.is_tensor_likeé  ó   € Ø×#Ò#¥F¤MÑ2Ô2Ð2r   c                ó@   — |                       t          j        ¦  «        S rF   )r¾  rS  Ú	Generatorr   s    r   Úis_generator_likezType.is_generator_likeì  s   € Ø×#Ò#¥FÔ$4Ñ5Ô5Ð5r   c                ó@   — |                       t          j        ¦  «        S rF   )r¾  rS  ÚSymIntr   s    r   Úis_symint_likezType.is_symint_likeï  rÁ  r   c                ó   — t           ‚rF   r¸  r   s    r   Úis_nullablezType.is_nullableò  rº  r   úListType | Nonec                ó   — t           ‚rF   r¸  r   s    r   Úis_list_likezType.is_list_likeõ  rº  r   N)r—  r   r   r­  r   ©r»  rS  r   rá   rÞ  ©r   rÊ  )r   r   r    rÎ   rT   r¯  r   r¾  rÀ  rÄ  rÇ  rÉ  rÌ  r"   r   r   r­  r­  Â  sâ   € € € € € àðð ð ñ „\ðð ð@ð @ð @ñ „\ð@ð$"ð "ð "ð "ð"ð "ð "ð "ð3ð 3ð 3ð 3ð6ð 6ð 6ð 6ð3ð 3ð 3ð 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dS )rS  N)r   r   r    r   rÃ  ró   rT  r   Ú	DimVectorÚfloatr   rá   ÚLayoutÚDeviceÚDeviceIndexÚScalarÚMemoryFormatÚQSchemeÚStorageÚStreamrÆ  ÚSymBoolÚGraphModuler"   r   r   rS  rS  ú  sß   € € € € € Ø�‘”€IØ�‘”€JØˆT‰VŒV€FØ
ˆ$‰&Œ&€CØ�‘”€IØˆD‰FŒF€EØ
ˆ$‰&Œ&€CØˆ4‰6Œ6€DØˆT‰VŒV€FØˆT‰VŒV€FØ�$‘&”&€KØˆT‰VŒV€FØ�4‘6”6€LØˆd‰fŒf€GØˆd‰fŒf€GØˆT‰VŒV€FØˆT‰VŒV€FØˆd‰fŒf€GØ�$‘&”&€K€K€Kr   rS  c                  óB   — e Zd ZU ded<   dd„Zdd„Zdd	„Zdd„Zdd„ZdS )rR  rS  rH   r   r   c                ó   — | j         j         › S rF   rG   r   s    r   r   zBaseType.__str__  s   € Ø”)”.Ð"Ð"r   r»  rá   c                ó   — | j         |k    S rF   rG   r½  s     r   r¾  zBaseType.is_base_ty_like  s   € ØŒy˜GÒ#Ð#r   c                ó   — dS r1  r"   r   s    r   rÉ  zBaseType.is_nullable  ó   € Øˆur   rÊ  c                ó   — d S rF   r"   r   s    r   rÌ  zBaseType.is_list_like  ó   € Øˆtr   c                ó,   — | j         t          j        k    S rF   )rH   rS  rÆ  r   s    r   rÇ  zBaseType.is_symint_like   s   € ØŒy�FœMÒ)Ð)r   Nr   rÍ  rÞ  rÎ  )	r   r   r    r!   r   r¾  rÉ  rÌ  rÇ  r"   r   r   rR  rR    sƒ   € € € € € € à€L€L�Lð#ð #ð #ð #ð$ð $ð $ð $ðð ð ð ðð ð ð ð*ð *ð *ð *ð *ð *r   rR  c                  óB   — e Zd ZU ded<   dd„Zdd	„Zdd
„Zdd„Zdd„ZdS )r³  r­  r±  r   r   c                ó   — | j         › d�S )Nú?)r±  r   s    r   r   zOptionalType.__str__)  s   € Ø”)ˆˆˆÐr   r»  rS  rá   c                ó6   — | j                              |¦  «        S rF   ©r±  r¾  r½  s     r   r¾  zOptionalType.is_base_ty_like,  ó   € ØŒy×(Ò(¨Ñ1Ô1Ð1r   c                ó4   — | j                              ¦   «         S rF   ©r±  rÇ  r   s    r   rÇ  zOptionalType.is_symint_like/  ó   € ØŒy×'Ò'Ñ)Ô)Ð)r   c                ó   — dS )NTr"   r   s    r   rÉ  zOptionalType.is_nullable2  râ  r   rÊ  c                ó4   — | j                              ¦   «         S rF   )r±  rÌ  r   s    r   rÌ  zOptionalType.is_list_like5  s   € ØŒy×%Ò%Ñ'Ô'Ð'r   Nr   rÍ  rÞ  rÎ  ©	r   r   r    r!   r   r¾  rÇ  rÉ  rÌ  r"   r   r   r³  r³  %  sƒ   € € € € € € à€J€J�Jðð ð ð ð2ð 2ð 2ð 2ð*ð *ð *ð *ðð ð ð ð(ð (ð (ð (ð (ð (r   r³  c                  óB   — e Zd ZU ded<   dd„Zdd„Zdd	„Zdd
„Zdd„ZdS )rµ  r   Ú
class_namer   c                ó   — 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   r»  rS  rá   c                ó   — dS r1  r"   r½  s     r   r¾  zCustomClassType.is_base_ty_likeD  rà  r   c                ó   — dS r1  r"   r   s    r   rÇ  zCustomClassType.is_symint_likeG  rà  r   c                ó   — dS )z8
        Assume a custom class is not nullable.
        Fr"   r   s    r   rÉ  zCustomClassType.is_nullableJ  s	   € ð ˆur   rÊ  c                ó   — d S rF   r"   r   s    r   rÌ  zCustomClassType.is_list_likeP  râ  r   Nr   rÍ  rÞ  rÎ  rï  r"   r   r   rµ  rµ  :  sƒ   € € € € € € à€O€O�Oð<ð <ð <ð <ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð ð r   rµ  c                  óL   — 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dS )r´  r­  r±  z
int | Noner²  r   r   c                ó>   — | j         r| j         › nd}| j        › d|› d�S )Nr6   ú[ú])r²  r±  )r   r²  s     r   r   zListType.__str__`  s/   € Ø!%¤Ð2�$”)ˆ~ˆ~°ˆØ”)Ð%Ð%˜dÐ%Ð%Ð%Ð%r   r»  rS  rá   c                ó6   — | j                              |¦  «        S rF   rè  r½  s     r   r¾  zListType.is_base_ty_liked  ré  r   c                ó4   — | j                              ¦   «         S rF   rë  r   s    r   rÇ  zListType.is_symint_likeg  rì  r   c                ó4   — | j                              ¦   «         S rF   )r±  rÉ  r   s    r   rÉ  zListType.is_nullablej  s   € ØŒy×$Ò$Ñ&Ô&Ð&r   rÊ  c                ó   — | S rF   r"   r   s    r   rÌ  zListType.is_list_likem  s   € Øˆr   Nr   rÍ  rÞ  rÎ  rï  r"   r   r   r´  r´  [  s�   € € € € € € à€J€J�JØÐÐÑð&ð &ð &ð &ð2ð 2ð 2ð 2ð*ð *ð *ð *ð'ð 'ð 'ð 'ðð ð ð ð ð r   r´  c                  óˆ   — 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	dS )r/  r   rH   r­  rQ  r9  rX  úAnnotation | NonerÆ  r   c                ó   — | j         S rF   rH  r   s    r   Ú
alias_infozArgument.alias_info�  ó
   € àŒÐr   r³  c                ó<  — d| vrt          d| › d�¦  «        ‚d| v re|                      d¦  «        dk    rt          d| › d�¦  «        ‚|                      d¦  «        \  }}|                     dd¦  «        \  }}|› d|› �}n|                      dd¦  «        \  }}|}d }t	          j        d|¦  «        }|r‚|                     d¦  «        d	vr%t          d
|                     d¦  «        › �¦  «        ‚d|                     d¦  «        z   }t                               |                     d¦  «        ¦  «        }n|}d }t                               |¦  «        }	t          ||	||¬¦  «        }
t          |
¦  «        | k    r!t          t          |
¦  «        › d| › �¦  «        ‚|
S )Nr  zillegal argument 'rô  ú=r)  z&illegal argument with default value: 'úTensor\((.+)\)(.*)ri  ©r6   ræ  z[]ú.unrecognized alias analysis form with Tensor: rT  ©rH   rQ  rX  rÆ  ré  )rP   Úcountrþ   Úrsplitrœ  r¦  r§  rŸ  rT   r­  r/  r   )r³  Útype_and_annot_and_namerX  Útype_and_annotrH   Úname_and_defaultr¦  Útype_srÆ  rQ  rÞ   s              r   rT   zArgument.parse“  sÇ  € ð �cˆ>ˆ>Ý Ð!<°cÐ!<Ð!<Ð!<Ñ=Ô=Ð=Ø�#ˆ:ˆ:Ø�yŠy˜‰~Œ~ Ò"Ð"Ý$Ð%TÈcÐ%TÐ%TÐ%TÑUÔUÐUØ/2¯yªy¸©~¬~Ñ,Ð# WØ#:×#AÒ#AÀ#ÀqÑ#IÔ#IÑ ˆN˜DØ"&Ð2Ð2¨Ð2Ð2ÐÐà/2¯zªz¸#¸qÑ/AÔ/AÑ,ˆNÐ,Ø#ˆDØˆGå”Ð.°Ñ?Ô?ˆàð 
	à�{Š{˜1‰~Œ~ _Ð4Ð4Ý$ØUÀUÇ[Â[ÐQRÁ^Ä^ÐUÐUñô ð ð  §¢¨A¡¤Ñ.ˆFÝ#×)Ò)¨%¯+ª+°a©.¬.Ñ9Ô9ˆJˆJà#ˆFØˆJÝ�zŠz˜&Ñ!Ô!ˆÝØØØØ!ð	
ñ 
ô 
ˆõ ˆq‰6Œ6�SŠ=ˆ=Ý ¥C¨¡F¤FÐ!5Ð!5°Ð!5Ð!5Ñ6Ô6Ð6Øˆr   rá   c                ó,   — | j         d uo| j         j        S rF   rÅ  r   s    r   rÇ  zArgument.is_write¼  ó   € àŒ dÐ*ÐG¨t¬Ô/GÐGr   c                óÞ   — | j         › }| j        r5|dvrt          d|› �¦  «        ‚|                     dd| j        › d�¦  «        }| j        €|S d}| j        r
d| j        › �}|› d| j        › |› �S )	N©rT  zTensor?zTensor[]úannotation on non-Tensor type: rT  úTensor(rë  r6   r  r  )rQ  rÆ  rP   rˆ  rH   rX  )r   rQ  Ú
mb_defaults      r   r   zArgument.__str__À  s    € Ø”)ˆ~ˆØŒ?ð 	HØÐ<Ð<Ð<Ý$Ð%MÀtÐ%MÐ%MÑNÔNÐNØ—<’< Ð*F°D´OÐ*FÐ*FÐ*FÑGÔGˆDØŒ9ÐØˆKàˆJØŒ|ð 0Ø/ ¤Ð/Ð/�
ØÐ4Ð4˜TœYÐ4¨
Ð4Ð4Ð4r   N©r   r   )r³  r   r   r/  rÞ  r   ©
r   r   r    r!   rß  r  rÎ   rT   rÇ  r   r"   r   r   r/  r/  q  s»   € € € € € € ð
 €I€I�IØ€J€J�JØÐÐÑð* "Ð!Ð!Ñ!àðð ð ñ „Xðð ð&ð &ð &ñ „\ð&ðP ðHð Hð Hñ „XðHð5ð 5ð 5ð 5ð 5ð 5r   r/  c                  ó~   — 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	dS )rz  r9  rH   r­  rQ  r   rÆ  r   c                ó   — | j         S rF   rH  r   s    r   r  zReturn.alias_infoÕ  r  r   r³  r   c                óD  — d| v r|                       dd¦  «        \  }}n| }d }t          j        d|¦  «        }|r‚|                     d¦  «        dvr%t	          d|                     d¦  «        › �¦  «        ‚d|                     d¦  «        z   }t
                               |                     d¦  «        ¦  «        }n|}d }t                               |¦  «        }t          |||¬¦  «        }t          |¦  «        | k    r!t	          t          |¦  «        › d	| › �¦  «        ‚|S )
Nr  r)  r  ri  r  r  rT  r|  ré  )
r  rœ  r¦  r§  rP   rŸ  rT   r­  rz  r   )r³  r  rH   r¦  r  rÆ  rQ  rÞ   s           r   rT   zReturn.parseÙ  s-  € ð �#ˆ:ˆ:Ø#&§:¢:¨c°1Ñ#5Ô#5Ñ ˆN˜D˜Dà ˆNØˆDÝ”Ð.°Ñ?Ô?ˆàð 
	à�{Š{˜1‰~Œ~ _Ð4Ð4Ý$ØUÀUÇ[Â[ÐQRÁ^Ä^ÐUÐUñô ð ð  §¢¨A¡¤Ñ.ˆFÝ#×)Ò)¨%¯+ª+°a©.¬.Ñ9Ô9ˆJˆJà#ˆFØˆJÝ�zŠz˜&Ñ!Ô!ˆÝØØØ!ð
ñ 
ô 
ˆõ
 ˆq‰6Œ6�SŠ=ˆ=Ý ¥C¨¡F¤FÐ!5Ð!5°Ð!5Ð!5Ñ6Ô6Ð6Øˆr   rá   c                ó,   — | j         d uo| j         j        S rF   rÅ  r   s    r   rÇ  zReturn.is_writeø  r  r   c                ó´   — | j         › }| j        r5|dvrt          d|› �¦  «        ‚|                     dd| j        › d�¦  «        }| j        €|S |› d| j        › �S )Nr  r  rT  r  rë  r  )rQ  rÆ  rP   rˆ  rH   )r   rQ  s     r   r   zReturn.__str__ü  s}   € Ø”)ˆ~ˆØŒ?ð 	HØÐ<Ð<Ð<Ý$Ð%MÀtÐ%MÐ%MÑNÔNÐNØ—<’< Ð*F°D´OÐ*FÐ*FÐ*FÑGÔGˆDØŒ9ÐØˆKàÐ(Ð(˜TœYÐ(Ð(Ð(r   Nr  )r³  r   r   rz  rÞ  r   r  r"   r   r   rz  rz  Ï  s­   € € € € € € àÐÐÑØ€J€J�JØ!Ð!Ð!Ñ!àðð ð ñ „Xðð ðð ð ñ „\ðð< ðHð Hð Hñ „XðHð	)ð 	)ð 	)ð 	)ð 	)ð 	)r   rz  c                  ó   — e Zd ZU ded<   dS )ÚSelfArgumentr/  r\  N)r   r   r    r!   r"   r   r   r  r  		  s   € € € € € € àÐÐÑÐÐr   r  c                  ó@   — e Zd ZU ded<   ded<   ded<   ded<   d
d„Zd	S )ÚTensorOptionsArgumentsr/  ÚdtypeÚlayoutÚdeviceÚ
pin_memoryr   úSequence[Argument]c                ó6   — | j         | j        | j        | j        gS rF   ©r"  r#  r$  r%  r   s    r   ÚallzTensorOptionsArguments.all	  s   € Ø”
˜DœK¨¬°d´oÐFÐFr   N©r   r&  )r   r   r    r!   r)  r"   r   r   r!  r!  	  s]   € € € € € € à€O€O�OØÐÐÑØÐÐÑØÐÐÑðGð Gð Gð Gð Gð Gr   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
<   ed0d„¦   «         Zed0d„¦   «         Zed0d„¦   «         Zed0d„¦   «         Zed0d„¦   «         Z	ed1d„¦   «         Z
ed2d„¦   «         Zed3d„¦   «         Zed1d„¦   «         Zd4d„Zd5d„Zd5d„Zd5d„Zdd œd6d"„Zd7d#„Zd8d&„Zed9d*„¦   «         Zed:d+„¦   «         Zd;d,„Zd<d.„Zd/S )=r,  ztuple[Argument, ...]Úpre_self_positionalzSelfArgument | Noner[  rj  Úpre_tensor_options_kwarg_onlyzTensorOptionsArguments | Noner†  Úpost_tensor_options_kwarg_onlyr[  r   r&  c                ór   — g }|                      | j        ¦  «         |                      | j        ¦  «         |S rF   )rÛ   r8  r9  ©r   rM  s     r   Úflat_non_outzArguments.flat_non_out3	  s6   € à ˆØ�
Š
�4Ô'Ñ(Ô(Ð(Ø�
Š
�4Ô'Ñ(Ô(Ð(Øˆ
r   c                ó¾   — g }|                      | j        ¦  «         | j        �|                     | j        j        ¦  «         |                      | j        ¦  «         |S rF   )rÛ   r,  r[  rz  r\  rj  r0  s     r   r8  zArguments.flat_positional:	  sU   € à ˆØ�
Š
�4Ô+Ñ,Ô,Ð,ØŒ=Ð$Ø�JŠJ�t”}Ô-Ñ.Ô.Ð.Ø�
Š
�4Ô,Ñ-Ô-Ð-Øˆ
r   c                ó$   — d„ | j         D ¦   «         S )Nc                ó    — g | ]}|j         ¯	|‘ŒS r"   )rÇ  r«  s     r   r@   z:Arguments.post_self_positional_mutable.<locals>.<listcomp>E	  s   € ÐCÐCÐC�a¸¼
ÐC�ÐCÐCÐCr   )rj  r   s    r   rZ  z&Arguments.post_self_positional_mutableC	  s   € àCÐC˜4Ô4ÐCÑCÔCÐCr   c                óØ   — g }|                      | j        ¦  «         | j        �,|                      | j                             ¦   «         ¦  «         |                      | j        ¦  «         |S rF   )rÛ   r-  r†  r)  r.  r0  s     r   r9  zArguments.flat_kwarg_onlyH	  s`   € à ˆØ�
Š
�4Ô5Ñ6Ô6Ð6ØÔÐ*Ø�JŠJ�tÔ*×.Ò.Ñ0Ô0Ñ1Ô1Ð1Ø�
Š
�4Ô6Ñ7Ô7Ð7Øˆ
r   c                ó¦   — g }|                      | j        ¦  «         |                      | j        ¦  «         |                      | j        ¦  «         |S rF   )rÛ   r8  r9  r[  r0  s     r   r¼  zArguments.flat_allQ	  sJ   € à ˆØ�
Š
�4Ô'Ñ(Ô(Ð(Ø�
Š
�4Ô'Ñ(Ô(Ð(Ø�
Š
�4”8ÑÔÐØˆ
r   ú:Sequence[Argument | SelfArgument | TensorOptionsArguments]c                ór   — g }|                      | j        ¦  «         |                      | j        ¦  «         |S rF   )rÛ   Ú
positionalÚ
kwarg_onlyr0  s     r   Únon_outzArguments.non_outY	  s8   € ð GIˆØ�
Š
�4”?Ñ#Ô#Ð#Ø�
Š
�4”?Ñ#Ô#Ð#Øˆ
r   ú!Sequence[Argument | SelfArgument]c                ó´   — g }|                      | j        ¦  «         | j        �|                     | j        ¦  «         |                      | j        ¦  «         |S rF   )rÛ   r,  r[  rz  rj  r0  s     r   r9  zArguments.positionalb	  sR   € à-/ˆØ�
Š
�4Ô+Ñ,Ô,Ð,ØŒ=Ð$Ø�JŠJ�t”}Ñ%Ô%Ð%Ø�
Š
�4Ô,Ñ-Ô-Ð-Øˆ
r   ú+Sequence[Argument | TensorOptionsArguments]c                ó´   — g }|                      | j        ¦  «         | j        �|                     | j        ¦  «         |                      | j        ¦  «         |S rF   )rÛ   r-  r†  rz  r.  r0  s     r   r:  zArguments.kwarg_onlyk	  sT   € à79ˆØ�
Š
�4Ô5Ñ6Ô6Ð6ØÔÐ*Ø�JŠJ�tÔ*Ñ+Ô+Ð+Ø�
Š
�4Ô6Ñ7Ô7Ð7Øˆ
r   c                ó¦   — g }|                      | j        ¦  «         |                      | j        ¦  «         |                      | j        ¦  «         |S rF   )rÛ   r9  r:  r[  r0  s     r   r)  zArguments.allt	  sH   € àFHˆØ�
Š
�4”?Ñ#Ô#Ð#Ø�
Š
�4”?Ñ#Ô#Ð#Ø�
Š
�4”8ÑÔÐØˆ
r   ú	list[str]c                ó$   — d„ | j         D ¦   «         S )Nc                óB   — g | ]}|j         ®	|j         j        ¯|j        ‘ŒS rF   )rÆ  rÇ  rH   r«  s     r   r@   z/Arguments.mutable_arg_names.<locals>.<listcomp>}	  s6   € ð 
ð 
ð 
àØŒ|Ð'¨A¬LÔ,AÐ'ð ŒFà'Ð'Ð'r   )r¼  r   s    r   Úmutable_arg_nameszArguments.mutable_arg_names|	  s%   € ð
ð 
à”]ð
ñ 
ô 
ð 	
r   rá   c                ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3  óH   K  — | ]}|j                              ¦   «         V — Œd S rF   )rQ  rÀ  r«  s     r   rØ   z+Arguments.has_tensor_arg.<locals>.<genexpr>„	  ó0   è è € ÐFÐF¨q�1”6×(Ò(Ñ*Ô*ÐFÐFÐFÐFÐFÐFr   ©r»  r1  r   s    r   r‡  zArguments.has_tensor_argƒ	  ó"   € ÝÐFÐF°DÔ4EÐFÑFÔFÑFÔFÐFr   c                ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3  óH   K  — | ]}|j                              ¦   «         V — Œd S rF   )rQ  rÇ  r«  s     r   rØ   z+Arguments.has_symint_arg.<locals>.<genexpr>‡	  rG  r   rH  r   s    r   r˜  zArguments.has_symint_arg†	  rI  r   c                ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3  óH   K  — | ]}|j                              ¦   «         V — Œd S rF   )rQ  rÄ  r«  s     r   rØ   z.Arguments.has_generator_arg.<locals>.<genexpr>Š	  s0   è è € ÐIÐI°!�1”6×+Ò+Ñ-Ô-ÐIÐIÐIÐIÐIÐIr   rH  r   s    r   r½  zArguments.has_generator_arg‰	  s"   € ÝÐIÐI°tÔ7HÐIÑIÔIÑIÔIÐIr   Fr…  rv  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 )Nr¬  r/  r   c                óP   •— t          | j        | j        ‰s| j        nd d ¬¦  «        S )Nr	  )r/  rH   rQ  rX  )r¬  rv  s    €r   Ústrip_arg_annotationz1Arguments.signature.<locals>.strip_arg_annotation�	  s5   ø€ ÝØ”VØ”VØ)6Ð@˜œ	˜	¸DØð	ñ ô ð r   r"   ©r,  r[  rj  r-  r†  r.  r[  )r¬  r/  r   r/  )
r,  r‰  rŠ  r,  r[  r  r\  rj  r-  r.  )r   rv  rP  s    ` r   rõ  zArguments.signatureŒ	  sð   ø€ ð	ð 	ð 	ð 	ð 	ð 	õ Ý %ÝÐ(¨$Ô*BÑCÔCñ!ô !ð
 ”=Ð,õ Ð1Ð1°$´-Ô2HÑIÔIÑJÔJÐJàå!&ÝÐ(¨$Ô*CÑDÔDñ"ô "õ
 +0ÝÐ(¨$Ô*LÑMÔMñ+ô +õ •CÐ,¨dÔ.QÑRÔRÑSÔSñ+Tð  Ø+-àð/
ñ 
ô 
ð 	
r   c           	     ó°   — | j         €t          d¦  «        ‚t          j        | t	          t          j        | j         j        d ¬¦  «        ¦  «        ¬¦  «        S )Nz2remove_self_annotation called but self_arg is NonerH  )r[  )r[  rP   Údataclassesrˆ  r  r\  r   s    r   Úremove_self_annotationz Arguments.remove_self_annotation±	  s[   € ØŒ=Ð Ý Ð!UÑVÔVÐVÝÔ"ØÝ!ÝÔ# D¤MÔ$:ÀtÐLÑLÔLñô ð
ñ 
ô 
ð 	
r   rr  úlist[Argument]c                ó¦   — t          | j        ¦  «        dk    rt          d| j        › �¦  «        ‚t          j        | t          |¦  «        ¬¦  «        S )Nr   z0with_out_args called but self.out is not empty: )r[  )r|  r[  rP   rS  rˆ  r‰  )r   rr  s     r   Úwith_out_argszArguments.with_out_args»	  s\   € ÝˆtŒx‰=Œ=˜AÒÐÝ ØMÀ4Ä8ÐMÐMñô ð õ Ô"ØÝ�d‘”ð
ñ 
ô 
ð 	
r   rA  r   ú5tuple[list[Argument], list[Argument], list[Argument]]c                ó^  — g }g }g }|}|                       d¦  «        D ]‹}|sŒ|dk    r||urt          d¦  «        ‚|}Œ!t                               |¦  «        }|j        �|j        j        r||u rn#||u r|}n||u rt          d|j        › d�¦  «        ‚|                     |¦  «         ŒŒ|||fS )Nrý   rÍ  z:invalid syntax: kwarg-only specifier * can only occur onceznon-mutable argument 'z%' cannot follow mutable out arguments)rþ   rP   r/  rT   rÆ  rÇ  rH   rz  )rA  r9  r:  r[  Úarguments_accr³  Úpargs          r   Ú	_preparsezArguments._preparseÅ	  s  € à%'ˆ
Ø%'ˆ
Ø ˆØ"ˆð —:’:˜dÑ#Ô#ð 	'ð 	'ˆCØð ØØ�cŠzˆzØ ¨
Ð2Ð2Ý(ØTñô ð ð !+�ØÝ—>’> #Ñ&Ô&ˆDð ŒÐ*¨t¬Ô/GÐ*Ø  JÐ.Ð.ØØ" jÐ0Ð0Ø$'�Møà  CÐ'Ð'Ý(Øa°´ÐaÐaÐañô ð ð × Ò  Ñ&Ô&Ð&Ð&à˜: sÐ*Ð*r   c                óâ  — t                                | ¦  «        \  }}}d}t          |¦  «        D ]\  }}|j        dk    r|} nŒ|�-|d|…         }t	          ||         ¦  «        }||dz   d…         }	ng }d}|}	g }
d}g }|
}dd
„} |dt
                               d¦  «        ¦  «         |dt
                               d¦  «        ¦  «         |dt
                               d¦  «        ¦  «         |dt
                               d¦  «        ¦  «        g}d}|t          |¦  «        k     rñ|t          |¦  «        t          |¦  «        z
  k    r›t          d„ t          ||||t          |¦  «        z   …         ¦  «        D ¦   «         ¦  «        r\||
urt          d¦  «        ‚t          ||         ||dz            ||dz            ||dz            ¬¦  «        }|t          |¦  «        z  }|}ŒÑ|                     ||         ¦  «         |dz  }|t          |¦  «        k     °ñt          t          |¦  «        |t          |	¦  «        t          |
¦  «        |t          |¦  «        t          |¦  «        ¬¦  «        S )z.
        Input: 'int x, int y, int z'
        Nr   r)  rH   r   Útyr­  r   úCallable[[Argument], bool]c                ó   ‡ ‡— ˆ ˆfd„S )Nc                óJ   •— | j         ‰k    o| j        ‰t          ‰¦  «        fv S rF   )rH   rQ  r³  )r¬  rH   r^  s    €€r   ú<lambda>z/Arguments.parse.<locals>.pred.<locals>.<lambda>
  s&   ø€ ˜QœV tš^ÐP°´¸2½|ÈBÑ?OÔ?OÐ:PÐ0P€ r   r"   )rH   r^  s   ``r   ÚpredzArguments.parse.<locals>.pred
  s   øø€ ØPÐPÐPÐPÐPÐPr   r"  ró   r#  rÒ  r$  rÓ  r%  rá   r   c              3  ó2   K  — | ]\  }} ||¦  «        V — Œd S rF   r"   )r>   Úpr¬  s      r   rØ   z"Arguments.parse.<locals>.<genexpr>!
  sB   è è € ð ð á˜˜1ð �A�a‘D”Dðð ð ð ð ð r   z-tensor options arguments can only appear onceri  ra  r(  rQ  )rH   r   r^  r­  r   r_  )r,  r\  Ú	enumeraterH   r  r­  rT   r|  r)  rY  rP   r!  rz  r‰  )rA  r9  r:  r[  Úself_ixÚir¬  r,  r[  rj  r-  r†  r.  Úkwarg_only_accrc  Ú
predicatess                   r   rT   zArguments.parseí	  sÜ  € õ '0×&9Ò&9¸$Ñ&?Ô&?Ñ#ˆ
�J ð ˆÝ˜jÑ)Ô)ð 	ð 	‰DˆAˆqØŒv˜ÒÐØ�Ø�ð  ð ÐØ",¨X¨g¨XÔ"6ÐÝ# J¨wÔ$7Ñ8Ô8ˆHØ#-¨g¸©k¨m¨mÔ#<Ð Ð à"$ÐØˆHØ#-Ð ð 9;Ð%Ø8<ˆØ9;Ð&Ø6ˆð	Qð 	Qð 	Qð 	Qð ˆD��$Ÿ*š* \Ñ2Ô2Ñ3Ô3ØˆD��4Ÿ:š: hÑ/Ô/Ñ0Ô0ØˆD��4Ÿ:š: hÑ/Ô/Ñ0Ô0ØˆD��tŸzšz¨&Ñ1Ô1Ñ2Ô2ð	
ˆ
ð ˆØ•#�j‘/”/Ò!Ð!à•C˜
‘O”O¥c¨*¡o¤oÑ5Ò5Ð5åð ð å # J°
¸1¸qÅ3ÀzÁ?Ä?Ñ?RÐ;RÔ0SÑ TÔ Tðñ ô ñ ô ð ð &Ð-JÐJÐJÝ,ØKñô ð õ &<Ø(¨œmØ)¨!¨a©%Ô0Ø)¨!¨a©%Ô0Ø#-¨a°!©eÔ#4ð	&ñ &ô &�Nð �˜Z™œÑ(�AØ%C�NØØ×!Ò! *¨Q¤-Ñ0Ô0Ð0Ø�‰FˆAð/ •#�j‘/”/Ò!Ð!õ2 Ý %Ð&9Ñ :Ô :ØÝ!&Ð';Ñ!<Ô!<Ý*/Ð0MÑ*NÔ*NØ)Ý+0Ð1OÑ+PÔ+PÝ�c‘
”
ð
ñ 
ô 
ð 	
r   c                ó„  — g }|                      t          t          | j        ¦  «        ¦  «         | j        s| j        r|                     d¦  «         |                      t          t          | j        ¦  «        ¦  «         |                      t          t          | j        ¦  «        ¦  «         d                     |¦  «        S )NrÍ  rý   )rÛ   rŠ  r   r8  r9  r[  rz  rÝ   )r   Úall_argumentss     r   r   zArguments.__str__@
  s£   € Ø#%ˆØ×Ò�S¥ dÔ&:Ñ;Ô;Ñ<Ô<Ð<ØÔð 	& 4¤8ð 	&Ø× Ò  Ñ%Ô%Ð%Ø×Ò�S¥ dÔ&:Ñ;Ô;Ñ<Ô<Ð<Ø×Ò�S¥ d¤hÑ/Ô/Ñ0Ô0Ð0Ø�yŠy˜Ñ'Ô'Ð'r   r¦  c                óæ   — | j         €| j        rt          d¦  «        ‚| j        €| j        rt          d¦  «        ‚d„ | j        D ¦   «         }t          |¦  «        dk    rt          d|› �¦  «        ‚d S )Nz5pre_self_positional is non-empty but self_arg is NonezFpost_tensor_options_kwarg_only is non-empty but tensor_options is Nonec                ó8   — g | ]}|j         ®	|j         j        ¯|‘ŒS rF   rÅ  r«  s     r   r@   z+Arguments.__post_init__.<locals>.<listcomp>Y
  s4   € ð (
ð (
ð (
àØŒ|Ð'¨A¬LÔ,AÐ'ð à'Ð'Ð'r   r   zQmutable pre_self_positional arguments are not currently supported in the schema: )r[  r,  rP   r†  r.  r|  )r   Úmutable_pre_self_positionalss     r   rÀ  zArguments.__post_init__I
  sÂ   € ð Œ=Ð ØÔ'ð Ý$ØKñô ð ð ÔÐ&ØÔ2ð Ý$Ø\ñô ð ð(
ð (
àÔ-ð(
ñ (
ô (
Ð$õ
 Ð+Ñ,Ô,°Ò1Ð1Ý ð Cð  eAð  Cð  Cñô ð ð 2Ð1r   Nr*  )r   r7  )r   r<  )r   r>  ©r   rA  rÞ  )rv  rá   r   r,  )r   r,  )rr  rU  r   r,  )rA  r   r   rX  )rA  r   r   r,  r   rÝ  )r   r   r    r!   rß  r1  r8  rZ  r9  r¼  r;  r9  r:  r)  rD  r‡  r˜  r½  rõ  rT  rW  rÎ   r\  rT   r   rÀ  r"   r   r   r,  r,  	  s¨  € € € € € € ð
 .Ð-Ð-Ñ-Ø!Ð!Ð!Ñ!Ø.Ð.Ð.Ñ.à7Ð7Ð7Ñ7Ø1Ð1Ð1Ñ1ð 9Ð8Ð8Ñ8ð ÐÐÑàðð ð ñ „Xðð ðð ð ñ „Xðð ðDð Dð Dñ „XðDð ðð ð ñ „Xðð ðð ð ñ „Xðð ðð ð ñ „Xðð ðð ð ñ „Xðð ðð ð ñ „Xðð ðð ð ñ „Xðð
ð 
ð 
ð 
ðGð Gð Gð GðGð Gð Gð GðJð Jð Jð Jð 27ð #
ð #
ð #
ð #
ð #
ð #
ðJ
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð ð%+ð %+ð %+ñ „\ð%+ðN ðP
ð P
ð P
ñ „\ðP
ðd(ð (ð (ð (ðð ð ð ð ð r   r,  )r  ÚsubÚmulÚdivÚmodÚpowÚlshiftÚrshiftÚandÚxorÚorc                  ój   — 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dS )r‹  r   rÙ  rá   r\  r‡  Fr÷  Nr9  r3  rò  r   c                ób  ‡
— | dk    rt          d¦  «        ‚|                      d¦  «        rt          d¦  «        ‚t          j        d| ¦  «        }|r|                     d¦  «        nd}|r|                     d¦  «        n| }t          j        d|¦  «        }|�ed	}|                     d¦  «        Š
t          ˆ
fd
„t          D ¦   «         ¦  «        rd	}‰
dd …         Š
n@d}‰
d         dk    rt          d| › �¦  «        ‚nd}|Š
‰
d         dk    rd	}‰
d d…         Š
nd}d}‰
                     |¦  «        r1d	}‰
d t          |¦  «         …         Š
|s|rt          d| › �¦  «        ‚nd}t          ‰
||||¬¦  «        }	t          |	¦  «        | k    r!t          t          |	¦  «        › d| › �¦  «        ‚|	S )Nr6   zoperator name cannot be emptyr„  zs_out suffix is reserved and not permitted for operator names; did you mean to specify an out overload name instead?z^(?:(.*)::)?(.*)$r)  ri  z^__([^_]+)__$Tc              3  ó*   •K  — | ]}‰d |› �k    V — ŒdS )rh  Nr"   )r>   ÚnrÙ  s     €r   rØ   z)BaseOperatorName.parse.<locals>.<genexpr>¯
  s-   øè è € ÐGÐG q�4˜7˜q˜7˜7’?ÐGÐGÐGÐGÐGÐGr   Fr   rh  z,unexpected dunder method starting with 'i': r  Ú_Ú_functionalz:functional overload cannot be a dunder method or inplace: )rÙ  r\  r‡  r÷  r3  ré  )
rP   r…  rœ  r¦  r§  r»  ÚAUGMENTED_ASSIGNMENT_NAMESr|  r‹  r   )rò  r¦  r3  Úop_without_nsr$  r‡  r\  Úfunctional_suffixr÷  rÞ   rÙ  s             @r   rT   zBaseOperatorName.parseœ
  s.  ø€ à�Š8ˆ8Ý Ð!@ÑAÔAÐAØ�;Š;�vÑÔð 	Ý ðHñô ð õ ”Ð-¨rÑ2Ô2ˆØ&+Ð3�E—K’K ‘N”N�N°ˆ	Ø*/Ð7˜Ÿš A™œ˜°RˆÝŒHÐ% }Ñ5Ô5ˆØˆ=Ø ˆMØ—7’7˜1‘:”:ˆDÝÐGÐGÐGÐGÕ,FÐGÑGÔGÑGÔGð Ø�Ø˜A˜B˜B”x��à�ð
 ˜”7˜c’>�>Ý(ØKÀrÐKÐKñô ð ð "ð
 "ˆMØ ˆDØ�BŒx˜3ŠˆØ�Ø˜C˜R˜C”y��à�ð *ÐØ�=Š=Ð*Ñ+Ô+ð 
	(Ø"&ÐØÐ1�3Ð0Ñ1Ô1Ð1Ð1Ô2ˆDð ð  ð Ý$ØUÐQSÐUÐUñô ð ðð
 #(ÐåØØØ'Ø 3Øð
ñ 
ô 
ˆõ ˆq‰6Œ6�RŠ<ˆ<Ý ¥C¨¡F¤FÐ!4Ð!4°Ð!4Ð!4Ñ5Ô5Ð5Øˆ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 )NrY  r6   rh  Ú__r  r€  )r3  r‡  r\  rÙ  r÷  )r   Únamespace_prefixrh  s      r   r   zBaseOperatorName.__str__Þ
  s›   € Ø48´NÐJ˜dœnÐ0Ð0Ð0Ð0ÈÐØÔð 	7Ø”|Ð+��¨ˆAØ&Ð:Ð:¨!Ð:¨T¬YÐ:Ð:Ð:Ð:ð ”<ð��ð Ô+ð�]�]àð ð 'Ð6¨¬	Ð6°1Ð6Ð6Ð6r   )rò  r   r   r‹  r   )	r   r   r    r!   r÷  r3  rÎ   rT   r   r"   r   r   r‹  r‹  |
  sŽ   € € € € € € à€I€I�IØ€M€M�MØÐÐÑð( !&ÐÐ%Ð%Ð%Ñ%ð !€IÐ Ð Ð Ñ àð?ð ?ð ?ñ „\ð?ðB7ð 7ð 7ð 7ð 7ð 7r   r‹  c                  ó\   — 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	dS )rk  r‹  rH   r   re  r  r   c                ó  — d| v r|                       dd¦  «        \  }}n| }d}t          t                               |¦  «        |¬¦  «        }t	          |¦  «        | k    r!t          t	          |¦  «        › d| › �¦  «        ‚|S )Nú.r)  r6   rd  ré  )rþ   rk  r‹  rT   r   rP   )r  rH   re  rÞ   s       r   rT   zOperatorName.parseõ
  sˆ   € à�'ˆ>ˆ>Ø")§-¢-°°QÑ"7Ô"7ÑˆD�-�-àˆDØˆMÝÕ.×4Ò4°TÑ:Ô:È-ÐXÑXÔXˆÝˆq‰6Œ6�WÒÐÝ ¥C¨¡F¤FÐ!9Ð!9°Ð!9Ð!9Ñ:Ô:Ð:Øˆr   c                óB   — | j         r| j        › d| j         › �S | j        › S )Nr‰  ©re  rH   r   s    r   r   zOperatorName.__str__  ó0   € ØÔð 	"Ø”iÐ6Ð6 $Ô"4Ð6Ð6Ð6à”i�>Ð!r   c                óB   — | j         r| j        › d| j         › �S | j        › S )Nr  r‹  r   s    r   Úunambiguous_namezOperatorName.unambiguous_name  rŒ  r   c                óv   — t          t          | j        j        d| j        j        ¬¦  «        | j        ¬¦  «        S ©NFr†  rd  )rk  r‹  rH   rÙ  r‡  re  r   s    r   Úremove_inplacezOperatorName.remove_inplace  sE   € ÝÝ!Ø”Y”^ØØ"œiÔ5ðñ ô ð
 Ô,ð
ñ 
ô 
ð 	
r   Úoverloadc                ól   — t          t          | j        j        d| j        j        ¬¦  «        |¬¦  «        S r�  )rk  r‹  rH   rÙ  r‡  )r   r’  s     r   Úwith_overloadzOperatorName.with_overload  sB   € ÝÝ!Ø”Y”^ØØ"œiÔ5ðñ ô ð
 #ð
ñ 
ô 
ð 	
r   N)r  r   r   rk  r   )r   rk  )r’  r   r   rk  )
r   r   r    r!   rÎ   rT   r   rŽ  r‘  r”  r"   r   r   rk  rk  ð
  sœ   € € € € € € àÐÐÑØÐÐÑàð	ð 	ð 	ñ „\ð	ð"ð "ð "ð "ð"ð "ð "ð "ð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð 
r   rk  rî  r  Úbc                ó¬   — | j                              ¦   «         t          j        uo/|                     | ¦  «         o|                     |j        ¦  «        S rF   )r5  r·  r¸  rá  r%  )rî  r  r•  s      r   Ú"gets_generated_out_inplace_wrapperr—  '  sI   € ð 	
Œ�Š‰Œ�ZÔ2Ð2ð 	'Ø—’˜Q‘”Ðð	'à�LŠL˜œÑ&Ô&ðr   c                  ót   — 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dS )ÚNativeFunctionsViewGroupr2  Úviewræ  Ú	view_copyÚview_inplacer   r¦  c                ór  — | j         j        s!t          d| j         j        j        › �¦  «        ‚| j        €Yt          | j         ¦  «        rCt          t          | j         j        j        ¦  «        › dt          | j         ¦  «        ›d�¦  «        ‚�n7| j        j        j        j        j	         
                    d¦  «        s!t          d| j        j        j        › �¦  «        ‚| j         j                             ¦   «         | j        j                             d¬¦  «        k    rS| j         j                             ¦   «         }| j        j                             d¬¦  «        }t          d|› d	|› �¦  «        ‚d
| j        j        vrGt          t          | j        j        j        ¦  «        t          | j         j        ¦  «        f› d�¦  «        ‚| j        ��| j         j                             ¦   «         | j        j                             ¦   «         k    rQ| j         j                             ¦   «         }| j        j                             ¦   «         }t          d|› d	|› �¦  «        ‚| j         j        r`| j        �Y| j        j        sMt          t          | j         j        j        ¦  «        › dt          | j        j        j        ¦  «        › d�¦  «        ‚| j         j        r`| j        �[| j        j        sQt          t          | j         j        j        ¦  «        › dt          | j        j        j        ¦  «        › d�¦  «        ‚d S d S d S )Nzview is not a view op: z‰ 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.)r~  r  z4view_copy name must end with '_copy' or '_scatter': Tr‘  z+view and view_copy signatures don't match: ré  r›  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.z.view and view_inplace signatures don't match: 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.)rš  rÕ  rP   r5  rH   r›  Úgets_generated_view_copyr   Úget_view_copy_namerÙ  r…  rõ  rM  rœ  rI  rJ  )r   Úview_sigÚview_copy_sigÚview_inplace_sigs       r   rÀ  z&NativeFunctionsViewGroup.__post_init__F  su  € ØŒyÔ#ð 	RÝ Ð!P¸4¼9¼>Ô;NÐ!PÐ!PÑQÔQÐQØŒ>Ð!Ý'¨¬	Ñ2Ô2ð Ý$Ý˜4œ9œ>Ô.Ñ/Ô/ð Ið Iå*¨4¬9Ñ5Ô5ðIð Ið Iñô ð ñð ”>Ô&Ô+Ô0Ô5×>Ò>Ð?TÑUÔUð Ý$ØeÈ4Ì>ÔK^ÔKcÐeÐeñô ð ð ŒyŒ~×'Ò'Ñ)Ô)¨T¬^Ô-@×-JÒ-JØ%)ð .Kñ .ô .ò ð ð  œ9œ>×3Ò3Ñ5Ô5�Ø $¤Ô 3× =Ò =ÐSWÐ =Ñ XÔ X�Ý$Ø_À(Ð_Ð_ÐP]Ð_Ð_ñô ð ð  $¤.Ô"5Ð5Ð5Ý$Ý˜4œ>Ô.Ô3Ñ4Ô4µc¸$¼)¼.Ñ6IÔ6IÐJð Hð Hð Hñô ð ð
 ÔÐ(ØŒyŒ~×'Ò'Ñ)Ô)¨TÔ->Ô-C×-MÒ-MÑ-OÔ-OÒOÐOØœ9œ>×3Ò3Ñ5Ô5�Ø#'Ô#4Ô#9×#CÒ#CÑ#EÔ#EÐ Ý$ØeÀXÐeÐeÐScÐeÐeñô ð ð Œ9Ô;ð 	ØÔ Ð,ØÔ(ÔOð Ý(Ý˜tœyœ~Ô2Ñ3Ô3ð lð l½#¸dÔ>OÔ>TÔ>YÑ:ZÔ:Zð lð lð lñô ð ð Œ9ÔIð 	ØÔ Ð,ØÔ(Ô]ð Ý(Ý˜tœyœ~Ô2Ñ3Ô3ð xð x½#¸dÔ>OÔ>TÔ>YÑ:ZÔ:Zð xð xð xñô ð ð	ð 	Ø,Ð,ðð r   T)Úinclude_copyr£  rá   r   c             #  óh   K  — | j         V — | j        �	| j        V — | j        �|r| j        V — d S d S d S rF   )rš  rœ  r›  )r   r£  s     r   rö  z"NativeFunctionsViewGroup.functions{  sX   è è € ØŒiˆˆˆØÔÐ(ØÔ#Ð#Ð#Ð#ØŒ>Ð%¨,Ð%Ø”.Ð Ð Ð Ð Ð ð &Ð%Ð%Ð%r   r   c                ó   — | j         j        S rF   )rš  rÚ  r   s    r   rÚ  z"NativeFunctionsViewGroup.root_name‚  s   € àŒyÔ"Ð"r   c                ó   — | j         j        S rF   )rš  rI  r   s    r   Ú	compositez"NativeFunctionsViewGroup.composite†  s   € ð ŒyÔ?Ð?r   NrÝ  )r£  rá   r   r   r   rÞ  )	r   r   r    r!   rÀ  rö  rß  rÚ  r§  r"   r   r   r™  r™  <  sº   € € € € € € àÐÐÑð %Ð$Ð$Ñ$à'Ð'Ð'Ñ'ð3ð 3ð 3ð 3ðj 15ð !ð !ð !ð !ð !ð !ð ð#ð #ð #ñ „Xð#ð ð@ð @ð @ñ „Xð@ð @ð @r   r™  c                ó–   — | j         sdS | j        rdS d| j        v rdS | j        j        j        j                             d¦  «        rdS dS )NFrÉ  Ú_inverseT)rÕ  rI  rM  r5  rH   rÙ  r…  )rî  s    r   rž  rž  �  sa   € àŒ<ð Øˆuð 	Ô/ð Øˆuà˜œÐÐØˆuð 	„v„{ÔÔ×%Ò% jÑ1Ô1ð ØˆuØˆ4r   c                óR  — dg}t          | j        j        ¦  «        |vr+t          | ¦  «        st	          | j        j        › d�¦  «        ‚| j        j        j        j        › d�}t          t          |d| j        j        j        j        ¬¦  «        | j        j        j	        ¬¦  «        }|S )NÚnarrowz, does not have a generated view_copy variantr~  Fr†  rd  )
r   r5  rH   rž  rP   rÙ  rk  r‹  r‡  re  )rî  Ú-list_of_ops_with_explicit_view_copy_operatorsrŒ  Úview_copy_names       r   rŸ  rŸ  ¤  s»   € ð 6>°JÐ1Ý
ˆ1Œ6Œ;ÑÔÐLÐLÐLÝ'¨Ñ*Ô*ð 	Ý Ø”6”;ÐLÐLÐLñô ð ð ”6”;Ô#Ô(Ð/Ð/Ð/€IÝ!ÝØ E¸¼¼Ô9IÔ9Wð
ñ 
ô 
ð ”f”kÔ/ð	ñ ô €Nð Ðr   rB  r-  c                ó®   — | dk    rdS | d         dk    r| d         dk    r
| dd…         } t          d„ |                      d	¦  «        D ¦   «         ¦  «        S )
z$
    Input: '()'
    Output: []
    z()r"   r   r  r  rë  r)  c              3  óJ   K  — | ]}t                                |¦  «        V — Œd S rF   )rz  rT   r²  s     r   rØ   z parse_returns.<locals>.<genexpr>È  s.   è è € ÐFÐF s•—’˜cÑ"Ô"ÐFÐFÐFÐFÐFÐFr   rý   )r‰  rþ   )rB  s    r   r>  r>  ¿  sj   € ð
 �dÒÐØˆrØ�1„~˜ÒÐ ¨R¤°CÒ!7Ð!7Ø! ! B $Ô'ˆÝÐFÐF¨k×.?Ò.?ÀÑ.EÔ.EÐFÑFÔFÑFÔFÐFr   c                  óL   — e Zd ZU ded<   ded<   edd„¦   «         Zdd
„Zdd„ZdS )ry  zdict[str, list[Argument]]rˆ  rU  r  ÚsrcÚobjectr   c                óÔ  — t          | t          ¦  «        st          dt          | ¦  «        › �¦  «        ‚g }d| d         vr1| d                              d¦  «        }d„ |D ¦   «         }| d d…         } i }| D ]¡}t          |t
          ¦  «        st          dt          |¦  «        › �¦  «        ‚d|vrt          d|› �¦  «        ‚|                     d¦  «        \  }}d|v rt          d	|› d
�¦  «        ‚|                     d¦  «        }d„ |D ¦   «         }|||<   Œ¢t          ||¬¦  «        }	|	                     ¦   «         | k    r't          d|	                     ¦   «         › d| › �¦  «        ‚|	S )Nz precomputed must be a list, got r«  r  r`  c                óf   — g | ].}t                                |                     ¦   «         ¦  «        ‘Œ/S r"   ©r/  rT   r  ©r>   rH   s     r   r@   z$Precompute.parse.<locals>.<listcomp>å  s,   € ÐJÐJÐJ¸�Ÿš t§z¢z¡|¤|Ñ4Ô4ÐJÐJÐJr   z$precomputed item must be a str, got zSprecomputed parameters without replacement are allowed only in the last line, got: r  zillegal kernel param name 'z' in precomputed parametersc                óf   — g | ].}t                                |                     ¦   «         ¦  «        ‘Œ/S r"   rµ  r¶  s     r   r@   z$Precompute.parse.<locals>.<listcomp>ù  s,   € ÐQÐQÐQ¸t�hŸnšn¨T¯ZªZ©\¬\Ñ:Ô:ÐQÐQÐQr   )rˆ  r  zr.to_list() != src: ré  )rr  rv  rP   rQ  rþ   r   ry  Úto_list)
r±  Úadd_argsÚadd_listrˆ  Úraw_replace_itemr³  Úwith_list_rawÚ	with_listÚwith_list_argsrÞ   s
             r   rT   zPrecompute.parseÖ  s¾  € å˜#�tÑ$Ô$ð 	QÝ Ð!OÅDÈÁIÄIÐ!OÐ!OÑPÔPÐPð ˆØ˜˜RœÐ Ð Ø˜2”w—}’} SÑ)Ô)ˆHØJÐJÀÐJÑJÔJˆHØ�c�r�c”(ˆCàˆØ #ð 	*ð 	*ÐÝÐ.µÑ4Ô4ð Ý$ØS½4Ð@PÑ;QÔ;QÐSÐSñô ð ð Ð-Ð-Ð-Ý$Ø|ÐjzÐ|Ð|ñô ð ð "2×!7Ò!7¸Ñ!?Ô!?ÑˆC�Ø�cˆzˆzÝ$ØR°#ÐRÐRÐRñô ð ð &×+Ò+¨CÑ0Ô0ˆIØQÐQÀyÐQÑQÔQˆNØ)ˆG�C‰LˆLå˜w¨HÐ5Ñ5Ô5ˆØ�9Š9‰;Œ;˜#ÒÐÝ Ð!N¸¿	º	¹¼Ð!NÐ!NÈÐ!NÐ!NÑOÔOÐOØˆr   r¦  c                ó@  — | j         D ];}|j                             ¦   «         |j        k    rt          d|j        › �¦  «        ‚Œ<| j                             ¦   «         D ]@}|D ];}|j                             ¦   «         |j        k    rt          d|j        › �¦  «        ‚Œ<ŒAd S )Nz5precomputed argument name must not be all uppercase: )r  rH   ÚupperrP   rˆ  rú   )r   r¬  rA  s      r   rÀ  zPrecompute.__post_init__  sÊ   € ð ”ð 	ð 	ˆAØŒv�|Š|‰~Œ~ ¤Ò'Ð'Ý$ØTÈAÌFÐTÐTñô ð ð (ð ”L×'Ò'Ñ)Ô)ð 	ð 	ˆDØð ð �Ø”6—<’<‘>”> Q¤VÒ+Ð+Ý(ØXÐPQÔPVÐXÐXñô ð ð ,ðð	ð 	r   rA  c                óº   — g }| j                              ¦   «         D ]>\  }}d                     d„ |D ¦   «         ¦  «        }|                     |› d|› �¦  «         Œ?|S )Nrý   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S rF   rð  )r>   Úparams     r   rØ   z%Precompute.to_list.<locals>.<genexpr>  s(   è è € Ð$PÐ$P°E¥S¨¡Z¤ZÐ$PÐ$PÐ$PÐ$PÐ$PÐ$Pr   r«  )rˆ  rO   rÝ   rz  )r   Úreplace_listÚkernel_paramÚreplacement_paramsÚreplacementss        r   r¸  zPrecompute.to_list  sx   € ØˆØ04´×0BÒ0BÑ0DÔ0Dð 	Eð 	EÑ,ˆLÐ,ØŸ9š9Ð$PÐ$PÐ=OÐ$PÑ$PÔ$PÑPÔPˆLØ×Ò <Ð CÐ C°\Ð CÐ CÑDÔDÐDÐDàÐr   N)r±  r²  r   ry  rÝ  rp  )r   r   r    r!   rÎ   rT   rÀ  r¸  r"   r   r   ry  ry  Î  sw   € € € € € € ð 'Ð&Ð&Ñ&àÐÐÑàð(ð (ð (ñ „\ð(ðTð ð ð ðð ð ð ð ð r   ry  r   )rà   rD   r   rá   )rî  r2  r  rå  r•  r  r   rá   )rî  r2  r   rá   )rî  r2  r   rk  )rB  r   r   r-  )vÚ
__future__r   rS  r6  rœ  r   Úenumr   r   Útypingr   Útyping_extensionsr   Útorchgen.utilsr	   r
   Úcollections.abcr   r   r   r   r$   rˆ  rÜ   rÚ   ÚAUTOGRAD_KEYSÚFRAGMENT_NAMESPACESrD   rÐ   rß   r×   rÖ   ÚhasattrrÞ   Úprintrù  r,   r(   r'   r.   r+   rë   rî   r’   r¡   r`   r™   r¨   r“   r¢   r—   r¦   rƒ   r„   r~   r   r€   r�   r°   r±   r·   r¸   r2   r�   r¬   rŽ   r»   rg   r€  rå   rç   ré   rì   rï   Údispatch_device_mapró   rÿ   r!   r  r  r  r  r  r
  r  r  r  r  r(  r-  r2  r¸  rå  r�  r‰  r  r4  rŸ  r­  rS  rR  r³  rµ  r´  r/  rz  r  r!  r,  r�  r‹  rk  r—  r™  rž  rŸ  r>  ry  r"   r   r   ú<module>rÓ     s-  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø 	€	€	€	Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø *Ð *Ð *Ð *Ð *Ð *à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6ð ð =Ø<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<ð: €�$ÐÑÔð*ð *ð *ð *ð *ñ *ô *ñ Ôð*ðð ð ð ð ˆdñ ô ð ð (Ð ðð ð Ð ð"ð ð Ð ð (Ð(ð ,ð ,Ø,>ð,ñ ,ô ,ñ €ð #Ð$:Ð;Ð ð
`>ð `>ð `>ð `>ð `>�$ñ `>ô `>ð `>ðFð ð ð ð ˜Dñ ô ð ðð ð ð ð ð ð €BØ ð ð ˆØˆw�{ B¨¡GÑ,Ô,ð 	Ø+Ð+Ñ-Ô-ˆAØˆE�!‰HŒHˆHØ�,Øt˜2Ðt˜rÐtÐtÐqrÐtÐtñô ð ð	ðð „OØÔØ„OØ„OØÔðÐ ð #Ô'¨¬Ð9Ð ð „OØÔØÔØÔØÔØ„OØ„OØÔØÔØÔØÔØÔØÔØÔØÔØÔ)ØÔ5ØÔ)ØÔ6ØÔØÔ ØÔØÔð ÔØÔØÔØÔØÔ ØÔØÔðA!€ðLð ð ð ðð ð ð ðð ð ð ð*ð *ð *ð *ð%ð %ð %ð %ð
 ,¨VÐ5HÈ%ÐPÐ ð-ð -ð -ð -ð -�ñ -ô -ð -ð` 46€Ð 5Ð 5Ð 5Ñ 5à&˜JàŒØŒØŒØŒØÔðñô €ˆjÑ ð '˜J¨
Ô(8¸*Ô:KÐ'LÑMÔM€ˆjÑ Ø%˜:ØÔ˜jÔ6Ð7ñô €ˆiÑ ð % ZÔ0°=ÀÔ3LÑL€ˆeÑ Ø!.¨uÔ!5¸ÀiÔ8PÑ!P€ˆoÑ à�*Ô ¨iÔ 8Ñ8ð Ð"Ñ #ð;ð ;ð ;ð ;ð ;ˆtñ ;ô ;ð ;ð4ð ð ð ð �dñ ô ð ð
ð ð ð ð �Tñ ô ð ð$ €�$ÐÑÔð]
Gð ]
Gð ]
Gð ]
Gð ]
Gñ ]
Gô ]
Gñ Ôð]
Gð@ð ð ð ð �ñ ô ð ð €�$ÐÑÔðR
ð R
ð R
ð R
ð R
ñ R
ô R
ñ ÔðR
ðj €�$ÐÑÔð(ð (ð (ð (ð (ñ (ô (ñ Ôð(ð, €�$ÐÑÔð
ð 
ð 
ð 
ð 
ñ 
ô 
ñ Ôð
ðB €�$ÐÑÔð9ð 9ð 9ð 9ð 9ñ 9ô 9ñ Ôð9ðb €�$ÐÑÔðM@ð M@ð M@ð M@ð M@ñ M@ô M@ñ ÔðM@ðp €�$ÐÑÔð5ð 5ð 5ð 5ð 5ñ 5ô 5ñ Ôð5ð| €�$ÐÑÔð3"ð 3"ð 3"ð 3"ð 3"ñ 3"ô 3"ñ Ôð3"ðnð ð ð ð ˆTñ ô ð ð, €�$ÐÑÔð*ð *ð *ð *ð *ˆtñ *ô *ñ Ôð*ð( €�$ÐÑÔð(ð (ð (ð (ð (�4ñ (ô (ñ Ôð(ð( €�$ÐÑÔðð ð ð ð �dñ ô ñ Ôðð@ €�$ÐÑÔðð ð ð ð ˆtñ ô ñ Ôðð* €�$ÐÑÔðZ5ð Z5ð Z5ð Z5ð Z5ñ Z5ô Z5ñ ÔðZ5ðz €�$ÐÑÔð5)ð 5)ð 5)ð 5)ð 5)ñ 5)ô 5)ñ Ôð5)ðr €�$ÐÑÔðð ð ð ð ñ ô ñ Ôðð €�$ÐÑÔðGð Gð Gð Gð Gñ Gô Gñ ÔðGð €�$ÐÑÔðDð Dð Dð Dð Dñ Dô Dñ ÔðDðT
ð ð Ð ð* €�$ÐÑÔðn7ð n7ð n7ð n7ð n7ñ n7ô n7ñ Ôðn7ðf €�$ÐÑÔð3
ð 3
ð 3
ð 3
ð 3
ñ 3
ô 3
ñ Ôð3
ðlð ð ð ð* €�$ÐÑÔðM@ð M@ð M@ð M@ð M@ñ M@ô M@ñ ÔðM@ð`ð ð ð ð.ð ð ð ð6	Gð 	Gð 	Gð 	Gð €�$ÐÑÔðGð Gð Gð Gð Gñ Gô Gñ ÔðGð Gð Gr   