Ë
    3êñižZ  ã                  ó  — d dl m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
 d dlmZ d dlZd dlmc mZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZmZ d d
lmZmZmZm Z m!Z!m"Z" d dl#m$Z$ d dl%m&Z&m'Z'm(Z(m)Z)m*Z* d dl+m,Z, erd dl-m.Z.  edg d¢«      Z/	 	 	 	 	 	 	 	 dd„Z0	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z1dd„Z2	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z3	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z4	 d	 	 	 	 	 	 	 	 	 d d„Z5e6dk(  r e2«        yy)!é    )ÚannotationsN)ÚCounterÚdefaultdictÚ
namedtuple)ÚPath)ÚTYPE_CHECKING)ÚDispatcherSignature)ÚCodeTemplate)Únative_function_manager)Úget_grouped_native_functionsÚparse_native_yaml)ÚBackendIndexÚBackendMetadataÚDispatchKeyÚNativeFunctionÚNativeFunctionsGroupÚOperatorName)ÚSelectiveBuilder)Ú	concatMapÚcontextÚFileManagerÚNamespaceHelperÚTarget)Ú
YamlLoader)ÚSequenceÚParsedExternalYaml)Úbackend_keyÚautograd_keyÚ
class_nameÚcpp_namespaceÚbackend_indicesc           	     óp
  ‡‡‡— t        d„ |«      D �ci c]  }|j                  j                  |“Œ c}Št        | «      5 }t	        j
                  |t        ¬«      }d d d «       t        t        «      st        dt        |«      › �«      ‚g d¢}|j                  dd «      Š‰€t        d«      ‚|j                  dd «      }|j                  dd «      Š‰€t        d	«      ‚|j                  d
d«      }t        |t        «      st        d|› �«      ‚|j                  dd«      }t        |t        «      st        d|› �«      ‚|j                  dg «      }	|	€g }	t        |	t        «      st        d|	› dt        |	«      › d�«      ‚|j                  dg «      }
|
€g }
t        |
t        «      st        d|
› dt        |
«      › d�«      ‚t        |
«      }|j                  dg «      }t        |t        «      st        d|› �«      ‚|j                  dg «      }|	j                  |«       |j                  di «       |j                  di «       t!        |j#                  «       «      dk7  r?t        | › ddj%                  |j#                  «       «      › ddj%                  |«      › �«      ‚	 	 	 	 	 	 	 	 	 	 	 	 d(ˆˆfd„}d }t!        |	«      dkD  rPt'        ˆfd„«      5  t)        j*                  ‰«      }d d d «        ||	||||¬ «      }||v rt        d!|› �«      ‚|||<   d }t!        |«      dkD  rSt'        ˆfd"„«      5  t)        j*                  d#‰› �«      }d d d «        ||||||¬ «      }||v rt        d$|› �«      ‚|||<   |D �]\  }t        |t,        «      rS|€g n$||   j/                  |«      fD �cg c]  }|�|‘Œ c}}|€g n$||   j/                  |«      fD �cg c]  }|�|‘Œ c}}nˆ|€g n?|j1                  «       D �cg c]  }||   j/                  |«      ‘Œ c}D �cg c]  }|�|‘Œ c}}|€g n?|j1                  «       D �cg c]  }||   j/                  |«      ‘Œ c}D �cg c]  }|�|‘Œ c}}|D �cg c]  }|€Œ|‘Œ	 }}|D �cg c]  }|€Œ|‘Œ	 }}t!        |«      dk(  r�Œ#t!        |«      dk(  r�Œ3t        d%|d   j2                  › d&|d   j2                  › d'�«      ‚ t5        |||‰|«      S c c}w # 1 sw Y   �Œ�xY w# 1 sw Y   �ŒxY w# 1 sw Y   �Œ¾xY wc c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w ))Nc                óZ   — t        | t        «      r| gS t        | j                  «       «      S ©N)Ú
isinstancer   ÚlistÚ	functions©Úfs    ú\/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/torchgen/gen_backend_stubs.pyú<lambda>z$parse_backend_yaml.<locals>.<lambda>3   s    € œZ¨¬>Ô:�q�c€ ÄÀQÇ[Á[Ã]Ó@S€ ó    )ÚLoaderz'Expected yaml_values to be a dict, got )
Úbackendr   r    Úextra_headersÚ	supportedÚautogradÚfull_codegenÚ
non_nativeÚir_genÚsymintr.   z&You must provide a value for "backend"r   r    z,You must provide a value for "cpp_namespace"Úuse_out_as_primaryFzHYou must provide either True or False for use_out_as_primary. Provided: Údevice_guardzBYou must provide either True or False for device_guard. Provided: r0   z,expected "supported" to be a list, but got: z
 (of type ú)r5   z)expected "symint" to be a list, but got: r1   z+expected "autograd" to be a list, but got: r2   r3   r4   r   z contains unexpected keys: z, z). Only the following keys are supported: c               ó   •— i }| D ]g  }t        j                  |«      }|‰vrt        d|› �«      ‚t        j                  ‰|   j
                  «      }||v r|dz  }t        |d‰
