Ë
    Z^(hEt  ã                  ó�  — d dl mZ d dlZd dlmZ d dlmZ d dlmc m	Z	 d dl
mZ d dlmZmZmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z# d d	l$m%Z% erd d
l&m'Z' ddgZ(ddgZ)g d¢Z*dgZ+	 	 	 	 dd„Z,dd„Z-dd„Z.dd„Z/	 	 	 	 d d„Z0dd„Z1	 	 	 	 	 	 d!d„Z2	 	 	 	 	 	 d"d„Z3d#d„Z4d$d„Z5ed%d„«       Z6ed%d„«       Z7y)&é    )ÚannotationsN)Údefaultdict)ÚTYPE_CHECKING)Ú	translate)ÚBindingÚDispatcherSignatureÚExpr)Úwith_native_function)Ú
AnnotationÚArgumentÚBackendIndexÚBackendMetadataÚBaseOperatorNameÚBaseTyÚBaseTypeÚDEFAULT_KERNEL_NAMESPACEÚDeviceCheckTypeÚDispatchKeyÚFunctionSchemaÚNativeFunctionÚNativeFunctionsGroupÚOperatorNameÚReturnÚ
SchemaKindÚVariant)Ú	concatMap)ÚSequencez'adaptive_avg_pool3d_backward.grad_inputz _slow_conv2d_backward.grad_inputÚ_cummax_helperÚ_cummin_helper)$Ú_assert_asyncz_assert_async.msgÚ_assert_tensor_metadataÚ_cslt_sparse_mm_searchÚ_assert_scalarÚ_dimIÚ_dimVÚ_has_same_storage_numelÚ_linalg_check_errorsÚ_local_scalar_denseÚ%_nested_tensor_from_mask_left_alignedÚ_nnzÚ_use_cudnn_ctc_lossz_use_cudnn_ctc_loss.TensorÚ#_validate_compressed_sparse_indicesÚallcloseÚ	dense_dimÚequalÚis_coalescedÚ	is_pinnedÚis_same_sizeÚ	is_set_toÚq_per_channel_axisÚq_scaleÚq_zero_pointÚqschemeÚrecord_streamÚ
sparse_dimÚsym_constrain_rangeÚsym_constrain_range_for_sizeÚ_nested_tensor_storage_offsetsÚ'_chunk_grad_outputs_efficient_attentionÚ_fused_sdp_choiceÚ_printÚ_sink_tokensÚ_nested_get_ragged_idxÚ
polygamma_c                óâ   — t        t        «      }| D ]Z  }||j                  j                  «          }|j                  j	                  «       |vsJ ‚|||j                  j	                  «       <   Œ\ |S ©N)r   ÚdictÚfuncÚ	signatureÚkind)Únative_functionsÚpre_grouped_native_functionsÚfÚds       úa/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torchgen/native_function_generation.pyÚpre_group_native_functionsrN   n   sm   € ô
 	”DÓð !ð ò ˆØ(¨¯©×)9Ñ)9Ó);Ñ<ˆØ�v‰v�{‰{‹} AÑ%Ð%Ð%Øˆˆ!�&‰&�+‰+‹-Òðð (Ð'ó    c                ó   — | sdS | › d�S )NÚoutÚ_out© )Úoverload_names    rM   Ú&get_expected_out_variant_overload_namerU   |   s   € Ù%ˆ5ÐA¨m¨_¸DÐ+AÐArO   c                ó:  — | j                  «       t        j                  k(  sJ ‚| j                  j                  €J ‚t        | j                  j                  «       j                  t        | j                  j                  «      «      | j                  j                  «       j                  t        d| j                  j                  j                  j                  d | j                  j                  j                  j                   ¬«      g«      | j"                  ¬«      S )NrQ   ©ÚnameÚtypeÚdefaultÚ
annotation©rX   Ú	argumentsÚreturns)rH   r   Úinplacer]   Úself_argr   rX   Úremove_inplaceÚwith_overloadrU   rT   Úremove_self_annotationÚwith_out_argsr   ÚargumentrY   r[   r^   )rF   s    rM   Úself_to_out_signaturerf   …   sÙ   € à�9‰9‹;œ*×,Ñ,Ò,Ð,Ð,Ø�>‰>×"Ñ"Ð.Ð.Ð.ô
 Ø�Y‰Y×%Ñ%Ó'×5Ñ5Ü2°4·9±9×3JÑ3JÓKó
