ó
    Eñi"Ç ã            
       óö  • S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSKrSSKrSSKrSSKrSSKJrJrJr  SSKJrJrJrJr  SSKJr  SSKrSSKrSSKJ r J!r!  SSK"J#r#  SS	K$J%r%J&r&J'r'  SS
K(J)r)  SSK*J+r+  SSK,J-r-J.r.J/r/J0r0J1r1J2r2J3r3  SSK4J5r5  SSK6J7r7J8r8  SSK9J:r:J;r;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrC  SSKDJErEJFrFJGrGJHrHJIrIJJrJJKrKJLrLJMrMJNrNJOrOJPrPJQrQJRrRJSrSJTrTJUrUJVrVJWrWJXrXJYrYJZrZ  SSK[J\r\J]r]J^r^J_r_  SSK`JaraJbrbJcrc   SSKdre SSKgJhrh  \(       a   SSKkJlrl  SSKmJnrn  SSKoJprp  SSKqJrrr  SSKsJtrtJuru  S\vS\w4S jrxS\vS\w4S jryS\vS\w4S jrzS \vS\w4S! jr{ " S" S#\_5      r| " S$ S%\|5      r} " S& S'\}5      r~ " S( S)\}5      r " S* S+5      r€ " S, S-5      r�S.S/S0\S1\4   S2\\_   S3\‚\ƒ\_4   S\_4
S4 jr„ " S5 S6\|5      r… " S7 S8\…5      r† " S9 S:\…5      r‡ " S; S<\…5      rˆ " S= S>\…5      r‰ " S? S@\…5      rŠ " SA SB\…5      r‹ " SC SD\_5      rŒ " SE SF\…5      r� " SG SH\…5      rŽ " SI SJ\…5      r� " SK SL\…5      r� " SM SN\…5      r‘ " SO SP\…5      r’g! \f a    Sre GNTf = f! \i a    \j" S5      rh GNbf = f)Qam  
This module contains variable classes for handling user-defined objects in Dynamo's tracing system.

The key classes are:
- UserDefinedVariable: Base class for representing custom Python objects
- UserDefinedClassVariable: Handles Python class objects/types
- UserDefinedObjectVariable: Fallback class for instance objects, with support for method calls,
  attribute access, and other Python object behaviors.
- Specialized subclasses for common patterns:
  - UserDefinedDictVariable: For dict subclasses
  - UserDefinedSetVariable: For set subclasses
  - UserDefinedTupleVariable: For tuple subclasses
  - UserDefinedExceptionObjectVariable: For exception subclasses
  - FrozenDataClassVariable: Special handling of frozen dataclasses
  - MutableMappingVariable: For collections.abc.MutableMapping subclasses

Dynamo specializes to VariableTracker subclasses like FrozenDataClassVariable if available; if no
subclass qualifies, it falls back to UserDefinedObjectVariable.

These classes help Dynamo track and handle arbitrary Python objects during tracing,
maintaining proper semantics while enabling optimizations where possible.
é    N)ÚCallableÚIterableÚSequence)ÚAnyÚLiteralÚTYPE_CHECKINGÚUnion)Úis_typeddict)ÚSourceÚTracingContext)Ú"is_traceable_wrapper_subclass_typeé   )Úgraph_break_hintsÚ	polyfillsÚ	variables)Úcreate_call_function)Ú$do_not_convert_to_tracable_parameter)Úhandle_observed_exceptionÚObservedAttributeErrorÚObservedKeyErrorÚObservedTypeErrorÚObservedUserStopIterationÚraise_observed_exceptionÚunimplemented)Úget_external_object_by_index)ÚGuardBuilderÚinstall_guard)
Ú
AttrSourceÚCallFunctionNoArgsSourceÚDataclassFieldsSourceÚDictGetItemSourceÚGetItemSourceÚRandomValueSourceÚTypeDictSourceÚTypeMROSourceÚ
TypeSourceÚUnspecializedParamBufferSource)Úcheck_constant_argsÚcmp_name_to_op_mappingÚdict_methodsÚenum_type_methodsÚfrozenset_methodsÚget_custom_getattrÚhas_torch_functionÚis_frozen_dataclassÚis_lru_cache_wrapped_functionÚis_namedtuple_clsÚis_wrapper_or_member_descriptorÚistypeÚlist_methodsÚnamedtuple_fieldsÚobject_has_getattributeÚproxy_args_kwargsÚraise_args_mismatchÚraise_on_overridden_hashÚset_methodsÚtensortype_to_dtypeÚtuple_methodsÚunpatched_nn_module_getattré   )ÚMutationTypeÚraise_type_error_excÚValueMutationNewÚVariableTracker)ÚConstDictVariableÚDefaultDictVariableÚSetVariable)Ú
PyTreeSpec)Ú	PyCodegen©ÚSideEffects©ÚInstructionTranslator©ÚConstantVariable)ÚListVariableÚTupleVariableÚvalÚreturnc                 óH   • U [         R                  [        R                  4;   $ ©N)ÚobjectÚ__setattr__ÚBaseException©rP   s    Úa/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/_dynamo/variables/user_defined.pyÚis_standard_setattrrY   {   ó   € Ø”6×%Ñ%¤}×'@Ñ'@ÐAÑAÐAó    c                 óH   • U [         R                  [        R                  4;   $ rS   )rT   Ú__delattr__rV   rW   s    rX   Úis_standard_delattrr^      rZ   r[   Úctxc                 ó  • / n SSK Jn  SSKJn  UR	                  U5        UR	                  U5        [        R                  R                  S5      =n(       a  UR	                  UR                  5        X;   $ ! [
         a     NQf = f)Nr   )ÚRaisesContext)ÚWarningsCheckerz!torch.testing._internal.jit_utils)
Ú_pytest.python_apira   Ú_pytest.recwarnrb   ÚappendÚImportErrorÚsysÚmodulesÚgetÚ&_AssertRaisesRegexWithHighlightContext)r_   Úf_ctxsra   rb   Úms        rX   Úis_forbidden_context_managerrm   ƒ   ss   € Ø€FðÝ4Ý3à�‰�mÔ$Ø�‰�oÔ&ô �K‰K�O‰OÐ?Ó@Ð@€qÕ@Ø�‰�a×>Ñ>Ô?à‰=Ðøô ó Ùðús   „.A7 Á7
BÂBÚobjc                 óŽ   • [        U 5      =(       a4    [        [        U 5      S5      =(       a    [        U 5      R                  S:H  $ )NÚ__name__Úcython_function_or_method)ÚcallableÚhasattrÚtyperp   ©rn   s    rX   Úis_cython_functionrv   •   s9   € ä�‹÷ 	>Ü”D˜“I˜zÓ*÷	>ä�‹I×ÑÐ"=Ñ=ðr[   c                   ó2   • \ rS rSr% \\S'   S\S\4S jrSr	g)ÚUserDefinedVariableé�   ÚvalueÚnamerQ   c                 ó°   • U[        U R                  S0 5      ;  a+   [        R                  " [	        U R                  5      U5      $ g! [
         a     gf = f)zEGet method from the base class if not overridden in value's __dict__.Ú__dict__N)Úgetattrrz   ÚinspectÚgetattr_staticrt   ÚAttributeError)Úselfr{   s     rX   Ú_maybe_get_baseclass_methodÚ/UserDefinedVariable._maybe_get_baseclass_method    sT   € à”w˜tŸz™z¨:°rÓ:Ó:ðÜ×-Ò-¬d°4·:±:Ó.>ÀÓEÐEð øô "ó ØØðús   �)A Á
AÁA© N)
rp   Ú
__module__Ú__qualname__Ú__firstlineno__rT   Ú__annotations__Ústrr   rƒ   Ú__static_attributes__r…   r[   rX   rx   rx   �   s   ‡ ØƒMð°ð ¸÷ r[   rx   c            
       ó¤  ^ • \ rS rSr% \\   \S'   S\\   S\SS4U 4S jjrS\\   4S jr	S\4S jr
S\4S	 jr\\R                  S\\\      4S
 j5       5       r\\R                  S\\\      4S j5       5       r\\R                  S\\   4S j5       5       r\S\S\4S j5       rS\4S jrSSS\S\4S jrSSS\S\4U 4S jjrSSS\\   S\\\4   S\4S jrSSS\S\\   S\\\4   S\4
U 4S jjrSSS\\   S\\\4   S\4U 4S jjrS\4S jr SSS\SS4U 4S jjr!SSS\S\4U 4S jjr"S\#S   4S jr$S\%4S jr&S \S\4S! jr'S"r(U =r)$ )#ÚUserDefinedClassVariableéª   rz   ÚkwargsrQ   Nc                 ó@   >• [         TU ]  " S0 UD6  Xl        SU l        g )NFr…   )ÚsuperÚ__init__rz   Úban_mutation©r‚   rz   r�   Ú	__class__s      €rX   r’   Ú!UserDefinedClassVariable.__init__®   s"   ø€ Ü‰ÒÑ"˜6Ò"ØŒ
ð "ˆÕr[   c                 ó   • U R                   $ rS   ©rz   ©r‚   s    rX   Úas_python_constantÚ+UserDefinedClassVariable.as_python_constant¶   ó   € Ø�z‰zÐr[   c                 ó   • U R                   $ rS   r˜   r™   s    rX   Úas_proxyÚ!UserDefinedClassVariable.as_proxy¹   rœ   r[   c                 óN   • U R                   R                   SU R                   S3$ ©NÚ(Ú))r•   rp   rz   r™   s    rX   Ú__repr__Ú!UserDefinedClassVariable.__repr__¼   s$   € Ø—.‘.×)Ñ)Ð*¨!¨D¯J©J¨<°qÐ9Ð9r[   c                  ó~   • [         R                  [         R                  [         R                  [         R                  1$ rS   )ÚtorchÚdeviceÚfinfoÚiinfoÚSizer…   r[   rX   Ú_constant_fold_classesÚ/UserDefinedClassVariable._constant_fold_classes¿   s*   € ô �L‰LÜ�K‰KÜ�K‰KÜ�J‰Jð	
ð 	
r[   c                  óÜ  • [         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                  1n [        [         S5      (       aC  U R!                  [         R"                  R                  [         R"                  R                  15        [%        [&        R(                  " 5       5      U -  $ )NÚhpu)r§   ÚTensorÚcudaÚFloatTensorÚDoubleTensorÚ
HalfTensorÚBFloat16TensorÚ
ByteTensorÚ
CharTensorÚ	IntTensorÚShortTensorÚ
LongTensorÚStreamÚEventÚxpurs   Úupdater¯   Úsetr;   Úkeys)Ú_in_graph_class_lists    rX   Ú_in_graph_classesÚ*UserDefinedClassVariable._in_graph_classesÉ   s  € ô �L‰LÜ�J‰J×"Ñ"Ü�J‰J×#Ñ#Ü�J‰J×!Ñ!Ü�J‰J×%Ñ%Ü�J‰J×!Ñ!Ü�J‰J×!Ñ!Ü�J‰J× Ñ Ü�J‰J×"Ñ"Ü�J‰J×!Ñ!Ü�L‰LÜ�K‰KÜ�J‰J×ÑÜ�J‰J×ÑÜ�I‰I×ÑÜ�I‰I�O‰Oð! 
Ðô$ ”5˜%× Ñ Ø ×'Ñ'ä—I‘I×$Ñ$Ü—I‘I—O‘Oðôô Ô&×+Ò+Ó-Ó.Ð1EÑEÐEr[   c            	      óè  • [        [        5       V s1 s Hg  n [        [        [        U 5      [        5      (       d  M(  [        [        [        U 5      [        5      (       d  MM  [        [        U 5      R                  iMi     nn [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  1nUR                  U5      $ s  sn f rS   )ÚdirÚbuiltinsÚ
isinstancer~   rt   Ú
issubclassrV   Ú__new__rT   Údictr¿   Ú	frozensetÚtupleÚlistÚunion)r{   Ú
exceptionsÚ	c_new_fnss      rX   Úsupported_c_new_functionsÚ2UserDefinedClassVariable.supported_c_new_functionsè   s«   € ô
 œHœó 
â%�Üœ'¤(¨DÓ1´4×8ó ,ô œ7¤8¨TÓ2´M×Bó ,ŒG”H˜dÓ#×+Ô+Ù%ð 	ð  
ô �N‰NÜ�L‰LÜ�K‰KÜ×ÑÜ�M‰MÜ�L‰Lð
ˆ	ð �‰˜zÓ*Ð*ùò 
s   ’'C/½!C/Á"C/c                 ó0   • U [         R                  5       ;   $ rS   )r�   rÑ   r˜   s    rX   Úis_supported_new_methodÚ0UserDefinedClassVariable.is_supported_new_methodû   s   € ð Ô0×JÑJÓLÑLÐLr[   c                 ó<   • U R                   U R                  5       ;   $ rS   )rz   r¬   r™   s    rX   Úcan_constant_fold_throughÚ2UserDefinedClassVariable.can_constant_fold_through  s   € Ø�z‰z˜T×8Ñ8Ó:Ñ:Ð:r[   ÚtxrK   Úkeyc                 ó  • UR                   R                  R                  X5      (       aC  UR                   R                  R                  XSS9n[	        U[
        R                  5      (       + $ X R                  R                  ;   $ ©NT©Ú
deleted_ok©	ÚoutputÚside_effectsÚhas_pending_mutation_of_attrÚ	load_attrrÇ   r   ÚDeletedVariablerz   r}   ©r‚   rÙ   rÚ   Úmutated_attrs       rX   Úhas_key_in_generic_dictÚ0UserDefinedClassVariable.has_key_in_generic_dict  óf   € Ø�9‰9×!Ñ!×>Ñ>¸t×IÑIØŸ9™9×1Ñ1×;Ñ;¸DÐRVÐ;ÐWˆLÜ! ,´	×0IÑ0IÓJÔJÐJà—j‘j×)Ñ)Ñ)Ð)r[   r{   c           
      ó 
  >• SSK JnJn  U R                  b  [	        U R                  U5      OS nUS:X  a&  UR
                  " U R                  R                  5      $ US:X  a&  UR
                  " U R                  R                  5      $ US:X  a  SU0n[        R                  " XS 40 UD6$ US:X  aS  U R                  =(       a    [        U R                  5      n[        R                  " XR                  R                  U5      $ U R                  [        R                   [        R"                  1;   a  US:X  a  [$        TU ]M  X5      $ S n [(        R*                  " U R                  U5      nUS:X  a)  [2        R5                  U5      (       a  [$        TU ]M  X5      $ U[6        ;   a5  [9        U[:        R<                  5      (       d  [        R                  " XS US9$ [9        U[>        5      (       a0  [        R                  " XRA                  U R                  5      U5      $ [9        U[B        5      (       a{  [9        URD                  [F        5      (       a=  [        R                  " XRD                  RH                  5      n	U	RK                  X/0 5      $ [        RL                  " URD                  XS9$ [9        U[:        RN                  5      (       a3  URA                  S U R                  5      n
[        R                  " XU5      $ U(       aK  [(        RP                  " U5      (       a0  [        R                  " XRA                  U R                  5      U5      $ URR                  " U5      (       a  UR
                  " U5      $ [9        U[T        RV                  5      (       a  U" U5      $ U R                  [        R                   L a  [        R                  " X5      $ U[Y        U R                  S0 5      ;   dD  U R                  RZ                  R]                  S5      (       d  U R                  RZ                  S:X  a  U(       a  [        R                  " XU5      $ U(       aB  [(        R^                  " U5      (       d'  [a        U5      (       d  [        R                  " XU5      $ [$        TU ]M  X5      $ ! [,         aK    [/        U R                  5      [.        L a+  [1        [,        US	U R                  R                   S
U S3/S9   GN“f = f)Nr>   )rM   ÚEnumVariablerp   r‡   r}   ÚsourceÚ__mro__Úfromkeysztype object 'z' has no attribute 'Ú'©ÚargsrÉ   ©rì   ztorch.r§   )1Ú rM   rë   rì   r   Úcreaterz   rp   r‡   r   ÚGetAttrVariabler%   rB   Úbuildrí   ÚcollectionsÚOrderedDictÚdefaultdictr‘   Úvar_getattrr   r€   r�   rt   r   r�   rÔ   r)   rÇ   ÚtypesÚFunctionTypeÚstaticmethodÚ__get__ÚclassmethodÚ__func__ÚpropertyÚfgetÚcall_functionÚUserMethodVariableÚClassMethodDescriptorTypeÚismemberdescriptorÚ
is_literalÚenumÚEnumr~   r†   Ú
startswithÚismethoddescriptorr2   )r‚   rÙ   r{   rM   rë   rì   ÚoptionsÚattr_sourcern   Úfget_vtÚfuncr•   s              €rX   rú   Ú$UserDefinedClassVariable.var_getattr  sÖ  ø€ ß4à26·+±+Ñ2I”˜DŸK™K¨Ô.Ètˆà�:ÓØ#×*Ò*¨4¯:©:×+>Ñ+>Ó?Ð?Ø�^Ó#Ø#×*Ò*¨4¯:©:×+BÑ+BÓCÐCØ�ZÓØ Ð(ˆGÜ×,Ò,¨T¸ÑIÀÑIÐIØ�YÓØŸ+™+×D¬-¸¿¹Ó*DˆKÜ"×(Ò(¨¯Z©Z×-?Ñ-?ÀÓMÐMð �J‰Jœ;×2Ñ2´K×4KÑ4KÐLÓLØ˜
Ó"ä‘7Ñ& rÓ0Ð0àˆð
	Ü×(Ò(¨¯©°TÓ:ˆCð �9ÓÔ!9×!QÑ!QÐRU×!VÑ!VÜ‘7Ñ& rÓ0Ð0àÔ)Ó)´*¸SÄ%×BTÑBT×2UÑ2UÜ×,Ò,¨T¸ÀfÑMÐMä�cœ<×(Ñ(Ü"×(Ò(¨¯[©[¸¿¹Ó-DÀfÓMÐMÜ˜œ[×)Ñ)Ü˜#Ÿ,™,¬×1Ñ1Ü)×/Ò/°·L±L×4EÑ4EÓF�Ø×,Ñ,¨R°¸Ó<Ð<Ü×/Ò/°·±¸dÑRÐRÜ˜œU×<Ñ<×=Ñ=ð —;‘;˜t T§Z¡ZÓ0ˆDÜ"×(Ò(¨°6Ó:Ð:ÞÜ×)Ò)¨#×.Ñ.Ü&×,Ò,¨R·±¸T¿Z¹ZÓ1HÈ&ÓQÐQà×&Ò& s×+Ñ+Ø#×*Ò*¨3Ó/Ð/Ü˜œTŸY™Y×'Ñ'Ù Ó$Ð$Ø�Z‰Zœ;×2Ñ2Ò2Ü×,Ò,¨TÓ8Ð8Ø”W˜TŸZ™Z¨°RÓ8Ó8Ø�J‰J×!Ñ!×,Ñ,¨X×6Ñ6Ø�z‰z×$Ñ$¨Ó/æÜ&×,Ò,¨R°fÓ=Ð=ö Ü×.Ò.¨s×3Ñ3Ü3°C×8Ñ8ä"×(Ò(¨°&Ó9Ð9ä‰wÑ" 2Ó,Ð,øôi ó 	Ü�D—J‘JÓ¤4Ò'Ü(Ü"Øà'¨¯
©
×(;Ñ(;Ð'<Ð<PÐQUÐPVÐVWÐXðòúð	ús   Å!R( Ò(AS=Ó<S=rñ   c                 óŠ  ^^^	^
^^^• SSK JnJn  UUUR                  " S5      UUR                  " S5      UR                  " S5      4S[        S[        S[        S	[        S
[        S[        S[
        [        S4   4S jjnU" U0 UD6u  mmmm
mm	S[        S[        S[        4UU	U
UUUU4S jjn[        R                  " U5      $ )a:  
functional: input, target, weight=None, size_average=None, ignore_index=- 100, reduce=None, reduction='mean',
label_smoothing=0.0

non functional ctor: weight=None, size_average=None, ignore_index=- 100, reduce=None, reduction='mean',
label_smoothing=0.0

non functional loss call: input, target, optional_output
r>   )ÚCONSTANT_VARIABLE_NONErM   iœÿÿÿÚmeang        ÚweightÚsize_averageÚignore_indexÚreduceÚ	reductionÚlabel_smoothingrQ   .c                 ó   • U UUUUU4$ rS   r…   )r  r  r  r  r  r  s         rX   Únormalize_argsÚIUserDefinedClassVariable._call_cross_entropy_loss.<locals>.normalize_argsp  s    € ð ØØØØØðð r[   ÚinputÚtargetc                 ó¾   >• SSK Jn  U" TTR                  R                  " S[        R
                  R                  R                  /[        U UT	TTTTT/0 5      Q76 S9$ )Nr>   )Úwrap_fx_proxyr  ©rÙ   Úproxy)	Úbuilderr   rà   Úcreate_proxyr§   ÚnnÚ
functionalÚcross_entropyr7   )
r  r  r   r  r  Ú
reduce_argr  r  rÙ   r  s
      €€€€€€€rX   Úfake_cross_entropy_lossÚRUserDefinedClassVariable._call_cross_entropy_loss.<locals>.fake_cross_entropy_lossŠ  sq   ø€ õ /á ØØ—i‘i×,Ò,Ø#Ü—H‘H×'Ñ'×5Ñ5ðô 'à!Ø"Ø"Ø(Ø(Ø&Ø%Ø+ð	ð óòñð r[   )ró   r  rM   rô   rB   rÌ   r   ÚLambdaVariable)r‚   rÙ   rñ   r�   r  rM   r  r)  r  r  r(  r  r  r  s    `      @@@@@@rX   Ú_call_cross_entropy_lossÚ1UserDefinedClassVariable._call_cross_entropy_loss_  sê   þ€ ÷ 	?ð '=Ø,BØ,<×,CÒ,CÀDÓ,IØ&<Ø)9×)@Ò)@ÀÓ)HØ/?×/FÒ/FÀsÓ/Kñ	Ü#ð	ä)ð	ô *ð	ô $ð		ô
 'ð	ô -ð	ô ”? CÐ'Ñ(õ	ñ0 ˜DÐ+ FÑ+ñ	
ØØØØØØð	Ü"ð	Ü,;ð	ä÷	õ 	ô4 ×'Ò'Ð(?Ó@Ð@r[   c           
      ó¢  >• SSK Jn  US:X  a�  [        U5      S:X  aŽ  U(       d‡  SU R                  R                  ;  am  U R
                  nU R
                  (       a!  [        U R
                  S5      n[        U5      n[        R                  " XR                  R                  5       U5      $ U R                  [        R                  [        R                  1;   a4  US:X  a.  [        R                  R                   " XR                  /UQ70 UD6$ U R                  [        R                  L a!  US:X  a  US   R#                  X/ USS  QU5      $ US:X  aS  [        U5      S:X  aD  [%        US   S5      (       a0  [        R&                  " U R                  US   R                  :H  5      $ US	:X  aS  [        U5      S:X  aD  [%        US   S5      (       a0  [        R&                  " U R                  US   R                  :g  5      $ [)        U R                  [*        5      (       a,  US
:w  a&  UR-                  U[*        5      R#                  XX45      $ [)        U R                  [.        [0        45      (       a,  US
:w  a&  UR-                  U[.        5      R#                  XX45      $ US
:X  a²  U R                  [        R                  L a•  [3        US   [4        5      (       a}  US   R                  [        R                  L a]  U(       a5  [        U5      S:w  a&  [7        UUS[        U5       S[        U5       S35        [9        0 [        R                  [;        5       S9$ [        U5      S:X  a<  [3        US   [        R<                  5      (       a  US:X  a  US   R?                  U5      $ US
:X  a[  [4        RA                  U R                  RB                  5      (       a-  URD                  RF                  RI                  U US   USS  5      $ US:X  a>  U RJ                  (       a-  [M        S[O        U R                  5      S[P        RR                  S9  [T        TU ]E  XX45      $ )Nr>   ©ÚSourcelessBuilderÚ__subclasses__r   rî   Úmove_to_endÚ__eq__rz   Ú__ne__rÉ   ú1 args and 0 kwargsú
 args and ú kwargs©Úmutation_typeÚ	__enter__rU   zCClass attribute mutation when the __dict__ was already materializedzVDyanmo does not support tracing mutations on a class when its __dict__ is materialized©Úgb_typeÚcontextÚexplanationÚhints)+r#  r0  Úlenrz   r}   rì   r   r   rB   rö   r1  r÷   rø   rù   r   ÚBuiltinVariableÚcall_custom_dict_fromkeysÚcall_methodrs   rM   rÈ   rÊ   rô   r¿   rË   rÇ   r�   r8   rC   rA   ÚGenericContextWrappingVariableÚenterrÔ   rÉ   rà   rá   Útrack_new_user_defined_objectr“   r   rŠ   r   ÚSUPPORTABLEr‘   )r‚   rÙ   r{   rñ   r�   r0  rì   r•   s          €rX   rC  Ú$UserDefinedClassVariable.call_method¦  sŽ  ø€ õ 	/ð Ð$Ó$Ü�D“	˜Q“ÞØ ¨¯
©
×(;Ñ(;Ó;à—[‘[ˆFØ�{�{Ü# D§K¡KÐ1AÓB�Ü1°&Ó9�Ü"×(Ò(¨¯Z©Z×-FÑ-FÓ-HÈ&ÓQÐQà�J‰Jœ;×2Ñ2´K×4KÑ4KÐLÓLØ˜
Ó"ä×,Ñ,×FÒFØ—J‘JðØ!%òØ)/ñð ð �Z‰Zœ;×2Ñ2Ò2°t¸}Ó7LØ˜‘7×&Ñ& r°°4¸¸°8°¸fÓEÐEØ�XÓ¤# d£)¨q£.´W¸TÀ!¹WÀg×5NÑ5NÜ×-Ò-¨d¯j©j¸DÀ¹G¿M¹MÑ.IÓJÐJØ�XÓ¤# d£)¨q£.´W¸TÀ!¹WÀg×5NÑ5NÜ×-Ò-¨d¯j©j¸DÀ¹G¿M¹MÑ.IÓJÐJÜ˜Ÿ
™
¤D×)Ñ)¨d°iÓ.?à$×+Ñ+¨B´Ó5×AÑAØ˜$óð ô ˜Ÿ
™
¤S¬)Ð$4×5Ñ5¸$À)Ó:Kà$×+Ñ+¨B´Ó4×@Ñ@ÀÈ4ÓXÐXà�IÓØ—
‘
œk×5Ñ5Ò5Ü˜4 ™7Ô$<×=Ñ=Ø�Q‘—‘¤×!8Ñ!8Ò8æœ#˜d›) q›.Ü#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ô %Ø”K×+Ñ+Ô;KÓ;Mñð ô �‹I˜‹NÜ˜4 ™7¤I×$LÑ$L×MÑMØ˜Ó#à˜‘7—=‘= Ó$Ð$Ø�YÓÔ#;×#SÑ#SØ�J‰J×Ñ÷$
ñ $
ð —9‘9×)Ñ)×GÑGØØ�Q‘Ø�Q�R�óð ð
 �]Ó" t×'8×'8ÜØ]Ü˜DŸJ™J›ØtÜ'×3Ñ3ò	ô ‰wÑ" 2¨TÓ:Ð:r[   c                 óÒ$  >• SSK Jn  SSKJnJn  SSKJn  [        X#5      nU R                  5       (       a‰  U(       a‚  [        R                  R                  U R                  5       " U V	s/ s H  o™R                  5       PM     sn	0 UR                  5        V
Vs0 s H  u  p«X«R                  5       _M     snn
D65      $ U R                  [        R                   R"                  L a  U R%                  XU5      $ U R                  [&        R(                  L a  SSKJn  U" U0 UD6$ U R                  [,        R.                  L a9  UR1                  [2        R4                  " U[6        R8                  5      U /UQU5      $ U R                  [,        R:                  L a¿  [=        U5      S:X  a  [        R>                  nOJ[=        U5      S:X  a8  [@        RB                  " US   5      (       d  [E        [F        XS   /S9  US   n/ nOUtpÒ[        RH                  RJ                  " U[L        /UQ70 UD6n[A        UR                  [,        R:                  U[O        5       S	9$ [Q        U R                  5      (       au  U R                  RR                  (       a0  [U        S
[W        U R                  5      SS/[X        RZ                  QS9  UR                  U[L        5      R\                  " U/UQ70 UD6$ U R                  [,        R^                  L Ga"  [        R>                  n S@S[`        [b           S -  S[d        S -  S[b        4S jjnS n [f        Rh                  " U5      Rj                  " U0 UD6nUc   eSURn                  ;   ae  URn                  S   Rq                  U5      (       d#  [U        SSU SU 3SS/[X        Rl                  QS9  URn                  S   Rs                  U5      nO/ nSURn                  ;   a  URn                  S   n[        Rt                  Rw                  UU[O        5       S9$ U R                  [x        Rz                  L aµ  [=        U5      S:X  a¦  [}        US   [        R~                  5      (       a„  [}        US   U5      (       ap  US   R�                  5       S;   aY  US   R‚                  n[…        UUS   R�                  5       5      R†                  n[        Rˆ                  " UUS   U RŠ                  S9$ U R                  [Œ        RŽ                  L a?  [=        U5      S:”  a  US   nO[        R>                  n[        R�                  " US   U5      $ U R                  [’        R”                  L aM  U(       d  [U        SSS S!/[X        Rl                  QS9  US   nUSS  n[        R–                  R™                  UUUS"9$ U R                  [š        Rœ                  L a&  U(       d  [        Rž                  R                  X5      $ U R                  [        R                   R¢                  L aj  U(       dc  [=        U5      S:X  aT  US   R¥                  5       (       d  [§        US#5        [        R¨                  R                  XS   R                  5       5      $ [«        [­        U R                  5      [¬        5      (       Gae  [¯        U R                  S$5      (       GaI  [¯        U R                  S%5      (       Ga-  U R±                  5       (       Ga  UR²                  " U R                  5      (       Gaõ  U RŠ                  (       Gaã  [µ        U R                  5      (       GdÈ  SS&K[J\n  SS'KKJ]nJ^n  U R                  [&        R¾                  [&        RÀ                  [&        RÂ                  [&        RÄ                  [&        RÆ                  4;   a4  [U        S(U R                   U R                   S)3/ [X        RZ                  QS9  UnU R                  [&        RÈ                  L a»  [}        US   UU45      (       a¥  [        RÊ                  RÌ                  RÎ                  (       d  [U        S*SU 3S+S,/S9  [}        US   U5      (       a:  US   nUS   R                  nUS   RÑ                  5       nURÓ                  UUU5      $ U" US   US   RŠ                  S9/USS  -   nURÔ                  R                   R×                  UR                  U[Ø        5      U U5      nURÛ                  US-UU5        U$ [Ý        U R                  5      (       Ga�  [ß        U R                  5      nU R                  Rà                  S.:X  aQ  U(       d  [=        U5      S:w  a&  [ã        US.S/[=        U5       S0[=        U5       S135        US   Rs                  U5      nOêU R                  Rä                  n [ç        U5      nURé                  S /[=        U5      [=        U5      -
  -  5        0 n![ë        UU5       H>  u  n"n#U#b  M  U"U;   a  UU"   n$O"U"U ;   d   e[2        R4                  " UU U"   5      n$U$U!U"'   M@     U!R                  5        H"  u  n%n&U%U;   d   eU&UURí                  U%5      '   M$     [ï        S2 U 5       5      (       d   eSS3KxJyn'  SS4K:Jzn(  U(" UU R                  U'" 5       S	9$ U R                  [        Rö                  L a>  SS5K:J|n)  UR                  U[ú        5      RÓ                  XU5      n*U)" U*R                  5      $ [ý        U R                  5      (       Ga  U R±                  5       (       Ga  [þ        GR                   " U R                  5      nU RŠ                  c   eG[        U RŠ                  5      n+[ç        U5      nURé                  S /[=        U5      [=        U5      -
  -  5        0 n,[ë        G[        GR                  " 5       UU5       GH  u  n-n.n#U#b  M  U.GR                  U;   a  UU.GR                     n#OÂU.GR
                  (       d  MC  U.GR                  [þ        GR                  La8  [2        R4                  " UU.GR                  G[        G[        U+U-5      S65      S9n#OWU.GR                  [þ        GR                  La6  [2        R4                  " UU.GR                  5      n/U/RÓ                  U/ 0 5      n#OMñ  U#U,U.GR                  '   GM     UGR                  U,5        URÔ                  R                   R×                  UR                  U[Ø        5      U U5      n0U0RÛ                  US-X#5        U0$ U R                  U GR                  5       ;   d  G[        U R                  5      (       Gaþ  SS7K:JŽn1  G[        (       a¸  U R                  G[         ;   a£  [=        U5      S:X  a”  [}        US   U15      (       a€  [=        US   R                  5      S:”  ad  [ï        S8 US   R                   5       5      (       a@  U" UURÔ                  GR"                  " S9[        GR$                  /G['        X#5      Q76 S:9n2U2/n[«        U R                  [        GR(                  5      (       aÓ  SS;K•J
n3  SS<K:J–n4  G[/        UR                  5        V
Vs0 s H  u  p«U3" U
5      U_M     snn
5      n5U4" [ç        U5      5      n6U R                  " U6R                  5       0 U5R                  5       D6n7SS=K˜J™n8  SS>KšJ›n9  U8" U7U9GR9                  U6U55      5      n-U" UURÔ                  GR#                  S9G[:        U-40 5      S:9n:U:$ [«        U R                  [        GR<                  5      (       aÓ  SS;K•J
n3  SS<K:J–n4  G[/        UR                  5        V
Vs0 s H  u  p«U3" U
5      U_M     snn
5      n5U4" [ç        U5      5      n6U R                  " U6R                  5       0 U5R                  5       D6n;SS=K˜J™n8  SS?KšJŸn<  U8" U;U<GRA                  U6U55      5      n-U" UURÔ                  GR#                  S9G[:        U-40 5      S:9n:U:$ U" UURÔ                  GR"                  " S9U R                  /G['        X#5      Q76 S:9n:U:$ U R                  G[B        GRD                  L aa  [=        U5      S:X  a,  US   R¥                  5       (       a  US   R                  5       n=OS n=G[B        GRD                  " U=5      n>G[G        U>5      $ U R                  [x        GRH                  L aB  [=        U5      S:X  a3  [}        US   G[.        5      (       a  [        GRJ                  " US   5      $ UR²                  " U R                  5      (       a`  U RŠ                  (       aO  G[M        5          UR1                  [2        R4                  " U[6        GRN                  5      U /UQU5      sS S S 5        $ G[P        T?U G]¥  XU5      $ s  sn	f s  snn
f ! [F         a/  n[U        SSU SU 3SS/[X        Rl                  QUS9   S nAGNâS nAff = fs  snn
f s  snn
f ! , (       d  f       Ns= f)ANr   rH   r>   )r0  r   )rD  )ÚNullContextVariabler   rð   r8  zTypedDict with optional keysz<Dyanmo does not support tracing TypedDict with optional keysz(Avoid using TypedDict with optional keysr;  ÚiterableÚmaxlenrQ   c                 ó   • g rS   r…   )rK  rL  s     rX   Údeque_signatureÚ?UserDefinedClassVariable.call_function.<locals>.deque_signature;  s   € ð r[   z&collections.deque() with bad argumentszargs=ú	, kwargs=z8Detected call to collections.deque() with bad arguments.z$Fix the call to collections.deque().)r<  r=  r>  r?  Úfrom_excz.collections.deque() with bad iterable argumentzZCall to collections.deque() has an iterable argument that Dynamo cannot convert to a list.zeUse a simpler sequence type that Dynamo can convert to a list (e.g. list, tuple, list iterator, etc.))rL  r9  )r:  Ú__exit__rò   z!missing args to functools.partialró   z0functools.partial requires at least one argumentzFix the functools.partial call.)rñ   Úkeywordsz0torch.cuda.device() requires a constant argumentr:  rR  )ÚTorchCtxManagerClassVariable)ÚBaseUserFunctionVariableÚ3FunctionDecoratedByContextlibContextManagerVariablezunsupported contextlib.* APIzˆ not supported. This may be due to its use of context-specific operations that are not supported in Dynamo yet (i.e. Exception handling)z,attempted to trace contextlib.contextmanagerz.Tracing contextlib.contextmanager is disabled.z7Set torch._dynamo.config.enable_trace_contextlib = Truer’   ztorch.return_typesr5  r6  r7  c              3   ó(   #   • U  H  oS Lv •  M
     g 7frS   r…   ©Ú.0Úxs     rX   Ú	<genexpr>Ú9UserDefinedClassVariable.call_function.<locals>.<genexpr>  s   é € Ð8²%¨Q D�=²%ùs   ‚)ÚAttributeMutationNew)ÚNamedTupleVariable)ÚSizeVariableÚdefault©rN   c              3   ó@   #   • U  H  oR                  5       v •  M     g 7frS   )Ú	is_tensorrX  s     rX   r[  r\  b  s   é € Ð=ª}¨!Ÿ™Ÿ˜ª}ùó   ‚r  r!  rL   ©rO   )Úregister_graph_created_object)ÚStreamVariable)ÚEventVariable©NN)©rá   rI   r#  r0  r   Úctx_managerrD  r(   r×   r   rM   rô   rš   Úitemsrz   r§   r%  ÚCrossEntropyLossr,  Ú
contextlibÚnullcontextrJ  r÷   rø   Úinline_user_function_returnrB   rö   r   Úconstruct_dictrù   r@  r  rD   Úis_supported_argr   Ú	TypeErrorrA  Úcall_custom_dictrÊ   rA   r
   Ú__optional_keys__r   rŠ   r   rG  Ú	call_dictÚdequer   r   Úintr   Ú	signatureÚbindÚ
USER_ERRORÚ	argumentsÚhas_force_unpack_var_sequenceÚforce_unpack_var_sequenceÚlistsÚDequeVariablerû   Ú
MethodTyperÇ   ÚUserFunctionVariableÚget_nameÚcm_objr~   r   r  rì   ÚweakrefÚrefÚWeakRefVariableÚ	functoolsÚpartialÚ	functionsÚFunctoolsPartialVariableÚwarningsÚcatch_warningsÚCatchWarningsCtxManagerVariabler±   r¨   Úis_python_constantr@   ÚCUDADeviceVariablerÈ   rt   rs   Úis_standard_newÚ"cls_supports_mutation_side_effectsrm   ró   rT  rU  rV  Ú_AsyncGeneratorContextManagerÚclosingÚredirect_stdoutÚredirect_stderrÚAsyncExitStackÚ_GeneratorContextManagerÚ_dynamoÚconfigÚenable_trace_contextlibÚkeys_as_python_constantr  rà   rF  rT   rC  r1   r5   r†   r8   Ú_field_defaultsrÍ   ÚextendÚzipÚindexÚallÚbaser]  r^  r«   r_  rÌ   r/   ÚdataclassesÚfieldsr    Ú	itertoolsÚcountr{   Úinitr`  ÚMISSINGr   r"   Údefault_factoryr¾   rÂ   r   rN   Únpr;   r$  Ústackr7   r»   ÚconstantrO   rC   Úgraph_bytecode_inputsrf  Ústreamsrg  Ú!make_construct_in_graph_stream_fnr   r¼   rh  Ú make_construct_in_graph_event_fnÚrandomÚRandomÚRandomVariableÚMappingProxyTypeÚMappingProxyVariabler   Ú%instantiate_user_defined_class_objectr‘   )@r‚   rÙ   rñ   r�   rI   r0  r   rD  Úconstant_argsrZ  ÚkÚvrJ  r¨  Údict_vtrL  rN  Ú
bound_argsÚerk  rƒ  ÚfnÚcallbackÚ	rest_argsrT  rU  rV  Úarg_newÚfn_varÚ	args_listÚkwargs_dictr£  Úfield_defaultsÚvar_tracker_kwargsÚ
field_nameÚvar_trackerÚ	field_varr{   rz   r]  r^  r_  ÚtupÚfields_sourceÚdefault_kwargsÚindÚfieldÚ
factory_fnÚvarrN   ÚstackedrM   rO   Ú
var_kwargsÚvar_argsÚstreamrf  rg  Útensor_variableÚeventrh  ÚseedÚrandom_objectr•   s@                                                                  €rX   r  Ú&UserDefinedClassVariable.call_functionö  sö  ø€ õ 	/ß=Ý?ä+¨DÓ9ˆà×)Ñ)×+Ñ+¶ä×-Ñ-×4Ñ4Ø×'Ñ'Ô)Ù6:Ó;²d°×*Ñ*Ö,±dÑ;ðà=C¿\¹\¼^ÔLº^±T°Q�q×.Ñ.Ó0Ò0¹^ÒLñóð ð �Z‰Zœ5Ÿ8™8×4Ñ4Ò4Ø×0Ñ0°¸6ÓBÐBØ�Z‰Zœ:×1Ñ1Ò1å8á&¨Ð7°Ñ7Ð7Ø�Z‰Zœ;×2Ñ2Ò2Ø×1Ñ1Ü×%Ò% b¬)×*BÑ*BÓCØ�˜�Øóð ð
 �Z‰Zœ;×2Ñ2Ò2Ü�4‹y˜A‹~Ü"+×"BÑ"B‘Ü�T“˜a“ô +×;Ò;¸DÀ¹G×DÑDÜ,¬Y¸ÀqÁ'ÀÒKØ"& q¡'�Ø‘à)-Ð&�Ü×/Ñ/×@Ò@Ø”DðØòØ#)ñˆGô 'Ø—‘Ü×'Ñ'ØÜ.Ó0ñ	ð ô ˜$Ÿ*™*×%Ñ%Ø�z‰z×+×+ÜØ:Ü §
¡
›OØ ^àBðä*×6Ñ6ðò	ð %×+Ñ+¨B´Ó5×?Ò?ÀÐTÀTÒTÈVÑTÐTØ�Z‰Zœ;×,Ñ,Ó,Ü×5Ñ5ˆFð MQñÜ"¤3™-¨$Ñ.ðÜ?BÀT¹zðäõð
 ˆJðÜ$×.Ò.¨Ó?×DÒDÀdÐUÈfÑU�
ð Ñ)Ð)Ð)Ø˜Z×1Ñ1Ó1Ø!×+Ñ+¨JÑ7×UÑUØ÷ñ ô "Ø PØ"'¨ v¨Y°v°hÐ ?ð%-ðFðô /×9Ñ9ðò
ð #×,Ñ,¨ZÑ8×RÑRÐSUÓV‘ð �à˜:×/Ñ/Ó/Ø#×-Ñ-¨hÑ7�ä—?‘?×0Ñ0Ø˜fÔ4DÓ4Fð 1ð ð ð
 �J‰Jœ%×*Ñ*Ò*Ü�D“	˜Q“Ü˜4 ™7¤I×$BÑ$B×CÑCÜ˜4 ™7Ð$B×CÑCØ�Q‘× Ñ Ó"Ð&?Ó?à˜!‘W—^‘^ˆFÜ˜  a¡×!1Ñ!1Ó!3Ó4×=Ñ=ˆBÜ×/Ò/°°D¸±GÀDÇKÁKÑPÐPØ�Z‰Zœ7Ÿ;™;Ò&Ü�4‹y˜1‹}Ø ™7‘ä$×;Ñ;�Ü×,Ò,¨T°!©W°hÓ?Ð?Ø�Z‰Zœ9×,Ñ,Ò,ÞÜØ?ØØ Rà9ðä*×5Ñ5ðò	ð �a‘ˆBØ˜Q˜R˜ˆIô ×&Ñ&×?Ñ?Ø˜¨Vð @ð ð ð �Z‰Zœ8×2Ñ2Ò2¾4Ü×<Ñ<×CÑCÀBÓOÐOØ�Z‰Zœ5Ÿ:™:×,Ñ,Ò,¶VÄÀDÃ	ÈQÃØ˜‘7×-Ñ-×/Ñ/Ü$ØÐJôô ×/Ñ/×6Ñ6°rÀ¹7×;UÑ;UÓ;WÓXÐXä”t˜DŸJ™JÓ'¬×.Ò.ÜØ—
‘
˜K÷ò ô Ø—
‘
˜J÷ò ð ×$Ñ$×&Ò&Ø×>Ò>¸t¿z¹z×JÒJØ——�Ü0°·±×<Ò<å6÷ð �z‰zÜ×8Ñ8Ü×"Ñ"Ü×*Ñ*Ü×*Ñ*Ü×)Ñ)ðó ô Ø:Ø#Ÿz™z˜lØ#'§:¡: ,ð /;ð !;ðÜ*×6Ñ6ðò	ð ˆGØ�z‰zœZ×@Ñ@Ò@ÄZØ�Q‘Ð2Ð4PÐQ÷Fñ Fô —}‘}×+Ñ+×C×CÜ!Ø NØ"'¨ v Ø$TàUðò	ô2 ˜d 1™gÐ'C×DÑDØ! !™W�FØ $ Q¡§¡�IØ"& q¡'×"AÑ"AÓ"C�KØ!×/Ñ/°°I¸{ÓKÐKñ HØ˜Q™¨¨Q©¯©ñðð ˜˜�Hñ	�ð —Y‘Y×+Ñ+×IÑIØ!×(Ñ(¨¬VÓ4ØØóˆFð
 ×Ñ˜r :¨w¸Ô?ØˆMÜ˜tŸz™z×*Ò*Ü& t§z¡zÓ2ˆFà�z‰z×$Ñ$Ð(<Ó<ÞœS ›Y¨!›^Ü'ØØ,Ø-Ü˜t›9˜+ Z´°F³¨}¸GÐDô	ð ˜Q™×9Ñ9¸"Ó=‘à!%§¡×!;Ñ!;�ä˜T›
�à—‘˜d˜V¤s¨6£{´S¸³ZÑ'?Ñ@ÔAàACÐ"Ü/2°6¸5Ö/AÑ+�J Ø"Ó*Ø%¨Ó/Ø(.¨zÑ(:™Ià#-°Ó#?Ð?Ð#?Ü(7×(=Ò(=Ø " N°:Ñ$>ó)˜Ið :CÐ*¨:Ó6ñ 0Bð $6×#;Ñ#;Ö#=‘K�D˜%Ø 6›>Ð)˜>Ø05�E˜&Ÿ,™, tÓ,Ó-ñ $>ô Ñ8±%Ó8×8Ñ8Ð8Ð8õ 3Ý1á%ØØ—
‘
Ù2Ó4ñð ð
 �Z‰Zœ5Ÿ:™:Ò%å+à#×*Ñ*¨2¬uÓ5×CÑCÀBÈfÓUˆCÙ §	¡	Ó*Ð*Ü  §¡×,Ò,°×1EÑ1E×1GÒ1GÜ ×'Ó'¨¯
©
Ó3ˆFØ—;‘;Ñ*Ð*Ð*Ý1°$·+±+Ó>ˆMÜ˜“JˆEØ�L‰L˜$˜¤3 v£;´°U³Ñ#;Ñ<Ô=àˆNÜ+.­y¯«Ó/@À&È%×+PÑ'��U˜KØÓ&Ø—z’z VÓ+Ø&,¨U¯ZªZÑ&8™à$ŸzŸz˜zÙ$à Ÿ=š=´×0CÒ0CÒCÜ*9×*?Ò*?Ø "Ø %§¢Ý'1Ý$1°-ÀÓ$EÀyó("ñ+™Kð #×2Ò2¼+×:MÒ:MÒMÜ)8×)>Ò)>Ø " E×$9Ò$9ó*˜Jð +5×*BÑ*BÀ2ÀrÈ2Ó*N™Kñ %à1<�N 5§:¢:Ô.ñ5 ,Qð6 �MŠM˜.Ô)à—)‘)×(Ñ(×FÑFØ!×(Ñ(¨¬VÓ4ØØóˆCð
 �O‰O˜B 
¨DÔ9ØˆJà�J‰J˜$×0Ò0Ó2Ó2Ý1°$·*±*×=Ò=õ ,÷ “Ø—J‘JÕ"5Ó5Ü˜“I “NÜ˜t A™w¨×5Ñ5Ü˜˜Q™Ÿ™Ó&¨Ó*ÜÑ=¨t°A©w¯}ª}Ó=×=Ñ=ñ (ØØŸ)™)×0Ó0Ø'ÜŸšðõ +¨4Ó8òñ�ð  �y�ä˜$Ÿ*™*¤e§l¢l×3Ñ3Ý6Ý0å.Ø8>¿¹¼ÔGº±°Ñ% aÓ(¨!Ò+¹ÒGó�
ñ )¬¨d«Ó4�ØŸšØ×1Ñ1Ó3ðà!×4Ñ4Ó6ñ�õ RÝ3á3ØØ"×DÒDØ  *óó�ñ #0ØØŸ)™)×0Ò0Ø'Õ)EÈÀvÈróñ#�ðX #Ð"ôM ˜DŸJ™J¬¯ª×4Ñ4Ý6Ý0õ /Ø8>¿¹¼ÔGº±°Ñ% aÓ(¨!Ò+¹ÒGó�
ñ )¬¨d«Ó4�ØŸ
š
Ø×1Ñ1Ó3ðà!×4Ñ4Ó6ñ�õ RÝ2á3ØØ!×BÒBØ  *óó�ñ #0ØØŸ)™)×0Ò0Ø'Õ)EÈÀvÈróñ#�ð  #Ð"ñ #0ØØŸ)™)×0Ó0Ø'ØŸ
™
ðõ +¨4Ó8òñ#�ð #Ð"Ø�Z‰Z�6Ÿ=š=Ò(Ü�4‹y˜A‹~ $ q¡'×"<Ñ"<×">Ñ">Ø˜A‘w×1Ñ1Ó3‘à�Ý"ŸM›M¨$Ó/ˆMÝ! -Ó0Ð0à�J‰Jœ%×0Ò0Ò0Ü�D“	˜Q“Ü˜4 ™7Õ$5×6Ñ6ô ×1Ó1°$°q±'Ó:Ð:Ø×;Ò;¸D¿J¹J×GÑGÈDÏKÏKÝ5Õ7Ø×5Ñ5Ü#×)Ò)ØœI×KÒKóð �M˜D�MØó÷ 8Ñ7õ ‰wÒ$ R¨vÓ6Ð6ùòG <ùÛLøôx ó 
ÜØDØ# D 6¨°6°(Ð;Ø Zà>ðä*×5Ñ5ðð ÷	ð 	ûð
üób	 Hùó8 H÷b 8Õ7úsK   Á*AHÂAH
Ì<&AH ú-AI
þ*AI
ÁF/:AIÁH
AI	ÁH$AIÁIAI	ÁI
AI&c                 ó¬   • [         R                  " U R                  SS5      n[        U[        5      (       a  UR
                  nU[        R                  L $ )z"Check for __new__ being overriddenrÉ   N)r   r€   rz   rÇ   rý   r   rT   rÉ   )r‚   Únew_fns     rX   r�  Ú(UserDefinedClassVariable.is_standard_newË  s?   € ä×'Ò'¨¯
©
°I¸tÓDˆÜ�fœl×+Ñ+Ø—_‘_ˆFØœŸ™Ð'Ð'r[   rM   c                 ó  >• U R                   (       ah  [        U R                   U5      n[        UR                  [        R
                  5      5        [        R                  " [        U R                  U5      5      $ [        TU ]-  X5      $ rS   )rì   r   r   Ú
make_guardr   ÚHASATTRr   rM   rs   rz   r‘   Úcall_obj_hasattr)r‚   rÙ   r{   rì   r•   s       €rX   rÞ  Ú)UserDefinedClassVariable.call_obj_hasattrÒ  sa   ø€ ð �;�;Ü §¡¨TÓ2ˆFÜ˜&×+Ñ+¬L×,@Ñ,@ÓAÔBÜ×-Ò-¬g°d·j±jÀ$Ó.GÓHÐHÜ‰wÑ'¨Ó1Ð1r[   c                 óZ   >• US:X  a  U R                   R                  $ [        TU ]  X5      $ )Nrp   )rz   rp   r‘   Úconst_getattr©r‚   rÙ   r{   r•   s      €rX   rá  Ú&UserDefinedClassVariable.const_getattrÛ  s+   ø€ Ø�:ÓØ—:‘:×&Ñ&Ð&Ü‰wÑ$ RÓ.Ð.r[   Tc                 ó   • g©NTr…   r™   s    rX   Úis_python_hashableÚ+UserDefinedClassVariable.is_python_hashableà  s   € Ør[   c                 ó,   • [        U R                  5      $ rS   ©Úhashrz   r™   s    rX   Úget_python_hashÚ(UserDefinedClassVariable.get_python_hashã  s   € Ü�D—J‘JÓÐr[   Úotherc                 ót   • [        U[        R                  5      =(       a    U R                  UR                  L $ rS   )rÇ   r   r�   rz   ©r‚   rí  s     rX   Úis_python_equalÚ(UserDefinedClassVariable.is_python_equalæ  s,   € ä�uœi×@Ñ@ÓA÷ *Ø—
‘
˜eŸk™kÐ)ð	
r[   )r“   rz   )*rp   r†   r‡   rˆ   rt   rT   r‰   r   r’   rš   rž   rŠ   r¤   rý   r‡  Úcacher¿   r¬   rÂ   rÑ   ÚboolrÔ   r×   rç   rB   rú   r   rÊ   r,  rÍ   rC  r  r�  rÞ  rá  r   ræ  rw  rë  rð  r‹   Ú__classcell__©r•   s   @rX   r�   r�   ª   s—  ø‡ à�‰<Óð"˜d 6™lð "°cð "¸d÷ "ð D¨¡Lô ð˜&ô ð:˜#ô :ð Ø‡_�_ð
 C¨¨V©Ñ$5ó 
ó ó ð
ð Ø‡_�_ðF˜s 4¨¡<Ñ0ó Fó ó ðFð: Ø‡_�_ð+ s¨3¡xó +ó ó ð+ð" ðM vð M°$ó Mó ðMð
;¨4ô ;ð*Ð*Að *Èð *ÐPTô *ðR-Ð5ð R-¸Sð R-À_÷ R-ðhEAà#ðEAð �Ñ'ðEAð �S˜/Ð)Ñ*ð	EAð
 
ôEAðNN;à#ðN;ð ðN;ð �?Ñ#ð	N;ð
 �S˜/Ð)Ñ*ðN;ð 
÷N;ð`S7à#ðS7ð �Ñ'ðS7ð �S˜/Ð)Ñ*ð	S7ð
 
÷S7ðj( ô (ð2Ø)ð2Ø14ð2à	÷2ð/Ð 7ð /¸sð /Às÷ /ð
 G¨D¡Mô ð  ô  ð
 Vð 
°÷ 
ò 
r[   r�   c                   ó2   • \ rS rSr\S\\   4S j5       rSrg)Ú!UserDefinedExceptionClassVariableií  rQ   c                 ó   • U R                   $ rS   r˜   r™   s    rX   r¼  Ú$UserDefinedExceptionClassVariable.fnî  s   € à�z‰zÐr[   r…   N)	rp   r†   r‡   rˆ   r  rt   rT   r¼  r‹   r…   r[   rX   r÷  r÷  í  s   † Øð�D˜‘Ló ó ór[   r÷  c            
       óz   ^ • \ rS rSr% Sr\\R                     \S'   SSS\	S\
\   S\\	\4   S	\4
U 4S
 jjrSrU =r$ )ÚUserDefinedEnumClassVariableió  a�  
Represents Enum class objects (the class itself, not instances).

Handles Enum metaclass methods like __contains__ by checking if the method
is from the standard EnumType metaclass and executing it directly.

Not yet supported:
- __iter__: iteration over enum members (e.g., `for x in SomeEnum`)
- __reversed__: reversed iteration
- Flag enum membership checks (e.g., `Flag.A in combined_flags`)
rz   rÙ   rK   r{   rñ   r�   rQ   c                 óä  >• U R                  U5      nU[        ;   aÅ  US:X  a¿  [        U5      S:X  a°  U(       d©  US   n[        U[        R
                  5      (       a6  [        R                  R                  UR                  U R                  ;   5      $ UR                  5       (       a:  [        R                  R                  UR                  5       U R                  ;   5      $ [        TU ]1  XX45      $ )NÚ__contains__r>   r   )rƒ   r+   r@  rÇ   r   rë   rM   rô   rz   rŽ  rš   r‘   rC  )r‚   rÙ   r{   rñ   r�   ÚmethodÚargr•   s          €rX   rC  Ú(UserDefinedEnumClassVariable.call_method  sÃ   ø€ ð ×1Ñ1°$Ó7ˆØÔ&Ó&Ø�~Ó%¬#¨d«)°q«.ÆØ˜1‘g�Ü˜c¤9×#9Ñ#9×:Ñ:ä$×5Ñ5×<Ñ<¸S¿Y¹YÈ$Ï*É*Ñ=TÓUÐUØ×+Ñ+×-Ñ-ä$×5Ñ5×<Ñ<Ø×.Ñ.Ó0°D·J±JÑ>óð ô ‰wÑ" 2¨TÓ:Ð:r[   r…   )rp   r†   r‡   rˆ   Ú__doc__rt   r  r	  r‰   rŠ   rÍ   rB   rÊ   rC  r‹   rô  rõ  s   @rX   rû  rû  ó  sa   ø‡ ñ
ð �—	‘	‰?Óð;à#ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
÷;õ ;r[   rû  c                   ó   • \ rS rSrSrg)ÚNO_SUCH_SUBOBJi  r…   N©rp   r†   r‡   rˆ   r‹   r…   r[   rX   r  r    ó   † Úr[   r  c                   ó   • \ rS rSrSrg)ÚRemovableHandleClassi  r…   Nr  r…   r[   rX   r  r    s   † ò 	r[   r  rÙ   rK   r¼  .rñ   r�   c                 ó¦  • SSK Jn  U Vs/ s H  oUR                  5       PM     nnUR                  5        VVs0 s H  u  pgXgR                  5       _M     nnn[	        U R
                  R                  5      nU" U0 UD6n	[        U5      n
U R
                  R                  R                  XU45        U" X
5      R                  U	5      $ s  snf s  snnf )Nr>   )ÚVariableBuilder)
r#  r	  rš   rk  r@  rà   Úrandom_callsr#   re   Úwrap_unspecialized_primitive)rÙ   r¼  rñ   r�   r	  rZ  r·  r¸  Úrandom_call_indexÚexample_valuerì   s              rX   Úcall_random_fnr  %  s¶   € õ )á,0Ó1ªD q× Ñ Ö"©D€DÐ1Ø4:·L±L´NÔC²N©D¨Aˆa×%Ñ%Ó'Ò'±N€FÑCÜ˜BŸI™I×2Ñ2Ó3ÐÙ˜Ð' Ñ'€MÜÐ0Ó1€FØ‡I�I×Ñ×!Ñ! 2¨VÐ"4Ô5ñ ˜2Ó&×CÑCÀMÓRÐRùò 2ùÛCs
   ‹C¹Cc                   ó�  ^ • \ rS rSrSrSSS1\R                  krSSSSS.S\S\S-  S\	S-  S	\
S-  S
\\
   S-  S\SS4U 4S jjjrS\4S jrS\4S jrSSS\4S jrS\4S jrS\4U 4S jjrS\4U 4S jjrS>S jrSSS\
4S jrSSS\
SSS\\   S\\\4   S\
4S jr\\R8                  S\\   4S j5       5       rSSS \S\\   S\\\4   S\
4
U 4S! jjr  S?SSS \
S\
S"\S\
4
S# jjr!S\4S$ jr"SSS\\
   4U 4S% jjr#SSS\4S& jr$SSS\\
   4S' jr%SSS\
4S( jr&S\4S) jr'SSS\\
   S\\\
4   S\
4U 4S* jjr(S\4S+ jr)S,\S\4S- jr*S \S\4S. jr+S/\S\4S0 jr,S/\S\-\\4   S-  4S1 jr.SSS2\S\4S3 jr/S \S\04S4 jr1SSS \S\
4S5 jr2SSS \SS64S7 jr3S\4S8 jr4S\54S9 jr6S:\S\4S; jr7            S@S< jr8S=r9U =r:$ )AÚUserDefinedObjectVariablei9  zW
Mostly objects of defined type.  Catch-all for something where we only know the type.
rz   Ú
value_typeÚattrs_directly_modifed_on_dictN)r  Ú
cls_sourceÚbase_cls_vtÚ	init_argsr  r  r  r�   rQ   c                ó–  >• [         TU ]  " S0 UD6  Xl        U=(       d    [        U5      U l        [        U5      U R                  L d   eX0l        Uc'  U R                  b  [        U R                  5      U l        X@l        XPl	        [        5       U l        0 U l        0 U l        SS KJs  Jn  UR#                  U R                  5      U l        UR#                  U R                  5      (       aC  U R                  (       a2  ['        U R                  R)                  [*        R,                  5      5        [/        U R                  5      U l        g )Nr   r…   )r‘   r’   rz   rt   r  r  rì   r&   r  r  r¿   r  Ú_looked_up_attrsÚ_subobj_from_classÚtorch.utils._pytreeÚutilsÚ_pytreeÚis_constant_classÚis_pytree_constant_classr   rÜ  r   ÚEQUALS_MATCHr6   Ú_object_has_getattribute)	r‚   rz   r  r  r  r  r�   Úpytreer•   s	           €rX   r’   Ú"UserDefinedObjectVariable.__init__E  s÷   ø€ ô 	‰ÒÑ"˜6Ò"ØŒ
Ø$×3¬¨U«ˆŒÜ�E‹{˜dŸo™oÒ-Ð-Ð-à$ŒØÑ $§+¡+Ñ"9Ü(¨¯©Ó5ˆDŒOð 'ÔØ"Œô 9<»ˆÔ+ð
 46ˆÔð 68ˆÔç,Ð,à(.×(@Ñ(@ÀÇÁÓ(QˆÔ%Ø×#Ñ# D§O¡O×4Ñ4¸¿¿Ü˜$Ÿ+™+×0Ñ0´×1JÑ1JÓKÔLä(?ÀÇ
Á
Ó(KˆÕ%r[   c                 ó²   • U R                   R                  nUS;   a   [        [        U R                  SS 5      5      nU R
                  R                   SU S3$ )N)Úbuiltin_function_or_methodÚgetset_descriptorÚmethod_descriptorrþ  rp   r¢   r£   )r  rp   rŠ   r~   rz   r•   )r‚   Úinners     rX   Ú__str__Ú!UserDefinedObjectVariable.__str__v  sU   € Ø—‘×(Ñ(ˆØð 
ó 
ô œ §
¡
¨J¸Ó=Ó>ˆEØ—.‘.×)Ñ)Ð*¨!¨E¨7°!Ð4Ð4r[   c                 ób   • U R                   R                   SU R                  R                   S3$ r¡   ©r•   rp   r  r™   s    rX   r¤   Ú"UserDefinedObjectVariable.__repr__�  ó+   € Ø—.‘.×)Ñ)Ð*¨!¨D¯O©O×,DÑ,DÐ+EÀQÐGÐGr[   rá   rI   c                 ó   • g©NFr…   ©r‚   rá   s     rX   Úis_underlying_vt_modifiedÚ3UserDefinedObjectVariable.is_underlying_vt_modified„  s   € Ør[   c                 ó   • U R                   $ rS   ©r  r™   s    rX   Úpython_typeÚ%UserDefinedObjectVariable.python_type‡  s   € Ø�‰Ðr[   c                 ó”  >• U R                   (       a  U R                  (       a  U R                  $ SSKJn  [        U R                  U5      (       ak  SSKJn  UR                  " 5       nUbQ  UR                  (       a@  UR                  R                  R                  U SSS9nUb  UR                  5       nU" U5      $ [        TU ]5  5       $ )Nr   )Ú_MaskModWrapperrJ   r¼  TrÝ   )r  rì   rz   Ú!torch.nn.attention.flex_attentionr7  rÇ   Útorch._dynamo.symbolic_convertrK   Ú
current_txÚexportrà   rá   rã   rš   r‘   )r‚   r7  rK   rÙ   Úfn_vtr¼  r•   s         €rX   rš   Ú,UserDefinedObjectVariable.as_python_constantŠ  s¢   ø€ Ø×(×(¨T¯[¯[ð —:‘:Ðõ 	Fä�d—j‘j /×2Ñ2ÝLà&×1Ò1Ó3ˆBØ‰~ "§)§)ØŸ	™	×.Ñ.×8Ñ8¸¸tÐPTÐ8ÐU�ØÑ$ð ×1Ñ1Ó3�BÙ*¨2Ó.Ð.ä‰wÑ)Ó+Ð+r[   c                 ó¾   >• U R                   (       a>  [        U R                   R                  [        R                  5      5        U R
                  $ [        TU ]  5       $ rS   )rì   r   rÜ  r   ÚID_MATCHrz   r‘   Úguard_as_python_constant)r‚   r•   s    €rX   r@  Ú2UserDefinedObjectVariable.guard_as_python_constant¥  s?   ø€ Ø�;�;Ü˜$Ÿ+™+×0Ñ0´×1FÑ1FÓGÔHØ—:‘:ÐÜ‰wÑ/Ó1Ð1r[   c                 ó8   • [        U 5      (       d
   SU  35       eg )Nz<calling torch function on object without __torch_function__ )r.   r™   s    rX   Útorch_function_checkÚ.UserDefinedObjectVariable.torch_function_check«  s$   € Ü! $×'Ñ'ð 	
ØJÈ4È&ÐQó	
Ñ'r[   rÙ   rK   c                 ó>   • U R                  5         SSKJn  U" X5      $ )Nr>   )Úget_torch_function_fn)rC  Útorch_functionrF  )r‚   rÙ   rF  s      rX   Úget_torch_fnÚ&UserDefinedObjectVariable.get_torch_fn°  s   € Ø×!Ñ!Ô#Ý9á$ RÓ.Ð.r[   r¼  rû   rO   rñ   c                 óf   • U R                  5         SSKJn  U" UU R                  U5      UUUU5      $ )Nr>   )Úcall_torch_function)rC  rG  rK  rH  )r‚   rÙ   r¼  rû   rñ   r�   rK  s          rX   rK  Ú-UserDefinedObjectVariable.call_torch_function¶  s=   € ð 	×!Ñ!Ô#å7á"ØØ×Ñ˜bÓ!ØØØØó
ð 	
r[   c                  ó‚   • [         R                   [         R                  [         R                  [         R                  1n U $ rS   )r°  ÚrandintÚ	randrangeÚuniform)Úfnss    rX   Ú_supported_random_functionsÚ5UserDefinedObjectVariable._supported_random_functionsË  s0   € ô �M‰MÜ�N‰NÜ×ÑÜ�N‰Nð	
ˆð ˆ
r[   r{   c                 ó´  >• SSK JnJnJn  U R	                  U5      nUGb©  U[
        R                  L a  U$ [        U5      (       d)  [        U R                  [        R                  5      (       a  U R                  " U/UQ70 UD6$ [        U5      (       a(  U R                  XS   [        R                  " 5       5      $ U[
        R                   L a{  [#        U5      S:X  al  U(       de  US   n	[        U	[$        5      (       d#  [        R                  R'                  [(        5      $ UR&                  " U R                  U	R                  L 5      $ [*        R,                  R.                  R0                  (       aL  [        U R                  [2        R4                  5      (       a#  [7        SSU R                   SU SU SU 3S	S
/S9  [        U[2        R8                  5      (       al  U R:                  n
S nU
(       a  U R=                  U5      nSSKJ n  U[*        RB                  RD                  R                  L a  UnU" X€XºS9RG                  XU5      $ U[H        RJ                  L al  U R:                  (       a[  U(       dT  U(       dM  [M        U R:                  RO                  [P        RR                  5      5        U" [#        U R                  5      5      $ [T        TU ]­  XX45      $ )Nr>   )r  rM   r  r   zcall_method on generatorúobject=ú	, method=ú, args=rP  zWDetected a method call to a user-defined generator object. This is not fully supported.zÀSet `torch._dynamo.config.enable_faithful_generator_behavior = False`. Note that this may cause silent incorrectness, since we will eagerly unpack generators instead of lazily evaluating them.r;  r   ©Úunpatched_nn_module_init©Ú	source_fnrì   ),ró   r  rM   r  rƒ   rT   r’   rY   rÇ   rz   Ú	threadingÚlocalÚmethod_setattr_standardr^   r   rä   r3  r@  r  rô   ÚNotImplementedr§   r˜  r™  Ú"enable_faithful_generator_behaviorrû   ÚGeneratorTyper   rü   rì   Úget_source_by_walking_mroÚmutation_guardrY  r%  ÚModuler  rÍ   Ú__len__r   rÜ  r   ÚSEQUENCE_LENGTHr‘   rC  )r‚   rÙ   r{   rñ   r�   r  rM   r  rþ  rí  rì   r[  rY  r•   s                €rX   rC  Ú%UserDefinedObjectVariable.call_methodÖ  s@  ø€ ÷ 	SÑRà×1Ñ1°$Ó7ˆØÒØœŸ™Ò(Ø-Ð-ä" 6×*Ñ*¬j¸¿¹ÄYÇ_Á_×.UÑ.UØ×3Ò3°BÐH¸ÒHÀÑHÐHä" 6×*Ñ*Ø×3Ñ3Ø˜Q™¤×!:Ò!:Ó!<óð ð œŸ™Ò&¬3¨t«9¸«>Æ&Ø˜Q™�Ü! %Ô)B×CÑCÜ$×5Ñ5×<Ñ<¼^ÓLÐLð (×.Ò.¨t¯z©z¸U¿[¹[Ð/HÓIÐIä�}‰}×#Ñ#×F×FÌ:Ø—
‘
œE×/Ñ/÷Lñ Lô Ø6Ø% d§j¡j \°¸4¸&ÀÈÀvÈYÐW]ÐV^Ð_ð!3ð+ðò
ô ˜&¤%×"4Ñ"4×5Ñ5ØŸ™�Ø �	ÞØ $× >Ñ >¸tÓ D�IåEàœUŸX™XŸ_™_×5Ñ5Ò5Ø5�FÙ)Ø¨Iñç‘- ¨&Ó1ð2ð œŸ™Ò%¨$¯+¯+¾tÆvÜ˜dŸk™k×4Ñ4´\×5QÑ5QÓRÔSÙ'¬¨D¯J©J«Ó8Ð8ä‰wÑ" 2¨TÓ:Ð:r[   Údirectly_update_dictc           
      óð  • Sn UR                  5       nUR                  R                  R                  U 5      (       d   S	5       eUS
:X  a  [        SSU  SU 3SS/S9  U(       a  U R                  R                  U5        OšU R                  U5      nU(       a‚  Uu  pxS n	S n
U R                  (       a&  U R                  U5      n	[        [        U	5      S5      n
[        R                  " XU	5      n[        R                  " XU
SS9nX°U/nUR                  X0 5      $ UR                  R                  R!                  XU5        ["        R$                  $ ! [         a    [        SSU  SU SU 3SS/S9   GN`f = f)Nró   z-non-const setattr name on user-defined objectrU  ú, name=z, value=zODetected a call to `setattr` of a user-defined object with a non-constant name.z!Ensure that the name is a string.r;  z`Attempted setattr on a user-defined object that does not have an AttributeMutation mutation_typer•   z+__class__ assignment on user-defined objectzFDynamo does not support reassigning __class__ on user-defined objects.zBMove the __class__ assignment outside of the torch.compile region.Ú__set__T©Úrealize)rš   ÚNotImplementedErrorr   rà   rá   Úis_attribute_mutationr  ÚaddÚ$try_get_descritor_and_setter_py_funcr  rb  r   r&   rB   rö   r  Ú
store_attrr   r  )r‚   rÙ   r{   rz   rh  Úname_strÚtmpÚ
descriptorÚsetterÚdesc_sourceÚfunc_sourceÚdesc_varÚfunc_varrñ   s                 rX   r^  Ú1UserDefinedObjectVariable.method_setattr_standard  s‹  € ð ˆð	Ø×.Ñ.Ó0ˆHð �y‰y×%Ñ%×;Ñ;¸D×AÑAð 	
ð1ó	
ÐAð
 �{Ó"ÜØEØ! $  x°¨wÐ7ØdàXðò	ö  Ø×/Ñ/×3Ñ3°HÕ=à×;Ñ;¸HÓEˆCÞØ%(Ñ"�
ð #�Ø"�Ø—?—?Ø"&×"@Ñ"@ÀÓ"J�Kä",¬Z¸Ó-DÀiÓ"P�KÜ*×0Ò0°ÀÓM�Ü*×0Ò0°¸[ÐRVÑW�Ø ¨Ð.�Ø×-Ñ-¨b¸Ó;Ð;ð
 	�	‰	×Ñ×)Ñ)¨$¸%Ô@Ü×/Ñ/Ð/øô[ #ó 	ÜØGØ! $  w¨t¨f°H¸U¸GÐDØmØ:Ð;õ	ð	ús   „E Å E5Å4E5c                 óÂ   • [        [        R                  " U R                  SS 5      5      (       + =(       a)    [	        U R                  [
        R                  5      (       + $ )NrU   )rY   r   r€   rz   rÇ   r\  r]  r™   s    rX   Úneeds_slow_setattrÚ,UserDefinedObjectVariable.needs_slow_setattrR  sD   € Ü&Ü×"Ò" 4§:¡:¨}¸dÓCó
ô 
÷ :ä˜TŸZ™Z¬¯©Ó9Ô9ð	:r[   c           
      óX  >• U R                   (       Ga  U R                  S5      [        R                  L aâ  U R                  S5      [        R                  L aÀ  U R                  S5      [        R
                  L až  [        U R                   R                  [        R                  5      5        [        [        U R                  5      5       Vs/ s HB  n[        R                  R                  U R                  U   [!        U R                   U5      S9PMD     sn$ ["        TU ]I  U5      $ s  snf )NÚ__iter__re  Ú__getitem__rò   )rì   rƒ   rÍ   r€  re  r�  r   rÜ  r   rf  Úranger@  rz   r   ÚLazyVariableTrackerrô   r"   r‘   Úunpack_var_sequence)r‚   rÙ   r·  r•   s      €rX   r„  Ú-UserDefinedObjectVariable.unpack_var_sequenceW  sé   ø€ à�K�KˆKØ×0Ñ0°Ó<ÄÇÁÒMØ×0Ñ0°Ó;¼t¿|¹|ÒKØ×0Ñ0°Ó?Ä4×CSÑCSÒSä˜$Ÿ+™+×0Ñ0´×1MÑ1MÓNÔOô œs 4§:¡:›Ô/óò
 0�Aô	 ×-Ñ-×4Ñ4Ø—J‘J˜q‘MÜ(¨¯©°aÓ8ð 5ó ñ 0ñð ô ‰wÑ*¨2Ó.Ð.ùòs   ÃA	D'c                 ó–   • SSK Jn   UR                  U[        5      R	                  X/0 5        g! [
         a    [        U5         gf = f)Nr>   r/  TF)r#  r0  rô   Úiterr  r   r   )r‚   rÙ   r0  s      rX   r|  Ú7UserDefinedObjectVariable.has_force_unpack_var_sequenceh  sF   € Ý.ð	Ø×$Ñ$ R¬Ó.×<Ñ<¸RÀÈÔLØøÜ ó 	Ü% bÔ)Ùð	ús   ˆ'0 °AÁAc                 óä   • SSK Jn  / nUR                  U[        5      R	                  X/0 5      n  UR                  U5      nUR                  U5        M%  ! [         a    [        U5         U$ f = f)Nr>   r/  )	r#  r0  rô   r‡  r  Únext_variablere   r   r   )r‚   rÙ   r0  ÚresultÚiter_Úrs         rX   r}  Ú3UserDefinedObjectVariable.force_unpack_var_sequencer  sw   € õ 	/àˆØ!×(Ñ(¨¬TÓ2×@Ñ@ÀÀVÈRÓPˆàðØ×'Ñ'¨Ó+�Ø—‘˜aÔ ñ øô -ó Ü)¨"Ô-ØØˆðús   ²"A ÁA/Á.A/c                 ó*   • U R                  US/ 0 5      $ )NÚ__next__)rC  ©r‚   rÙ   s     rX   rŠ  Ú'UserDefinedObjectVariable.next_variableƒ  s   € Ø×Ñ  J°°BÓ7Ð7r[   c                 ó^   •  U R                   U R                  5       ;   $ ! [         a     gf = fr.  )rz   rR  rr  r™   s    rX   Úis_supported_randomÚ-UserDefinedObjectVariable.is_supported_random†  s1   € ð	Ø—:‘: ×!AÑ!AÓ!CÑCÐCøÜó 	áð	ús   ‚ Ÿ
,«,c                 óÌ  >• U R                  5       (       aR  [        S U 5       5      (       a;  [        S UR                  5        5       5      (       a  [        XR                  X#5      $ [        U R                  [        R                  5      (       Ga8  U R                  R                  nU R                  R                  nU[        R                  R                  R                  R                  L al  [        R                   R#                  UR$                  5      (       a>  U(       d7  U(       d0  [        R                   " UR$                  5      R'                  XU5      $ U[        R(                  R*                  R,                  R                  L a‚  UR$                  [        R(                  R*                  R,                  L aQ  [        R.                  " UR0                  5      n[        R                   " UR$                  5      R'                  X/U5      $ U R2                  c1  [5        SSU R                   SU SU SU 3SS	U R                   S
3/S9  U R2                  c   e[7        U R2                  S5      n[8        R:                  " XUSS9n[7        U R2                  S5      n	[8        R:                  " XU	5      n
UR'                  X/U-   U5      $ [=        U R                  5      (       aq  U R2                  (       aM  U R>                  c   e[7        U R>                  S5      n[A        URC                  [D        RF                  5      5        U RI                  USX#5      $ [J        TU ]M  XU5      $ )Nc              3   ó@   #   • U  H  oR                  5       v •  M     g 7frS   ©rŽ  )rY  r·  s     rX   r[  Ú:UserDefinedObjectVariable.call_function.<locals>.<genexpr>•  s   é € Ð9²D¨q×(Ñ(×*Ð*²Dùrd  c              3   ó@   #   • U  H  oR                  5       v •  M     g 7frS   r˜  )rY  r¸  s     rX   r[  r™  –  s   é € ÐD²O¨q×(Ñ(×*Ð*²Oùrd  z<attempted to call sourceless user-defined object as a methodrU  z, function=rW  rP  zDynamo does not support this.zEnsure the user-defined object z, is constructed outside the compiled region.r;  r   Trl  Ú__self__Ú__call__)&r”  r   Úvaluesr  rz   r3   rû   r€  r   r›  r§   r  Ú_contextlibÚ_DecoratorContextManagerÚcloner   rT  Úis_matching_clsr•   r  ÚautogradÚ	grad_modeÚinference_moderM   Úmoderì   r   r   rB   rö   rr   r  r   rÜ  r   ÚCLOSURE_MATCHrC  r‘   )r‚   rÙ   rñ   r�   r  rn   rÎ  Úfunc_srcrz  Úobj_srcÚobj_varÚsource_attrr•   s               €rX   r  Ú'UserDefinedObjectVariable.call_function�  s¡  ø€ ð ×$Ñ$×&Ñ&ÜÑ9±DÓ9×9Ñ9ÜÑD°F·M±M´OÓD×DÑDä! "§j¡j°$Ó?Ð?Ü�D—J‘J¤× 0Ñ 0×1Ò1Ø—:‘:×&Ñ&ˆDØ—*‘*×%Ñ%ˆCàœŸ™×/Ñ/×HÑH×NÑNÒNÜ×:Ñ:×JÑJØ—M‘M÷ñ ö ¦ä ×=Ò=Ø—M‘Móç‘- ¨&Ó1ð2ð
 œŸ™×0Ñ0×?Ñ?×EÑEÒEØ—M‘M¤U§^¡^×%=Ñ%=×%LÑ%LÒLô  ×0Ò0°·±Ó:�Ü ×=Ò=Ø—M‘Móç‘-  E¨6Ó2ð3ð �{‰{Ñ"ÜØZØ% d§j¡j \°¸T¸FÀ'È$ÈÈyÐY_ÐX`ÐaØ ?à9¸$¿*¹*¸ÐEqÐrðò	ð —;‘;Ñ*Ð*Ð*Ü! $§+¡+¨zÓ:ˆHÜ&×,Ò,¨R°xÈÑNˆHÜ  §¡¨jÓ9ˆGÜ%×+Ò+¨B°WÓ=ˆGØ×)Ñ)¨"¨i¸$Ñ.>ÀÓGÐGÜ�d—j‘j×!Ñ!Ø�{�{Ø—‘Ñ2Ð2Ð2Ü(¨¯©¸*ÓE�Ü˜k×4Ñ4´\×5OÑ5OÓPÔQØ×#Ñ# B¨
°DÓAÐAä‰wÑ$ R¨vÓ6Ð6r[   c                 ó,   • [        U R                  5      $ rS   )r-   rz   r™   s    rX   Ú_check_for_getattrÚ,UserDefinedObjectVariable._check_for_getattrÉ  s   € Ü! $§*¡*Ó-Ð-r[   Úsubobjc                 óþ   • [        U[        5      (       d  g[        UR                  [        R                  5      =(       d=    [
        R                  R                  R                  R                  UR                  5      $ r.  )
rÇ   r  r  rû   ÚBuiltinFunctionTyper§   Ú_Cr˜  r  Úis_instancemethod)r‚   r¯  s     rX   Ú_is_c_defined_propertyÚ0UserDefinedObjectVariable._is_c_defined_propertyÌ  sY   € Ü˜&¤(×+Ñ+Øô Ø�K‰Kœ×2Ñ2ó
÷ Cä�X‰X×Ñ×#Ñ#×5Ñ5°f·k±kÓBð	Cr[   c                 ó  • XR                   ;   a  U R                   U   $ [        R                  " U R                  U[        5      nU R
                  (       d…  U[        L dL  [        R                  " U5      (       d1  [        R                  " U5      (       d  U R                  U5      (       a0  [        U R                  5      R                  U R                  U5      nO U R
                  (       a  U[        L a  [        eX R                   U'   U$ rS   )r  r   r€   rz   r  r  r  Úisgetsetdescriptorr´  rt   Ú__getattribute__r�   )r‚   r{   r¯  s      rX   Ú_getattr_staticÚ)UserDefinedObjectVariable._getattr_staticØ  sÉ   € Ø×(Ñ(Ó(Ø×(Ñ(¨Ñ.Ð.ä×'Ò'¨¯
©
°D¼.ÓIˆð ×,×,Ø”nÒ$Ü×)Ò)¨&×1Ñ1Ü×)Ò)¨&×1Ñ1Ø×*Ñ*¨6×2Ñ2ô ˜$Ÿ*™*Ó%×6Ñ6°t·z±zÀ4ÓH‰FØ×*×*¨v¼Ò/Gô !Ð à&,×Ñ˜dÑ#Øˆr[   Ú	attr_namec                 ó  • [         R                  " [        U R                  5      US 5      n[         R                  " [        U5      SS 5      nU(       a,  [         R                  " U5      (       a  gXR
                  ;   a  gg)Nrk  TF)r   r€   rt   rz   Ú
isfunctionr  ©r‚   r»  ru  rv  s       rX   Úshould_skip_descriptor_setterÚ7UserDefinedObjectVariable.should_skip_descriptor_setterö  sc   € ä×+Ò+¬D°·±Ó,<¸iÈÓNˆ
Ü×'Ò'¬¨ZÓ(8¸)ÀTÓJˆÞä×!Ò! &×)Ñ)Øð ×AÑAÓAØØr[   c                 óØ   • [         R                  " [        U R                  5      US 5      n[         R                  " [        U5      SS 5      n[         R                  " U5      (       a  X#4$ g )Nrk  )r   r€   rt   rz   r½  r¾  s       rX   rq  Ú>UserDefinedObjectVariable.try_get_descritor_and_setter_py_func  sW   € ô ×+Ò+¬D°·±Ó,<¸iÈÓNˆ
Ü×'Ò'¬¨ZÓ(8¸)ÀTÓJˆÜ×Ò˜f×%Ñ%ØÐ'Ð'Ør[   rÚ   c                 ó  • UR                   R                  R                  X5      (       aC  UR                   R                  R                  XSS9n[	        U[
        R                  5      (       + $ X R                  R                  ;   $ rÜ   rß   rå   s       rX   rç   Ú1UserDefinedObjectVariable.has_key_in_generic_dict  ré   r[   c                 óZ  • U R                   c   e[        [        U R                  5      R                  5       GHe  u  p#XR
                  ;   d  M  US:w  a!  [        U R                   5      n[        XB5      nOU R                   n[        U5      n[        Xa5      n[        SU5       Hj  n[        U R                   5      n[        XH5      n[        U5      n[        UR                  [        R                  " [        R                   USS95      5        Ml     U R"                  (       ay  [%        U R                  S5      (       a^  XR                  R
                  ;  aE  [        U R"                  R                  [        R                  " [        R&                  US95      5        Us  $    [)        SSU S	[        U R                  5       S
[        U R                  5      R                   3SU S[        U R                  5      R                   3SU SU R                   S3/[*        R,                  QS9  g )Nr   r>   T)rÚ   Úinvertr}   )Úattrz#could not find name in object's mrozname=z, object type=z, mro=zCould not find name `z	` in mro zEnsure the name `z` is defined somewhere in z's type hierarchy.r;  )r  Ú	enumeratert   rz   rí   r}   r%   r"   r$   r!   r‚  r   rÜ  r‡  rˆ  r   ÚDICT_CONTAINSrì   rs   ÚNOT_PRESENT_IN_GENERIC_DICTr   r   rz  )	r‚   r{   ÚidxÚklassÚ
mro_sourceÚklass_sourceÚdict_sourceÚ
out_sourceÚ
absent_idxs	            rX   rb  Ú3UserDefinedObjectVariable.get_source_by_walking_mro  sÊ  € Ø�‰Ñ*Ð*Ð*ä#¤D¨¯©Ó$4×$<Ñ$<×=‰JˆCØ—~‘~Õ%Ø˜!“8Ü!.¨t¯©Ó!?�JÜ+8¸Ó+I‘Là#'§?¡?�LÜ,¨\Ó:�Ü.¨{ÓA�
ä"'¨¨3¦-�Jä!.¨t¯©Ó!?�JÜ#0°Ó#H�LÜ"0°Ó">�KÜ!Ø#×.Ñ.Ü%×-Ò-Ü ,× :Ñ :ÀÈTñóöñ #0ð —K—KÜ §
¡
¨J×7Ñ7Ø§J¡J×$7Ñ$7Ó7ä!ØŸ™×.Ñ.Ü%×-Ò-Ü ,× HÑ HÈtñóôð "Ò!ñG >ôJ 	Ø9Ø˜D˜6 ´°T·Z±ZÓ0@Ð/AÀÌÈTÏZÉZÓHX×H`ÑH`ÐGaÐbØ/°¨v°Y¼tÀDÇJÁJÓ?O×?WÑ?WÐ>XÐYà# D 6Ð)CÀDÇJÁJÀ<ÐOaÐbðä"×-Ñ-ðó		
r[   c                 ó”  • SSK Jn  U R                  (       a  [        U R                  U5      OS nU R                  (       a‹  [
        R                  " [        U R                  5      S5      nU R                  (       a  [        U R                  S5      OS n [        R                  " UU US9R                  XR                  " U5      /0 5      $ UR                  R                   R#                  X5      (       ay  UR                  R                   R%                  XSS9n['        U[        R(                  5      (       a4  [+        [,        US[        U R                  5      R.                   SU S3/S	9  U$ US
:X  a  SU0n[        R0                  " XS 40 UD6$ US:X  a7  Un	Uc  U R2                  n	OUn	SU	0n
[5        [        U R                  5      40 U
D6$  U R7                  U5      nSSK0J1n  U[P        RR                  RT                  Rd                  L a  UnX Rf                  ;   a  U Rf                  U   nO>[
        R                  " U R                  Rh                  U[8        5      nXðRf                  U'   XûL =(       a_    U R2                  S L=(       aJ    U R                  S L=(       a5    [k        U R                  S
5      =(       a    X R                  Rl                  ;  n['        U[n        5      (       a_  U R                  (       a  [        U Rq                  U5      S5      n[r        Rt                  " XRv                  USS9nUR                  X/0 5      $ ['        U[x        Rz                  5      (       aF  UR}                  5       u  nu  nn['        U [~        5      (       d   eU R€                  R‚                  U   $ ['        U[„        5      (       aU  U(       a  [        U Rq                  U5      S5      nUR‡                  U R                  5      n[r        Rt                  " UUU5      $ ['        U[ˆ        5      (       aU  S nU(       a  [        U Rq                  U5      S5      n[        R                  " URŠ                  U R�                  US5      UUS9$ ['        U[<        RŽ                  5      (       a4  UR‡                  U R                  S 5      n[r        Rt                  " UUU5      $ [‘        U5      (       a  [        R’                  " USXS9$ [
        R                  " [        U5      S[8        5      [8        LaÛ  [•        [        U5      R†                  5      (       d¸  S nS nU R2                  (       a>  U Rq                  U5      n[        [—        U5      S5      n[r        Rt                  " XU5      nO[™        U5      n[5        [        U R                  5      5      n[        R                  " UR†                  RŠ                  UUS9R                  XU/0 5      $ ['        U[<        R>                  5      (       dT  ['        U[<        Rš                  5      (       GaZ  ['        U R                  [P        RR                  RT                  5      (       Ga&  [�        U R                  U5      nUUL aL  [k        US 5      (       a;  URž                  nUnU(       a  [        US 5      OS nUUL a  [k        US 5      (       a  M;  ['        U[<        Rš                  5      (       aþ  UR                   U R                  LaØ  ['        URŠ                  [<        R>                  5      (       d[  [_        S!SU R                   SU S"U S#UR                    S$URŠ                   3
S%U S&U S'U R                   S(URŠ                   S)3	S*/S9  S nUb  [        US+5      n[r        Rt                  " UUR                   U5      n[        R                  " URŠ                  U5      $ URŠ                  nO#['        U[<        R>                  5      (       d   eUn[
        R¢                  " U5      (       a1  S nU(       a  U Rq                  U5      n[        R                  " UU UUS9$ [
        R¤                  " U5      (       a  [r        Rt                  " UUU5      $ [P        R¦                  R¨                  Rª                  (       d  ['        U [        R¬                  5      (       a¦  U(       aŸ  ['        U [        RB                  5      (       a€  UR                  R®                  (       a)  [P        R¦                  R¨                  R°                  (       a<  US,;   a%  U R                  c   e[³        U R                  U5      nU Rµ                  U5      nU[8        LGa?  [•        U5      (       dH  [P        R¶                  R¦                  R¸                  R»                  U5      (       d  [½        U5      (       a  SU0n
[        R0                  " XS 40 U
D6$ U(       a7  U(       a  U Rq                  U5      n[        R¾                  R                  X´5      $ U R2                  bj  [
        R                  " U R                  Rh                  U[8        5      nXûL a6  [        U R2                  U5      n[        R¾                  R                  UU5      $ [r        Rt                  " X5      $ [+        [,        US[        U R                  5      R.                   SU S3/S	9  g ! [         a    [        U5         G
NSf = f! [,         Ga    [8        nU R;                  5       n['        U[<        R>                  5      (       Ga¨  U[@        L a¬  ['        U [        RB                  5      (       a�  [E        U R                  RF                  [H        5      (       ad  [E        U R                  RJ                  [H        5      (       a;  [E        U R                  RL                  [H        5      (       a  U RO                  X5      nO_S nU R                  (       a  [        U R                  S5      n[        R                  " XÀUS9R                  XR                  " U5      /0 5      nU R                  (       a  U[P        RR                  RT                  RV                  L aX  ['        U[        RB                  [        RX                  45      (       a)  UR[                  [        U R]                  5       U5      5        Us $ Ub4  [_        SSU R                   SU SU 3SU SU R                   SU S3S/S9   GNff = f)-Nr>   rL   r¸  rò   TrÝ   rï   z' object has no attribute 'rð   r}   rì   r•   Ú__getattr__z1User-defined object with non-function __getattr__rU  rj  z, getattr_fn=z!Found a non-function __getattr__ z from a user-defined object z  when attempting to getattr `Ú`z3Ensure the object's __getattr__ is a function type.r;  r   rX  r  )rì   rm  r   rZ  Ú__wrapped__rþ   Ú_torchdynamo_inlinez5User-defined object method with non-function __func__rV  z, method.__self__=z, method.__func__=zMethod z (name=z) of user-defined object z has a __func__ (z) that is not a function type.z5Ensure that the method's __func__ is a function type.r›  )Ú_buffersÚ_parameters)`ró   rM   rì   r   r  r   r€   rt   rz   r   r  r  rô   r   r   rà   rá   râ   rã   rÇ   rä   r   r�   rp   rõ   r  r�   r¹  r  r­  rû   rü   r=   ÚUnspecializedNNModuleVariabler3   rÙ  rÊ   rØ  Ú_modulesÚ manually_trace_nn_module_getattrr§   r%  rd  rÔ  ÚNNModuleVariableÚset_nn_module_stack_sourceÚget_nn_module_stack_sourcer   rc  rY  r’   r  r•   rs   r}   r  rb  rB   rö   r  Ú_collectionsÚ_tuplegetterÚ
__reduce__ÚUserDefinedTupleVariableÚ	_tuple_vtrk  rý   rþ   rÿ   r   rú   r  r0   ÚWrapperUserMethodVariabler2   r&   r  r€  r~   r×  r›  Úismethodr½  r˜  r™  Úinline_inbuilt_nn_modulesÚFSDPManagedNNModuleVariabler;  Úinstall_free_tensorsr'   Ú_wrap_sourcer²  r  r³  rv   rƒ  )r‚   rÙ   r{   rM   rì   Úgetattribute_fnÚ
new_sourcer‹  Úoptions_dictr  r  r¯  Ú
getattr_fnÚoutrY  Úsubobj_from_classÚis_accessible_from_type_mror  Ú_rË  r  r[  Údescriptor_sourceÚdescriptor_get_sourceÚdescriptor_varÚ	owner_varÚdynamic_subobjÚself_sourceÚ	object_vtÚ
var_sourceÚsrc_from_classs                                  rX   rú   Ú%UserDefinedObjectVariable.var_getattrF  sN  € Ý&àAEÇÇ¤
¨4¯;©;¸Ô =ÐRVˆà×(×(Ü%×4Ò4Ü�T—Z‘ZÓ Ð"4óˆOð @D¿{¿{”
˜4Ÿ;™;Ð(:Ô;ÐPTð ð	.Ü ×3Ò3Ø#Øà%ñ	÷
  ‘- ×%<Ò%<¸TÓ%BÐ$CÀRÓHðIð �9‰9×!Ñ!×>Ñ>¸t×JÑJØ—Y‘Y×+Ñ+×5Ñ5°dÈTÐ5ÐRˆFÜ˜&¤)×";Ñ";×<Ñ<Ü(Ü"ØàœD §¡Ó,×5Ñ5Ð6Ð6QÐRVÐQWÐWXÐYðòð ˆMà�:ÓØ$ fÐ-ˆLÜ×,Ò,¨T¸ÑNÀÑNÐNð
 �;ÓØ(.ˆJØ‰~Ø!Ÿ_™_‘
à#�
Ø Ð,ˆGÜ+¬D°·±Ó,<ÑHÀÑHÐHð3	Ø×)Ñ)¨$Ó/ˆFõh 	>à”U—X‘X—_‘_×-Ñ-Ò-Ø-ˆFð ×*Ñ*Ó*Ø $× 7Ñ 7¸Ñ =Ñä '× 6Ò 6Ø—
‘
×$Ñ$ d¬Nó!Ðð ->×#Ñ# DÑ)ð Ð'÷ 0Ø—‘ tÐ+÷0à—‘ 4Ð'÷0ô ˜Ÿ
™
 JÓ/÷0ð ŸJ™J×/Ñ/Ñ/ð 	$ô �fœh×'Ñ'Ø�{�{ä# D×$BÑ$BÀ4Ó$HÈ&ÓQ�Ü%×+Ò+Ø—K‘K¨¸ñˆGð ×(Ñ(¨¨V°RÓ8Ð8Ü˜¤× 9Ñ 9×:Ñ:ð !×+Ñ+Ó-‰KˆA‰x��Qô ˜dÔ$<×=Ñ=Ð=Ð=Ø—>‘>×'Ñ'¨Ñ,Ð,Ü˜¤×-Ñ-ö +ô $ D×$BÑ$BÀ4Ó$HÈ*ÓU�Ø—>‘> $§*¡*Ó-ˆDÜ"×(Ò(¨¨T°6Ó:Ð:Ü˜¤×,Ñ,ØˆIÞ*ô ' t×'EÑ'EÀdÓ'KÈZÓX�	Ü×/Ò/Ø—‘Ø× Ñ   [Ó1Ø#Øñ	ð ô ˜¤× ?Ñ ?×@Ñ@à—>‘> $§*¡*¨dÓ3ˆDÜ"×(Ò(¨¨T°6Ó:Ð:Ü*¨6×2Ñ2ô ×6Ò6Ø˜ tñð ô ×#Ò#Ü�‹L˜)¤^ó
äò ä(GÜ�‹L× Ñ ÷)
ñ )
ð !%ÐØ$(Ð!Ø��ð %)×$BÑ$BÀ4Ó$HÐ!Ü(2ÜÐ0Ó1°9ó)Ð%ô "1×!6Ò!6°rÐCTÓ!U‘ô ";¸6Ó!B�ô 1´°d·j±jÓ1AÓBˆIÜ×/Ò/Ø—‘×'Ñ'ØØ,ñ÷ ‰m˜B yÐ 1°2Ó6ð	7ô
 ˜¤× 2Ñ 2×3Ñ3Ü�vœu×/Ñ/×0Ò0Ü˜4Ÿ:™:¤u§x¡x§¡×7Ò7ô
 % T§Z¡Z°Ó6ˆNà  FÒ*¬w°vÐ?T×/UÑ/UØ×3Ñ3�Ø!'�ÞFLœ FÐ,AÔBÐRV�ð ! FÒ*¬w°vÐ?T×/UÓ/Uô
 ˜&¤%×"2Ñ"2×3Ñ3Ø!×*Ñ*°$·*±*Ò<Ü% n×&=Ñ&=¼u×?QÑ?Q×RÑRÜ%Ø$[Ø&-¨d¯j©j¨\¸ÀÀÀiÐP^ÐO_ð `/Ø/=×/FÑ/FÐ.GÐGYÐZh×ZqÑZqÐYrð%tà*1°.Ð1AÀÈÈÐNgÐhl×hrÑhrÐgsð t)Ø)7×)@Ñ)@Ð(AÐA_ð)að !Xð#ò	ð #'�KØÑ)Ü&0°¸Ó&D˜Ü /× 5Ò 5Ø˜N×3Ñ3°[ó!�Iô %×7Ò7Ø&×/Ñ/Ø!óð ð —‘‘ä! &¬%×*<Ñ*<×=Ñ=Ð=Ð=Ø�ä×Ò ×/Ñ/Ø!�
Þ.Ø!%×!?Ñ!?ÀÓ!E�JÜ ×3Ò3Ø˜$¨*¸Vñð ô ×#Ò# N×3Ñ3Ü&×,Ò,¨R°°vÓ>Ð>ô —‘×$Ñ$×>×>Ü˜d¤I×$IÑ$I×JÑJæÜ˜4¤×!HÑ!H×IÑIð —Y‘Y×%×%¬¯©×)=Ñ)=×)R×)Rð Ð2Ó2Ø—{‘{Ñ.Ð.Ð.Ü7¸¿¹ÀTÓJ�Ø×&Ñ& vÓ.ˆFàœÓ'ä/°×7Ñ7Ü—8‘8×#Ñ#×)Ñ)×;Ñ;¸F×CÑCÜ% f×-Ñ-à# VÐ,�Ü ×0Ò0°¸TÑMÀWÑMÐMÞÞ.Ø!×;Ñ;¸DÓA�Fä ×4Ñ4×;Ñ;¸FÓKÐKð —?‘?Ñ.Ü(/×(>Ò(>ØŸ
™
×,Ñ,¨d´Nó)Ð%ð )Ò2Ü)3°D·O±OÀTÓ)J˜Ü(×<Ñ<×CÑCØ-¨~ó ð ô '×,Ò,¨RÓ8Ð8ô 	!ÜØØ”d˜4Ÿ:™:Ó&×/Ñ/Ð0Ð0KÈDÈ6ÐQRÐSÐTó	
øôQ	 *ó .ä)¨"×-ð.ûôD ô 1	Ü#ˆFØ×0Ñ0Ó2ˆJÜ˜*¤e×&8Ñ&8×9Ò9ð Ô"=Ò=Ü" 4¬×)PÑ)P×QÑQä˜tŸz™z×5Ñ5´t×<Ñ<Ü˜tŸz™z×2Ñ2´D×9Ñ9Ü˜tŸz™z×2Ñ2´D×9Ñ9ð ×?Ñ?ÀÓI‘Cà!%�JØ—{—{Ü%/°·±¸]Ó%K˜
Ü#×6Ò6Ø"°ñç#‘m B×)@Ò)@ÀÓ)FÐ(GÈÓLð ð —;—; :´·±·±×1LÑ1LÒ#LÜ!Øä%×CÑCÜ%×6Ñ6ð÷ñ ð ×6Ñ6Ü& t×'FÑ'FÓ'HÈ$ÓOôð ’
àÑ'ÜØOØ% d§j¡j \°¸¸¸mÈJÈ<ÐXØ"CÀJÀ<ÐOkÐlp×lvÑlvÐkwð x4Ø48°6¸ð!<ð NðòúðS1	ús+   Â6l Çl# ìl ìl ì#G'uô7uõurM   c                 ó¬  • U R                   (       a<  [        [        U R                   U5      R                  [        R
                  5      5         U R                  X5      n[        R                  R                  [        U[        R                  5      (       + 5      $ ! [         a-    [        U5        [        R                  R                  S5      s $ f = fr.  )rì   r   r   rÜ  r   rÝ  rú   r   rM   rô   rÇ   rä   r   r   )r‚   rÙ   r{   Úvar_vts       rX   rÞ  Ú*UserDefinedObjectVariable.call_obj_hasattrˆ  s£   € ð �;�;ÜÜ˜4Ÿ;™;¨Ó-×8Ñ8¼×9MÑ9MÓNôð	<Ø×%Ñ% bÓ/ˆFÜ×-Ñ-×4Ñ4Ü˜v¤y×'@Ñ'@ÓAÔAóð øô &ó 	<Ü% bÔ)Ü×-Ñ-×4Ñ4°UÓ;Ò;ð	<ús   ÁAB Â4CÃCc                 ó0   • [        U R                  U 5        grå  ©r9   rz   r™   s    rX   ræ  Ú,UserDefinedObjectVariable.is_python_hashable™  s   € Ü  §¡¨TÔ2Ør[   c                 ó,   • [        U R                  5      $ rS   ré  r™   s    rX   rë  Ú)UserDefinedObjectVariable.get_python_hash�  s   € ä�D—J‘JÓÐr[   rí  c                 ó^   • [        U[        5      (       d  gU R                  UR                  L $ r.  )rÇ   rx   rz   rï  s     rX   rð  Ú)UserDefinedObjectVariable.is_python_equal¡  s&   € ä˜%Ô!4×5Ñ5ØØ�z‰z˜UŸ[™[Ð(Ð(r[   c                 ó²  • [        [        USS5      SS5      nUR                  S5      nU(       a�   SSKnSSKJn	  U R
                  U	;   =(       d=    UR                  U R
                  5      =(       d    UR                  U R
                  5      n
U
(       d7  UR                  S5      nUb#   UR                  5       nUU R
                  4U	;   n
OgOfSSKJs  Jn  U R
                  UR(                  ;   =(       d=    UR                  U R
                  5      =(       d    UR                  U R
                  5      n
U
(       d  UR+                  X/UQ0 5      $ U R                  UUUUU5      $ ! [         a    U R                  UUUUU5      s $ f = f! [         aB    SSKnUR                  [        5      nUR!                  S	5        U R                  UUUUU5      s $ f = f)
a  Emulate tree_map behavior for user-defined objects.

In pytree, a type is a leaf if it is NOT in SUPPORTED_NODES.
User-defined objects (that are not registered with register_pytree_node)
are always treated as leaves. This works for both torch.utils._pytree
and optree implementations.
r¼  Nr†   ró   Úoptreer   )Ú_NODETYPE_REGISTRYÚ	namespacezYFailed to import optree.registry._NODETYPE_REGISTRY, falling back to tracing for tree_map)r~   r
  r  Úoptree.registryr	  r  Úis_namedtuple_classÚis_structseq_classri   rš   rn  Ú_tree_map_fallbackrf   ÚloggingÚ	getLoggerrp   Úwarningr  r  r  ÚSUPPORTED_NODESr  )r‚   rÙ   Útree_map_fnÚmap_fnÚrestÚtree_map_kwargsÚtree_map_moduleÚ	is_optreer  r	  Úis_registeredÚnamespace_varr
  r  Úlogr   s                   rX   Úcall_tree_map_branchÚ.UserDefinedObjectVariable.call_tree_map_branch§  sç  € ô  "¤'¨+°t¸TÓ"BÀLÐRTÓUˆØ#×.Ñ.¨xÓ8ˆ	æð/ÛÝ>ð
 —O‘OÐ'9Ñ9÷ BØ×1Ñ1°$·/±/ÓB÷Bà×0Ñ0°·±ÓAð ö %Ø$3×$7Ñ$7¸Ó$D�MØ$Ñ0ðØ(5×(HÑ(HÓ(J˜Ið !*Ø $§¡ð-ð "4ñ-4™Mø÷> 1Ð0ð —‘ 6×#9Ñ#9Ñ9÷ >Ø×-Ñ-¨d¯o©oÓ>÷>à×,Ñ,¨T¯_©_Ó=ð ö Ø×'Ñ'¨¨M°D¨M¸2Ó>Ð>ð
 ×&Ñ&ØØØØØó
ð 	
øôW  3ó à#'×#:Ñ#:Ø "Ø +Ø &Ø $Ø /ó$ò ðûô ó ãà×'Ñ'¬Ó1�Ø—‘ð;ôð ×.Ñ.ØØØØØ#óò ðús1   ²A8F
 Â+!E% Å%FÆF
 ÆFÆF
 Æ
A	GÇG)
r  r  r  r  r  r  r  r  rz   r  ©rQ   N©F)rÙ   rK   r  z(variables.functions.UserFunctionVariabler  rB   r  z)collections.abc.Sequence[VariableTracker]r  zdict[str, VariableTracker]rQ   rB   );rp   r†   r‡   rˆ   r  rx   Ú_nonvar_fieldsrT   rt   r&   rB   r   r   r’   rŠ   r'  r¤   ró  r0  r4  rš   r@  rC  rH  rÊ   rK  rý   r‡  rò  r¿   rR  rÍ   rC  r^  r}  r„  r|  r}  rŠ  r”  r  r­  r´  r¹  r¿  rÌ   rq  rç   r!   rb  rú   rÞ  ræ  rw  rë  rð  r  r‹   rô  rõ  s   @rX   r  r  9  s
  ø† ñð
 	ØØ(ðð 
×	+Ñ	+ð	€Nð #'Ø(,Ø.2Ø6:ò/Làð/Lð ˜4‘Kð	/Lð
  Ñ%ð/Lð % tÑ+ð/Lð ˜OÑ,¨tÑ3ð/Lð ð/Lð 
÷/Lð /Lðb	5˜ô 	5ðH˜#ô Hð°mð Èô ð˜Tô ð, F÷ ,ð62¨&÷ 2ô
ð
/Ð6ð /¸?ô /ð
à#ð
ð ð
ð ð	
ð
 �s‰mð
ð �S˜#�X‘ð
ð 
ô
ð* Ø‡_�_ð¨¨S©ó ó ó ððA;à#ðA;ð ðA;ð �3‰ið	A;ð
 �S˜#�X‘ðA;ð 
÷A;ðP &+ñ70à#ð70ð ð70ð ð	70ð
 #ð70ð 
õ70ðr: Dô :ð
/Ð&=ð /À$ÀÑBW÷ /ð"Ð0Gð ÈDô ðØ)ðà	ˆoÑ	ôð"8Ð 7ð 8¸Oô 8ð Tô ð:7à#ð:7ð �Ñ'ð:7ð �S˜/Ð)Ñ*ð	:7ð
 
÷:7ðx. Fô .ð
C¨Vð 
C¸ô 
Cð Cð ¨Fô ð<°sð ¸tô ðØðà	ˆv�vˆ~Ñ	 Ñ	%ôð*Ð*Að *Èð *ÐPTô *ð0
¨cð 0
Ð6Gô 0
ðd@
Ð5ð @
¸Sð @
À_ô @
ðD
<Ø)ð<Ø14ð<à	ô<ð" Dô ð  ô  ð) Vð )°ô )ð_
à#ð_
ð @ð_
ð "ð	_
ð
 :ð_
ð 6ð_
ð 
÷_
ò _
r[   r  c                   ó  ^ • \ rS rSr\SSS\S\SS 4S j5       r SS\S	\\	\
4   S-  S
\
SS4U 4S jjjrS\4S jrS\4S jrSS jr SSSS\S\S\S\4
U 4S jjjrS\	4S jrS\S   4S jrS\4S jrS\S\4S jrSrU =r$ )ÚFrozenDataClassVariablei	  rÙ   rK   rz   rì   rQ   c           	      óF  • SSK Jn  [        U5      (       d   e0 nU" U5       Hr  n[        XR                  5      (       d  M  [
        R                  " U [        XR                  5      U=(       a    [        X%R                  5      5      XER                  '   Mt     [        XUS9$ )Nr   ©r£  )r£  rì   )
r¢  r£  r/   rs   r{   rB   rö   r~   r   r"  )rÙ   rz   rì   r£  Ú	field_maprÌ  s         rX   rô   ÚFrozenDataClassVariable.create
  s€   € õ 	'ä" 5×)Ñ)Ð)Ð)àˆ	Ù˜E–]ˆEÜ�uŸj™j×)Ó)Ü(7×(=Ò(=ØÜ˜E§:¡:Ó.Ø×=œz¨&·*±*Ó=ó)�	Ÿ*™*Ó%ñ #ô ' uÀvÑNÐNr[   Nr£  r�   c                 ó>   >• [         TU ]  " U40 UD6  Uc  0 nX l        g rS   )r‘   r’   r£  )r‚   rz   r£  r�   r•   s       €rX   r’   Ú FrozenDataClassVariable.__init__  s&   ø€ ô 	‰Ò˜Ñ) &Ò)Ø‰>ØˆFØ�r[   c                 ó\  • SSK Jn  SS KJs  Jn  [        U R                  UR                  UR                  UR                  45      (       d  [        S5      e[        U R                  UR                  5      (       a  UR                  5       $ / n0 nU" U R                  5       Hp  nUR                  (       d  M  U R                  UR                     R                  5       n[        USS5      (       a  XdUR                  '   M_  UR!                  U5        Mr     U R#                  5       nU" U0 UD6$ )Nr   r$  z@currently can't reconstruct arbitrary frozen dataclass instancesÚkw_onlyF)r¢  r£  r  r  r  r3   rz   ÚTreeSpecÚLeafSpecÚConstantNodern  Útreespec_leafr¦  r{   rš   r~   re   r4  )r‚   r£  r   rñ   r�   rÌ  ÚdataÚctors           rX   rš   Ú*FrozenDataClassVariable.as_python_constant%  sø   € õ 	'ç,Ð,äØ�J‰J˜Ÿ™¨&¯/©/¸6×;NÑ;NÐO÷
ñ 
ô &ØRóð ô
 �$—*‘*˜fŸo™o×.Ñ.Ø×'Ñ'Ó)Ð)àˆØˆÙ˜DŸJ™JÖ'ˆEØ�z�z‰zØ—{‘{ 5§:¡:Ñ.×AÑAÓC�Ü˜5 )¨U×3Ñ3Ø)-˜5Ÿ:™:Ó&à—K‘K Ö%ñ (ð ×ÑÓ!ˆÙ�TÐ$˜VÑ$Ð$r[   c                 óL  • SSK Jn  / n0 nU" U R                  5       Hm  nU R                  UR                     R	                  5       n[        US5      (       a!  UR                  (       a  XSUR                  '   M\  UR                  U5        Mo     U R                  5       nU" U0 UD6$ )Nr   r$  r*  )	r¢  r£  rz   r{   rž   rs   r*  re   r4  )r‚   r£  rñ   r�   rÌ  r"  r0  s          rX   rž   Ú FrozenDataClassVariable.as_proxyG  sˆ   € Ý&àˆØˆÙ˜DŸJ™JÖ'ˆEØ—K‘K §
¡
Ñ+×4Ñ4Ó6ˆEÜ�u˜i×(Ñ(¨U¯]¯]Ø%*�u—z‘zÓ"à—‘˜EÖ"ñ (ð ×ÑÓ!ˆÙ�TÐ$˜VÑ$Ð$r[   c                 ó˜  ^^• SSK Jn  SS KJs  Jn  [        U R                  UR                  5      (       aP  U R                  R                  5       (       a1  TR                  U4S j5        TR                  [        SS5      5        g U R                  5       m[        TS5      (       a*  [        SSTR                   3SS	/[         R"                  QS
9  / n/ nU" T5       HÄ  nUR$                  (       d  M  U R                  R'                  UR(                  5      nUcD  [        SSTR                   SUR(                   3SUR(                   S3/ [         R"                  QS
9  [+        USS5      (       a  UR-                  UR(                  U45        M³  UR-                  U5        MÆ     TR                  UU4S j5        U H  nT" U5        M     U H  u  p˜T" U5        M     [/        U5      [/        U5      -   n
U(       a2  [1        S U 5       5      nTR                  TR3                  X«SS95        g TR                  [        U
S5      5        g )Nr   r$  c                  ó(   >• T R                  SS5      $ )Nztorch.utils._pytreer,  ©Úload_import_from©Úcodegens   €rX   Ú<lambda>Ú5FrozenDataClassVariable.reconstruct.<locals>.<lambda>d  s   ø€ ˜×0Ñ0Ð1FÈ
ÔSr[   FÚ__post_init__z#Frozen dataclass with __post_init__z
dataclass=z~Cannot reconstruct frozen dataclass with __post_init__ method, as it may have side effects that would be incorrectly replayed.z:Remove the __post_init__ method from the frozen dataclass.r;  z#Frozen dataclass with missing fieldz, field=z,Cannot reconstruct frozen dataclass: field 'z!' was not tracked during tracing.r*  c                  óD   >• T R                  T R                  T5      5      $ rS   )Úappend_outputÚcreate_load_const_unchecked)r9  Údataclass_clss   €€rX   r:  r;  �  s   ø€ �G×)Ñ)Ø×3Ñ3°MÓBôr[   c              3   ó*   #   • U  H	  u  pUv •  M     g 7frS   r…   )rY  r{   rò  s      rX   r[  Ú6FrozenDataClassVariable.reconstruct.<locals>.<genexpr>œ  s   é € Ð9²¡g d�T²ùs   ‚)Ú	push_null)r¢  r£  r  r  r  rÇ   rz   r+  Úis_leafÚadd_push_nullÚextend_outputr   r4  rs   r   rp   r   rG  r¦  ri   r{   r~   re   r@  rÌ   Úcreate_call_function_kw)r‚   r9  r£  r   Úpos_argsÚkw_argsrÌ  Úfield_vtÚarg_vtrò  Ú
total_argsÚkw_namesr@  s    `          @rX   ÚreconstructÚ#FrozenDataClassVariable.reconstruct[  s  ù€ Ý&÷ 	-Ð,ä�d—j‘j &§/¡/×2Ñ2°t·z±z×7IÑ7I×7KÑ7Kà×!Ñ!ÜSôð ×!Ñ!Ô"6°q¸%Ó"@ÔAØð ×(Ñ(Ó*ˆä�= /×2Ñ2ÜØ=Ø$ ]×%;Ñ%;Ð$<Ð=ðRð Qðä&×2Ñ2ðò	ð ˆàˆÙ˜MÖ*ˆEØ—:—:ÙØ—{‘{—‘ u§z¡zÓ2ˆHØÑÜØAØ(¨×)?Ñ)?Ð(@ÀÈÏÉÈÐUØ"NÈuÏzÉzÈlð [6ð !6à:Ô-×9Ñ9Ð:òô �u˜i¨×/Ñ/Ø—‘ §
¡
¨HÐ5Ö6à—‘ Ö)ñ +ð$ 	×Ñõô	
ó ˆFÙ�FŽOñ ã ‰IˆAÙ�FŽOñ !ô ˜“]¤S¨£\Ñ1ˆ
ÞÜÑ9±Ó9Ó9ˆHØ×!Ñ!Ø×/Ñ/°
ÐPUÐ/ÐVõð ×!Ñ!Ô"6°zÀ5Ó"IÕJr[   r{   rh  c                 ó\   >• X0R                   UR                  5       '   [        TU ]  XX45      $ rS   )r£  rš   r‘   r^  )r‚   rÙ   r{   rz   rh  r•   s        €rX   r^  Ú/FrozenDataClassVariable.method_setattr_standard¥  s,   ø€ ð 27�‰�D×+Ñ+Ó-Ñ.Ü‰wÑ.¨r¸ÓUÐUr[   c                 ób   • U R                   R                   SU R                  R                   S3$ r¡   r*  r™   s    rX   r¤   Ú FrozenDataClassVariable.__repr__¯  r,  r[   Tc                 ó   • grå  r…   r™   s    rX   ræ  Ú*FrozenDataClassVariable.is_python_hashable²  s   € àr[   c                 óh   • [        [        S U R                  R                  5        5       5      5      $ )Nc              3   ó@   #   • U  H  oR                  5       v •  M     g 7frS   )rë  )rY  rÿ  s     rX   r[  Ú:FrozenDataClassVariable.get_python_hash.<locals>.<genexpr>·  s   é € ÐPÒ;O°C×-Ñ-×/Ð/Ò;Oùrd  )rê  rÌ   r£  r�  r™   s    rX   rë  Ú'FrozenDataClassVariable.get_python_hash¶  s%   € Ü”EÑP¸4¿;¹;×;MÑ;MÔ;OÓPÓPÓQÐQr[   rí  c                 ó˜  • [        U[        5      (       d  gU R                  5       UR                  5       L nU R                  R	                  5       UR                  R	                  5       :H  n[        S [        U R                  R                  5       UR                  R                  5       5       5       5      nU=(       a    U=(       a    U$ )NFc              3   óH   #   • U  H  u  pUR                  U5      v •  M     g 7frS   )rð  )rY  Úvalue_aÚvalue_bs      rX   r[  Ú:FrozenDataClassVariable.is_python_equal.<locals>.<genexpr>¾  s(   é € ð "
â$TÑ �ð ×#Ñ# G×,Ð,Ú$Tùs   ‚ ")rÇ   r"  r4  r£  rÀ   r   rž  r�  )r‚   rí  Úis_class_sameÚis_field_name_sameÚis_field_value_sames        rX   rð  Ú'FrozenDataClassVariable.is_python_equal¹  s¡   € Ü˜%Ô!8×9Ñ9ØØ×(Ñ(Ó*¨e×.?Ñ.?Ó.AÐAˆØ!Ÿ[™[×-Ñ-Ó/°5·<±<×3DÑ3DÓ3FÑFÐÜ!ñ "
ä$'¨¯©×(:Ñ(:Ó(<¸e¿l¹l×>QÑ>QÓ>SÔ$Tó"
ó 
Ðð ×KÐ!3×KÐ8KÐKr[   r$  rS   ©r9  rG   rQ   Nr  )rp   r†   r‡   rˆ   rý   rT   r   rô   rÊ   rŠ   r   r’   rš   rž   rN  rB   ró  r^  r¤   r   ræ  rw  rë  rð  r‹   rô  rõ  s   @rX   r"  r"  	  s'  ø† ØðOØ#ðOØ,2ðOØ<BðOà	"óOó ðOð& >BñØðØ%)¨#¨s¨(¡^°dÑ%:ðØMPðà	÷ð ð % Fô  %ðD%˜&ô %ô(FKð^ &+ñVà#ðVð ðVð ð	Vð
 #ðVð 
÷Vð VðH˜#ô Hð G¨D¡Mô ðR ô Rð	L Vð 	L°÷ 	Lò 	Lr[   r"  c            
       óf   ^ • \ rS rSrS\S\SS4U 4S jjrSSS	\S
\\	   S\
\\	4   S\	4
S jrSrU =r$ )ÚSourcelessGraphModuleVariableiÅ  rz   r�   rQ   Nc                 ó(   >• [         TU ]  " U40 UD6  g rS   )r‘   r’   r”   s      €rX   r’   Ú&SourcelessGraphModuleVariable.__init__Æ  s   ø€ ô
 	‰Ò˜Ñ) &Ó)r[   rÙ   rK   r{   rñ   c                 óœ   • [         R                  " XR                  R                  R                  5      nU /U-   nUR                  UUU5      $ rS   )rB   rö   rz   Úforwardr   ro  )r‚   rÙ   r{   rñ   r�   Úfn_variables         rX   rC  Ú)SourcelessGraphModuleVariable.call_methodÍ  sK   € ô &×+Ò+¨B·
±
×0BÑ0B×0KÑ0KÓLˆØˆv˜‰}ˆØ×-Ñ-ØØØó
ð 	
r[   r…   )rp   r†   r‡   rˆ   rT   r   r’   rŠ   rÍ   rB   rÊ   rC  r‹   rô  rõ  s   @rX   re  re  Å  sm   ø† ð*àð*ð ð*ð 
÷	*ð
à#ð
ð ð
ð �?Ñ#ð	
ð
 �S˜/Ð)Ñ*ð
ð 
÷
ò 
r[   re  c            
       ób  ^ • \ rS rSrS\S\SS4U 4S jjr\S\S\4   4S j5       r	S	S
S\
S\\   S\\
\4   S\4
U 4S jjr\SS j5       r\S\\S4   4S j5       rSS jr\S\\   4S j5       r\S\R.                  S-  4S j5       r\R2                  S\R.                  SS4S j5       rSrU =r$ )Ú"UserDefinedExceptionObjectVariableiÝ  rz   r�   rQ   Nc                 ót   >• [         TU ]  " U40 UD6  [        R                  " U R                  S5      U l        g ©Nr…   )r‘   r’   r   ÚExceptionVariabler  Úexc_vtr”   s      €rX   r’   Ú+UserDefinedExceptionObjectVariable.__init__Þ  s-   ø€ Ü‰Ò˜Ñ) &Ò)Ü×1Ò1°$·/±/À2ÓFˆ�r[   .c                 ó   • U R                   $ rS   r3  r™   s    rX   r¼  Ú%UserDefinedExceptionObjectVariable.fnâ  s   € à�‰Ðr[   rÙ   rK   r{   rñ   c                 ó  >• US:X  a|  U R                  U5      =n(       ad  [        R                  " U5      (       aI  [        U5      S:X  a:  [	        U5      U R
                  l        X0R                  l        [        R                  $ US:X  aN  [        U5      S:X  a?  US   R                  SSSS5      (       a#  U R
                  R                  XS   US	   5        O"US
:X  a  U R
                  R                  XX45      $ [        TU ]1  XX45      $ )Nr’   r   rU   r   Ú	__cause__Ú__context__Ú__suppress_context__Ú__traceback__r>   Úwith_traceback)rƒ   r   r  r@  rÌ   rq  rñ   rz   r   r  Úis_constant_matchÚcall_setattrrC  r‘   ©r‚   rÙ   r{   rñ   r�   rþ  r•   s         €rX   rC  Ú.UserDefinedExceptionObjectVariable.call_methodæ  sé   ø€ ð �JÓØ×;Ñ;¸DÓAÐA�ÕAÜ×*Ò*¨6×2Ñ2Ü�F“˜qÓ ä$ T›{ˆD�K‰KÔà"�J‰JŒOÜ×3Ñ3Ð3à�MÓ!Ü�D“	˜Q“Ø�Q‘×)Ñ)Ø˜]Ð,BÀO÷ñ ð �K‰K×$Ñ$ R¨a©°$°q±'Õ:ØÐ%Ó%Ø—;‘;×*Ñ*¨2°TÓBÐBÜ‰wÑ" 2¨TÓ:Ð:r[   c                 ó.   • U R                   R                  $ rS   )rq  rw  r™   s    rX   rw  Ú.UserDefinedExceptionObjectVariable.__context__	  s   € ð �{‰{×&Ñ&Ð&r[   c                 ó.   • U R                   R                  $ rS   )rq  rñ   r™   s    rX   rñ   Ú'UserDefinedExceptionObjectVariable.args	  s   € à�{‰{×ÑÐr[   c                 ó8   • U R                   R                  U5      $ rS   )rq  Úset_context)r‚   r=  s     rX   r„  Ú.UserDefinedExceptionObjectVariable.set_context	  s   € Ø�{‰{×&Ñ& wÓ/Ð/r[   c                 ó.   • U R                   R                  $ rS   )rq  Úexc_typer™   s    rX   r‡  Ú+UserDefinedExceptionObjectVariable.exc_type	  s   € à�{‰{×#Ñ#Ð#r[   c                 ó.   • U R                   R                  $ rS   ©rq  Úpython_stackr™   s    rX   r‹  Ú/UserDefinedExceptionObjectVariable.python_stack	  s   € à�{‰{×'Ñ'Ð'r[   c                 ó$   • XR                   l        g rS   rŠ  )r‚   rz   s     rX   r‹  rŒ  	  s   € à#(�‰Õ r[   )rq  )rQ   rM   )r=  zvariables.ExceptionVariablerQ   N)rp   r†   r‡   rˆ   rT   r   r’   r  r   r¼  rŠ   rÍ   rB   rÊ   rC  rw  rÌ   rñ   r„  rt   rV   r‡  Ú	tracebackÚStackSummaryr‹  rv  r‹   rô  rõ  s   @rX   rm  rm  Ý  s;  ø† ðG˜fð G°ð G¸÷ Gð ð�H˜S &˜[Ñ)ó ó ðð;à#ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
÷;ð: ó'ó ð'ð ð �e˜O¨SÐ0Ñ1ó  ó ð ô0ð ð$˜$˜}Ñ-ó $ó ð$ð ð(˜i×4Ñ4°tÑ;ó (ó ð(ð ×Ñð) )×"8Ñ"8ð )¸Tó )ó ö)r[   rm  c                   óÒ   ^ • \ rS rSr% Sr\R                  SS0\R                  SSS.0r\	\
\	\\4   4   \S'   \S	\S
\4S j5       r\S	\S
\4S j5       rSSS\S
\4U 4S jjrSrU =r$ )ÚInspectVariablei	  z¾Handles inspect.Signature and inspect.Parameter objects.

Short-circuits property accesses to avoid tracing property getters,
redirecting them to the underlying private attributes directly.
Ú
parametersrÙ  Ú_kindÚ_name)Úkindr{   Ú_PROPERTY_REDIRECTSrn   rQ   c                 ó:   • [        U 5      [        R                  ;   $ rS   )rt   r‘  r–  ru   s    rX   Úis_matching_objectÚ"InspectVariable.is_matching_object(	  s   € ä�C‹yœO×?Ñ?Ñ?Ð?r[   c                 ó(   • U [         R                  ;   $ rS   )r‘  r–  ru   s    rX   Úis_matching_classÚ!InspectVariable.is_matching_class,	  s   € à”o×9Ñ9Ñ9Ð9r[   rÙ   rK   r{   c                 ó®   >• U R                   R                  [        U R                  5      0 5      nX#;   a  [        TU ]  XU   5      $ [        TU ]  X5      $ rS   )r–  ri   rt   rz   r‘   rú   )r‚   rÙ   r{   Ú	redirectsr•   s       €rX   rú   ÚInspectVariable.var_getattr0	  sN   ø€ Ø×,Ñ,×0Ñ0´°d·j±jÓ1AÀ2ÓFˆ	ØÓÜ‘7Ñ& r°T©?Ó;Ð;Ü‰wÑ" 2Ó,Ð,r[   r…   )rp   r†   r‡   rˆ   r  r   Ú	SignatureÚ	Parameterr–  rÊ   rt   rŠ   r‰   rý   rT   ró  r˜  r›  rB   rú   r‹   rô  rõ  s   @rX   r‘  r‘  	  s³   ø‡ ñð 	×Ñ˜L¨-Ð8Ø×Ñ G°WÑ=ð7Ð˜˜d D¨¨c¨¡NÐ2Ñ3ó ð
 ð@ ð @¨4ó @ó ð@ð ð:˜vð :¨$ó :ó ð:ð-Ð5ð -¸Sð -À_÷ -õ -r[   r‘  c                   óp   ^ • \ rS rSr\S\S\4S j5       rS\S\SS4U 4S jjr	S	S
S\
S\4U 4S jjrSrU =r$ )ÚKeyedJaggedTensorVariablei7	  rn   rQ   c                 ó„   • [         R                  R                  S5      nUS L=(       a    [        U 5      UR                  L $ )Nztorchrec.sparse.jagged_tensor)rg   rh   ri   rt   ÚKeyedJaggedTensor©rn   Úmods     rX   r˜  Ú,KeyedJaggedTensorVariable.is_matching_object8	  s3   € ä�k‰k�o‰oÐ=Ó>ˆØ˜$ˆ×E¤4¨£9°×0EÑ0EÐ#EÐEr[   rz   r�   Nc                 óT   >• SSK Jn  [        U5      UL d   e[        TU ]  " U40 UD6  g )Nr   )r¥  )Útorchrec.sparse.jagged_tensorr¥  rt   r‘   r’   )r‚   rz   r�   r¥  r•   s       €rX   r’   Ú"KeyedJaggedTensorVariable.__init__=	  s/   ø€ õ	
ô �E‹{Ð/Ò/Ð/Ð/Ü‰Ò˜Ñ) &Ó)r[   rÙ   rK   r{   c                 ó  >• [         R                  R                  R                  (       a@  U R                  b3  US;   a-  [
        R                  " SS9   [        TU ]!  X5      sS S S 5        $ [        TU ]!  X5      $ ! , (       d  f       N= f)N)Ú_length_per_keyÚ_offset_per_keyT)Ú#force_unspec_int_unbacked_size_like)	r§   r˜  r™  Ú3force_unspec_int_unbacked_size_like_on_torchrec_kjtrì   r   Úpatchr‘   rú   râ  s      €rX   rú   Ú%KeyedJaggedTensorVariable.var_getattrE	  sg   ø€ ä�M‰M× Ñ ×T×TØ—‘Ñ'ØÐ>Ó>ä×%Ò%È$ÓOÜ‘wÑ*¨2Ó4÷ PÑOä‰wÑ" 2Ó,Ð,÷ PÕOús   ÁA:Á:
Br…   )rp   r†   r‡   rˆ   rý   rT   ró  r˜  r   r’   rŠ   rB   rú   r‹   rô  rõ  s   @rX   r£  r£  7	  sa   ø† ØðF ð F¨4ó Fó ðFð*˜fð *°ð *¸÷ *ð-Ð5ð -¸Sð -À_÷ -õ -r[   r£  c                   ó0   • \ rS rSr\S\S\4S j5       rSrg)ÚIntWrapperVariableiP	  rn   rQ   c                 ó„   • [         R                  R                  S5      nUS L=(       a    [        U 5      UR                  L $ )Nztorch.export.dynamic_shapes)rg   rh   ri   rt   Ú_IntWrapperr¦  s     rX   r˜  Ú%IntWrapperVariable.is_matching_objectS	  s1   € ä�k‰k�o‰oÐ;Ó<ˆØ˜$ˆ×?¤4¨£9°·±Ð#?Ð?r[   r…   N)	rp   r†   r‡   rˆ   rý   rT   ró  r˜  r‹   r…   r[   rX   r´  r´  P	  s(   † ð ð@ ð @¨4ó @ó ó@r[   r´  c            
       ó¬   ^ • \ rS rSrSr  SS\S-  S\S-  S\SS4U 4S jjjrS	S
S\	S\
\   S\\	\4   S\4
U 4S jjrSU 4S jjrS\\   4S jrSrU =r$ )ÚRemovableHandleVariableiY	  éÿÿÿÿNr9  rË  r�   rQ   c                 ó>   >• [         TU ]  " S0 UD6  Xl        X l        g ro  )r‘   r’   r9  rË  )r‚   r9  rË  r�   r•   s       €rX   r’   Ú RemovableHandleVariable.__init__\	  s    ø€ ô 	‰ÒÑ"˜6Ò"Ø*ÔØ�r[   rÙ   rK   r{   rñ   c                 ó"  >• US:X  ay  U R                   U R                  :w  aO  U R                   c   eUR                  R                  R	                  U R                   5        U R                  U l         [
        R                  $ [        TU ]!  XX45      $ )NÚremove)	rË  ÚREMOVEDrà   rá   Úremove_hookr   r  r‘   rC  )r‚   rÙ   r{   rñ   r�   r•   s        €rX   rC  Ú#RemovableHandleVariable.call_methodg	  sr   ø€ ð �8ÓØ�x‰x˜4Ÿ<™<Ó'Ø—x‘xÑ+Ð+Ð+Ø—	‘	×&Ñ&×2Ñ2°4·8±8Ô<ØŸ<™<�”Ü×3Ñ3Ð3Ü‰wÑ" 2¨TÓ:Ð:r[   c                 ó¼   >^• U R                   U R                  :X  a1  TR                  U4S j5        TR                  [	        SS5      5        g [
        TU ]  T5        g )Nc                  ó(   >• T R                  SS5      $ )Nztorch._dynamo.utilsÚinvalid_removeable_handler6  r8  s   €rX   r:  Ú5RemovableHandleVariable.reconstruct.<locals>.<lambda>z	  s   ø€ ˜×0Ñ0Ø)Ð+Fôr[   r   F)rË  r¿  rE  rF  r   r‘   rN  )r‚   r9  r•   s    `€rX   rN  Ú#RemovableHandleVariable.reconstructv	  sN   ù€ Ø�8‰8�t—|‘|Ó#à×!Ñ!ôôð
 ×!Ñ!Ô"6°q¸%Ó"@ÔAØä‰Ñ˜GÕ$r[   c                 ó   • [         $ rS   )r  r™   s    rX   r4  Ú#RemovableHandleVariable.python_typeƒ	  s   € Ü#Ð#r[   )rË  r9  ri  rc  )rp   r†   r‡   rˆ   r¿  r?   rw  r   r’   rŠ   rÍ   rB   rÊ   rC  rN  rt   rT   r4  r‹   rô  rõ  s   @rX   r¹  r¹  Y	  s§   ø† Ø€Gð .2àñ		à# dÑ*ð	ð �4‰Zð		ð
 ð	ð 
÷	ð 	ð;à#ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
÷;÷%ð$˜T &™\÷ $ò $r[   r¹  c            
       ó$  ^ • \ rS rSrSr SS\S\S-  S\SS4U 4S jjjrS	S
S\	S\
\   S\\	\4   S\4
U 4S jjrS	S
S\
\   4S jrSSS\4S jr\S\\   4S j5       r\S\\\4   4S j5       rSS jrS	S
S\
\   SS4S jrS\S   4S jrSrU =r$ )ÚUserDefinedDictVariablei‡	  zè
Represents user defined objects that are subclasses of dict/OrderedDict.

Internally, it uses a ConstDictVariable to represent the dict part of the
variable tracker. For everything else, it falls back to
UserDefinedObjectVariable.
Nrz   r¹  r�   rQ   c                 ó¼   >• [         TU ]  " U40 UD6  Uc6  U R                  b   S5       e[        0 [	        U5      [        5       S9U l        OX l        [        U l        g )Nz@dict_vt must be constructed by builder.py when source is presentr8  )	r‘   r’   rì   rC   rt   rA   Ú_dict_vtr*   Ú_dict_methods)r‚   rz   r¹  r�   r•   s       €rX   r’   Ú UserDefinedDictVariable.__init__�	  sb   ø€ ô 	‰Ò˜Ñ) &Ò)Ø‰?Ø—;‘;Ñ&ð ØRóÐ&ô .Ø”D˜“KÔ/?Ó/AñˆD�Mð $ŒMÜ)ˆÕr[   rÙ   rK   r{   rñ   c                 ód  >• U R                  U5      nXPR                  ;   a   U R                  R                  XX45      $ [        TU ]  XX45      $ ! [         aV    US:X  aN  [        U R                  5       [        5      (       a+  U R                  S5      (       a  U R                  USX45      s $ e f = f)Nr�  Ú__missing__)	rƒ   rÍ  rÌ  rC  r   rÈ   r4  rÊ   r‘   r}  s         €rX   rC  Ú#UserDefinedDictVariable.call_method¢	  s©   ø€ ð ×1Ñ1°$Ó7ˆØ×'Ñ'Ó'ð
Ø—}‘}×0Ñ0°¸4ÓHÐHô ‰wÑ" 2¨TÓ:Ð:øô $ó à˜MÓ)Ü" 4×#3Ñ#3Ó#5´t×<Ñ<Ø×8Ñ8¸×GÑGà×+Ñ+¨B°¸tÓLÒLàðús   £A ÁAB/Â-B/c                 óÚ   • [        U R                  5      R                  [        R                  [        R
                  R                  4;   a  U R                  R                  U5      $ [        erS   )	rt   rz   r€  rÊ   r÷   rø   rÌ  r„  rn  r‘  s     rX   r„  Ú+UserDefinedDictVariable.unpack_var_sequence»	  sQ   € Ü�—
‘
Ó×$Ñ$Ü�M‰MÜ×#Ñ#×,Ñ,ð)
ó 
ð —=‘=×4Ñ4°RÓ8Ð8Ü!Ð!r[   rá   rI   c                 ó8   • UR                  U R                  5      $ rS   )Úis_modifiedrÌ  r/  s     rX   r0  Ú1UserDefinedDictVariable.is_underlying_vt_modifiedÃ	  ó   € Ø×'Ñ'¨¯©Ó6Ð6r[   c                 ó.   • U R                   R                  $ rS   )rÌ  Úuser_clsr™   s    rX   rÙ  Ú UserDefinedDictVariable.user_clsÆ	  s   € à�}‰}×%Ñ%Ð%r[   c                 ó.   • U R                   R                  $ rS   )rÌ  rk  r™   s    rX   rk  ÚUserDefinedDictVariable.itemsÊ	  s   € à�}‰}×"Ñ"Ð"r[   c                 ó6   • U R                   R                  5       $ rS   )rÌ  Úinstall_dict_keys_match_guardr™   s    rX   rÞ  Ú5UserDefinedDictVariable.install_dict_keys_match_guardÎ	  s   € Ø�}‰}×:Ñ:Ó<Ð<r[   c                 ó8   • U R                   R                  X5      $ rS   )rÌ  Úinstall_dict_contains_guard©r‚   rÙ   rñ   s      rX   rá  Ú3UserDefinedDictVariable.install_dict_contains_guardÑ	  s   € ð �}‰}×8Ñ8¸ÓBÐBr[   Fc                 ó0   • [        U R                  U 5        gr.  r  r™   s    rX   ræ  Ú*UserDefinedDictVariable.is_python_hashableÖ	  ó   € Ü  §¡¨TÔ2Ør[   )rÍ  rÌ  rS   r  )rp   r†   r‡   rˆ   r  rT   rC   r   r’   rŠ   rÍ   rB   rÊ   rC  r„  ró  r0  r  rt   rÙ  rk  rÞ  rá  r   ræ  r‹   rô  rõ  s   @rX   rÊ  rÊ  ‡	  s6  ø† ñð -1ñ*àð*ð # TÑ)ð*ð ð	*ð
 
÷*ð *ð$;à#ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
÷;ð2"Ð&=ð "À$ÀÑBWô "ð7°mð 7Èô 7ð ð&˜$˜v™,ó &ó ð&ð ð#�t˜O¨_Ð<Ñ=ó #ó ð#ô=ðCØ)ðCØ15°oÑ1FðCà	ôCð
 G¨E¡N÷ ò r[   rÊ  c            
       óH  ^ • \ rS rSrSr SS\S\S-  S\SS4U 4S jjjrS	S
S\	S\
\   S\\	\4   S\4
U 4S jjrS\4S jrS	S
S\
\   4S jr\S\\   4S j5       r\S\
\   4S j5       rSSS\4S jrSS jrS	S
S\
\   SS4S jrS\4S jrS\4S jrS\S\4S jrSrU =r$ )ÚUserDefinedSetVariableiÛ	  zÔ
Represents user defined objects that are subclasses of set.

Internally, it uses a SetVariable to represent the set part of the
variable tracker. For everything else, it falls back to
UserDefinedObjectVariable.
Nrz   Úset_vtr�   rQ   c                 óL  >• SSK Jn  UR                  SS 5      n[        TU ]  " U40 UD6  [        U[        5      (       a  [        O[        nU[        L a  [        O[        U l
        Uc¶  U R                  b   S5       eU[        L a+  [        R                  " [        5       [        5       S9U l        g UR!                  S0 5      nUc2  ["        R$                  R&                  R(                  R+                  5       nUR-                  XV5      R/                  XW0 5      U l        g X l        g )Nr>   r/  rÙ   z?set_vt must be constructed by builder.py when source is presentr8  r  )r#  r0  Úpopr‘   r’   rÇ   r¿   rË   r:   r,   Ú_set_methodsrì   r   rE   rA   Ú_set_vtri   r§   r˜  Úsymbolic_convertrK   r:  rô   r  )	r‚   rz   ré  r�   r0  rÙ   r4  r  r•   s	           €rX   r’   ÚUserDefinedSetVariable.__init__ä	  só   ø€ õ 	/à�Z‰Z˜˜dÓ#ˆÜ‰Ò˜Ñ) &Ò)ä'¨¬s×3Ñ3•c¼ˆØ+6¼#Ò+=�KÔCTˆÔà‰>Ø—;‘;Ñ&ð ØQóÐ&ð œcÒ!ä(×4Ò4Ü“EÜ"2Ó"4ñ �•ð
 #ŸJ™J {°BÓ7�	Ø‘:ÜŸ™×7Ñ7×MÑM×XÑXÓZ�BØ0×7Ñ7¸ÓH×VÑVØ 2ó �•ð "�Lr[   rÙ   rK   r{   rñ   c                 óœ   >• U R                  U5      nXPR                  ;   a  U R                  R                  XX45      $ [        TU ]  XX45      $ rS   )rƒ   rì  rí  rC  r‘   r}  s         €rX   rC  Ú"UserDefinedSetVariable.call_method
  sJ   ø€ ð ×1Ñ1°$Ó7ˆØ×&Ñ&Ó&Ø—<‘<×+Ñ+¨B°dÓCÐCÜ‰wÑ" 2¨TÓ:Ð:r[   c                 ó6   • U R                   R                  5       $ rS   )rí  rš   r™   s    rX   rš   Ú)UserDefinedSetVariable.as_python_constant
  s   € Ø�|‰|×.Ñ.Ó0Ð0r[   c                 óÊ   • [         R                  " U R                  S5      [        R                  [
        R                  4;   a  U R                  R                  U5      $ [        e)Nr€  )	r   r€   rz   r¿   r€  rË   rí  r„  rn  r‘  s     rX   r„  Ú*UserDefinedSetVariable.unpack_var_sequence
  sM   € Ü×!Ò! $§*¡*¨jÓ9Ü�L‰LÜ×Ñð>
ó 
ð —<‘<×3Ñ3°BÓ7Ð7Ü!Ð!r[   c                 ó.   • U R                   R                  $ rS   )rí  Ú	set_itemsr™   s    rX   r÷  Ú UserDefinedSetVariable.set_items
  s   € à�|‰|×%Ñ%Ð%r[   c                 ó.   • U R                   R                  $ rS   )rí  rk  r™   s    rX   rk  ÚUserDefinedSetVariable.items
  s   € à�|‰|×!Ñ!Ð!r[   rá   rI   c                 ó8   • UR                  U R                  5      $ rS   )rÕ  rí  r/  s     rX   r0  Ú0UserDefinedSetVariable.is_underlying_vt_modified"
  s   € Ø×'Ñ'¨¯©Ó5Ð5r[   c                 ó6   • U R                   R                  5       $ rS   )rí  rÞ  r™   s    rX   rÞ  Ú4UserDefinedSetVariable.install_dict_keys_match_guard%
  s   € Ø�|‰|×9Ñ9Ó;Ð;r[   c                 ó8   • U R                   R                  X5      $ rS   )rí  rá  râ  s      rX   rá  Ú2UserDefinedSetVariable.install_dict_contains_guard(
  s   € ð �|‰|×7Ñ7¸ÓAÐAr[   c                 ób   • [        U R                  U 5        U R                  R                  5       $ rS   )r9   rz   rí  ræ  r™   s    rX   ræ  Ú)UserDefinedSetVariable.is_python_hashable-
  s#   € Ü  §¡¨TÔ2Ø�|‰|×.Ñ.Ó0Ð0r[   c                 ó6   • U R                   R                  5       $ rS   )rí  rë  r™   s    rX   rë  Ú&UserDefinedSetVariable.get_python_hash1
  s   € Ø�|‰|×+Ñ+Ó-Ð-r[   rí  c                 óz   • [        U[        5      =(       a%    U R                  R                  UR                  5      $ rS   )rÇ   rè  rí  rð  rï  s     rX   rð  Ú&UserDefinedSetVariable.is_python_equal4
  s0   € ÜØÔ)ó
÷ :à�l‰l×*Ñ*¨5¯=©=Ó9ð	:r[   )rì  rí  rS   r  )rp   r†   r‡   rˆ   r  rT   rE   r   r’   rŠ   rÍ   rB   rÊ   rC  rš   r„  r  r¿   r÷  rk  ró  r0  rÞ  rá  ræ  rw  rë  rð  r‹   rô  rõ  s   @rX   rè  rè  Û	  sR  ø† ñð ;?ñ"Øð"Ø%0°4Ñ%7ð"ØJMð"à	÷"ð "ð>
;à#ð
;ð ð
;ð �?Ñ#ð	
;ð
 �S˜/Ð)Ñ*ð
;ð 
÷
;ð1 Fô 1ð"Ð&=ð "À$ÀÑBWô "ð ð&˜3˜s™8ó &ó ð&ð ð"�t˜OÑ,ó "ó ð"ð6°mð 6Èô 6ô<ðBØ)ðBØ15°oÑ1FðBà	ôBð
1 Dô 1ð. ô .ð: Vð :°÷ :ò :r[   rè  c            
       ó¾   ^ • \ rS rSrSr SS\S\S   S\SS4U 4S	 jjjrS
SS\	S\
\   S\\	\4   S\4
U 4S jjrS
SS\
\   4S jrSSS\4S jrS\S   4S jrSrU =r$ )ÚUserDefinedListVariablei:
  zØ
Represents user defined objects that are subclasses of lists.

Internally, it uses a ListVariable to represent the list part of the
variable tracker. For everything else, it falls back to
UserDefinedObjectVariable.
Nrz   Úlist_vt)rN   Nr�   rQ   c                 ó˜   >• SSK Jn  [        TU ]  " U40 UD6  Uc)  U R                  b   S5       eU" / [        5       S9U l        g X l        g )Nr>   ra  z@list_vt must be constructed by builder.py when source is presentr8  )r~  rN   r‘   r’   rì   rA   Ú_list_vt)r‚   rz   r	  r�   rN   r•   s        €rX   r’   Ú UserDefinedListVariable.__init__C
  sR   ø€ õ 	(ä‰Ò˜Ñ) &Ò)Ø‰?Ø—;‘;Ñ&ð ØRóÐ&ñ )¨Ô;KÓ;MÑNˆD�Mà#�Mr[   rÙ   rK   r{   rñ   c                 ó°   >• U R                   c   eU R                  U5      nU[        ;   a  U R                   R                  XX45      $ [        TU ]  XX45      $ rS   )r  rƒ   r4   rC  r‘   r}  s         €rX   rC  Ú#UserDefinedListVariable.call_methodQ
  sV   ø€ ð �}‰}Ñ(Ð(Ð(Ø×1Ñ1°$Ó7ˆØ”\Ó!Ø—=‘=×,Ñ,¨R°tÓDÐDÜ‰wÑ" 2¨TÓ:Ð:r[   c                 óÂ   • U R                   c   e[        U R                  5      R                  [        R                  L a  U R                   R                  U5      $ [        erS   )r  rt   rz   r€  rÍ   r„  rn  r‘  s     rX   r„  Ú+UserDefinedListVariable.unpack_var_sequence^
  sH   € Ø�}‰}Ñ(Ð(Ð(Ü�—
‘
Ó×$Ñ$¬¯©Ò5Ø—=‘=×4Ñ4°RÓ8Ð8Ü!Ð!r[   rá   rI   c                 ó8   • UR                  U R                  5      $ rS   )rÕ  r  r/  s     rX   r0  Ú1UserDefinedListVariable.is_underlying_vt_modifiedd
  r×  r[   Fc                 ó0   • [        U R                  U 5        gr.  r  r™   s    rX   ræ  Ú*UserDefinedListVariable.is_python_hashableg
  ræ  r[   )r  rS   )rp   r†   r‡   rˆ   r  rT   r	   r   r’   rŠ   rÍ   rB   rÊ   rC  r„  ró  r0  r   ræ  r‹   rô  rõ  s   @rX   r  r  :
  sÄ   ø† ñð EIñ$Øð$Ø&+Ð,@Ñ&Að$ØTWð$à	÷$ð $ð;à#ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
÷;ð"Ð&=ð "À$ÀÑBWô "ð7°mð 7Èô 7ð G¨E¡N÷ ò r[   r  c            
       óÂ   ^ • \ rS rSrSr\R                  rSU 4S jjrSSS\S\	\
   S\\\
4   S	\
4
U 4S
 jjrSSS	\	\
   4S jrS	\4S jrS	\4S jrS\S	\4S jrSrU =r$ )rã  il
  zÚ
Represents user defined objects that are subclasses of tuple.

Internally, it uses a TupleVariable to represent the tuple part of the
variable tracker. For everything else, it falls back to
UserDefinedObjectVariable.
c                 ó8  >• SSK Jn  UR                  SS 5      n[        T	U ]  " U4SU0UD6  Uce  U R
                  b   S5       eU(       d   S5       eUc  SSKJn  UR                  " 5       nUS   R                  U5      nU" U[        5       S	9U l        g X l        g )
Nr>   re  rÙ   r  zAtuple_vt must be constructed by builder.py when source is presentz0init_args must be provided when tuple_vt is Noner   rJ   r8  )r~  rO   rë  r‘   r’   rì   r9  rK   r:  r}  rA   rä  )
r‚   rz   Útuple_vtr  r�   rO   rÙ   rK   Úelemsr•   s
            €rX   r’   Ú!UserDefinedTupleVariable.__init__w
  s    ø€ Ý(à�Z‰Z˜˜dÓ#ˆÜ‰Ò˜Ñ>¨)Ð>°vÒ>ØÑØ—;‘;Ñ&ð ØSóÐ&ö ÐPÐPÓP�9ð
 ‰zÝPà*×5Ò5Ó7�Ø˜a‘L×:Ñ:¸2Ó>ˆEÙ*¨5Ô@PÓ@RÑSˆD�Nà%�Nr[   rÙ   rK   r{   rñ   r�   rQ   c                 óö  >• U R                   c   eUS:X  aI  [        U5      S:w  d  U(       a  [        S5      e[        R                  " U R                  US   5      5      $ US:X  aN  [        U5      S:w  d  U(       a  [        S5      e[        R                  " U R                  US   5      (       + 5      $ U R                  U5      nU[        ;   a  U R                   R                  XX45      $ [        TU ]!  XX45      $ )Nr3  r>   zImproper arguments for method.r   r4  )
rä  r@  Ú
ValueErrorr   rM   rð  rƒ   r<   rC  r‘   r}  s         €rX   rC  Ú$UserDefinedTupleVariable.call_methodŽ
  sÛ   ø€ ð �~‰~Ñ)Ð)Ð)Ø�8ÓÜ�4‹y˜A‹~¦Ü Ð!AÓBÐBÜ×-Ò-¨d×.BÑ.BÀ4ÈÁ7Ó.KÓLÐLØ�XÓÜ�4‹y˜A‹~¦Ü Ð!AÓBÐBÜ×-Ò-°$×2FÑ2FÀtÈAÁwÓ2OÔ.OÓPÐPØ×1Ñ1°$Ó7ˆØ”]Ó"Ø—>‘>×-Ñ-¨b¸ÓEÐEÜ‰wÑ" 2¨TÓ:Ð:r[   c                 óÂ   • U R                   c   e[        U R                  5      R                  [        R                  L a  U R                   R                  U5      $ [        erS   )rä  rt   rz   r€  rÌ   r„  rn  r‘  s     rX   r„  Ú,UserDefinedTupleVariable.unpack_var_sequence£
  sH   € Ø�~‰~Ñ)Ð)Ð)Ü�—
‘
Ó×$Ñ$¬¯©Ò6Ø—>‘>×5Ñ5°bÓ9Ð9Ü!Ð!r[   c                 ób   • [        U R                  U 5        U R                  R                  5       $ rS   )r9   rz   rä  ræ  r™   s    rX   ræ  Ú+UserDefinedTupleVariable.is_python_hashable©
  s#   € Ü  §¡¨TÔ2Ø�~‰~×0Ñ0Ó2Ð2r[   c                 ó6   • U R                   R                  5       $ rS   )rä  rë  r™   s    rX   rë  Ú(UserDefinedTupleVariable.get_python_hash­
  s   € Ø�~‰~×-Ñ-Ó/Ð/r[   rí  c                 óz   • [        U[        5      =(       a%    U R                  R                  UR                  5      $ rS   )rÇ   rã  rä  rð  rï  s     rX   rð  Ú(UserDefinedTupleVariable.is_python_equal°
  s0   € ÜØÔ+ó
÷ >à�n‰n×,Ñ,¨U¯_©_Ó=ð	>r[   )rä  ri  )rp   r†   r‡   rˆ   r  r  r   r’   rŠ   rÍ   rB   rÊ   rC  r„  ró  ræ  rw  rë  rT   rð  r‹   rô  rõ  s   @rX   rã  rã  l
  s§   ø† ñð /×=Ñ=€N÷&ð.;à#ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
÷;ð*"Ð&=ð "À$ÀÑBWô "ð3 Dô 3ð0 ô 0ð> Vð >°÷ >ò >r[   rã  c                   ó~   ^ • \ rS rSrS\S\SS4U 4S jjr SSSS	\S\S
\S\4
U 4S jjjr	SSS	\
S\4U 4S jjrSrU =r$ )ÚMutableMappingVariablei¶
  rz   r�   rQ   Nc                 óH   >• [         TU ]  " U40 UD6  [        0 5      U l        g rS   )r‘   r’   rC   Úgeneric_dict_vtr”   s      €rX   r’   ÚMutableMappingVariable.__init__·
  s"   ø€ Ü‰Ò˜Ñ) &Ò)Ü0°Ó4ˆÕr[   rÙ   rK   r{   rh  c                 ó  >• [        U[        R                  5      (       aÝ  [        UR                  [        5      (       a¾  UR                  n[
        R                  " [        U R                  5      US5      n[        U[        5      (       ar  UR                  be  SnU R                  (       a  U R                  U5      n[        US5      n[        R                  " XR                  U5      n	U	R                  XU/0 5      $ [         T
U ]E  XX45      $ )aá  Override to handle property setters on MutableMapping subclasses.

This is needed because property.__set__ is a slot wrapper (C function),
not a Python function, so the base class's try_get_descritor_and_setter_py_func
returns None for properties. But property.fset IS a Python function we can trace.

Without this, property setters on newly created MutableMapping objects fail
when accessing nested objects (which haven't been initialized yet on the
example value). By tracing the fset, we capture the setter logic in the graph
instead of running it on uninitialized example objects.

TODO(compiler): This fix is scoped to MutableMapping only because tracing
property setters on ALL UserDefinedObjectVariable can cause failures when
the fset calls untraceable C++ functions (e.g., pybind functions). Ideally,
this should be extended to all user-defined classes with a graceful fallback
when tracing the fset hits an untraceable function.
See: https://github.com/pytorch/pytorch/issues/172000
NÚfset)rÇ   r   rM   rz   rŠ   r   r€   rt   r  r+  r  rb  r   rB   rö   r  r‘   r^  )r‚   rÙ   r{   rz   rh  rs  ru  Úfset_sourcerw  Úfset_vtr•   s             €rX   r^  Ú.MutableMappingVariable.method_setattr_standard»
  sÌ   ø€ ô2 �dœI×6Ñ6×7Ñ7¼JÀtÇzÁzÔSV×<WÑ<WØ—z‘zˆHÜ ×/Ò/´°T·Z±ZÓ0@À(ÈDÓQˆJÜ˜*¤h×/Ñ/°J·O±OÑ4OØ"�Ø—?—?Ø"&×"@Ñ"@ÀÓ"J�KÜ",¨[¸&Ó"A�KÜ)×/Ò/°·O±OÀ[ÓQ�Ø×,Ñ,¨R¸°ÀÓCÐCä‰wÑ.¨r¸ÓUÐUr[   c                 ór  >• US:X  az  [        U R                  5      R                  [        R                  R
                  R                  [        R                  4;   a%  [        R                  " [        R                  U 5      $ US:X  aj  U R                  (       aY  [        R                  R                  U R                  R                  [        U R                  S5      5      U l        U R                   $ U R                   R#                  [        R$                  " U5      5      =n(       a  U$ [&        TU ]Q  X5      $ )Nri   r}   )rt   rz   ri   r÷   ÚabcÚMappingrÊ   r   r  r   Úmapping_getrì   rƒ  rô   r}   r   r(  Úmaybe_getitem_constrM   r‘   rú   )r‚   rÙ   r{   rï  r•   s       €rX   rú   Ú"MutableMappingVariable.var_getattrá
  sð   ø€ ð �5‹=œT $§*¡*Ó-×1Ñ1Ü�O‰O×#Ñ#×'Ñ'Ü�H‰Hð6
ó 
ô ×/Ò/´	×0EÑ0EÀtÓLÐLØ�ZÓ D§K§KÜ#,×#@Ñ#@×#GÑ#GØ—
‘
×#Ñ#¤Z°·±¸ZÓ%Hó$ˆDÔ ð ×'Ñ'Ð'Ø×(Ñ(×<Ñ<Ü×&Ò& tÓ,ó
ð 
ˆSõ 
ð ˆJä‘7Ñ& rÓ0Ð0r[   )r(  r  )rp   r†   r‡   rˆ   rT   r   r’   rB   ró  r^  rŠ   rú   r‹   rô  rõ  s   @rX   r&  r&  ¶
  s„   ø† ð5˜fð 5°ð 5¸÷ 5ð &+ñ$Và#ð$Vð ð$Vð ð	$Vð
 #ð$Vð 
÷$Vð $VðL1Ð5ð 1¸Sð 1À_÷ 1õ 1r[   r&  c                   ó   • \ rS rSrSrg)r²  iû
  r…   Nr  r…   r[   rX   r²  r²  û
  r  r[   r²  )“r  rà  rÆ   r÷   rm  r¢  r  r‡  r   r¤  r°  rg   r\  rŽ  rû   r‹  r„  Úcollections.abcr   r   r   Útypingr   r   r   r	   Útyping_extensionsr
   Útorch._dynamo.configr§   Útorch.nnÚtorch._guardsr   r   Útorch.utils._python_dispatchr   ró   r   r   r   Úbytecode_transformationr   Úcreate_parameter_opr   Úexcr   r   r   r   r   r   r   r¬  r   Úguardsr   r   rì   r   r   r    r!   r"   r#   r$   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¡  r?   r@   rA   rB   ÚdictsrC   rD   rE   Únumpyr©  ÚModuleNotFoundErrorÚtorch.utils._cxx_pytreerF   rf   rt   Útorch._dynamo.codegenrG   Útorch._dynamo.side_effectsrI   r9  rK   Ú torch._dynamo.variables.constantrM   r~  rN   rO   rT   ró  rY   r^   rm   rv   rx   r�   r÷  rû  r  r  rÊ   rŠ   r  r  r"  re  rm  r‘  r£  r´  r¹  rÊ  rè  r  rã  r&  r²  r…   r[   rX   Ú<module>rH     sÈ  ðñó. Û Û Û Û Û Û Û Û Û Û 
Û Û Û Û Û ß 8Ñ 8ß 5Ó 5Ý *ã Û ß 0Ý Kç 6Ñ 6Ý :Ý F÷÷ ñ õ Aß 0÷÷ ÷ ÷÷ ÷ ÷ ÷ ÷ ÷0 XÓ Wß FÑ FðÛðÝ2ö
 Ý/Ý6ÝDÝAç2ðB˜Vð B¨ô BðB˜Vð B¨ô Bð fð °ô ð$˜Fð  tô ô
˜/ô 
ô@
Ð2ô @
ôFÐ(@ô ô$;Ð#;ô $;÷N	ñ 	÷	ñ 	ðSØðSà��c�ÑðSð �?Ñ
#ðSð ��oÐ%Ñ&ð	Sð
 ôSô(M
Ð 3ô M
ô`yLÐ7ô yLôx
Ð$=ô 
ô0<)Ð)Bô <)ô~-Ð/ô -ô6-Ð 9ô -ô2@Ð2ô @ô+$˜oô +$ô\QÐ7ô Qôh\:Ð6ô \:ô~/Ð7ô /ôdG>Ð8ô G>ôTB1Ð6ô B1ôJ	Ð.õ 	øðeT ó Ø	ƒBðûð
 ó Ù�d“ƒJðús$   Ä
I ÄI& ÉI#É"I#É&I8É7I8