¬«      }	|	||<   Œi t        ||d||¬«      S )Nz Found an invalid operator name: Ú_symintF)ÚkernelÚ
structuredr    T)Údispatch_keyr6   Úexternalr7   Úindex)r   ÚparseÚAssertionErrorÚ
dispatcherÚnameÚfuncr   r   )Úbackend_opsÚ
symint_opsr=   r6   Úuse_device_guardÚmetadataÚopÚop_nameÚkernel_nameÚmr    Únative_functions_maps             €€r*   Úcreate_backend_indexz0parse_backend_yaml.<locals>.create_backend_indexŠ   s¬   ø€ ð 9;ˆØò 	"ˆBÜ"×(Ñ(¨Ó,ˆGØÐ2Ñ2Ü$Ð'GÈÀyÐ%QÓRÐRä$Ÿ/™/Ð*>¸wÑ*G×*LÑ*LÓMˆKØ�ZÑØ˜yÑ(�äØ"¨uÀMôˆAð !"ˆH�WÒð	"ô Ø%Ø1ØØ)Øô
ð 	
r,   c                 ó   •— d‰ › d�S )NzFThe provided value for "backend" must be a valid DispatchKey, but got ú.© ©r.   s   €r*   r+   z$parse_backend_yaml.<locals>.<lambda>«   s   ø€ Ð\Ð]dÐ\eÐefÐg€ r,   )r6   rG   zDuplicate backend key: c                 ó   •— d‰ › d�S )Nz The "autograd" key was specified, which indicates that you would like to override the behavior of autograd for some operators on your backend. However "Autogradz" is not a valid DispatchKey.rQ   rR   s   €r*   r+   z$parse_backend_yaml.<locals>.<lambda>½   s   ø€ ð OØOVÈiÐWtðv€ r,   ÚAutogradzDuplicate autograd key: zÊCurrently, all variants of an op must either be registered to a backend key, or to a backend's autograd key. They cannot be mix and matched. If this is something you need, feel free to create an issue! z" is listed under "supported", but z is listed under "autograd".)rE   z	list[str]rF   zset[str]r=   r   r6   ÚboolrG   rU   Úreturnr   )r   rD   rC   ÚopenÚyamlÚloadr   r%   ÚdictrA   ÚtypeÚpoprU   r&   ÚsetÚextendÚlenÚkeysÚjoinr   r   r@   r   Ú
get_kernelr'   r;   r   )Úbackend_yaml_pathÚgrouped_native_functionsr!   r)   Úyaml_valuesÚ
valid_keysr   r6   rG   r0   r5   Ú
symint_setÚsupported_autogradr2   rN   r   Úbackend_idxr   Úautograd_idxÚgrL   Úforward_kernelsÚbackward_kernelsr.   r    rM   s                          @@@r*   Úparse_backend_yamlrn   +   sV  ú€ ô ÙSØ$ó
ö@àð 	
�‰�‰�Q‰ò@Ðô 
ÐÓ	 ð 6 AÜ—i‘i ¬*Ô5ˆ÷6ä�k¤4Ô(ÜØ5´d¸;Ó6GÐ5HÐIó
ð 	
ò€Jð �o‰o˜i¨Ó.€GØ€ÜÐEÓFÐFà—‘ ¨tÓ4€Jà—O‘O O°TÓ:€MØÐÜÐKÓLÐLð %Ÿ™Ð)=¸uÓEÐÜÐ(¬$Ô/ÜØVÐWiÐVjÐkó
ð 	
ð #—‘ ~°uÓ=ÐÜÐ&¬Ô-ÜØPÐQaÐPbÐcó
ð 	
ð —‘ ¨RÓ0€IØÐØˆ	Ü�i¤Ô&ÜØ:¸9¸+ÀZÔPTÐU^ÓP_ÐO`Ð`aÐbó
ð 	
ð �_‰_˜X rÓ*€FØ€~ØˆÜ�fœdÔ#ÜØ7¸°x¸zÌ$ÈvË,ÈÐWXÐYó
ð 	
ô �V“€Jà$Ÿ™¨°RÓ8ÐÜÐ(¬$Ô/ÜØ9Ð:LÐ9MÐNó
ð 	
ð
 —?‘? >°2Ó6€LØ×Ñ�\Ô"ð ‡O�O�L "Ô%ð ‡O�O�H˜bÔ!ä
ˆ;×ÑÓÓ !Ò#ÜØ Ð!Ð!<¸T¿Y¹YÀ{×GWÑGWÓGYÓ=ZÐ<[ð \6Ø6:·i±iÀ
Ó6KÐ5LðNó
ð 	
ð

Øð
àð
ð "ð
ð
 !ð
ð ð
ð 
ö
ð< '+€KÜ
ˆ9ƒ~˜ÒÜÛgó
ñ 	5ô &×+Ñ+¨GÓ4ˆK÷	5ñ
 +ØØØØ1Ø-ô
ˆð ˜/Ñ)Ü Ð#:¸;¸-Ð!HÓIÐIØ'2ˆ˜Ñ$à'+€LÜ
ÐÓ Ò"Üóvó
ñ 	Cô '×,Ñ,¨x¸°yÐ-AÓBˆL÷		Cñ ,ØØØØ1Ø-ô
ˆð ˜?Ñ*Ü Ð#;¸L¸>Ð!JÓKÐKØ(4ˆ˜Ñ%à%ó 7ˆÜ�aœÔ(ð Ð&ñ ð .¨kÑ:×EÑEÀaÓHÐIöàØ�}ò òð ð  Ð'ñ ð .¨lÑ;×FÑFÀqÓIÐJöàØ�}ò òñ ð Ð&ñ ð "#§¡£öàð (¨Ñ4×?Ñ?ÀÕBòöàð �}ò òð ð  Ð'ñ ð "#§¡£öàð (¨Ñ5×@Ñ@ÀÕCòöàð �}ò òð ð '6ÖG ¸¹š1ÐGˆÐGØ'7ÖI !¸1¹=šAÐIÐÐIÜ�OÓ$¨Ô)¬SÐ1AÓ-BÀaÔ-GÜ ðPð # 1Ñ%×,Ñ,Ð-ð .Ø'¨Ñ*×1Ñ1Ð2Ð2Nð	Póð ðc7ôr Ø�\ :¨}¸oóð ùòm@÷6ñ 6ú÷d	5ñ 	5ú÷$	Cñ 	Cüò,ùòùòùòùòùòùò HùÚIsd   “S$¿S)ËS6Ì.TÎ$TÏTÏ2TÐTÐ6T$ÑT)Ñ(T.Ñ0T.Ñ:T3ÒT3Ó)S3Ó6T ÔTc                óæ  — 	 t        |«      5 }|j                  «       }d d d «       |€g }||   j                  g|€g n||   j                  gz   }
t        t        t        d„ |
«      «      «      }| D �cg c]4  }|j                  j                  |v r|j                  j                  |vr|‘Œ6 }}t        t        «      }|D ]-  }|||j                  j                        j                  |«       Œ/ d|› d�}t        t        j                  |«      D ��cg c]  \  }}|j                  d«      s|‘Œ c}}«      }d}|j!                  «       D ]Y  \  }}t#        |«      }||   }||k7  sŒdd„}dj%                  |D �cg c]
  } ||«      ‘Œ c}«      }|d|› d	|› d
