§
    Ó˜ºh;» ã                  ó:  — U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZm	Z	m
Z
 d dlmZmZ d dlmZ d dlmZmZmZmZmZ d dlmZ d dlZd dlmc mZ d dlmc mZ d dlmc mZ d dl mc m!Z! d dl"m#Z# d dl$m%Z% d d	l&m'Z' d d
l(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ d dl0m1Z1m2Z2m3Z3m4Z4 d dl5m6Z6m7Z7 d dl8m9Z9m:Z:m;Z;m<Z< d dl=m>Z> d dl?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZY d dlZm[Z[m\Z\m]Z]m^Z^ d dl_m`Z` d dlambZbmcZcmdZdmeZemfZfmgZgmhZh d dlimjZjmkZk erd dllmmZm  ed¦  «        Zn G d„ dek¦  «        Zo e	dddg¦  «        Zpi aqderd<   i asderd<   dÀd&„Zt	 	 	 dÁdÂd3„ZudÃdÄd4„Zvejw        dÅd5„¦   «         Zx	 dÆd(dd6œdÇd:„ZydÈd>„ZzdÉd@„Z{dÊdD„Z|dËdJ„Z}dÌdL„Z~dÍdN„ZdÎdS„Z€dÏdT„Z�dÐdU„Z‚dÐdV„Zƒ edW¬X¦  «         G dY„ dZ¦  «        ¦   «         Z„ edW¬X¦  «         G d[„ d\¦  «        ¦   «         Z… edW¬X¦  «         G d]„ d^¦  «        ¦   «         Z† edW¬X¦  «         G d_„ d`¦  «        ¦   «         Z‡ edW¬X¦  «         G da„ db¦  «        ¦   «         Zˆe3dÑdc„¦   «         Z‰dÒdf„ZŠdÓdi„Z‹ edW¬X¦  «         G dj„ dk¦  «        ¦   «         ZŒdÔdm„Z�dÕdn„ZŽdÖdq„Z�d×dt„Z�dØdv„Z‘dÙd~„Z’dÚd�„Z“e3dÛd‚„¦   «         Z”dÜdƒ„Z•e4dÝd…„¦   «         Z–dÞd‰„Z—dßd‹„Z˜dàd�„Z™e#jš        dŽœdád“„Z›dâd•„Zœe#jš        dŽœ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ëdº„Z¥dìd»„Z¦díd½„Z§dîd¾„Z¨e©d¿k    r e¨¦   «          dS dS )ïé    )ÚannotationsN)ÚdefaultdictÚ
namedtupleÚOrderedDict)Ú	dataclassÚfield)ÚPath)ÚAnyÚCallableÚLiteralÚTYPE_CHECKINGÚTypeVar)Úassert_never)Úcpp)Ú	translate)ÚBindingÚCppSignatureÚCppSignatureGroupÚDispatcherSignatureÚ
NamedCTypeÚNativeSignatureÚSpecialArgName)Úmethod_with_native_functionÚnative_function_managerÚwith_native_functionÚ with_native_function_and_indices)Úgen_aoti_c_shim_filesÚ*gen_static_dispatch_backend_call_signature)Ú gen_functionalization_definitionÚ"gen_functionalization_registrationÚ.gen_functionalization_view_inverse_declarationÚGenCompositeViewCopyKernel©Úgen_all_vmap_plumbing)ÚArgumentÚBackendIndexÚBackendMetadataÚBaseOperatorNameÚDEFAULT_KERNEL_NAMESPACEÚdispatch_device_mapÚDispatchKeyÚFRAGMENT_NAMESPACESÚFunctionSchemaÚis_cuda_dispatch_keyÚis_generic_dispatch_keyÚis_ufunc_dispatch_keyÚis_xpu_dispatch_keyÚLocationÚNativeFunctionÚNativeFunctionsGroupÚNativeFunctionsViewGroupÚOperatorNameÚOptionalTypeÚ
SchemaKindÚSelfArgumentÚSTRUCTURED_DISPATCH_KEYSÚTensorOptionsArgumentsÚTypeÚVariantÚViewSchemaKind)Úadd_generated_native_functionsÚgen_composite_functional_kernelÚgen_composite_out_kernelÚpre_group_native_functions)ÚSelectiveBuilder)Ú	concatMapÚcontextÚFileManagerÚmake_file_managerÚmapMaybeÚNamespaceHelperÚTarget)Ú
YamlDumperÚ
YamlLoader)ÚSequenceÚTc                  ó    ‡ — e Zd Zdˆ fd„	Zˆ xZS )Ú
LineLoaderFc                ór   •— t          ¦   «                              ||¬¦  «        }|j        j        dz   |d<   |S )N)Údeepé   Ú__line__)ÚsuperÚconstruct_mappingÚ
start_markÚline)ÚselfÚnoderR   ÚmappingÚ	__class__s       €úT/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/torchgen/gen.pyrV   zLineLoader.construct_mapping†   s8   ø€ Ý‘'”'×+Ò+¨D°tÐ+Ñ<Ô<ˆà"œoÔ2°QÑ6ˆ�
ÑØˆó    )F)Ú__name__Ú
__module__Ú__qualname__rV   Ú__classcell__)r\   s   @r]   rP   rP   …   s=   ø€ € € € € ðð ð ð ð ð ð ð ð ð r^   rP   Ú
ParsedYamlÚnative_functionsÚbackend_indiceszdict[str, ParsedYaml]Ú_GLOBAL_PARSE_NATIVE_YAML_CACHEzdict[str, set[str]]Ú_GLOBAL_PARSE_TAGS_YAML_CACHEÚdispatch_keyr+   Ú
device_fmsúdict[str, FileManager]Ú
default_fmrF   Úreturnc                óŠ   ‡ — |                      t          ˆ fd„t          j        ¦   «         D ¦   «         d¦  «        |¦  «        }|S )Nc              3  ó8   •K  — | ]\  }} |‰¦  «        ¯|V — Œd S ©N© )Ú.0ÚcheckÚdevicerh   s      €r]   ú	<genexpr>z1file_manager_from_dispatch_key.<locals>.<genexpr>œ   sK   øè è € ð ð á!�E˜6Ø�5˜Ñ&Ô&ðØðð ð ð ð ð r^   Ú )ÚgetÚnextr*   Úitems)rh   ri   rk   Úfms   `   r]   Úfile_manager_from_dispatch_keyrz   •   se   ø€ ð
 
�ŠÝðð ð ð å%8Ô%>Ñ%@Ô%@ðñ ô ð
 ñ	
ô 	
ð 	ñ

ô 

€Bð €Ir^   ú<stdin>FÚesÚobjectÚ
valid_tagsúset[str]Úignore_keysúset[DispatchKey] | NoneÚpathÚstrÚskip_native_fns_genÚboolc           	     ó„  ‡‡— t          | t          ¦  «        sJ ‚g }t          t          ¦  «        }| D �] }t          |t          ¦  «        sJ d|› �¦   «         ‚t          |                     d¦  «        t
          ¦  «        s
J |¦   «         ‚t          ||d         ¦  «        Š|                     d¦  «        Š‰€J d|› �¦   «         ‚t          ˆˆfd„¦  «        5  t          j	        |‰||¦  «        \  }}	| 
                    |¦  «         t          j        ||	¦  «         d d d ¦  «         n# 1 swxY w Y   �Œt          |¦  «         t          d„ ¦  «        }
|st          ||¦  «         |                     ¦   «         D ]8\  }}t          |ddt!          |¦  «        pt#          |¦  «        |¬	¦  «        |
|<   Œ9t%          ||
¦  «        S )
Nzexpected to be dict: rT   Úfunczmissed 'func' in c                 ó   •— d‰› d‰ › �S ©Nzin z:
  rp   )ÚfuncsÚlocs   €€r]   ú<lambda>z*parse_native_yaml_struct.<locals>.<lambda>¸   s   ø€ Ð4 3Ð4Ð4¨UÐ4Ð4€ r^   c                 ó>   — t          t          j        dddi ¬¦  «        S )NTF©rh   Úuse_out_as_primaryÚexternalÚdevice_guardÚindex)r&   r+   Ú	Undefinedrp   r^   r]   rŒ   z*parse_native_yaml_struct.<locals>.<lambda>¿   s)   € •Ý$Ô.Ø#ØØð ð
ñ 
ô 
€ r^   TFrŽ   )Ú
isinstanceÚlistr   Údictrv   Úintr2   rE   r3   Ú	from_yamlÚappendr&   Ú
grow_indexÚerror_check_native_functionsr?   rx   r.   r1   rc   )r|   r~   r€   r‚   r„   ÚrsÚbsÚer‡   ÚmÚindicesÚkÚvrŠ   r‹   s                @@r]   Úparse_native_yaml_structr£   ¨   s)  øø€ õ �b�$ÑÔÐÐÐØ!€BÝALÍTÑARÔAR€BØð 	+ñ 	+ˆÝ˜!�TÑ"Ô"Ð?Ð?Ð$?¸AÐ$?Ð$?Ñ?Ô?Ð?Ý˜!Ÿ%š% 
Ñ+Ô+­SÑ1Ô1Ð4Ð4°1Ñ4Ô4Ð4Ý�t˜Q˜zœ]Ñ+Ô+ˆØ—’�f‘”ˆØÐ Ð Ð"9°aÐ"9Ð"9Ñ Ô Ð ÝÐ4Ð4Ð4Ð4Ð4Ñ5Ô5ð 	+ð 	+Ý$Ô.¨q°#°zÀ;ÑOÔO‰GˆD�!Ø�IŠI�d‰OŒOˆOÝÔ# B¨Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ùõ ! Ñ$Ô$Ð$å/:ð	
ð 	
ñ
0ô 
0€Gð ð /Ý& r¨2Ñ.Ô.Ð.Ø—’‘
”
ð 	
ð 	
‰ˆˆ1å!ØØ#Øå-¨aÑ0Ô0ÐJÕ4GÈÑ4JÔ4JØð
ñ 
ô 
ˆ�‰
ˆ
õ �b˜'Ñ"Ô"Ð"s   ÃAD'Ä'D+	Ä.D+	c                ó&  ‡‡— t          | t          ¦  «        sJ ‚t          ¦   «         }| D ]æ}t          |                     d¦  «        t          ¦  «        s
J |¦   «         ‚t          ||d         ¦  «        Š|                     d¦  «        Št          ˆˆfd„¦  «        5  |                     ¦   «         }|                     d¦  «        }|                     dd¦  «        }|dk    sJ ‚| 	                    |¦  «         d d d ¦  «         n# 1 swxY w Y   Œç|S )NrT   Útagc                 ó   •— d‰ › d‰› �S r‰   rp   )r‹   Útagss   €€r]   rŒ   z(parse_tags_yaml_struct.<locals>.<lambda>ß   s   ø€ Ð3 3Ð3Ð3¨TÐ3Ð3€ r^   Údescru   )
r”   r•   Úsetrv   r—   r2   rE   ÚcopyÚpopÚadd)	r|   r‚   rœ   rž   Úe_iÚnamer¨   r‹   r§   s	          @@r]   Úparse_tags_yaml_structr¯   Ø   sA  øø€ Ý�b�$ÑÔÐÐÐÝ‘5”5€BØð 
ð 
ˆÝ˜!Ÿ%š% 
Ñ+Ô+­SÑ1Ô1Ð4Ð4°1Ñ4Ô4Ð4Ý�t˜Q˜zœ]Ñ+Ô+ˆØ�uŠu�U‰|Œ|ˆÝÐ3Ð3Ð3Ð3Ð3Ñ4Ô4ð 	ð 	Ø—&’&‘(”(ˆCØ—7’7˜5‘>”>ˆDØ—7’7˜6 2Ñ&Ô&ˆDà˜2’:�:�:�:Ø�FŠF�4‰LŒLˆLð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øð €Is   ÂADÄD		ÄD		c                óä   — | t           vr[t          | ¦  «        5 }t          j        |t          ¬¦  «        }t          || ¬¦  «        t           | <   d d d ¦  «         n# 1 swxY w Y   t           |          S )N©ÚLoader)r‚   )rg   ÚopenÚyamlÚloadrP   r¯   )r‚   Úfr|   s      r]   Úparse_tags_yamlr·   é   s¸   € ð Õ0Ð0Ð0Ý�$‰ZŒZð 	X˜1Ý”˜1¥ZÐ0Ñ0Ô0ˆBÝ2HÈÐRVÐ2WÑ2WÔ2WÕ)¨$Ñ/ð	Xð 	Xð 	Xñ 	Xô 	Xð 	Xð 	Xð 	Xð 	Xð 	Xð 	Xøøøð 	Xð 	Xð 	Xð 	Xõ )¨Ô.Ð.s   ™5AÁAÁ!A)r„   Úloaded_yamlÚtags_yaml_pathr¸   úobject | Nonec               ó  — | t           vrrt          |¦  «        }|€Ct          | ¦  «        5 }t          j        |t
          ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   n|}t          |||| |¬¦  «        t           | <   t           |          S )Nr±   )r‚   r„   )rf   r·   r³   r´   rµ   rP   r£   )r‚   r¹   r€   r„   r¸   r~   r¶   r|   s           r]   Úparse_native_yamlr¼   ô   sÕ   € ð Õ2Ð2Ð2Ý$ ^Ñ4Ô4ˆ
ð ÐÝ�d‘”ð 5˜qÝ”Y˜q­Ð4Ñ4Ô4�ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5øð ˆBå0HØØØØØ 3ð1
ñ 1
ô 1
Õ'¨Ñ-õ +¨4Ô0Ð0s   ªAÁAÁArŠ   úSequence[NativeFunction]ÚNonec           	     ór  — i }t          t          ¦  «        }| D ];}|||j        j        <   ||j        j        j                                      |¦  «         Œ<| D �]Þ}|j        �q|                     |j        ¦  «        }|€'J |j        j        › d|j        › d|j        › d�¦   «         ‚|j        s'J |j        j        › d|j        › d|j        › d�¦   «         ‚t          t          j
        ¦  «        }h d£}|j        j        j        D ]R}|j        |v rGt          |j        j        ¦  «        |j        f|vr%t          d|j        › d|j        j        › d�¦  «        ‚ŒSd	|j        v rÙt          |j        j        ¦  «        d
k    r¼t          |j        j        ¦  «        dk    rŸt          |j        j        j        ¦  «        dk    r}|j        j        j        }|j        sJ |j        j        › d�¦   «         ‚t#          |j        d|j        ¦  «        }	t)          ||	         ¦  «        dk    sJ |j        j        › d|› d�¦   «         ‚�Œàd S )Nz0 is marked as a structured_delegate pointing to z, but z is missing.zY is not marked as structured. Consider adding 'structured=True' to the delegated operator>   ©zrandom_.fromÚfrom©Úuniform_rÁ   ©Ú!_has_compatible_shallow_copy_typerÁ   zArgument name 'z' in function 'z' is a reserved Python keyword.Úinplace_viewÚresize_Ú
resize_as_Úset_z¢ is marked with tag: inplace_view, but it doesn't follow the naming convention for inplace ops - the codegen expects the base name to have a trailing underscore. Fr   zw is marked with tag: inplace_view. The codegen expects there to be a corresponding out-of-place view op with the name 'z/' and matching schema, but it didn't find one. )r   r•   r‡   r®   r™   Ústructured_delegaterv   Ú
structuredr©   ÚkeywordÚkwlistÚ	argumentsÚflat_allrƒ   ÚAssertionErrorr§   Úinplacer(   ÚbaseÚdunder_methodÚlen)
rŠ   Úfunc_mapÚbase_func_mapr¶   Údelegate_funcÚPYTHON_RESERVED_KEYWORDSÚEXCLUSION_LISTÚargÚ	base_nameÚout_of_place_base_names
             r]   r›   r›     sÝ  € Ø35€HÝBMÍdÑBSÔBS€MØð 2ð 2ˆØ !ˆ�””ÑØ�a”f”kÔ&Ô'×.Ò.¨qÑ1Ô1Ð1Ð1Øð 3ñ 3ˆØÔ Ð,Ø$ŸLšL¨Ô)>Ñ?Ô?ˆMØ Ð,Ð,Ø”6”;ð Tð TØÔ(ðTð TØ01Ô0EðTð Tð Tñ -Ô,Ð,ð !Ô+ð ð Ø”6”;ð Oð OØÔ(ðOð OØ01Ô0EðOð Oð Oñô ð õ $'¥w¤~Ñ#6Ô#6Ð ð
ð 
ð 
ˆð ”6Ô#Ô,ð 	ð 	ˆCØŒxÐ3Ð3Ð3Ý˜œœÑ$Ô$ c¤hÐ/°~ÐEÐEÝ(Øo¨#¬(ÐoÐoÀ1Ä6Ä;ÐoÐoÐoñô ð øð ˜aœfÐ$Ð$Ý�A”F”KÑ Ô  IÒ-Ð-Ý�A”F”KÑ Ô  LÒ0Ð0Ý�A”F”KÔ$Ñ%Ô%¨Ò/Ð/àœœÔ(ˆIØÔ$ð ð Ø”6”;ð qð qð qñô ð õ &6Ø”  yÔ'>ñ&ô &Ð"õ �}Ð%;Ô<Ñ=Ô=ÀÒAÐAÐAØ”6”;ð rð rØ7@ðrð rð rñ BÔAÐAùða3ð 3r^   Úsc                ón  — |                       dd¦  «        } |                       dd¦  «        } |                       dd¦  «        } |                       dd¦  «        } |                       d	d
¦  «        } |                       dd¦  «        } |                       dd¦  «        } |                       dd¦  «        } d| › d�S )z1Convert a python string into a c++ string literalú\z\\ú"z\"úz\aúz\búz\fú
z\núz\vú	z\t)Úreplace©rÝ   s    r]   Ú
cpp_stringré   P  s§   € à	�	Š	�$˜ÑÔ€AØ	�	Š	�#�uÑÔ€AØ	�	Š	�$˜ÑÔ€AØ	�	Š	�$˜ÑÔ€AØ	�	Š	�$˜ÑÔ€AØ	�	Š	�$˜ÑÔ€AØ	�	Š	�$˜ÑÔ€AØ	�	Š	�$˜ÑÔ€AØˆqˆ8ˆ8ˆ8€Or^   Úbackendsúlist[BackendIndex]úlist[DispatchKey]c                ó¢   — t          | ¦  «        dk    rg S d„ | D ¦   «         t          j        t          j        t          j        t          j        gz   S )Nr   c                ó   — g | ]	}|j         ‘Œ
S rp   )rh   )rq   Úbackends     r]   ú
<listcomp>z(static_dispatch_keys.<locals>.<listcomp>n  s   € Ð=Ð=Ð=¨�Ô$Ð=Ð=Ð=r^   )rÔ   r+   ÚCompositeImplicitAutogradÚ%CompositeImplicitAutogradNestedTensorÚCompositeExplicitAutogradÚ&CompositeExplicitAutogradNonFunctional©rê   s    r]   Ústatic_dispatch_keysrö   j  sQ   € Ý
ˆ8�}„}˜ÒÐØˆ	à=Ð=°HÐ=Ñ=Ô=ÝÔ1ÝÔ=ÝÔ1ÝÔ>ð	A
ñ 
ð 	
r^   r¶   r3   Úbackend_indexr&   úDispatchKey | Nonec                óä   — | j         €|                     | ¦  «        r|j        S | j        rt          j        S | j        rt          j        S | j        rt          j	        S | j
        rt          j        S d S ro   )rÊ   Ú
has_kernelrh   Ú&has_composite_explicit_autograd_kernelr+   ró   Ú5has_composite_explicit_autograd_non_functional_kernelrô   Ú&has_composite_implicit_autograd_kernelrñ   Ú4has_composite_implicit_autograd_nested_tensor_kernelrò   )r¶   r÷   s     r]   Úget_static_dispatch_backendrÿ   v  s„   € ð 	ÔÐ(¨M×,DÒ,DÀQÑ,GÔ,GÐ(ð
 Ô)Ð)Ø	
