+
    ˜°³jt  ã                  óø  € ^ RI Ht ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RI	H
u Ht ^ RIHtHtHtHtHtHt ^ RIHt ^ RIHtHtHtHtHtHtHtHt ^ R	IHt ^ R
I H!t! ^ RI"H#t#H$t$H%t%H&t&H't'H(t(H)t)H*t*H+t+ R R lt,R R lt-R R lt.R R lt/R R lt0]! RR7       ! R R]4      4       t1]! RR7       ! R R]14      4       t2]! RR7       ! R R4      4       t3 ! R R4      t4]! RR7       ! R  R!4      4       t5R" R# lt6R# )$é    )ÚannotationsN)ÚABC)Ú	dataclass)ÚAny)Ú	getValueTÚisValueTypeÚLazyArgumentÚLazyIrPropertiesÚLazyIrSchemaÚtensorListValueT)Ú	translate)Ú	BaseCTypeÚBindingÚdeviceTÚDispatcherSignatureÚkernel_signatureÚNativeSignatureÚOptionalCTypeÚVectorCType)Úmethod_with_native_function)Úts_lowering_body)	ÚArgumentÚBackendIndexÚBackendMetadataÚBaseTyÚBaseTypeÚFunctionSchemaÚListTypeÚNativeFunctionÚNativeFunctionsGroupc               ó    € V ^8„  d   QhRRRR/# )é   Úargr	   ÚreturnÚstr© )Úformats   "ÚV/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchgen/dest/lazy_ir.pyÚ__annotate__r)   +   s   € ÷ 8!ñ 8! \ð 8!°cñ 8!ó    c                ó„  € \        V P                  4      '       EdG   \        V P                  \        4      '       d‚   V P                  '       d   RV P
                   2# V P                  P                  \        J d   RV P
                   R2# V P                  '       d   RV P
                   R2# RV P
                   R2# \        V P                  \        4      '       dm   V P                  '       d   V P
                   RV P
                   R2# V P                  '       d   RV P
                   2# RV P
                   R	V P
                   R
2# \        RV P                   R24      h\        V P                  \        4      '       dr   V P                  P                  \        \        P                   4      8X  d@   V P"                  '       d   RV P
                   R2# RV P
                   RV P
                   R2# \        V P                  \$        4      '       di   \        V P                  P                  \        4      '       d?   RV P                  P                  P                   RV P
                   RV P
                   R2# \        V P                  \        4      '       dš   \        V P                  P                  \$        4      '       dp   \        V P                  P                  P                  \        4      '       d<   RV P                  P                  P                  P                   RV P
                   R2# V P
                   # )z
Given a LazyArgument,
generate a c++ string for materializing an rvalue of that arg for passing into
a lazy Node constructor.
Únode_Úlazy_Ú_tensorlistzGetSymIntValue(Ú)z->GetIrValue()z& ? std::make_optional(GetSymIntValue(*z)) : ::std::nulloptz ? std::make_optional(lazy_z ->GetIrValue()) : ::std::nulloptú=TODO not sure if there are other valid types to handle here (zGetSymIntArrayRefValue(zstd::vector<int64_t>(z
.begin(), z.end())ústd::vector<ú>(ztorch::lazy::ToOptionalVector<)r   Ú	lazy_typeÚ
isinstancer   Úis_wrapped_scalarÚnameÚtyper   Úis_symint_or_listr   ÚAssertionErrorÚ	orig_typer   Úelemr   r   ÚSymIntÚsymintr   )r#   s   &r(   Únode_ctor_arg_rvalue_stringr>   +   s™  € ô �3—=‘=×!Ó!Ü�c—m‘m¤Y×/Ò/Ø×$×$Ð$Ø˜sŸx™x˜jÐ)Ð)Ø—‘×#Ñ#Ô'7Ó7Ø˜sŸx™x˜j¨Ð4Ð4Ø×&×&Ð&Ø(¨¯©¨
°!Ð4Ð4Ø˜3Ÿ8™8˜* NÐ3Ð3Ü˜Ÿ™¤}×5Ò5Ø×$×$Ð$ð Ÿ(™(˜Ð#IÈ#Ï(É(ÈÐSfÐgÐgØ×&×&Ð&Ø˜sŸx™x˜jÐ)Ð)à˜Ÿ™�zð "+Ø+.¯8©8¨*ð 5!ð!ðô !ØOÐPS×P]ÑP]ÈÐ^_Ð`óð ô �c—m‘m¤X×.Ò.°3·=±=×3EÑ3EÌÜ�M‰MóJ
ô 4
ð �z�zˆzØ0°·±°
¸!Ð<Ð<à.¨s¯x©x¨j¸
À3Ç8Á8À*ÈGÐTÐTÜ˜Ÿ™¤{×3Ò3¼
Ø�M‰M×Ñ¤	÷9
ò 9
ð " #§-¡-×"4Ñ"4×"9Ñ"9Ð!:¸"¸S¿X¹X¸JÀjÐQT×QYÑQYÐPZÐZaÐbÐbä�s—}‘}¤m×4Ò4Ü˜3Ÿ=™=×-Ñ-¬{×;Ò;Ü˜3Ÿ=™=×-Ñ-×2Ñ2´I×>Ò>à3°C·M±M×4FÑ4F×4KÑ4K×4PÑ4PÐ3QÐQSÐTW×T\ÑT\ÐS]Ð]^Ð_Ð_à—h‘h�ZÐ r*   c               ó    € V ^8„  d   QhRRRR/# ©r"   Úschemar   r$   r%   r&   )r'   s   "r(   r)   r)   f   s   € ÷ 'ñ '˜\ð '¨cñ 'r*   c                ó~   € V P                  4        Uu. uF  p\        V4      NK  	  ppRP                  V4      # u upi )z_
Produce a formatted string with the arguments as passed into the constructor of a node class.
ú, )Úfiltered_argsr>   Újoin)rA   r#   Únode_ctor_valuess   &  r(   Únode_ctor_inputsrG   f   sG   € ð
 5;×4HÑ4HÔ4JóÙ4J¨SÔ# CÖ(Ñ4Jð ð ð �9‰9Ð%Ó&Ð&ùòs   “:c               ó(   € V ^8„  d   QhRRRRRRRR/# )r"   rA   r   Úsigú%DispatcherSignature | NativeSignatureÚoverload_namer%   r$   r&   )r'   s   "r(   r)   r)   p   s0   € ÷ ñ Øðà	.ðð ðð 	ñ	r*   c                ó„  € \         P                  ! V P                  4      p\        VP	                  4       VP	                  4       4      pRP                  V Uu. uF  qUP                  NK  	  up4      p\        V4      '       d   RV P                   RV R2pMRV P                   R2pR\        V 4       RV RV R	2# u upi )