ð —.‘.×7Ñ7Ó9×GÑGäØØŸ™×0Ñ0×9Ñ9×>Ñ>Ø Ø#Ÿ~™~×6Ñ6×?Ñ?×JÑJô	ðó	
ð —‘ôð rO   c                óL  — | j                  «       t        j                  k(  sJ ‚t        | «      \  }}t	        | j
                  j                  t        | j
                  j                  «      «      | j                  j                  «       j                  |«      t        |«      ¬«      S ©Nr\   )rH   r   Ú
functionalÚgenerate_out_args_from_schemar   rX   rb   rU   rT   r]   rG   rd   Útuple©rF   Únew_returnsÚnew_out_argss      rM   Úfunctional_to_out_signaturero   ¦   sˆ   € à�9‰9‹;œ*×/Ñ/Ò/Ð/Ð/ä =¸dÓ CÑ€K�ô
 Ø�Y‰Y×$Ñ$Ü2°4·9±9×3JÑ3JÓKó
ð —.‘.×*Ñ*Ó,×:Ñ:Øó
ô �kÓ"ôð rO   c           
     óf  — t        d„ | j                  D «       «      rJ ‚| j                  D �cg c]  }|j                  j                  «       sŒ|‘Œ! }}t	        |«      dkD  sJ ‚t        d„ | j                  j                  «      }t        j                  D �cg c]	  }||vsŒ|‘Œ }}t        d„ | j                  D «       «      }g }g }t        | j                  «      D ]Ç  \  }	}|j                  j                  «       r—t        t	        | j                  «      dk(  rdnd|	› �|j                  d t        j                  ||	   › d�«      ¬«      }
|j                  |
«       |sŒƒt!        d |
j                  |
j"                  ¬	«      }|j                  |«       Œ·|j                  |«       ŒÉ ||fS c c}w c c}w )
Nc              3  óh   K  — | ]*  }|j                   d uxr |j                   j                  –— Œ, y ­wrD   )r[   Úis_write©Ú.0Úrs     rM   ú	<genexpr>z0generate_out_args_from_schema.<locals>.<genexpr>À   s0   è ø€ ò Ø?@ˆ�‰˜DÐ Ò: Q§\¡\×%:Ñ%:Ó:ñùó   ‚02r   c                óJ   — | j                   €g S | j                   j                  S rD   )r[   Ú	alias_set)Úas    rM   ú<lambda>z/generate_out_args_from_schema.<locals>.<lambda>È   s   € ˜Ÿ™Ð,�"€ °!·,±,×2HÑ2H€ rO   c              3  óh   K  — | ]*  }|j                   t        t        j                  «      k(  –— Œ, y ­wrD   )rY   r   r   ÚTensorrs   s     rM   rv   z0generate_out_args_from_schema.<locals>.<genexpr>Í   s"   è ø€ ÒWÀQ˜qŸv™v¬´&·-±-Ó)@Õ@ÑWùrw   é   rQ   ú!rW   )rX   rY   r[   )Úanyr^   rY   Úis_tensor_likeÚlenr   r]   Úflat_allÚstringÚascii_lowercaseÚallÚ	enumerater   r   ÚparseÚappendr   r[   )rF   ru   Útensorlike_retsÚused_annotationsÚxÚvalid_annotationsÚall_rets_are_tensorsrn   rm   ÚiÚnew_outÚnew_rets               rM   rj   rj   »   s¡  € ô
 ñ ØDHÇLÁLôô ð ð ð #'§,¡,ÖJ˜Q°!·&±&×2GÑ2GÕ2I’qÐJ€OÐJÜˆÓ !Ò#Ð#Ð#ä ÙHØ�‰×ÑóÐô %+×$:Ñ$:ÖX˜q¸aÐGWÒ>WšÐXÐÐXäÑWÈ$Ï,É,ÔWÓWÐà#%€Lð !#€KÜ˜$Ÿ,™,Ó'ò "‰ˆˆ1Ø�6‰6× Ñ Ô"ÜÜ! $§,¡,Ó/°1Ò4‘U¸CÀ¸s¸)Ø—V‘VØÜ%×+Ñ+Ð/@ÀÑ/CÐ.DÀAÐ,FÓGô	ˆGð ×Ñ Ô(Ú#ô !Ø G§L¡L¸W×=OÑ=Oô�ð ×"Ñ" 7Õ+à×Ñ˜qÕ!ð#"ð$ ˜Ð$Ð$ùòE Kùò Ys   ­F)ÁF)Â	F.Â F.c                óL  — | j                  «       t        j                  k(  sJ ‚t        | «      \  }}t	        | j
                  j                  «       j                  t        | j
                  j                  «      «      | j                  j                  |«      t        |«      ¬«      S rh   )rH   r   Úmutablerj   r   rX   ra   rb   rU   rT   r]   rd   rk   rl   s      rM   Úmutable_to_out_signaturer”   î   sƒ   € à�9‰9‹;œ*×,Ñ,Ò,Ð,Ð,ô !>¸dÓ CÑ€K�äØ�Y‰Y×%Ñ%Ó'×5Ñ5Ü2°4·9±9×3JÑ3JÓKó