|› d|› d|› d�z  }Œ[ |dk7  rt        |«      ‚y # 1 sw Y   �ŒšxY w# t        $ r}	t        d|› �«      |	‚d }	~	ww xY wc c}w c c}}w c c}w )Nz2Unable to read from the specified impl_path file: c                ól   — | j                  «       D ��cg c]  \  }}||j                  f‘Œ c}}S c c}}w r$   )Úitemsr;   )r?   rJ   rH   s      r*   r+   z*error_on_missing_kernels.<locals>.<lambda>'  s/   € ØHMÏÉË÷Ù3D°7¸H�W˜hŸo™oÒ.ó€ ùó s   ”0z(.*)z::\s*([\w\d]*)\(ú:Ú c                óž   — t        | «      5  t        j                  | j                  «      j	                  «       cd d d «       S # 1 sw Y   y xY wr$   )r   r	   Úfrom_schemarD   Údeclr(   s    r*   Úcreate_declz-error_on_missing_kernels.<locals>.create_declQ  s>   € Ü,¨QÓ/ñ JÜ.×:Ñ:¸1¿6¹6ÓB×GÑGÓI÷J÷ Jò Jús   Œ-AÁAú
z$ is missing a kernel definition for z. We found z( kernel(s) with that name,
but expected zH kernel(s). The expected function schemas for the missing operator are:
z

)r)   r   rV   Ústr)rW   ÚreadÚOSErrorrA   r?   rZ   r&   r   rD   rC   r   Úappendr   ÚreÚfindallÚendswithrq   r_   ra   )Únative_functionsr!   r   r   r   Úkernel_defn_file_pathr2   r)   Úbackend_defnsÚeÚindicesÚexpected_backend_op_namesÚexpected_backend_native_funcsÚ#expected_backend_kernel_name_countsÚnative_fÚkernel_defn_regexÚxÚyÚ!actual_backend_kernel_name_countsÚmissing_kernels_err_msgÚexpected_nameÚfuncsÚexpected_overload_countÚactual_overload_countrw   Úexpected_schemas_strs                             r*   Úerror_on_missing_kernelsr“     sr  € ðÜÐ'Ó(ð 	%¨AØŸF™F›HˆM÷	%ð ÐØˆà˜{Ñ+×1Ñ1Ð2ØÐ"‰¨¸Ñ)F×)LÑ)LÐ(Mñ€Gô
 :>ÜÜñð ó	ó	