Ô	1ð AÝÔ4Ð4Ø	
Ô	@ð AÝÔAÐAØ	
Ô	1ð AÝÔ4Ð4Ø	
Ô	?ð AÝÔ@Ð@Øˆ4r^   ú
str | Nonec                óÚ   — |�| j         rd S g }|D ]G}t          | |¦  «        }|�3|                     d| j        › d|                     ¦   «         › d�¦  «         ŒHd                     |¦  «        S )Nú#include <ATen/ops/Ú_ú_dispatch.h>rä   )Úmanual_kernel_registrationrÿ   r™   Ú	root_nameÚlowerÚjoin)r¶   r÷   Úoutputr’   rh   s        r]   Ústatic_dispatch_ops_headerr
  Š  s�   € ð Ð Ô <ÐØˆtà€FØð ð ˆÝ2°1°eÑ<Ô<ˆØÐ#Ø�MŠMØV a¤kÐVÐV°L×4FÒ4FÑ4HÔ4HÐVÐVÐVñô ð øð �9Š9�VÑÔÐr^   ú	list[str]c                ó4   — d„ t          | ¦  «        D ¦   «         S )Nc                ó   — g | ]}d |› d�‘Œ	S )ú#include <ATen/úFunctions.h>rp   )rq   rh   s     r]   rð   z1static_dispatch_extra_headers.<locals>.<listcomp>›  s3   € ð ð ð àð 	5˜,Ð4Ð4Ð4ðð ð r^   )rö   rõ   s    r]   Ústatic_dispatch_extra_headersr  š  s+   € ðð å0°Ñ:Ô:ðñ ô ð r^   Úsigú"CppSignature | DispatcherSignatureÚcpp_sigr   c                óD  — dd„}t          |                      ¦   «         ¦  «        }t          |                     ¦   «         ¦  «        }|D ])}|j        j        t          j        k    r ||¦  «        } nŒ*t          ||¦  «        }d                     d„ |D ¦   «         ¦  «        S )NÚinput_bindingsúlist[Binding]rl   c                ó  — g }| D ]|}|j         dk    rZt          t          t          j        |j        j        ¦  «        |j         |j        |j        ¬¦  «        }| 	                    |¦  «         Œg| 	                    |¦  «         Œ}|S )NÚmemory_format)Únctyper®   ÚdefaultÚargument)
r®   r   r   r   Ú possibly_redundant_memory_formatr  Útyper  r  r™   )r  Úoutput_bindingsÚbindingÚspl_mem_format_bindings       r]   Úadd_spl_memory_format_bindingz5translate_args.<locals>.add_spl_memory_format_binding©  sœ   € Ø)+ˆØ%ð 	0ð 	0ˆGØŒ|˜Ò.Ð.Ý)0Ý%Ý&ÔGØœÔ+ñô ð !œØ#œOØ$Ô-ð*ñ *ô *Ð&ð  ×&Ò&Ð'=Ñ>Ô>Ð>Ð>à×&Ò& wÑ/Ô/Ð/Ð/ØÐr^   ú, c              3  ó$   K  — | ]}|j         V — Œd S ro   ©Úexpr©rq   Úas     r]   rt   z!translate_args.<locals>.<genexpr>Ä  s$   è è € Ð+Ð+ �Q”VÐ+Ð+Ð+Ð+Ð+Ð+r^   )r  r  rl   r  )r•   rÎ   r  r®   r   r  r   r  )r  r  r!  Úsrc_bindingsÚgoal_bindingsrÚ   Úexprss          r]   Útranslate_argsr+  ¤  s¶   € ð
ð ð ð õ$ ˜Ÿš™œÑ(Ô(€LÝ˜×*Ò*Ñ,Ô,Ñ-Ô-€Mð ð ð ˆØŒ:Œ?�nÔMÒMÐMØ8Ð8¸ÑFÔFˆLØˆEð Nõ �l MÑ2Ô2€EØ�9Š9Ð+Ð+ UÐ+Ñ+Ô+Ñ+Ô+Ð+r^   c           	     ó:  — t          | |¦  «        }|                     ¦   «         }t          | |¦  «        }|                     |¦  «        }|r|j        r|j        nt
          }|                     dd¦  «        }d|› d|j                             ¦   «         › d|› d|› d�	S )Nú::nativeru   úreturn ú::ú(ú);)	r   r®   r+  Ú
get_kernelÚcpp_namespacer)   rç   rh   r  )	r  r¶   r÷   r  r®   r*  Úbackend_metadataÚ	kernel_nsÚnss	            r]   Ú%generate_static_dispatch_backend_callr7  Ç  s¸   € õ
 9¸¸aÑ@Ô@€GØ�<Š<‰>Œ>€DÝ˜3 Ñ(Ô(€EØ$×/Ò/°Ñ2Ô2Ðð ð	&Ø 0Ô >ð	&ÐÔ&Ð&å%ð ð
 
×	Ò	˜: rÑ	*Ô	*€BØQ�RÐQÐQ˜=Ô5×;Ò;Ñ=Ô=ÐQÐQÀÐQÐQÈÐQÐQÐQÐQr^   c           	     óä  — t          j        |dd¬¦  «        }| j        r!|j                             ¦   «         r|j        }n|j        }|€J ‚|                     ¦   «         }t          | |¦  «        }t          j
        dd¦  «        }|j        r+d|› dt          j                             ¦   «         › d|› d|› d�	S |j        r+d|› dt          j                             ¦   «         › d|› d|› d�	S |j        r+d|› dt          j                             ¦   «         › d|› d|› d�	S |j        r+d|› dt          j                             ¦   «         › d|› d|› d�	S d	|› d
d                     d„ |D ¦   «         ¦  «        › d�S )NF©ÚmethodÚfallback_bindingr-  ru   r.  r/  r0  r1  z5TORCH_CHECK(false, "Static dispatch does not support z forr"  c                ó6   — g | ]}t          |j        ¦  «        ‘ŒS rp   )rƒ   rh   )rq   r’   s     r]   rð   z:generate_static_dispatch_fallback_call.<locals>.<listcomp>ó  s#   € ÐAÐAÐA¨�C�Ô"Ñ#Ô#ÐAÐAÐAr^   z ");)r   Úfrom_native_functionÚsymintr‡   Ú
has_symintÚsymint_signatureÚ	signaturer®   r+  r)   rç   rû   r+   ró   r  rü   rô   rý   rñ   rþ   rò   r  )r  r¶   re   Úcpp_sigsr  r®   r*  r6  s           r]   Ú&generate_static_dispatch_fallback_callrC  Ù  sñ  € õ
 !Ô5Ø	�%¨%ðñ ô €Hð „zð %�a”f×'Ò'Ñ)Ô)ð %ØÔ+ˆˆàÔ$ˆØÐÐÐØ�<Š<‰>Œ>€DÝ˜3 Ñ(Ô(€EÝ	!Ô	)¨*°bÑ	9Ô	9€BØÔ/ð 
KØ`˜Ð`Ð`�{ÔD×JÒJÑLÔLÐ`Ð`ÐPTÐ`Ð`ÐW\Ð`Ð`Ð`Ð`Ø	
Ô	@ð KØm˜ÐmÐm�{ÔQ×WÒWÑYÔYÐmÐmÐ]aÐmÐmÐdiÐmÐmÐmÐmØ	
Ô	1ð KØ`˜Ð`Ð`�{ÔD×JÒJÑLÔLÐ`Ð`ÐPTÐ`Ð`ÐW\Ð`Ð`Ð`Ð`Ø	
Ô	?ð KØl˜ÐlÐl�{ÔP×VÒVÑXÔXÐlÐlÐ\`ÐlÐlÐchÐlÐlÐlÐlðKÈð Kð KØ‡‚ÐAÐA°ÐAÑAÔAÑBÔBðKð Kð Kð 	Kr^   c           	     ó–  ‡— t          |¦  «        dk    s‰j        rdS ˆfd„|D ¦   «         }t          |¦  «        dk    rt          | ‰|d         ¦  «        S t          |¦  «        dk    rt          | ‰|¦  «        S d„ |                      ¦   «         D ¦   «         }d                     |¦  «        }‰j        j        j        }g }g }|�|                     d¦  «         |dk    r|                     d	|› d
�¦  «         |                     dd                     |¦  «        › d�¦  «         |                     d¦  «         g }	|D ]H}
|	                     d|
j	        › d�¦  «         |	                     dt          | ‰|
¦  «        › d�¦  «         ŒIt          | ‰|¦  «        }d}d|                     |¦  «        › d|                     |	¦  «        › d|› d�S )a  
    For a given `NativeFunction`, find out the corresponding backend and dispatch to it. If more than one
    backends exist, fallback to static dispatch by determining dispatch key from inputs.
    Arguments:
        sig: A CppSignature or DispatcherSignature for this native function we want to use.
        f: NativeFunction to generate static dispatch.
        backend_indices: All available backends.
    Return:
        C++ code to call backend-specific functions, e.g., "return at::cpu::add(self, other, scale);"
    r   ru   c                óh   •— g | ].}|                      ‰¦  «        s‰j        �|j        t          v ¯,|‘Œ/S ro   )rú   rÊ   rh   r:   )rq   Úbr¶   s     €r]   rð   z#static_dispatch.<locals>.<listcomp>  sP   ø€ ð ð ð àØ�<Š<˜‰?Œ?ðð
 Ô!Ð-Ø”Õ":Ð:Ð:ð 	
ð
 ;Ð:Ð:r^   rS   c                óÀ   — g | ][}t          |j        t          ¦  «        s8t          |j        t          ¦  «        ¯6|j        j                             ¦   «         ¯T|j        ‘Œ\S rp   )r”   r  r9   r%   r  Úis_tensor_liker®   r&  s     r]   rð   z#static_dispatch.<locals>.<listcomp>  sl   € ð ð ð àÝ�a”j¥,Ñ/Ô/ðõ �a”j¥(Ñ+Ô+ð	ð
 ŒJŒO×*Ò*Ñ,Ô,ðØ	Œðð ð r^   r"  Nz>DispatchKeySet(c10::computeDispatchKey(dtype, layout, device))z$c10::detail::multi_dispatch_key_set(ú)zDispatchKeySet _dk_set = z | ú;z=DispatchKey _dk = c10::highestPriorityBackendTypeId(_dk_set);zcase DispatchKey::ú:ræ   z
		ú
    z
    switch (_dk) {
        z
        default:
            z
    }
    )
rÔ   r  r7  rC  rÎ   r  r‡   Útensor_optionsr™   rh   )r  r¶   re   ÚkeysÚnative_tensor_argsÚtensor_argsÚtensor_optsÚstmtsÚsubexprsÚdispatch_coder’   ÚfallbackÚ	connectors    `           r]   Ústatic_dispatchrW  ö  sG  ø€ õ ˆ?ÑÔ˜qÒ Ð  AÔ$@Ð Øˆrðð ð ð à ðñ ô €Dõ ˆ4�y„y�A‚~€~Ý4°S¸!¸TÀ!¼WÑEÔEÐEÝ	ˆT‰Œ�aŠˆÝ5°c¸1¸oÑNÔNÐNðð à—’‘”ðñ ô Ðð —)’)Ð.Ñ/Ô/€KØ”&Ô"Ô1€Kà€EØ€HØÐØ�ŠØLñ	
ô 	
ð 	
ð �bÒÐØ�ŠÐM¸{ÐMÐMÐMÑNÔNÐNØ	‡L‚LÐH¨u¯zªz¸(Ñ/CÔ/CÐHÐHÐHÑIÔIÐIØ	‡L‚LÐPÑQÔQÐQà€MØð 
ð 
ˆØ×ÒÐK°EÔ4FÐKÐKÐKÑLÔLÐLØ×ÒØLÕ8¸¸aÀÑGÔGÐLÐLÐLñ	
ô 	
ð 	
ð 	
õ 6°c¸1¸oÑNÔN€HØ€IðØ‡^‚^�EÑÔðð ð 
�Š˜Ñ	&Ô	&ðð ð
 ðð ð ð r^   T)Úfrozenc                  óT   — e Zd ZU ded<    ee¬¦  «        Zded<   edd
„¦   «         ZdS )ÚRegisterSchemarC   Úselector)Údefault_factoryzdict[str, int]Ú
known_tagsr¶   r3   rl   r   c                óÌ  — | j                              |¦  «        sd S dd                     d„ t          |j        ¦  «        D ¦   «         ¦  «        z   dz   }|dk    r%dt          t          |j        ¦  «        ¦  «        › d�S d}|| j        vr't          | j        ¦  «        }|| j        |<   d	|› d
|› d�}|› dt          t          |j        ¦  «        ¦  «        › d| j        |         › d�S )NÚ{r"  c              3  ó    K  — | ]	}d |› �V — Œ
dS )z	at::Tag::Nrp   )rq   r¥   s     r]   rt   z*RegisterSchema.__call__.<locals>.<genexpr>K  s+   è è € ÐKÐK°SÐ0¨3Ð0Ð0ÐKÐKÐKÐKÐKÐKr^   Ú}z{}zm.def(z, {});
ru   z const std::vector<at::Tag> tags_z = ú;
z, tags_z);
)
r[  Úis_native_function_selectedr  Úsortedr§   ré   rƒ   r‡   r]  rÔ   )rY   r¶   r§   Ú
maybe_tagsÚidxs        r]   Ú__call__zRegisterSchema.__call__G  s÷   € àŒ}×8Ò8¸Ñ;Ô;ð 	Ø�4Ø�T—Y’YÐKÐK½FÀ1Ä6¹N¼NÐKÑKÔKÑKÔKÑKÈcÑQˆØ�4Š<ˆ<Ø?�J¥s¨1¬6¡{¤{Ñ3Ô3Ð?Ð?Ð?Ð?Øˆ
Ø�t”Ð&Ð&Ý�d”oÑ&Ô&ˆCØ$'ˆDŒO˜DÑ!ØM¸CÐMÐMÀDÐMÐMÐMˆJØÐ_Ð_¥J­s°1´6©{¬{Ñ$;Ô$;Ð_Ð_ÀDÄOÐTXÔDYÐ_Ð_Ð_Ð_r^   N©r¶   r3   rl   r   )	r_   r`   ra   Ú__annotations__r   r–   r]  r   rg  rp   r^   r]   rZ  rZ  B  se   € € € € € € àÐÐÑØ!& °tÐ!<Ñ!<Ô!<€JÐ<Ð<Ð<Ñ<à ð`ð `ð `ñ !Ô ð`ð `ð `r^   rZ  c                  ó<   — e Zd ZU ded<   ded<   edd	„¦   «         Zd
S )ÚComputeOperatorsú.Literal[Target.DECLARATION, Target.DEFINITION]Útargetrë   Ústatic_dispatch_backend_indicesr¶   r3   rl   rƒ   c                ó  — t          j        |j        ¦  «        }|j        j                             ¦   «         }| j        t          j        u r‘d|› d|                     ¦   «         › d|j        j        j        › d|j        j        j	        › dt          t          |j        ¦  «        ¦  «        › d|                     dd¬	¦  «        › d|                     d
d¬	¦  «        › d�S | j        t          j        u rýd|j        › d|› d|› d|› d|› d|› d�}dD ]Þ}|r8d                     dgd„ |                     ¦   «         D ¦   «         z   ¦  «        }d
}n3d                     d„ |                     ¦   «         D ¦   «         ¦  «        }d}|}|› d|› �}	d|› d|› d|› d�}
|s/t!          | j        ¦  «        dk    rt%          ||| j        ¬¦  «        }
|d|j        › d |                     |	|¬	¦  «        › d!|
› d"�z  }Œß|S t'          | j        ¦  «         d S )#Nz
struct TORCH_API z {
  using schema = z�;
  using ptr_schema = schema*;
  // See Note [static constexpr char* members for windows NVCC]
  static constexpr const char* name = "aten::z3";
  static constexpr const char* overload_name = "z/";
  static constexpr const char* schema_str = z;
  static ÚcallF)r®   Úis_redispatching_fnÚ
redispatchTz;
};ú

// aten::z.
static C10_NOINLINE c10::TypedOperatorHandle<z::schema> create_zQ_typed_handle() {
  return c10::Dispatcher::singleton()
      .findSchemaOrThrow(z::name, z::overload_name)
      .typed<z::schema>();
}
)FTr"  ÚdispatchKeySetc                ó   — g | ]	}|j         ‘Œ
S rp   ©r®   r&  s     r]   rð   z-ComputeOperators.__call__.<locals>.<listcomp>•  s   € Ð-NÐ-NÐ-N¸¨a¬fÐ-NÐ-NÐ-Nr^   c                ó   — g | ]	}|j         ‘Œ
S rp   rv  r&  s     r]   rð   z-ComputeOperators.__call__.<locals>.<listcomp>™  s   € Ð5VÐ5VÐ5VÀ°a´fÐ5VÐ5VÐ5Vr^   r/  z
    static auto op = create_z_typed_handle();
    return op.r0  r1  r   )re   rä   ú {
    z
}
)r   Úfrom_schemar‡   r®   Úunambiguous_namerm  rJ   ÚDECLARATIONr  Úoverload_nameré   rƒ   ÚdefnÚ
DEFINITIONr  rÎ   rÔ   rn  rW  r   )rY   r¶   r  r®   Údefnsrq  Údispatcher_exprs_strÚmethod_baseÚdispatcher_callÚmethod_nameÚfn_bodys              r]   rg  zComputeOperators.__call__`  sê  € å!Ô-¨a¬fÑ5Ô5ˆØŒvŒ{×+Ò+Ñ-Ô-ˆàŒ;�&Ô,Ð,Ð,ð0
Øð
ð 
à—(’(‘*”*ð
ð 
ð
 /0¬f¬kÔ.>ð
ð 
ð 23´´Ô1Jð
ð 
õ .8½¸A¼F¹¼Ñ-DÔ-Dð
ð 
ð �(Š(˜°Eˆ(Ñ
:Ô
:ð
ð 
ð �(Š(˜¸$ˆ(Ñ
?Ô
?ð
ð 
ð 
ð 
ð Œ[�FÔ-Ð-Ð-ðØ
Œ&ðð à.2ðð àEIðð ð ð	ð ð )-ð	ð ð
 ðð ð ˆEð (5ð ð Ð#Ø&ð )Ø+/¯9ª9Ø)Ð*Ð-NÐ-N¸c¿mºm¹o¼oÐ-NÑ-NÔ-NÑNñ,ô ,Ð(ð #/�K�Kà+/¯9ª9Ð5VÐ5VÀcÇmÂmÁoÄoÐ5VÑ5VÔ5VÑ+WÔ+WÐ(Ø"(�Kà"-�Ø!%Ð6Ð6¨Ð6Ð6�ð<Ø!ð<ð <àð<ð <à!5ð<ð <ð <�ð
 ,ðå˜DÔ@ÑAÔAÀAÒEÐEõ .Ø˜Q°Ô0Tðñ ô �Gð ð Ø
Œ&ðð à‡‚ˆ{Ð0C€ÑDÔDðð ð ðð ð ñ ��ð ˆLå˜œÑ%Ô%Ð%Ð%Ð%r^   N©r¶   r3   rl   rƒ   ©r_   r`   ra   ri  r   rg  rp   r^   r]   rk  rk  [  sS   € € € € € € à:Ð:Ð:Ñ:Ø7Ð7Ð7Ñ7à ðR&ð R&ð R&ñ !Ô ðR&ð R&ð R&r^   rk  c                  ó&   — e Zd Zedd„¦   «         ZdS )ÚComputeFunctionr¶   r3   rl   r   c                óÎ  — t          j        |d|j        ¬¦  «        }|j                             ¦   «         }d}|                     ¦   «         D �]}t          j        |j        ¦  «        }t          | 	                    ¦   «         | 	                    ¦   «         ¦  «        }d 
                    d„ |D ¦   «         ¦  «        }|j        rd}	nd}	t          j        |j        v rE|d|j        › d	|                     ¦   «         › d
|j        j                             ¦   «         › d|› d�	z  }|rB|d|	› d|                     d¬¦  «        › d
|j        j                             ¦   «         › d|› d�	z  }�Œ|S )NFr9  ru   r"  c                ó   — g | ]	}|j         ‘Œ
S rp   r$  ©rq   rž   s     r]   rð   z,ComputeFunction.__call__.<locals>.<listcomp>Æ  ó   € Ð"9Ð"9Ð"9¨a 1¤6Ð"9Ð"9Ð"9r^   zc10::SymIntÚint64_trs  ú
inline ú {
    return at::_ops::ú::call(z);
}zZ
namespace symint {
  template <typename T, typename = std::enable_if_t<std::is_same_v<T, z>>>
  T)Úsuppress_symint_suffixz	);
  }
}
)r   r=  Úmanual_cpp_bindingr‡   r?  Ú
signaturesr   ry  r   rÎ   r  r>  r=   ÚfunctionÚvariantsÚdeclr®   rz  )
rY   r¶   Ú	sig_groupr?  Úresultr  Ú
target_sigr*  Ú	exprs_strÚ	intlike_ts
             r]   rg  zComputeFunction.__call__º  s¹  € å%Ô:Ø�e¨aÔ.Bð