ð —.‘.×.Ñ.¨|Ó<Ü�kÓ"ôð rO   c                óÌ  — ddl m} |t        j                  k(  �r| j                  j                  «       t        j                  k7  sJ ‚| j                  j                  d¬«      j                  t        t        | j                  j                  j                  j                  d| j                  j                  j                  j                  | j                  j                  «       t        j                  k(  ¬«      | j                  j                  j                  ¬«      «      }nì|t        j                  k(  rÎ| j                  j                  «       t        j                   k(  rt#        | j                  «      }n˜| j                  j                  «       t        j                  k(  rt%        | j                  «      }nW| j                  j                  «       t        j                  k(  rt'        | j                  «      }nt)        d«      ‚t)        d	«      ‚|j                  «       t        j                  k(  r|j                  j+                  «       n|j                  |«      }| j                  j-                  «       r|d
z  }t.        j0                  |j                  t3        |dt4        ¬«      ii}dht7        | j8                  h d£z  «      z  }t;        d&i d|“d| j<                  “dt>        j@                  h“dd“dd “dd “dd “dg “di “dd“dd“dd “dd “dd“dtB        jD                  “d| jF                  “dt7        «       “d| jH                  “d d“d!d“d"d“d#d“d$|“d%| jJ                  “Ž|fS )'Nr   )ÚcppT)Úkeep_return_namesF)Úbaser_   Údunder_methodÚfunctional_overload)rX   rT   z^We only bother generating out= functions from either inplace or mutable or functional variantszDWe currently only generate either functional or out= NativeFunctionsÚ_symint)ÚkernelÚ
structuredÚcpp_namespaceÚ	generated>   Ú	view_copyÚpt2_compliant_tagÚnondeterministic_seededrF   Ú!use_const_ref_for_mutable_tensorsÚvariantsr�   Ústructured_delegateÚstructured_inheritsÚprecomputedÚautogenÚufunc_inner_loopÚmanual_kernel_registrationÚmanual_cpp_bindingÚpython_moduleÚcategory_overrideÚdevice_guardÚdevice_checkÚlocÚcpp_no_default_argsÚis_abstractÚ&has_composite_implicit_autograd_kernelÚ4has_composite_implicit_autograd_nested_tensor_kernelÚ&has_composite_explicit_autograd_kernelÚ5has_composite_explicit_autograd_non_functional_kernelÚtagsÚ	namespacerS   )&Útorchgen.apir–   r   ri   rF   rH   rG   Ú	with_namer   r   rX   r˜   r™   r“   rT   rQ   r_   rf   r”   ro   ÚAssertionErrorÚunambiguous_nameÚ
has_symintr   ÚCompositeExplicitAutogradr   r   Úsetr·   r   r£   r   Úfunctionr   ÚNoCheckr°   r²   r¸   )rK   Úkr–   rF   Úkernel_nameÚbackend_metadatar·   s          rM   Úgenerate_functionrÅ     s4  € õ !àŒJ×!Ñ!Ó!Ø�v‰v�{‰{‹}¤
× 5Ñ 5Ò5Ð5Ð5ð �v‰v×Ñ°$ÐÓ7×AÑAÜÜ%ØŸ™Ÿ™×)Ñ)×.Ñ.Ø!Ø"#§&¡&§+¡+×"2Ñ"2×"@Ñ"@à()¯©¯©«¼×9KÑ9KÑ(Kôð  Ÿf™fŸk™k×7Ñ7ô	ó
‰ð 
Œj�n‰nÒ	ð �6‰6�;‰;‹=œJ×.Ñ.Ò.Ü(¨¯©Ó0‰DØ�V‰V�[‰[‹]œj×0Ñ0Ò0Ü+¨A¯F©FÓ3‰DØ�V‰V�[‰[‹]œj×3Ñ3Ò3Ü.¨q¯v©vÓ6‰Dä Øpóð ô ØRó
ð 	
ð �9‰9‹;œ*Ÿ.™.Ò(ð 	�	‰	×"Ñ"Ô$à�X‰X�d‹^ð ð
 	‡v�v×ÑÔØ�yÑ ˆä×-Ñ-Ø�I‰I”Ø"Ø Ü6ôð0
ðÐð ˆ=œ3Ø	�‰ÒNÑNóñ €Dô
 	ò 	
Ùð	
à./×.QÒ.Qð	
ô ×&Ñ&Ñ'ð		
ñ
 ð	
ñ !%ð	
ñ !%ð	
ñ ð	
ñ ð	
ñ  ð	
ñ (-ð	
ñ  %ð	
ñ ð	
ñ #ð	
ñ ð	
ô  )×0Ò0ð!	
ð" —’ð#	
ô$ !$¤ð%	
ð& Ÿšð'	
ñ( 49ð)	
ñ* BGð+	
ñ, 48ð-	
ñ. CHð/	
ñ4 ð5	
ð6 —k’kð7	
ð: 	ð=ð rO   c                ól  — t        | «      }|j                  «       D �]•  }t        j                  |v }t        j                  |v }t        j
                  |v }t        j                  |v }t        d„ |j                  «       D «       «      }|s|s|s|sŒut        d„ |j                  «       D «       «      }	t        d„ |j                  «       D «       «      }