zC
Generate code that falls back to eager conditioned on a predicate
z,
                z	ATEN_OP2(rC   r/   zATEN_OP(z"
        if (force_eager_fallback(zQ)) {
            return at::native::call_fallback_fn_symint<&ltc_eager_fallback, z>::call(
                z
            );
        }
)
r   Úfrom_schemaÚfuncr   Ú	argumentsrE   ÚexprÚlenÚ	aten_nameÚaten_symbol)rA   rI   rK   Údispatcher_sigÚexprsÚaÚfallback_argsÚaten_op_strs   &&&     r(   Úgen_fallback_coderY   p   sÊ   € ô )×4Ò4°V·[±[ÓA€NÜ�c—m‘m“o ~×'?Ñ'?Ó'AÓB€EØ)×.Ñ.ÁÓ/FÁ¸1·´ÁÑ/FÓG€MÜ
ˆ=×ÒØ! &×"2Ñ"2Ð!3°2°m°_ÀAÐF‰à  ×!1Ñ!1Ð 2°!Ð4ˆð"Ü"-¨fÓ"5Ð!6ð 7MØMXÈMð ZØ�ð  ðð ùò 0Gs   ÁB=c               ó    € V ^8„  d   QhRRRR/# r@   r&   )r'   s   "r(   r)   r)   ˆ   s   € ÷ 
 ñ 
 ˜ð 
 ¨ñ 
 r*   c                óÂ   € R 0pV P                   V9   d   RV P                    R2# V P                   P                  R4      '       g   RV P                    2# V P                   # )Úsigmoid_backwardz#c10::Symbol::fromQualString("aten::z")zat::z
at::aten::)rR   Ú
startswith)rA   Úmissing_interned_stringss   & r(   rS   rS   ˆ   sk   € àð Ðð ×ÑÐ3Ô3Ø4°V×5EÑ5EÐ4FÀbÐIÐIà×Ñ×&Ñ& v×.Ò.Ø˜F×,Ñ,Ð-Ð.Ð.à×ÑÐr*   c               ó    € V ^8„  d   QhRRRR/# )r"   rI   r   r$   ztuple[str, list[Binding]]r&   )r'   s   "r(   r)   r)   ˜   s   € ÷ +ñ +Ð!4ð +Ð9Rñ +r*   c                ó¼  € . p. pV P                  4        F±  p\        VP                  \        4      '       d~   VP                  P                  P                  4       '       dT   VP                   R 2pVP                  RV RVP                   R24       VP                  VP                  V4      4       K   VP                  V4       K³  	  RP                  V4      pWQ3# )Ú_metazauto z = to_meta(ú);ú	
        )
rO   r4   Úargumentr   r7   Úis_tensor_liker6   ÚappendÚ	with_namerE   )rI   ÚcontextÚunwrapped_tensor_argsr#   Úunwrapped_nameÚunwrap_tensor_args_strs   &     r(   Úconvert_to_meta_tensorsrl   ˜   s»   € Ø€GØ')ÐØ�}‰}ŽˆÜ�c—l‘l¤H×-Ò-°#·,±,×2CÑ2C×2RÑ2R×2TÒ2TØ #§¡˜z¨Ð/ˆNØ!×(Ñ(Ø˜Ð' {°3·8±8°*¸BÐ?ôð �N‰N˜3Ÿ=™=¨Ó8Ö9à�N‰N˜3Öñ ð *×.Ñ.Ð/DÓEÐØ!Ð*Ð*r*   T)Úfrozenc                  ó’   € ] tR t^¨t$ R]R&   R]R&   R]R&   R]R&   ]R R	 l4       tR
 R ltR R ltR R lt	R R lt
R R ltRtR# )Ú	GenLazyIRr   Úbackend_indexr%   Úbackend_nameÚ	node_baseÚboolÚuse_lazy_shapec               ó    € V ^8„  d   QhRRRR/# )r"   Úfz%NativeFunctionsGroup | NativeFunctionr$   ú	list[str]r&   )r'   s   "r(   r)   ÚGenLazyIR.__annotate__°   s   € ÷  ñ  Ð?ð  ÀIñ  r*   c                	óZ  € \        V\        4      '       d   VP                  P                  MVP                  pV P                  P                  \        V\        4      '       d   VP                  MT4      p\        Y#R J;'       d    VP                  4       R7      pV P                  V4      # )N©r=   )	r4   r    Ú
functionalrN   rp   Ú
get_kernelr   Úsupports_symintÚgen)Úselfrv   rN   ÚmetadatarA   s   &&   r(   Ú__call__ÚGenLazyIR.__call__¯   s†   € ä$.¨qÔ2F×$GÒ$Gˆq�|‰|× Ò ÈQÏVÉVˆØ×%Ñ%×0Ñ0Ü& qÔ*>×?Ò?ˆA�LŠLÀQó
ˆô Ø¨Ð-×LÐL°(×2JÑ2JÓ2Lô
ˆð �x‰x˜ÓÐr*   c               ó    € V ^8„  d   QhRRRR/# r@   r&   )r'   s   "r(   r)   rx   ¼   s   € ÷ ñ ¨ð ¸ñ r*   c                	ó   € R # ©Ú r&   )r   rA   s   &&r(   Úlowering_functionÚGenLazyIR.lowering_function¼   ó   € Ùr*   c               ó$   € V ^8„  d   QhRRRRRR/# ©r"   rA   r   Únode_ctor_argsr%   r$   r&   )r'   s   "r(   r)   rx   ¿   s!   € ÷ ñ  lð ÀCð ÈCñ r*   c                	ó   € R # r…   r&   ©r   rA   rŒ   s   &&&r(   Úcreate_functionÚGenLazyIR.create_function¿   r‰   r*   c               ó$   € V ^8„  d   QhRRRRRR/# r‹   r&   )r'   s   "r(   r)   rx   Â   s"   € ÷ 
ñ 
¨\ð 
È3ð 
ÐSVñ 
r*   c                	ó   € R V R2# )úbool CanBeReused(z!) const {
    return false;
    }r&   rŽ   s   &&&r(   Úcan_be_reused_functionÚ GenLazyIR.can_be_reused_functionÂ   s   € Ø$ ^Ð$4ð 5ð 
ð 	
r*   c               ó    € V ^8„  d   QhRRRR/# r@   r&   )r'   s   "r(   r)   rx   Ç   s   € ÷ (6ñ (6¨,ð (6¸3ñ (6r*   c                	ó–  € VP                  R RR7      p. pV Fž  p\        VP                  \        \        34      '       d   VP                  VP                   4       KG  \        VP                  \        4      '       d!   VP                  VP                   R24       K‡  \        RVP                   R24      h	  RP                  V4      pVP                  RR R7      pVP                  P                  '       d   RpMñVP                  P                  '       dV   V Uu. uF  qˆP                  NK  	  p	pV	P                  R V 4       4       R	VP                   R
RP                  V	4       R2pM€VP                  P                  '       dc   \        \!        V4      4       U
u. uF	  p
RV
 R2NK  	  p	p
V	P                  R V 4       4       RVP                   R
RP                  V	4       R2pMRpRP                  R V 4       4      pV P"                   RVP$                   RV RV R\!        VP&                  4       RV R2# u upi u up
i )TF©ÚvaluesÚscalarsú.value_or(kNullValue)zUnsupported type (z) - add support if necessaryrC   zstd::move(shapes),c              3  ó8   "  € T F  qP                   x € K  	  R # 5i©N©r6   ©Ú.0rV   s   & r(   Ú	<genexpr>Ú0GenLazyIR.node_base_ctor_call.<locals>.<genexpr>ß   ó   é € Ð:©k¨Ÿfžf«kùó   ‚Úcompute_shape_Ú(z),zoperand(r/   c              3  ó8   "  € T F  qP                   x € K  	  R # 5ir�   rž   rŸ   s   & r(   r¡   r¢   ã   r£   r¤   z[&](){ return compute_shape_z)[0]; },r†   c              3  ó:   "  € T F  qP                    x € K  	  R # 5ir�   rž   rŸ   s   & r(   r¡   r¢   è   s   é € Ð!C±{°!§V¡V H¤+³{ùs   ‚z(
              z&::ClassOpKind(),
              OpList{z},
              z!
              /* num_outputs */ z#,
              torch::lazy::MHash(ú)))rD   r4   r3   r   r   rf   r6   r   r9   rE   Ú