ñ 
ô 
ˆ	ð ”V×&Ò&Ñ(Ô(ˆ
àˆØ×'Ò'Ñ)Ô)ð  	ñ  	ˆCå,Ô8¸¼Ñ@Ô@ˆJÝ˜cŸmšm™oœo¨z×/CÒ/CÑ/EÔ/EÑFÔFˆEØŸ	š	Ð"9Ð"9°5Ð"9Ñ"9Ô"9Ñ:Ô:ˆIàŒzð &Ø)�	�	à%�	åÔ 1¤:Ð-Ð-Øð Ø
Œ&ðð à�Š‰
Œ
ðð ð ”f”k×2Ò2Ñ4Ô4ðð ð >Gðð ð ñ �ð ð Øð àGPðð ð ‡8‚8 4€8Ñ(Ô(ðð ð ”f”k×2Ò2Ñ4Ô4ð	ð ð >Gð	ð ð ñ �ùð ˆr^   Nrh  ©r_   r`   ra   r   rg  rp   r^   r]   rˆ  rˆ  ¸  s3   € € € € € à ð(ð (ð (ñ !Ô ð(ð (ð (r^   rˆ  c                  ó<   — e Zd ZU ded<   ded<   edd	„¦   «         Zd
S )ÚComputeTensorMethodrl  rm  rë   rn  r¶   r3   rl   r   c                ó>  — t           j        |j        vrd S |j                             ¦   «         rJ ‚|j        j        j        €J ‚t          j        |d|j	        ¬¦  «        }| j
        t          j        u r5d}|                     ¦   «         D ]}||                     ¦   «         › d�z  }Œ|S | j
        t          j        urt!          | j
        ¦  «         d}|                     ¦   «         D ]·}t#          j        |j        ¦  «        }t'          |                     ¦   «         |                     ¦   «         d¬¦  «        }d                     d„ |D ¦   «         ¦  «        }|d|j        › d	|                     d
¬¦  «        › d|j        j                             ¦   «         › d|› d�	z  }Œ¸|S )NTr9  ru   z const;
)r:  r"  c                ó   — g | ]	}|j         ‘Œ
S rp   r$  r‹  s     r]   rð   z0ComputeTensorMethod.__call__.<locals>.<listcomp>  rŒ  r^   rs  rŽ  zTensor::)Úprefixz const {
    return at::_ops::r�  ú);
}
)r=   r:  r•  r‡   Ú	is_out_fnrÎ   Úself_argr   r=  r’  rm  rJ   r{  r“  r–  r~  r   r   ry  r   r  r}  r®   rz  ©rY   r¶   r—  r˜  r  r™  r*  rš  s           r]   rg  zComputeTensorMethod.__call__í  sÉ  € åŒ> ¤Ð+Ð+Ø�4à”6×#Ò#Ñ%Ô%Ð%Ð%Ð%ØŒvÔÔ(Ð4Ð4Ð4å%Ô:Ø�d¨QÔ-Að
ñ 
ô 
ˆ	ð Œ;�&Ô,Ð,Ð,ØˆFØ ×+Ò+Ñ-Ô-ð 3ð 3�Ø˜SŸXšX™ZœZÐ2Ð2Ð2Ñ2��ØˆMàŒ;�fÔ/Ð/Ð/Ý˜œÑ%Ô%Ð%àˆà×'Ò'Ñ)Ô)ð 
	ð 
	ˆCÝ,Ô8¸¼Ñ@Ô@ˆJÝ˜cŸmšm™oœo¨z×/CÒ/CÑ/EÔ/EÈdÐSÑSÔSˆEØŸ	š	Ð"9Ð"9°5Ð"9Ñ"9Ô"9Ñ:Ô:ˆIàð Ø
Œ&ðð à�Š˜
ˆÑ#Ô#ðð ð ”f”k×2Ò2Ñ4Ô4ðð ð >Gðð ð ñ ˆFˆFð ˆr^   Nrh  r†  rp   r^   r]   rž  rž  è  sM   € € € € € € à:Ð:Ð:Ñ:Ø7Ð7Ð7Ñ7à ð"ð "ð "ñ !Ô ð"ð "ð "r^   rž  c                  ó&   — e Zd Zedd„¦   «         ZdS )ÚComputeRedispatchFunctionr¶   r3   rl   r   c                óÞ  — t          j        |d|j        ¬¦  «        }d}|                     ¦   «         D ]¹}t	          j        |j        ¦  «        }t          |                     ¦   «         |                     ¦   «         ¦  «        }d 	                    dgd„ |D ¦   «         z   ¦  «        }|d|j        › d| 
                    d	¬
¦  «        › d|j        j                             ¦   «         › d|› d�	z  }Œº|S )NFr9  ru   r"  rt  c                ó   — g | ]	}|j         ‘Œ
S rp   r$  r&  s     r]   rð   z6ComputeRedispatchFunction.__call__.<locals>.<listcomp>$  s   € Ð7NÐ7NÐ7NÀ1¸¼Ð7NÐ7NÐ7Nr^   rs  rŽ  T)rq  r�  z::redispatch(r¢  )r   r=  r’  r“  r   ry  r‡   r   rÎ   r  r–  r®   rz  r¥  s           r]   rg  z"ComputeRedispatchFunction.__call__  s  € õ &Ô:Ø�e¨aÔ.Bð
ñ 
ô 
ˆ	ð ˆØ×'Ò'Ñ)Ô)ð 
	ð 
	ˆCÝ,Ô8¸¼Ñ@Ô@ˆJÝ˜cŸmšm™oœo¨z×/CÒ/CÑ/EÔ/EÑFÔFˆEØŸ	š	Ð#3Ð"4Ð7NÐ7NÈÐ7NÑ7NÔ7NÑ"NÑOÔOˆIàð Ø
Œ&ðð à�Š TˆÑ*Ô*ðð ð ”f”k×2Ò2Ñ4Ô4ðð ð DMðð ð ñ ˆFˆFð ˆr^   Nrh  rœ  rp   r^   r]   r§  r§    s3   € € € € € à ðð ð ñ !Ô ðð ð r^   r§  c                óP   — d| j         j        j        › d| j         j        j        › d�S )Nz{"aten::z", "z"},)r‡   r®   r|  ©r¶   s    r]   Úcompute_aten_opr¬  5  s)   € àL�q”v”{Ô'ÐLÐL¨Q¬V¬[Ô-FÐLÐLÐLÐLr^   Úgr4   c                óæ  — | j         sd S t          | j        ¦  «        5  t          j        | ¦  «        }t          j        | ¦  «        }d                     d„ |D ¦   «         ¦  «        }| j        j        }|€d}d}| j         r| j        j        nd }|�r1g |j	         
                    ¦   «         ¢|j        ‘}d„ |D ¦   «         }d„ |D ¦   «         }	d                     d„ |	D ¦   «         ¦  «        }
d|
› d	�}d
„ |D ¦   «         }d                     d„ |D ¦   «         ¦  «        }g }t          |¦  «        D �]D\  }}d                     |	d |…         dgz   |	|dz   d …         z   ¦  «        }d|› d	�}||                              d¬¦  «        }|› d|j        › d|› d�}d|j        › d�}d|	|         › d|› d�}g }|                     |› d�¦  «         t          |¦  «        D ]P\  }}||k    r|                     d|j        › d�¦  «         Œ*|                     d|j        › d|j        › d�¦  «         ŒQ|                     d¦  «         d                      |¦  «        }|                     d!|› d"|› d#|› d$�¦  «         �ŒFd                      |¦  «        }d                     dgt          |	¦  «        z  ¦  «        }d%|› d&�}d'}d(|› d)|› d!|› d*�}nd+}d+}d,|› d-|› d.|› d/|› d/|› d0|› d1�cd d d ¦  «         S # 1 swxY w Y   d S )2Nr"  c              3  ó>   K  — | ]}|                      ¦   «         V — Œd S ro   )r–  r&  s     r]   rt   z4compute_meta_function_declaration.<locals>.<genexpr>A  s*   è è € Ð4Ð4¨!˜QŸVšV™XœXÐ4Ð4Ð4Ð4Ð4Ð4r^   zat::impl::MetaBaseÚvoidc                ó   — g | ]	}|D ]}|‘ŒŒ
S rp   rp   )rq   Úreplace_listÚelems      r]   rð   z5compute_meta_function_declaration.<locals>.<listcomp>M  s9   € ð $ð $ð $Ø%Èð$ð $Ø@D�ð$ð $ð $ð $r^   c                ó@   — g | ]}|j                              ¦   «         ‘ŒS rp   )r®   Úupper©rq   r³  s     r]   rð   z5compute_meta_function_declaration.<locals>.<listcomp>P  s1   € ð /ð /ð /Ø&*�”	—’Ñ!Ô!ð/ð /ð /r^   c              3  ó"   K  — | ]
}d |› d�V — ŒdS )zbool z = falseNrp   )rq   Úparams     r]   rt   z4compute_meta_function_declaration.<locals>.<genexpr>S  s?   è è € ð 8ð 8Ø,1Ð'˜Ð'Ð'Ð'ð8ð 8ð 8ð 8ð 8ð 8r^   z
template <ú>c                óD   — g | ]}t          j        ||j        ¬ ¦  «        ‘ŒS ))Úbinds)rË   Úargument_typer®   r¶  s     r]   rð   z5compute_meta_function_declaration.<locals>.<listcomp>Y  s:   € ð 3ð 3ð 3àõ Ô(¨°T´YÐ?Ñ?Ô?ð3ð 3ð 3r^   rb  c              3  óV   K  — | ]$}|                      d ¬¦  «        › d|j        › �V — Œ%dS )T©Ú	strip_refú N)Úcpp_typer®   r¶  s     r]   rt   z4compute_meta_function_declaration.<locals>.<genexpr>^  sT   è è € ð 3ð 3àð —=’=¨4�=Ñ0Ô0Ð>Ð>°4´9Ð>Ð>ð3ð 3ð 3ð 3ð 3ð 3r^   ÚtruerS   zprecompute_out<Tr¾  z set_r0  z value)rà   z already set"zstatic_assert(z == false, r1  z ret;zret.z	 = value;z	 = this->rJ  zreturn ret;rä   z
                    z {
                        z
                        z'
                    }
                z'using meta_return_ty = precompute_out <z>;Úmeta_return_tyz
                zG
                struct TORCH_API precompute_out {
                    z;
            };ru   zstruct TORCH_API structured_z
 : public rx  rL  z meta(z);
};
)rË   r   ÚoutÚmetar®   Úmeta_argumentsr  Ústructured_inheritsÚprecomputedrç   Úvaluesr¬   Ú	enumeraterÁ  r™   rÔ   )r­  r®   ÚargsÚargs_strÚparent_classÚmeta_returnrÈ  Úprecomputed_valuesÚprecomputed_elementsÚprecomputed_template_parametersÚprecomputed_template_params_strÚprecompute_template_declÚ#precomputed_elements_with_cpp_typesÚprecomputed_elements_declÚsetter_methodsÚir³  Úreturn_ty_templatesÚ	return_tyÚelem_cpp_tyrA  Ú
assert_msgÚassert_stmtÚconstruction_stmtsÚjÚconstruction_blockÚsetter_methods_declÚmeta_return_template_paramsÚmeta_return_typedefÚprecomputed_decls                                 r]   Ú!compute_meta_function_declarationrä  ;  s  € ØŒ<ð ØˆtÝ	  ¤Ñ	'Ô	'ð vð vÝŒy˜‰|Œ|ˆÝÔ(¨Ñ+Ô+ˆØ—9’9Ð4Ð4¨tÐ4Ñ4Ô4Ñ4Ô4ˆØ”uÔ0ˆØÐØ/ˆLØˆØ+,¬<ÐA�a”eÔ'Ð'¸Tˆàñ d	"ð "R ;Ô#6×#=Ò#=Ñ#?Ô#?Ð!QÀÄÐ!QÐð$ð $Ø);ð$ñ $ô $Ð ð/ð /Ø.Bð/ñ /ô /Ð+ð /3¯iªið 8ð 8Ø5Tð8ñ 8ô 8ñ /ô /Ð+ð (WÐ4SÐ'VÐ'VÐ'VÐ$ð3ð 3à0ð3ñ 3ô 3Ð/ð
 ).¯
ª
ð 3ð 3à?ð3ñ 3ô 3ñ )ô )Ð%ð  ˆNÝ$Ð%9Ñ:Ô:ð 2ñ 2‘��4ð '+§i¢iØ3°B°Q°BÔ7Ø�hñà5°a¸!±e°g°gÔ>ñ?ñ'ô 'Ð#ð
 EÐ.AÐDÐDÐD�	ØAÀ!ÔD×MÒMØ"ð Nñ ô �ð  )ÐOÐO¨t¬yÐOÐO¸;ÐOÐOÐO�	ð : ¤Ð9Ð9Ð9�
ØlÐ/NÈqÔ/QÐlÐlÐ^hÐlÐlÐl�ð &(Ð"Ø"×)Ò)¨YÐ*=Ð*=Ð*=Ñ>Ô>Ð>å(Ð)=Ñ>Ô>ð ð ‘G�A�tØ˜A’v�vØ*×1Ò1Ð2M¸¼Ð2MÐ2MÐ2MÑNÔNÐNÐNà*×1Ò1ØC 4¤9ÐCÐC°t´yÐCÐCÐCñô ð ð ð #×)Ò)¨-Ñ8Ô8Ð8Ø%)§Y¢YÐ/AÑ%BÔ%BÐ"à×%Ò%ðØðð à$ðð ð ,ðð ð ñô ð ñ ð #'§)¢)¨NÑ";Ô";Ðð +/¯)ª)Ø��3Ð>Ñ?Ô?Ñ?ñ+ô +Ð'ð
 #lÐLgÐ"kÐ"kÐ"kÐØ*ˆKð Ø)ð ð  ð )ð ð  ð /ð	 ð  ð  ÐÐð #%ÐØ!ÐðØ!ðð Ø-9ðð àðð ð ðð ð ð	ð ð !ð	ð ð ðavð vð vð vñ vô vð vð vð vð vð vð vøøøð vð vð vð vð vð vs   žJ;K&Ë&K*Ë-K*r[  rC   c                óæ   — t          | j        j        j        ¦  «        }|                     d¦  «        s|                     d¦  «        rdS | j        j        j        €dS |                     | ¦  «        S )NÚ_likeÚnew_F)rƒ   r‡   r®   ÚendswithÚ
startswithrÎ   rM  rc  )r¶   r[  r®   s      r]   Úneeds_backend_selectrê  ·  si   € ÝˆqŒvŒ{ÔÑ Ô €DØ‡}‚}�WÑÔð  §¢°Ñ!8Ô!8ð ØˆuØ„vÔÔ&Ð.ØˆuØ×/Ò/°Ñ2Ô2Ð2r^   c                  ó<   — e Zd ZU ded<   ded<   edd	„¦   «         Zd
S )ÚComputeBackendSelectz/Literal[Target.DEFINITION, Target.REGISTRATION]rm  rC   r[  r¶   r3   rl   r   c                ór  — t          || j        ¦  «        sd S t          j        |j        ¦  «        }t          |j        d¬¦  «        }d„ |                     ¦   «         D ¦   «         }t          j        |j        ¦  «        }|}| 	                    ¦   «         }d}| j
        t          j        u rÔ|rI|j        j                             ¦   «         sJ ‚d                     d„ |D ¦   «         ¦  «        }	d|› d|	› d	�}
n&|j        j                             ¦   «         rJ ‚d
|› d�}
d|j        › d|                     |¦  «        › d|
› d|j        j                             ¦   «         › dd                     d„ |D ¦   «         ¦  «        › d�S | j
        t          j        u rd|j        j        › d|› d�S t%          | j
        ¦  «         d S )NT©r>  c                ó‚   — g | ]<}t          |j        t          ¦  «        ¯|j        j                             ¦   «         ¯:|‘Œ=S rp   )r”   r  r%   r  rH  r&  s     r]   rð   z1ComputeBackendSelect.__call__.<locals>.<listcomp>Ô  sT   € ð 
ð 
ð 
àÝ˜!œ*¥hÑ/Ô/ð
ð 56´J´O×4RÒ4RÑ4TÔ4Tð
Øð
ð 
ð 
r^   z.c10::computeDispatchKey(dtype, layout, device)r"  c              3  ó$   K  — | ]}|j         V — Œd S ro   rv  r&  s     r]   rt   z0ComputeBackendSelect.__call__.<locals>.<genexpr>è  s$   è è € Ð'KÐ'K°1¨¬Ð'KÐ'KÐ'KÐ'KÐ'KÐ'Kr^   z-DispatchKeySet _dk_set = c10::DispatchKeySet(z() | c10::detail::multi_dispatch_key_set(z³);
DispatchKeySet _dk_mask = c10::DispatchKeySet(DispatchKeySet::FULL_AFTER, DispatchKey::BackendSelect);
DispatchKeySet _dk = c10::impl::computeDispatchKeySet(_dk_set, _dk_mask);z)DispatchKeySet _dk = c10::DispatchKeySet(r1  z	// aten::z
C10_ALWAYS_INLINE
z {
  z
  return at::_ops::z::redispatch(
      _dk, c              3  ó$   K  — | ]}|j         V — Œd S ro   r$  r&  s     r]   rt   z0ComputeBackendSelect.__call__.<locals>.<genexpr>ø  s$   è è € Ð7Ð7 �a”fÐ7Ð7Ð7Ð7Ð7Ð7r^   r¢  zm.impl("aten::z", TORCH_FN(z));)rê  r[  Únativer®   r‡   r   rÎ   r   ry  r*  rm  rJ   r~  Úhas_tensor_argr  r}  rz  ÚREGISTRATIONr   )rY   r¶   r®   Ú
native_sigrO  Údispatcher_sigr  Údispatcher_exprsrh   rP  Ú
compute_dks              r]   rg  zComputeBackendSelect.__call__Ë  s*  € å# A t¤}Ñ5Ô5ð 	Ø�4åŒ{˜1œ6Ñ"Ô"ˆå$ Q¤V°DÐ9Ñ9Ô9ˆ
ð
ð 
à×)Ò)Ñ+Ô+ð
ñ 
ô 
Ðõ -Ô8¸¼Ñ@Ô@ˆð ˆØ)×/Ò/Ñ1Ô1ÐØGˆàŒ;�&Ô+Ð+Ð+ð
 "ð Ø”vÔ'×6Ò6Ñ8Ô8Ð8Ð8Ð8Ø"ŸišiÐ'KÐ'KÐ8JÐ'KÑ'KÔ'KÑKÔK�ðMØ.:ðMð MØdoðMð Mð M�
�
ð
 œ6Ô+×:Ò:Ñ<Ô<Ð<Ð<Ð<àPÀÐPÐPÐPð ðØ
Œ&ðð ð ‡‚ˆ$�„ðð ð ð	ð ð
 ”F”K×0Ò0Ñ2Ô2ðð ð �IŠIÐ7Ð7Ð&6Ð7Ñ7Ô7Ñ7Ô7ðð ð ð ð Œ[�FÔ/Ð/Ð/ØJ a¤f¤kÐJÐJ¸tÐJÐJÐJÐJå˜œÑ%Ô%Ð%Ð%Ð%r^   Nrh  r†  rp   r^   r]   rì  rì  Ã  sO   € € € € € € à;Ð;Ð;Ñ;ð ÐÐÑà ð2&ð 2&ð 2&ñ !Ô ð2&ð 2&ð 2&r^   rì  Údatac                ó’   — d„ t           _        d
d„}t          j        t          |¦  «         t	          j        | dt           d¬	¦  «        S )Nc                ó   — dS )NTrp   )rY   rù  s     r]   rŒ   zformat_yaml.<locals>.<lambda>
  s   € °4€ r^   Údumperr
   rù  rl   c                óP   — |                       |                     ¦   «         ¦  «        S ro   )Úrepresent_dictrx   )rü  rù  s     r]   Údict_representerz%format_yaml.<locals>.dict_representer  s   € Ø×$Ò$ T§Z¢Z¡\¤\Ñ2Ô2Ð2r^   Fg    eÍÍA)Údefault_flow_styleÚDumperÚwidth)rü  r
   rù  r
   rl   r
   )rK   Úignore_aliasesÚadd_representerr   r´   Údump)rù  rÿ  s     r]   Úformat_yamlr    sR   € à 7Ð 7…JÔð3ð 3ð 3ð 3õ Ô�{Ð,<Ñ=Ô=Ð=õ Œ9�T¨e½JÈcÐRÑRÔRÐRr^   c                óª   — | dk    rdS | dk    rdS 	 t          | ¦  «        S # t          $ r' 	 t          | ¦  «        cY S # t          $ r | cY cY S w xY ww xY w)NrÂ  TÚfalseF)r—   Ú
ValueErrorÚfloatrè   s    r]   Úpythonify_defaultr    s…   € ØˆF‚{€{ØˆtØ	
ˆgŠˆØˆuðÝ�1‰vŒvˆøÝð ð ð ð	Ý˜‘8”8ˆOˆOˆOøÝð 	ð 	ð 	ØˆHˆHˆHˆHˆHð	øøøðøøøs)   ’! ¡
A¬=ºA½AÁ	AÁAÁAÚtr<   c                óÒ   — t          | t          ¦  «        rt          | j        ¦  «        S t	          | ¦  «        dk    rdS t          j        | ddd¬¦  «                             ¦   «         S )NÚTensorz
at::TensorFÚ__placeholder__)Úmutabler»  r>  )r”   r7   Údynamic_typer³  rƒ   r   Úargumenttype_typerÁ  )r  s    r]   r  r  3  si   € Ý�!•\Ñ"Ô"ð $Ý˜AœFÑ#Ô#Ð#õ ˆ1�v„v�ÒÐØˆ|åÔ Ø	�5Ð 1¸%ðñ ô ç‚h�j„jðr^   r•  úset[Variant]c                ó˜   — dg}t           j        | v r|                     d¦  «         t           j        | v r|                     d¦  «         |S )Nr<   r  Ú	namespace)r=   r:  r™   r”  )r•  Ú	method_ofs     r]   Úcompute_method_of_yamlr  @  sT   € ð �€IÝ„~˜Ð!Ð!Ø×Ò˜Ñ"Ô"Ð"ÝÔ˜8Ð#Ð#Ø×Ò˜Ñ%Ô%Ð%ØÐr^   ú+tuple[list[dict[str, str]], dict[str, str]]c                óÜ  — i }t          j        | ¦  «        }g }t          t          | j        j        |¦  «        ¦  «        D ]©\  }\  }}t          |j        ¦  «        |t          j        |d¬¦  «         	                    ¦   «         dœ}|j
        rG|j
        |d<   | j                             ¦   «         r$|j
        || j        j        j        |         j
        <   |                     |¦  «         Œª||fS )NFrî  )r  r®   r  Ú
field_name)r   Úreturn_namesrÊ  Úzipr‡   Úreturnsr  r  Úreturn_typerÁ  r®   r£  rÎ   rÄ  r™   )r¶   Úname_to_field_nameÚnamesr  r×  Úrr®   Úrets           r]   Úcompute_returns_yamlr#  K  s÷   € ðT *,Ðõ Ô˜QÑÔ€EØ€GÝ!¥# a¤f¤n°eÑ"<Ô"<Ñ=Ô=ð ð ‰ˆ‰9ˆAˆtå(¨¬Ñ0Ô0Øå”O A¨eÐ4Ñ4Ô4×=Ò=Ñ?Ô?ð	
ð 
ˆð Œ6ð 	Jà !¤ˆC�ÑØŒv×ÒÑ!Ô!ð JØCDÄ6Ð" 1¤6Ô#3Ô#7¸Ô#:Ô#?Ñ@à�Š�sÑÔÐÐàÐ&Ð&Ð&r^   Úcpp_ar   Úschema_orderÚkwarg_only_setÚout_arg_setr  údict[str, str]c               ó.  — t          | j        t          ¦  «        r&d dd| j        | j        ddœ}| j        �
| j        |d<   |S t          | j        t          ¦  «        rt          ‚t          | j        t          ¦  «        rt          | j        ||||¬¦  «        S d S )Nzat::TensorOptionsFT)Ú
annotationr  Úis_nullabler®   r  Ú
kwarg_onlyr  ©r%  r&  r'  r  )
r”   r  r;   r®   r  r  r9   rÐ   r%   Úcompute_argument_yaml)r$  r%  r&  r'  r  rÚ   s         r]   Úcompute_cpp_argument_yamlr/  Ž  sµ   € õ �%”.Õ"8Ñ9Ô9ð 
àØ/Ø Ø”JØ”JØð"
ð "
ˆð Œ=Ð$Ø"œ]ˆC�	‰NØˆ
Ý	�E”N¥LÑ	1Ô	1ð 	
ÝÐÝ	�E”N¥HÑ	-Ô	-ð 
Ý$ØŒNØ%Ø)Ø#Ø1ð
ñ 
ô 
ð 	
ð
ð 
r^   r'  r%   c          	     ób  — | j         rt          | j         ¦  «        nd t          | j        ¦  «        | j                             ¦   «         | j        t          j        | dd¬¦  «                             ¦   «         dœ}| j	        �1t          t          j        | j	        | j        d¬¦  «        ¦  «        |d<   | j        |v rd|d<   | j        |v r#d|d	<   d|d
<   | j        |v r|| j                 |d<   | j                             ¦   «         }|�)|j        �"t          |j        ¦  «        dk    r
|j        |d<   |S )Nr  F)r»  r>  )r*  r  r+  r®   r  rî  r  Tr,  r	  Úallocater  r…   Úsize)r*  rƒ   r  r  r+  r®   r   r¼  rÁ  r  r  Údefault_exprÚis_list_liker2  r³  )r'  r%  r&  r'  r  rÚ   Úls          r]   r.  r.  ®  s>  € ð ,-¬<ÐA•c˜!œ,Ñ'Ô'Ð'¸TÝ$ Q¤VÑ,Ô,Ø”v×)Ò)Ñ+Ô+Ø”åÔ! !Ð+<ÀUÐKÑKÔK×TÒTÑVÔVðð €Cð 	„yÐÝ*ÝÔ˜QœY¨¬°uÐ=Ñ=Ô=ñ
ô 
ˆˆI‰ð 	„v�ÐÐØ ˆˆLÑØ„v�ÐÐØˆˆH‰ØˆˆJ‰àŒ6Ð'Ð'Ð'Ø 2°1´6Ô :ˆC�Ñð 	
Œ×ÒÑÔ€AØ€}˜œÐ+µ°A´F±´¸vÒ0EÐ0EØ”fˆˆF‰Ø€Jr^   c                ór  ‡‡‡— t          | ¦  «        \  }Šd„ | j        j        j        D ¦   «         Šd„ | j        j        j        D ¦   «         Št          j        | dd¬¦  «        }|j                             ¦   «         }ˆˆˆfd„|D ¦   «         }t          | j         	                    ¦   «         ¦  «        }ˆˆˆfd„|D ¦   «         }d„ |D ¦   «         }t          j        | j        j        d¬¦  «                             ¦   «         }|› d	d
                     |¦  «        › d�}	t          d„ |D ¦   «         ¦  «        ot           j        | j        v}
t'          dt          j        | j        ¦  «        fdt+          | j        j        j        ¦  «        fdt+          | j        j        j        ¦  «        fd| j        fd| j        �| j        ndfdd| j        › �fd|fd|	fd|fdt3          | j        ¦  «        fdd| j        €dn| j        fd|fd| j        j        j        j        fd|
fd| j        fd| j        fd d!d"| j        fg¦  «        S )#Nc                ó   — h | ]	}|j         ’Œ
S rp   rv  r&  s     r]   ú	<setcomp>z+compute_declaration_yaml.<locals>.<setcomp>Ø  s   € ÐGÐGÐG �a”fÐGÐGÐGr^   c                ó   — h | ]	}|j         ’Œ
S rp   rv  r&  s     r]   r8  z+compute_declaration_yaml.<locals>.<setcomp>Ù  s   € Ð8Ð8Ð8˜a�1”6Ð8Ð8Ð8r^   Fr9  c           	     ó8   •— g | ]}t          |d ‰‰‰¬¦  «        ‘ŒS )Fr-  )r/  )rq   r$  r&  r  r'  s     €€€r]   rð   z,compute_declaration_yaml.<locals>.<listcomp>ß  sI   ø€ ð 	ð 	ð 	ð õ 	"ØØØ)Ø#Ø1ð	
ñ 	
ô 	
ð	ð 	ð 	r^   c           	     ó8   •— g | ]}t          |d ‰‰‰¬¦  «        ‘ŒS )Tr-  )r.  )rq   r'  r&  r  r'  s     €€€r]   rð   z,compute_declaration_yaml.<locals>.<listcomp>ì  sI   ø€ ð 	ð 	ð 	ð õ 	ØØØ)Ø#Ø1ð	
ñ 	
ô 	
ð	ð 	ð 	r^   c           
     ón   — g | ]2}t          j        |d t          ¦   «         d d d ¬¦  «        D ]	}|j        ‘Œ
Œ3S )F)r:  Úcpp_no_default_argsÚfaithfulr>  Úhas_tensor_options)r   r  r©   r  )rq   r'  r!  s      r]   rð   z,compute_declaration_yaml.<locals>.<listcomp>÷  sj   € ð ð ð ð Ý”ØØÝ #¡¤ØØØ$ð
ñ 
ô 
ð	ð ð ð 	
Œðð ð ð r^   rî  z (r"  rI  c              3  óJ   K  — | ]}t          |j        t          ¦  «        V — Œd S ro   )r”   r  r;   r&  s     r]   rt   z+compute_declaration_yaml.<locals>.<genexpr>
  s/   è è € ÐMÐM¸q�J�q”zÕ#9Ñ:Ô:ÐMÐMÐMÐMÐMÐMr^   r®   Úoperator_namer|  r  Úcategory_overrideru   Úschema_stringúaten::rÎ   Úschema_order_cpp_signatureÚschema_order_argumentsr  )Úmoderò  Úpython_moduler  rÑ   Úis_factory_methodÚabstractr‘   )Úwith_gilF)Ú
deprecatedFÚhas_math_kernel)r#  r‡   rÎ   Úflat_kwarg_onlyrÄ  r   r=  rA  r•   rF  r   Úreturns_typer  rÁ  r  Úanyr=   r:  r•  r   r®   rƒ   r|  r  rB  r  rH  rÑ   Úis_abstractr‘   rý   )r¶   r  r—  Úcpp_argsrÎ   Úschema_order_jit_argumentsrF  Úcpp_schema_order_typesÚcpp_returnsrE  rI  r&  r  r'  s              @@@r]   Úcompute_declaration_yamlrV  Ò  sÍ  øøø€ å"6°qÑ"9Ô"9Ñ€GÐð HÐG a¤fÔ&6Ô&FÐGÑGÔG€NØ8Ð8 1¤6Ô#3Ô#7Ð8Ñ8Ô8€Kå!Ô6Ø	�%¨%ðñ ô €Ið Ô"×,Ò,Ñ.Ô.€Hð	ð 	ð 	ð 	ð 	ð 	ð ð	ñ 	ô 	€Iõ "& a¤f×&CÒ&CÑ&EÔ&EÑ!FÔ!FÐð	ð 	ð 	ð 	ð 	ð 	ð ,ð	ñ 	ô 	Ððð ð ,ðñ ô Ðõ Ô" 1¤6¤>¸%Ð@Ñ@Ô@×IÒIÑKÔK€KØ$/Ð!WÐ!W°4·9²9Ð=SÑ3TÔ3TÐ!WÐ!WÐ!WÐõ 	ÐMÐMÀHÐMÑMÔMÑMÔMð 	-ÝŒN !¤*Ð,ð õ
 à•S”X˜aœfÑ%Ô%Ð&Ø�c !¤&¤+Ô"2Ñ3Ô3Ð4Ø�c !¤&¤+Ô";Ñ<Ô<Ð=Ø)¨1Ô+GÐHà#Ø'(Ô':Ð'F�Ô#Ð#ÈBðð Ð/ q¤vÐ/Ð/Ð0Ø˜)Ð$Ø)Ð+EÐFØ%Ð'=Ð>ØÕ0°´Ñ<Ô<Ð=ØØ A¤OÐ$;˜b˜bÀÄÐQØ˜Ð Ø˜œœÔ(Ô0Ð1Ø Ð"3Ð4Ø˜œÐ'Ø˜Qœ^Ð,ØØ!Ø Ô HÐIð/	
ñô ð r^   c                ó¾   — | j         s	| j        d uoM| j                             ¦   «         t          j        k    p&| j                             ¦   «         t          j        k    S ro   )rË   rÊ   r‡   Úkindr8   Ú
functionalrÑ   r«  s    r]   Ú"has_autogenerated_composite_kernelrZ  ,  sJ   € ØŒLÐ=˜AÔ1¸Ð=ð Ø	Œ�Š‰Œ�Ô.Ò.ÐU°!´&·+²+±-´-Å:ÔCUÒ2Uðr^   údict[DispatchKey, BackendIndex]c           	     óŒ  ‡ — t          j        ‰ j        ¦  «        }t          j        ‰ j        j        ¦  «                             ¦   «         }t          j        ‰ j        ¦  «        }d                     d„ |D ¦   «         ¦  «        }d‰ j        › �t          ˆ fd„| 	                    ¦   «         D ¦   «         t          j        hk    o9ˆ fd„| 	                    ¦   «         D ¦   «         t          j        t          j        hk    ¦  «        t          ‰ j        pt          ‰ ¦  «        ¦  «        dœ}|› d|› d|› d	t          j        |¦  «        › d
�S )Nr"  c              3  ób   K  — | ]*}|                      ¦   «                              ¦   «         V — Œ+d S ro   )Ú
no_defaultr–  r&  s     r]   rt   z4compute_registration_declarations.<locals>.<genexpr>9  s6   è è € Ð=Ð=°1˜Ÿš™œ×,Ò,Ñ.Ô.Ð=Ð=Ð=Ð=Ð=Ð=r^   rD  c                óD   •— h | ]\  }}|                      ‰¦  «        ¯|’ŒS rp   ©rú   ©rq   r¡   r¢   r¶   s      €r]   r8  z4compute_registration_declarations.<locals>.<setcomp>>  s,   ø€ ÐFÐFÐF‘4�1�a°a·l²lÀ1±o´oÐFˆQÐFÐFÐFr^   c                óD   •— h | ]\  }}|                      ‰¦  «        ¯|’ŒS rp   r`  ra  s      €r]   r8  z4compute_registration_declarations.<locals>.<setcomp>@  s,   ø€ ÐJÐJÐJ‘t�q˜!¸!¿,º,Àq¹/¼/ÐJ�ÐJÐJÐJr^   )ÚschemaÚdispatchr  rÀ  r0  z); // rä   )Ú
dispatcherr®   r‡   rO  r  rÁ  rÎ   r  rƒ   rx   r+   rñ   rò   Úhas_composite_kernelrZ  ÚjsonÚdumps)r¶   re   r®   rO  rË  rÌ  Úcomment_datas   `      r]   Ú!compute_registration_declarationsrj  2  sc  ø€ õ Œ?˜1œ6Ñ"Ô"€DÝÔ*¨1¬6¬>Ñ:Ô:×CÒCÑEÔE€LÝÔ ¤Ñ'Ô'€DØ�yŠyÐ=Ð=¸Ð=Ñ=Ô=Ñ=Ô=€Hà#˜1œ6Ð#Ð#åØFÐFÐFÐF˜?×0Ò0Ñ2Ô2ÐFÑFÔFÝÔ5Ð6ò7ð àJÐJÐJÐJ˜×4Ò4Ñ6Ô6ÐJÑJÔJåÔ5ÝÔAðòñ
ô 
õ �qÔ-ÐVÕ1SÐTUÑ1VÔ1VÑWÔWð$ð $€Lð ð ð ˜tð ð  hð ð µd´jÀÑ6NÔ6Nð ð ð ð r^   Ú"provided_op_registration_allowlistúlist[str] | NoneÚop_selection_yaml_pathc                óÎ   — | �|�
J d¦   «         ‚d }| �t          | ¦  «        }|�t          j        |dd¦  «        }n*|�t          j        |¦  «        }nt          j        ¦   «         }|S )NzhBoth provided_op_registration_allowlist and op_selection_yaml_path can NOT be provided at the same time.TF)r©   rC   Ú&from_legacy_op_registration_allow_listÚfrom_yaml_pathÚget_nop_selector)rk  rm  Úop_registration_allowlistr[  s       r]   Úget_custom_build_selectorrs  S  s‘   € ð
 	+Ð6Ø"Ð.Ð.ð	ñ /Ô.Ð.ð 26ÐØ)Ð5Ý$'Ð(JÑ$KÔ$KÐ!à Ð,Ý#ÔJØ%ØØñ
ô 
ˆˆð
 
 Ð	+Ý#Ô2Ð3IÑJÔJˆˆå#Ô4Ñ6Ô6ˆà€Or^   ú3Sequence[NativeFunction | NativeFunctionsViewGroup]c                óÔ  — dd„}t          t          ¦  «        }| D ]Ÿ}|j                             ¦   «         }|j        }|t
          j        k    r1|j                             ¦   «         }|||         vsJ ‚|||         |<   Œc|||         vs'J |› d||                              ¦   «         › �¦   «         ‚|||         |<   Œ t          t          ||                     ¦   «         ¦  «        ¦  «        S )NÚdú1dict[ViewSchemaKind | SchemaKind, NativeFunction]rl   ú/list[NativeFunction | NativeFunctionsViewGroup]c                ó|  — g }t           j        | v r„|                      t           j        ¦  «        }|                      t           j        d ¦  «        }|                      t          j        d ¦  «        }|                     t          |||¬¦  «        ¦  «         |                     |  	                    ¦   «         ¦  «         |S )N)ÚviewÚ	view_copyÚview_inplace)
r>   Úaliasingr«   Úaliasing_inplacer8   rY  r™   r5   ÚextendrÉ  )rv  rŠ   rz  r|  r{  s        r]   Úmaybe_create_view_groupzEget_grouped_by_view_native_functions.<locals>.maybe_create_view_groupu  s«   € ð BDˆÝÔ" aÐ'Ð'Ø—5’5�Ô0Ñ1Ô1ˆDØŸ5š5¥Ô!@À$ÑGÔGˆLØŸš�jÔ3°TÑ:Ô:ˆIà�LŠLÝ(ØØ'Ø!-ðñ ô ñô ð ð 	�Š�Q—X’X‘Z”ZÑ Ô Ð Øˆr^   z already in )rv  rw  rl   rx  )r   r–   r‡   Úview_signatureÚview_schema_kindr>   Únon_aliasingrX  rN  r•   rD   rÉ  )rd   r€  Úgrouped_by_viewsr¶   rc  Ú	view_kindrX  s          r]   Ú$get_grouped_by_view_native_functionsr†  r  s  € ðð ð ð õ. 	•DÑÔð ð ð 4ð 4ˆØ”×&Ò&Ñ(Ô(ˆØ$%Ô$6ˆ	ð
 �Ô3Ò3Ð3Ø”6—;’;‘=”=ˆDØÐ/°Ô7Ð7Ð7Ð7Ð7Ø-.Ð˜VÔ$ TÑ*Ð*àÐ$4°VÔ$<Ð<Ð<Ð<ØÐKÐKÐ*:¸6Ô*B×*GÒ*GÑ*IÔ*IÐKÐKñ =Ô<Ð<ð 34Ð˜VÔ$ YÑ/Ð/å•	Ð1Ð3C×3JÒ3JÑ3LÔ3LÑMÔMÑNÔNÐNr^   ú/Sequence[NativeFunction | NativeFunctionsGroup]c           	     ó    — dd„}t          | ¦  «        }t          t          |t          |                     ¦   «         ¦  «        ¦  «        ¦  «        S )Nrv  ú dict[SchemaKind, NativeFunction]rl   r‡  c                óÐ   — t          j        | ¦  «        }|€Nt          d„ |                      ¦   «         D ¦   «         ¦  «        rJ ‚t	          |                      ¦   «         ¦  «        S |gS )Nc              3  ó(   K  — | ]}d |j         v V — ŒdS )Ú	generatedN)r§   ©rq   r¶   s     r]   rt   zJget_grouped_native_functions.<locals>.flatten_pre_group.<locals>.<genexpr>«  s)   è è € ÐEÐE°Q˜;¨!¬&Ð0ÐEÐEÐEÐEÐEÐEr^   )r4   Ú	from_dictrP  rÉ  r•   )rv  r!  s     r]   Úflatten_pre_groupz7get_grouped_native_functions.<locals>.flatten_pre_group¤  sc   € õ !Ô*¨1Ñ-Ô-ˆØˆ9õ ÐEÐE¸!¿(º(¹*¼*ÐEÑEÔEÑEÔEÐEÐEÐEÝ˜Ÿš™
œ
Ñ#Ô#Ð#à�3ˆJr^   )rv  r‰  rl   r‡  )rB   r•   rD   rÉ  )rd   r�  Úpre_grouped_native_functionss      r]   Úget_grouped_native_functionsr‘  ¡  s\   € ð
ð 
ð 
ð 
õ $>Ð>NÑ#OÔ#OÐ ÝÝÐ#¥TÐ*F×*MÒ*MÑ*OÔ*OÑ%PÔ%PÑQÔQñô ð r^   )Únative_function_decl_genÚgrouped_native_functionsr’  úJCallable[[NativeFunctionsGroup | NativeFunction, BackendIndex], list[str]]údict[str, list[str]]c                óÔ  — t          t          ¦  «        }| D ]Ð}t          ¦   «         }t          ¦   «         }|                     ¦   «         D ]�\  }}|                     |¦  «        }	|	r2|	j        }
|                     |¦  «         |                     |
¦  «         nt          }
t          |¦  «        dk    sJ d|› d|› �¦   «         ‚||
          	                     |||¦  «        ¦  «         ŒžŒÑ|S )NrS   z6Codegen only supports one namespace per operator, got z from )
r   r•   r©   rx   r2  r3  r¬   r)   rÔ   r  )r“  re   r’  Úns_grouped_kernelsr¶   Únative_function_namespacesÚdispatch_keysrh   Úbackend_idxr4  r  s              r]   Úget_ns_grouped_kernelsr›  ·  s   € õ 0;½4Ñ/@Ô/@ÐØ%ð ð ˆÝ%(¡U¤UÐ"Ý™œˆØ)8×)>Ò)>Ñ)@Ô)@ð 	ð 	Ñ%ˆL˜+Ø*×5Ò5°aÑ8Ô8ÐØð 5Ø,Ô:�	Ø×!Ò! ,Ñ/Ô/Ð/Ø*×.Ò.¨yÑ9Ô9Ð9Ð9å4�	ÝÐ1Ñ2Ô2°aÒ7Ð7Ð7ØzÐIcÐzÐzÐkxÐzÐzñ 8Ô7Ð7ð ˜yÔ)×0Ò0Ø(Ð(¨¨KÑ8Ô8ñô ð ð ð	ð Ðr^   r—  c           
     óF  — g }d}|                       ¦   «         D ]‡\  }}t          |dd¬¦  «        }t          t          j        |¦  «        ¦  «        }|                     d|j        › d|                     |¦  «        › d|j        › d� 	                    |¦  «        ¦  «         Œˆ|S )Nrä   ru   é   ©Únamespace_strÚentity_nameÚ	max_levelú	
        )
rx   rI   r•   r   Úfromkeysr  Úprologuer  ÚepilogueÚsplit)r—  ÚdeclarationsÚnewliner  ÚkernelsÚ	ns_helperÚordered_kernelss          r]   Ú8get_native_function_declarations_from_ns_grouped_kernelsr¬  Ô  sÜ   € ð !€LØ€GØ0×6Ò6Ñ8Ô8ð 
ð 
Ñˆ	�7Ý#Ø#ØØð
ñ 
ô 
ˆ	õ �{Ô3°GÑ<Ô<Ñ=Ô=ˆØ×ÒðØ
Ôðð à‡‚ˆoÑÔðð ð Ôðð ð ÷ ŠE�'‰NŒNñ	
ô 	
ð 	
ð 	
ð Ðr^   c                óF   — t          | ||¬¦  «        }t          |¬¦  «        S )a¾  
    Generate kernel declarations, in `NativeFunction(s).h`.
    :param grouped_native_functions: a sequence of `NativeFunction` or `NativeFunctionGroup`.
    :param backend_indices: kernel collections grouped by dispatch key.
    :param native_function_decl_gen: callable to generate kernel declaration for each `NativeFunction`.
    :return: a list of string, from the string with all declarations, grouped by namespaces, split by newline.
    ©r“  re   r’  )r—  )r›  r¬  )r“  re   r’  r—  s       r]   Ú get_native_function_declarationsr¯  î  s?   € õ  0Ø!9Ø'Ø!9ðñ ô Ðõ
 DØ-ðñ ô ð r^   ú%NativeFunction | NativeFunctionsGrouprš  c                óþ   — |                      | ¦  «        }|rWd|j        v sNJ dt          | t          ¦  «        r| j        j        n| j        j        j        › d|j        › d|j        › d�¦   «         ‚|r|j        nt          S )Nr-  zThe kernel for function z with dispatch key z has a namespace z% and it's not ending with '::native'.)	r2  r3  r”   r3   r‡   r®   rY  rh   r)   )r¶   rš  r4  s      r]   Úget_kernel_namespacer²    sµ   € ð #×-Ò-¨aÑ0Ô0ÐØð  :Ð1AÔ1OÐ#OÐ#OÐ#Oð	bµ*¸QÅÑ2OÔ2OÐ#k 1¤6¤; ;ÐUVÔUaÔUfÔUkð 	bð 	bØ(Ô5ð	bð 	bà,Ô:ð	bð 	bð 	bñ $PÔ#OÐ#Oð +;ÐXÐÔ&Ð&Õ@Xðr^   ry   Úrocmr>  Úskip_dispatcher_op_registrationÚgen_dispatch_helpersc        	        ó¸  ‡‡‡‡‡‡‡— g }	t          t          ¦  «        Št          t          ¦  «        Št          t          ¦  «        }
d}t          j        |t
          j        |||d ‰¬¦  «        }t          j        |t
          j        |||d ‰¬¦  «        }t          j        |t
          j        |||d ‰¬¦  «        }|D ]â}t          ||¬¦  «         
                    dd¦  «        Š‰‰                               ||¦  «        ¦  «         ‰‰                               ||¦  «        ¦  «         t          |t          ¦  «        r|j        n|j        j        }||
‰         vrt          t          ¦  «        |
‰<   |
‰         |                               ||¦  «        ¦  «         Œã‰D ]»Št!          ‰‰         ¦  «        dk    rŒt#          ‰¬¦  «        ŠdŠ|
‰         D ]?}|
‰         |         sŒ‰d|› d	‰› d
|                     |
‰         |         ¦  «        › d�z  ŠŒ@|	                     |                      dˆˆˆˆˆˆˆfd„¦  «                             |¦  «        ¦  «         Œ¼|	S )Nrä   ©r³  r>  Úclass_method_namer´  ©r¶   rš  r-  ru   r   )rŸ  z
TORCH_LIBRARY_IMPL(r"  z, m) {
    z
}zRegisterDispatchDefinitions.inic                 óp   •— ‰j         ‰j        ‰ ‰         ‰rdn‰d‰                     ¦   «         ‰‰         dœS )Nru   )Úns_prologueÚns_epilogueÚdispatch_anonymous_definitionsÚ"static_init_dispatch_registrationsÚdeferred_dispatch_registrationsÚdispatch_namespaceÚdispatch_namespaced_definitions)r¤  r¥  r  )Úanonymous_definitionsrh   Úkernel_namespaceÚns_definitionsrª  Úregistration_bodyr´  s   €€€€€€€r]   rŒ   z1get_native_function_definitions.<locals>.<lambda>g  sR   ø€ Ø#,Ô#5Ø#,Ô#5Ø6KØ(ô7ð 7ð;+¸"¸"à*Ø79Ø*6×*<Ò*<Ñ*>Ô*>Ø7EÐFVÔ7Wðð € r^   )r   r•   r–   ÚdestÚRegisterDispatchKeyrJ   ÚNAMESPACED_DEFINITIONÚANONYMOUS_DEFINITIONrô  r²  rç   r  r”   r3   r  rY  rÔ   rI   r  Úsubstitute_with_templater¦  )ry   r“  rh   rš  r[  r³  r>  r´  rµ  ÚdefinitionsÚregistrationsr¨  Úns_genÚanonymous_genÚreg_genr¶   r  rÂ  rÃ  rÄ  rª  rÅ  s     `    `         @@@@@r]   Úget_native_function_definitionsrÐ    s  øøøøøøø€ ð  €KÝ+6µtÑ+<Ô+<€NÝ2=½dÑ2CÔ2CÐÝ5@ÅÑ5FÔ5F€MØ€GÝÔ%ØÝÔ$ØØØØØ(Gðñ ô €Fõ Ô,ØÝÔ#ØØØØØ(Gðñ ô €Mõ Ô&ØÝÔØØØØØ(Gðñ ô €Gð &ð 
ð 
ˆÝ/°!ÀÐMÑMÔM×UÒUØ˜ñ
ô 
Ðð 	Ð'Ô(×/Ò/ØˆF�1‰IŒIñ	
ô 	
ð 	
ð 	Ð.Ô/×6Ò6ØˆM˜!ÑÔñ	
ô 	
ð 	
õ & a­Ñ8Ô8ÐTˆAŒKˆK¸a¼lÔ>Tð 	ð ˜MÐ*:Ô;Ð;Ð;Ý.9½$Ñ.?Ô.?ˆMÐ*Ñ+ØÐ&Ô'¨	Ô2×9Ò9ØˆG�A‰JŒJñ	
ô 	
ð 	
ð 	
ð +ð 
ð 
ÐÝˆ~Ð.Ô/Ñ0Ô0°AÒ5Ð5ØÝ#Ð2BÐCÑCÔCˆ	ØÐØ&Ð'7Ô8ð 	ð 	ˆIØ Ð!1Ô2°9Ô=ð ØØð "Øð"ð "Ø!-ð"ð "à‡\‚\�-Ð 0Ô1°)Ô<Ñ=Ô=ð"ð "ð "ñ ÐÐð 	×ÒØ×'Ò'Ø1ðð ð ð ð ð ð ð ð ð ñô ÷ Še�G‰nŒnñ!	
ô 	
ð 	
ð 	
ð& Ðr^   c           
     ó   — g }t          t          ¦  «        }d}t          j        |t          j        ||d d|¬¦  «        }	| D ]]}
t          |
|¬¦  «                             d|                     ¦   «         ¦  «        }||          	                     |	|
¦  «        ¦  «         Œ^| 
                    ¦   «         D ]›\  }}t          |¦  «        dk    rŒt          |dd¬	¦  «        }t          t          j        |¦  «        ¦  «        }| 	                    d|j        › d|                     |¦  «        › d|j        › d
�                     |¦  «        ¦  «         Œœ|S )Nrä   F)r³  r¸  r´  r>  r¹  rò  r   ru   é   rž  r¢  )r   r•   rÆ  rÇ  rJ   ÚNAMESPACED_DECLARATIONr²  rç   r  r  rx   rÔ   rI   r   r£  r¤  r  r¥  r¦  )r“  rh   rš  r[  r³  r>  r§  r—  r¨  r‡   r¶   r  r©  rª  r«  s                  r]   Úget_namespaced_declarationrÔ  |  s   € ð !€LÝ/:½4Ñ/@Ô/@ÐØ€GÝÔ#ØÝÔ%ØØØØ(-Øðñ ô €Dð &ð 
ð 
ˆÝ(¨1¸+ÐFÑFÔF×NÒNØ�l×(Ò(Ñ*Ô*ñ
ô 
ˆ	ð 	˜9Ô%×,Ò,ØˆD�‰GŒGñ	
ô 	
ð 	
ð 	
ð 1×6Ò6Ñ8Ô8ð 
ð 
Ñˆ	�7Ýˆw‰<Œ<˜1ÒÐØÝ#Ø#°¸qð
ñ 
ô 
ˆ	õ �{Ô3°GÑ<Ô<Ñ=Ô=ˆØ×ÒðØ
Ôðð à‡‚ˆoÑÔðð ð Ôðð ð ÷ ŠE�'‰NŒNñ	
ô 	
ð 	
ð 	
ð Ðr^   Úschema_selectorútuple[list[str], str]c           
     óˆ  — t          t          ¦  «        }| D ]"}||j                                      |¦  «         Œ#d}g }d }|                     ¦   «         D ]k\  }}t          t          t          |¦  «        |¦  «        ¦  «        }	|dk    r|	}Œ8|}d}
|t          v rdnd}|d|› d|› d|
                     |	¦  «        › d	�z  }Œl||fS )
Nru   Úatenræ   ÚTORCH_LIBRARY_FRAGMENTÚTORCH_LIBRARYrä   r0  z	, m) {
  z
};)	r   r•   r  r™   rx   rH   rZ  r,   r  )rd   rÕ  Úns_native_functionsÚnative_functionÚschema_registrationsÚaten_schema_registrationsÚcustom_namespacer  rŠ   Úschema_registrations_bodyÚtabÚtorch_library_macros               r]   Ú(get_native_function_schema_registrationsrã  ¬  s5  € õ
 <GÅtÑ;LÔ;LÐØ+ð Oð OˆØ˜OÔ5Ô6×=Ò=¸oÑNÔNÐNÐNØÐØ "ÐØÐØ/×5Ò5Ñ7Ô7ð ð Ñˆ	�5Ý$(Ý•^ OÑ4Ô4°eÑ<Ô<ñ%
ô %
Ð!ð
 ˜ÒÐØ(AÐ%Ð%à(ÐØˆCð
 Õ 3Ð3Ð3ð )Ð(à$ð  ð
 !ð %Øð%ð %Ø'ð%ð %à‡8‚8Ð%Ñ&Ô&ð%ð %ð %ñ Ð Ð ð &Ð';Ð<Ð<r^   Ústructured_native_functionsúSequence[NativeFunctionsGroup]Ústatic_dispatch_idxÚcpu_fmÚfunctions_keysúset[DispatchKey]r™  úSequence[DispatchKey]c           
     ó4  ‡ ‡‡‡‡‡‡
‡‡‡‡‡— |                      dˆfd„¦  «         d„ ‰ D ¦   «         Šˆfd„‰ D ¦   «         Š|                      dˆˆfd„¦  «         |                      dˆˆfd„¦  «         |                      d	ˆ ˆfd
„¦  «         t          ‰‰¬¦  «        Š|                      dˆfd„¦  «         |	D ]]Št          ‰||¦  «        }‰|v rEd‰› d�Š|                     ‰› d	�dˆˆfd„¦  «         |                     ‰› d�dˆˆˆˆ
ˆfd„¦  «         ~Œ^d S )NzNativeMetaFunctions.hc                 óN   •— g t          t          t          ‰ ¦  «        ¦  «        dœS )N)ÚNativeMetaFunctions_includesÚ NativeMetaFunctions_declarations©r•   rH   rä  )rä  s   €r]   rŒ   z(gen_aggregated_headers.<locals>.<lambda>â  s.   ø€ Ø,.Ý04ÝÕ:Ð<WÑXÔXñ1ô 1ð
ð 
€ r^   c                ó8   — g | ]}t           j        |j        v ¯|‘ŒS rp   ©r=   r:  r•  ©rq   Úfns     r]   rð   z*gen_aggregated_headers.<locals>.<listcomp>é  s-   € ð ð ð Ø­¬¸2¼;Ð)FÐ)FˆÐ)FÐ)FÐ)Fr^   c                ó   •— g | ]}|‰v¯|‘Œ	S rp   rp   )rq   ró  Úmethod_native_functionss     €r]   rð   z*gen_aggregated_headers.<locals>.<listcomp>ì  s+   ø€ ð #ð #ð #Ø¨Ð3JÐ)JÐ)JˆÐ)JÐ)JÐ)Jr^   úMethodOperators.hc            	     óv   •— g t          t          t          t          j        ‰¬¦  «        ‰ ¦  «        ¦  «        dœS )N©rn  ©ÚMethodOperators_includesÚMethodOperators_declarations©r•   rH   rk  rJ   r{  )rõ  ræ  s   €€r]   rŒ   z(gen_aggregated_headers.<locals>.<lambda>ñ  sL   ø€ Ø(*Ý,0ÝÝ$ÝÔ*Ø8Kðñ ô ð ,ñô ñ-ô -ð
ð 
€ r^   zOperators.hc            	     óx   •— dgt          t          t          t          j        ‰¬¦  «        ‰ ¦  «        ¦  «        dœS )Nz!#include <ATen/MethodOperators.h>rø  )ÚOperators_includesÚOperators_declarationsrü  )Únon_method_native_functionsræ  s   €€r]   rŒ   z(gen_aggregated_headers.<locals>.<lambda>   sO   ø€ Ø#FÐ"GÝ&*ÝÝ$ÝÔ*Ø8Kðñ ô ð 0ñô ñ'ô 'ð
ð 
€ r^   úFunctions.hc                 óz   •— t          ‰¦  «        dgt          t          t          ¦   «         ‰ ¦  «        ¦  «        dœS )Nz#include <ATen/Operators.h>)r  ÚFunctions_includesÚFunctions_declarations)r  r•   rH   rˆ  ©rd   ræ  s   €€r]   rŒ   z(gen_aggregated_headers.<locals>.<lambda>  sN   ø€ Ý-JØ#ñ.ô .ð $AÐ"AÝ&*ÝÝ#Ñ%Ô%Ø$ñô ñ'ô 'ð
ð 
€ r^   )r“  re   zNativeFunctions.hc                 ó   •— dg‰ dœS )Nz%#include <ATen/NativeMetaFunctions.h>)ÚNativeFunctions_includesÚNativeFunctions_declarationsrp   )r§  s   €r]   rŒ   z(gen_aggregated_headers.<locals>.<lambda>"  s   ø€ Ø)PÐ(QØ,8ð
ð 
€ r^   r  úFunctions_inl.h>úDispatchKeyFunctions.hc                 ó(   •— t          ‰ ¦  «        ‰dœS ©N)rh   Úinline_headers©rƒ   ©rh   Úinl_headerss   €€r]   rŒ   z(gen_aggregated_headers.<locals>.<lambda>0  s   ø€ Ý$'¨Ñ$5Ô$5Ø&1ðð € r^   úFunctions_inl.húDispatchKeyFunctions_inl.hc            
     óf   •— g ‰                      ¦   «         t          ‰‰‰ ‰         ‰‰d¬¦  «        dœS )NT)r“  rh   rš  r[  r³  r>  )Ú!DispatchKeyFunctions_inl_includesrÀ  Ú dispatch_namespaced_declarations)r  rÔ  )re   rh   r“  r³  r[  s   €€€€€r]   rŒ   z(gen_aggregated_headers.<locals>.<lambda>8  sJ   ø€ Ø9;Ø*6×*<Ò*<Ñ*>Ô*>Ý8RØ1IØ%1Ø$3°LÔ$AØ!)Ø!Ø#ð9ñ 9ô 9ðð € r^   )Úwriter¯  rz   Úwrite_with_template)rd   r“  rä  ræ  r[  re   rç  ri   rè  r™  r³  ry   r§  rh   r  rõ  r   s   ``````    ` @@@@@r]   Úgen_aggregated_headersr  Ð  sK  øøøøøøøøøøøø€ ð  ‡L‚LØð	