t        d„ |j                  «       D «       «      }|	s|
s|r|sŒÞ|r†t        |j                  «       «      dk(  rjt        |t        j                     j                  j                  «      t        vr2t        dt        |t        j                     j                  «      › �«      ‚�Œf|r8t        |t        j                     j                  j                  «      t        v r�Œ |r|t        j
                     n<|r|t        j                     n'|r|t        j                     n|t        j                     }|j                  j!                  «       t        j                  k(  xs& t        d„ |j                  j"                  D «       «      }t        d„ |j$                  D «       «      }| xr |xr |}|sn|slt        |j                  j                  «      t&        vrGt        |j                  j                  «      t(        vr"t        d	t        |j                  «      › d
�«      ‚|rWt+        |t        j                  «      \  }}||t        j                  <   t-        j.                  ||«       | j1                  |«       |r�Œ9|s|s�Œ?t+        |t        j                  «      \  }}||t        j                  <   t-        j.                  ||«       | j1                  |«       �Œ˜ y )Nc              3  ó8   K  — | ]  }d |j                   v –— Œ y­w)ÚcoreN)r·   )rt   Úvariants     rM   rv   z1add_generated_native_functions.<locals>.<genexpr>Œ  s   è ø€ ÒG°�f §¡Ô,ÑGùs   ‚c              3  ó4   K  — | ]  }|j                   –— Œ y ­wrD   )r«   ©rt   rK   s     rM   rv   z1add_generated_native_functions.<locals>.<genexpr>–  s   è ø€ ÒF°a˜Q×1Õ1ÑFùó   ‚c              3  ó�   K  — | ]>  }|j                   xr, t        |j                  j                  j                  «      d k7  –— Œ@ y­w)Úset_N)Ú
is_view_opÚstrrF   rX   rË   s     rM   rv   z1add_generated_native_functions.<locals>.<genexpr>š  s9   è ø€ ò ØEF�—‘Ò@¤ Q§V¡V§[¡[×%5Ñ%5Ó!6¸&Ñ!@Ó@ñùs   ‚AAc              3  ó4   K  — | ]  }|j                   –— Œ y ­wrD   )r³   rË   s     rM   rv   z1add_generated_native_functions.<locals>.<genexpr>¡  s   è ø€ ò )Ø=>�×8Õ8ñ)ùrÌ   r~   zEFound an out= operator that we could not find any other variants of: c              3  óP   K  — | ]  }|j                   j                  «       –— Œ  y ­wrD   )rY   r�   rs   s     rM   rv   z1add_generated_native_functions.<locals>.<genexpr>Ó  s$   è ø€ ò MØ,-�—‘×%Ñ%×'ñMùs   ‚$&c              3  ó6   K  — | ]  }d t        |«      v –— Œ y­w)rQ   N)rÐ   )rt   Úop_names     rM   rv   z1add_generated_native_functions.<locals>.<genexpr>Û  s   è ø€ ÒQ°g˜E¤S¨£\Ô1ÑQùs   ‚zBFound an operator that we could not generate an out= variant for: zã.
This type of operators don't have tensor-like return, making it difficult to generate a proper out= variant. If
out= variant is not needed, please add the function name into FUNCTIONAL_OPS_THAT_CANNOT_GET_AN_OUT_VARIANT list.)rN   Úvaluesr   ri   r_   r“   rQ   r€   r†   r‚   rÐ   rF   rX   Ú&OUT_OPS_THAT_DONT_GET_GROUPED_PROPERLYr»   Ú*INPLACE_OPS_THAT_DONT_GET_GROUPED_PROPERLYrH   r^   r¨   Ú*MUTABLE_OPS_THAT_CANNOT_GET_AN_OUT_VARIANTÚ-FUNCTIONAL_OPS_THAT_CANNOT_GET_AN_OUT_VARIANTrÅ   r   Ú
grow_indexr‰   )ÚrsÚindicesrJ   rL   Úhas_functionalÚhas_inplaceÚhas_mutableÚhas_outÚis_coreÚ
are_manualÚhas_view_opsÚare_composite_implicitÚbase_fnÚbase_fn_validÚ	needs_outÚgets_out_variantÚfnÚmetadatas                     rM   Úadd_generated_native_functionsrë     sH  € ô $>¸bÓ#AÐ Ø)×0Ñ0Ó2ó qˆÜ#×.Ñ.°!Ð3ˆÜ ×(Ñ(¨AÐ-ˆÜ ×(Ñ(¨AÐ-ˆÜ—.‘. AÐ%ˆÜÑG¸A¿H¹H»JÔGÓGˆñ ™+©²NäÑF¸1¿8¹8»:ÔFÓFˆJô ñ ØJKÏ(É(Ë*ôó ˆLô &)ñ )ØBCÇ(Á(Ã*ô)ó &Ð"ñ ™\Ñ-CÉGØÙœ3˜qŸx™x›z›?¨aÒ/ô ˜œ*Ÿ.™.Ñ)×.Ñ.×3Ñ3Ó4ÜAñBô )Ø_Ô`cÐdeÔfp×ftÑftÑdu×dzÑdzÓ`{Ð_|Ð}óð ñ ñ
 Ü˜œ*×,Ñ,Ñ-×2Ñ2×7Ñ7Ó8Ü=ñ>ñ ñ ð ”*×$Ñ$Ò%ñ ð ”z×)Ñ)Ò*ñ ð ”z—~‘~Ò&à”z×,Ñ,Ñ-ð ð" $ŸL™L×-Ñ-Ó/´:×3EÑ3EÑEò Ìñ MØ18·±×1EÑ1EôMó JˆMô ÑQÀÇÁÔQÓQˆIØ#*˜{ÒJ¨}ÒJÀÐÙ¡=ä˜Ÿ™×)Ñ)Ó*ÜEñFä˜GŸL™L×-Ñ-Ó.ÜHñIô )Ø^Ô_bÐcj×coÑcoÓ_pÐ^qð rrð uóð ñ  Ü0°¼*¿.¹.ÓI‘��HØ$&�”*—.‘.Ñ!Ü×'Ñ'¨°Ô:Ø—	‘	˜"”ó
 "¡wÓ2BÜ0°¼*×:OÑ:OÓP‘��HØ+-�”*×'Ñ'Ñ(Ü×'Ñ'¨°Ô:Ø—	‘	˜"–ñcqrO   c                óò   — t        | «      t        |«      k(  sJ ‚t        | «      dk(  ryt        | «      dk(  r	d|d   › d�S dt        j                  | «      j                  «       › ddj	                  |«      › d�S )	Nr   Ú r~   zreturn ú;ú(ú, ú);)r‚   Ú
dispatcherÚreturns_typeÚcpp_typeÚjoin)ÚretsÚnamess     rM   Ú
return_strrø   û  sy   € Üˆt‹9œ˜E›
Ò"Ð"Ð"Ü
ˆ4ƒy�A‚~ØÜ	ˆT‹�aŠØ˜˜q™˜
 !Ð$Ð$àœ×0Ñ0°Ó6×?Ñ?ÓAÐBÀ!ÀDÇIÁIÈeÓDTÐCUÐUWÐXÐXrO   c                ó¾   — | j                  «       }g }t        | j                  «      dkD  }t        |«      D ]$  \  }}|�Œ	|j	                  |r	d|› d|› d�n|«       Œ& |S )Nr~   ú	std::get<ú>(ú))Úaliased_return_namesr‚   r^   r‡   r‰   )rF   Úout_varÚaliased_retsÚnon_aliased_namesÚis_out_var_a_tupler�   ru   s          rM   Úgather_nonaliased_inner_retsr    ss   € Ø×,Ñ,Ó.€LØÐÜ˜TŸ\™\Ó*¨QÑ.ÐÜ˜,Ó'ò ‰ˆˆ1Ø‰9Ø×$Ñ$Ù/A�)˜A˜3˜b  	¨Ñ+Àwõðð
 ÐrO   c                ó¦  — d| j                   j                  vry | j                  �%d| j                  j                  vr| j                  }nY| j                  �%d| j                  j                  vr| j                  }n(t	        t        | j                   j                  «      «      ‚t        | j                   j                  «      }t        |j                  «      }g }g }g }t        t        j                  | j                   j                  «      t        j                  |j                  «      «      D ]Þ  \  }}|j                  �©|j                  j                  r“|j                  d|j                  › d|j                  › d�«       |j                  t        |j                  › d�t        j                   ||j                  ¬«      ¬«      «       |j                  |j                  › d�«       Œ»|j                  t        j"                  |«      «       Œà dj%                  t'        ||j)                  «       «      D �	cg c]  }	|	j*                  ‘Œ c}	«      }