ó	:Ðð "ö;àØ�6‰6�;‰;Ð3Ñ3¸¿¹¿¹È<Ñ8Wò 	
ð;Ð!ð ;ô
 LWÜóLÐ'ð 2ò ˆØ+Ø% h§m¡m×&8Ñ&8Ñ9ñ	
ç
‰&�Õ
ðð   
˜|Ð+;Ð<ÐÜ(/ô Ÿ*™*Ð%6¸ÓF÷	
á��AØ—:‘:˜c”?ò ó	
ó
)Ð%ð !ÐØ C× IÑ IÓ Kò Ñˆ�uÜ"% e£*ÐØ AÀ-Ñ PÐØ"Ð&;Ó;óJð $(§9¡9ÀeÖ-LÀ©k¸!­nÒ-LÓ#MÐ Ø#ð ,Ø€Ð0°°¸{ÐK`ÐJað bØ%Ð&ð 'ØÐ ð ð(ñ Ñ#ðð   "Ò$ÜÐ4Ó5Ð5ð %÷O	%ñ 	%ûäò ÜØ@ÐAVÐ@WÐXó
àð	ûðüò.;ùó,	
ùò" .Ms?   ‚G �F6žG Á29G#ÄG(
Å8G.
Æ6G Æ;G Ç	G ÇGÇG c                 óx  — t        j                  d¬«      } | j                  dddd¬«       | j                  dd	d
d¬«       | j                  ddt        dd¬«       | j                  ddt        d d¬«       | j                  «       }t        |j                  |j                  |j                  |j                  «       y )NzGenerate backend stub files)Údescriptionz-sz--source-yamlz--source_yamlzApath to source yaml file containing operator external definitions)Úhelpz-oz--output-dirz--output_dirzoutput directoryz	--dry-runz	--dry_runF)r[   Údefaultr–   z--impl-pathz--impl_pathz9path to the source C++ file containing kernel definitions)ÚargparseÚArgumentParserÚadd_argumentrU   ry   Ú
parse_argsÚrunÚsource_yamlÚ
output_dirÚdry_runÚ	impl_path)ÚparserÚoptionss     r*   Úmainr£   `  sÃ   € Ü×$Ñ$Ð1NÔO€FØ
×ÑØØØØPð	 ô ð ×Ñ˜˜n¨nÐCUÐÔVØ
×ÑØ�[¤t°UÐASð ô ð ×ÑØØÜØØHð ô ð ×ÑÓ!€Gäˆ×Ñ˜W×/Ñ/°·±À'×BSÑBSÕTr,   c                ó  ‡‡‡‡‡‡‡	‡
‡— ‰€t        d«      ‚dŠ
t        t        t        ˆˆfd„|«      «      «      Š	t        t        t        ˆˆfd„|«      «      «      Št	        |«      Š| j                  ‰› d�dˆˆ	ˆˆˆˆ
ˆfd„«       y )Núclass_name must not be NonezAAutogenerated file by gen_backend_stubs.py. Do not edit directly!c                ó6   •— t        j                  | ‰‰   «      S r$   ©ÚdestÚ#compute_native_function_declaration)r)   Úbackend_dispatch_keyr!   s    €€r*   r+   z4gen_dispatchkey_nativefunc_headers.<locals>.<lambda>Ž  s   ø€ œ$×BÑBØ�Ð';Ñ<ó€ r,   c                ó>   •— ‰€g S t        j                  | ‰‰   «      S r$   r§   )r)   Úautograd_dispatch_keyr!   s    €€r*   r+   z4gen_dispatchkey_nativefunc_headers.<locals>.<lambda>˜  s.   ø€ Ø(Ð0ð € ä×=Ñ=Ø�Ð'<Ñ=óð r,   úNativeFunctions.hzDispatchKeyNativeFunctions.hc                 óF   •— ‰‰j                   ‰‰j                  ‰‰ z   ‰‰dœS )N)Úgenerated_commentÚnamespace_prologuer   Únamespace_epilogueÚdispatch_declarationsÚBackendNamer   )ÚprologueÚepilogue)Úautograd_declarationsÚbackend_declarationsrª   Úbackend_namer   r¯   Ú	ns_helpers   €€€€€€€r*   r+   z4gen_dispatchkey_nativefunc_headers.<locals>.<lambda>¦  s1   ø€ Ø!2Ø"+×"4Ñ"4Ø$Ø"+×"4Ñ"4Ø%9Ð<QÑ%QØ'Ø/ñ
€ r,   )rA   Úsortedr]   r   r   Úwrite_with_template)Úfmr   r    r!   rd   rª   r¬   r¸   r¶   r·   r¯   r¹   s    ` ` ```@@@@r*   Ú"gen_dispatchkey_nativefunc_headersr½   x  s¡   ÿø€ ð ÐÜÐ:Ó;Ð;àKð ô "ÜÜôð )ó	ó	
ó	Ðô #ÜÜôð
 )óó		