ð 	
ð 	
ð 	
ñô ð ðð Ø%ðñ ô Ðð#ð #ð #ð #Ø%ð#ñ #ô #Ðð ‡L‚LØð	
ð 	
ð 	
ð 	
ð 	
ñô ð ð ‡L‚LØð	
ð 	
ð 	
ð 	
ð 	
ñô ð ð ‡L‚LØð	
ð 	
ð 	
ð 	
ð 	
ñô ð õ 4Ø!9Ø'ðñ ô €Lð ‡L‚LØð	
ð 	
ð 	
ð 	
ñô ð ð &ð ð ˆÝ+¨L¸*ÀfÑMÔMˆØ˜>Ð)Ð)ØJ¨LÐJÐJÐJˆKà×"Ò"ØÐ,Ð,Ð,Ø(ðð ð ð ð ñô ð ð ×"Ò"ØÐ0Ð0Ð0Ø,ðð ð ð ð ð ð ð ñô ð ð" ˆBð=ð r^   Úops_fmc                ó¾  ‡‡‡‡‡‡‡‡‡‡‡‡‡— t          t          ¦  «        Š| D ]"}‰|j                                      |¦  «         Œ#t          t          ¦  «        }|D ]$}|j        Š|‰                              |¦  «         Œ%‰                     ¦   «         D ]Ñ\  ŠŠ|                     ‰› d�dˆˆfd„¦  «         |                     ‰› d�dˆˆˆfd„¦  «         |                     ‰g ¦  «        }d„ |D ¦   «         Št          ‰¦  «        dk    Š‰r|                     ‰› d	�d
ˆfd„¦  «         t          ||t          j
        ¬¦  «        Š|                     ‰› d�dˆˆˆfd„¦  «         ŒÒdD ]#\  ŠŠ|                     ‰› d�ˆˆˆfd„¦  «         Œ$|	D �]2Š‰|vrŒ‰                     ¦   «         Šg Š‰                     ¦   «         D ]«\  ŠŠ|                     ‰g ¦  «        }t          t          t          j        |‰         t          j        ||