d	}t-        |j                  j.                  «      d
kD  rd|› d�nd}t1        |j                  |«      }t3        | j                   j                  j.                  ||z   «      }dj%                  |«      }d|j5                  |j                  «       | j6                  j                  j9                  «       rdndz   ¬«      › d|› d|› d|j                  j                  j;                  «       › d|
› d|› d�S c c}	w )NrŸ   zauto z_clone = clone_arg(rñ   Ú_clone)Úbinds)ÚexprrY   rð   Úoutputr   z = rí   ú
r›   ©rX   z {
  ú
  z
at::_ops::ú::call(ú);
  ú
}
)ri   r·   r_   r“   r»   rÐ   rF   r   Úziprò   Újit_argumentsr[   rr   r‰   rX   r	   Úargument_typere   rõ   r   r]   r  r‚   r^   r  rø   ÚdefnrQ   r½   r¼   )ÚgÚtarget_fÚsigÚ
target_sigÚcontextÚclone_mutable_inputsÚcloned_return_namesÚa_currÚa_tgtÚeÚexprsÚout_nameÚmaybe_assignÚinner_return_namesÚret_strÚclone_mutable_inputs_strs                   rM   Úgen_composite_functional_kernelr"    sÏ  € ð ˜!Ÿ,™,×+Ñ+Ñ+Øà‡y�yÐ °A·I±I·N±NÑ!BØ—9‘9‰Ø	
�‰Ð	 ;°a·i±i·n±nÑ#DØ—9‘9‰ô œS §¡×!2Ñ!2Ó3Ó4Ð4ä
˜aŸl™l×/Ñ/Ó
0€CÜ$ X§]¡]Ó3€Jà$&€GØÐØÐô Ü× Ñ  §¡×!2Ñ!2Ó3Ü× Ñ  §¡Ó/óò 8‰ˆ�ð ×ÑÐ'¨E×,<Ñ,<×,EÒ,EØ ×'Ñ'Ø˜Ÿ™�}Ð$7¸¿¹°}ÀBÐGôð �N‰NÜØ"ŸK™K˜=¨Ð/Ü#×1Ñ1°&ÀÇÁÔLôôð  ×&Ñ&¨&¯+©+¨°fÐ'=Õ>à�N‰Nœ:×.Ñ.¨vÓ6Õ7ð#8ð$ �I‰I¤y°¸*×:NÑ:NÓ:PÓ'QÖR !�q—v“vÒRÓS€Eà€HÜ,/°·±×0EÑ0EÓ,FÈÒ,J�U˜8˜* CÑ(ÐPR€LÜ5°h·m±mÀXÓNÐÜØ	�‰×Ñ×!Ñ!Ð#5Ð8KÑ#Kó€Gð  $Ÿy™yÐ)=Ó>ÐðØ‡�ˆs�x‰x‹z¨!¯%©%¯*©*×*?Ñ*?Ô*A™YÀrÑJ€ÓKÐ Lð MØÐð Ø€.�
˜8Ÿ=™=×-Ñ-×>Ñ>Ó@ÐAÀÈÈð PØ
€)ð ð	ð ùò Ss   È6Mc                óŒ  — d| j                   j                  vry t        | j                   j                  «      }t        | j                  j                  «      }dj                  t        |j                  «       |j                  «       «      D �cg c]  }|j                  ‘Œ c}«      }g }d}t        | j                   j                  j                  j                   «      D ]n  \  }}t        | j                  j                  j                  «      dk(  r|nd|› d|› d�}	|j                  d|j                  › d|	› d	|j                  › d|	› d
�	«       Œp g }
t        | j                   j                  j                  «       «      D ]a  \  }}|�|
j                  |«       Œt        | j                  j                  j                  «      dk(  r|nd|› d|› d�}	|
j                  |	«       Œc dj                  |«      }d|j                  | j                   j                  j                  j!                  «       | j                   j                  j#                  «       rdndz   ¬«      › d|› d| j                  j                  j                  j!                  «       › d|› d|› dt%        | j                   j                  j                  |
«      › d�S c c}w )NrŸ   rð   Ú
tmp_outputr~   rú   rû   rü   z  resize_out_helper(z);
  copy_arg(rñ   r  r›   rí   r	  z
 {
  auto z = at::_ops::r  r  r
  r  )rQ   r·   r   rF   ri   rõ   r   r]   r  r‡   r‚   r^   r‰   rX   rý   r  r¼   r½   rø   )r  r  r  r  r  Ú	copy_outsr  r�   Úout_argÚfunctional_return_namerö   Úret_nameÚcopy_outs_strs                rM   Úgen_composite_out_kernelr*  T  sƒ  € ð ˜!Ÿ%™%Ÿ*™*Ñ$Øô ˜aŸe™eŸj™jÓ
)€CÜ$ Q§\¡\×%6Ñ%6Ó7€Jà�I‰IÜ" 3§=¡=£?°J×4HÑ4HÓ4JÓKÖL�Aˆ�‹ÒLó€Eð €IØ€HÜ §¡§
¡
× 4Ñ 4× 8Ñ 8Ó9ò 