propertiesÚShapePrecomputeÚShapeComputeÚextendÚ
ShapeCacheÚrangerQ   rr   Ú	node_nameÚreturns)r   rA   Ú
value_argsÚbase_ctor_value_args_listr#   Úbase_ctor_value_argsÚscalar_argsÚshape_ctor_argrV   Ú
shape_argsÚiÚscalar_hashess   &&          r(   Únode_base_ctor_callÚGenLazyIR.node_base_ctor_callÇ   s+  € Ø×)Ñ)°¸uÐ)ÓEˆ
ð %'Ð!ÛˆCÜ˜#Ÿ-™-¬)´[Ð)A×BÒBØ)×0Ñ0°C·H±H°:Ö?Ü˜CŸM™M¬=×9Ò9Ø)×0Ñ0°C·H±H°:Ð=RÐ1SÖTä$Ø(¨¯©¨Ð7SÐTóð ñ ð  $Ÿy™yÐ)BÓCÐà×*Ñ*°%ÀÐ*ÓFˆð ×Ñ×,×,Ð,Ø1‰NØ×Ñ×+×+Ð+Ù*4Ó5©* QŸ&œ&©*ˆJÐ5Ø×ÑÑ:©kÓ:Ô:Ø-¨f¯k©k¨]¸!¸D¿I¹IÀjÓ<QÐ;RÐRTÐU‰NØ×Ñ×)×)Ð)Ü38¼¸Z»Ô3IÓJÑ3I¨a˜H Q C q›/Ñ3IˆJÐJØ×ÑÑ:©kÓ:Ô:Ø<¸V¿[¹[¸MÈÈ4Ï9É9ÐU_ÓK`ÐJaÐajÐk‰NàˆNàŸ	™	Ñ!C±{Ó!CÓCˆà—N‘NÐ#ð $Ø×ÑÐ ð !Ø+Ð,ð -ØÐð !Ü!$ V§^¡^Ó!4Ð 5ð 6"Ø"/ °ð6ð 	6ùò 6ùò Ks   ÄIÆ Ic               ó    € V ^8„  d   QhRRRR/# )r"   rA   r   r$   rw   r&   )r'   s   "r(   r)   rx   ñ   s   € ÷ `
ñ `
˜,ð `
¨9ñ `
r*   c                	óf  € VP                   ;'       g    \        V4      pVP                  4       pVP                  R RR7      pV Uu. uF-  pRVP                  P	                  4        RVP
                   2NK/  	  ppRP                  V4      pV P                  '       d.   VP                  P                  '       d   VP                  R4       RP                  V4      pRP                  V U	u. uFg  p	V	P                  P	                  4       R8X  d*   V	P
                   R	V	P
                   R
V	P
                   R2MV	P
                   R	V	P
                   R2NKi  	  up	4      p
\        V
4      '       d   RV
 2p
RP                  V U	u. uF‹  p	V	P                  P	                  4       R8X  d   RV	P
                   R2MXV	P                  P	                  4       R8X  d   RV	P
                   R2M)V	P                  P	                  4        RV	P
                   R2NK�  	  up	4      pVP                  RR R7       Uu. uF1  p\        VP                  \        4      '       g   K%  VP
                  NK3  	  ppRP                  V Uu. uF	  pRV R2NK  	  up4      pRP                  V Uu. uF  pRV RV R2NK  	  up4      p. pV F°  p\        VP                  \        4      '       db   VP
                   R2pVP                  '       d   RpVP                  RVP
                   RVP
                   RV RVP
                   R2	4       K„  VP                  RVP
                   RVP
                   R24       K²  	  RP                  V4      pR VP                   R!V P                    R"V R#VP                   R	V R$V P#                  V4       V
 R%V R&V P                    R'V R(V P%                  W4       R)V P'                  W4       R)V P)                  V4       R)V RV R*2.# u upi u up	i u up	i u upi u upi u upi )+FTr˜   zconst z& rC   z(std::vector<torch::lazy::Shape>&& shapesz
,
        z!::std::optional<c10::string_view>r¦   z1.has_value() ? ::std::make_optional(std::string(*z)) : ::std::nullopt)r/   z
  zc10::string_viewzstd::string Ú;z::std::optional<std::string> Ú z	bool has_z: 1;z
    Úhas_z = !!z.value()z"torch.Generator()"zif (z.has_value()) {
      ss << ", z=" << z;
    } else {
      ss << ", z=null";
    }z	ss << ", zclass z
 : public zX {
 public:
  static torch::lazy::OpKind ClassOpKind() {
    return torch::lazy::OpKind(z
);
  }

  z
)
      : z	
  {
    zT
  }

  std::string ToString() const override {
    std::stringstream ss;
    ss << z::ToString();
    z(
    return std::move(ss).str();
  }

  z

  z

};

)ÚopkindrS   rD   r3   Úcpp_typer6   rE   rt   rª   r«   rf   rQ   r4   r   Úis_generatorr°   rr   rº   r�   r”   r‡   )r   rA   rÁ   Úall_argsrµ   r¸   Ú	ctor_argsÚreuse_ctor_argsrŒ   rV   Úscalar_initializersÚscalar_declsr#   Úoptional_valuesÚvalueÚhas_optional_declsÚhas_optional_defsÚmembers_to_stringÚmembers_to_string_strs   &&                 r(   r~   ÚGenLazyIR.genñ   s�  € Ø—‘×5Ð5¤+¨fÓ"5ˆð ×'Ñ'Ó)ˆØ×*Ñ*°%ÀÐ*ÓFˆáJRÓSÉ(ÀQ�v˜aŸk™k×2Ñ2Ó4Ð5°R¸¿¹°xÓ@É(ˆ	ÐSØŸ)™) IÓ.ˆØ××Ð 6×#4Ñ#4×#D×#DÐ#DØ×ÑÐGÔHØŸ™ 9Ó-ˆà+×0Ñ0ñ %óñ
 %�Að —;‘;×'Ñ'Ó)Ð-PÔPð —6‘6�(˜!˜AŸF™F˜8Ð#TÐUV×U[ÑU[ÐT\Ð\pÑqàŸ™�x˜q §¡ ¨Ð*ò+ñ %ñó
Ðô Ð"×#Ò#Ø$/Ð0CÐ/DÐ"EÐØ—{‘{ñ %óñ %�Að	 —;‘;×'Ñ'Ó)Ð-?Ô?ð ˜qŸv™v˜h aÑ(ð —;‘;×'Ñ'Ó)Ð-PÔPð 5°Q·V±V°H¸AÑ>àŸ™×,Ñ,Ó.Ð/¨q°·±°¸Ð:ò	;ñ
 %ñó	
ˆð ×+Ñ+°4ÀÐ+ÔGó
áG�Ü˜#Ÿ-™-¬×7ô ˆC�HŒHÙGð 	ð 
ð
 $Ÿ[™[Ù2AÓB±/¨ˆy˜˜˜tÓ$±/ÑBó
Ðð %ŸM™MÙ6EÓF±o¨Uˆt�E�7˜% ˜w aÓ(±oÑFó
Ðð ÐÛˆCÜ˜#Ÿ-™-¬×7Ò7ØŸ8™8˜* HÐ-�Ø×#×#Ð#Ø1�EØ!×(Ñ(Ø˜SŸX™X˜Jð 'Ø—‘ˆz˜ ˜wð 'à—‘ˆzð ð
öð "×(Ñ(¨9°S·X±X°J¸fÀSÇXÁXÀJÈaÐ)PÖQñ ð !)§¡Ð.?Ó @ÐðØ×ÑÐ˜
 4§>¡>Ð"2ð 3 ð !'˜xð (ð 
×ÑÐ�A�nÐ%ð &	Ø	×	!Ñ	! &Ó	)Ð*Ð+>Ð*?ð @àÐð ð
 �>‰>Ð
ð ØÐð ð ×Ñ˜Ó0Ð1ð 2à×Ñ˜vÓ7Ð8ð 9à×Ñ˜&Ó!Ð"ð #à€.ð ØÐð ð7ð!
ð !	
ùòo Tùòùòùò
ùò Cùò Gs,   Á3PÃ,A-PÆBPÈ2"P$ÉP$É:P)ÊP.r&   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__r   r�   r‡   r�   r”   rº   r~   Ú__static_attributes__r&   r*   r(   ro   ro   ¨   sL   ‡ àÓØÓØƒNØÓà ô ó !ð õõõ
õ
(6÷T`
ñ `
r*   ro   c                  ó:   € ] tR tRtR R ltR R ltR R ltRtR	# )
ÚGenTSLazyIRiT  c               ó    € V ^8„  d   QhRRRR/# r@   r&   )r'   s   "r(   r)   ÚGenTSLazyIR.__annotate__V  s   € ÷ ñ ¨ð ¸ñ r*   c                	ó¦   € R pVP                   P                  '       d   V R2# VP                   P                  '       d   V R\        V4       R2# R# )z˜
  torch::lazy::TSOpVector Lower(
      std::shared_ptr<torch::jit::GraphFunction> function,
      torch::lazy::TSLoweringContext* loctx) const overrider¾   z {
    z
  }
            r†   )rª   ÚLowerDeclOnlyÚLowerr   )r   rA   Ú	signatures   && r(   r‡   ÚGenTSLazyIR.lowering_functionV  sd   € ð?ˆ	ð
 ×Ñ×*×*Ð*Ø�[ �?Ð"Ø×Ñ×$×$Ð$Ø!�{ð #Ü�fÓÐð ðð ñ
 r*   c               ó$   € V ^8„  d   QhRRRRRR/# r‹   r&   )r'   s   "r(   r)   rÙ   f  s!   € ÷ ñ  lð ÀCð ÈCñ r*   c                	ó°   € R V R2pVP                   P                  '       d   V R2# VP                   P                  '       g   R# V RVP                   R2# )zstatic NodePtr Create(r/   r¾   r†   z {
    return ReuseOrMakeNode<z>(data);
  })rª   ÚCreateFnDeclOnlyÚCreateFnr°   )r   rA   rŒ   rÝ   s   &&& r(   r�   ÚGenTSLazyIR.create_functionf  si   € Ø,¨^Ð,<¸AÐ>ˆ	Ø×Ñ×-×-Ð-Ø�[ �?Ð"Ø×"Ñ"×+×+Ð+ÙØ�;ð Ø"×,Ñ,Ð-ð .ðð 	r*   c               ó$   € V ^8„  d   QhRRRRRR/# r‹   r&   )r'   s   "r(   r)   rÙ   p  s"   € ÷ ñ ¨\ð È3ð ÐSVñ r*   c                	ó¢  € R V R2pVP                   P                  '       d   V R2# VP                   P                  '       g   R# . p\        P                  ! VP
                  VP                  4       Fb  p\        VP                  \        4      '       d"   VP                  RVP                   R24       KD  VP                  RVP                   24       Kd  	  \        P                  ! VP                  VP                  4       F°  p\        VP                  \        4      '       dc   VP                  RVP                   RVP                   R	VP                   R
VP                   RVP                   RVP                   R24       K…  VP                  RVP                   RVP                   24       K²  	  RP                  V4      pV RV R2# )r“   z) constr¾   r†   znullable_operand(i++) == r›   zoperand(i++) == z	((!this->z&&!z) || (this->z&&z && *(this->z) == *r©   zthis->z == z &&
        z! {
    size_t i = 0;
    return (z);
  })rª   ÚCanBeReusedDeclOnlyÚCanBeReusedÚ	itertoolsÚchainÚpositional_valuesÚkeyword_valuesr4   r3   r   rf   r6   Úpositional_scalarsÚkeyword_scalarsrE   )r   rA   rŒ   rÝ   Úvalue_comparisonr#   Úvalue_comparison_strs   &&&    r(   r”   Ú"GenTSLazyIR.can_be_reused_functionp  s§  € Ø'¨Ð'7°wÐ?ˆ	Ø×Ñ×0×0Ð0Ø�[ �?Ð"Ø×"Ñ"×.×.Ð.ÙØÐÜ—?’? 6×#;Ñ#;¸V×=RÑ=RÖSˆCÜ˜#Ÿ-™-¬×7Ò7Ø ×'Ñ'Ø/°·±¨zÐ9NÐOöð !×'Ñ'Ð*:¸3¿8¹8¸*Ð(EÖFñ Tô —?’? 6×#<Ñ#<¸f×>TÑ>TÖUˆCÜ˜#Ÿ-™-¬×7Ò7Ø ×'Ñ'Ø §¡˜z¨¨S¯X©X¨J°lÀ3Ç8Á8À*ÈBÈsÏxÉxÈjÐXdÐeh×emÑemÐdnÐntÐux×u}Ñu}Ðt~ð  Að  Böð !×'Ñ'¨&°·±°
¸$¸s¿x¹x¸jÐ(IÖJñ Vð  /×3Ñ3Ð4DÓEÐà�;ð à!Ð"ð #ðð 	r*   r&   N)rÐ   rÑ   rÒ   rÓ   r‡   r�   r”   rÕ   r&   r*   r(   r×   r×   T  s   † õõ ÷ñ r*   r×   c                  ó(  € ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R]R	&   R]R
&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R]R&   R R ltR R ltR R ltR R ltR R lt	R R lt
R(R! R" lltR# R$ lt]R% R& l4       tR'tR # ))ÚGenLazyNativeFuncDefinitioni�  r%   Úclass_method_namer   rp   Útensor_classrs   Úgen_forced_fallback_codeÚbackend_namespaceÚget_tensorlistÚget_tensor_or_wrap_numberÚtry_get_tensorÚmetrics_counterÚcreate_tensorÚcreate_from_first_tensorÚcreate_aten_from_ltc_tensorÚtuple_aten_from_ltc_tensorsÚlazy_tensor_ptrÚget_device_fnc               ó$   € V ^8„  d   QhRRRRRR/# ©r"   rN   r   rA   r   r$   r%   r&   )r'   s   "r(   r)   Ú(GenLazyNativeFuncDefinition.__annotate__Ÿ  s!   € ÷ /6ñ /6 nð /6¸lð /6Èsñ /6r*   c                	óT  € VP                  R RR7      p. pV EF|  pVP                  '       dŠ   \        VP                  \        4      '       d<   VP                  RVP                   RVP                   RVP                   R24       Kq  VP                  RVP                   RVP                   R24       KŸ  VP                  '       d   K³  \        VP                  \        4      '       d½   VP                  P                  \        J dJ   VP                  R	VP                   R
V P                   RV P                   RVP                   R2	4       EK:  VP                  V P                   RVP                   RV P                   RV P                   RVP                   R2
4       EK�  \        VP                  \        4      '       d¸   VP                  P                  \        \!        4       4      8w  d7   \#        R\        \!        4       4       RVP                  P                   24      hVP                  V P                   RVP                   RV P                   RV P$                   RVP                   R2
4       EKf  \#        RVP                   R24      h	  RP'                  V4      # )TFr˜   z
auto node_z = z‚ ?
                std::make_optional(torch::lazy::LazyGraphExecutor::Get()->
                    GetIrValueForScalarFromCodegen(*z3, *common_device)):
                ::std::nullopt;zf = torch::lazy::LazyGraphExecutor::Get()->
                            GetIrValueForScalarFromCodegen(z, *common_device);z
auto lazy_z_tensorlist = ú::r¦   rb   z lazy_z"Expected OptionalCType elem to be z, got z.value_or(at::Tensor()));r0   r/   rc   )rD   r5   r4   r3   r   rf   r6   r8   r   r7   r   rö   r÷   rÿ   rø   r;   r   r9   rù   rE   )r   rN   rA   r²   Úlazy_tensor_declsr#   s   &&&   r(   r  Ú-GenLazyNativeFuncDefinition.lazy_tensor_declsŸ  sw  € Ø×)Ñ)°¸uÐ)ÓEˆ
à')ÐÜˆCØ×$×$Ð$Ü˜cŸm™m¬]×;Ò;Ø%×,Ñ,Ø& s§x¡x j°°C·H±H°:ð >5à58·X±X°Jð ? ð#öð &×,Ñ,Ø& s§x¡x jð 1<Ø<?¿H¹H¸:ÐEWð[öð ×&×&Ð&ÙÜ˜CŸM™M¬9×5Ò5Ø—=‘=×%Ñ%Ô)9Ó9Ø%×,Ñ,Ø$ S§X¡X J¨nØ×1Ñ1Ð2°"°T×5HÑ5HÐ4IÈÈ3Ï8É8È*ÐTVðX÷ð
 &×,Ñ,Ø×/Ñ/Ð0°°s·x±x°jÀØ×1Ñ1Ð2°"°T×5SÑ5SÐ4TÐTUÐVY×V^ÑV^ÐU_Ð_qðs÷ô ˜CŸM™M¬=×9Ò9Ø—=‘=×%Ñ%¬´9³;Ó)?Ô?Ü(Ø<¼YÄyÃ{Ó=SÐ<Tð UØ"Ÿ}™}×1Ñ1Ð2ð4óð ð "×(Ñ(Ø×+Ñ+Ð,¨F°3·8±8°*¸CØ×-Ñ-Ð.¨b°×1DÑ1DÐ0EÀQÀsÇxÁxÀjÐPiðk÷ô
 %ØSÐTW×TaÑTaÐSbÐbcÐdóð ñQ ðV ×"Ñ"Ð#4Ó5Ð5r*   c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r"   rN   r   rA   r   r€   r   rI   rJ   r$   r%   r&   )r'   s   "r(   r)   r  Ð  s<   € ÷ ñ àðð ðð "ð	ð
 3ðð 
ñr*   c                	ó€   € V P                   '       d,   \        W$VP                  P                  P                  R 7      # R# ))rK   r†   )rõ   rY   rN   r6   rK   )r   rN   rA   r€   rI   s   &&&&&r(   Úforce_eager_fallbackÚ0GenLazyNativeFuncDefinition.force_eager_fallbackÐ  s5   € ð ×(×(Ð(Ü$Ø¨4¯9©9¯>©>×+GÑ+Gôð ñ r*   c               ó$   € V ^8„  d   QhRRRRRR/# r  r&   )r'   s   "r(   r)   r  Ý  s!   € ÷ *ñ *˜Nð *°Lð *ÀSñ *r*   c                	ó    € V P                    R 2# )r¾   )rú   )r   rN   rA   s   &&&r(   ÚmetricsÚ#GenLazyNativeFuncDefinition.metricsÝ  s   € Ø×&Ñ&Ð' qÐ)Ð)r*   c               ó$   € V ^8„  d   QhRRRRRR/# r  r&   )r'   s   "r(   r)   r  à  s!   € ÷ ñ ˜~ð °|ð Èñ r*   c                	óú  € VP                  R RR7      pVP                  RR R7      pV Uu. uF#  qUP                  '       d   K  VP                   NK%  	  pp\        \	        \
        4      4      pV Uu. uF!  qUP                  V8X  g   K  VP                  NK#  	  pp\        V4      ^ 8X  d   \        V4      ^ 8X  d   \        R4      hV P                   RRP                  Wh,           4       R2p	RV	 R2# u upi u upi )	TFr˜   z*Expected at least one Value or Device typer¦   rC   r/   zauto common_device = z8;
        TORCH_INTERNAL_ASSERT(common_device);
        )rD   r5   r6   r   r   r   r3   rQ   r9   r   rE   )
r   rN   rA   r²   rµ   rV   Úvalue_types_namesÚoptional_deviceÚoptional_devicesÚget_device_strs
   &&&       r(   Ú
get_deviceÚ&GenLazyNativeFuncDefinition.get_deviceà  s  € Ø×)Ñ)°¸uÐ)ÓEˆ
Ø×*Ñ*°%ÀÐ*ÓFˆÙ2<ÓX±*¨Q×DWÕDWœ[ §¡˜xš[±*ÐÐXÜ'¬	´'Ó(:Ó;ˆá'ó
Ù'�q¯;©;¸/Ñ+IŒFˆA�FŒF™Kð 	ð 
ô Ð Ó! QÔ&¬3Ð/?Ó+@ÀAÔ+EÜ Ð!MÓNÐNà×!Ñ!Ð" ! D§I¡IÐ.?Õ.RÓ$SÐ#TÐTUÐVð 	ð )¨Ð(8ð 9	ð ð 	ùò Yùò
s   «C3ÁC3Á2C8Â	C8c               ó$   € V ^8„  d   QhRRRRRR/# r  r&   )r'   s   "r(   r)   r  ñ  s&   € ÷ Nñ N Nð N¸Lð NÈSñ Nr*   c           
     	ó,  € V P                   P                  V4      pVf#   \        RVP                  P                   24      hVP                  4       p\        VP                  4      pRVP                  9   pVP                  ;'       g    VP                  R JpV'       g
   V'       Ed^   RpV^8”  dF   R R lp	RP                  \        V4       U
u. uF
  q©! V
4      NK  	  up
4      pRV,           R,           p\        P                  ! VP                  4      p\        V4      w  rÞ\!        WìP#                  4       R	R
7       Uu. uF  pVP$                  NK  	  ppV'       d9   VP&                  '       g$   \        RVP                  P                   R24      hRpMRpVP(                  pVP                  P+                  4       '       d    VP-                  4       '       d
   VR,          pRV RV RV RRP                  V4       RV 2
pM5\/        VP0                  WP-                  4       R7      pRVP2                   R2pVRV R2,          pR\5        VP                  4      ,           pVRRP                  R V 4       4       RV R2,          pV# u up
i u upi ) NúNo kernel metadata found for Ú	view_copyzl
std::vector<torch::lazy::Shape> shapes{torch::lazy::Shape(out_meta.scalar_type(), out_meta.sizes().vec())};c               ó    € V ^8„  d   QhRRRR/# )r"   r¸   Úintr$   r%   r&   )r'   s   "r(   r)   ÚAGenLazyNativeFuncDefinition.shape_inference.<locals>.__annotate__  s   € ÷ ñ  #ð ¨#ñ r*   c                ó   € R V  RV  R2# )ztorch::lazy::Shape(std::get<z$>(out_meta).scalar_type(), std::get<z>(out_meta).sizes().vec())r&   )r¸   s   &r(   Ú
this_shapeÚ?GenLazyNativeFuncDefinition.shape_inference.<locals>.this_shape  s   € Ø9¸!¸Ð<`ÐabÐ`cÐc}Ð~Ð~r*   Ú,z'std::vector<torch::lazy::Shape> shapes{z};F)Úmethodzview_copy op z8 must have CompositeExplicitAutogradNonFunctional kernelÚ&compositeexplicitautogradnonfunctionalÚmetaÚ_symintz        z
        auto out_meta = at::r  r¦   rC   z);
        rz   z
            auto shapes = r¾   z4
            TORCH_INTERNAL_ASSERT(shapes.size() == rb   zaten::zq
            if(torch::lazy::symbolicShapeEnabled()){
                std::vector<torch::jit::IValue> inputs = { c              3  óL   "  € T F  p\        VP                  4      x € K  	  R # 5ir�   )r%   r6   rŸ   s   & r(   r¡   Ú>GenLazyNativeFuncDefinition.shape_inference.<locals>.<genexpr>:  s   é € ÐFeÑ\dÐWXÄsÈ1Ï6É6Ç{À{Ó\dùs   ‚"$z. };
                const char* schema_str = "z^";
                applySymbolicShapesOnLT(schema_str, inputs, shapes);
            }
        )rp   r|   r9   rN   r6   rD   rQ   r±   ÚtagsÚ
structuredÚstructured_delegaterE   r¯   r   rM   rl   r   rO   rP   Ú5has_composite_explicit_autograd_non_functional_kernelrR   Ú
has_symintr}   ÚComputeShapeSignatureÚkernelÚ
shape_callr%   )r   rN   rA   r€   rÄ   Úreturns_lengthÚis_view_copy_opÚis_structuredÚmeta_outr   r¸   Ú
shapes_strrT   Úmeta_conversion_strÚmeta_call_ctxÚeÚmeta_call_argsÚdispatch_nsrR   Ú	shape_strÚ	shape_sigÚfunc_schema_strs   &&&                   r(   Úshape_inferenceÚ+GenLazyNativeFuncDefinition.shape_inferenceñ  s¯  € Ø×%Ñ%×0Ñ0°Ó6ˆØÒÜ Ð#@ÀÇÁÇÁÐ@PÐ!QÓRÐRØ×'Ñ'Ó)ˆÜ˜VŸ^™^Ó,ˆð &¨¯©Ñ2ˆØŸ™×OÐO¨4×+CÑ+CÈ4Ð+OˆßŸO˜OðoˆHà Ô!õð !ŸX™X¼eÀNÔ>SÓ&TÑ>S¸ z°!¦}Ñ>SÑ&TÓU�
ØDÀzÕQÐTXÕX�ô 1×<Ò<¸T¿Y¹YÓGˆNÜ1HÈÓ1XÑ.Ðô #Ø!×#;Ñ#;Ó#=Àeõóñ�Að —”ñð ð ÷ à×Q×QÐQÜ(Ø'¨¯	©	¯©Ð'7ð 8Hð Hóð ð G‘à$�Ø×(Ñ(ˆIà�y‰y×#Ñ#×%Ò%¨(×*BÑ*B×*DÒ*DØ˜YÕ&�	ð	Ø	Ðð Ø(˜M¨¨I¨;°a¸¿	¹	À.Ó8QÐ7Rð S	Ø	ˆ
ð‰Iô
 .Ø—‘ ×.FÑ.FÓ.HôˆIðØ$×/Ñ/Ð0°ð5ˆIð 	ð 4Ø4BÐ3CÀ2ðIõ 	Iˆ	ð #¤S¨¯©£^Õ3ˆØð =à=A¿Y¹YÑFeÑ\dÓFeÓ=eÐ<fð g+Ø+:Ð*;ð <	ðõ 	ˆ	ð Ðùòi 'Uùòs   ÃJÅJc               ó$   € V ^8„  d   QhRRRRRR/# r  r&   )r'   s   "r(   r)   r  A  s!   € ÷ ñ  .ð ¸,ð È3ñ r*   c                	ó‚   € \        V4      pR VP                   RV RV P                  W4       RVP                   RV R2# )z3torch::lazy::NodePtr node = torch::lazy::ReuseNode<r2   z$);
        if (!node) {
            z*
            node = torch::lazy::MakeNode<zE, std::move(shapes));
            CacheNode(node);
        }
        )rG   r°   r>  )r   rN   rA   Únode_ctor_input_strs   &&& r(   Úbuild_ir_nodeÚ)GenLazyNativeFuncDefinition.build_ir_nodeA  sd   € Ü.¨vÓ6ÐØFÀv×GWÑGWÐFXÐXZÐ[nÐZoð pà×!Ñ! $Ó/Ð0ð 1*Ø*0×*:Ñ*:Ð);¸2Ð>QÐ=Rð S	ðð 	r*   Nc               ó    € V ^8„  d   QhRRRR/# )r"   Úfirst_tensor_namez
str | Noner$   r%   r&   )r'   s   "r(   r)   r  K  s   € ÷ Añ A°Jð AÈ#ñ Ar*   c                	óœ   € V P                   '       d!   Vf   \        R4      hV RV P                   2# V P                   RV P                   2# )Nz+Requires first tensor to create lazy tensorÚ.r  )rü   r9   rû   rö   )r   rF  s   &&r(   Úcreate_lazy_tensorÚ.GenLazyNativeFuncDefinition.create_lazy_tensorK  sX   € à×(×(Ð(à Ò(Ü$Ð%RÓSÐSØ'Ð(¨¨$×*<Ñ*<Ð)=Ð>Ð>Ø×(Ñ(Ð)¨¨D×,>Ñ,>Ð+?Ð@Ð@r*   c               ó$   € V ^8„  d   QhRRRRRR/# r  r&   )r'   s   "r(   r)   r  T  s"   € ÷ ñ  ~ð ¸|ð ÐPSñ r*   c                	óØ  € \        VP                  4      pVP                  R RR7      pV Uu. uF#  qUP                  '       d   K  VP                   NK%  	  pp\        V4      ^ 8”  d
   V^ ,          MRpRV P
                   RV P                  V4       R2pV^8”  d\   \        V4      ^ 8X  d   \        R4      hRV P                   R	V R
V P                  V4       R\        4        RV P                   RV R2pVP                  P                  P                  '       g!   VP                  P                  4       '       d    V^8w  d   \        RV R24      hRV RV R2pVR,          pV# u upi )TFr˜   Nzauto result = z(
                z#(std::move(node), *common_device));z3Code below assumes there is at least one tensor argr1   z,> lazy_tensors;
        for (int i = 0; i < z,; i++) {
            lazy_tensors.push_back(r¦   z=(node, i), *common_device));
        }
        auto result = Ú<z>(lazy_tensors);zqWe assumed there was no such case where an op is an in-place variant and has tuple outputs, but got tuple of len rH  r-   z2->SetInPlaceIrValue(node);
        auto& result = r¾   z
        return result;)rQ   r±   rD   r5   r6   rý   rI  r9   rÿ   r   rþ   ÚinplacerN   Ú	is_out_fn)	r   rN   rA   r1  r²   rV   r  rF  Ú
bridge_strs	   &&&      r(   Úreturn_aten_tensorÚ.GenLazyNativeFuncDefinition.return_aten_tensorT  s±  € Ü˜VŸ^™^Ó,ˆØ×)Ñ)°¸uÐ)ÓEˆ
Ù2<ÓX±*¨Q×DWÕDWœ[ §¡˜xš[±*ÐÐXÜ47Ð8IÓ4JÈQÔ4NÐ-¨aÖ0ÐTXÐØ'¨×(HÑ(HÐ'Ið JØ×(Ñ(Ð):Ó;Ð<Ð<_ðcˆ
ð ˜AÔÜÐ$Ó%¨Ô*Ü$ØIóð ð *¨$×*>Ñ*>Ð)?ð @Ø+Ð,ð -$Ø$(×$;Ñ$;Ð<MÓ$NÐ#OÈqÔQZÓQ\ÐP]ð ^à×7Ñ7Ð8¸¸.Ð9IÐIYð	]ˆJð �;‰;×Ñ×#×#Ð# t§y¡y×':Ñ':×'<Ò'<Ø Ô"Ü$ðCØCQÐBRÐRSðUóð ð #Ð#4Ð"5ð 6Ø)Ð*¨!ð/ˆJð 	ð õ 	ˆ
àÐùò7 Ys   ­E'ÁE'c               ó    € V ^8„  d   QhRRRR/# )r"   rN   r   r$   rw   r&   )r'   s   "r(   r)   r  u  s   € ÷ 
ñ 
˜^ð 
°	ñ 
r*   c                	ó2  € \        WP                  4      pV P                  P                  V4      pVf#   \        RVP                  P
                   24      h\        VP                  VP                  4       R7      pRVP                  V P                   RVP                   2R7       RV P                  WW24       RV P                  W4       RV P                  W4       RV P                  W4       RV P                  W4       RV P!                  W4       R2.# )	Nr  rz   z    r  rž   z {
        rc   z
    }

    )r   rp   r|   r9   rN   r6   r   r}   Údeclró   r/  r
  r  r  r  rC  rQ  )r   rN   rI   r€   rA   s   &&   r(   r�   Ú$GenLazyNativeFuncDefinition.__call__t  s(  € ä˜t×%7Ñ%7Ó8ˆØ×%Ñ%×0Ñ0°Ó6ˆØÒÜ Ð#@ÀÇÁÇÁÐ@PÐ!QÓRÐRÜ˜dŸi™i°×0HÑ0HÓ0JÔKˆðØ‡X�X�d×,Ñ,Ð-¨R°·±Ð/@ÐA€XÓBÐCð D	Ø	×	"Ñ	" 4°Ó	?Ð@ð A	Ø	�‰�dÓ	#Ð$ð %	Ø	�‰˜Ó	&Ð'ð (	Ø	×	Ñ	 Ó	-Ð.ð /	Ø	×	Ñ	˜DÓ	)Ð*ð +	Ø	×	 Ñ	  Ó	.Ð/ð 0ð	ð
ð 	
r*   r&   r�   )rÐ   rÑ   rÒ   rÓ   rÔ   r  r
  r  r  r>  rC  rI  rQ  r   r�   rÕ   r&   r*   r(   rò   rò   �  s�   ‡ àÓØÓØÓØ"Ó"ØÓØÓØ"Ó"ØÓØÓØÓØ"Ó"Ø!$Ó$Ø!$Ó$ØÓØÓõ/6õbõ*õõ"Nõ`÷Aõð@ !ô