dd d¬¦  «        |¦  «        ¦  «        Št          ‰¦  «        dk    rŒu‰                     ‰¦  «         |                     ‰› d‰› d�dˆˆfd„¦  «         Œ¬t#          ‰||¦  «        }d‰› d�Š|                     ‰› d�dˆˆfd„¦  «         |                     ‰› d�dˆˆfd „¦  «         ~�Œ4|                     d!ˆfd"„¦  «         d S )#Nz_ops.hz
Operator.hc            	     ót   •— dt          t          t          t          j        ‰¬¦  «        ‰ ¦  «        ¦  «        iS )Nr§  rø  rü  )Ú	functionsræ  s   €€r]   rŒ   z*gen_per_operator_headers.<locals>.<lambda>h  sF   ø€ Ø¥ÝÝ(Ý"Ô.Ø<Oðñ ô ð "ñô ñ!ô !ð
€ r^   z.hz
Function.hc                 ó¢   •— t          t          ˆfd„‰ ¦  «        ¦  «        d‰› d�t          t          t          ¦   «         ‰ ¦  «        ¦  «        dœS )Nc                ó&   •— t          | ‰¬¦  «        S )N)r÷   )r
  ©ró  ræ  s    €r]   rŒ   z<gen_per_operator_headers.<locals>.<lambda>.<locals>.<lambda>{  s   ø€ Õ#=ØÐ.Að$ñ $ô $€ r^   r  ú_ops.h>)Ústatic_dispatch_ops_headersÚoperator_includesÚfunction_definitions)r•   rH   rˆ  )r  r®   ræ  s   €€€r]   rŒ   z*gen_per_operator_headers.<locals>.<lambda>x  sy   ø€ Ý/3Ýðð ð ð ð "ñ	ô ñ0ô 0ð &I¸4Ð%HÐ%HÐ%HÝ(,ÝÝ'Ñ)Ô)Ø!ñô ñ)ô )ðð € r^   c                óJ   — g | ] }t          |t          ¦  «        ¯|j        ¯|‘Œ!S rp   )r”   r4   rË   rò  s     r]   rð   z,gen_per_operator_headers.<locals>.<listcomp>Œ  sE   € ð  
ð  
ð  
àÝ˜"Õ2Ñ3Ô3ð 
ð 9;¼ð 
Øð 
ð  
ð  
r^   r   z_meta.hzNativeMetaFunction.hc                 óL   •— dt          t          t          ‰ ¦  «        ¦  «        iS )NÚmeta_function_declarationsrï  )Ústructured_functionss   €r]   rŒ   z*gen_per_operator_headers.<locals>.<lambda>—  s,   ø€ Ø0µ$Ý Ý=Ð?Sñô ñ3ô 3ð€ r^   r®  z	_native.hzNativeFunction.hc                 ó   •— ‰rd‰› d�ng ‰ dœS )Nr  z_meta.h>)Úextra_includesÚnative_function_declarationsrp   )r§  Úis_structuredr®   s   €€€r]   rŒ   z*gen_per_operator_headers.<locals>.<lambda>§  s+   ø€ à<IÐQÐ8¨$Ð8Ð8Ð8Ð8Èrà0<ð	ð € r^   ))Ú	Functionsru   )Ú	OperatorsÚ_ops)ÚNativeMetaFunctionsÚ_meta)ÚNativeFunctionsÚ_nativec                 ór   •— ‰ › d�ˆfd„t          ‰                     ¦   «         ¦  «        D ¦   «         ‰ › d�g iS )NÚ	_includesc                ó    •— g | ]
}d |› ‰› d�‘ŒS )r  ú.h>rp   )rq   r®   Úsuffixs     €r]   rð   z>gen_per_operator_headers.<locals>.<lambda>.<locals>.<listcomp>¸  s9   ø€ ð )ð )ð )àð <¨$Ð;°Ð;Ð;Ð;ð)ð )ð )r^   Ú_declarations)rd  rN  )ÚcategoryÚfunctions_by_root_namer7  s   €€€r]   rŒ   z*gen_per_operator_headers.<locals>.<lambda>·  sa   ø€ ØÐ&Ð&Ð&ð )ð )ð )ð )å &Ð'=×'BÒ'BÑ'DÔ'DÑ EÔ Eð)ñ )ô )ð Ð*Ð*Ð*¨Bð€ r^   TFr·  r  z_dispatch.hzDispatchKeyFunction.hc                 ó   •— ‰‰ dœS )N)rÀ  r  rp   )r§  rÀ  s   €€r]   rŒ   z*gen_per_operator_headers.<locals>.<lambda>ß  s   ø€ Ø*<Ø8Dðð € r^   r  r	  r  r
  c                 ó(   •— t          ‰ ¦  «        ‰dœS r  r  r  s   €€r]   rŒ   z*gen_per_operator_headers.<locals>.<lambda>ë  s   ø€ Ý # LÑ 1Ô 1Ø"-ðð € r^   r  r  c                 óB   •— ‰ˆfd„t          ‰ ¦  «        D ¦   «         g dœS )Nc                ó"   •— g | ]}d |› d‰› d�‘ŒS )r  r  r  rp   )rq   r®   rÀ  s     €r]   rð   z>gen_per_operator_headers.<locals>.<lambda>.<locals>.<listcomp>õ  s>   ø€ ð 6ð 6ð 6àð R¨$ÐQÐQÐ1CÐQÐQÐQð6ð 6ð 6r^   )rÀ  r  r  )rd  )Údispatch_namesrÀ  s   €€r]   rŒ   z*gen_per_operator_headers.<locals>.<lambda>ó  sE   ø€ Ø&8ð6ð 6ð 6ð 6å & ~Ñ 6Ô 6ð6ñ 6ô 6ð 57ðð € r^   rö  c                 ó`   •— t          d„ ‰                      ¦   «         D ¦   «         ¦  «        g dœS )Nc              3  óZ   K  — | ]&\  }}t          d „ |D ¦   «         ¦  «        ¯d|› d�V — Œ'dS )c              3  ó<   K  — | ]}t           j        |j        v V — Œd S ro   rñ  rò  s     r]   rt   zGgen_per_operator_headers.<locals>.<lambda>.<locals>.<genexpr>.<genexpr>  s+   è è € ÐIÐI¸•w”~¨¬Ð4ÐIÐIÐIÐIÐIÐIr^   r  r   N)rP  )rq   r®   r  s      r]   rt   z=gen_per_operator_headers.<locals>.<lambda>.<locals>.<genexpr>  sb   è è € ð /ð /á#�D˜)ÝÐIÐI¸yÐIÑIÔIÑIÔIð/Ø3 dÐ3Ð3Ð3ð/ð /ð /ð /ð /ð /r^   rù  )rd  rx   )r:  s   €r]   rŒ   z*gen_per_operator_headers.<locals>.<lambda>   sI   ø€ Ý(.ð /ð /à'=×'CÒ'CÑ'EÔ'Eð/ñ /ô /ñ )ô )ð
 -/ð