‰
ˆˆ7ô �1—<‘<×$Ñ$×,Ñ,Ó-°Ò2ñ à˜Q˜C˜r ( ¨1Ð-ð 	ð
 	×ÑðØ—\‘\�N "Ð%;Ð$<ð =Ø�L‰Lˆ>˜Ð2Ð3°2ð9õ	
ð

ð €Dô ! §¡§¡×!@Ñ!@Ó!BÓCò 	0‰ˆˆ8ØÐØ�K‰K˜Õ!ô �q—|‘|×(Ñ(×0Ñ0Ó1°QÒ6ñ à    2 h Z¨qÐ1ð #ð
 �K‰KÐ.Õ/ð	0ð —I‘I˜iÓ(€MðØ‡�ˆq�u‰u�z‰z�‰×/Ñ/Ó1À!Ç%Á%Ç*Á*×BWÑBWÔBY±YÐ_aÑb€ÓcÐ dð eØ€z�˜qŸ|™|×0Ñ0×5Ñ5×FÑFÓHÐIÈÐQVÐPWð XØ€/ð Üˆa�e‰e�j‰j× Ñ  $Ó'Ð(ð )ð	ð ùòG 	Ms   ÂK)rI   zSequence[NativeFunction]Úreturnz6dict[FunctionSchema, dict[SchemaKind, NativeFunction]])rT   ú
str | Noner+  rÐ   )rF   r   r+  r   )rF   r   r+  z#tuple[list[Return], list[Argument]])rK   r   rÂ   r   r+  zMtuple[NativeFunction, dict[DispatchKey, dict[OperatorName, BackendMetadata]]])rÛ   zlist[NativeFunction]rÜ   z6dict[DispatchKey, dict[OperatorName, BackendMetadata]]r+  ÚNone)rö   ztuple[Return, ...]r÷   ú	list[str]r+  rÐ   )rF   r   rþ   rÐ   r+  r.  )r  r   r+  r,  )8Ú
__future__r   r„   Úcollectionsr   Útypingr   Útorchgen.api.dispatcherÚapirò   Útorchgen.api.translater   Útorchgen.api.typesr   r   r	   Útorchgen.contextr
   Útorchgen.modelr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Útorchgen.utilsr   Úcollections.abcr   rÖ   rØ   rÙ   r×   rN   rU   rf   ro   rj   r”   rÅ   rë   rø   r  r"  r*  rS   rO   rM   ú<module>r:     s=  ðÝ "ã Ý #Ý  ç ,Ð ,Ý ,ß AÑ AÝ 1÷÷ ÷ ÷ õ õ& %ñ Ý(ð .ð 'ð*Ð &ð àð	.Ð *ò%1Ð -ðZ ð.Ð *ð
(Ø.ð
(à;ó
(óBóóBð*+%Ø
ð+%à(ó+%ófðFcØðcØ$ðcàRócð\yØðyàCðyð 
óyóxYó	ð ò9ó ð9ð| ò6ó ñ6rO   