ó !ô
r*   rò   c                  ój   € ] tR tRtRtR R ltR R ltR R lt]R	 R
 l4       t	]R R l4       t
RtR# )r.  i‰  ze
Here we use the base name as the suffix of the signature to avoid generating for in-place variants.
c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r"   Úkernel_namer%   rv   r   r=   rs   r$   ÚNoner&   )r'   s   "r(   r)   Ú"ComputeShapeSignature.__annotate__Ž  s)   € ÷ )ñ ) Cð )¨Nð )Àtð )ÐPTñ )r*   c               	ó˜  € \        VP                  VR 7      V n        RP                  \        P
                  ! VP                  VR 7       Uu. uF  qDP                  4       NK  	  up4      V n        RP                  V P                  P                  RR7       Uu. uF  qUP                   NK  	  up4      V n
        Wn        R# u upi u upi )rz   rC   T)Ú	generatorN)r   rN   Ú_ComputeShapeSignature__schemarE   Ú
dispatcherrO   rU  Ú%_ComputeShapeSignature__dispatch_argsrD   r6   Ú!_ComputeShapeSignature__call_argsÚ#_ComputeShapeSignature__kernel_name)r   rY  rv   r=   rV   r#   s   &&&$  r(   Ú__init__ÚComputeShapeSignature.__init__Ž  s¡   € Ü$ Q§V¡V°FÔ;ˆŒØ#Ÿy™yÜ)×3Ò3°A·F±FÀ6ÕJÓKÑJ˜!�V‰VŽXÑJÑKó 
ˆÔð  Ÿ9™9Ø&*§m¡m×&AÑ&AÈDÐ&AÔ&QÓRÑ&Q˜s—‘ˆzŠ]Ñ&QÑRó
ˆÔð )Öùò Lùò Ss   ÁCÂCc               ó   € V ^8„  d   QhRR/# ©r"   r$   r%   r&   )r'   s   "r(   r)   r[  ˜  s   € ÷ ?ñ ?˜sñ ?r*   c                	ó:   € V P                    R V P                   R2# ©r¦   r/   )rb  r`  ©r   s   &r(   Ú__decl_suffixÚ#ComputeShapeSignature.__decl_suffix˜  s#   € Ø×$Ñ$Ð% Q t×';Ñ';Ð&<¸AÐ>Ð>r*   c               ó   € V ^8„  d   QhRR/# rf  r&   )r'   s   "r(   r)   r[  ›  s   € ÷ ;ñ ;˜sñ ;r*   c                	ó:   € V P                    R V P                   R2# rh  )rb  ra  ri  s   &r(   Ú__call_suffixÚ#ComputeShapeSignature.__call_suffix›  s#   € Ø×$Ñ$Ð% Q t×'7Ñ'7Ð&8¸Ð:Ð:r*   c               ó   € V ^8„  d   QhRR/# rf  r&   )r'   s   "r(   r)   r[  Ÿ  s   € ÷ añ a˜Cñ ar*   c                	ó(   € R V P                  4        2# )z8TORCH_API std::vector<torch::lazy::Shape> compute_shape_)Ú#_ComputeShapeSignature__decl_suffixri  s   &r(   Ú
shape_declÚ ComputeShapeSignature.shape_declž  s   € àIÈ$×J\ÑJ\ÓJ^ÐI_Ð`Ð`r*   c               ó   € V ^8„  d   QhRR/# rf  r&   )r'   s   "r(   r)   r[  £  s   € ÷ Dñ D˜Cñ Dr*   c                	ó(   € R V P                  4        2# )ztorch::lazy::compute_shape_)Ú#_ComputeShapeSignature__call_suffixri  s   &r(   r0  Ú ComputeShapeSignature.shape_call¢  s   € à,¨T×-?Ñ-?Ó-AÐ,BÐCÐCr*   )Ú__call_argsÚ__dispatch_argsÚ__kernel_nameÚ__schemaN)rÐ   rÑ   rÒ   rÓ   Ú__doc__rc  rr  rw  Úpropertyrs  r0  rÕ   r&   r*   r(   r.  r.  ‰  sB   † ñõ)õ?õ;ð ôaó ðað ôDó ôDr*   r.  c                  óB   € ] tR tRt$ R]R&   R]R&   ]R R l4       tRtR	# )
ÚGenLazyShapeInferenceDefinitioni§  r   rp   r%   rô   c               ó    € V ^8„  d   QhRRRR/# )r"   rv   r   r$   rw   r&   )r'   s   "r(   r)   Ú,GenLazyShapeInferenceDefinition.__annotate__­  s   € ÷ =ñ =˜.ð =¨Yñ =r*   c                	ó”  € V P                   P                  V4      pVf#   \        RVP                  P                   24      hRVP
                  9   pVP                  ;'       g    VP                  R JpV'       g	   V'       d   . # \        VP                  WP                  4       R7      pRP                  VP                   R2.4      .# )Nr  r  rz   Ú