ð 
€ r^   )r   r•   r  r™   rx   r  rv   rÔ   r¯  rÆ  Ú#compute_native_function_declarationr  r  rD   rÇ  rJ   rÓ  rz   )rd   r“  ræ  r[  re   rç  ri   r  rè  r™  r³  ró  Úgrouped_functions_by_root_nameÚgroupÚgrouped_functionsry   r9  r§  rh   r?  rÀ  r  r:  r  r+  r®   r'  r7  s     `             @@@@@@@@@@@@r]   Úgen_per_operator_headersrG  I  s§  øøøøøøøøøøøøø€ õ  ?JÍ$Ñ>OÔ>OÐØð 8ð 8ˆØ˜rœ|Ô,×3Ò3°BÑ7Ô7Ð7Ð7õ 	•DÑÔð #ð *ð ;ð ;ˆØŒˆØ& tÔ,×3Ò3°EÑ:Ô:Ð:Ð:à1×7Ò7Ñ9Ô9ð I
ð I
‰ˆˆiØ×"Ò"ØˆOˆOˆOØð
ð 
ð 
ð 
ð 
ñ	
ô 	
ð 	
ð  	×"Ò"ØˆKˆKˆKØðð ð ð ð ð ñ	
ô 	
ð 	
ð, ;×>Ò>¸tÀRÑHÔHÐð 
ð  
à'ð 
ñ  
ô  
Ðõ
 Ð0Ñ1Ô1°AÒ5ˆàð 	Ø×&Ò&ØÐ Ð Ð Ø&ðð ð ð ñ
ô 
ð 
õ 8Ø%6Ø+Ý%)Ô%Mð
ñ 
ô 
ˆð
 	×"Ò"ØÐÐÐØðð ð ð ð ð ñ		
ô 		
ð 		
ð 		
ðð 
ð 
Ñˆ�&ð 	�ŠØˆOˆOˆOðð ð ð ð ð ñ		
ô 		
ð 		
ð 		
ð &ð <ñ <ˆØ˜~Ð-Ð-Øà)×/Ò/Ñ1Ô1ÐØˆà5×;Ò;Ñ=Ô=ð 	ð 	‰OˆD�)Ø >× BÒ BÀ4ÈÑ LÔ LÐÝÝÝÔ,Ø'¨Ô5ÝÔ5Ø Ø!Ø#Ø*.Ø8=ðñ ô ð &ñô ñô ˆLõ �<Ñ Ô  AÒ%Ð%Øà×!Ò! $Ñ'Ô'Ð'Ø×&Ò&ØÐ9Ð9Ð,Ð9Ð9Ð9Ø'ðð ð ð ð ñô ð ð õ ,¨L¸*ÀfÑMÔMˆØF¨ÐFÐFÐFˆà
×ÒØÐ(Ð(Ð(Ø$ðð ð ð ð ñ	
ô 	
ð 	
ð 	×ÒØÐ,Ð,Ð,Ø(ðð ð ð ð ñ	
ô 	
ð 	
ð ‰Bà
‡L‚LØð	
ð 	
ð 	
ð 	
ñ
ô 
ð 
ð 
ð 
r^   Úcore_fmÚper_operator_headersc                ó¸  ‡ ‡‡‡— |rt          ‰ |‰|‰||	|
|||¬¦  «         nt          ‰ ||‰|‰||	|||¬¦  «         |                     dˆ ˆfd„¦  «         |                     dˆ fd„¦  «         |                     dˆˆ fd„¦  «         |                     d	ˆ fd
„¦  «         dˆ fd„}|                     d|¦  «         dˆfd„}|                     d|¦  «         d S )N)rd   r“  ræ  r[  re   rç  ri   r  r™  rè  r³  )rd   r“  rä  ræ  r[  re   rç  ri   r™  rè  r³  zTensorBody.hc            	     óÞ   •— t          t          t          t          j        ‰¬¦  «        ‰ ¦  «        ¦  «        t          t          t          t          j        ‰¬¦  «        ‰ ¦  «        ¦  «        dœS )N)rm  rn  )Útensor_method_declarationsÚtensor_method_definitions)r•   rH   rž  rJ   r{  r~  r  s   €€r]   rŒ   zgen_headers.<locals>.<lambda><  s…   ø€ Ý*.ÝÝ'Ý%Ô1Ø8Kðñ ô ð %ñô ñ+ô +õ *.ÝÝ'Ý%Ô0Ø8Kðñ ô ð %ñô ñ*ô *ð
ð 
€ r^   zRedispatchFunctions.hc                 óZ   •— dt          t          t          ¦   «         ‰ ¦  «        ¦  «        iS )NÚfunction_redispatch_definitions)r•   rH   r§  ©rd   s   €r]   rŒ   zgen_headers.<locals>.<lambda>T  s.   ø€ Ø-­tÝÕ2Ñ4Ô4Ð6FÑGÔGñ0ô 0ð
€ r^   zRegistrationDeclarations.hc                 ó$   •— dˆ fd„‰D ¦   «         iS )NÚregistration_declarationsc                ó0   •— g | ]}t          |‰¦  «        ‘ŒS rp   )rj  )rq   r¶   re   s     €r]   rð   z1gen_headers.<locals>.<lambda>.<locals>.<listcomp>^  s3   ø€ ð *ð *ð *àõ 2°!°_ÑEÔEð*ð *ð *r^   rp   )re   rd   s   €€r]   rŒ   zgen_headers.<locals>.<lambda>]  s3   ø€ Ø'ð *ð *ð *ð *à)ð*ñ *ô *ð
€ r^   zVmapGeneratedPlumbing.hc                 ó"   •— t          ‰ ¦  «        S ro   r#   rP  s   €r]   rŒ   zgen_headers.<locals>.<lambda>f  s   ø€ Õ+@ÐAQÑ+RÔ+R€ r^   rl   r(  c                 ó&  •— t          ¦   «         } t          ¦   «         }‰D ]’}|                     t          |j        j        j        ¦  «        ¦  «         |                     |j        j        j        j        ¦  «         |                      d„ |j                             ¦   «         D ¦   «         ¦  «         Œ“|h d£z  }d                     d„ t          |¦  «        D ¦   «         ¦  «        d                     d„ t          | ¦  «        D ¦   «         ¦  «        dœS )Nc              3  ó$   K  — | ]}|j         V — Œd S ro   rv  )rq   rÚ   s     r]   rt   zAgen_headers.<locals>.gen_aten_interned_strings.<locals>.<genexpr>r  s$   è è € ÐPÐP c˜œÐPÐPÐPÐPÐPÐPr^   >   ÚorÚandÚnotÚxorÚbitorÚcomplÚor_eqÚand_eqÚbitandÚnot_eqÚxor_eqz \
c                ó   — g | ]}d |› d�‘Œ	S )z_(aten, rI  rp   ©rq   r®   s     r]   rð   zBgen_headers.<locals>.gen_aten_interned_strings.<locals>.<listcomp>†  ó$   € Ð>Ð>Ð>¨Ð#˜DÐ#Ð#Ð#Ð>Ð>Ð>r^   c                ó   — g | ]}d |› d�‘Œ	S )z_(attr, rI  rp   rc  s     r]   rð   zBgen_headers.<locals>.gen_aten_interned_strings.<locals>.<listcomp>‰  rd  r^   )Úaten_symbolsÚattr_symbols)
r©   r¬   rƒ   r‡   r®   rÒ   ÚupdaterF  r  rd  )Úattrsr   r‡   rd   s      €r]   Úgen_aten_interned_stringsz.gen_headers.<locals>.gen_aten_interned_stringsi  s  ø€ Ý™%œ%ˆÝ‘”ˆØ$ð 	Qð 	QˆDØ�IŠI•c˜$œ)œ.Ô-Ñ.Ô.Ñ/Ô/Ð/ð �IŠI�d”i”nÔ)Ô.Ñ/Ô/Ð/à�LŠLÐPÐP¨T¬Y×-MÒ-MÑ-OÔ-OÐPÑPÔPÑPÔPÐPÐPð 	ð 
ð 
ð 
ñ 	
ˆð $ŸLšLØ>Ð>µ°u±´Ð>Ñ>Ô>ñô ð $ŸLšLØ>Ð>µ°u±´Ð>Ñ>Ô>ñô ð	
ð 
ð 	
r^   zaten_interned_strings.hc                 óL   •— dd                      t          ‰ ¦  «        ¦  «        iS )NÚenum_of_valid_tagsz,
)r  rd  )r~   s   €r]   Úgen_tags_enumz"gen_headers.<locals>.gen_tags_enum�  s"   ø€ Ø$ u§z¢zµ&¸Ñ2DÔ2DÑ'EÔ'EÐGÐGr^   z
enum_tag.h)rl   r(  )rG  r  r  )rd   r~   r“  rä  ræ  r[  re   rH  rç  ri   r  r™  rè  r³  rI  rj  rm  s   ``  ` `          r]   Úgen_headersrn    s¼  øøøø€ ð$ ð 
Ý Ø-Ø%=Ø 3ØØ+ØØ!ØØ'Ø)Øð	
ñ 	
ô 	
ð 	
ð 	
õ 	Ø-Ø%=Ø(CØ 3ØØ+ØØ!Ø'Ø)Øð	
ñ 	
ô 	
ð 	
ð ‡M‚MØð	
ð 	
ð 	
ð 	
ð 	
ñô ð ð0 ‡L‚LØð	
ð 	
ð 	
ð 	
ñô ð ð ‡L‚LØ$ð	
ð 	
ð 	
ð 	
ð 	
ñô ð ð ‡L‚LØ!Ð#RÐ#RÐ#RÐ#Rñô ð ð"
ð "
ð "
ð "
ð "
ð "
ðH ‡M‚MÐ+Ð-FÑGÔGÐGðHð Hð Hð Hð Hð Hð ‡M‚M�, Ñ.Ô.Ð.Ð.Ð.r^   Úview_groupsú"Sequence[NativeFunctionsViewGroup]Úaoti_fmÚ
cpu_vec_fmÚforce_schema_registrationÚupdate_aoti_c_shimÚaoti_backendsÚextend_aoti_c_shimc                ó  ‡ ‡‡‡‡‡‡‡‡‡‡!‡"‡#‡$‡%‡&‡'‡(‡)‡*‡+‡,— d}‰rd}|D �]Š$t          ‰$||
¦  «        Š&|rdEˆ"ˆ$ˆ%ˆˆfd„}ndEˆ$ˆfd„}‰‰$         Š"t          t          ¦  «        }‰D ]E}t          |t          ¦  «        r|j        n|j        j        }||                              |¦  «         ŒFt          ‰$¦  «         	                    ¦   «         Š%‰$t          j        k    Š(t          ‰$¦  «        r|nddt          j        ‰"|‰¦  «         |¦   «         ‰(rt          j        ‰"¦  «        ng dœ}dFˆ"ˆ$ˆ&ˆ(ˆˆˆfd„}‰&                     d‰$› d�d‰d„ |‰$t          j        k    rdnd|dh¬¦  «         ‰D ]ÑŠ'‰'j        j        rt)          ‰$¦  «        sŒ‰'j        j        j        j        Š)‰$t          j        u rF‰&|
u sJ ‚‰&                     d‰)› d�dˆˆ$ˆ'fd„¦  «         |	                     d‰)› d�dˆ'ˆ)fd„¦  «         Œˆ‰$t          j        u r)dŠ#‰rdŠ#‰&                     d‰)› d�dˆˆ#ˆ$ˆ'ˆ)fd „¦  «         Œ¿t3          d!‰$› d"�¦  «        ‚‹&�Œ t5          ||‰ ‰‰|||¬#¦  «         dGˆ ˆfd$„}|
                     d%|¦  «         ‰}|rt9          j        ¦   «         }t=          ‰ |¬&¦  «        \  Š!Š*|
                     d'ˆ!ˆ*ˆfd(„¦  «         dHd,„}|
                     d-‰ |ˆfd.„d/tA          ‰¦  «        id0h d1£¬2¦  «         |
                     d3tB          ¦  «         |                     d4tB          ¦  «         |                     d5ˆ fd6„¦  «         dIˆˆfd8„}t          ‰¦  «        t          ‰¦  «        z   } d9„ tE          d:„ ‰¦  «        D ¦   «         Š+d;„ tE          d<„ ‰¦  «        D ¦   «         Š,|  #                    ˆ+ˆ,fd=„‰ D ¦   «         ¦  «         |
                     d>| ||dh d?£¬@¦  «         |
                     dAˆˆfdB„¦  «         |
                     dCˆˆˆfdD„¦  «         d S )JNz‹#include <c10/cuda/CUDAGuard.h>