óÐô   Ó.€IØ×ÑØÐ
 Ð 1Ð2Ø&÷	
ñ 	
õr,   c                ó"  ‡ ‡‡‡‡‡	‡‡‡‡‡‡— |› d|› d�g}|rdj                  d„ |D «       «      Šndj                  d„ |D «       «      Š‰€t        d«      ‚|‰   Št        t        t	        j
                  ‰t        j                  ‰dd‰› d¬	«      ‰«      «      }dŠt        d
¬«      ŠdŠdŠ|rt        d«      }|j                  ‰|¬«      Šnt        d«      }|j                  |
‰|¬«      Š‰ j                  d‰› d�dˆˆˆˆˆˆ ˆˆˆˆ	ˆˆfd„«       y )Nú/r­   rx   c              3  ó(   K  — | ]
  }d |› d�–— Œ y­w)z
#include <ú>NrQ   ©Ú.0Úhs     r*   ú	<genexpr>z/gen_dispatcher_registrations.<locals>.<genexpr>Å  ó   è ø€ Ò0TÀq°:¸a¸SÀÔ1BÑ0Tùó   ‚c              3  ó(   K  — | ]
  }d |› d�–— Œ y­w)z
#include "ú"NrQ   rÂ   s     r*   rÅ   z/gen_dispatcher_registrations.<locals>.<genexpr>Ç  rÆ   rÇ   r¥   FT©Úrocmr5   Úclass_method_nameÚskip_dispatcher_op_registrationÚat)Únamespace_strrs   zOTORCH_LIBRARY_IMPL(aten, $dispatch_key, m) {
    $dispatch_registrations_body
})r=   Údispatch_registrations_bodyzõTORCH_API void Register${backend_name}${dispatch_key}NativeFunctions();
TORCH_API void Register${backend_name}${dispatch_key}NativeFunctions() {
    static auto m = MAKE_TORCH_LIBRARY_IMPL(aten, $dispatch_key);
    $dispatch_registrations_body
})r¸   r=   rÐ   ÚRegisterz.cppzRegisterDispatchKey.cppc                 óâ   •— d‰‰	sdnd‰‰j                  «       t        j                  ‰ ‰	d¬«      t        j                  ‰ «      ‰j	                  dˆ ˆˆˆˆˆˆ
ˆfd„«      j                  ‰«      dœS )Nrs   z#include <ATen/Functions.h>F)Úper_operator_headersrË   zRegisterDispatchDefinitions.inic                 óÔ   •— ‰j                   ‰j                  ‰‰‰j                  «       dt        t	        t        j                  ‰ t        j                  ‰dd‰› d¬«      ‰«      «      dœS )Nrs   FTrÊ   )Úns_prologueÚns_epilogueÚ"static_init_dispatch_registrationsÚdeferred_dispatch_registrationsÚdispatch_namespaceÚdispatch_namespaced_definitionsÚdispatch_anonymous_definitions)	r´   rµ   Úlowerr&   r   r¨   ÚRegisterDispatchKeyr   ÚANONYMOUS_DEFINITION)Úbackend_indexr   rØ   r=   rd   r¹   Úselectorr×   s   €€€€€€€€r*   r+   z@gen_dispatcher_registrations.<locals>.<lambda>.<locals>.<lambda>
  sq   ø€ Ø#,×#5Ñ#5Ø#,×#5Ñ#5Ø:\Ø7VØ*6×*<Ñ*<Ó*>Ø79Ü6:Ü!Ü ×4Ñ4Ø -Ü &× ;Ñ ;Ø (Ø%*Ø'+Ø5?°LØ@Eôð 5óó7ñ€ r,   )Úextra_cuda_headersÚexternal_backend_headersÚops_headersr   rÙ   Údispatch_headersÚdispatch_helpersÚdispatch_definitions)rÜ   r¨   Úgen_registration_headersÚgen_registration_helpersÚsubstitute_with_templateÚsplit)rß   r   rØ   r=   Úexternal_backend_headers_strr¼   rd   Únewliner¹   rÓ   rà   r×   s   €€€€€€€€€€€€r*   r+   z.gen_dispatcher_registrations.<locals>.<lambda>ü  sw   ø€ Ø"$Ø(Dá'ñ 9àØ'Ø".×"4Ñ"4Ó"6Ü $× =Ñ =ØÐ4HÈuô!ô !%× =Ñ =¸mÓ LØ$&×$?Ñ$?Ø1÷ò ó%÷0 ‰e�G‹nñI%