r¾   )rp   r|   r9   rN   r6   r)  r*  r+  r.  r/  r}   rE   rs  )r   rv   r€   r2  r3  r<  s   &&    r(   r�   Ú(GenLazyShapeInferenceDefinition.__call__¬  s°   € à×%Ñ%×0Ñ0°Ó3ˆØÒÜ Ð#@ÀÇÁÇÁÀÐ!NÓOÐOð &¨¯©Ñ/ˆØŸ™×IÐI¨×(=Ñ(=ÀTÐ(IˆßŸOØˆIä-Ø—‘ ×+CÑ+CÓ+EôˆIð —I‘I )×"6Ñ"6Ð!7°qÐ9Ð:Ó;Ð<Ð<r*   r&   N)rÐ   rÑ   rÒ   rÓ   rÔ   r   r�   rÕ   r&   r*   r(   r€  r€  §  s    ‡ àÓØÓà ô=ó !ô=r*   r€  c               ó$   € V ^8„  d   QhRRRRRR/# )r"   Ú
non_nativezlist[dict[str, Any]]Úgen_lazy_irro   r$   rw   r&   )r'   s   "r(   r)   r)   ¾  s$   € ÷ ñ Ø$ðØ3<ðàñr*   c                óL  € . pV  F›  p\        RRR4      pVP                  R. 4       F  p\        WER4       K  	  \        \        P
                  ! VR,          4      VRR7      pVP                  R4      Vn        VP                  VP                  V4      ^ ,          4       K�  	  V# )	z,Generate the non-native lazy IR node classesr®   rç   rÛ   rª   TrN   rz   rÁ   )	r
   ÚgetÚsetattrr   r   ÚparserÁ   rf   r~   )r‡  rˆ  ÚnodesÚoprª   ÚprA   s   &&     r(   Ú!generate_non_native_lazy_ir_nodesr�  ¾  s‘   € ð €EÛˆä% l°MÀ?ÓSˆ
Ø—‘˜ bÖ)ˆAÜ�J 4Ö(ñ *ô œn×2Ò2°2°fµ:Ó>À
ÐSWÔXˆØŸ™˜xÓ(ˆŒØ�‰�[—_‘_ VÓ,¨QÕ/Ö0ñ ð €Lr*   )7Ú
__future__r   rè   Úabcr   Údataclassesr   Útypingr   Útorchgen.api.dispatcherÚapir_  Útorchgen.api.lazyr   r   r	   r
   r   r   Útorchgen.api.translater   Útorchgen.api.typesr   r   r   r   r   r   r   r   Útorchgen.contextr   Útorchgen.dest.lazy_ts_loweringr   Útorchgen.modelr   r   r   r   r   r   r   r   r    r>   rG   rY   rS   rl   ro   r×   rò   r.  r€  r�  r&   r*   r(   Ú<module>r�     sÿ   ðÝ "ã Ý Ý !Ý ç ,Ð ,÷÷ õ -÷	÷ 	ó 	õ 9Ý ;÷
÷ 
õ 
õ8!õv'õõ0
 õ +ñ  �$Ôôh
�ó h
ó ðh
ñV �$Ôô5�)ó 5ó ð5ñp �$Ô÷x
ð x
ó ðx
÷vDñ Dñ< �$Ô÷=ð =ó ð=÷,r*   