#include <ATen/cuda/ATenCUDAGeneral.h>
#include <ATen/cuda/CUDADevice.h>
#include <ATen/cuda/CUDAContext.h>zŸ#include <ATen/hip/impl/HIPGuardImplMasqueradingAsCUDA.h>
#include <ATen/hip/ATenHIPGeneral.h>
#include <ATen/hip/HIPDevice.h>
#include <ATen/hip/HIPContext.h>rl   r  c                 ó6  •— g } ‰D ]ø}d}‰                      |¦  «        rd}nht          |t          ¦  «        r0t          ˆfd„|                     ¦   «         D ¦   «         ¦  «        rd}n#|j        r‰t          j        t          j        fv rd}|sŒ‡|  	                    d|j
        › d�¦  «         ‰t          j        k    r|  	                    d|j
        › d�¦  «         ‰‰v r!|  	                    d|j
        › d‰› d�¦  «         Œùt          t          | ¦  «        ¦  «        S )	NFTc              3  óB   •K  — | ]}‰                      |¦  «        V — Œd S ro   r`  )rq   ró  r÷   s     €r]   rt   z=gen_source_files.<locals>.operator_headers.<locals>.<genexpr>É  sJ   øè è € ð Eð EØ9;˜×0Ò0°Ñ4Ô4ðEð Eð Eð Eð Eð Er^   r  ú
_native.h>r6  r  r  )rú   r”   r4   rP  r  rË   r+   ÚMetarô   r™   r  rd  r©   )Úheadersr­  Úis_registeredr÷   rh   rÀ  rè  r“  s      €€€€€r]   Úoperator_headersz*gen_source_files.<locals>.operator_headers½  s‚  ø€ Ø�Ø1ð "ð "�AØ$)�MØ$×/Ò/°Ñ2Ô2ð -Ø(,˜˜õ $ AÕ';Ñ<Ô<ð -Åð Eð Eð Eð EØ?@¿{º{¹}¼}ðEñ Eô Eñ Bô Bð -ð )-˜˜ð œð -¨,Ý#Ô(Ý#ÔJð;ð +ð +ð )-˜Ø(ð !Ø à—N’NÐ#P¸¼Ð#PÐ#PÐ#PÑQÔQÐQà$Ý&ÔMòNð Nð  ŸšÐ'M¸Q¼[Ð'MÐ'MÐ'MÑNÔNÐNØ# ~Ð5Ð5ØŸšØ`°!´+Ð`Ð`Ð@RÐ`Ð`Ð`ñô ð øõ �c '™lœlÑ+Ô+Ð+r^   c                 ó’   •— dg} ‰t           j        k    r|                      d¦  «         ‰‰v r|                      d‰›d�¦  «         | S )Nz!#include <ATen/NativeFunctions.h>z#include <ATen/Functions.h>r  r  )r+   rô   r™   )r|  rh   rè  s    €€r]   r~  z*gen_source_files.<locals>.operator_headersç  sZ   ø€ Ø>Ð?�Ø¥;Ô#UÒUÐUØ—N’NÐ#@ÑAÔAÐAØ >Ð1Ð1Ø—N’NÐ#Q°\Ð#QÐ#QÐ#QÑRÔRÐRØ�r^   ru   )Úextra_cuda_headersÚexternal_backend_headersÚdispatch_headersÚops_headersÚdispatch_helpersÚgnfr°  r•  c                ó:   •— dt          ‰| g‰‰‰‰d‰‰¬¦	  «	        iS )NÚdispatch_definitionsT)	ry   r“  rh   rš  r[  r³  r>  r´  rµ  )rÐ  )r…  r÷   rh   ry   rµ  r³  r[  r´  s    €€€€€€€r]   Ú"register_dispatch_key_env_callablez<gen_source_files.<locals>.register_dispatch_key_env_callable	  sA   ø€ ð 'Õ(GØØ.1¨UØ!-Ø -Ø%ØØØ4SØ)=ð
)ñ 
)ô 
)ðð r^   ÚRegisterz.cppzRegisterDispatchKey.cppc                ó   — | j         S ro   ©r  )Úxs    r]   rŒ   z"gen_source_files.<locals>.<lambda>'	  s   € ˜Qœ[€ r^   r�  rS   r‡  )Úkey_fnÚenv_callableÚ
num_shardsÚbase_envÚsharded_keysÚ	UfuncCPU_zUfuncCPU.cppc                 ó€   •— t          ‰¦  «        t          j        ‰‰ ‰         ¦  «        t          j        ‰¦  «        dœS )N)Úmeta_declarationÚnative_declarationÚnative_definitions)rä  rÆ  rC  Úcompute_ufunc_cpu)re   rh   r­  s   €€€r]   rŒ   z"gen_source_files.<locals>.<lambda>7	  sD   ø€ Ý,MÈaÑ,PÔ,PÝ.2Ô.VØ˜¨|Ô<ñ/ô /õ /3Ô.DÀQÑ.GÔ.Gðð € r^   ÚUfuncCPUKernel_zUfuncCPUKernel.cppc                 ó2   •— ‰t          j        ‰ ¦  «        dœS )N)r®   r–  )rÆ  Úcompute_ufunc_cpu_kernel)r­  r®   s   €€r]   rŒ   z"gen_source_files.<locals>.<lambda>B	  s    ø€ Ø $Ý.2Ô.KÈAÑ.NÔ.Nðð € r^   z%#include <ATen/native/cuda/Loops.cuh>z$#include <ATen/native/hip/Loops.cuh>Ú
UfuncCUDA_z.cuzUfuncCUDA.cuc                 ó„   •— ‰‰t          ‰¦  «        t          j        ‰‰ ‰         ¦  «        t          j        ‰¦  «        dœS )N)r®   Úcuda_headersr”  r•  r–  )rä  rÆ  rC  Úcompute_ufunc_cuda)re   r�  rh   r­  r®   s   €€€€€r]   rŒ   z"gen_source_files.<locals>.<lambda>N	  sJ   ø€ Ø $Ø(4Ý,MÈaÑ,PÔ,PÝ.2Ô.VØ˜¨|Ô<ñ/ô /õ /3Ô.EÀaÑ.HÔ.Hðð € r^   zunrecognized z
 for ufunc)rq  ru  rd   re   rä  r€  rt  rv  c            
     ó  •— ˆfd„‰D ¦   «         } d„ | D ¦   «         t          t          t          t          j        ‰¦  «        | ¦  «        ¦  «        t          t          t          t          j        ‰¦  «        | ¦  «        ¦  «        dœS )Nc                ó4   •— g | ]}t          |‰¦  «        ¯|‘ŒS rp   )rê  )rq   ró  r[  s     €r]   rð   z@gen_source_files.<locals>.gen_backend_select.<locals>.<listcomp>j	  s9   ø€ ð 
ð 
ð 
ØÕ-AÀ"ÀhÑ-OÔ-Oð
Øð
ð 
ð 
r^   c                ó$   — g | ]}d |j         › d�‘ŒS )r  r   r‹  rò  s     r]   rð   z@gen_source_files.<locals>.gen_backend_select.<locals>.<listcomp>n	  s3   € ð ð ð Ø@BÐ; b¤lÐ;Ð;Ð;ðð ð r^   )rƒ  Ú!backend_select_method_definitionsÚ%backend_select_function_registrations)r•   rH   rì  rJ   r~  rô  )Úrelevant_fnsrd   r[  s    €€r]   Úgen_backend_selectz,gen_source_files.<locals>.gen_backend_selecti	  s²   ø€ ð
ð 
ð 
ð 
Ø)ð
ñ 
ô 
ˆðð ØFRðñ ô õ 26ÝÝ(­Ô):¸HÑEÔEÀ|ñô ñ2ô 2õ
 6:ÝÝ(­Ô)<¸hÑGÔGÈñô ñ6ô 6ð
ð 
ð 	
r^   zRegisterBackendSelect.cpp)rd   rÕ  zRegisterSchema.cppc                 ó   •— ‰rg n‰ ‰rg n‰dœS )N)rÞ  rÝ  rp   )rÞ  rÝ  r´  s   €€€r]   rŒ   z"gen_source_files.<locals>.<lambda>‹	  s-   ø€ à.ð*+¨¨à*à.ð%& B Bà%ð
ð 
€ r^   ró  ú@NativeFunction | NativeFunctionsGroup | NativeFunctionsViewGrouprƒ   c                ó   — | j         S ro   r‹  )ró  s    r]   Úkey_funcz"gen_source_files.<locals>.key_func•	  s   € ð Œ|Ðr^   zOperators.cppc                óh   •— d| j         › d�g t          t          j        ‰¬¦  «        | ¦  «        gdœS )Nr  r6  rø  )r~  rË  )r  rk  rJ   r~  r  s    €r]   rŒ   z"gen_source_files.<locals>.<lambda>ž	  sV   ø€ Ø!H°r´|Ð!HÐ!HÐ!HÐ IðÕ ÝÔ%Ø4Gðñ ô ð ñô ðð!
ð !
€ r^   r  é   >   rË  r~  r  )r�  rŽ  r�  r�  r‘  zFunctions.cppzTensorMethods.cppzATenOpList.cppc                 óL   •— dt          t          t          ‰ ¦  «        ¦  «        iS )NÚaten_ops)r•   rH   r¬  rP  s   €r]   rŒ   z"gen_source_files.<locals>.<lambda>º	  s"   ø€ Ø��X¥oÐ7GÑHÔHÑIÔIð
€ r^   r­  c                ó„   •— dd„} || ¦  «        t          ‰| ¦  «        t          ‰| ‰t          j                 ¦  «        dœS )Nr­  r§  rl   r  c                óB  — t          | t          ¦  «        rLd| j        j        › d�d| j        j        › d�g}| j        �#|d| j        j        › d�d| j        j        › d�gz  }|S t          | t
          ¦  «        r”d| j        j        › d�d| j        j        › d�d| j        j        › d�d| j        j        › d�g}| j        �#|d| j        j        › d�d| j        j        › d�gz  }| j	        �#|d| j	        j        › d�d| j	        j        › d�gz  }|S d| j        › d�d| j        › d�gS )Nr  rz  r   )
r”   r5   rz  r  r{  r4   rY  rÄ  rÑ   r  )r­  r|  s     r]   Úgen_op_headerszPgen_source_files.<locals>.functionalization_env_callable.<locals>.gen_op_headersÂ	  s£  € õ ˜!Õ5Ñ6Ô6ð "ð G¨!¬&Ô*:ÐFÐFÐFØC¨!¬&Ô*:ÐCÐCÐCð�ð ”;Ð*ØØO¨a¬kÔ.CÐOÐOÐOØL¨a¬kÔ.CÐLÐLÐLð ñ �Gð �Ý˜AÕ3Ñ4Ô4ð àL¨!¬,Ô*@ÐLÐLÐLØI¨!¬,Ô*@ÐIÐIÐIØE¨!¬%¬/ÐEÐEÐEØB¨!¬%¬/ÐBÐBÐBð	�ð ”9Ð(ØØM¨a¬iÔ.AÐMÐMÐMØJ¨a¬iÔ.AÐJÐJÐJð ñ �Gð ”9Ð(ØØM¨a¬iÔ.AÐMÐMÐMØJ¨a¬iÔ.AÐJÐJÐJð ñ �Gð �ð B¨!¬+ÐAÐAÐAØ>¨!¬+Ð>Ð>Ð>ðð r^   )rƒ  Úfunc_definitionsÚfunc_registrations)r­  r§  rl   r  )r   r    r+   rñ   )r­  r°  re   r[  s     €€r]   Úfunctionalization_env_callablez8gen_source_files.<locals>.functionalization_env_callable¿	  sj   ø€ ð%	ð %	ð %	ð %	ðP *˜>¨!Ñ,Ô,Ý @ØØñ!ô !õ #EØØØ¥Ô EÔFñ#ô #ð
ð 
ð 	
r^   c                ó(   — i | ]}|j         j        |“ŒS rp   ©r‡   r®   r�  s     r]   ú
<dictcomp>z$gen_source_files.<locals>.<dictcomp> 
  s.   € ð :ð :ð :àð 	
ŒŒ�Qð:ð :ð :r^   c                óD   — t          |                      ¦   «         ¦  «        S ro   ©r•   r  ©r­  s    r]   rŒ   z"gen_source_files.<locals>.<lambda>
  s   € ¥T¨!¯+ª+©-¬-Ñ%8Ô%8€ r^   c                ó(   — i | ]}|j         j        |“ŒS rp   rµ  r�  s     r]   r¶  z$gen_source_files.<locals>.<dictcomp>
  s+   € ð 4ð 4ð 4ØˆŒŒ�Qð4ð 4ð 4r^   c                óD   — t          |                      ¦   «         ¦  «        S ro   r¸  r¹  s    r]   rŒ   z"gen_source_files.<locals>.<lambda>
  s   € µD¸¿º¹¼Ñ4GÔ4G€ r^   c              3  óT   •K  — | ]"}|j         j        ‰v¯|j         j        ‰v¯|V — Œ#d S ro   rµ  )rq   r¶   Ústructured_mapÚview_maps     €€r]   rt   z#gen_source_files.<locals>.<genexpr>
  sL   øè è € ð ð àØŒ6Œ;˜nÐ,Ð,°´´ÀHÐ1LÐ1Lð 	
à1LÐ1LÐ1LÐ1Lðð r^   zRegisterFunctionalization.cpp>   rƒ  r±  r²  Úfunc_add_back_views_definitionsÚ!func_add_back_views_registrations)r�  rŽ  r�  r‘  zFunctionalInverses.hc                 óH   •— dt          t          ˆ fd„‰¦  «        ¦  «        iS )NÚview_inverse_declarationsc                ó$   •— t          ‰| ¦  «        S ro   )r!   )r­  r[  s    €r]   rŒ   z4gen_source_files.<locals>.<lambda>.<locals>.<lambda>!
  s   ø€ ÕLØ  !ñô € r^   )r•   rH   )r[  ro  s   €€r]   rŒ   z"gen_source_files.<locals>.<lambda>
  s?   ø€ Ø'­Ýðð ð ð ð  ñ	ô ñ*ô *ð	
€ r^   zCompositeViewCopyKernels.cppc            	     ó0  •— d„ ‰D ¦   «         d„ ‰D ¦   «         z   t          t          t          ‰ t          j                 ¦  «        ‰¦  «        ¦  «        t          t          t
          ‰¦  «        ¦  «        t          t          t          ‰¦  «        ¦  «        dœS )Nc                ó‚   — g | ]<}d                       d„ |j        €|j        gn|j        |j        gD ¦   «         ¦  «        ‘Œ=S )rä   c              3  ó<   K  — | ]}d |j         › d|j         › d�V — ŒdS )r  ú_ops.h>
#include <ATen/ops/rz  Nr‹  r�  s     r]   rt   z@gen_source_files.<locals>.<lambda>.<locals>.<listcomp>.<genexpr>>
  sb   è è € ð 	ð 	ð ðB¨!¬+ð Bð Bð +,¬+ð	Bð Bð Bð	ð 	ð 	ð 	ð 	ð 	r^   )r  r{  rz  ©rq   r­  s     r]   rð   z6gen_source_files.<locals>.<lambda>.<locals>.<listcomp>=
  sn   € ð ð ð ð ð —	’	ð 	ð 	ð %&¤KÐ$7˜œ˜˜¸a¼fÀaÄkÐ=Rð	ñ 	ô 	ñ 	ô 	ðð ð r^   c                óp   — g | ]3}d                       d„ |j        |j        |j        fD ¦   «         ¦  «        ‘Œ4S )rä   c              3  óR   K  — | ]"}|®d|j         v¯d|j        › d|j        › d�V — Œ#d S )NrŒ  r  rÇ  rz  )r§   r  r�  s     r]   rt   z@gen_source_files.<locals>.<lambda>.<locals>.<listcomp>.<genexpr>K
  sl   è è € ð ð ð Ø�}¨¸A¼FÐ)BÐ)Bð	B¨!¬+ð Bð Bà*+¬+ðBð Bð Bð *CÐ)BÐ)BÐ)Bðð r^   )r  rÑ   r  rY  rÈ  s     r]   rð   z6gen_source_files.<locals>.<lambda>.<locals>.<listcomp>J
  sc   € ð 	ð 	ð 	ð ð —	’	ð ð ð  œi¨¬°A´LÐAð	ñ ô ñ ô ð	ð 	ð 	r^   )rƒ  Ú#CompositeViewCopyKernel_DefinitionsÚ(GeneratedCompositeFunctional_DefinitionsÚ!GeneratedCompositeOut_Definitions)r•   rH   r"   r+   rô   r@   rA   )re   rä  ro  s   €€€r]   rŒ   z"gen_source_files.<locals>.<lambda><
  sÑ   ø€ ðð ð %ðñ ô ð	ð 	ð 5ð	ñ 	ô 	ñõ. 48ÝÝ.Ø'Ý'ÔNôñô ð
  ñô ñ	4ô 	4õ 9=ÝÝ3Ø/ñô ñ9ô 9õ 26ÝÝ,Ø/ñô ñ2ô 2ðQ.
ð .
€ r^   )rl   r  )r…  r°  rl   r•  )rl   r•  )ró  r§  rl   rƒ   )r­  r§  rl   r•  )$rz   r   r•   r”   r3   r  rY  r™   rƒ   r  r+   rò   r.   rÆ  Úgen_registration_headersÚgen_registration_helpersÚwrite_sharded_with_templateÚCPUrÄ  Úufunc_inner_loopr0   r‡   r®   r  ÚCUDArÐ   r   r  rC   rq  rã  Úwrite_shardedr  r–   rD   r  )-rd   r“  rä  ro  r[  ræ  re   rq  rH  rr  rç  ri   r™  rè  r³  rs  rI  r´  rt  ru  rv  r€  r~  Úns_grouped_native_functionsÚgrouped_native_functionr  Úregister_dispatch_key_base_envrˆ  r¥  rÕ  r©  r³  Ú
all_groupsrÞ  r÷   r�  rh   rÀ  ry   r­  rµ  r®   rÝ  r½  r¾  s-   ```````      ``  `               @@@@@@@@@@@@r]   Úgen_source_filesrÙ  •  s;  øøøøøøøøøøøøøøøøøøøøøø€ ð0&Ðð
 ð $ð$Ðð &ð bñ bˆÝ+¨L¸*ÀfÑMÔMˆØð 2	ð&,ð &,ð &,ð &,ð &,ð &,ð &,ð &,ð &,ð &,ð &,ðTð ð ð ð ð ð ð (¨Ô5ˆÝ&1µ$Ñ&7Ô&7Ð#Ø'?ð 	Sð 	SÐ#õ Ð5µ~ÑFÔFðBÐ'Ô1Ð1à,Ô7ÔAð ð
 (¨	Ô2×9Ò9Ð:QÑRÔRÐRÐRå  Ñ.Ô.×4Ò4Ñ6Ô6Ðð
 �KÔMÒMð 	õ $ LÑ1Ô1ð#Ð"4Ð"4àØ(*Ý $Ô =ØÐ3°Tñ!ô !ð ,Ð+Ñ-Ô-ð (ð•Ô-¨mÑ<Ô<Ð<àð*
ð *
Ð&ð"	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð" 	×&Ò&Ø)�|Ð)Ð)Ð)Ø%Ø$Ø(Ð(Ø;Ø(­K¬OÒ;Ð;�q�qÀØ3Ø0Ð1ð 	'ñ 		
ô 		
ð 		
ð -ð +	Oð +	OˆAØ”5Ô)ð Õ1FÀ|Ñ1TÔ1Tð ØØ”<Ô$Ô)Ô.ˆDØ�{œÐ.Ð.Ø˜V�|�|�|�|Ø×&Ò&Ø* Ð*Ð*Ð*Ø"ðð ð ð ð ð ñ
ô 
ð 
ð ×.Ò.Ø0 dÐ0Ð0Ð0Ø(ðð ð ð ð ñô ð ð ð ¥Ô!1Ð1Ð1ØF�Øð JØ#I�LØ×&Ò&Ø* Ð*Ð*Ð*Ø"ðð ð ð ð ð ð ð ñô ð ð õ %Ð%M°\Ð%MÐ%MÐ%MÑNÔNÐNà‰BåØØ#Ø)Ø'Ø$?Ø-Ø-Ø-ð	ñ 	ô 	ð 	ð
ð 
ð 
ð 
ð 
ð 
ð 
ð( ‡L‚LÐ,Ð.@ÑAÔAÐAà€OØ ð >Ý*Ô;Ñ=Ô=ˆõ
 	1Ø)¸?ð	ñ 	ô 	ñØ!Øð ‡L‚LØð	
ð 	
ð 	
ð 	
ð 	
ð 	
ñ
ô 
ð 
ðð ð ð ð
 ×ÒØØØð
ð 
ð 
ð 
ð ,Õ-JØ#ñ.ô .ð
ð
 ð
ð 
ð 
ð' ñ ô ð ð4 ‡L‚L�¥$Ñ'Ô'Ð'à‡M‚MÐ%¥tÑ,Ô,Ð,à‡M‚MØð	
ð 	
ð 	
ð 	
ñô ð ð5
ð 5
ð 5
ð 5
ð 5
ð 5
ð 5
õr 	Ð(Ñ)Ô)­DØñ-ô -ñ 	ð ð:ð :åÐ8Ð8Ð:UÑVÔVð:ñ :ô :€Nð4ð 4Ý )Ð*GÐ*GÈÑ UÔ Uð4ñ 4ô 4€Hð ×Òð ð ð ð ð à!ðñ ô ñ ô ð ð ×ÒØ'ØØØ3Øð
ð 
ð 
ð ñ ô ð ð ‡L‚LØð		
ð 		
ð 		
ð 		
ð 		
ñô ð ð< ‡L‚LØ&ð.	
ð .	
ð .	
ð .	
ð .	
ð .	
ñ1ô 1ð 1ð 1ð 1r^   c                ó:   ‡— |                       dˆfd„¦  «         d S )NzDeclarations.yamlc                 ó6   •— t          d„ ‰ D ¦   «         ¦  «        S )Nc                ó,   — g | ]}t          |¦  «        ‘ŒS rp   )rV  r�  s     r]   rð   z;gen_declarations_yaml.<locals>.<lambda>.<locals>.<listcomp>s
  s!   € ÐSÐSÐS¸QÕ5°aÑ8Ô8ÐSÐSÐSr^   )r  rP  s   €r]   rŒ   z'gen_declarations_yaml.<locals>.<lambda>s
  s   ø€ •ÐSÐSÐBRÐSÑSÔSÑTÔT€ r^   )r  )rç  rd   s    `r]   Úgen_declarations_yamlrÝ  n
  s4   ø€ ð ‡L‚LØØTÐTÐTÐTñô ð ð ð r^   r	   c                 óX   — t          t          ¦  «        j                             ¦   «         S )z
    If you're depending on torchgen out-of-tree, you can use the root to figure
    out the path to native_functions.yaml
    )r	   Ú__file__ÚparentÚresolverp   r^   r]   Úget_torchgen_rootrâ  w
  s   € õ
 •‰>Œ>Ô ×(Ò(Ñ*Ô*Ð*r^   c                 ób  ‡#‡$— t          j        d¬¦  «        } |                      dddd¬¦  «         |                      dd	d
¬¦  «         |                      ddd¬¦  «         |                      ddd¬¦  «         |                      ddddd¬¦  «         |                      dddd¬¦  «         |                      ddd¬¦  «         |                      ddd¬¦  «         |                      ddd ¬¦  «         |                      d!dd"¬¦  «         |                      d#d$d%d&¬'¦  «         |                      d(d)d*¬¦  «         |                      d+d,d%d-¬'¦  «         |                      d.d/d%d0¬'¦  «         |                      d1d2dd3¬¦  «         |                      d4d5dd6¬¦  «         |                      d7t          d%g d8¢g d8¢d9¬:¦  «         |                      d;dd<¬¦  «         |                      d=dd>¬¦  «         |                      ¦   «         Š$t          ‰$j        ‰$j        ¦  «        }t          j	         
                    ‰$j        d?¦  «        }t          j	         
                    ‰$j        d@¦  «        }dAdBlm} t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j        h}t          j        t          j        h}t/          ¦   «         }‰$j        s‰$j        r?|                     t          j        ¦  «         |                     t          j        ¦  «         nM|                     t          j        ¦  «         t          j        |v r ||                     t          j        ¦  «        = ‰$j        s‰$j        r?|                     t          j        ¦  «         |                     t          j        ¦  «         nM|                     t          j        ¦  «         t          j        |v r ||                     t          j        ¦  «        = ‰$j        sM|                     t          j        ¦  «         t          j        |v r ||                     t          j        ¦  «        = ‰$j         rˆ$fdC„|D ¦   «         }tC          |||¦  «        }tD          |         }	|j#        |j$        c}