€ r,   )ra   rA   r&   r   r¨   rÝ   r   ÚREGISTRATIONr   r
   Ú
substituter»   )r¼   rž   r   r!   rd   rª   r=   rà   Úbuild_in_treerÓ   r¸   Úeager_registrationÚheadersrÐ   Ústatic_templateÚdeferred_templaterß   rØ   rë   rì   r¹   r×   s   ` ` ` `` `      @@@@@@r*   Úgen_dispatcher_registrationsrô   ²  sY  ÿû€ ð  ˆ,�aÐ,Ð-Ð->Ð?ð€Gñ Ø'+§y¡yÑ0TÈGÔ0TÓ'TÑ$à'+§y¡yÑ0TÈGÔ0TÓ'TÐ$àÐÜÐ:Ó;Ð;Ø# LÑ1€Mä"&ÜÜ×$Ñ$ØÜ×#Ñ#ØØØØ%/ LØ05ôð %ó	
ó#Ðð €GÜ¨dÔ3€IØ&(Ð#Ø)+Ð&ÙÜ&ðó
ˆð .=×-GÑ-GØ%Ø(Cð .Hó .
Ñ*ô
 )ðó
Ðð +<×*FÑ*FØ%Ø%Ø(Cð +Gó +
Ð'ð ×ÑØ
�<�. Ð%Ø!÷%	
ö %	
õ)r,   c                ó0  ‡‡— t        t        «      j                  «       j                  j                  }t        j
                  j                  |d«      Šdˆˆfd„} ||«      }t        j
                  j                  |d«      }t        j
                  j                  |d«      }t        ||«      }	|	j                  |	j                  }}
t        |
«      }t        | ||«      }|j                  }|j                  }|j                  }|j                  }|j                  }t!        j"                  «       }|€y |€||   j%                  «       }|€t'        d«      ‚|�t)        |
|||||«       t+        |||||||«       |€|gn||gD ]  }t-        ||||||||«       Œ y )Nzaten/src/ATen/templatesc                ó    •— t        | ‰‰¬«      S )N)Úinstall_dirÚtemplate_dirrŸ   )r   )r÷   rŸ   rø   s    €€r*   Úmake_file_managerzrun.<locals>.make_file_manager,  s   ø€ ÜØ#°,Èô
ð 	
r,   z*aten/src/ATen/native/native_functions.yamlzaten/src/ATen/native/tags.yamlr¥   )r÷   ry   rV   r   )r   Ú__file__ÚabsoluteÚparentÚosÚpathra   r   r€   r!   r   rn   r   r   r    r   r   Úget_nop_selectorÚnative_function_class_namerA   r“   r½   rô   )r�   rž   rŸ   r    Úpytorch_rootrù   r¼   Únative_yaml_pathÚtags_yaml_pathÚparsed_yamlr€   r!   rd   Úparsed_backend_yamlr   r   r    r   rà   r=   rø   s     `                 @r*   rœ   rœ   %  s¾  ù€ ô œ“>×*Ñ*Ó,×3Ñ3×:Ñ:€LÜ—7‘7—<‘< Ð.GÓH€Lö
ñ
 
˜:Ó	&€Bä—w‘w—|‘|ØÐBóÐô —W‘W—\‘\ ,Ð0PÓQ€NÜ#Ð$4°nÓE€Kà×$Ñ$Ø×#Ñ#ð &Ðô  <Ð<LÓMÐÜ,ØÐ-¨óÐð &×1Ñ1€KØ&×3Ñ3€LØ'×5Ñ5€MØ$×/Ñ/€JØ)×9Ñ9€Oä×0Ñ0Ó2€HàÐààÐð
 % [Ñ1×LÑLÓNˆ
ØÐÜÐ:Ó;Ð;àÐÜ ØØØØØØô	
ô 'Ø
ØØØØ ØØôð &Ð-ˆ‰°KÀÐ3Nò
ˆô 	%ØØØØØ$ØØØõ		
ñ
r,   Ú__main__)rc   ry   rd   ú/Sequence[NativeFunction | NativeFunctionsGroup]r!   údict[DispatchKey, BackendIndex]rV   r   r$   )r€   zSequence[NativeFunction]r!   r  r   r   r   úDispatchKey | Noner   ry   r�   ry   r2   zlist[OperatorName] | NonerV   ÚNone)rV   r
  )rs   )r¼   r   r   ry   r    ry   r!   r  rd   r  rª   r   r¬   r	  r¸   ry   rV   r
  )FFrs   T)r¼   r   rž   ry   r   ry   r!   r  rd   r  rª   r   r=   r   rà   r   rï   rU   rÓ   rU   r¸   ry   rð   rU   rV   r
  )
r�   ry   rž   ry   rŸ   rU   r    z
str | NonerV   r
  )7Ú
__future__r   r˜   rý   r}   Úcollectionsr   r   r   Úpathlibr   Útypingr   rX   Útorchgen.api.dispatcherÚapirB   Útorchgen.destr¨   Útorchgen.api.typesr	   Útorchgen.code_templater
   Útorchgen.contextr   Útorchgen.genr   r   Útorchgen.modelr   r   r   r   r   r   Ú!torchgen.selective_build.selectorr   Útorchgen.utilsr   r   r   r   r   Útorchgen.yaml_utilsr   Úcollections.abcr   r   rn   r“   r£   r½   rô   rœ   Ú__name__rQ   r,   r*   ú<module>r     sP  ðÝ "ã Û 	Û 	ß 8Ñ 8Ý Ý  ã ç ,Ð ,Ý Ý 2Ý /Ý 4ß H÷÷ õ ?ß SÕ SÝ *ñ Ý(ñ
  ØÚUóÐ ð]Øð]àMð]ð 5ð]ð ó	]ðN /3ðR6Ø.ðR6à4ðR6ð ðR6ð %ð	R6ð
 ðR6ð ðR6ð ,ðR6ð 
óR6ójUð@ ð7Øð7àð7ð ð7ð 5ð	7ð
 Nð7ð &ð7ð .ð7ð ð7ð 
ó7ðH  Ø!&ØØ#ðpØðpàðpð ðpð 5ð	pð
 Nðpð &ðpð ðpð ðpð ðpð ðpð ðpð ðpð 
ópðh OSðP
ØðP
Ø"%ðP
Ø04ðP
ØAKðP
à	óP
ðf ˆzÒÙ…Fð r,   