Š#tK          |
¦  «        }dD„ |D ¦   «         }tM          |
¦  «        }dE„ |D ¦   «         }‰$j'        › dF�}tQ          |¦  «         )                    dGdG¬H¦  «         ‰$j'        › dI�}tQ          |¦  «         )                    dGdG¬H¦  «         ‰$j*        › }tQ          |¦  «         )                    dGdG¬H¦  «         tW          ‰$|¬J¦  «        }tW          ‰$¬K¦  «        }tW          ‰$¬K¦  «        }tW          ‰$¬K¦  «        }tW          ‰$|¬J¦  «        }tW          ‰$|¬J¦  «        }dL|i}‰$j        rtW          ‰$¬K¦  «        |dM<   g }‰$j,        rJˆ#fdN„‰$j,        D ¦   «         }‰$j,        D ]/}t          j-        |¦  «        }||vr|                     |¦  «         Œ0dO‰$j.        v rgt_          dni dP|
“dQ|“dR|“dS|“dT|“dU|“dV‰#“dW|“dX|“dY|“dZ|“d[|“d\|“d]|“d^‰$j0        “d_‰$j1        “d`‰$j2        “da‰$j3        “db‰$j        “dc|“dd‰$j4        “Ž de‰$j.        v r(tk          |
|	||||‰#||||||‰$j0        ‰$j2        ¬f¦  «         dg‰$j.        v rtm          |
|¬h¦  «         ‰$j7        rœtQ          ‰$j7        ¦  «         8                    ¦   «         }|j9        }|j:        }|dif|djf|dkf|dlfgdm„ | ;                    ¦   «         D ¦   «         z   D ]<\  }} | |z   }!|j<        | |z   z  }"| =                    |!t          |"¦  «        ¦  «         Œ;d S d S )oNzGenerate ATen source files)Údescriptionz-sz--source-pathz!path to source directory for ATenzaten/src/ATen)Úhelpr  z-oz--output-dependenciesz:output a list of dependencies into the given file and exit)rå  z	--dry-runÚ
store_truez5run without writing any files (still updates outputs))Úactionrå  z--per-operator-headersz2generate separate headers per operator in ATen/opsz-dz--install-dirz--install_dirzoutput directoryzbuild/aten/src/ATenz--aoti-install-dirz--aoti_install_dirz%output directory for AOTInductor shimz(torch/csrc/inductor/aoti_torch/generatedz--rocmz=reinterpret CUDA as ROCm/HIP and adjust filepaths accordinglyz--mpsz'Generate MPS registration code when setz--xpuz'Generate XPU registration code when setz--mtiaz(Generate MTIA registration code when setz--op-registration-whitelistz--op_registration_whitelistÚ*z–filter op registrations by the whitelist (if set); each item is `namespace`::`operator name` without overload name; e.g.: aten::empty aten::conv2d ...)Únargsrå  z--op-selection-yaml-pathz--op_selection_yaml_pathaD  Provide a path to the operator selection (for custom build) YAML that contains the information about the set of selected operators and their categories (training, ...). Each operator is either a full operator name with overload or just a bare operator name. The operator names also contain the namespace prefix (e.g. aten::)z--backend-whitelistz--backend_whitelistzRfilter dispatch backend by the whitelist (if set), e.g.: CPU CUDA QuantizedCPU ...z--static-dispatch-backendz--static_dispatch_backendz?generate static dispatch code for the specific backend (if set)z!--skip-dispatcher-op-registrationz!--skip_dispatcher_op_registrationz0Avoid registering operators into the dispatcher.z--force-schema-registrationz--force_schema_registrationz}force it to generate schema-only registrations for all ops, includingthose that are not listed on --op-registration-whitelistz
--generate)r|  ÚsourcesÚdeclarations_yamlzGenerate only a subset of files)r  ré  Úchoicesr  rå  z--update-aoti-c-shimz­Update AOTInductor C shim after adding an entry to inductor_fallback_ops in torchgen/aoti/fallback_ops.py. WARNING: Do not use this unless you are sure what you are doing!!!z--extend-aoti-c-shima…  This Flag indicates the generation of c shims for out-of-tree ATen ops,which is an extension to the In-tree ATen op c shims. This flag needs to be combined with---source-path=<out-of-tree native_functions.yaml>--aoti-install-dir=<in-tree aoti_install_dir>/extend   default is torch/csrc/inductor/aoti_torch/generated/extendWARNING: Do not use this unless you are sure what you are doing!!!znative/native_functions.yamlznative/tags.yamlr   )r™  c                ó^   •— g | ])}t          |¦  «        st          |¦  «        ‰j        v ¯'|‘Œ*S rp   )r/   rƒ   Úbackend_whitelist)rq   r¡   Úoptionss     €r]   rð   zmain.<locals>.<listcomp>9  sI   ø€ ð 
ð 
ð 
àÝ& qÑ)Ô)ð
õ .1°©V¬V°wÔ7PÐ-PÐ-Pð à-PÐ-PÐ-Pr^   c                ó<   — g | ]}t          |t          ¦  «        ¯|‘ŒS rp   )r”   r4   rÈ  s     r]   rð   zmain.<locals>.<listcomp>H  s8   € ð #ð #ð #Ø­z¸!Õ=QÑ/RÔ/Rð#Ø	ð#ð #ð #r^   c                ó<   — g | ]}t          |t          ¦  «        ¯|‘ŒS rp   )r”   r5   rÈ  s     r]   rð   zmain.<locals>.<listcomp>N  s9   € ð ð ð àÝ�aÕ1Ñ2Ô2ðØ	ðð ð r^   z/coreT)ÚparentsÚexist_okz/ops)rï  Úinstall_dir)rï  ÚcudaÚxpuc                óD   •— g | ]}‰t          j        |¦  «                 ‘ŒS rp   )r+   Úparse)rq   Úkeyre   s     €r]   rð   zmain.<locals>.<listcomp>r  s9   ø€ ð 
ð 
ð 
àð �KÔ-¨cÑ2Ô2Ô3ð
ð 
ð 
r^   rê  rd   r“  rä  ro  r[  ræ  re   rq  rH  rr  rç  ri   r™  rè  r³  rs  rI  r´  rt  ru  rv  r|  )rd   r~   r“  rä  ræ  r[  re   rH  rç  ri   r  r™  rè  r³  rI  rë  )rd   rç  ru   Úcpu_vec_Úcore_Úops_c                ó"   — g | ]\  }}||› d �f‘ŒS )r  rp   )rq   rs   Ú	device_fms      r]   rð   zmain.<locals>.<listcomp>´  s(   € ÐSÐSÐSÑ+<¨6°9ˆi˜F˜˜˜Ð&ÐSÐSÐSr^   rp   )>ÚargparseÚArgumentParserÚadd_argumentrƒ   Ú
parse_argsrs  Úop_registration_whitelistrm  Úosr‚   r  Úsource_pathÚtorchgen.modelr™  r+   rÑ  rÓ  rñ   rò   ró   rô   r{  ÚMTIAr©   Úmpsrt  r¬   ÚMPSr’   rö  ÚXPUÚmtiarî  r¼   rg   rd   re   r‘  r†  rô  r	   ÚmkdirÚaoti_install_dirrG   Ústatic_dispatch_backendrø  ÚgeneraterÙ  r³  rs  rI  r´  rv  rn  rÝ  Úoutput_dependenciesrá  r®   Ústemrx   rà  Úwrite_outputs)%Úparserr[  Únative_yaml_pathr¹   r™  rè  ru  r€   Úparsed_yamlr~   rd   r“  rä  Ú!native_functions_with_view_groupsro  Úcore_install_dirÚops_install_dirr  rH  rç  rr  Úcuda_fmr  rq  ri   ræ  rù  Údp_keyÚdepfile_pathÚdepfile_nameÚdepfile_stemry   r¡  Úvarnamer‚   re   rï  s%                                      @@r]   Úmainr  
  si
  øø€ ÝÔ$Ð1MÐNÑNÔN€FØ
×ÒØØØ0Øð	 ñ ô ð ð ×ÒØØØIð ñ ô ð ð
 ×ÒØØØDð ñ ô ð ð
 ×ÒØ ØØAð ñ ô ð ð
 ×ÒØØØØØ%ð ñ ô ð ð ×ÒØØØ4Ø:ð	 ñ ô ð ð ×ÒØØØLð ñ ô ð ð
 ×ÒØØØ6ð ñ ô ð ð
 ×ÒØØØ6ð ñ ô ð ð
 ×ÒØØØ7ð ñ ô ð ð ×ÒØ%Ø%Øð-ð	 ñ ô ð ð ×ÒØ"Ø"ðMð ñ ô ð ð ×ÒØØØð*ð	 ñ ô ð ð ×ÒØ#Ø#ØØNð	 ñ ô ð ð ×ÒØ+Ø+ØØ?ð	 ñ ô ð ð ×ÒØ%Ø%ØðCð	 ñ ô ð ð ×ÒØÝØØ;Ð;Ð;Ø;Ð;Ð;Ø.ð ñ ô ð ð ×ÒØØðMð ñ ô ð ð ×ÒØØðMð ñ 	ô 	ð 	ð ×ÒÑ!Ô!€Gå(ØÔ)ØÔ&ñô €Hõ
 ”w—|’| GÔ$7Ð9WÑXÔXÐÝ”W—\’\ 'Ô"5Ð7IÑJÔJ€Nà,Ð,Ð,Ð,Ð,Ð,õ
 	ŒÝÔÝÔ-ÝÔ9ÝÔ-ÝÔ:ÝÔÝÔð	€Nõ 	ŒÝÔð€Mõ ‘%”%€Kà„{ð D�gÔ0ð DØ×Ò�;œ?Ñ+Ô+Ð+Ø×Ò�+œ/Ñ*Ô*Ð*Ð*à�Š�œÑ(Ô(Ð(åŒ?˜mÐ+Ð+Ø˜m×1Ò1µ+´/ÑBÔBÐCà„{ð D�gÔ0ð DØ×Ò�;œ?Ñ+Ô+Ð+Ø×Ò�+œ/Ñ*Ô*Ð*Ð*à�Š�œÑ(Ô(Ð(åŒ?˜mÐ+Ð+Ø˜m×1Ò1µ+´/ÑBÔBÐCàŒ<ð EØ�Š�Ô(Ñ)Ô)Ð)åÔ˜}Ð,Ð,Ø˜m×1Ò1µ+Ô2BÑCÔCÐDàÔ ð 
ð
ð 
ð 
ð 
à"ð
ñ 
ô 
ˆõ $Ð$4°nÀkÑRÔR€KÝ.¨~Ô>€JàÔ$ØÔ#ð &Ð�oõ
  <Ð<LÑMÔMÐð#ð #Ø+ð#ñ #ô #Ðõ )MØñ)ô )Ð%ðð à2ðñ ô €Kð  "Ô-Ð4Ð4Ð4ÐÝÐ	ÑÔ× Ò ¨¸Ð Ñ=Ô=Ð=Ø Ô,Ð2Ð2Ð2€OÝˆÑÔ×Ò¨°tÐÑ<Ô<Ð<à!Ô2Ð4ÐÝÐ	ÑÔ× Ò ¨¸Ð Ñ=Ô=Ð=å¨Ð=MÐNÑNÔN€GÝ wÐ/Ñ/Ô/€FÝ"¨7Ð3Ñ3Ô3€JÝ¨Ð0Ñ0Ô0€GÝ w¸OÐLÑLÔL€FÝ¨Ð=MÐNÑNÔN€GØ˜'Ð"€JØ„{ð ?Ý-°gÐ>Ñ>Ô>ˆ
�5Ñà.0ÐØÔ&ð +ð
ð 
ð 
ð 
àÔ6ð
ñ 
ô 
Ðð Ô2ð 	+ð 	+ˆCÝ Ô& sÑ+Ô+ˆFØ˜^Ð+Ð+Ø×"Ò" 6Ñ*Ô*Ð*øà�GÔ$Ð$Ð$Ýð 	
ð 	
ð 	
Ø-Ð-ð	
à%=Ð%=ð	
ð )DÐ(Cð	
ð $˜ð		
ð
 �Xð	
ð !4Ð 3ð	
ð ,˜Oð	
ð �Gð	
ð �Gð	
ð "�zð	
ð �6ð	
ð "�zð	
ð (˜-ð	
ð *˜>ð	
ð ”�ð	
ð  '.Ô&GÐ&Gð!	
ð" ")Ô!=Ð!=ð#	
ð$ -4Ô,SÐ,Sð%	
ð&  'Ô9Ð9ð'	
ð( (˜-ð)	
ð*  'Ô9Ð9ð+	
ð 	
ð0 �GÔ$Ð$Ð$ÝØ-Ø!Ø%=Ø(CØ 3ØØ+ØØØ!ØØ'Ø)Ø”Ø!(Ô!=ð	
ñ 	
ô 	
ð 	
ð$ ˜gÔ.Ð.Ð.ÝÐ/?ÈÐOÑOÔOÐOàÔ"ð 1Ý˜GÔ7Ñ8Ô8×@Ò@ÑBÔBˆØ#Ô(ˆØ#Ô(ˆð �RˆLØ˜Ð$Ø�gÐØ�VÐð	
ð
 TÐSÀ
×@PÒ@PÑ@RÔ@RÐSÑSÔSñTð 	1ð 	1‰JˆB�ð ˜|Ñ+ˆGØÔ&¨&°<Ñ*?Ñ@ˆDØ×Ò˜W¥c¨$¡i¤iÑ0Ô0Ð0Ð0ð1ð 1ð
	1ð 	1r^   Ú__main__)rh   r+   ri   rj   rk   rF   rl   rF   )Nr{   F)r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   rl   rc   )r{   )r|   r}   r‚   rƒ   rl   r   )r‚   rƒ   rl   r   ro   )r‚   rƒ   r¹   rƒ   r€   r�   r„   r…   r¸   rº   rl   rc   )rŠ   r½   rl   r¾   )rÝ   rƒ   rl   rƒ   )rê   rë   rl   rì   )r¶   r3   r÷   r&   rl   rø   )r¶   r3   r÷   rë   rl   r   )rê   rë   rl   r  )r  r  r  r   rl   rƒ   )r  r  r¶   r3   r÷   r&   rl   rƒ   )r  r  r¶   r3   re   rë   rl   rƒ   r…  )r­  r4   rl   r   )r¶   r3   r[  rC   rl   r…   )rù  r}   rl   rƒ   )rÝ   rƒ   rl   r}   )r  r<   rl   rƒ   )r•  r  rl   r  )r¶   r3   rl   r  )r$  r   r%  r…   r&  r   r'  r   r  r(  rl   r}   )r'  r%   r%  r…   r&  r   r'  r   r  r(  rl   r}   )r¶   r3   rl   r}   )r¶   r3   rl   r…   )r¶   r3   re   r[  rl   rƒ   )rk  rl  rm  r   rl   rC   )rd   r½   rl   rt  )rd   r½   rl   r‡  )r“  r‡  re   r[  r’  r”  rl   r•  )r—  r•  rl   r  )r“  r‡  re   r[  r’  r”  rl   r  )r¶   r°  rš  r&   rl   rƒ   )ry   rF   r“  r‡  rh   r+   rš  r&   r[  rC   r³  r…   r>  r…   r´  r…   rµ  r…   rl   r  )r“  r‡  rh   r+   rš  r&   r[  rC   r³  r…   r>  r…   rl   r  )rd   r½   rÕ  rC   rl   rÖ  )rd   r½   r“  r‡  rä  rå  ræ  rë   r[  rC   re   r[  rç  rF   ri   rj   rè  ré  r™  rê  r³  r…   rl   r¾   )rd   r½   r“  r‡  ræ  rë   r[  rC   re   r[  rç  rF   ri   rj   r  rF   rè  ré  r™  rê  r³  r…   rl   r¾   ) rd   r½   r~   r   r“  r‡  rä  rå  ræ  rë   r[  rC   re   r[  rH  rF   rç  rF   ri   rj   r  rF   r™  rê  rè  ré  r³  r…   rI  r…   rl   r¾   ),rd   r½   r“  r‡  rä  rå  ro  rp  r[  rC   ræ  rë   re   r[  rq  rF   rH  rF   rr  rF   rç  rF   ri   rj   r™  rê  rè  ré  r³  r…   rs  r…   rI  r…   r´  r…   rt  r…   ru  ré  rv  r…   rl   r¾   )rç  rF   rd   r½   rl   r¾   )rl   r	   )rl   r¾   )ªÚ
__future__r   rÿ  Ú	functoolsrg  rÌ   r  Úcollectionsr   r   r   Údataclassesr   r   Úpathlibr	   Útypingr
   r   r   r   r   Útyping_extensionsr   r´   Útorchgen.api.dispatcherÚapire  Útorchgen.api.metarÅ  Útorchgen.api.nativerò  Útorchgen.api.structuredrË   Útorchgen.destrÆ  Útorchgen.apir   Útorchgen.api.translater   Útorchgen.api.typesr   r   r   r   r   r   r   Útorchgen.contextr   r   r   r   Útorchgen.gen_aoti_c_shimr   r   Ú#torchgen.gen_functionalization_typer   r    r!   r"   Útorchgen.gen_vmap_plumbingr$   r  r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   Ú#torchgen.native_function_generationr?   r@   rA   rB   Ú!torchgen.selective_build.selectorrC   Útorchgen.utilsrD   rE   rF   rG   rH   rI   rJ   Útorchgen.yaml_utilsrK   rL   Úcollections.abcrM   rN   rP   rc   rf   ri  rg   rz   r£   r¯   Úcacher·   r¼   r›   ré   rö   rÿ   r
  r  r+  r7  rC  rW  rZ  rk  rˆ  rž  r§  r¬  rä  rê  rì  r  r  r  r  r#  r/  r.  rV  rZ  rj  rs  r†  r‘  rC  r›  r¬  r¯  r²  rÐ  rÔ  rã  r  rG  rn  rÙ  rÝ  râ  r  r_   rp   r^   r]   ú<module>r;     s  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø Ð Ð Ð Ð Ð Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ *Ð *Ð *Ð *Ð *Ð *à €€€à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð =Ð <Ð <Ð <Ð <Ð <ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð8ð ð ð ð ð ð ð ð ð ð ð ð ?Ð >Ð >Ð >Ð >Ð >ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 7Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6ð ð )Ø(Ð(Ð(Ð(Ð(Ð(ð €GˆC�L„L€ðBð ð ð ð �ñ ô ð ð ˆZ˜Ð'9Ð;LÐ&MÑNÔN€
ð :<Ð Ð ;Ð ;Ð ;Ñ ;Ø57Ð Ð 7Ð 7Ð 7Ñ 7ðð ð ð ð, ,0ØØ %ð-#ð -#ð -#ð -#ð -#ð`ð ð ð ð ð" „ð/ð /ð /ñ „ð/ð ,0ð1ð
 !&Ø!%ð1ð 1ð 1ð 1ð 1ð 1ð@9ð 9ð 9ð 9ðx
ð 
ð 
ð 
ð4	
ð 	
ð 	
ð 	
ðð ð ð ð(ð ð ð ð ð ð ð ð ,ð  ,ð  ,ð  ,ðFRð Rð Rð Rð$Kð Kð Kð Kð:Fð Fð Fð FðX €�$ÐÑÔð`ð `ð `ð `ð `ñ `ô `ñ Ôð`ð0 €�$ÐÑÔðW&ð W&ð W&ð W&ð W&ñ W&ô W&ñ ÔðW&ðx €�$ÐÑÔð*ð *ð *ð *ð *ñ *ô *ñ Ôð*ð^ €�$ÐÑÔð'ð 'ð 'ð 'ð 'ñ 'ô 'ñ Ôð'ðZ €�$ÐÑÔðð ð ð ð ñ ô ñ Ôðð< ðMð Mð Mñ ÔðMð
yð yð yð yðx3ð 3ð 3ð 3ð €�$ÐÑÔð:&ð :&ð :&ð :&ð :&ñ :&ô :&ñ Ôð:&ðHSð Sð Sð Sð&ð ð ð ð0
ð 
ð 
ð 
ðð ð ð ð?'ð ?'ð ?'ð ?'ðF
ð 
ð 
ð 
ð@!ð !ð !ð !ðH ðUð Uð Uñ ÔðUðrð ð ð ð "ðð ð ñ "Ô!ðð@ð ð ð ð>,Oð ,Oð ,Oð ,Oð^ð ð ð ð8 	Ô0ðð ð ð ð ð ð:ð ð ð ð@ 	Ô0ðð ð ð ð ð ð4ð ð ð ð _ð _ð _ð _ðH,ð ,ð ,ð ,ð`!=ð !=ð !=ð !=ðHvð vð vð vðrð ð ð ðDG/ð G/ð G/ð G/ðTVð Vð Vð Vðrð ð ð ð+ð +ð +ð +ðx1ð x1ð x1ð x1ðv	 ˆzÒÐØ€D�F„F€F€F€Fð Ðr^   