Ë
    ÃÓ^jÄc ã                   ó*  — U d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlZddlZddlZddlmZmZmZ ddlmZmZmZmZmZ ddlmZ ddlZddlZddlm Z  ddl!m"Z"m#Z# ddl$m%Z% dd	l&m'Z' dd
l(m)Z)m*Z* ddl+m,Z,m-Z-m.Z.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z: ddl;m<Z< ddl=m>Z>m?Z? ddl@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJ ddlKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZd ddlemfZfmgZgmhZhmiZimjZjmkZkmlZl ddlmmnZnmoZo ddlpmqZq ddlrmsZsmtZt ddlumvZv 	 ddlwZx	 ddlzm{Z{ da~e%e   dz  e€d<   de%e   fd„Z�de%e   fd„Z‚er&ddlƒm„Z„ dd l…m†Z† dd!l‡mˆZˆ dd"l‰mŠZŠ dd#lmm‹Z‹ dd$lŒm�Z�mŽZŽ d%ede�fd&„Z�d%ede�fd'„Z‘d(ede�fd)„Z’d*ede�fd+„Z“d,ede�fd-„Z” e•e–e�j.                  e�j0                  e�j2                  h«      Zše•e}   e€d.<   d*ede�fd/„Z›d*ede�fd0„Zœ G d1„ d2el«      Z� G d3„ d4e�«      Zž G d5„ d6ež«      ZŸ G d7„ d8«      Z d9d:d;ed<ef   d=e¡el   d>e¢e£elf   delf
d?„Z¤ G d@„ dAe�«      Z¥ G dB„ dCe¥«      Z¦ G dD„ dEe¥«      Z§ G dF„ dGe¥«      Z¨ G dH„ dIe¥«      Z© G dJ„ dKe¥«      Zªe«e¬e£fZ­e­D � �ci c]6  } | | �j\                  �j_                  «       D �ch c]  } e°|«      sŒ|’Œ c}“Œ8 c}} Z±e¢e}e²e   f   e€dL<    G dM„ dNe¥«      Z³ G dO„ dPe¥«      Z´ G dQ„ dRel«      Zµ G dS„ dTe¥«      Z¶ G dU„ dVe¶«      Z· G dW„ dXe¶«      Z¸ G dY„ dZe¥«      Z¹ G d[„ d\e¥«      Zº G d]„ d^e¥«      Z» G d_„ d`e»«      Z¼ G da„ dbe»«      Z½ G dc„ dde¥«      Z¾ G de„ dfe¥«      Z¿y# ey$ r dZxY �Œ3w xY w# e|$ r  e}d«      Z{Y �Œ@w xY wc c}w c c}} w )gam  
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ÚcastÚNoReturnÚTYPE_CHECKINGÚUnion)Úis_typeddict)ÚPyNumberSlots)ÚSourceÚTracingContext)Ú
OrderedSet)Ú"is_traceable_wrapper_subclass_type)Ú
GetAttrKeyÚis_structseq_classé   )ÚconfigÚgraph_break_hintsÚ	polyfillsÚ	variables)Úcreate_call_function)Ú$do_not_convert_to_tracable_parameter)Úhandle_observed_exceptionÚObservedAttributeErrorÚObservedKeyErrorÚraise_observed_exceptionÚraise_type_errorÚunimplemented)Úget_external_object_by_index)ÚGuardBuilderÚinstall_guard)
Ú
AttrSourceÚCallFunctionNoArgsSourceÚDictGetItemSourceÚEphemeralSourceÚGetItemSourceÚRandomValueSourceÚTypeDictSourceÚTypeMROSourceÚ
TypeSourceÚUnspecializedParamBufferSource)Úbase_exception_methodsÚcheck_constant_argsÚcmp_name_to_op_mappingÚdict_methodsÚexception_methodsÚfrozenset_methodsÚget_custom_getattrÚhas_torch_functionÚis_lru_cache_wrapped_functionÚis_namedtuple_clsÚis_pybind11_enum_memberÚis_torch_classÚis_wrapper_or_member_descriptorÚistypeÚlist_methodsÚnamedtuple_fieldsÚobject_has_getattributeÚproxy_args_kwargsÚraise_args_mismatchÚset_methodsÚtensortype_to_dtypeÚtracked_reprÚtuple_methodsÚunpack_iterableÚunpatched_nn_module_getattré   )Ú_RICHCOMPARE_OPSÚ#AsPythonConstantNotImplementedErrorÚAttrMutationKindÚMutationTypeÚNO_SUCH_SUBOBJÚValueMutationNewÚVariableTracker)ÚConstDictVariableÚpydict_check©ÚHashableTracker)Úis_nb_not_implementedÚtype_implements_nb_slot)ÚSetVariable)Ú
PyTreeSpecÚ_SAFE_C_SLOTSÚreturnc                  ó’  — t         €¼ddl} ddl}ddl}t	        «       a | j                  | j
                  | j                  | j                  | j                  |j                  |j                  fD ]T  }t         j                  |j                  «       dD ].  }t        ||«      sŒt         j                  t        ||«      «       Œ0 ŒV t         S )z½C slot wrappers known to be safe to call at trace time.

    Covers tp_hash and tp_richcompare slots for C extension types.
    Used by UDOV's hash_impl and richcompare_impl MRO walks.
    Nr   )Ú__eq__Ú__ne__Ú__lt__Ú__le__Ú__gt__Ú__ge__)rV   ÚdatetimeÚdecimalÚrer   ÚdateÚtimeÚ	timedeltaÚtimezoneÚDecimalÚPatternÚaddÚ__hash__ÚhasattrÚgetattr)r_   r`   ra   ÚtpÚdunders        úo/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/_dynamo/variables/user_defined.pyÚ_safe_c_slotsro   „   s¬   € ô ÐÛÛÛä"›ˆà×ÑØ�M‰MØ�M‰MØ×ÑØ×ÑØ�O‰OØ�J‰Jð
ò 	;ˆBô ×Ñ˜bŸk™kÔ*ØVò ;�Ü˜2˜vÕ&Ü!×%Ñ%¤g¨b°&Ó&9Õ:ñ;ð	;ô Ðó    c                  ó   — t        «       S )zCBackward compat: returns the unified set (hash funcs are a subset).)ro   © rp   rn   Ú_safe_c_tp_hash_funcsrs   ¡   s
   € ä‹?Ðrp   )Ú	PyCodegen©ÚSideEffects)ÚInstructionTranslatorBase©ÚConstantVariable)ÚDunderDictVariable)ÚListVariableÚTupleVariableÚvalc                 óF   — | t         j                  t        j                  fv S ©N)ÚobjectÚ__setattr__ÚBaseException©r}   s    rn   Úis_standard_setattrr„   °   ó   € Ø”6×%Ñ%¤}×'@Ñ'@ÐAÐAÐArp   c                 óF   — | t         j                  t        j                  fv S r   )r€   Ú__delattr__r‚   rƒ   s    rn   Úis_standard_delattrrˆ   ´   r…   rp   Úctxc                 ó–  — g }	 ddl m}m} |j                  |«       |j                  |«       	 ddlm} |j                  |«       	 ddlm} |j                  |«       t        j                  j                  d«      x}r|j                  |j                  «       | |v S # t        $ r Y Œ{w xY w# t        $ r Y Œrw xY w# t        $ r Y Œiw xY w)Nr   )Ú	RaisesExcÚRaisesGroup)ÚRaisesContext)ÚWarningsCheckerz!torch.testing._internal.jit_utils)Ú_pytest.raisesr‹   rŒ   ÚappendÚImportErrorÚ_pytest.python_apir�   Ú_pytest.recwarnrŽ   ÚsysÚmodulesÚgetÚ&_AssertRaisesRegexWithHighlightContext)r‰   Úf_ctxsr‹   rŒ   r�   rŽ   Úms          rn   Úis_forbidden_context_managerrš   ¸   sÀ   € Ø€Fð
ß9à�‰�iÔ Ø�‰�kÔ"ðÝ4à�‰�mÔ$ðÝ3à�‰�oÔ&ô �K‰K�O‰OÐ?Ó@Ð@€qÐ@Ø�‰�a×>Ñ>Ô?à�&ˆ=Ðøô) ò Ùðûô ò Ùðûô ò Ùðús4   „*B ¯B- ÁB< Â	B*Â)B*Â-	B9Â8B9Â<	CÃCÚobjc                 óz   — t        | «      xr/ t        t        | «      d«      xr t        | «      j                  dk(  S )NÚ__name__Úcython_function_or_method)Úcallablerj   Útyper�   ©r›   s    rn   Úis_cython_functionr¢   Ú   s9   € ä�‹ò 	>Ü”D˜“I˜zÓ*ò	>ä�‹I×ÑÐ"=Ñ=ðrp   Úvaluec                 ó|   — t        j                  | «      xr& t        j                  | «      xr dt	        | di «      v S )NÚ__is_pydantic_dataclass__Ú__dict__)ÚinspectÚisclassÚdataclassesÚis_dataclassrk   ©r£   s    rn   Úis_pydantic_dataclass_clsr¬   â   s>   € ä�‰˜Óò 	JÜ×$Ñ$ UÓ+ò	Jà'¬7°5¸*ÀbÓ+IÐIðrp   ÚKNOWN_DATA_DESCRIPTOR_TYPESc                 óz   — t        | «      }|t        v ryt        |d«      xr t        |d«      xs t        |d«      S )zTReturn True if *obj* is a data descriptor (has __get__ and (__set__ or __delete__)).TÚ__get__Ú__set__Ú
__delete__)r    r­   rj   )r›   rl   s     rn   Úis_data_descriptorr²   ø   sA   € ä	ˆc‹€BØ	Ô(Ñ(ØÜ�2�yÓ!ò Ü��IÓÒ;¤'¨"¨lÓ";ðrp   c                 ó:   — 	 t        | «       y# t        $ r Y yw xY w)NTF)ÚhashÚ	TypeErrorr¡   s    rn   Úis_hashabler¶     s#   € ðÜˆSŒ	ØøÜò Ùðús   ‚ Ž	™c                   ó(   — e Zd ZU eed<   dedefd„Zy)ÚUserDefinedVariabler£   ÚnamerW   c                 ó¨   — |t        | j                  di «      vr*	 t        j                  t	        | j                  «      |«      S y# t
        $ r Y yw xY w)zEGet method from the base class if not overridden in value's __dict__.r¦   N)rk   r£   r§   Úgetattr_staticr    ÚAttributeError)Úselfr¹   s     rn   Ú_maybe_get_baseclass_methodz/UserDefinedVariable._maybe_get_baseclass_method  sT   € à”w˜tŸz™z¨:°rÓ:Ñ:ðÜ×-Ñ-¬d°4·:±:Ó.>ÀÓEÐEð øô "ò ØØðús   ›(A Á	AÁAN)r�   Ú
__module__Ú__qualname__r€   Ú__annotations__Ústrr   r¾   rr   rp   rn   r¸   r¸   
  s   … ØƒMð°ð ¸ô rp   r¸   c            
       óX  ‡ — e Zd ZU ee   ed<   dee   deddfˆ fd„Zdedef   dz  fd„Z	dd	de
eef   fd
„Zdd	dededefd„Zdee   fd„Zdefd„Zdefd„Zeej,                  deee      fd„«       «       Zeej,                  deee      fd„«       «       Zeej,                  dee   fd„«       «       Zededefd„«       Zdefd„Zdedefd„Zdd	dedefd„Zdedefd„Z 	 	 	 	 d?d„Z!dd	defd„Z"	 d@dd	dededefd„Z#dd	dedefd„Z$dd	ded ed!e%dz  def
d"„Z&dd	ded#ed!e%dz  def
d$„Z'dd	ded#ed!e%dz  def
ˆ fd%„Z(dd	ded&ed!e%dz  def
d'„Z)dd	defd(„Z*dd	defd)„Z+dd	defd*„Z,dd	d+edefˆ fd,„Z-dd	defˆ fd-„Z.dd	defd.„Z/dd	defd/„Z0dd	defd0„Z1dd	d1ededz  defˆ fd2„Z2e2Z3dd	d3e4e   de5eef   defd4„Z6dd	ded3e4e   de5eef   def
ˆ fd5„Z7dd	de4d   fd6„Z8dd	d3e4e   de5eef   defˆ fd7„Z9defd8„Z:dd	dedd9fd:„Z;dd	dedefˆ fd;„Z<dedefd<„Z=defd=„Z>defd>„Z?ˆ xZ@S )AÚUserDefinedClassVariabler£   ÚkwargsrW   Nc                 ó@   •— t        ‰| �  di |¤Ž || _        d| _        y )NFrr   )ÚsuperÚ__init__r£   Úban_mutation©r½   r£   rÅ   Ú	__class__s      €rn   rÈ   z!UserDefinedClassVariable.__init__  s$   ø€ Ü‰ÑÑ"˜6Ò"ØˆŒ
ð "ˆÕrp   .c                 ó<   — | j                   rt        j                  S y r   )Úsourcer!   ÚCLASS_MATCH©r½   s    rn   Úget_id_guard_typez*UserDefinedClassVariable.get_id_guard_type#  s   € Ø�;Š;Ü×+Ñ+Ð+Ørp   Útxrw   c                 óú   — | j                   rJ	 t        | j                   j                  t        j                  «      «       t        | j                  «      dfS t        | j                  «      dfS # t        $ r Y Œ"w xY w)NFT)rÍ   r"   Ú
make_guardr!   rÎ   r´   r£   ÚNotImplementedError©r½   rÑ   s     rn   Ú	hash_implz"UserDefinedClassVariable.hash_impl(  si   € Ø�;Š;ðÜ˜dŸk™k×4Ñ4´\×5MÑ5MÓNÔOÜ˜DŸJ™JÓ'¨Ð.Ð.ô �D—J‘JÓ Ð%Ð%øô 'ò Ùðús   ŽAA. Á.	A:Á9A:ÚotherÚopc                 ód  — ddl m} t        |d«      s |j                  t        «      S |dv rJ	 |dk(  r| j
                  |j
                  k(  n| j
                  |j
                  k7  } |j                  |«      S  |j                  t        «      S # t        $ r  |j                  t        «      cY S w xY w)NrF   rx   r£   )rY   rZ   rY   )Úconstantry   rj   ÚcreateÚNotImplementedr£   Ú	Exception)r½   rÑ   r×   rØ   ry   Úresults         rn   Úrichcompare_implz)UserDefinedClassVariable.richcompare_impl1  s´   € õ 	/ä�u˜gÔ&Ø*Ð#×*Ñ*¬>Ó:Ð:ØÐ%Ñ%ð?ð ˜X’~ð —Z‘Z 5§;¡;Ò.àŸ*™*¨¯©Ñ3ð ð
 /Ð'×.Ñ.¨vÓ6Ð6ð 'Ð×&Ñ&¤~Ó6Ð6øô ò ?Ø.Ð'×.Ñ.¬~Ó>Ò>ð?ús   ®AB ÂB/Â.B/c                 ó   — | j                   S r   r«   rÏ   s    rn   Úas_python_constantz+UserDefinedClassVariable.as_python_constantD  ó   € Ø�z‰zÐrp   c                 ó   — | j                   S r   r«   rÏ   s    rn   Úas_proxyz!UserDefinedClassVariable.as_proxyG  râ   rp   c                 óN   — | j                   j                  › d| j                  › d�S ©Nú(ú))rË   r�   r£   rÏ   s    rn   Ú__repr__z!UserDefinedClassVariable.__repr__J  s$   € Ø—.‘.×)Ñ)Ð*¨!¨D¯J©J¨<°qÐ9Ð9rp   c                  ó~   — t         j                  t         j                  t         j                  t         j                  hS r   )ÚtorchÚdeviceÚfinfoÚiinfoÚSizerr   rp   rn   Ú_constant_fold_classesz/UserDefinedClassVariable._constant_fold_classesM  s*   € ô �L‰LÜ�K‰KÜ�K‰KÜ�J‰Jð	
ð 	
rp   c                  óÐ  — t         j                  t         j                  j                  t         j                  j                  t         j                  j
                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  t         j                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  h} t        t         d«      rC| j!                  t         j"                  j                  t         j"                  j                  h«       t%        t'        j(                  «       «      | z  S )NÚhpu)rë   ÚTensorÚcudaÚFloatTensorÚDoubleTensorÚ
HalfTensorÚBFloat16TensorÚ
ByteTensorÚ
CharTensorÚ	IntTensorÚShortTensorÚ
LongTensorÚStreamÚEventÚxpurj   Úupdaterò   ÚsetrA   Úkeys)Ú_in_graph_class_lists    rn   Ú_in_graph_classesz*UserDefinedClassVariable._in_graph_classesW  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ÐErp   c            	      ó   — t        t        «      D � ch c]X  } t        t        t        | «      t        «      r8t        t        t        | «      t        «      rt        t        | «      j                  ’ŒZ }} t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t         j                  h	}|j#                  |«      S c c} w r   )ÚdirÚbuiltinsÚ
isinstancerk   r    Ú
issubclassr‚   Ú__new__r€   Údictr  Ú	frozensetÚtupleÚlistÚintÚfloatrÂ   Úunion)r¹   Ú
exceptionsÚ	c_new_fnss      rn   Úsupported_c_new_functionsz2UserDefinedClassVariable.supported_c_new_functionsv  s´   € ô
 œH›ö 
àÜœ'¤(¨DÓ1´4Ô8Üœ7¤8¨TÓ2´MÔBô ”H˜dÓ#×+Ó+ð 
ˆ
ð  
ô �N‰NÜ�L‰LÜ�K‰KÜ×ÑÜ�M‰MÜ�L‰LÜ�K‰KÜ�M‰MÜ�K‰Kð

ˆ	ð �‰˜zÓ*Ð*ùò# 
s   ’ADc                 óœ   — t        | «      sy| t        j                  «       v ryt        | dd «      }t	        |t
        «      xr t        |«      S )NFTÚ__self__)r¶   rÄ   r  rk   r	  r    r   )r£   Úowners     rn   Úis_supported_new_methodz0UserDefinedClassVariable.is_supported_new_methodŒ  sH   € ä˜5Ô!ØØÔ,×FÑFÓHÑHØä˜˜z¨4Ó0ˆÜ˜%¤Ó&ÒDÔ+=¸eÓ+DÐDrp   c                 ó¼   — | j                   | j                  «       v ryt        | j                   t        «      xr$ t	        | j                   t
        j                  «      S )NT)r£   rð   r	  r    r
  ÚenumÚEnumrÏ   s    rn   Úcan_constant_fold_throughz2UserDefinedClassVariable.can_constant_fold_through–  sA   € Ø�:‰:˜×4Ñ4Ó6Ñ6Øô ˜$Ÿ*™*¤dÓ+ÒQ´
¸4¿:¹:ÄtÇyÁyÓ0QÐQrp   r¹   c                 ó‚   — | j                   j                  D ]!  }||j                  v sŒ|j                  |   c S  t        S )z?Walk cls.__mro__ only (not the metaclass chain) to find *name*.)r£   Ú__mro__r¦   rK   ©r½   r¹   Úbases      rn   Úlookup_cls_mro_attrz,UserDefinedClassVariable.lookup_cls_mro_attr�  s>   € à—J‘J×&Ñ&ò 	+ˆDØ�t—}‘}Ò$Ø—}‘} TÑ*Ò*ð	+ô Ðrp   c           
      óv  — | j                   }|€t        d«      ‚t        | j                  j                  «      D �]c  \  }}||j
                  v sŒ|j
                  |   }t        d|«      D ]Å  }| j                  j                  |   }t        |«      |f}	|	|j                  j                  v rŒB|j                  j                  j                  |	«       t        |«      }
t        |
|«      }t        |«      }t        |j                  t!        j"                  t$        j&                  |¬«      «      «       ŒÇ t        |«      |f}	|j                  j(                  }|	|v r||	   c S |dk7  rt        |«      }
t        |
|«      }n|}t        |«      }t+        ||«      }|||	<   |c S  t        d|› d| j                  › �«      ‚)Nz)get_source_by_walking_mro requires sourcerF   ©Úkeyr   z
Attribute z not found in MRO of )rÍ   ÚRuntimeErrorÚ	enumerater£   r  r¦   ÚrangeÚidÚoutputÚguarded_mro_absent_keysrh   r*   r'   r)   r"   rÓ   Ú	functoolsÚpartialr!   ÚDICT_NOT_CONTAINSÚmro_source_cacher%   )r½   rÑ   r¹   rÍ   ÚidxÚklassÚ
descriptorÚ
absent_idxÚabsent_klassÚ	cache_keyÚ
mro_sourceÚklass_sourceÚdict_sourceÚcacheÚ
out_sources                  rn   Úget_source_by_walking_mroz2UserDefinedClassVariable.get_source_by_walking_mro¤  s§  € ð —‘ˆØˆ>ÜÐJÓKÐKä# D§J¡J×$6Ñ$6Ó7ó  	"‰JˆC�Ø�u—~‘~Ò%Ø"Ÿ^™^¨DÑ1�
ä"'¨¨3£-ò �JØ#'§:¡:×#5Ñ#5°jÑ#A�LÜ!# LÓ!1°4Ð 8�IØ  B§I¡I×$EÑ$EÑEØ Ø—I‘I×5Ñ5×9Ñ9¸)ÔDÜ!.¨vÓ!6�JÜ+8¸ÀZÓ+P�LÜ"0°Ó">�KÜ!Ø#×.Ñ.Ü%×-Ñ-¬l×.LÑ.LÐRVÔWóõðô   
›^¨TÐ2�	ØŸ	™	×2Ñ2�Ø Ñ%Ø  Ñ+Ò+à˜!’8Ü!.¨vÓ!6�JÜ#0°¸SÓ#A‘Là#)�LÜ,¨\Ó:�Ü.¨{¸DÓA�
Ø#-��iÑ Ø!Ò!ðA 	"ôD ˜Z¨ vÐ-BÀ4Ç:Á:À,ÐOÓPÐPrp   c                 ó”   — t        | j                  «      j                  D ]!  }||j                  v sŒ|j                  |   c S  t        S )z<Walk type(cls).__mro__ (the metaclass chain) to find *name*.)r    r£   r  r¦   rK   r   s      rn   Úlookup_metaclass_attrz.UserDefinedClassVariable.lookup_metaclass_attrÏ  sC   € ä˜Ÿ™Ó$×,Ñ,ò 	+ˆDØ�t—}‘}Ò$Ø—}‘} TÑ*Ò*ð	+ô Ðrp   rM   c                 ó¬   — ddl m} t        | j                  «      }t	        |d«      r|t        ur| j                  |dg i «      S  |j                  d«      S )NrF   rx   Ú__bool__T)rÚ   ry   r    r£   rj   Úcall_methodrÛ   )r½   rÑ   ry   Ú	metaclasss       rn   Ú	bool_implz"UserDefinedClassVariable.bool_implÖ  sS   € õ 	/ô ˜Ÿ™Ó$ˆ	Ü�9˜jÔ)¨i¼tÑ.CØ×#Ñ# B¨
°B¸Ó;Ð;Ø&Ð×&Ñ& tÓ,Ð,rp   c                 óR  — t        | j                  «      }|t         u s/t        | j                  «      j                  t         j                  u r)t        j                  |t        | j                  «      «      S | j                  d«      }|€t        |d«       | j                  |dg i «      S )Nré   ú!'NoneType' object is not callable)	r    r£   ré   rM   ÚbuildÚreprr=  r   r@  )r½   rÑ   rA  Ú	type_attrs       rn   Ú	repr_implz"UserDefinedClassVariable.repr_implã  s†   € ä˜Ÿ™Ó$ˆ	ØœÑ¤ T§Z¡ZÓ 0× 9Ñ 9¼T¿]¹]Ñ JÜ"×(Ñ(¨¬T°$·*±*Ó-=Ó>Ð>à×.Ñ.¨zÓ:ˆ	ØÐÜ˜RÐ!DÔEØ×Ñ  J°°BÓ7Ð7rp   Úreversec                 óD  — 	 |j                  «       }t        | j                  «      j                  | j                  |«      }|t        u rt        j                  |t        «      S t        j                  ||«      S # t        $ r t        j                  |t        «      cY S w xY wr   )rá   rÔ   rM   rE  rÜ   r    r£   Ú__or__)r½   rÑ   r×   rI  Ú	other_valrÞ   s         rn   Ú
nb_or_implz#UserDefinedClassVariable.nb_or_implî  sˆ   € ð	=Ø×0Ñ0Ó2ˆIô �d—j‘jÓ!×(Ñ(¨¯©°YÓ?ˆØ”^Ñ#Ü"×(Ñ(¨¬^Ó<Ð<Ü×$Ñ$ R¨Ó0Ð0øô #ò 	=Ü"×(Ñ(¨¬^Ó<Ò<ð	=ús   ‚A9 Á9#BÂBc           	      óÂ  — | j                   �t        | j                   |«      nd }t        | j                  «      }|t        ur;d|j                  v r-t        dd| j                  › d|› �dt        j                  ¬«       | j                  |«      }|t        urt        |«      r| j                  ||||«      S |j                  j                  j                  | |«      r&|j                  j                  j                  | |«      S | j!                  |«      }|t        ur=t#        t        |«      d«      r| j%                  ||||«      S | j'                  ||||«      S |t        u�r=| j                   rt)        | j                   «      nd }t+        j,                  |t        | j                  «      |«      }t/        |t0        j2                  «      r+t5        j6                  |||¬«      }	|	j9                  || |«      S t/        |t0        j:                  «      r+t5        j<                  |||¬«      }
|
j9                  || |«      S t/        |t0        j>                  «      r*t5        j@                  ||¬	«      }|j9                  || |«      S t5        jB                  | |t        |«      |¬	«      S t        | j                  «      }|t        urx| j                  d
«      }|t        ur_t/        |t0        jD                  «      rEt5        jF                  || «      jI                  |t4        jJ                  jM                  |«      gi «      S tO        tP        |d| j                  jR                  › d|› d�g¬«       y )NÚ__getattribute__z&Custom metaclass with __getattribute__ztype(z) = z\Dynamo does not trace attribute access on classes whose metaclass overrides __getattribute__©Úgb_typeÚcontextÚexplanationÚhintsr¯   ©r  rÍ   ©rÍ   Ú__getattr__ztype object 'z' has no attribute 'ú'©Úargs)*rÍ   r#   r    r£   r¦   r   r   ÚSUPPORTABLEr=  rK   r²   Úresolve_meta_data_descriptorr*  Úside_effectsÚhas_pending_mutation_of_attrÚ	load_attrr"  rj   Úresolve_cls_descriptorÚresolve_cls_plain_attrr+   rM   rE  r	  ÚtypesÚWrapperDescriptorTyper   ÚWrapperDescriptorVariableÚtp_descr_get_implÚMethodDescriptorTypeÚMethodDescriptorVariableÚClassMethodDescriptorTypeÚClassMethodDescriptorVariableÚGetAttrVariableÚFunctionTypeÚUserMethodVariableÚcall_functionry   rÛ   r   r¼   r�   )r½   rÑ   r¹   rÍ   ÚmetaclsÚ	meta_attrÚcls_attrÚmetacls_sourceÚ
metacls_vtÚwd_vtÚmd_vtÚcmd_vtÚmeta_getattrs                rn   Úvar_getattrz$UserDefinedClassVariable.var_getattrÿ  sü  € ð 37·+±+Ð2I”˜DŸK™K¨Ô.Ètˆô �t—z‘zÓ"ˆØœ$ÑÐ#5¸×9IÑ9IÑ#IÜØ@Ø §
¡
˜|¨4°¨yÐ9ð7ä'×3Ñ3õð* ×.Ñ.¨tÓ4ˆ	ØœNÑ*Ô/AÀ)Ô/LØ×4Ñ4°R¸¸yÈ&ÓQÐQð �9‰9×!Ñ!×>Ñ>¸tÀTÔJØ—9‘9×)Ñ)×3Ñ3°D¸$Ó?Ð?ð ×+Ñ+¨DÓ1ˆØœ>Ñ)Ü”t˜H“~ yÔ1à×2Ñ2°2°t¸XÀvÓNÐNà×.Ñ.¨r°4¸À6ÓJÐJð œNÒ*Ø8<¿ºœZ¨¯©Ô4ÈˆNÜ(×.Ñ.¨r´4¸¿
¹
Ó3CÀ^ÓTˆJÜ˜)¤U×%@Ñ%@ÔAÜ!×;Ñ;Ø Z¸ô�ð ×.Ñ.¨r°4¸ÓDÐDÜ˜)¤U×%?Ñ%?Ô@Ü!×:Ñ:Ø Z¸ô�ð ×.Ñ.¨r°4¸ÓDÐDÜ˜)¤U×%DÑ%DÔEÜ"×@Ñ@Ø fô�ð ×/Ñ/°°D¸*ÓEÐEÜ×,Ñ,¨T°4¼¸i»ÐQWÔXÐXô �t—z‘zÓ"ˆØœ$ÑØ×5Ñ5°mÓDˆLØ¤>Ñ1´jØœe×0Ñ0ô7ô !×3Ñ3°LÀ$ÓG×UÑUØœ×3Ñ3×:Ñ:¸4Ó@ÐAÀ2óð ô
 	!ÜØØ! $§*¡*×"5Ñ"5Ð!6Ð6JÈ4È&ÐPQÐRÐSö	
rp   ro  rÍ   c                 ó�  — |dk(  rNt        j                  || j                  j                  | j                  xr t        | j                  d«      ¬«      S |dk(  rf|t        j                  d   u r$| j                  xr t        | j                  «      }n|}t        j                  || j                  j                  |«      S t        j                  | j                  |«      }|rt        j                  |||«      S ddl
m}  |j                  |«      rt        j                  ||«      S t        j                  | |t        |«      |¬«      S )zEHandle data descriptors from the metaclass MRO (type.__dict__ slots).r¦   rV  r  rF   rx   )rM   rE  r£   r¦   rÍ   r#   r    r*   r  rO  Ú ry   Ú
is_literalr   rj  )r½   rÑ   r¹   ro  rÍ   Úattr_sourceÚresolvedry   s           rn   r\  z5UserDefinedClassVariable.resolve_meta_data_descriptor]  s  € ð �:ÒÜ"×(Ñ(ØØ—
‘
×#Ñ#Ø—{‘{ÒJ¤z°$·+±+¸zÓ'Jôð ð
 �9ÒØœDŸM™M¨)Ñ4Ñ4Ø"Ÿk™kÒH¬m¸D¿K¹KÓ.H‘à$�Ü"×(Ñ(¨¨T¯Z©Z×-?Ñ-?ÀÓMÐMô ×(Ñ(¨¯©°TÓ:ˆÙÜ"×(Ñ(¨¨X°vÓ>Ð>Ý&à&Ð×&Ñ& xÔ0Ü"×(Ñ(¨¨XÓ6Ð6Ü×(Ñ(¨¨t´T¸(³^ÈFÔSÐSrp   rp  c                 ó~	  — t        |t        «      rJ| j                  �| j                  ||«      nd}t	        j
                  ||¬«      }|j                  || | «      S t        |t        «      r¢t        |j                  t        «      r>t        j                  ||j                  j                  «      }|j                  || gi «      S | j                  �| j                  ||«      nd}t	        j                  ||¬«      }|j                  || | «      S t        |t        j                   «      r*t	        j"                  ||¬«      }	|	j                  || | «      S t        |t        «      r7| j                  �| j                  ||«      nd}t	        j$                  ||¬«      S t        |t        j&                  «      r7| j                  �| j                  ||«      nd}t	        j(                  ||¬«      S t        |t*        j,                  «      rJ| j                  �| j                  ||«      nd}t	        j.                  ||¬«      }
|
j                  |d| «      S |t0        v r<t        |t        j2                  «      s"t	        j4                  | |t7        |«      |¬«      S t        |t        j8                  «      r1t;        | j<                  «      s|dvrt	        j>                  || |¬«      S t        |t        j@                  «      r1t;        | j<                  «      s|dvrt	        jB                  || |¬«      S tE        jF                  t7        |«      dd«      }t        |t        j2                  «      r„|rn|tI        | j<                  di «      v s>| j<                  jJ                  jM                  d«      s| j<                  jJ                  d	k(  rt        j                  |||«      S | jO                  ||||«      S tE        jP                  |«      r®|rŠ| j<                  tR        jT                  urn|tI        | j<                  di «      v s>| j<                  jJ                  jM                  d«      s| j<                  jJ                  d	k(  rt        j                  |||«      S t	        j4                  | |t7        |«      |¬«      S t        j                  |||«      S )
z(Handle descriptors found in cls.__mro__.NrV  )Úpy_typerÍ   )r¯   r°   r±   rU  r¯   r¦   ztorch.rë   )+r	  ÚstaticmethodrÍ   r;  r   ÚStaticMethodVariablere  ÚclassmethodÚ__func__ÚpropertyrM   rE  Úfgetrm  ÚClassMethodVariablerb  rh  ri  ÚPropertyVariableÚMemberDescriptorTypeÚMemberDescriptorVariableÚ_collectionsÚ_tuplegetterÚTupleGetterVariabler/   rk  rj  r    rc  r8   r£   rd  rf  rg  r§   r»   rk   r¿   Ú
startswithÚinvoke_cls_descriptor_getÚismethoddescriptorÚcollectionsÚOrderedDict)r½   rÑ   r¹   rp  rÍ   Údescriptor_sourceÚsm_vtÚfget_vtÚcm_vtru  Útg_vtÚget_fns               rn   r`  z/UserDefinedClassVariable.resolve_cls_descriptor|  s8  € ô �h¤Ô-ð —;‘;Ð*ð ×.Ñ.¨r°4Ô8àð ô
 ×2Ñ2°8ÐDUÔVˆEØ×*Ñ*¨2¨t°TÓ:Ð:ä�h¤Ô,Ü˜(×+Ñ+¬XÔ6Ü)×/Ñ/°°H×4EÑ4E×4JÑ4JÓK�Ø×,Ñ,¨R°$°¸Ó<Ð<ð —;‘;Ð*ð ×.Ñ.¨r°4Ô8àð ô
 ×1Ñ1°(ÐCTÔUˆEØ×*Ñ*¨2¨t°TÓ:Ð:ä�h¤× ?Ñ ?Ô@Ü×<Ñ<¸XÈfÔUˆFØ×+Ñ+¨B°°dÓ;Ð;ô �h¤Ô)ð —;‘;Ð*ð ×.Ñ.¨r°4Ô8àð ô
 ×-Ñ-¨hÐ?PÔQÐQô �h¤× :Ñ :Ô;ð —;‘;Ð*ð ×.Ñ.¨r°4Ô8àð ô
 ×5Ñ5ØÐ!2ôð ô �h¤× 9Ñ 9Ô:ð —;‘;Ð*ð ×.Ñ.¨r°4Ô8àð ô
 ×1Ñ1°(ÐCTÔUˆEØ×*Ñ*¨2¨t°TÓ:Ð:ð
 Ô)Ñ)´*Ø”e×(Ñ(ô3
ô ×,Ñ,Ø�d¤D¨£N¸6ôð ô �x¤×!<Ñ!<Ô=Ü" 4§:¡:Ô.ØÐ@Ñ@ä×6Ñ6Ø ¨Vôð ô �x¤×!;Ñ!;Ô<Ü" 4§:¡:Ô.ØÐ@Ñ@ä×5Ñ5Ø ¨Vôð ô ×'Ñ'¬¨X«¸	À4ÓHˆÜ�fœe×0Ñ0Ô1ÙØœ §
¡
¨J¸Ó;Ñ;Ø—:‘:×(Ñ(×3Ñ3°HÔ=Ø—:‘:×(Ñ(¨GÒ3ä&×,Ñ,¨R°¸6ÓBÐBØ×1Ñ1°"°d¸HÀfÓMÐMô ×%Ñ% hÔ/áØ—J‘J¤k×&=Ñ&=Ñ=àœG D§J¡J°
¸BÓ?Ñ?Ø—z‘z×,Ñ,×7Ñ7¸ÔAØ—z‘z×,Ñ,°Ò7ô '×,Ñ,¨R°¸6ÓBÐBÜ×,Ñ,¨T°4¼¸h»ÐPVÔWÐWô ×$Ñ$ R¨°6Ó:Ð:rp   c                 ó   •— |dk(  r%t         j                  |«      rt        ‰| �  ||«      S | j                  t
        j                  u r!t        j                  | |t        |«      ¬«      S t        j                  |||«      S )z2Handle non-descriptor attributes from cls.__mro__.r  )r~  )rÄ   r  rÇ   rw  r£   r�  r�  r   rj  r    rM   rE  )r½   rÑ   r¹   rp  rÍ   rË   s        €rn   ra  z/UserDefinedClassVariable.resolve_cls_plain_attr  sr   ø€ ð �9ÒÔ!9×!QÑ!QØô"
ô ‘7Ñ& r¨4Ó0Ð0Ø�:‰:œ×0Ñ0Ñ0Ü×,Ñ,¨T°4ÄÀhÃÔPÐPÜ×$Ñ$ R¨°6Ó:Ð:rp   r2  c                 ól  — ddl m} d}d}| j                  rCt        | j                  |«      }t        t	        |«      d«      }t        j                  |||«      }nt        |«      } |j                  d«      }	t        j                  |j                  j                  ||¬«      j                  ||	| gi «      S )z7Trace a class-MRO descriptor's __get__(None, cls) call.rF   rx   Nr¯   rV  )rÚ   ry   rÍ   r#   r+   rM   rE  ÚUserDefinedObjectVariablerÛ   r   rl  r¯   r‚  rm  )
r½   rÑ   r¹   r2  rÍ   ry   r‘  Údescriptor_get_sourceÚdescriptor_varÚnone_vars
             rn   r�  z2UserDefinedClassVariable.invoke_cls_descriptor_get  s­   € õ 	/à ÐØ $ÐØ�;Š;Ü *¨4¯;©;¸Ó =ÐÜ$.¬zÐ:KÓ/LÈiÓ$XÐ!Ü,×2Ñ2°2°zÐCTÓU‰Nä6°zÓBˆNà*Ð#×*Ñ*¨4Ó0ˆÜ×+Ñ+Ø×Ñ×'Ñ'ØØ(ô
÷ ‰-˜˜X tÐ,¨bÓ
1ð		2rp   c                 ó   — | j                  d«      }|rM| j                  xr t        | j                  d«      }t        j                  || |¬«      j                  |g i «      S t        |d| j                  «       › d�«       y )NÚ__len__©Ú	source_fnzobject of type z has no length©r¾   rÍ   r#   r   rl  rm  r   Úpython_type_name©r½   rÑ   r™   rÍ   s       rn   Úlen_implz!UserDefinedClassVariable.len_impl/  su   € Ø×,Ñ,¨YÓ7ˆÙØ—[‘[ÒG¤Z°·±¸YÓ%GˆFÜ×/Ñ/Ø�4 6ôç‰m˜B  BÓ'ð(ô 	˜˜¨t×/DÑ/DÓ/FÐ.GÀ~ÐVÕWrp   c                 ó$   — | j                  |«      S r   ©r¤  rÕ   s     rn   Ú	sq_lengthz"UserDefinedClassVariable.sq_length8  ó   € Ø�}‰}˜RÓ Ð rp   c                 ó$   — | j                  |«      S r   r¦  rÕ   s     rn   Ú	mp_lengthz"UserDefinedClassVariable.mp_length;  r¨  rp   Úitemc                 ót   •— | j                  d«      }|r| j                  |d|gi «      S t        ‰| �  ||«      S ©NÚ__contains__)r¾   r@  rÇ   Úsq_contains)r½   rÑ   r«  r™   rË   s       €rn   r¯  z$UserDefinedClassVariable.sq_contains>  sC   ø€ ð ×,Ñ,¨^Ó<ˆÙØ×#Ñ# B¨¸¸ÀÓCÐCÜ‰wÑ" 2 tÓ,Ð,rp   c                 óâ   •— | j                  d«      }|rM| j                  xr t        | j                  d«      }t        j                  || |¬«      j                  |g i «      S t        ‰| �  |«      S )NÚ__iter__rŸ  )r¾   rÍ   r#   r   rl  rm  rÇ   Útp_iter_impl)r½   rÑ   r™   rÍ   rË   s       €rn   r²  z%UserDefinedClassVariable.tp_iter_implF  si   ø€ Ø×,Ñ,¨ZÓ8ˆÙØ—[‘[ÒH¤Z°·±¸ZÓ%HˆFÜ×/Ñ/Ø�4 6ôç‰m˜B  BÓ'ð(ô ‰wÑ# BÓ'Ð'rp   c                 ó   — | j                  d«      }|rM| j                  xr t        | j                  d«      }t        j                  || |¬«      j                  |g i «      S t        |d| j                  «       › d�«       y )NÚ__neg__rŸ  úbad operand type for unary -: 'rX  r¡  r£  s       rn   Únb_negative_implz)UserDefinedClassVariable.nb_negative_implO  óy   € Ø×,Ñ,¨YÓ7ˆÙØ—[‘[ÒG¤Z°·±¸YÓ%GˆFÜ×/Ñ/Ø�4 6ôç‰m˜B  BÓ'ð(ô 	ØÐ1°$×2GÑ2GÓ2IÐ1JÈ!ÐLõ	
rp   c                 ó   — | j                  d«      }|rM| j                  xr t        | j                  d«      }t        j                  || |¬«      j                  |g i «      S t        |d| j                  «       › d�«       y )NÚ__pos__rŸ  úbad operand type for unary +: 'rX  r¡  r£  s       rn   Únb_positive_implz)UserDefinedClassVariable.nb_positive_implZ  r·  rp   c                 ó   — | j                  d«      }|rM| j                  xr t        | j                  d«      }t        j                  || |¬«      j                  |g i «      S t        |d| j                  «       › d�«       y )NÚ__abs__rŸ  úbad operand type for abs(): 'rX  r¡  r£  s       rn   Únb_absolute_implz)UserDefinedClassVariable.nb_absolute_imple  sy   € Ø×,Ñ,¨YÓ7ˆÙØ—[‘[ÒG¤Z°·±¸YÓ%GˆFÜ×/Ñ/Ø�4 6ôç‰m˜B  BÓ'ð(ô 	ØØ+¨D×,AÑ,AÓ,CÐ+DÀAÐFõ	
rp   r%  c                 óz  •— |d u }|rdnd}| j                  |«      }t        |t        j                  «      ru| j                  xr t        | j                  |«      }|r|gn||g}t        j                  || |¬«      j                  ||i «       t        j                  j                  d «      S t        ‰	| �1  |||«      S )NÚ__delitem__Ú__setitem__rŸ  )r¾   r	  rb  rk  rÍ   r#   r   rl  rm  ry   rÛ   rÇ   Úmp_ass_subscript_impl)
r½   rÑ   r%  r£   Ú	is_deleteÚattrr™   rÍ   rZ  rË   s
            €rn   rÃ  z.UserDefinedClassVariable.mp_ass_subscript_implq  s°   ø€ ð ˜T�Mˆ	Ù )‰}¨}ˆØ×,Ñ,¨TÓ2ˆÜ�aœ×+Ñ+Ô,Ø—[‘[ÒB¤Z°·±¸TÓ%BˆFÙ%�C‘5¨C°¨<ˆDÜ×(Ñ(¨¨D¸FÔC×QÑQØ�D˜"ôô ×-Ñ-×4Ñ4°TÓ:Ð:Ü‰wÑ,¨R°°eÓ<Ð<rp   rZ  c                 óÜ  ‡‡‡‡	‡
‡‡— ddl m}  |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«       |j                  d«      fdt        dt        d	t        d
t        dt        dt        dt        t        df   fd„} ||i |¤Ž\  ŠŠŠŠ	Š
Šdt        dt        dt        fˆˆˆ	ˆ
ˆˆˆfd„}t        j                  |«      S )aj  
        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
        rF   rx   NiœÿÿÿÚmeang        ÚweightÚsize_averageÚignore_indexÚreduceÚ	reductionÚlabel_smoothingrW   .c                 ó   — | |||||fS r   rr   )rÈ  rÉ  rÊ  rË  rÌ  rÍ  s         rn   Únormalize_argszIUserDefinedClassVariable._call_cross_entropy_loss.<locals>.normalize_args™  s    € ð ØØØØØðð rp   ÚinputÚtargetc                 óÄ   •— ddl m}  |‰ ‰j                  j                  dt        j
                  j                  j                  gt        | |‰	‰‰‰‰‰gi «      ¢­Ž ¬«      S )NrF   )Úwrap_fx_proxyrm  ©rÑ   Úproxy)	ÚbuilderrÓ  r*  Úcreate_proxyrë   ÚnnÚ
functionalÚcross_entropyr>   )
rÐ  rÑ  rÓ  rÊ  rÍ  Ú
reduce_argrÌ  rÉ  rÑ   rÈ  s
      €€€€€€€rn   Úfake_cross_entropy_losszRUserDefinedClassVariable._call_cross_entropy_loss.<locals>.fake_cross_entropy_loss³  ss   ø€ õ /á ØØ,�b—i‘i×,Ñ,Ø#Ü—H‘H×'Ñ'×5Ñ5ðô 'à!Ø"Ø"Ø(Ø(Ø&Ø%Ø+ð	ð óòôð rp   )ry  ry   rÛ   rM   r  r   ÚLambdaVariable)r½   rÑ   rZ  rÅ   ry   rÏ  rÜ  rÊ  rÍ  rÛ  rÌ  rÉ  rÈ  s    `     @@@@@@rn   Ú_call_cross_entropy_lossz1UserDefinedClassVariable._call_cross_entropy_lossˆ  s  þ€ õ 	'ð '>Ð&6×&=Ñ&=¸dÓ&CØ,CÐ,<×,CÑ,CÀDÓ,IØ,CÐ,<×,CÑ,CÀDÓ,IØ&=Ð&6×&=Ñ&=¸dÓ&CØ)@Ð)9×)@Ñ)@ÀÓ)HØ/FÐ/?×/FÑ/FÀsÓ/Kñ	Ü#ð	ä)ð	ô *ð	ô $ð		ô
 'ð	ô -ð	ô ”? CÐ'Ñ(ó	ñ0 ˜DÐ+ FÑ+ñ	
ØØØØØØð	Ü"ð	Ü,;ð	ä÷	ó 	ô4 ×'Ñ'Ð(?Ó@Ð@rp   c                 óÈ  •— ddl m} |dk(  r�t        |«      dk(  r‚|s€d| j                  j                  vrh| j
                  }| j
                  r!t        | j
                  d«      }t        |«      }t        j                  || j                  j                  «       |«      S | j                  t        j                  t        j                  hv r3|dk(  r.t        j                  j                   || j                  g|¢­i |¤ŽS | j                  t        j                  u r!|dk(  r|d   j#                  ||g |dd  ¢|«      S |dk(  r"t        |«      dk(  r|sddlm}  |||d   «      S t)        | j                  t*        «      r-|d	k7  r(|j-                  |t*        «      j#                  ||||«      S t)        | j                  t.        t0        f«      r-|d	k7  r(|j-                  |t.        «      j#                  ||||«      S t        |«      dk(  r6t3        |d   t        j4                  «      r|d
k(  r|d   j7                  |«      S |d	k(  ržt8        j;                  | j                  j<                  «      ru| j                  j<                  }|t*        j<                  t.        j<                  fv rg }	nt?        |dd  «      }	|j@                  jB                  jE                  | |d   |	|¬«      S |dk(  r<| jF                  r0tI        dtK        | j                  «      dtL        jN                  ¬«       tQ        | j                  «      }
|
tP        ur™|
jR                  D ]Š  }||j                  v sŒ|j                  |   }t3        |tT        jV                  «      rO| j
                  xr t        | j
                  |«      }t        jX                  || |¬«      j[                  |||«      c S  n t\        ‰| �E  ||||«      S )NrF   ©ÚSourcelessBuilderÚ__subclasses__r   ÚfromkeysÚmove_to_endrž  )Úgeneric_lenr  Ú	__enter__©rÑ   r�   zCClass attribute mutation when the __dict__ was already materializedzVDynamo does not support tracing mutations on a class when its __dict__ is materializedrP  rV  )/rÖ  rá  Úlenr£   r¦   rÍ   r#   r$   rM   rE  râ  r�  r�  Údefaultdictr   ÚDictBuiltinVariableÚcall_custom_dict_fromkeysr@  Úobject_protocolrå  r
  r  rÛ   r  r  r	  ÚGenericContextWrappingVariableÚenterrÄ   r  r  r  r*  r]  Útrack_new_user_defined_objectrÉ   r   rÂ   r   r[  r    r  rb  rk  rl  rm  rÇ   )r½   rÑ   r¹   rZ  rÅ   rá  rÍ   rå  Únew_fnÚ	init_argsrA  r1  ÚmethodrË   s                €rn   r@  z$UserDefinedClassVariable.call_methodÏ  sq  ø€ õ 	/ð Ð$Ò$Ü�D“	˜Q’ÙØ ¨¯
©
×(;Ñ(;Ñ;à—[‘[ˆFØ�{Š{Ü# D§K¡KÐ1AÓB�Ü1°&Ó9�Ü"×(Ñ(¨¨T¯Z©Z×-FÑ-FÓ-HÈ&ÓQÐQà�J‰Jœ;×2Ñ2´K×4KÑ4KÐLÑLØ˜
Ò"ä×0Ñ0×JÑJØ�D—J‘JðØ!%òØ)/ñð ð �Z‰Zœ;×2Ñ2Ñ2°t¸}Ò7LØ˜‘7×&Ñ& r¨4°°4¸¸°8°¸fÓEÐEØ�YÒ¤3 t£9°¢>¹&Ý4á˜r 4¨¡7Ó+Ð+Ü˜Ÿ
™
¤DÔ)¨d°iÒ.?à$×+Ñ+¨B´Ó5×AÑAØ�D˜$ óð ô ˜Ÿ
™
¤S¬)Ð$4Ô5¸$À)Ò:Kà$×+Ñ+¨B´Ó4×@Ñ@ÀÀTÈ4ÐQWÓXÐXä�‹I˜ŠNÜ˜4 ™7¤I×$LÑ$LÔMØ˜Ò#à˜‘7—=‘= Ó$Ð$Ø�YÒÔ#;×#SÑ#SØ�J‰J×Ñô$
ð —Z‘Z×'Ñ'ˆFØœ$Ÿ,™,¬¯©Ð4Ñ4Ø35‘	ä   a b ›N�	Ø—9‘9×)Ñ)×GÑGØØ�Q‘ØØð	 Hó ð ð �]Ò" t×'8Ò'8ÜØ]Ü˜DŸJ™J›ØtÜ'×3Ñ3õ	ô ˜Ÿ™Ó$ˆ	ØœDÑ à"×*Ñ*ò �Ø˜5Ÿ>™>Ò)Ø"Ÿ^™^¨DÑ1�FÜ! &¬%×*<Ñ*<Ô=Ø!%§¡Ò!N´¸D¿K¹KÈÓ1N˜Ü(×;Ñ;Ø" D°ô ç'™-¨¨D°&Ó9ò:ñ ðô ‰wÑ" 2 t¨T°6Ó:Ð:rp   c                 óð   — t        | j                  t        «      rRt        | j                  t        j
                  «      r.| j                  D �cg c]  }t        j                  ||«      ‘Œ c}S t        ‚c c}w r   )	r	  r£   r    r
  r  r  rM   rE  rÔ   )r½   rÑ   r«  s      rn   Úunpack_var_sequencez,UserDefinedClassVariable.unpack_var_sequence*  sQ   € ô �d—j‘j¤$Ô'¬J°t·z±zÄ4Ç9Á9Ô,MØ@DÇ
Á
ÖK¸”O×)Ñ)¨"¨dÕ3ÒKÐKÜ!Ð!ùò Ls   ÁA3c                 óJ  •— ddl m} ddlm}m} ddlm}m} t        ||«      }	t        j                  j                  «       r¢| j                  t        j                  j                  u r|t        j                  st!        dddd	g¬
«       |j"                  j                   j%                  |j'                  |t(        «      | g |¬«      }
|
j+                  |dt-        |«      |«       |
S | j/                  «       rx|	rvt1        j2                  | | j5                  «       |D �cg c]  }|j5                  «       ‘Œ c}i |j7                  «       D ��ci c]  \  }}||j5                  «       “Œ c}}¤Ž«      S | j                  t        j8                  j:                  u r| j=                  |||«      S | j                  t>        j@                  u rddlm!}  ||i |¤ŽS | j                  tD        jF                  u rbddlm} |j"                  j                   j%                  |j'                  |tH        «      | g |¬«      }|j+                  |dt-        |«      |«       |S tK        | j                  «      rq| j                  jL                  r3t!        dtO        | j                  «      ddgtP        jR                  ¢¬
«       tU        jV                  jX                  |tH        g|¢­i |¤ŽS | j                  tD        jZ                  u rêtT        j\                  j'                  d «      }	 dDdt^        t`           d z  dtb        d z  dt`        fd„}d }	  te        jf                  |«      jh                  |i |¤Ž}|€to        d«      ‚d|jp                  v rts        ||jp                  d   «      }ng }d|jp                  v r|jp                  d   }tT        jt                  jw                  ||ty        «       ¬«      S | j                  tz        j|                  u rªt        |«      dk(  rœt�        |d   tT        j‚                  «      rt�        |d   |«      rp|d   j…                  «       dv r[|d   j†                  }t‰        ||d   j…                  «       «      jŠ                  }tU        jŒ                  ||d   | jŽ                  ¬ «      S | j                  t�        j’                  u rLt        |«      dkD  r|d   }ntT        j\                  j'                  d «      }tU        j”                  |d   |«      S | j                  t–        j˜                  u rN|s t!        d!d"d#d$gtP        jl                  ¢¬
«       |d   }|dd  }tT        jš                  j�                  |||¬%«      S | j                  tž        j                   u r"|s tT        j¢                  j'                  ||«      S |s’t        |«      dk(  r„ || j                  «      x}�p|d   j¥                  «       s:t§        || j                  j¨                  › d&| j                  jª                  › d'�«       |j'                  ||d   j5                  «       «      S t­        t¯        | j                  «      t®        «      �r%t±        | j                  d(«      �rt±        | j                  d)«      �r÷| j³                  «       �ræ |j´                  | j                  «      �rÉ| jŽ                  �r¼t·        | j                  «      �s¦dd*l\m]} dd+lMm^}m_} | j                  t>        jÀ                  t>        jÂ                  t>        jÄ                  t>        jÆ                  t>        jÈ                  fv r7t!        d,| j                  › | j                  › d-�g tP        jR                  ¢¬
«       |}| j                  t>        jÊ                  u r²t�        |d   ||f«      r¡t        jÌ                  j                  jÎ                  st!        d.d|› �d/d0g¬
«       t�        |d   |«      r:|d   }|d   j6                  }|d   jÑ                  «       } |jÓ                  ||| «      S  ||d   |d   jŽ                  ¬ «      g|dd  z   }|jÕ                  t1        j2                  |tÖ        jØ                  «      | g|¢|«      S tÛ        | j                  «      rµtÝ        | j                  «      rh|st        |«      dk7  r&tß        |d1d2t        |«      › d3t        |«      › d4�«       |j"                  j                   j%                  | | t-        |«      |¬«      S |jÕ                  t1        j2                  |tÖ        jØ                  «      | g|¢|«      S | j                  t        jà                  u r?dd5l:mq}! |j'                  |tä        «      jÓ                  |||«      }" |!|"j6                  «      S tç        | j                  «      r*t!        d6| j                  › d7tP        jR                  ¬
«       �nü| j                  | jé                  «       v stë        | j                  «      �rïdd8l:mv}# tî        rª| j                  tð        v r˜t        |«      dk(  rŠt�        |d   |#«      r{t        |d   j6                  «      dkD  r`tó        d9„ |d   j6                  D «       «      rA || |j"                  jô                  d:t        jö                  gtù        ||«      ¢­Ž ¬;«      }$|$g}t­        | j                  t        jú                  «      rÚdd<l:m~}% tÿ        |j7                  «       D ��ci c]  \  }}t1        j2                  ||«      |“Œ c}}«      }& |%t-        |«      «      }' | j                  |'j5                  «       i |&j5                  «       ¤Ž}(dd=l€m�}) dd>l‚mƒ}*  |)|(|*�j	                  |'|&«      «      }+ |||j"                  jõ                  d:�t
        |+fi «      ¬;«      },|,S t­        | j                  t        �j                  «      rÚdd<l:m~}% tÿ        |j7                  «       D ��ci c]  \  }}t1        j2                  ||«      |“Œ c}}«      }& |%t-        |«      «      }' | j                  |'j5                  «       i |&j5                  «       ¤Ž}-dd=l€m�}) dd?l‚m‡}.  |)|-|.�j                  |'|&«      «      }+ |||j"                  jõ                  d:�t
        |+fi «      ¬;«      },|,S  || |j"                  jô                  d:| j                  gtù        ||«      ¢­Ž ¬;«      },|,S | j                  �t        �j                  u rZt        |«      dk(  r'|d   j¥                  «       r|d   j5                  «       }/nd }/�t        �j                  |/«      }0�t        |0«      S | j                  tz        �j                  u rat        |«      dk(  rS|d   }1t�        |1tT        �j                  «      r|1�j                  }1t�        |1tþ        «      rûtU        �j                  |1«      S  |j´                  | j                  «      rÉ| jŽ                  s%t        jÌ                  j                  �j                   r˜| j                  �j"                  t(        �j"                  u r!	 t(        �j#                  | j                  «       �t%        «       5  |jÕ                  t1        j2                  |tÖ        jØ                  «      | g|¢|«      }|cd d d «       S �t&        ‰3| ��¥  |||«      S c c}w c c}}w # tj        $ r2}t!        dd|› d|› �ddgtP        jl                  ¢|¬«       Y d }~�Œåd }~ww xY wc c}}w c c}}w # tj        $ r9}2t!        d@dA| j                  › dB|2› �dCg tP        jR                  ¢¬
«       Y d }2~2Œôd }2~2ww xY w# 1 sw Y   Œ¶xY w)ENr   ru   rF   )rá  rÓ  )rí  Úget_device_context_managerz/P2P compilation disabled for P2POp constructionztorch.distributed.P2POpzP2P compilation is disabled.z3Set TORCHDYNAMO_ENABLE_P2P_COMPILATION=1 to enable.rP  rç  rÈ   )ÚNullContextVariablerà  zTypedDict with optional keysz<Dynamo does not support tracing TypedDict with optional keysz(Avoid using TypedDict with optional keysÚiterableÚmaxlenrW   c                  ó   — y r   rr   )rø  rù  s     rn   Údeque_signaturez?UserDefinedClassVariable.call_function.<locals>.deque_signature‚  s   € ð rp   z&collections.deque() with bad argumentszargs=ú	, kwargs=z8Detected call to collections.deque() with bad arguments.z$Fix the call to collections.deque().)rQ  rR  rS  rT  Úfrom_excz*bound_args is None after signature binding)rù  Úmutation_typer   )ræ  Ú__exit__rV  z!missing args to functools.partialry  z0functools.partial requires at least one argumentzFix the functools.partial call.)rZ  Úkeywordsú.z requires a constant argumentræ  rÿ  )Ú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 = Trueztorch.return_typesú1 args and 0 kwargsú
 args and ú kwargs)ÚSizeVariablezPydantic dataclass constructorzwDynamo graph breaks on pydantic dataclass constructors because validation mutates the instance outside traced bytecode.©r{   c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr   )Ú	is_tensor)Ú.0Úxs     rn   ú	<genexpr>z9UserDefinedClassVariable.call_function.<locals>.<genexpr>o  s   è ø€ Ò=¨!˜Ÿ™ŸÑ=ùó   ‚rm  rÔ  ©r|   )Úregister_graph_created_object)ÚStreamVariable)ÚEventVariablez:Unsupported object.__new__ user-defined class constructionzclass=z, error=zYDynamo could not construct an example object for side-effect replay using object.__new__.©NN)”r]  rv   rÖ  rá  rÓ  Úctx_managerrí  rö  r.   rë   ÚdistributedÚis_availabler£   ÚP2POpr   Úenable_p2p_compilationr   r*  rï  rÛ   r€   r@  r  r  rM   rE  rá   ÚitemsrØ  ÚCrossEntropyLossrÞ  Ú
contextlibÚnullcontextr÷  r�  ré  r  r   Ú__optional_keys__rÂ   r   r[  r   rê  Úcall_custom_dictÚdequery   r   r   r  r§   Ú	signatureÚbindrµ   Ú
USER_ERRORÚAssertionErrorÚ	argumentsrD   ÚlistsÚDequeVariablerL   rb  Ú
MethodTyperè  r	  ÚUserFunctionVariableÚget_nameÚcm_objrk   r‚  rl  rÍ   ÚweakrefÚrefÚWeakRefVariabler,  r-  Ú	functionsÚFunctoolsPartialVariableÚwarningsÚcatch_warningsÚCatchWarningsCtxManagerVariableÚis_python_constantr   r¿   rÀ   r
  r    rj   Úis_standard_newÚ"cls_supports_mutation_side_effectsrš   ry  r  r  r  Ú_AsyncGeneratorContextManagerÚclosingÚredirect_stdoutÚredirect_stderrÚAsyncExitStackÚ_GeneratorContextManagerÚ_dynamoÚenable_trace_contextlibÚkeys_as_python_constantrm  Úinline_user_function_returnr   Ú%instantiate_user_defined_class_objectr6   r   r?   rï   r  r  r¬   r  r   r{   ÚnprA   Úallr×  Ústackr>   rþ   r|   rN   Úgraph_bytecode_inputsr  Ústreamsr  Ú!make_construct_in_graph_stream_fnr    rÿ   r  Ú make_construct_in_graph_event_fnÚrandomÚRandomÚRandomVariableÚMappingProxyTypeÚUserDefinedDictVariableÚ_base_vtÚMappingProxyVariableÚenable_trace_load_build_classr  r   rÇ   )4r½   rÑ   rZ  rÅ   rv   rá  rÓ  rí  rö  Úconstant_argsÚvarr  ÚkÚvr÷  rÞ   rù  rû  Ú
bound_argsÚer  r+  ÚfnÚcallbackÚ	rest_argsÚvariable_clsr  r  r  Úarg_newÚfn_varÚ	args_listÚkwargs_dictr  Útupr{   Ústackedr|   Ú
var_kwargsÚvar_argsÚstreamr  r  ÚindÚtensor_variableÚeventr  ÚseedÚrandom_objectÚdict_argÚexcrË   s4                                                      €rn   rm  z&UserDefinedClassVariable.call_function1  sþ  ø€ õ 	/ß=÷	
ô
 ,¨D°&Ó9ˆä×Ñ×)Ñ)Ô+°·
±
¼e×>OÑ>O×>UÑ>UÑ0UÜ×0Ò0ÜØMØ5Ø >àMðõ	ð —)‘)×(Ñ(×FÑFØ!×(Ñ(¨¬VÓ4ØØØð	 Gó ˆCð �O‰O˜B 
¬D°«J¸Ô?ØˆJà×)Ñ)Ô+±ä"×(Ñ(ØØ)�×'Ñ'Ó)Ø6:Ö;°�a×*Ñ*Õ,Ò;ðà=C¿\¹\»^×L±T°Q¸�q˜!×.Ñ.Ó0Ñ0ÓLñóð ð �Z‰Zœ5Ÿ8™8×4Ñ4Ñ4Ø×0Ñ0°°T¸6ÓBÐBØ�Z‰Zœ:×1Ñ1Ñ1å8á&¨Ð7°Ñ7Ð7Ø�Z‰Zœ;×2Ñ2Ñ2õ 3à—Y‘Y×+Ñ+×IÑIØ!×(Ñ(¨¬TÓ2ØØØð	 Jó ˆFð ×Ñ˜r :¬t°D«z¸6ÔBØˆMÜ˜$Ÿ*™*Ô%Ø�z‰z×+Ò+ÜØ:Ü §
¡
›OØ ^àBðä*×6Ñ6ðõ	ô ×0Ñ0×AÑAØ”DðØòØ#)ñð ð �Z‰Zœ;×,Ñ,Ñ,Ü×/Ñ/×6Ñ6°tÓ<ˆFð MQñÜ"¤3™-¨$Ñ.ðÜ?BÀT¹zðäóð
 ˆJðØDœW×.Ñ.¨Ó?×DÑDÀdÐUÈfÑU�
ð Ð!Ü$Ð%QÓRÐRØ˜Z×1Ñ1Ñ1Ü'¨¨J×,@Ñ,@ÀÑ,LÓM‘ð �à˜:×/Ñ/Ñ/Ø#×-Ñ-¨hÑ7�ä—?‘?×0Ñ0Ø˜fÔ4DÓ4Fð 1ó ð ð
 �J‰Jœ%×*Ñ*Ñ*Ü�D“	˜Q’Ü˜4 ™7¤I×$BÑ$BÔCÜ˜4 ™7Ð$BÔCØ�Q‘× Ñ Ó"Ð&?Ñ?à˜!‘W—^‘^ˆFÜ˜  a¡×!1Ñ!1Ó!3Ó4×=Ñ=ˆBÜ×/Ñ/°°D¸±GÀDÇKÁKÔPÐPØ�Z‰Zœ7Ÿ;™;Ñ&Ü�4‹y˜1Š}Ø ™7‘ä$×5Ñ5×<Ñ<¸TÓB�Ü×,Ñ,¨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áÜ�D“	˜Q’Ù!;¸D¿J¹JÓ!GÐG�ÐTà˜‘7×-Ñ-Ô/Ü ØØ—z‘z×,Ñ,Ð-¨Q¨t¯z©z×/FÑ/FÐ.GÐGdÐeôð  ×&Ñ& r¨4°©7×+EÑ+EÓ+GÓHÐHä”t˜DŸJ™JÓ'¬Õ.ÜØ—
‘
˜Kõô Ø—
‘
˜Jõð ×$Ñ$Õ&Ø>�×>Ñ>¸t¿z¹zÕJØ—“Ü0°·±Õ<å6÷ð �z‰zÜ×8Ñ8Ü×"Ñ"Ü×*Ñ*Ü×*Ñ*Ü×)Ñ)ðñ ô Ø:Ø#Ÿz™z˜lØ#'§:¡: ,ð /;ð !;ðÜ*×6Ñ6ðõ	ð ˆGØ�z‰zœZ×@Ñ@Ñ@ÄZØ�Q‘Ð2Ð4PÐQôFô —}‘}×+Ñ+×CÒCÜ!Ø NØ"'¨ v Ø$TàUðõ	ô2 ˜d 1™gÐ'CÔDØ! !™W�FØ $ Q¡§¡�IØ"& q¡'×"AÑ"AÓ"C�KØ!×/Ñ/°°I¸{ÓKÐKñ HØ˜Q™¨¨Q©¯©ôðð ˜˜�Hñ	�ð ×1Ñ1Ü×%Ñ%Øœ	×GÑGóð Ð ˜Ð Øóð ô ˜tŸz™zÔ*Ü! $§*¡*Ô-ÙœS ›Y¨!š^Ü'ØØ,Ø-Ü˜t›9˜+ Z´°F³¨}¸GÐDô	ð —y‘y×-Ñ-×KÑKØØÜ˜“JØð	 Ló ð ð ×5Ñ5Ü#×)Ñ)ØœI×KÑKóð �M˜D�MØóð ð �Z‰Zœ5Ÿ:™:Ñ%å+à#×*Ñ*¨2¬uÓ5×CÑCÀBÈÈfÓUˆCÙ §	¡	Ó*Ð*Ü& t§z¡zÔ2ô Ø8ØŸ:™:˜,ðSä'×3Ñ3÷ð �J‰J˜$×0Ñ0Ó2Ñ2Ü1°$·*±*Õ=õ ,õ Ø—J‘JÔ"5Ñ5Ü˜“I ’NÜ˜t A™w¨Ô5Ü˜˜Q™Ÿ™Ó&¨Ò*ÜÑ=¨t°A©w¯}©}Ô=Ô=ñ (ØØ0˜"Ÿ)™)×0Ñ0Ø'ÜŸ™ðô +¨4°Ó8òô�ð  �y�ä˜$Ÿ*™*¤e§l¡lÔ3Ý0ä.ØAGÇÁÃ×P¹¸¸A”_×*Ñ*¨2¨qÓ1°1Ñ4ÓPó�
ñ )¬¨d«Ó4�Ø#˜Ÿ™Ø×1Ñ1Ó3ðà!×4Ñ4Ó6ñ�õ RÝ3á3ØØ"×DÒDØ  *óó�ñ #0ØØŸ)™)×0Ñ0Ø'Õ)EÈÀvÈróô#�ðV #Ð"ôK ˜DŸJ™J¬¯ªÔ4Ý0ô /ØAGÇÁÃ×P¹¸¸A”_×*Ñ*¨2¨qÓ1°1Ñ4ÓPó�
ñ )¬¨d«Ó4�Ø"˜Ÿ
™
Ø×1Ñ1Ó3ðà!×4Ñ4Ó6ñ�õ RÝ2á3ØØ!×BÒBØ  *óó�ñ #0ØØŸ)™)×0Ñ0Ø'Õ)EÈÀvÈróô#�ð  #Ð"ñ #0ØØ0˜"Ÿ)™)×0Ñ0Ø'ØŸ
™
ðô +¨4°Ó8òô#�ð #Ð"Ø�Z‰Z�6Ÿ=š=Ñ(Ü�4‹y˜AŠ~ $ q¡'×"<Ñ"<Ô">Ø˜A‘w×1Ñ1Ó3‘à�Ý"ŸMšM¨$Ó/ˆMÝ! -Ó0Ð0Ø�Z‰Zœ5×1Ò1Ñ1´c¸$³iÀ1²nð ˜A‘wˆHÜ˜(¤I×$EÒ$EÔFØ#×,Ò,�Ü˜(Ô$5Ô6Ü ×5Ò5°hÓ?Ð?Ø;ˆ[×;Ñ;¸D¿J¹JÔGØ�KŠKœ5Ÿ=™=×/Ñ/×MÓMà�z‰z×!Ò!¤V§^¢^Ñ3ðÜ—N’N 4§:¡:Ô.õ 6Ó7ñ Ø×7Ñ7Ü#×)Ñ)ØœI×KÑKóð �M˜D�MØó�ð ÷ñ õ ‰wÒ$ R¨¨vÓ6Ð6ùòe <ùÛLøôb ò 
ÜØDØ# D 6¨°6°(Ð;Ø Zà>ðä*×5Ñ5ðð ÷	ó 	ûð
üól Qùó6 Qøôv !ò 	Ü!Ø \Ø"(¨¯©¨°H¸S¸EÐ BðGð ?Ô 1× =Ñ =Ð>÷ò ûð	ú÷ð úsT   Ä{?Å|Ì6%|
 ì!}
ð!}
ù= } ú(:~ü
	}ü'} ý }ý	~ý/~þ~þ~"c                 ó    — t        j                  | j                  dd«      }t        |t        «      r|j
                  }|t        j                  u S )z"Check for __new__ being overriddenr  N)r§   r»   r£   r	  r  r‚  r€   r  )r½   rð  s     rn   r5  z(UserDefinedClassVariable.is_standard_newì  s<   € ä×'Ñ'¨¯
©
°I¸tÓDˆÜ�fœlÔ+Ø—_‘_ˆFØœŸ™Ð'Ð'rp   ry   c                 óü   — | j                   rGt        | j                   j                  t        j                  t
        j                  |¬«      «      «       t        j                  |t        | j                  |«      «      S )N©rÅ  )rÍ   r"   rÓ   r,  r-  r!   ÚHASATTRrM   rE  rj   r£   )r½   rÑ   r¹   s      rn   Úcall_obj_hasattrz)UserDefinedClassVariable.call_obj_hasattró  s[   € ð �;Š;ÜØ—‘×&Ñ&Ü×%Ñ%¤l×&:Ñ&:ÀÔFóôô
 ×$Ñ$ R¬°·±¸TÓ)BÓCÐCrp   c                 óZ   •— |dk(  r| j                   j                  S t        ‰| �  ||«      S )Nr�   )r£   r�   rÇ   Úconst_getattr©r½   rÑ   r¹   rË   s      €rn   rq  z&UserDefinedClassVariable.const_getattrþ  s-   ø€ Ø�:ÒØ—:‘:×&Ñ&Ð&Ü‰wÑ$ R¨Ó.Ð.rp   c                 ój   — t        |t        j                  «      xr | j                  |j                  u S r   )r	  r   rÄ   r£   ©r½   r×   s     rn   Úis_python_equalz(UserDefinedClassVariable.is_python_equal  s,   € ä�uœi×@Ñ@ÓAò *Ø—
‘
˜eŸk™kÐ)ð	
rp   c                 óf   — | j                   r| j                   j                  |«      S t        d«      ‚)NzKPython codegen not implemented yet for sourceless UserDefinedClassVariable.©rÍ   Úreconstruct_pycoderÔ   ©r½   Úcodegens     rn   rx  z+UserDefinedClassVariable.reconstruct_pycode	  ó.   € Ø�;Š;Ø—;‘;×1Ñ1°'Ó:Ð:Ü!ØYó
ð 	
rp   c                 ó   — | j                   S r   r«   rÏ   s    rn   Úget_real_python_backed_valuez5UserDefinedClassVariable.get_real_python_backed_value  râ   rp   ©rÑ   rw   rW   rM   ©F)Ar�   r¿   rÀ   r    r€   rÁ   r   rÈ   r   rÐ   r  r  ÚboolrÖ   rM   rÂ   rß   rá   rä   ré   r  r,  r9  r  rð   r  r  r  r  r"  r%   r;  r=  rB  rH  rM  rw  r   r\  r`  ra  r�  r¤  r§  rª  r¯  r²  r¶  r»  r¿  rÃ  Úsq_ass_item_implr  r  rÞ  r@  rô  rm  r5  ro  rq  ru  rx  r}  Ú__classcell__©rË   s   @rn   rÄ   rÄ     si  ø… à�‰<Óð"˜d 6™lð "°cð "¸dõ "ð 8¨C°¨HÑ#5¸Ñ#<ó ð
&Ð7ð &¸EÀ#ÀtÀ)Ñ<Ló &ð7Ø-ð7Ø6Eð7ØKNð7à	ó7ð& D¨¡Ló ð˜&ó ð:˜#ó :ð Ø‡_�_ð
 C¨¨V©Ñ$5ò 
ó ó ð
ð Ø‡_�_ðF˜s 4¨¡<Ñ0ò Fó ó ðFð: Ø‡_�_ð+ s¨3¡xò +ó ó ð+ð( ðE vð E°$ò Eó ðEðR¨4ó Rð¨ð °ó ð)QØ-ð)QØ58ð)Qà	ó)QðV¨#ð °&ó ð-à'ð-ð 
ó-ð	8Ð7ð 	8¸Oó 	8ð ñ	1à'ð1ð ð1ð ð	1ð
 
ó1ð"\
Ø-ð\
Ø58ð\
à	ó\
ð|Tà'ðTð ðTð ð	Tð
 ˜‘ðTð 
óTð>G;à'ðG;ð ðG;ð ð	G;ð
 ˜‘ðG;ð 
óG;ðR;à'ð;ð ð;ð ð	;ð
 ˜‘ð;ð 
õ;ð 2à'ð2ð ð2ð ð	2ð
 ˜‘ð2ð 
ó2ð4XÐ6ð X¸?ó Xð!Ð7ð !¸Oó !ð!Ð7ð !¸Oó !ð-Ø-ð-Ø5Dð-à	õ-ð(Ð:ð (¸õ (ð	
Ð#>ð 	
À?ó 	
ð	
Ð#>ð 	
À?ó 	
ð

Ð#>ð 

À?ó 

ð=à'ð=ð ð=ð  Ñ%ð	=ð
 
õ=ð* -ÐðEAà'ðEAð �?Ñ#ðEAð �S˜/Ð)Ñ*ð	EAð
 
óEAðNY;à'ðY;ð ðY;ð �?Ñ#ð	Y;ð
 �S˜/Ð)Ñ*ðY;ð 
õY;ðv"Ø-ð"à	ÐÑ	 ó"ðy7à'ðy7ð �?Ñ#ðy7ð �S˜/Ð)Ñ*ð	y7ð
 
õy7ðv( ó (ð	DØ-ð	DØ58ð	Dà	ó	Dð/Ð ;ð /À3ð /È3õ /ð

 Vð 
°ó 
ð
¨Só 
ð¨f÷ rp   rÄ   c                   ó\   ‡ — e Zd Zedee   fd„«       Zdddee   de	e
ef   defˆ fd„Zˆ xZS )Ú!UserDefinedExceptionClassVariablerW   c                 ó   — | j                   S r   r«   rÏ   s    rn   rW  z$UserDefinedExceptionClassVariable.fn  s   € à�z‰zÐrp   rÑ   rw   rZ  rÅ   c                 ó&  •— ddl m} | j                  €n|j                  j                  j                  |j                  |t        «      | t        |«      |¬«      }|j                  |dt        |«      t        |«      «       |S t        ‰| �1  |||«      S )NrF   rà  rç  rÈ   )rÖ  rá  rÍ   r*  r]  rï  rÛ   r‚   r  r@  r  rÇ   rm  )r½   rÑ   rZ  rÅ   rá  rR  rË   s         €rn   rm  z/UserDefinedExceptionClassVariable.call_function  s†   ø€ õ 	/à�;‰;Ðð —)‘)×(Ñ(×FÑFØ!×(Ñ(¨¬]Ó;ØÜ�T“
Øð	 Gó ˆCð �O‰O˜B 
¬D°«J¼¸V»ÔEØˆJÜ‰wÑ$ R¨¨vÓ6Ð6rp   )r�   r¿   rÀ   rƒ  r    r€   rW  r  rM   r  rÂ   rm  r‚  rƒ  s   @rn   r…  r…    s_   ø„ Øð�D˜‘Lò ó ðð7à'ð7ð �?Ñ#ð7ð �S˜/Ð)Ñ*ð	7ð
 
÷7ñ 7rp   r…  c                   ó   — e Zd Zy)ÚRemovableHandleClassN©r�   r¿   rÀ   rr   rp   rn   r‰  r‰  /  s   „ ð 	rp   r‰  rÑ   rw   rW  .rZ  rÅ   c                 ó¤  — ddl m} |D �cg c]  }|j                  «       ‘Œ }}|j                  «       D ��ci c]  \  }}||j                  «       “Œ }}}t	        | j
                  j                  «      } ||i |¤Ž}	t        |«      }
| j
                  j                  j                  |||f«        || |
«      j                  |	«      S c c}w c c}}w )NrF   )ÚVariableBuilder)
rÖ  rŒ  rá   r  rè  r*  Úrandom_callsr(   r�   Úwrap_unspecialized_primitive)rÑ   rW  rZ  rÅ   rŒ  r  rS  rT  Úrandom_call_indexÚexample_valuerÍ   s              rn   Úcall_random_fnr‘  6  sÀ   € õ )à,0Ö1 qˆA× Ñ Õ"Ð1€DÐ1Ø4:·L±L³N×C©D¨A¨qˆa�×%Ñ%Ó'Ñ'ÐC€FÑCÜ˜BŸI™I×2Ñ2Ó3Ðñ ˜Ð' Ñ'€MÜÐ0Ó1€FØ‡I�I×Ñ×!Ñ! 2 t¨VÐ"4Ô5ñ ˜2˜vÓ&×CÑCÀMÓRÐRùò 2ùÛCs
   ‹C·Cc                   óJ  ‡ — e Zd ZU dZdZedz  ed<   dZee	   dz  ed<   ddhe
j                  £Zdddddœdededz  dedz  d	edz  d
ee   dz  de	ddfˆ fd„Zdefd„Zdefd„Zd}d„Zdddefd„Zd„ Zdefd„Zdefd„Zdefˆ fd„Zdefˆ fd„Zdefˆ fd„Zddœdddededeeedz  f   fd „Z	 	 	 	 d~d!„Z dddefˆ fd"„Z!dddefˆ fd#„Z"dddefˆ fd$„Z#dddefˆ fd%„Z$dddefd&„Z%dddefd'„Z&dddefd(„Z'dd)„Z(dddefd*„Z)ddd+ed,d-d.e*e	   de+ee	f   defd/„Z,ddd0edefˆ fd1„Z-dddefˆ fd2„Z.dddefˆ fd3„Z/e0e1jd                  dee	   fd4„«       «       Z3ddd5edefˆ fd6„Z4ddd7edefˆ fd8„Z5ddd7edefˆ fd9„Z6ddd5ededz  defˆ fd:„Z7e7Z8ddded.ee   defd;„Z9ddd<ed=ed>ed?e:d@edefdA„Z;	 d€ddd<ed@edefdB„Z<	 d€ddd<ed@edefdC„Z=ddd<edefdD„Z>	 d€ddd<ed@edefdE„Z?ddd<edefdF„Z@	 d€ddd<ed@edefdG„ZAddd<edefdH„ZB	 d€ddd<ed@edefdI„ZCddd<edefdJ„ZD	 d€ddd<ed@edefdK„ZEddd<edefdL„ZF	 d€ddd<ed@edefdM„ZGddd<edefdN„ZH	 d€ddd<ed@edefdO„ZIddd<edefdP„ZJddd<edefdQ„ZK	 d€ddd<ed@edefdR„ZLddd<edefdS„ZM	 d€ddd<ed@edefdT„ZNddd<edefdU„ZO	 d€ddd<ed@edefdV„ZPddd<edefdW„ZQ	 d€ddd<ed@edefdX„ZRddded.ee	   de+ee	f   def
ˆ fdY„ZSddd<edefdZ„ZTddd<edefd[„ZUdddefd\„ZVdddefd]„ZWdddefd^„ZXdddededefd_„ZYdefd`„ZZdddee   fda„Z[defdb„Z\ddd.ee   de+eef   defˆ fdc„Z]defdd„Z^deedefdf„Z_dedefdg„Z`dedefdh„Zaddd5edefdi„Zbdddedecfdj„Zddddedefdk„Zedddedefdl„Zfdddedmednedz  def
do„Zgdddedmednedz  def
dp„Zhdddedqednedz  def
dr„Zidddednedz  dedz  fds„Zjdddeddtfdu„Zkdefdv„Zldddee:ef   fdw„Zmddd<edxedefdy„Znd<edefdz„Zo	 	 	 	 	 	 	 	 	 	 	 	 d�d{„Zp	 	 	 	 	 	 	 	 	 	 	 	 	 	 d‚d|„Zqˆ xZrS )ƒr™  z_
    Mostly objects of defined type.  Catch-all for something where we only know the type.
    NrN  Ú_base_methodsr£   Ú
value_type)r”  Ú
cls_sourceÚbase_cls_vtrñ  r•  r–  rñ  rÅ   rW   c                óÐ  •— |j                  dd «       t        ‰| �  di |¤Ž || _        |xs t	        |«      | _        t	        |«      | j
                  ur$t        d| j
                  › dt	        |«      › �«      ‚|| _        |€&| j                  �t        | j                  «      | _        || _
        || _        d | _        i | _        i | _        dd lmc m} |j%                  | j
                  «      | _        |j%                  | j
                  «      r>| j                  r2t)        | j                  j+                  t,        j.                  «      «       t1        | j                  «      | _        y )NrÑ   zExpected type z, got r   rr   )ÚpoprÇ   rÈ   r£   r    r”  r$  r•  rÍ   r+   r–  rñ  Údict_vtÚ_looked_up_attrsÚ_subobj_from_classÚtorch.utils._pytreeÚutilsÚ_pytreeÚis_constant_classÚis_pytree_constant_classr"   rÓ   r!   ÚEQUALS_MATCHr=   Ú_object_has_getattribute)	r½   r£   r”  r•  r–  rñ  rÅ   ÚpytreerË   s	           €rn   rÈ   z"UserDefinedObjectVariable.__init__`  s"  ø€ ð 	�
‰
�4˜ÔÜ‰ÑÑ"˜6Ò"ØˆŒ
Ø$Ò3¬¨U«ˆŒÜ�‹;˜dŸo™oÑ-Ü  >°$·/±/Ð1BÀ&ÌÈeËÈÐ!VÓWÐWà$ˆŒØÐ $§+¡+Ð"9Ü(¨¯©Ó5ˆDŒOð 'ˆÔØ"ˆŒð 37ˆŒð
 46ˆÔð 68ˆÔç,Ð,à(.×(@Ñ(@ÀÇÁÓ(QˆÔ%Ø×#Ñ# D§O¡OÔ4¸¿ºÜ˜$Ÿ+™+×0Ñ0´×1JÑ1JÓKÔLä(?ÀÇ
Á
Ó(KˆÕ%rp   c                 ó®   — | j                   j                  }|dv r t        t        | j                  dd «      «      }| j
                  j                  › d|› d�S )N)Úbuiltin_function_or_methodÚgetset_descriptorÚmethod_descriptorrò  r�   rç   rè   )r”  r�   rÂ   rk   r£   rË   )r½   Úinners     rn   Ú__str__z!UserDefinedObjectVariable.__str__�  sU   € Ø—‘×(Ñ(ˆØð 
ñ 
ô œ §
¡
¨J¸Ó=Ó>ˆEØ—.‘.×)Ñ)Ð*¨!¨E¨7°!Ð4Ð4rp   c                 ób   — | j                   j                  › d| j                  j                  › d�S ræ   ©rË   r�   r”  rÏ   s    rn   ré   z"UserDefinedObjectVariable.__repr__›  ó+   € Ø—.‘.×)Ñ)Ð*¨!¨D¯O©O×,DÑ,DÐ+EÀQÐGÐGrp   rÑ   rw   c                 ó|   — | j                   €%t        j                  j                  || «      | _         | j                   S r   )r™  r   rz   rÛ   rÕ   s     rn   Úget_dict_vtz%UserDefinedObjectVariable.get_dict_vtž  s0   € Ø�<‰<ÐÜ$×7Ñ7×>Ñ>¸rÀ4ÓHˆDŒLØ�|‰|Ðrp   r]  rv   c                 óR   — | j                   �|j                  | j                   «      S y©NF)rN  Úis_modified)r½   r]  s     rn   Úis_base_vt_modifiedz-UserDefinedObjectVariable.is_base_vt_modified£  s$   € Ø�=‰=Ð$Ø×+Ñ+¨D¯M©MÓ:Ð:Ørp   c                 óf   — | j                   r| j                   j                  |«      S t        d«      ‚)NzKPython codegen not implemented yet for sourceless UserDefinedObjectVariablerw  ry  s     rn   rx  z,UserDefinedObjectVariable.reconstruct_pycode¨  r{  rp   c                 ó   — | j                   S r   ©r”  rÏ   s    rn   Úpython_typez%UserDefinedObjectVariable.python_type¯  s   € Ø�‰Ðrp   c                 ó   — | j                   S r   r«   rÏ   s    rn   r}  z6UserDefinedObjectVariable.get_real_python_backed_value²  râ   rp   c                 óô  •— ddl m} t        | j                  t        j
                  t        j                  t        j                  j                  j                  f«      s || j                  «      r| j                  S ddlm}  |«       r<dd lm} t        | j                  |j                  «      r| j                  j                  S | j                   r| j"                  r| j                  S ddlm} t        | j                  |«      rfddlm} |j-                  «       }|�N|j.                  rB|j0                  j2                  j5                  | dd¬	«      }|�|j7                  «       } ||«      S t8        ‰	| �m  «       S )
Nr   )r7   r   )Úhas_triton_package)Ú_MaskModWrapper©ÚInstructionTranslatorrW  T©Ú
deleted_ok)r�  r7   r	  r£   r  r  rë   ÚDispatchKeyÚ_CÚ
_functorchÚTransformTypeÚtorch.utils._tritonr¹  Útriton.languageÚlanguageÚ	constexprr   rÍ   Ú!torch.nn.attention.flex_attentionrº  Útorch._dynamo.symbolic_convertr¼  Ú
current_txÚexportr*  r]  r_  rá   rÇ   )
r½   r7   r¹  Útlrº  r¼  rÑ   Úfn_vtrW  rË   s
            €rn   rá   z,UserDefinedObjectVariable.as_python_constantµ  s  ø€ Ý3äØ�J‰JÜ�Y‰Yœ×)Ñ)¬5¯8©8×+>Ñ+>×+LÑ+LÐMô
ñ % T§Z¡ZÔ0Ø—:‘:Ðå:áÔÝ(ä˜$Ÿ*™* b§l¡lÔ3Ø—z‘z×'Ñ'Ð'à×(Ò(¨T¯[ª[ð —:‘:Ðõ 	Fä�d—j‘j /Ô2ÝLà&×1Ñ1Ó3ˆBØˆ~ "§)¢)ØŸ	™	×.Ñ.×8Ñ8¸¸tÐPTÐ8ÓU�ØÐ$ð ×1Ñ1Ó3�BÙ*¨2Ó.Ð.ä‰wÑ)Ó+Ð+rp   c                 óÞ   •— t        | j                  t        j                  «      r;t        | j                  t        «      rt	        | j                  «      S | j                  S t
        ‰| �  «       S r   )r	  r£   r  r  r  rÇ   rä   ©r½   rË   s    €rn   rä   z"UserDefinedObjectVariable.as_proxyà  sI   ø€ Ü�d—j‘j¤$§)¡)Ô,Ü˜$Ÿ*™*¤cÔ*Ü˜4Ÿ:™:“Ð&Ø—:‘:ÐÜ‰wÑÓ!Ð!rp   c                 ó´   •— | j                   r>t        | j                   j                  t        j                  «      «       | j
                  S t        ‰| �  «       S r   )rÍ   r"   rÓ   r!   ÚID_MATCHr£   rÇ   Úguard_as_python_constantrÎ  s    €rn   rÑ  z2UserDefinedObjectVariable.guard_as_python_constantç  s?   ø€ Ø�;Š;Ü˜$Ÿ+™+×0Ñ0´×1FÑ1FÓGÔHØ—:‘:ÐÜ‰wÑ/Ó1Ð1rp   rD  ©Ú
none_errorr¹   rÓ  c                ó˜   — | j                  |«      }|€t        ||«       d}|t        ur| j                  r| j	                  ||«      }||fS )zKWalk class MRO for *name*, raising TypeError when slot is blocked (= None).N)Úlookup_class_mro_attrr   rK   rÍ   r;  )r½   rÑ   r¹   rÓ  rG  rÍ   s         rn   Ú_lookup_slot_type_attrz0UserDefinedObjectVariable._lookup_slot_type_attrí  sT   € ð ×.Ñ.¨tÓ4ˆ	ØÐÜ˜R Ô,àˆØœNÑ*¨t¯{ª{Ø×3Ñ3°B¸Ó=ˆFØ˜&Ð Ð rp   c                 ó:  — d}t         j                  dk\  rd| j                  «       › d�}| j                  |d|¬«      \  }}|t        u ry | j                  |dg i «      }|j                  «       t        ur't        |d|j                  «       j                  › �«       |S )NrD  )é   é   rX  z$' cannot be interpreted as a booleanr?  rÒ  z&__bool__ should return bool, returned )
r”   Úversion_infor¢  rÖ  rK   r@  r¶  r€  r   r�   )r½   rÑ   rÓ  rG  Ú_rÞ   s         rn   rB  z#UserDefinedObjectVariable.bool_implþ  sµ   € ð 9ˆ
Ü×Ñ˜wÒ&à�D×)Ñ)Ó+Ð,Ð,PÐQð ð ×2Ñ2Ø�
 zð 3ó 
‰ˆ	�1ð œÑ&Øà×!Ñ! " j°"°bÓ9ˆØ×ÑÓ¤tÑ+ÜØØ8¸×9KÑ9KÓ9M×9VÑ9VÐ8WÐXôð ˆrp   c                 óH  •— | j                  d«      }|t        u rt        ‰| �  |«      S |€t	        |d«       | j                  d«      }| j                  �5| j                  �)|| j                  v r| j                  j                  |«      S t        | j                  «      j                  t        j                  u r)t        j                  |t        | j                  «      «      S t        |«      s>t         j"                  j$                  j&                  j)                  |«      st+        |«      r…	  t-        j.                  t        |«      d«      || j                  t        | j                  «      «       t1        ddt        | j                  «      j2                  › �dg t4        j6                  ¢d¬«       | jB                  xr | jE                  |d«      }| jG                  |d||«      }tI        |tJ        jL                  «      s|jO                  |g i «      S 	  t-        j.                  t        |«      d«      || j                  t        | j                  «      «       t1        ddt        | j                  «      j2                  › �dg t4        j6                  ¢d¬«       y # t8        t:        f$ r5}t=        t        |«      |t?        |j@                  «      ¬	«       Y d }~�Œ&d }~ww xY w# t8        t:        f$ r4}t=        t        |«      |t?        |j@                  «      ¬	«       Y d }~y d }~ww xY w)
Nré   rD  r¯   z!untraceable user-defined __repr__z&Could not trace __repr__ override for zBDynamo could not safely trace this user-defined __repr__ override.T)rQ  rR  rS  rT  Ú
skip_framerY  )(rÕ  rK   rÇ   rH  r   r¾   rN  r“  r    r£   ré   r€   rM   rE  rF  r9   rë   rÀ  r=  r�  Úis_instancemethodr¢   r§   r»   r   r�   r   r[  r¼   rµ   r   r  rZ  rÍ   r;  Úresolve_type_attrr	  r   rj  rm  )r½   rÑ   rG  rò  rV  rÍ   Ú
method_varrË   s          €rn   rH  z#UserDefinedObjectVariable.repr_impl  s�  ø€ ð
 ×.Ñ.¨zÓ:ˆ	ØœÑ&Ü‘7Ñ$ RÓ(Ð(ØÐÜ˜RÐ!DÔEà×1Ñ1°*Ó=ˆà�M‰MÐ%Ø×"Ñ"Ð.Ø˜$×,Ñ,Ñ,à—=‘=×*Ñ*¨2Ó.Ð.ä�—
‘
Ó×$Ñ$¬¯©Ñ7Ü"×(Ñ(¨¬T°$·*±*Ó-=Ó>Ð>ô ,¨IÔ6Ü�x‰x×Ñ×%Ñ%×7Ñ7¸	ÔBÜ! )Ô,ðØB”×&Ñ&¤t¨I£¸	ÓBØ˜tŸz™z¬4°·
±
Ó+;ôô Ø?ØDÄTÈ$Ï*É*ÓEU×E^ÑE^ÐD_Ð`Ø dØ:Ô-×9Ñ9Ð:Ø#õð —‘ÒO ×!?Ñ!?ÀÀJÓ!OˆØ×+Ñ+¨B°
¸IÀvÓNˆ
Ü˜*¤i×&?Ñ&?Ô@Ø×+Ñ+¨B°°BÓ7Ð7ð	Ø>ŒG×"Ñ"¤4¨	£?°IÓ>Ø˜4Ÿ:™:¤t¨D¯J©JÓ'7ôô Ø;Ø@ÄÀdÇjÁjÓAQ×AZÑAZÐ@[Ð\Ø`Ø6Ô)×5Ñ5Ð6Øöøô/ #¤IÐ.ò IÜ(¬¨a«°"¼4ÀÇÁ»<×HÓHûðIûô( ¤	Ð*ò 	EÜ$¤T¨!£W¨b´t¸A¿F¹F³|×DÒDûð	Eús2   Ä,AJ ÈAK ÊKÊ&*KËKËL!Ë-*LÌL!c           	      óz  •— | j                  |d«      \  }}|t        u rt        ‰| �  |«      S | j	                  |d||«      }|j                  |g i «      }|j                  «       rVt        |j                  «       t        «      s8t        t        |dt        |j                  «       «      j                  › d�g¬«       |S )NÚ	__index__z!__index__ returned non-int (type rè   rY  )rÖ  rK   rÇ   Únb_index_implrß  rm  r4  r	  rá   r  r   rµ   r    r�   ©r½   rÑ   rG  rÍ   rà  rÞ   rË   s         €rn   rã  z'UserDefinedObjectVariable.nb_index_implU  s¿   ø€ ð
 !×7Ñ7¸¸KÓHÑˆ	�6ØœÑ&Ü‘7Ñ(¨Ó,Ð,Ø×+Ñ+¨B°¸YÈÓOˆ
Ø×)Ñ)¨"¨b°"Ó5ˆð ×$Ñ$Ô&¬zØ×%Ñ%Ó'¬ô0
ô %ÜØà7¼¸V×=VÑ=VÓ=XÓ8Y×8bÑ8bÐ7cÐcdÐeðõð ˆrp   c                 óH  •— | j                  |d«      \  }}|t        u rt        ‰| �  |«      S | j	                  |d||«      }|j                  |g i «      }t        |j                  «       t        «      s/t        t        |d|j                  «       j                  › d�g¬«       |S )NÚ__int__z__int__ returned non-int (type rè   rY  )rÖ  rK   rÇ   Únb_int_implrß  rm  r
  r¶  r  r   rµ   r�   rä  s         €rn   rç  z%UserDefinedObjectVariable.nb_int_implm  s¨   ø€ ð !×7Ñ7¸¸IÓFÑˆ	�6ØœÑ&Ü‘7Ñ& rÓ*Ð*Ø×+Ñ+¨B°	¸9ÀfÓMˆ
Ø×)Ñ)¨"¨b°"Ó5ˆÜ˜&×,Ñ,Ó.´Ô4Ü$ÜØà5°f×6HÑ6HÓ6J×6SÑ6SÐ5TÐTUÐVðõð ˆrp   c                 óH  •— | j                  |d«      \  }}|t        u rt        ‰| �  |«      S | j	                  |d||«      }|j                  |g i «      }t        |j                  «       t        «      s/t        t        |d|j                  «       j                  › d�g¬«       |S )NÚ	__float__z#__float__ returned non-float (type rè   rY  )rÖ  rK   rÇ   Únb_float_implrß  rm  r
  r¶  r  r   rµ   r�   rä  s         €rn   rê  z'UserDefinedObjectVariable.nb_float_impl‚  s¨   ø€ ð !×7Ñ7¸¸KÓHÑˆ	�6ØœÑ&Ü‘7Ñ(¨Ó,Ð,Ø×+Ñ+¨B°¸YÈÓOˆ
Ø×)Ñ)¨"¨b°"Ó5ˆÜ˜&×,Ñ,Ó.´Ô6Ü$ÜØà9¸&×:LÑ:LÓ:N×:WÑ:WÐ9XÐXYÐZðõð ˆrp   c                 ó  — | j                  d«      }|t        u rt        |d| j                  «       › d�«       |€t        |d«       | j	                  d«      }|€t        |d| j                  «       › d�«       | j                  |dg i «      S )Nr´  rµ  rX  rD  ©rÕ  rK   r   r¢  r¾   r@  ©r½   rÑ   rG  rò  s       rn   r¶  z*UserDefinedObjectVariable.nb_negative_impl—  sŸ   € ð ×.Ñ.¨yÓ9ˆ	ØœÑ&ÜØÐ5°d×6KÑ6KÓ6MÐ5NÈaÐPôð ÐÜ˜RÐ!DÔEà×1Ñ1°)Ó<ˆØˆ>ÜØÐ5°d×6KÑ6KÓ6MÐ5NÈaÐPôð ×Ñ  I¨r°2Ó6Ð6rp   c                 ó  — | j                  d«      }|t        u rt        |d| j                  «       › d�«       |€t        |d«       | j	                  d«      }|€t        |d| j                  «       › d�«       | j                  |dg i «      S )Nr¹  rº  rX  rD  rì  rí  s       rn   r»  z*UserDefinedObjectVariable.nb_positive_impl­  sŸ   € ð ×.Ñ.¨yÓ9ˆ	ØœÑ&ÜØÐ5°d×6KÑ6KÓ6MÐ5NÈaÐPôð ÐÜ˜RÐ!DÔEà×1Ñ1°)Ó<ˆØˆ>ÜØØ1°$×2GÑ2GÓ2IÐ1JÈ!ÐLôð
 ×Ñ  I¨r°2Ó6Ð6rp   c                 ó  — | j                  d«      }|t        u rt        |d| j                  «       › d�«       |€t        |d«       | j	                  d«      }|€t        |d| j                  «       › d�«       | j                  |dg i «      S )Nr½  r¾  rX  rD  rì  rí  s       rn   r¿  z*UserDefinedObjectVariable.nb_absolute_implÄ  sŸ   € ð ×.Ñ.¨yÓ9ˆ	ØœÑ&ÜØØ/°×0EÑ0EÓ0GÐ/HÈÐJôð ÐÜ˜RÐ!DÔEà×1Ñ1°)Ó<ˆØˆ>ÜØØ/°×0EÑ0EÓ0GÐ/HÈÐJôð
 ×Ñ  I¨r°2Ó6Ð6rp   c                 ó6   — t        | «      st        d| › �«      ‚y )Nz<calling torch function on object without __torch_function__ )r4   r$  rÏ   s    rn   Útorch_function_checkz.UserDefinedObjectVariable.torch_function_checkÜ  s&   € Ü! $Ô'Ü ØNÈtÈfÐUóð ð (rp   c                 ó@   — | j                  «        ddlm}  ||| «      S )NrF   )Úget_torch_function_fn)rñ  Útorch_functionró  )r½   rÑ   ró  s      rn   Úget_torch_fnz&UserDefinedObjectVariable.get_torch_fnâ  s   € Ø×!Ñ!Ô#Ý9á$ R¨Ó.Ð.rp   rW  rb  r|   rZ  c                 óf   — | j                  «        ddlm}  ||| j                  |«      ||||«      S )NrF   )Úcall_torch_function)rñ  rô  r÷  rõ  )r½   rÑ   rW  rb  rZ  rÅ   r÷  s          rn   r÷  z-UserDefinedObjectVariable.call_torch_functionè  s=   € ð 	×!Ñ!Ô#å7á"ØØ×Ñ˜bÓ!ØØØØó
ð 	
rp   r«  c                 ób  •— | j                  d«      }| j                  �6| j                  �*|| j                  v r| j                  j                  ||«      S t	        |t
        j                  «      r2| j                  |d|| j                  «      }|j                  ||gi «      S t        ‰| �  ||«      S r­  )r¾   rN  r“  r¯  r	  rb  rk  rß  rÍ   rm  rÇ   )r½   rÑ   r«  rò  rà  rË   s        €rn   r¯  z%UserDefinedObjectVariable.sq_containsý  s£   ø€ ð ×1Ñ1°.ÓAˆà�M‰MÐ%Ø×"Ñ"Ð.Ø˜$×,Ñ,Ñ,à—=‘=×,Ñ,¨R°Ó6Ð6ä�fœe×0Ñ0Ô1Ø×/Ñ/°°NÀFÈDÏKÉKÓXˆJØ×+Ñ+¨B°°¸Ó;Ð;Ü‰wÑ" 2 tÓ,Ð,rp   c                 ó\  •— | j                  d«      }| j                  �5| j                  �)|| j                  v r| j                  j                  |«      S t	        |t
        j                  «      r1| j                  |d|| j                  «      }|j                  |g i «      S t        ‰| �  |«      S )NÚ__next__)r¾   rN  r“  Útp_iternext_implr	  rb  rk  rß  rÍ   rm  rÇ   )r½   rÑ   rò  rà  rË   s       €rn   rû  z*UserDefinedObjectVariable.tp_iternext_impl  s›   ø€ Ø×1Ñ1°*Ó=ˆà�M‰MÐ%Ø×"Ñ"Ð.Ø˜$×,Ñ,Ñ,à—=‘=×1Ñ1°"Ó5Ð5ä�fœe×0Ñ0Ô1Ø×/Ñ/°°JÀÈÏÉÓTˆJØ×+Ñ+¨B°°BÓ7Ð7Ü‰wÑ'¨Ó+Ð+rp   c                 óŒ  •— | j                  |dd| j                  «       › d�¬«      \  }}| j                  �5| j                  �)|| j                  v r| j                  j	                  |«      S t        |t        j                  «      r1| j                  |d|| j                  «      }|j                  |g i «      S t        ‰| �  |«      S )Nr±  rX  z' object is not iterablerÒ  )rÖ  r¢  rN  r“  r²  r	  rb  rk  rß  rÍ   rm  rÇ   )r½   rÑ   rò  r   rà  rË   s        €rn   r²  z&UserDefinedObjectVariable.tp_iter_impl  sÄ   ø€ Ø ×7Ñ7ØØØ˜4×0Ñ0Ó2Ð3Ð3KÐLð 8ó 
Ñˆ�	ð �M‰MÐ%Ø×"Ñ"Ð.Ø˜$×,Ñ,Ñ,à—=‘=×-Ñ-¨bÓ1Ð1ä�fœe×0Ñ0Ô1Ø×/Ñ/°°JÀÈÏÉÓTˆJØ×+Ñ+¨B°°BÓ7Ð7Ü‰wÑ# BÓ'Ð'rp   c                  ó‚   — t         j                   t         j                  t         j                  t         j                  h} | S r   )rI  ÚrandintÚ	randrangeÚuniform)Úfnss    rn   Ú_supported_random_functionsz5UserDefinedObjectVariable._supported_random_functions-  s0   € ô �M‰MÜ�N‰NÜ×ÑÜ�N‰Nð	
ˆð ˆ
rp   r%  c                 óp  •— | j                  |d«      \  }}| j                  �6| j                  �*|| j                  v r| j                  j                  ||«      S t	        |t
        j                  «      r5t        j                  || || j                  ¬«      j                  ||gi «      S t        ‰| �  ||«      S )NÚ__getitem__©r   rÍ   )rÖ  rN  r“  Úmp_subscript_implr	  rb  rk  r   rl  rÍ   rm  rÇ   )r½   rÑ   r%  rò  r   rË   s        €rn   r  z+UserDefinedObjectVariable.mp_subscript_impl8  s«   ø€ ð !×7Ñ7¸¸MÓJÑˆ�	à�M‰MÐ%Ø×"Ñ"Ð.Ø˜$×,Ñ,Ñ,à—=‘=×2Ñ2°2°sÓ;Ð;Ü�fœe×0Ñ0Ô1Ü×/Ñ/Ø˜¨	¸$¿+¹+ôç‰m˜B   rÓ*ð+ô ‰wÑ(¨¨SÓ1Ð1rp   Úcountc                 ót   •— | j                   �| j                   j                  ||«      S t        ‰| �  ||«      S r   )rN  Úsq_repeat_implrÇ   ©r½   rÑ   r  rË   s      €rn   r	  z(UserDefinedObjectVariable.sq_repeat_implK  s8   ø€ ð �=‰=Ð$Ø—=‘=×/Ñ/°°EÓ:Ð:Ü‰wÑ% b¨%Ó0Ð0rp   c                 ót   •— | j                   �| j                   j                  ||«      S t        ‰| �  ||«      S r   )rN  Úsq_inplace_repeat_implrÇ   r
  s      €rn   r  z0UserDefinedObjectVariable.sq_inplace_repeat_implX  s8   ø€ ð
 �=‰=Ð$Ø—=‘=×7Ñ7¸¸EÓBÐBÜ‰wÑ-¨b°%Ó8Ð8rp   c                 óÖ  •— |d u }|rdnd}| j                  ||«      \  }}| j                  �7| j                  �+|| j                  v r| j                  j                  |||«      S t	        |t
        j                  «      r\|r|gn||g}t        j                  || || j                  ¬«      j                  ||i «       t        j                  j                  d «      S t        ‰	| �  |||«      S )NrÁ  rÂ  r  )rÖ  rN  r“  rÃ  r	  rb  rk  r   rl  rÍ   rm  ry   rÛ   rÇ   )
r½   rÑ   r%  r£   rÄ  rÅ  rò  r   rZ  rË   s
            €rn   rÃ  z/UserDefinedObjectVariable.mp_ass_subscript_impla  sÞ   ø€ ð ˜T�Mˆ	Ù )‰}¨}ˆØ ×7Ñ7¸¸DÓAÑˆ�	à�M‰MÐ%Ø×"Ñ"Ð.Ø˜$×,Ñ,Ñ,à—=‘=×6Ñ6°r¸3ÀÓFÐFÜ�fœe×0Ñ0Ô1Ù%�C‘5¨C°¨<ˆDÜ×(Ñ(Ø˜¨	¸$¿+¹+ôç‰m˜B  bÔ)Ü×-Ñ-×4Ñ4°TÓ:Ð:Ü‰wÑ,¨R°°eÓ<Ð<rp   c           	      óF  — | j                  |«      }|€#t        j                  j                  t        «      S | j
                  �A| j                  �5|| j                  v r'| j
                  j                  ||t        |«      i «      S t        |t        j                  «      sKt        dd|› d| j                  «       › d|› �d|› d| j                  «       › d�g t        j                  ¢¬«       | j!                  |||| j"                  «      }|j%                  |t        |«      i «      S )	Nz'vectorcall_maybe on C method descriptorúname=z, type=ú	, method=zCannot trace special method 'z)' implemented in C on user-defined type 'z'.rP  )r¾   r   ry   rÛ   rÜ   rN  r“  r@  r  r	  rb  rk  r   r¢  r   r[  rß  rÍ   rm  )r½   rÑ   r¹   rZ  rò  rà  s         rn   Ú_vectorcall_maybez+UserDefinedObjectVariable._vectorcall_maybe|  s  € ð  ×1Ñ1°$Ó7ˆØˆ>Ü×-Ñ-×4Ñ4´^ÓDÐDð
 �M‰MÐ%Ø×"Ñ"Ð.Ø˜$×,Ñ,Ñ,à—=‘=×,Ñ,¨R°´t¸D³zÀ2ÓFÐFÜ˜&¤%×"4Ñ"4Ô5ô ØAØ ˜v W¨T×-BÑ-BÓ-DÐ,EÀYÈvÈhÐWà3°D°6ð :-Ø-1×-BÑ-BÓ-DÐ,EÀRðIð 7Ô)×5Ñ5Ð6õð ×+Ñ+¨B°°f¸d¿k¹kÓJˆ
ð ×'Ñ'¨¬D°«J¸Ó;Ð;rp   r×   rm   ÚrdunderÚnb_slotrI  c                 ó6  — dt         dt         dt        fd„}dt         dt         dt        fd„}|r|| fn| |f\  }	}
|	j                  «       }|
j                  «       } |||«       xr t        ||«      xr t	        |
t
        «      }t	        |	t
        «      r‰t        ||«      r}|rQ |||«      rH|	j                  |«      |
j                  |«      k7  }|r#|
j                  |||	g«      }t        |«      s|S d}|	j                  |||
g«      }t        |«      r	 |||«      r|S |rYt	        |
t
        «      st        dt        |
«      › �«      ‚|
j                  |«      r!|
j                  |||	g«      }t        |«      s|S t        j                  j                  t        «      S )NÚw_typeÚv_typerW   c                 ó
   — | |u S r   rr   ©r  r  s     rn   Ú
py_is_typez6UserDefinedObjectVariable.SLOT1BIN.<locals>.py_is_typeë  s   € Ø˜VÐ#Ð#rp   c                 ó   — t        | |«      S r   )r
  r  s     rn   Úpy_is_subtypez9UserDefinedObjectVariable.SLOT1BIN.<locals>.py_is_subtypeî  s   € Ü˜f fÓ-Ð-rp   Fz(Expected UserDefinedObjectVariable, got )r    r€  r¶  rS   r	  r™  r¾   r  rR   r$  r   ry   rÛ   rÜ   )r½   rÑ   r×   rm   r  r  rI  r  r  Úself_Úother_Ús_typeÚo_typeÚdo_otherÚmethod_is_overloadedÚrs                   rn   ÚSLOT1BINz"UserDefinedObjectVariable.SLOT1BIN¬  s¹  € ð~	$œtð 	$¬Tð 	$´dó 	$ð	.¤$ð 	.´ð 	.¼ó 	.ñ *1˜ ™°t¸U°m‰ˆˆvà×"Ñ"Ó$ˆØ×#Ñ#Ó%ˆñ ˜6 6Ó*Ð*ò >Ü'¨°Ó8ò>ä˜6Ô#<Ó=ð 	ô �eÔ6Ô7Ô<SØ�Gô=
ñ ™M¨&°&Ô9à',×'HÑ'HØó(à×7Ñ7¸Ó@ñ(AÐ$ñ (Ø×0Ñ0°°W¸u¸gÓF�AÜ0°Ô3Ø ˜Ø$�Hà×'Ñ'¨¨F°V°HÓ=ˆAÜ(¨Ô+©z¸&À&Ô/IØ�áÜ˜fÔ&?Ô@Ü$Ø>¼tÀF»|¸nÐMóð ð ×1Ñ1°'Ô:Ø×,Ñ,¨R°¸5¸'ÓB�Ü,¨QÔ/Ø�Hä×)Ñ)×0Ñ0´Ó@Ð@rp   c                 óL   — | j                  ||ddt        j                  |¬«      S )NÚ__mul__Ú__rmul__©r  rI  )r#  r   ÚNB_MULTIPLY©r½   rÑ   r×   rI  s       rn   Únb_multiply_implz*UserDefinedObjectVariable.nb_multiply_impl	  s2   € ð �}‰}ØØØØÜ!×-Ñ-Øð ó 
ð 	
rp   c                 óL   — | j                  ||ddt        j                  |¬«      S )NÚ
__lshift__Ú__rlshift__r'  )r#  r   Ú	NB_LSHIFTr)  s       rn   Únb_lshift_implz(UserDefinedObjectVariable.nb_lshift_impl*	  ó2   € ð �}‰}ØØØØÜ!×+Ñ+Øð ó 
ð 	
rp   c                 ó,   — | j                  |d|gi «      S )NÚ__ilshift__©r@  ©r½   rÑ   r×   s      rn   Únb_inplace_lshift_implz0UserDefinedObjectVariable.nb_inplace_lshift_impl:	  ó   € ð
 ×Ñ  M°E°7¸BÓ?Ð?rp   c                 óL   — | j                  ||ddt        j                  |¬«      S )NÚ
__rshift__Ú__rrshift__r'  )r#  r   Ú	NB_RSHIFTr)  s       rn   Únb_rshift_implz(UserDefinedObjectVariable.nb_rshift_implA	  r0  rp   c                 ó,   — | j                  |d|gi «      S )NÚ__irshift__r3  r4  s      rn   Únb_inplace_rshift_implz0UserDefinedObjectVariable.nb_inplace_rshift_implQ	  r6  rp   c                 óL   — | j                  ||ddt        j                  |¬«      S )NrK  Ú__ror__r'  )r#  r   ÚNB_ORr)  s       rn   rM  z$UserDefinedObjectVariable.nb_or_implX	  s2   € ð �}‰}ØØØØÜ!×'Ñ'Øð ó 
ð 	
rp   c                 ó,   — | j                  |d|gi «      S )NÚ__ior__r3  r4  s      rn   Únb_inplace_or_implz,UserDefinedObjectVariable.nb_inplace_or_implh	  s   € ð ×Ñ  I°¨w¸Ó;Ð;rp   c                 óL   — | j                  ||ddt        j                  |¬«      S )NÚ__and__Ú__rand__r'  )r#  r   ÚNB_ANDr)  s       rn   Únb_and_implz%UserDefinedObjectVariable.nb_and_implp	  ó2   € ð �}‰}ØØØØÜ!×(Ñ(Øð ó 
ð 	
rp   c                 ó,   — | j                  |d|gi «      S )NÚ__iand__r3  r4  s      rn   Únb_inplace_and_implz-UserDefinedObjectVariable.nb_inplace_and_impl€	  ó   € ð
 ×Ñ  J°°¸Ó<Ð<rp   c                 óL   — | j                  ||ddt        j                  |¬«      S )NÚ__xor__Ú__rxor__r'  )r#  r   ÚNB_XORr)  s       rn   Únb_xor_implz%UserDefinedObjectVariable.nb_xor_impl‡	  rJ  rp   c                 ó,   — | j                  |d|gi «      S )NÚ__ixor__r3  r4  s      rn   Únb_inplace_xor_implz-UserDefinedObjectVariable.nb_inplace_xor_impl—	  rN  rp   c                 óL   — | j                  ||ddt        j                  |¬«      S )NÚ__add__Ú__radd__r'  )r#  r   ÚNB_ADDr)  s       rn   Únb_add_implz%UserDefinedObjectVariable.nb_add_implž	  rJ  rp   c                 ó,   — | j                  |d|gi «      S ©NÚ__iadd__r3  r4  s      rn   Únb_inplace_add_implz-UserDefinedObjectVariable.nb_inplace_add_impl®	  ó   € ð ×Ñ  J°°¸Ó<Ð<rp   c                 óL   — | j                  ||ddt        j                  |¬«      S )NÚ__sub__Ú__rsub__r'  )r#  r   ÚNB_SUBTRACTr)  s       rn   Únb_subtract_implz*UserDefinedObjectVariable.nb_subtract_impl¶	  s2   € ð �}‰}ØØØØÜ!×-Ñ-Øð ó 
ð 	
rp   c                 ó,   — | j                  |d|gi «      S )NÚ__isub__r3  r4  s      rn   Únb_inplace_subtract_implz2UserDefinedObjectVariable.nb_inplace_subtract_implÆ	  r`  rp   c                 ó,   — | j                  |d|gi «      S )NÚ__imul__r3  r4  s      rn   Únb_inplace_multiply_implz2UserDefinedObjectVariable.nb_inplace_multiply_implÎ	  rN  rp   c                 óL   — | j                  ||ddt        j                  |¬«      S )NÚ__floordiv__Ú__rfloordiv__r'  )r#  r   ÚNB_FLOOR_DIVIDEr)  s       rn   Únb_floor_divide_implz.UserDefinedObjectVariable.nb_floor_divide_implÕ	  s2   € ð �}‰}ØØØØÜ!×1Ñ1Øð ó 
ð 	
rp   c                 ó,   — | j                  |d|gi «      S )NÚ__ifloordiv__r3  r4  s      rn   Únb_inplace_floor_divide_implz6UserDefinedObjectVariable.nb_inplace_floor_divide_implå	  s   € ð
 ×Ñ  O°e°W¸bÓAÐArp   c                 óL   — | j                  ||ddt        j                  |¬«      S )NÚ__truediv__Ú__rtruediv__r'  )r#  r   ÚNB_TRUE_DIVIDEr)  s       rn   Únb_true_divide_implz-UserDefinedObjectVariable.nb_true_divide_implì	  s2   € ð �}‰}ØØØØÜ!×0Ñ0Øð ó 
ð 	
rp   c                 ó,   — | j                  |d|gi «      S )NÚ__itruediv__r3  r4  s      rn   Únb_inplace_true_divide_implz5UserDefinedObjectVariable.nb_inplace_true_divide_implü	  s   € ð
 ×Ñ  N°U°G¸RÓ@Ð@rp   c                 óL   — | j                  ||ddt        j                  |¬«      S )NÚ__mod__Ú__rmod__r'  )r#  r   ÚNB_REMAINDERr)  s       rn   Únb_remainder_implz+UserDefinedObjectVariable.nb_remainder_impl
  s2   € ð �}‰}ØØØØÜ!×.Ñ.Øð ó 
ð 	
rp   c                 ó,   — | j                  |d|gi «      S )NÚ__imod__r3  r4  s      rn   Únb_inplace_remainder_implz3UserDefinedObjectVariable.nb_inplace_remainder_impl
  rN  rp   c                 óL   — | j                  ||ddt        j                  |¬«      S )NÚ
__divmod__Ú__rdivmod__r'  )r#  r   Ú	NB_DIVMODr)  s       rn   Únb_divmod_implz(UserDefinedObjectVariable.nb_divmod_impl
  r0  rp   c                 óÆ  •— ddl m} ddl m} ddlm} | j                  |«      }|��)|t        j                  u r |j                  d «      S t        |«      s$t        | j                  t        j                  «      r | j                  |g|¢­i |¤ŽS t        |«      r(| j                  ||d   t!        j"                  «       «      S t$        j&                  j(                  j*                  rJt        | j                  t,        j.                  «      r&t1        dd| j                  › d	|› d
|› d|› �ddg¬«       t        | j                  t$        j2                  j4                  «      r4||j6                  v r&t1        dd|› �d|› d�g t8        j:                  ¢¬«       | j<                  �@| j>                  �4|| j>                  v r&|t@        vr| j<                  jC                  ||||«      S t        |t,        jD                  «      rm| jF                  }	d }
|	r| jI                  ||«      }
ddl%m&} |t$        jN                  jP                  j                  u r|} ||| |
|	¬«      jS                  |||«      S |tT        jV                  u rk| jF                  r_|s]|s[tY        | jF                  j[                  t\        j^                  «      «       ta        jb                  |te        | j                  «      «      S |jg                  |«      r\ddl4m5} |jm                  «       }|jo                  |«      }|�3|jp                  }t!        j                  || «      jS                  |||«      S tr        ‰| �…  ||||«      S )Nr   )Útrace_rulesrF   )rl  rx   r   zcall_method on generatorúobject=r  ú, args=rü  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.rP  ztorch.Generator methodztorch.Generator.zM() is a stateful RNG operation that cannot be soundly traced in the FX graph.©Úunpatched_nn_module_initr  )ÚPolyfilledFunctionVariable):ry  rŠ  rl  rÚ   ry   r¾   r€   rÈ   rÛ   r„   r	  r£   Ú	threadingÚlocalÚmethod_setattr_standardrˆ   r   ÚDeletedVariablerë   r=  r   Ú"enable_faithful_generator_behaviorrb  ÚGeneratorTyper   rÀ  Ú	GeneratorÚ#_GENERATOR_METHODS_THAT_GRAPH_BREAKr   ÚFUNDAMENTALrN  r“  rG   r@  rk  rÍ   r;  Úmutation_guardrŽ  rØ  ÚModulerm  r  rž  r"   rÓ   r!   ÚSEQUENCE_LENGTHrM   rE  rè  Úis_polyfilled_callabler/  r�  Ú_get_polyfill_handlersr–   Ú__torch_dynamo_polyfill__rÇ   )r½   rÑ   r¹   rZ  rÅ   rŠ  rl  ry   rò  rÍ   r   rŽ  r�  Úpolyfill_handlersÚwrappedÚtraceable_fnrË   s                   €rn   r@  z%UserDefinedObjectVariable.call_method*
  s  ø€ õ 	#Ý(Ý.à×1Ñ1°$Ó7ˆØÑØœŸ™Ñ(Ø.Ð'×.Ñ.¨tÓ4Ð4ä" 6Ô*¬j¸¿¹ÄYÇ_Á_Ô.UØ3�t×3Ñ3°BÐH¸ÒHÀÑHÐHä" 6Ô*Ø×3Ñ3Ø˜˜Q™¤×!:Ñ!:Ó!<óð ô �}‰}×#Ñ#×FÒFÌ:Ø—
‘
œE×/Ñ/ôLô Ø6Ø% d§j¡j \°¸4¸&ÀÈÀvÈYÐW]ÐV^Ð_ð!3ð+ðõ
ô ˜4Ÿ:™:¤u§x¡x×'9Ñ'9Ô:Ø˜K×KÑKÑKäØ4Ø.¨t¨fÐ5Ø"2°4°&ð 9Oð !Oà:Ô-×9Ñ9Ð:õð —‘Ð)Ø×&Ñ&Ð2Ø˜d×0Ñ0Ñ0ØÔ 0Ñ0à—}‘}×0Ñ0°°T¸4ÀÓHÐHô ˜&¤%×"4Ñ"4Ô5ØŸ™�Ø �	ÙØ $× >Ñ >¸rÀ4Ó H�IåEàœUŸX™XŸ_™_×5Ñ5Ñ5Ø5�FÙ)Ø˜D¨I¸fôç‘-  D¨&Ó1ð2ð œŸ™Ñ%¨$¯+ª+¹tÁvÜ˜dŸk™k×4Ñ4´\×5QÑ5QÓRÔSÜ&×,Ñ,¨R´°T·Z±Z³ÓAÐAà×1Ñ1°&Ô9ÝAà$>×$UÑ$UÓ$WÐ!Ø0×4Ñ4°VÓ<�ØÐ&Ø#*×#DÑ#D�LÜ$×7Ñ7Ø$ dóç#‘m B¨¨fÓ5ð6ô ‰wÑ" 2 t¨T°6Ó:Ð:rp   c                 óÐ   — | j                  d«      }| j                  �6| j                  �*|| j                  v r| j                  j                  ||«      S | j	                  ||d¬«      S )NrX  F)rI  )r¾   rN  r“  Úsq_concat_implr[  ©r½   rÑ   r×   rò  s       rn   r£  z(UserDefinedObjectVariable.sq_concat_impl‹
  sg   € ð
 ×1Ñ1°)Ó<ˆà�M‰MÐ%Ø×"Ñ"Ð.Ø˜$×,Ñ,Ñ,à—=‘=×/Ñ/°°EÓ:Ð:à×Ñ  E°5ÐÓ9Ð9rp   c                 óÌ   — | j                  d«      }| j                  �6| j                  �*|| j                  v r| j                  j                  ||«      S | j	                  ||«      S r]  )r¾   rN  r“  Úsq_inplace_concat_implr_  r¤  s       rn   r¦  z0UserDefinedObjectVariable.sq_inplace_concat_implš
  sb   € ð ×1Ñ1°*Ó=ˆà�M‰MÐ%Ø×"Ñ"Ð.Ø˜$×,Ñ,Ñ,à—=‘=×7Ñ7¸¸EÓBÐBà×'Ñ'¨¨EÓ2Ð2rp   c                 ód  — | j                  |d«      \  }}|t        urQ| j                  |d||«      }t        |t        j
                  t        j                  f«      s|j                  |g i «      S t        d| j                  «       › d�d| j                  «       › d�g t        j                  ¢¬«       y )Nrž  z!Cannot trace user-defined __len__z
.__len__()zDynamo cannot trace len() on zu because the __len__ method is either not traceable (e.g., defined in C or built-in) or returns a non-constant value.rP  )rÖ  rK   rß  r	  r   rj  ÚMethodWrapperVariablerm  r   r¢  r   r[  )r½   rÑ   rG  rÍ   rà  s        rn   r¤  z"UserDefinedObjectVariable.len_impl¨
  s»   € Ø ×7Ñ7¸¸IÓFÑˆ	�6ØœNÑ*Ø×/Ñ/°°I¸yÈ&ÓQˆJÜØÜ×*Ñ*¬I×,KÑ,KÐLôð "×/Ñ/°°B¸Ó;Ð;äØ7Ø×,Ñ,Ó.Ð/¨zÐ:à/°×0EÑ0EÓ0GÐ/Hð I&ð &ðÜ"×.Ñ.ðö	
rp   c                 óÄ   — | j                   �D| j                  �8| j                  d«      | j                  v r| j                   j                  |«      S | j	                  |«      S ©Nrž  )rN  r“  rÕ  r§  r¤  rÕ   s     rn   r§  z#UserDefinedObjectVariable.sq_length¿
  óU   € à�M‰MÐ%Ø×"Ñ"Ð.Ø×*Ñ*¨9Ó5¸×9KÑ9KÑKà—=‘=×*Ñ*¨2Ó.Ð.Ø�}‰}˜RÓ Ð rp   c                 óÄ   — | j                   �D| j                  �8| j                  d«      | j                  v r| j                   j                  |«      S | j	                  |«      S rª  )rN  r“  rÕ  rª  r¤  rÕ   s     rn   rª  z#UserDefinedObjectVariable.mp_lengthÈ
  r«  rp   c           
      óŽ  ‡ ‡‡— dŠ	 |j                  «       Š‰j                  j                  j                  ‰ «      st        d	«      ‚t        j                  j                  «       r†t        ‰ j                  «      t        j                  j                  u rW‰j                  j                  j                  ‰ ‰«      s‰‰ j                  j                  v rt        d
d‰ › d|› d|› �ddg¬«       ‰dk(  rt        dd‰ › d|› �ddg¬«       dt        fˆˆ ˆfd„}dt        fˆˆ ˆfd„}dt         dt        fˆˆ ˆfd„}‰ j#                  ‰«      }|t$        u�rªt'        t        |«      d«      st'        t        |«      d«      �rd }‰ j(                  r‰ j+                  ‰‰«      }t-        |t.        «      rÏt-        |t0        j2                  «      rZ|j4                  € |d«       |rt7        |d«      nd }	t9        j:                  ‰|j4                  |	¬«      }
|
j=                  ‰‰ gi «      S |j>                  € |d«       |rt7        |d«      nd }t9        j:                  ‰|j>                  |¬«      }|j=                  ‰‰ |gi «      S t-        |t@        jB                  «      rF‰j                  j                  jE                  ‰ ‰|«       t0        jF                  jI                  d «      S t-        |t@        jJ                  «      rR‰dk(  rd ‰ _&        ‰j                  j                  jE                  ‰ ‰|«       t0        jF                  jI                  d «      S tO        jP                  t        |«      dd «      }tO        jP                  t        |«      dd «      }tS        tT        dd «      }|�t        |«      |u r |«        t9        j:                  ‰||«      }t-        |t0        j2                  «      r’t-        |t@        jV                  «      rG|rt7        tY        |«      d«      nd }t9        j:                  ‰||d¬ «      }|j=                  ‰|‰ gi «      S |�(t        d!d‰ › d‰› d"|› �d#g tZ        j\                  ¢¬«        |«        t-        |t@        jV                  «      rH|rt7        tY        |«      d«      nd }t9        j:                  ‰||d¬ «      }|j=                  ‰|‰ |gi «      S t        d$d‰ › d‰› d"|› �d%g tZ        j\                  ¢¬«       t'        ‰ j                  d«      r†‰ j_                  ‰«      }t-        |t0        j2                  «      r*|ja                  ‰«      s |«        |jc                  ‰«       n|je                  ‰|«       t0        jF                  jI                  d «      S  |«        y # t        $ r t        dd‰ › d|› d|› �ddg¬«       Y �Œ¬w xY w)&Nry  z-non-const setattr name on user-defined objectr‹  ú, 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.rP  z`Attempted setattr on a user-defined object that does not have an AttributeMutation mutation_typezP2POp mutationzCDynamo does not support mutating torch.distributed.P2POp instances.zaConstruct a new torch.distributed.P2POp instead of mutating an existing one inside torch.compile.rË   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.rW   c            	      ót   •— t        t        ‰dt        ‰j                  «      j                  › d‰ › d�g¬«       y )NrX  ú' object has no attribute 'rY  ©r   r¼   r    r£   r�   ©Úname_strr½   rÑ   s   €€€rn   Úraise_cannot_set_attrzPUserDefinedObjectVariable.method_setattr_standard.<locals>.raise_cannot_set_attr  s:   ø€ Ü$ÜØàœ˜TŸZ™ZÓ(×1Ñ1Ð2Ð2MÈhÈZÐWXÐYðörp   c            	      ót   •— t        t        ‰dt        ‰j                  «      j                  › d‰ › d�g¬«       y )NrX  z' object attribute 'z' is read-onlyrY  r±  r²  s   €€€rn   Úraise_readonly_attrzNUserDefinedObjectVariable.method_setattr_standard.<locals>.raise_readonly_attr  s:   ø€ Ü$ÜØàœ˜TŸZ™ZÓ(×1Ñ1Ð2Ð2FÀxÀjÐP^Ð_ðörp   Úactionc           
      óx   •— t        t        ‰d‰› dt        ‰j                  «      j                  › d| › �g¬«       y )Nz
property 'z' of 'z' object has no rY  r±  )r·  r³  r½   rÑ   s    €€€rn   Úraise_property_errorzOUserDefinedObjectVariable.method_setattr_standard.<locals>.raise_property_error  sD   ø€ Ü$ÜØà   
ð +Ü˜TŸZ™ZÓ(×1Ñ1Ð2Ð2BÀ6À(ðLðörp   r°   r±   ÚdeleterÚfdelrV  ÚsetterÚfsetr¦   rŠ  T©Úrealizez0C-level descriptor delete on user-defined objectz, descriptor=zSDynamo does not yet model this C-level descriptor deleter for user-defined objects.z1C-level descriptor setattr on user-defined objectzRDynamo does not yet model this C-level descriptor setter for user-defined objects.)3rá   rÔ   r   r*  r]  Úis_attribute_mutationr$  rë   r  r  r    r£   r  r^  r¦   r   rÂ   rÕ  rK   rj   r•  r;  r	  rƒ  r   r“  r»  r#   rM   rE  rm  r½  rb  r‡  Ú
store_attrry   rÛ   ÚGetSetDescriptorTyper™  r§   r»   rk   r�  rk  r+   r   r[  r®  ÚcontainsÚdelitemÚsetitem)r½   rÑ   r¹   r£   r´  r¶  r¹  r2  Údesc_sourceÚfdel_sourceÚfdel_varÚfset_sourceÚfset_varr¼  rº  rŠ  Údesc_varÚ
del_sourceÚdel_varÚ
set_sourceÚset_varr™  r³  s   ``                    @rn   r’  z1UserDefinedObjectVariable.method_setattr_standardÑ
  sh  ú€ ð ˆð	Ø×.Ñ.Ó0ˆHð �y‰y×%Ñ%×;Ñ;¸DÔAÜ ð5óð ô ×Ñ×*Ñ*Ô,Ü�T—Z‘ZÓ ¤E×$5Ñ$5×$;Ñ$;Ñ;à—	‘	×&Ñ&×CÑCÀDÈ(ÔSØ˜tŸz™z×2Ñ2Ñ2ô Ø(Ø! $  w¨t¨f°H¸U¸GÐDØaàwðõ	ð �{Ò"ÜØEØ! $  x°¨wÐ7ØdàXðõ	ð	¤x÷ 	ð	¤X÷ 	ð	¬ð 	´÷ 	ð ×/Ñ/°Ó9ˆ
Øœ^Ò+Ü”D˜Ó$ iÔ0Ü”t˜JÓ'¨Õ6àˆKØ�ŠØ"×<Ñ<¸RÀÓJ�ä˜*¤hÔ/Ü˜e¤Y×%>Ñ%>Ô?Ø!—‘Ð.Ù,¨YÔ7á;Fœ
 ;°Ô7ÈDð  ô  /×4Ñ4Ø˜JŸO™O°Kô �Hð $×1Ñ1°"°t°f¸bÓAÐAØ—?‘?Ð*Ù(¨Ô2ÙALœj¨°fÔ=ÐRV�Ü*×0Ñ0Ø˜
Ÿ™°ô�ð  ×-Ñ-¨b°4¸°-ÀÓDÐDä˜*¤e×&@Ñ&@ÔAØ—	‘	×&Ñ&×1Ñ1°$¸À%ÔHÜ ×1Ñ1×8Ñ8¸Ó>Ð>ä˜*¤e×&@Ñ&@ÔAØ˜zÒ)Ø#'�D”Lð —	‘	×&Ñ&×1Ñ1°$¸À%ÔHÜ ×1Ñ1×8Ñ8¸Ó>Ð>ä×+Ñ+¬D°Ó,<¸iÈÓNˆFÜ×,Ñ,¬T°*Ó-=¸|ÈTÓRˆGô #¤;°ÀÓEˆLØÐ'¬D°Ó,<ÀÑ,LÙ#Ô%Ü&×,Ñ,¨R°¸[ÓIˆHÜ˜%¤×!:Ñ!:Ô;Ü˜g¤u×'9Ñ'9Ô:ñ 'ô #¤:¨kÓ#:¸LÔIà!ð ô
 .×3Ñ3Ø˜G Z¸ô�Gð #×0Ñ0°°hÀÐ5EÀrÓJÐJØÐ&Ü!Ø RØ")¨$¨¨w°x°jÀÈjÈ\Ð Zð8ð ?Ô 1× =Ñ =Ð>õñ $Ô%Ü˜&¤%×"4Ñ"4Ô5ñ #ô œz¨+Ó6¸	ÔBàð ô
 *×/Ñ/°°F¸JÐPTÔU�Ø×,Ñ,¨R°(¸DÀ%Ð1HÈ"ÓMÐMäØKØ! $  w¨x¨j¸ÀjÀ\ÐRð0ð 7Ô)×5Ñ5Ð6õô �4—:‘:˜zÔ*Ø×&Ñ& rÓ*ˆGÜ˜%¤×!:Ñ!:Ô;Ø×'Ñ'¨Ô1Ù)Ô+Ø—‘ Õ)à—‘ ¨%Ô0Ü×-Ñ-×4Ñ4°TÓ:Ð:áÕøôS #ò 	ÜØGØ! $  w¨t¨f°H¸U¸GÐDØmØ:Ð;÷	ð ð	ús   ‡V Ö"W×Wc                 ó¦   — t        t        j                  | j                  dd «      «       xr% t	        | j                  t
        j                  «       S )Nr�   )r„   r§   r»   r£   r	  r�  r‘  rÏ   s    rn   Úneeds_slow_setattrz,UserDefinedObjectVariable.needs_slow_setattr…  sD   € Ü&Ü×"Ñ" 4§:¡:¨}¸dÓCó
ð 
ò :ä˜TŸZ™Z¬¯©Ó9Ð9ð	:rp   c                 ó   — t        || «      S r   )rD   rÕ   s     rn   rô  z-UserDefinedObjectVariable.unpack_var_sequenceŠ  s   € ô ˜r 4Ó(Ð(rp   c                 óf   — 	 | j                   | j                  «       v S # t        t        f$ r Y yw xY wr°  )r£   r  rµ   r¼   rÏ   s    rn   Úis_supported_randomz-UserDefinedObjectVariable.is_supported_random�  s8   € ð	Ø—:‘: ×!AÑ!AÓ!CÐCÐCøÜœ>Ð*ò 	ñ ð	ús   ‚ ž0¯0c                 ó   •— | j                  «       rJt        d„ |D «       «      r8t        d„ |j                  «       D «       «      rt        || j                  ||«      S t        | j                  t        j                  «      �r4| j                  j                  }| j                  j                  }|t        j                  j                  j                  j                  u r]t        j                   j#                  |j$                  «      r4|s2|s0t        j                   |j$                  «      j'                  |||«      S |t        j(                  j*                  j,                  j                  u r�|j$                  t        j(                  j*                  j,                  u rQt/        j0                  ||j2                  «      }t        j                   |j$                  «      j'                  ||g|«      S | j4                  €4t7        dd| j                  › d|› d|› d|› �dd	| j                  › d
�g¬«       | j4                  €t9        d«      ‚t;        | j4                  d«      }t/        j0                  |||d¬«      }t;        | j4                  d«      }	t/        j0                  |||	«      }
|j'                  ||
g|z   |«      S t=        | j                  «      ru| j4                  rU| j>                  €t9        d«      ‚t;        | j>                  d«      }tA        |jC                  tD        jF                  «      «       | jI                  |d||«      S tJ        ‰| �M  |||«      S )Nc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr   ©r4  )r  rS  s     rn   r  z:UserDefinedObjectVariable.call_function.<locals>.<genexpr>Ÿ  s   è ø€ Ò9¨q�A×(Ñ(×*Ñ9ùr  c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr   r×  )r  rT  s     rn   r  z:UserDefinedObjectVariable.call_function.<locals>.<genexpr>   s   è ø€ ÒD¨q�A×(Ñ(×*ÑDùr  z<attempted to call sourceless user-defined object as a methodr‹  z, function=rŒ  rü  zDynamo does not support this.zEnsure the user-defined object z, is constructed outside the compiled region.rP  z-source must not be None for bound method callr‚  Tr¾  r  z4cls_source must not be None for callable with sourceÚ__call__)&rÔ  rC  Úvaluesr‘  r£   r:   rb  r(  r‚  r  rë   r�  Ú_contextlibÚ_DecoratorContextManagerÚcloner   r  Úis_matching_clsrË   rm  ÚautogradÚ	grad_modeÚinference_moderM   rE  ÚmoderÍ   r   r$  r#   rŸ   r•  r"   rÓ   r!   ÚCLOSURE_MATCHr@  rÇ   )r½   rÑ   rZ  rÅ   Úfuncr›   rR  Úfunc_srcÚfunc_varÚobj_srcÚobj_varÚsource_attrrË   s               €rn   rm  z'UserDefinedObjectVariable.call_function—  s³  ø€ ð ×$Ñ$Ô&ÜÑ9°DÔ9Ô9ÜÑD°F·M±M³OÔDÔDä! " d§j¡j°$¸Ó?Ð?Ü�D—J‘J¤× 0Ñ 0Õ1Ø—:‘:×&Ñ&ˆDØ—*‘*×%Ñ%ˆCàœŸ™×/Ñ/×HÑH×NÑNÑNÜ×:Ñ:×JÑJØ—M‘Môñ ¡ä ×=Ñ=Ø—M‘Móç‘-  D¨&Ó1ð2ð
 œŸ™×0Ñ0×?Ñ?×EÑEÑEØ—M‘M¤U§^¡^×%=Ñ%=×%LÑ%LÑLô &×+Ñ+¨B°·±Ó9�Ü ×=Ñ=Ø—M‘Móç‘-  S E¨6Ó2ð3ð �{‰{Ð"ÜØZØ% d§j¡j \°¸T¸FÀ'È$ÈÈyÐY_ÐX`ÐaØ ?à9¸$¿*¹*¸ÐEqÐrðõ	ð �{‰{Ð"Ü$Ð%TÓUÐUÜ! $§+¡+¨zÓ:ˆHÜ&×,Ñ,¨R°°xÈÔNˆHÜ  §¡¨jÓ9ˆGÜ%×+Ñ+¨B°°WÓ=ˆGØ×)Ñ)¨"¨w¨i¸$Ñ.>ÀÓGÐGÜ�d—j‘jÔ!Ø�{Š{Ø—?‘?Ð*Ü(ØNóð ô )¨¯©¸*ÓE�Ü˜k×4Ñ4´\×5OÑ5OÓPÔQØ×#Ñ# B¨
°D¸&ÓAÐAä‰wÑ$ R¨¨vÓ6Ð6rp   c                 ó,   — t        | j                  «      S r   )r3   r£   rÏ   s    rn   Ú_check_for_getattrz,UserDefinedObjectVariable._check_for_getattr×  s   € Ü! $§*¡*Ó-Ð-rp   Úsubobjc                 óê   — t        |t        «      syt        |j                  t        j                  «      xs= t
        j                  j                  j                  j                  |j                  «      S r°  )
r	  rƒ  r„  rb  ÚBuiltinFunctionTyperë   rÀ  r=  r�  rÞ  )r½   rì  s     rn   Ú_is_c_defined_propertyz0UserDefinedObjectVariable._is_c_defined_propertyÚ  sV   € Ü˜&¤(Ô+Øô Ø�K‰Kœ×2Ñ2ó
ò Cä�X‰X×Ñ×#Ñ#×5Ñ5°f·k±kÓBð	Crp   c                 ó:  — || j                   v r| j                   |   S t        j                  | j                  |t        «      }t        j
                  |«      st        j                  |«      r0t        | j                  «      j                  | j                  |«      }no| j                  sI|t        u s| j                  |«      r0t        | j                  «      j                  | j                  |«      }n| j                  r|t        u rt        ‚|| j                   |<   |S r   )rš  r§   r»   r£   rK   ÚismemberdescriptorÚisgetsetdescriptorr    rO  r¢  rï  r¼   )r½   r¹   rì  s      rn   Ú_getattr_staticz)UserDefinedObjectVariable._getattr_staticæ  sâ   € Ø�4×(Ñ(Ñ(Ø×(Ñ(¨Ñ.Ð.ä×'Ñ'¨¯
©
°D¼.ÓIˆô ×%Ñ% fÔ-´×1KÑ1KÈFÔ1SÜ˜$Ÿ*™*Ó%×6Ñ6°t·z±zÀ4ÓH‰FØ×.Ò.Ø”nÑ$Ø×*Ñ*¨6Ô2ô ˜$Ÿ*™*Ó%×6Ñ6°t·z±zÀ4ÓH‰FØ×*Ò*¨v¼Ñ/Gô !Ð à&,ˆ×Ñ˜dÑ#Øˆrp   c                 óò   — || j                   v r| j                   |   S t        }| j                  j                  j                  D ]!  }||j
                  v sŒ|j
                  |   } n || j                   |<   |S )u÷  Walk type(obj).__mro__ to find *name* in the class hierarchy.

        This only searches the class chain (type(obj).__mro__), NOT the
        metaclass chain (type(type(obj)).__mro__).  The distinction matters
        because inspect.getattr_static conflates both chains â€” it can return
        metaclass descriptors (e.g. type.__dict__['__annotations__'], a
        getset_descriptor) when the attribute doesn't exist on the class MRO.
        Walking cls.__mro__ directly avoids that leak.
        )r›  rK   r£   rË   r  r¦   )r½   r¹   rÞ   r!  s       rn   rÕ  z/UserDefinedObjectVariable.lookup_class_mro_attr  s{   € ð �4×*Ñ*Ñ*Ø×*Ñ*¨4Ñ0Ð0ÜˆØ—J‘J×(Ñ(×0Ñ0ò 	ˆDØ�t—}‘}Ò$ØŸ™ tÑ,�Ùð	ð )/ˆ×Ñ Ñ%Øˆrp   c                 ó"  — |j                   j                  j                  | |t        j                  «      rC|j                   j                  j                  | |d¬«      }t        |t        j                  «       S || j                  j                  v S )NTr½  )r*  r]  r^  rI   ÚINSTANCE_DICTr_  r	  r   r“  r£   r¦   )r½   rÑ   r%  Úmutated_attrs       rn   Úhas_key_in_generic_dictz1UserDefinedObjectVariable.has_key_in_generic_dict   s{   € ð �9‰9×!Ñ!×>Ñ>Ø�#Ô'×5Ñ5ô
ð Ÿ9™9×1Ñ1×;Ñ;¸DÀ#ÐRVÐ;ÓWˆLÜ! ,´	×0IÑ0IÓJÐJÐJð �d—j‘j×)Ñ)Ð)Ð)rp   c                 óÒ  — | j                   €t        d«      ‚t        t        | j                  «      j
                  «      D �]  \  }}||j                  v sŒ|j                  |   }t        d|«      D ]Ø  }t        | j                  «      j
                  |   }t        |«      |f}||j                  j                  v rŒK|j                  j                  j                  |«       t        | j                   «      }	t        |	|«      }
t        |
«      }t        |j!                  t#        j$                  t&        j(                  |¬«      «      «       ŒÚ | j*                  r�t-        | j                  d«      rk|| j                  j                  vrSt-        |d«      sGt        | j*                  j!                  t#        j$                  t&        j.                  |¬«      «      «       t        |«      |f}|j                  j0                  }||v r||   c S |dk7  r"t        | j                   «      }	t        |	|«      }
n| j                   }
t        |
«      }t3        ||«      }|||<   |c S  t5        dd	|› d
t        | j                  «      › dt        | j                  «      j
                  › �d|› dt        | j                  «      j
                  › �d|› d| j                  › d�gt6        j8                  ¢¬«       y )Nz(cls_source must not be None for MRO walkrF   r$  r¦   r°   rm  r   z#could not find name in object's mror  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.rP  )r•  r$  r'  r    r£   r  r¦   r(  r)  r*  r+  rh   r*   r'   r)   r"   rÓ   r,  r-  r!   r.  rÍ   rj   ÚNOT_PRESENT_IN_GENERIC_DICTr/  r%   r   r   r#  )r½   rÑ   r¹   r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  s                 rn   r;  z3UserDefinedObjectVariable.get_source_by_walking_mro,  sŠ  € ð �?‰?Ð"Ü Ð!KÓLÐLä#¤D¨¯©Ó$4×$<Ñ$<Ó=ó ?	"‰JˆC�Ø�u—~‘~Ò%Ø"Ÿ^™^¨DÑ1�
ô #(¨¨3£-ò �JÜ#'¨¯
©
Ó#3×#;Ñ#;¸JÑ#G�LÜ!# LÓ!1°4Ð 8�IØ  B§I¡I×$EÑ$EÑEØ Ø—I‘I×5Ñ5×9Ñ9¸)ÔDÜ!.¨t¯©Ó!?�JÜ+8¸ÀZÓ+P�LÜ"0°Ó">�KÜ!Ø#×.Ñ.Ü%×-Ñ-¬l×.LÑ.LÐRVÔWóõðð, —K’KÜ §
¡
¨JÔ7Ø D§J¡J×$7Ñ$7Ñ7Ü# J°	Ô:ä!ØŸ™×.Ñ.Ü%×-Ñ-Ü ,× HÑ HÈtôóôô   
›^¨TÐ2�	ØŸ	™	×2Ñ2�Ø Ñ%Ø  Ñ+Ò+à˜!’8Ü!.¨t¯©Ó!?�JÜ#0°¸SÓ#A‘Là#'§?¡?�LÜ,¨\Ó:�Ü.¨{¸DÓA�
Ø#-��iÑ Ø!Ò!ð?	"ôB 	Ø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ðä"×-Ñ-ðö		
rp   c                 ón
  — | j                   rt        | j                   |«      nd}|dk(  r7t        | j                  d«      st	        t
        |«       | j                  |«      S |dk(  r=|}|€| j                  }n|}t        j                  |t        | j                  «      |«      S ddlm} | j                  |«      }|t        j                  j                   j"                  u r|}|t$        urt'        |«      r| j)                  ||||«      S d}|j*                  j,                  j/                  | |t0        j2                  t0        j4                  f«      rG|j*                  j,                  j7                  | |d¬«      }t9        |t:        j<                  «      s|S d}nj|j*                  j,                  j/                  | dt0        j4                  «      r5| j                  |«      }	|	j?                  |«      r|	jA                  |«      S d}|sqt        | j                  d«      r[|| j                  jB                  v rC| j                  jB                  |   }
| jE                  |||«      }t        j                  ||
|«      S |t$        ur| jG                  ||||«      S | jH                  s\|sZ	 t        | j                  «      jK                  | j                  |«      }| jE                  |||«      }t        j                  |||«      S | jM                  «       }t9        |tN        jP                  «      �r“|tR        u r™t9        | t:        jT                  «      rtW        | j                  jX                  tZ        «      r[tW        | j                  j\                  tZ        «      r7tW        | j                  j^                  tZ        «      r| ja                  ||«      }nkd}| j                   rt        | j                   d	«      }t;        jb                  || |¬
«      je                  |t:        jf                  ji                  |«      gi «      }| j                   ry|t        j                  j                   jj                  u rSt9        |t:        jT                  t:        jl                  f«      r)|jo                  t        | jq                  «       |«      «       |S |�7ts        dd| j                  › d|› d|› �d|› d| j                  › d|› d�dg¬«       t	        t
        |dt        | j                  «      jt                  › d|› d�g¬«       y# t
        $ r Y �Œ;w xY w)uÿ  Dynamo implementation of CPython's PyObject_GenericGetAttr.

        This mirrors object.__getattribute__ and is called from:
        - var_getattr (for objects without a custom __getattribute__)
        - SuperVariable.call_method (when super().__getattribute__() resolves
          to object.__getattribute__)

        The algorithm: MRO walk â†’ data descriptor â†’ instance __dict__ â†’
        non-data descriptor / plain class attr â†’ dynamic fallback â†’
        __getattr__ â†’ AttributeError.
        Nr¦   rË   r   r�  FTr½  rW  rV  z1User-defined object with non-function __getattr__r‹  r®  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.rP  rX  r°  rY  );rÍ   r#   rj   r£   r   r¼   r®  r•  rM   rE  r    r™  rŽ  rÕ  rë   rØ  rš  rÈ   rK   r²   Úresolve_data_descriptorr*  r]  r^  rI   rö  ÚGENERIC_SETATTRr_  r	  r   r“  rÃ  Úgetitemr¦   Ú(maybe_wrap_nn_module_source_for_instancerß  r¢  rO  rë  rb  rk  rE   ÚUnspecializedNNModuleVariabler:   Ú_parametersr  Ú_buffersÚ_modulesÚ manually_trace_nn_module_getattrrl  rm  ry   rÛ   rW  ÚNNModuleVariableÚset_nn_module_stack_sourceÚget_nn_module_stack_sourcer   r�   )r½   rÑ   r¹   rÍ   r•  rŽ  rG  Úskip_instance_dictrÞ   r™  rì  r|  Ú
getattr_fnÚoutÚ
new_sources                  rn   Úgeneric_getattrz)UserDefinedObjectVariable.generic_getattr}  s‘  € ð BFÇÂ¤
¨4¯;©;¸Ô =ÐRVˆà�:ÒÜ˜4Ÿ:™: zÔ2Ü(¬¸Ô<Ø×#Ñ# BÓ'Ð'ð
 �;ÒØ(.ˆJØˆ~Ø!Ÿ_™_‘
à#�
Ü"×(Ñ(¨¬T°$·*±*Ó-=¸zÓJÐJå=ð  ×.Ñ.¨tÓ4ˆ	ð œŸ™Ÿ™×0Ñ0Ñ0Ø0ˆIð œNÑ*Ô/AÀ)Ô/LØ×/Ñ/°°D¸)ÀVÓLÐLð #ÐØ�9‰9×!Ñ!×>Ñ>ØØÜ×+Ñ+Ô-=×-MÑ-MÐNô
ð
 —Y‘Y×+Ñ+×5Ñ5°d¸DÈTÐ5ÓRˆFÜ˜f¤i×&?Ñ&?Ô@Ø�ð "&ÑØ�Y‰Y×#Ñ#×@Ñ@Ø�*Ô.×>Ñ>ô
ð
 ×&Ñ& rÓ*ˆGØ×Ñ Ô%Ø—‘ tÓ,Ð,Ø!%Ðá"Ü˜Ÿ
™
 JÔ/Ø˜Ÿ
™
×+Ñ+Ñ+à—Z‘Z×(Ñ(¨Ñ.ˆFØ×BÑBÀ2ÀtÈVÓTˆFÜ"×(Ñ(¨¨V°VÓ<Ð<ð œNÑ*Ø×)Ñ)¨"¨d°I¸vÓFÐFð  ×,Ò,Ñ5GðÜ §
¡
Ó+×<Ñ<¸T¿Z¹ZÈÓN�Ø×FÑFÀrÈ4ÐQWÓX�Ü&×,Ñ,¨R°¸6ÓBÐBð
 ×,Ñ,Ó.ˆ
Ü�j¤%×"4Ñ"4Õ5àÔ9Ñ9Ü˜t¤Y×%LÑ%LÔMÜ˜4Ÿ:™:×1Ñ1´4Ô8Ü˜4Ÿ:™:×.Ñ.´Ô5Ü˜4Ÿ:™:×.Ñ.´Ô5à×;Ñ;¸BÀÓE‘à!�
Ø—;’;Ü!+¨D¯K©K¸Ó!G�JÜ×2Ñ2Ø ¨Zôç‘- ¤Y×%?Ñ%?×%FÑ%FÀtÓ%LÐ$MÈrÓRð ð �{Š{˜z¬U¯X©X¯_©_×-HÑ-HÑHÜØä!×?Ñ?Ü!×2Ñ2ðôð ×2Ñ2Ü" 4×#BÑ#BÓ#DÀdÓKôð ˆJàÐ#ÜØKØ! $§*¡* ¨W°T°F¸-È
À|ÐTØ?À
¸|ÐKgÐhl×hrÑhrÐgsð t0Ø04¨v°Qð8ð Jðõô 	!ÜØØ”d˜4Ÿ:™:Ó&×/Ñ/Ð0Ð0KÈDÈ6ÐQRÐSÐTö	
øô_ "ò Úðús   ÊAT' Ô'	T4Ô3T4c                 óŠ  — | j                   rŒt        j                  t        | j                  «      d«      }| j
                  rt        | j
                  d«      nd }	 t        j                  || |¬«      j                  |t        j                  ||«      gi «      S | j                  ||«      S # t        $ r t        |«       Y Œ(w xY w)NrO  rV  )r¢  r§   r»   r    r£   rÍ   r#   r   rl  rm  rM   rE  r   r   r  )r½   rÑ   r¹   Úgetattribute_fnr  s        rn   rw  z%UserDefinedObjectVariable.var_getattr#  s½   € ð ×(Ò(Ü%×4Ñ4Ü�T—Z‘ZÓ Ð"4óˆOð @D¿{º{”
˜4Ÿ;™;Ð(:Ô;ÐPTð ð.Ü ×3Ñ3Ø#ØØ%ô÷  ‘- ¤_×%:Ñ%:¸2¸tÓ%DÐ$EÀrÓJð	Kð ×#Ñ# B¨Ó-Ð-øô	 *ò .ä)¨"Ö-ð.ús   Á=B+ Â+CÃCrG  rÍ   c           
      ób  — t        |t        «      ri| j                  |«      sX| j                  r| j	                  ||«      }t        j                  ||¬«      }|j                  || | j                  |d«      «      S t        |t        j                  «      rê|j                  j                  j                  | |t        j                  «      r{|j                  j                  j!                  | |d¬«      }t        |t
        j"                  «      r7t%        t&        |dt)        | j*                  «      j,                  › d|› d�g¬«       |S t        j.                  ||¬«      }|j                  || | j                  |d«      «      S t        |t        j0                  «      rê|j                  j                  j                  | |t        j                  «      r{|j                  j                  j!                  | |d¬«      }t        |t
        j"                  «      r7t%        t&        |dt)        | j*                  «      j,                  › d|› d�g¬«       |S t        j2                  ||¬«      }|j                  || | j                  |d«      «      S t        |t4        j6                  «      r:t        j8                  ||¬«      }	|	j                  || | j                  |d«      «      S t;        j<                  t)        |«      dd	«      }
t        |
t        j>                  «      r| jA                  ||||«      S 	 t)        | j*                  «      jC                  | j*                  |«      }tE        jF                  ||«      S # t&        $ r: t%        t&        |dt)        | j*                  «      j,                  › d|› d�g¬«       Y ŒYw xY w)
zMHandle data descriptors found on the type MRO (property, _tuplegetter, etc.).rV  rË   Tr½  rX  r°  rY  r¯   N)$r	  rƒ  rï  rÍ   r;  r   r†  re  rw  rb  r‡  r*  r]  r^  rI   rþ  r_  r“  r   r¼   r    r£   r�   rˆ  rÂ  ÚGetSetDescriptorVariabler‰  rŠ  r‹  r§   r»   rk  Úinvoke_descriptor_getrO  rM   rE  )r½   rÑ   r¹   rG  rÍ   Úprop_vtrÞ   rt  Úgs_vtr•  r–  r|  s               rn   rý  z1UserDefinedObjectVariable.resolve_data_descriptor:  s6  € ô �i¤Ô*°4×3NÑ3NØô4
ð �{Š{Ø×7Ñ7¸¸DÓA�Ü×0Ñ0°À6ÔJˆGØ×,Ñ,Ø�D˜$×*Ñ*¨2¨{Ó;óð ô �i¤×!;Ñ!;Ô<Ø�y‰y×%Ñ%×BÑBØ�dÔ,×<Ñ<ôð Ÿ™×/Ñ/×9Ñ9¸$ÀÐQUÐ9ÓV�Ü˜f¤i×&?Ñ&?Ô@Ü,Ü&Øà¤ T§Z¡ZÓ 0× 9Ñ 9Ð:Ð:UÐVZÐU[Ð[\Ð]ðõð �Ü×6Ñ6°yÈÔPˆEØ×*Ñ*¨2¨t°T×5EÑ5EÀbÈ+Ó5VÓWÐWä�i¤×!;Ñ!;Ô<Ø�y‰y×%Ñ%×BÑBØ�dÔ,×<Ñ<ôð Ÿ™×/Ñ/×9Ñ9¸$ÀÐQUÐ9ÓV�Ü˜f¤i×&?Ñ&?Ô@Ü,Ü&Øà¤ T§Z¡ZÓ 0× 9Ñ 9Ð:Ð:UÐVZÐU[Ð[\Ð]ðõð �Ü×6Ñ6°yÈÔPˆEØ×*Ñ*¨2¨t°T×5EÑ5EÀbÈ+Ó5VÓWÐWä�i¤×!:Ñ!:Ô;Ü×1Ñ1°)ÀFÔKˆEØ×*Ñ*¨2¨t°T×5EÑ5EÀbÈ+Ó5VÓWÐWä×'Ñ'¬¨Y«¸ÀDÓIˆÜ�fœe×0Ñ0Ô1à×-Ñ-¨b°$¸	À6ÓJÐJð
		Ü˜DŸJ™JÓ'×8Ñ8¸¿¹ÀTÓJˆHô ×$Ñ$ R¨°6Ó:Ð:øô ò 	Ü$ÜØàœ˜TŸZ™ZÓ(×1Ñ1Ð2Ð2MÈdÈVÐSTÐUð÷ð	ús   Ì%/M+ Í+A N.Î-N.c                 ó^  — ddl m} ||u s&|t        j                  j                  j
                  u r|}| j                  duxr | j                  du}t        |t        «      rN|r| j                  ||«      }t        j                  ||¬«      }|j                  || | j                  |d«      «      S t        |t        «      rN|r| j                  ||«      }t        j                   ||¬«      }|j                  || | j                  |d«      «      S t        |t"        j$                  «      r:t        j&                  ||¬«      }	|	j                  || | j                  |d«      «      S t        |t"        j(                  «      r=| j                  |d«      }
t        j*                  ||
|¬«      }|j                  || |
«      S t        |t"        j,                  «      r=| j                  |d«      }
t        j.                  ||
|¬«      }|j                  || |
«      S t1        |«      rt        j2                  |d| |¬«      S t        |t"        j4                  «      rdt7        |d«      r)|j8                  }|rt;        |d«      nd}t7        |d«      rŒ)d}|r| j                  ||«      }t        j<                  || ||¬	«      S t?        j@                  tC        |«      d
d«      }t        |t"        j4                  «      r| jE                  ||||«      S t        jF                  jH                  jJ                  jM                  |«      stO        |«      r"t        jP                  | |tC        |«      |¬«      S |r| j                  ||«      }n$|s"| j                  �t;        | j                  |«      }tS        jT                  |||«      S )zIHandle non-data descriptors and plain class attributes from the type MRO.r   r�  NrV  rË   rU  Ú__wrapped__Ú_torchdynamo_inliner  r¯   )+r™  rŽ  rë   rØ  rš  rÈ   r•  rÍ   r	  r  r;  r   r€  re  rw  r�  r…  rb  rh  ri  rc  rd  rf  rg  r5   ÚWrapperUserMethodVariablerk  rj   r  r#   rl  r§   r»   r    r  rÀ  r=  r�  rÞ  r¢   rj  rM   rE  )r½   rÑ   r¹   rG  rÍ   rŽ  Úcan_use_mro_sourcer’  r”  ru  Úclass_vtrs  rt  Ú
var_sourcer–  s                  rn   rß  z+UserDefinedObjectVariable.resolve_type_attr‰  sI  € õ 	>ð Ð1Ñ1ØœEŸH™HŸO™O×4Ñ4Ñ4à0ˆIà!Ÿ_™_°DÐ8ÒT¸T¿[¹[ÐPTÐ=TÐä�i¤Ô.ñ "Ø×7Ñ7¸¸DÓA�Ü×2Ñ2°9ÀVÔLˆEØ×*Ñ*¨2¨t°T×5EÑ5EÀbÈ+Ó5VÓWÐWÜ˜	¤;Ô/ñ "Ø×7Ñ7¸¸DÓA�Ü×1Ñ1°)ÀFÔKˆEØ×*Ñ*¨2¨t°T×5EÑ5EÀbÈ+Ó5VÓWÐWÜ˜	¤5×#BÑ#BÔCÜ×<Ñ<¸YÈvÔVˆFØ×+Ñ+¨B°°d×6FÑ6FÀrÈ;Ó6WÓXÐXÜ˜	¤5×#>Ñ#>Ô?Ø×'Ñ'¨¨KÓ8ˆHÜ×7Ñ7Ø °&ôˆEð ×*Ñ*¨2¨t°XÓ>Ð>Ü˜	¤5×#=Ñ#=Ô>Ø×'Ñ'¨¨KÓ8ˆHÜ×6Ñ6Ø °&ôˆEð ×*Ñ*¨2¨t°XÓ>Ð>Ü*¨9Ô5Ü×6Ñ6Ø˜=¨$°vôð ô ˜	¤5×#5Ñ#5Ô6Ü˜)Ð%:Ô;Ø%×9Ñ9�	ÙFLœ FÐ,AÔBÐRV�ô ˜)Ð%:Õ;ð ˆJÙ!Ø!×;Ñ;¸BÀÓE�
Ü×/Ñ/Ø˜4¨:¸fôð ô ×'Ñ'¬¨Y«¸ÀDÓIˆÜ�fœe×0Ñ0Ô1Ø×-Ñ-¨b°$¸	À6ÓJÐJô
 �H‰H×Ñ×"Ñ"×4Ñ4°YÔ?Ü! )Ô,ä×,Ñ,¨T°4¼¸i»ÐQWÔXÐXñ Ø×3Ñ3°B¸Ó=‰FÙ˜DŸO™OÐ7Ü §¡°Ó6ˆFÜ×$Ñ$ R¨°FÓ;Ð;rp   r2  c                 óp  — d}d}| j                   r?| j                  ||«      }t        t        |«      d«      }t	        j
                  |||«      }nt        |«      }t        t        | j                  «      «      }t        j                  |j                  j                  ||¬«      j                  || |gi «      S )z3Trace a descriptor's __get__(instance, owner) call.Nr¯   rV  )r•  r;  r#   r+   rM   rE  r™  rÄ   r    r£   r   rl  r¯   r‚  rm  )	r½   rÑ   r¹   r2  rÍ   r‘  rš  r›  Ú	owner_vars	            rn   r  z/UserDefinedObjectVariable.invoke_descriptor_getÞ  s¬   € ð !ÐØ $ÐØ�?Š?Ø $× >Ñ >¸rÀ4Ó HÐÜ$.¬zÐ:KÓ/LÈiÓ$XÐ!Ü,×2Ñ2°2°zÐCTÓU‰Nä6°zÓBˆNä,¬T°$·*±*Ó-=Ó>ˆ	Ü×+Ñ+Ø×Ñ×'Ñ'ØØ(ô
÷ ‰-˜˜T 9Ð-¨rÓ
2ð		3rp   c                 ó6  — |r–t        | t        j                  «      r||j                  j                  r$t
        j                  j                  j                  rB|dv r-| j                  €t        d«      ‚t        | j                  |«      }| j                  |«      }|S )zCWrap source for nn.Module instance dict attribute access if needed.)r  r  z7source must not be None for _buffers/_parameters access)r	  r   r  r*  rÊ  rë   r=  r   Úinstall_free_tensorsrÍ   r$  r,   Ú_wrap_source)r½   rÑ   r¹   rÍ   s       rn   r   zBUserDefinedObjectVariable.maybe_wrap_nn_module_source_for_instanceö  s€   € ñ Ü˜4¤×!HÑ!HÔIØ—Y‘Y×%Ò%¬¯©×)=Ñ)=×)RÒ)RàÐ2Ñ2Ø—;‘;Ð&Ü(ØQóð ô 8¸¿¹ÀTÓJ�Ø×&Ñ& vÓ.ˆFØˆrp   ry   c                 óž  — | j                   rGt        | j                   j                  t        j                  t
        j                  |¬«      «      «       	 | j                  ||«      }t        j                  |t        |t        j                  «       «      S # t        $ r- t        |«       t        j                  j!                  d«      cY S w xY w)Nrm  F)rÍ   r"   rÓ   r,  r-  r!   rn  rw  rM   rE  r	  r   r“  r   r   ry   rÛ   )r½   rÑ   r¹   Úvar_vts       rn   ro  z*UserDefinedObjectVariable.call_obj_hasattr  sª   € ð �;Š;ÜØ—‘×&Ñ&Ü×%Ñ%¤l×&:Ñ&:ÀÔFóôð	<Ø×%Ñ% b¨$Ó/ˆFÜ"×(Ñ(Øœ
 6¬9×+DÑ+DÓEÐEóð øô &ò 	<Ü% bÔ)Ü×-Ñ-×4Ñ4°UÓ;Ò;ð	<ús   ÁA B Â3CÃCc                 óD   — t        | j                  «      j                  d uS r   )r    r£   ri   rÏ   s    rn   r¶   z%UserDefinedObjectVariable.is_hashable  s   € ô �D—J‘JÓ×(Ñ(°Ð4Ð4rp   c           	      ó  — ddl m} t        | j                  «      }|j                  D �]ú  }d|j
                  vrŒ|j
                  d   }|€ ||d|j                  › d�«       |t        u r �n¸t        |t        j                  «      �r'| j                  |d|d ¬«      }|j                  |g i «      }ddlm} t        ||«      r|j                  «       d	fc S t        |t         j"                  «      rt%        |j'                  «       «      d
fc S 	 |j)                  «       }	|	�1t-        |	t$        «      s!t/        t0        |d|	j                  › d�g¬«       |j3                  «       s:t5        dd| › �dt        |«      j                  › d�dgt6        j8                  ¢¬«       |j                  «       d
fc S 	 |t;        «       v }
|j<                  dk(  s|
st?        | j                  «      r nAt5        dd| › �|j                  › d�d|j                  › d�gt6        j@                  ¢¬«       �Œý | jB                  �| jB                  jE                  |«      S tG        | j                  «      d
fS # t*        $ r d }	Y �ŒSw xY w# t0        $ r d
}
Y ŒÆw xY w)Nr   )r   ri   zunhashable type: 'rX  rV  rF   )ÚFakeIdVariableTFz/__hash__ method should return an integer, not 'rY  zNon-constant __hash__ returnz
hash_impl z!__hash__ returned a non-constant r  z=Ensure that your custom __hash__ function returns an integer.rP  r  zUntraceable C tp_hashz4 defines a C __hash__ that Dynamo cannot trace into.úUse torch._dynamo.allow_c_slot(zA) to register it as safe if its slots are pure and deterministic.)$rj  r   r    r£   r  r¦   r�   r€   r	  rb  rk  rß  rm  rÚ   r%  rá   r   ÚSymNodeVariabler  Úevaluate_exprr¶  rÔ   r
  r   rµ   r4  r   r   r#  rs   r¿   r7   r[  rN  rÖ   r´   )r½   rÑ   r   Úobj_typeÚclsÚ	type_hashrà  rÞ   r%  Úresult_typeÚin_allowlists              rn   rÖ   z#UserDefinedObjectVariable.hash_impl$  s®  € õ
 	+ä˜Ÿ
™
Ó#ˆð ×#Ñ#ó F	ˆCØ §¡Ñ-ØØŸ™ ZÑ0ˆIØÐ Ù  Ð'9¸(×:KÑ:KÐ9LÈAÐ%NÔOØ”f‰}âÜ˜)¤U×%7Ñ%7Õ8à!×3Ñ3Ø˜
 I°dð 4ó �
ð $×1Ñ1°"°b¸"Ó=�Ý4ä˜f nÔ5Ø!×4Ñ4Ó6¸Ð<Ò<Ü˜f¤i×&?Ñ&?Ô@Ü˜v×3Ñ3Ó5Ó6¸Ð=Ò=ð'Ø"(×"4Ñ"4Ó"6�Kð Ð*´:¸kÌ3Ô3OÜ,Ü!Øð$Ø$/×$8Ñ$8Ð#9¸ð<ðõð ×0Ñ0Ô2Ü!Ø >Ø",¨T¨FÐ 3Ø&GÜ ›<×0Ñ0Ð1°ð%4ð \ðä.×9Ñ9ðõ	ð ×0Ñ0Ó2°EÐ9Ò9ð%Ø(Ô,AÓ,CÐC�ð —‘ *Ò,ÙÜ*¨4¯:©:Ô6ñ ÜØ/Ø$ T FÐ+Ø"Ÿ|™|˜nð -,ð -ð 6°c·l±l°^ð D%ð &ðô '×2Ñ2ð	÷ðwF	ðP �=‰=Ð$Ø—=‘=×*Ñ*¨2Ó.Ð.ô �D—J‘JÓ Ð&Ð&øôi +ò 'Ø"&“Kð'ûô2 ò %Ø$’ð%ús$   ÄI$Æ1I6É$I3É2I3É6JÊJrØ   c           	      ó  — ddl m} ddlm} t	        | j
                  «      }|j                  D �]u  }||j                  vrŒ|t        u r �n[|j                  |   }t        |t        j                  «      rS| j                  |||d¬«      }	|	�:ddlm}
 |
j                  |	dd	„ «      5  |	j                  ||gi «      cddd«       c S  nß| j                   � nÑd
}	 |t#        «       v }|j&                  dk(  s|st)        | j
                  «      rX|j+                  «       }|t,        ur(	  || j
                  |«      } |j.                  |«      c S  |j.                  t2        «      c S t5        dd| › d|› �|j6                  › d�d|j6                  › d�gt8        j:                  ¢¬«       �Œx | j                   �| j                   j=                  |||«      S  || |||«      S # 1 sw Y   �ŒxY w# t$        $ r Y �Œw xY w# t0        $ r Y Œ¸w xY w)z�MRO walk for tp_richcompare, analogous to slot_tp_richcompare.

        https://github.com/python/cpython/blob/3.13/Objects/typeobject.c#L9421-L9468
        rF   rx   )Úobject_richcompareNrV  r   )ÚpatchÚ should_allow_nested_graph_breaksc                   ó   — yr°  rr   rr   rp   rn   ú<lambda>z<UserDefinedObjectVariable.richcompare_impl.<locals>.<lambda>Ÿ  s   � rp   Fr  zUntraceable C tp_richcomparezrichcompare_impl ú z= defines a C comparison method that Dynamo cannot trace into.r&  zN) to register it as safe if its comparison methods are pure and deterministic.rP  )rÚ   ry   rì  r/  r    r£   r  r¦   r€   r	  rb  rk  rß  Úunittest.mockr0  rm  rN  ro   rµ   r¿   r7   r}  rK   rÛ   rÝ   rÜ   r   r�   r   r[  rß   )r½   rÑ   r×   rØ   ry   r/  r)  r*  rò  r|  r0  r-  rL  rÞ   s                 rn   rß   z*UserDefinedObjectVariable.richcompare_impl}  s'  € õ 	/Ý7ä˜Ÿ
™
Ó#ˆà×#Ñ#ó ?	ˆCØ˜Ÿ™Ñ%Øà”f‰}Úà—\‘\ "Ñ%ˆFä˜&¤%×"4Ñ"4Ô5Ø×1Ñ1°"°b¸&ÈÐ1ÓN�ØÐ'õ 4àŸ™Ø Ð"DÁmóñ Gð  (×5Ñ5°b¸5¸'À2ÓF÷Gó Gñ ð �}‰}Ð(Ùà ˆLðØ%¬«Ð8�ð —‘ *Ò,ÙÜ*¨4¯:©:Ô6à!×>Ñ>Ó@�	Ø¤NÑ2ðÙ!'¨¯
©
°IÓ!>˜Ø6Ð/×6Ñ6°vÓ>Ò>ð /Ð'×.Ñ.¬~Ó>Ò>ÜØ6Ø+¨D¨6°°2°$Ð7Ø"Ÿ|™|˜nð -1ð 2ð 6°c·l±l°^ð D)ð *ðô '×2Ñ2ð	÷ði?	ðB �=‰=Ð$Ø—=‘=×1Ñ1°"°e¸RÓ@Ð@á! $¨¨E°2Ó6Ð6÷_Gñ Gûô  ò Úðûô %ò Ùðús0   Â&GÃG(Ä$$G8ÇG%	Ç(	G5Ç4G5Ç8	HÈHc                 óö   — t        |t        «      rA| j                  «       r1|j                  «       r!| j                  «       |j                  «       k(  S t        |t        «      sy| j
                  |j
                  u S r°  )r	  rM   r4  rá   r¸   r£   rt  s     rn   ru  z)UserDefinedObjectVariable.is_python_equalÏ  sb   € ä�uœoÔ.Ø×'Ñ'Ô)Ø×(Ñ(Ô*à×*Ñ*Ó,°×0HÑ0HÓ0JÑJÐJä˜%Ô!4Ô5ØØ�z‰z˜UŸ[™[Ð(Ð(rp   c                 ó`  — t        t        |dd«      dd«      }|j                  d«      }|rŠ	 ddl}ddlm}	 | j
                  |	v xs8 |j                  | j
                  «      xs |j                  | j
                  «      }
|
s4|j                  d«      }|�!	 |j                  «       }|| j
                  f|	v }
n[ddlmc m} | j
                  |j(                  v xs8 |j                  | j
                  «      xs |j                  | j
                  «      }
|
s|j+                  || g|¢i «      S | j                  |||||«      S # t        $ r | j                  |||||«      cY S w xY w# t        $ rB ddl}|j                  t        «      }|j!                  d	«       | j                  |||||«      cY S w xY w)
aE  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.
        rW  Nr¿   ry  Úoptreer   ©Ú_NODETYPE_REGISTRYÚ	namespacezYFailed to import optree.registry._NODETYPE_REGISTRY, falling back to tracing for tree_map)rk   rŒ  r8  Úoptree.registryr:  r”  Úis_namedtuple_classr   r–   rá   rÔ   Ú_tree_map_fallbackr‘   ÚloggingÚ	getLoggerr�   Úwarningrœ  r�  rž  ÚSUPPORTED_NODESrm  )r½   rÑ   Útree_map_fnÚmap_fnÚrestÚtree_map_kwargsÚtree_map_moduleÚ	is_optreer8  r:  Úis_registeredÚnamespace_varr;  r?  Úlogr£  s                   rn   Úcall_tree_map_branchz.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¯_©_Ó=ð ñ Ø×'Ñ'¨¨T¨M°D¨M¸2Ó>Ð>ð
 ×&Ñ&ØØØØØó
ð 	
øôW  3ò à#'×#:Ñ#:Ø "Ø +Ø &Ø $Ø /ó$ò ðûô ò ãà×'Ñ'¬Ó1�Ø—‘ð;ôð ×.Ñ.ØØØØØ#óò ðús1   ­A'E" Â D> Ä>EÅE" ÅEÅE" Å"AF-Æ,F-c           	      ó|  — |j                  «       }|j                  d«      }|rŠ	 ddl}	ddlm}
 | j
                  |
v xs8 |	j                  | j
                  «      xs |	j                  | j
                  «      }|s4|j                  d«      }|�!	 |j                  «       }|| j
                  f|
v }n[ddlmc m} | j
                  |j                   v xs8 |j                  | j
                  «      xs |j                  | j
                  «      }|sNt#        j$                  |D �cg c]  }t'        j(                  ||«      ‘Œ c}«      }|j+                  ||| g|¢i «      S | j                  ||||||«      S # t        $ r | j                  ||||||«      cY S w xY w# t        $ r | j                  ||||||«      cY S w xY wc c}w )zšEmulate tree_map_with_path behavior for user-defined objects.

        Same logic as call_tree_map_branch but passes keypath to the map function.
        r8  r   Nr9  r;  )Ú
get_modulerŒ  r8  r<  r:  r”  r=  r   r–   rá   rÔ   Ú_tree_map_with_path_fallbackr‘   rœ  r�  rž  rB  r   r|   rM   rE  rm  )r½   rÑ   rC  rD  rE  rF  ÚkeypathrG  rH  r8  r:  rI  rJ  r;  r£  rS  Úkeypath_vars                    rn   Úcall_tree_map_with_path_branchz8UserDefinedObjectVariable.call_tree_map_with_path_branch<  sô  € ð &×0Ñ0Ó2ˆØ#×.Ñ.¨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¯_©_Ó=ð ñ Ü#×1Ñ1Ø7>Ö?°!”×&Ñ& r¨1Õ-Ò?óˆKð ×'Ñ'¨¨[¸$Ð,FÀÐ,FÈÓKÐKà×0Ñ0ØØØØØØó
ð 	
øôC  3ò Ø#'×#DÑ#DØ "Ø +Ø &Ø $Ø /Ø 'ó$ò ðûô ò Ø×8Ñ8ØØØØØ#Øóò ðüò( @s6   ¥A'F Â E/ ÄF9Å/FÆF ÆFÆF ÆF6Æ5F6)rÑ   rw   rW   rz   )rÑ   rw   rW   zVariableTracker | None)rW   Nr  ©rÑ   rw   rC  ú(variables.functions.UserFunctionVariablerD  rM   rE  úlist[VariableTracker]rF  údict[str, VariableTracker]rW   rM   ©rÑ   rw   rC  rT  rD  rM   rE  rU  rF  rV  rP  ztuple[Any, ...]rW   rM   )sr�   r¿   rÀ   Ú__doc__rN  rM   rÁ   r“  r  r   r¸   Ú_nonvar_fieldsr€   r    r+   r  rÈ   rÂ   r©  ré   r®  r€  r²  rx  r¶  r}  rá   rä   rÑ  r  r   rÖ  rB  rH  rã  rç  rê  r¶  r»  r¿  rñ  rõ  r   r  r÷  r¯  rû  r²  r  r,  r9  r  r  r	  r  rÃ  r�  r  r  r#  r*  r/  r5  r;  r>  rM  rD  rI  rM  rS  rV  r[  r_  re  rh  rk  rp  rs  rx  r{  r€  rƒ  rˆ  r@  r£  r¦  r¤  r§  rª  r’  rÑ  rô  rÔ  rm  rë  rï  ró  rÕ  rø  r%   r;  r  rw  rý  rß  r  r   ro  r¶   rÖ   rß   ru  rL  rR  r‚  rƒ  s   @rn   r™  r™  L  s  ø… ñð (,€Hˆo Ñ$Ó+ð &*€M�3�s‘8˜d‘?Ó)ð 	Øðð 
×	+Ñ	+ð€Nð #'Ø(,Ø.2Ø26ò.Làð.Lð ˜4‘Kð	.Lð
  Ñ%ð.Lð % tÑ+ð.Lð ˜Ñ(¨4Ñ/ð.Lð ð.Lð 
õ.Lð`	5˜ó 	5ðH˜#ó Hóð
°ð À$ó ò

ð˜Tó ð¨fó ð), Fõ ),ðV"˜&õ "ð2¨&õ 2ð >ò!à'ð!ð ð!ð
 ð!ð 
ˆv�v ‘}Ð$Ñ	%ó!ð"à'ðð 
"óð2<à'ð<ð 
õ<ð|à'ðð 
õð0à'ðð 
õð*à'ðð 
õð*7à'ð7ð 
ó7ð,7à'ð7ð 
ó7ð.7à'ð7ð 
ó7ó0ð/Ð:ð /¸ó /ð
à'ð
ð ð
ð ð	
ð
 �s‰mð
ð �S˜#�X‘ð
ð 
ó
ð*-Ø-ð-Ø5Dð-à	õ-ð ,Ð#>ð ,À?õ ,ð(Ð:ð (¸õ (ð$ Ø‡_�_ð¨¨S©ò ó ó ðð2à'ð2ð ð2ð 
õ	2ð&1à'ð1ð ð1ð 
õ	1ð9à'ð9ð ð9ð 
õ	9ð=à'ð=ð ð=ð  Ñ%ð	=ð
 
õ=ð2 -Ðð.<à'ð.<ð ð.<ð �?Ñ#ð	.<ð
 
ó.<ð`mAà'ðmAð ðmAð ð	mAð
 ðmAð ðmAð ðmAð 
ómAðf ñ	
à'ð
ð ð
ð ð	
ð
 
ó
ð& ñ	
à'ð
ð ð
ð ð	
ð
 
ó
ð @à'ð@ð ð@ð 
ó	@ð ñ	
à'ð
ð ð
ð ð	
ð
 
ó
ð @à'ð@ð ð@ð 
ó	@ð ñ	
à'ð
ð ð
ð ð	
ð
 
ó
ð <à'ð<ð ð<ð 
ó	<ð ñ	
à'ð
ð ð
ð ð	
ð
 
ó
ð =à'ð=ð ð=ð 
ó	=ð ñ	
à'ð
ð ð
ð ð	
ð
 
ó
ð =à'ð=ð ð=ð 
ó	=ð ñ	
à'ð
ð ð
ð ð	
ð
 
ó
ð =à'ð=ð ð=ð 
ó	=ð ñ	
à'ð
ð ð
ð ð	
ð
 
ó
ð =à'ð=ð ð=ð 
ó	=ð=à'ð=ð ð=ð 
ó	=ð ñ	
à'ð
ð ð
ð ð	
ð
 
ó
ð Bà'ðBð ðBð 
ó	Bð ñ	
à'ð
ð ð
ð ð	
ð
 
ó
ð Aà'ðAð ðAð 
ó	Að ñ	
à'ð
ð ð
ð ð	
ð
 
ó
ð =à'ð=ð ð=ð 
ó	=ð ñ	
à'ð
ð ð
ð ð	
ð
 
ó
ð _;à'ð_;ð ð_;ð �3‰ið	_;ð
 �S˜#�X‘ð_;ð 
õ_;ðB:Ø-ð:Ø6Eð:à	ó:ð3Ø-ð3Ø6Eð3à	ó3ð
Ð6ð 
¸?ó 
ð.!Ð7ð !¸Oó !ð!Ð7ð !¸Oó !ðr à'ðr ð ðr ð ð	r ð
 
ór ðh: Dó :ð
)Ø-ð)à	ˆoÑ	ó)ð
 Tó ð>7à'ð>7ð �?Ñ#ð>7ð �S˜/Ð)Ñ*ð	>7ð
 
õ>7ð@. Fó .ð
C¨Vð 
C¸ó 
Cð$ Cð $¨Fó $ðL¨#ð °&ó ð(
*Ø-ð
*Ø47ð
*à	ó
*ðO
Ø-ðO
Ø58ðO
à	óO
ðbd
Ø-ðd
Ø58ðd
à	ód
ðL.Ø-ð.Ø58ð.à	ó.ð.M;à'ðM;ð ðM;ð ð	M;ð
 ˜‘ðM;ð 
óM;ð^S<à'ðS<ð ðS<ð ð	S<ð
 ˜‘ðS<ð 
óS<ðj3à'ð3ð ð3ð ð	3ð
 ˜‘ð3ð 
ó3ð0à'ðð ðð ˜‘ð	ð
 
�$‰óð*<Ø-ð<Ø58ð<à	ó<ð&5˜Tó 5ðW'Ð7ð W'¸EÀ#ÀtÀ)Ñ<Ló W'ðrP7Ø-ðP7Ø6EðP7ØKNðP7à	óP7ðd
) Vð 
)°ó 
)ð_
à'ð_
ð @ð_
ð "ð	_
ð
 &ð_
ð 6ð_
ð 
ó_
ðBL
à'ðL
ð @ðL
ð "ð	L
ð
 &ðL
ð 6ðL
ð #ðL
ð 
÷L
rp   r™  c                   óv   — e Zd ZdZdedefd„Zdefd„Zdefd„Z	dd„Z
defd	„Zd
ddeeef   fd„Zdedefd„Zy)ÚFrozenDataClassVariablea  Frozen dataclass variable for as_proxy/as_python_constant/hashability.

    Construction is handled by the generic polyfill path (tracing through
    the auto-generated __init__). Field values are retrieved dynamically
    via var_getattr using InstructionTranslator.current_tx().
    Ú
field_namerW   c                 óR   — ddl m} |j                  «       }| j                  ||«      S )Nr   r»  )rÈ  r¼  rÉ  rw  )r½   r\  r¼  rÑ   s       rn   Ú_get_field_vtz%FrozenDataClassVariable._get_field_vt“  s&   € ÝHà"×-Ñ-Ó/ˆØ×Ñ  JÓ/Ð/rp   c                 ó.  — ddl m} dd lmc m} t        | j                  |j                  |j                  |j                  f«      st        d«      ‚t        | j                  |j                  «      r|j                  «       S g }i } || j                  «      D ]f  }|j                  sŒ| j                  |j                  «      j                  «       }t!        |dd«      r|||j                  <   ŒV|j#                  |«       Œh  | j%                  «       |i |¤ŽS )Nr   ©Úfieldsz@currently can't reconstruct arbitrary frozen dataclass instancesÚkw_onlyF)r©   ra  rœ  r�  rž  r:   r£   ÚTreeSpecÚLeafSpecÚConstantNoderÔ   Útreespec_leafÚinitr^  r¹   rá   rk   r�   r¶  )r½   ra  r£  rZ  rÅ   ÚfieldÚdatas          rn   rá   z*FrozenDataClassVariable.as_python_constant™  sï   € Ý&ç,Ð,äØ�J‰J˜Ÿ™¨&¯/©/¸6×;NÑ;NÐOô
ô &ØRóð ô �$—*‘*˜fŸo™oÔ.Ø×'Ñ'Ó)Ð)àˆØ$&ˆÙ˜DŸJ™JÓ'ò 	&ˆEØ�z‹zØ×)Ñ)¨%¯*©*Ó5×HÑHÓJ�Ü˜5 )¨UÔ3Ø)-�F˜5Ÿ:™:Ò&à—K‘K Õ%ð	&ð "ˆt×ÑÓ! 4Ð2¨6Ñ2Ð2rp   c                 ó4  — ddl m} g }i } || j                  «      D ]d  }| j                  |j                  «      j                  «       }t        |d«      r|j                  r|||j                  <   ŒT|j                  |«       Œf  | j                  «       |i |¤ŽS )Nr   r`  rb  )
r©   ra  r£   r^  r¹   rä   rj   rb  r�   r¶  )r½   ra  rZ  rÅ   rh  rÕ  s         rn   rä   z FrozenDataClassVariable.as_proxy´  s‹   € Ý&àˆØ$&ˆÙ˜DŸJ™JÓ'ò 	#ˆEØ×&Ñ& u§z¡zÓ2×;Ñ;Ó=ˆEÜ�u˜iÔ(¨U¯]ª]Ø%*��u—z‘zÒ"à—‘˜EÕ"ð	#ð "ˆt×ÑÓ! 4Ð2¨6Ñ2Ð2rp   Nc                 óž   — | j                   � || j                   «       y |j                  |j                  | j                  «       «      «       y r   )rÍ   Úappend_outputÚcreate_load_const_uncheckedrá   ry  s     rn   Úreconstructz#FrozenDataClassVariable.reconstructÂ  s@   € Ø�;‰;Ð"Ù�D—K‘KÔ ØØ×ÑØ×/Ñ/°×0GÑ0GÓ0IÓJõ	
rp   c                 ób   — | j                   j                  › d| j                  j                  › d�S ræ   r«  rÏ   s    rn   ré   z FrozenDataClassVariable.__repr__Ê  r¬  rp   rÑ   rw   c                 ó  — ddl m} ddlm} ddlm} d}g } || j                  «      D ]D  } ||| j                  |j                  «      «      \  }}	|xs |	}|j                   ||«      «       ŒF t        t        |«      «      |fS )Nr   r`  rF   )ÚRawHash)Úgeneric_hash_implF)r©   ra  Úhashablerq  rì  rr  r£   r^  r¹   r�   r´   r  )
r½   rÑ   Ú	dc_fieldsrq  rr  Úis_fakeÚ
raw_hashesÚfÚhÚfakes
             rn   rÖ   z!FrozenDataClassVariable.hash_implÍ  s€   € õ
 	4å%Ý6àˆØˆ
Ù˜4Ÿ:™:Ó&ò 	*ˆAÙ'¨¨D×,>Ñ,>¸q¿v¹vÓ,FÓG‰GˆAˆtØ’o ˆGØ×Ñ™g a›jÕ)ð	*ô ”E˜*Ó%Ó&¨Ð/Ð/rp   r×   c                 óÀ   ‡ ‡— t        ‰t        «      sy‰ j                  «       ‰j                  «       uryddlm} t        ˆˆ fd„ |‰ j                  «      D «       «      S )NFr   r`  c              3   ó¤   •K  — | ]G  }‰j                  |j                  «      j                  ‰j                  |j                  «      «      –— ŒI y ­wr   )r^  r¹   ru  )r  rw  r×   r½   s     €€rn   r  z:FrozenDataClassVariable.is_python_equal.<locals>.<genexpr>æ  sB   øè ø€ ò 
àð ×Ñ˜qŸv™vÓ&×6Ñ6°u×7JÑ7JÈ1Ï6É6Ó7R×Sñ
ùs   ƒAA)r	  r[  r¶  r©   ra  rC  r£   )r½   r×   rt  s   `` rn   ru  z'FrozenDataClassVariable.is_python_equalß  sT   ù€ Ü˜%Ô!8Ô9ØØ×ÑÓ U×%6Ñ%6Ó%8Ñ8ØÝ3äô 
á˜tŸz™zÓ*ô
ó 
ð 	
rp   ©rz  rt   rW   N)r�   r¿   rÀ   rX  rÂ   rM   r^  r€   rá   rä   rn  ré   r  r  r€  rÖ   ru  rr   rp   rn   r[  r[  ‹  su   „ ñð0¨ð 0°ó 0ð3 Fó 3ð63˜&ó 3ó
ðH˜#ó Hð0Ð7ð 0¸EÀ#ÀtÀ)Ñ<Ló 0ð$

 Vð 

°ô 

rp   r[  c            
       óX   ‡ — e Zd Zdededdfˆ fd„Zddded	ee   de	eef   def
d
„Z
ˆ xZS )ÚSourcelessGraphModuleVariabler£   rÅ   rW   Nc                 ó&   •— t        ‰| �  |fi |¤Ž y r   ©rÇ   rÈ   rÊ   s      €rn   rÈ   z&SourcelessGraphModuleVariable.__init__í  s   ø€ ô
 	‰Ñ˜Ñ) &Ó)rp   rÑ   rw   r¹   rZ  c                 óœ   — t        j                  || j                  j                  j                  «      }| g|z   }|j                  |||«      S r   )rM   rE  r£   Úforwardr‚  r@  )r½   rÑ   r¹   rZ  rÅ   Úfn_variables         rn   r@  z)SourcelessGraphModuleVariable.call_methodô  sM   € ô &×+Ñ+¨B°·
±
×0BÑ0B×0KÑ0KÓLˆØˆv˜‰}ˆØ×-Ñ-ØØØó
ð 	
rp   )r�   r¿   rÀ   r€   r   rÈ   rÂ   r  rM   r  r@  r‚  rƒ  s   @rn   r~  r~  ì  sh   ø„ ð*àð*ð ð*ð 
õ	*ð
à'ð
ð ð
ð �?Ñ#ð	
ð
 �S˜/Ð)Ñ*ð
ð 
÷
rp   r~  c            
       ó~  ‡ — e Zd Zdededdfˆ fd„Zededef   fd„«       Zedd„«       Z	d	d
de
dee   dee
ef   def
ˆ fd„Zd	d
de
fˆ fd„Zedd„«       Zedee   fd„«       Zdd„Zedee   fd„«       Zedej.                  dz  fd„«       Zde
fd„Zdˆ fd„Zej6                  dej.                  ddfd„«       Zˆ xZS )Ú"UserDefinedExceptionObjectVariabler£   rÅ   rW   Nc                 óâ   •— t        ‰| �  |fi |¤Ž |j                  dg «      }t        j                  | j
                  |«      | _        t        |t        «      rt        | _        y t        | _        y )Nrñ  )rÇ   rÈ   r–   r   ÚExceptionVariabler”  rN  r	  r‚   r-   r1   r“  )r½   r£   rÅ   rñ  rË   s       €rn   rÈ   z+UserDefinedExceptionObjectVariable.__init__  sc   ø€ Ü‰Ñ˜Ñ) &Ò)Ø—J‘J˜{¨BÓ/ˆ	Ü!×3Ñ3°D·O±OÀYÓOˆŒô ˜%¤Ô/ô #ð 	Õô #ð 	Õrp   .c                 ó   — | j                   S r   rµ  rÏ   s    rn   rW  z%UserDefinedExceptionObjectVariable.fn  s   € à�‰Ðrp   c                 óx   — | j                   €t        d«      ‚t        t        j                  | j                   «      S )Nz,_base_vt must not be None for exception repr)rN  r$  r   r   r‡  rÏ   s    rn   Úexc_vtz)UserDefinedExceptionObjectVariable.exc_vt  s/   € à�=‰=Ð Ü Ð!OÓPÐPÜ”I×/Ñ/°·±Ó?Ð?rp   rÑ   rw   r¹   rZ  c                 ó²  •— |dk(  rU| j                  |«      x}rBt        j                  |«      r-t        |«      dk(  rt        j
                  j                  d «      S |dk(  rCt        |«      dk(  r5|d   j                  dddd«      r| j                  j                  ||||«      S |d	k(  r| j                  j                  ||||«      S t        ‰| �%  ||||«      S )
NrÈ   r   r�   r   Ú	__cause__Ú__context__Ú__suppress_context__Ú__traceback__Úwith_traceback)r¾   r§   rŽ  rè  r   ry   rÛ   Úis_constant_matchrN  r@  rÇ   )r½   rÑ   r¹   rZ  rÅ   rò  rË   s         €rn   r@  z.UserDefinedExceptionObjectVariable.call_method  sÚ   ø€ ð �JÒØ×;Ñ;¸DÓAÐA�ÐAÜ×*Ñ*¨6Ô2Ü�F“˜qÒ ä×-Ñ-×4Ñ4°TÓ:Ð:à�MÒ!Ü�D“	˜Q’Ø�Q‘×)Ñ)Ø˜]Ð,BÀOôð —=‘=×,Ñ,¨R°°t¸VÓDÐDØÐ%Ò%Ø—=‘=×,Ñ,¨R°°t¸VÓDÐDÜ‰wÑ" 2 t¨T°6Ó:Ð:rp   c                 ód   •— |dv r| j                   j                  ||«      S t        ‰| �  ||«      S )N)rZ  rŒ  r�  rŽ  r�  )rN  rw  rÇ   rr  s      €rn   rw  z.UserDefinedExceptionObjectVariable.var_getattr3  s;   ø€ Øð 
ñ 
ð —=‘=×,Ñ,¨R°Ó6Ð6Ü‰wÑ" 2 tÓ,Ð,rp   c                 ó.   — | j                   j                  S r   )rN  r�  rÏ   s    rn   r�  z.UserDefinedExceptionObjectVariable.__context__>  s   € à�}‰}×(Ñ(Ð(rp   c                 ó.   — | j                   j                  S r   )rN  rZ  rÏ   s    rn   rZ  z'UserDefinedExceptionObjectVariable.argsB  s   € à�}‰}×!Ñ!Ð!rp   c                 ó8   — | j                   j                  |«      S r   )rN  Úset_context)r½   rR  s     rn   r–  z.UserDefinedExceptionObjectVariable.set_contextF  s   € Ø�}‰}×(Ñ(¨Ó1Ð1rp   c                 ó.   — | j                   j                  S r   )rN  Úexc_typerÏ   s    rn   r˜  z+UserDefinedExceptionObjectVariable.exc_typeI  s   € à�}‰}×%Ñ%Ð%rp   c                 ó.   — | j                   j                  S r   ©rN  Úpython_stackrÏ   s    rn   r›  z/UserDefinedExceptionObjectVariable.python_stackM  s   € à�}‰}×)Ñ)Ð)rp   c                 ó6   — | j                   j                  «       S r   )rŠ  Ú
debug_reprrÏ   s    rn   r�  z-UserDefinedExceptionObjectVariable.debug_reprQ  s   € Ø�{‰{×%Ñ%Ó'Ð'rp   c                 ó¶   •— t        | j                  «      j                  t        j                  urt        ‰| �  |«      S | j                  j                  |«      S r   )r    r£   ré   r‚   rÇ   rH  rŠ  ©r½   rÑ   rË   s     €rn   rH  z,UserDefinedExceptionObjectVariable.repr_implT  sE   ø€ ä�—
‘
Ó×$Ñ$¬M×,BÑ,BÑBÜ‘7Ñ$ RÓ(Ð(Ø�{‰{×$Ñ$ RÓ(Ð(rp   c                 ó&   — || j                   _        y r   rš  )r½   r£   s     rn   r›  z/UserDefinedExceptionObjectVariable.python_stackZ  s   € à%*ˆ�‰Õ"rp   )rW   úvariables.ExceptionVariable)rW   ry   )rR  r¡  rW   Nr~  )r�   r¿   rÀ   r€   r   rÈ   rƒ  r   rW  rŠ  rÂ   r  rM   r  r@  rw  r�  rZ  r–  r    r‚   r˜  Ú	tracebackÚStackSummaryr›  r�  rH  r¼  r‚  rƒ  s   @rn   r…  r…    sm  ø„ ð
˜fð 
°ð 
¸õ 
ð ð�H˜S &˜[Ñ)ò ó ðð ò@ó ð@ð
;à'ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
õ;ð4	-Ð9ð 	-Àõ 	-ð ò)ó ð)ð ð"�d˜?Ñ+ò "ó ð"ó2ð ð&˜$˜}Ñ-ò &ó ð&ð ð*˜i×4Ñ4°tÑ;ò *ó ð*ð(˜Có (õ)ð ×Ñð+ )×"8Ñ"8ð +¸Tò +ó ô+rp   r…  c                   óÂ   ‡ — e Zd ZU dZej
                  ddiej                  dddœiZee	ee
e
f   f   ed<   eded	efd
„«       Zeded	efd„«       Zddde
d	efˆ fd„Zˆ xZS )ÚInspectVariablezÊ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_REDIRECTSr›   rW   c                 ó8   — t        | «      t        j                  v S r   )r    r¥  rª  r¡   s    rn   Úis_matching_objectz"InspectVariable.is_matching_objectk  s   € ä�C‹yœO×?Ñ?Ð?Ð?rp   c                 ó&   — | t         j                  v S r   )r¥  rª  r¡   s    rn   Úis_matching_classz!InspectVariable.is_matching_classo  s   € à”o×9Ñ9Ð9Ð9rp   rÑ   rw   r¹   c                 ó°   •— | j                   j                  t        | j                  «      i «      }||v rt        ‰| �  |||   «      S t        ‰| �  ||«      S r   )rª  r–   r    r£   rÇ   rw  )r½   rÑ   r¹   Ú	redirectsrË   s       €rn   rw  zInspectVariable.var_getattrs  sV   ø€ ð ×,Ñ,×0Ñ0´°d·j±jÓ1AÀ2ÓFˆ	Ø�9ÑÜ‘7Ñ& r¨9°T©?Ó;Ð;Ü‰wÑ" 2 tÓ,Ð,rp   )r�   r¿   rÀ   rX  r§   Ú	SignatureÚ	Parameterrª  r  r    rÂ   rÁ   r  r€   r€  r¬  r®  rM   rw  r‚  rƒ  s   @rn   r¥  r¥  _  sµ   ø… ñð 	×Ñ˜L¨-Ð8Ø×Ñ G°WÑ=ð7Ð˜˜d D¨¨c¨¡NÐ2Ñ3ó ð
 ð@ ð @¨4ò @ó ð@ð ð:˜vð :¨$ò :ó ð:ð-Ø-ð-Ø58ð-à	÷-ñ -rp   r¥  c                   ó^   ‡ — e Zd Zededefd„«       Zdededdfˆ fd„Zdd	d
e	de
fˆ fd„Zˆ xZS )ÚKeyedJaggedTensorVariabler›   rW   c                 óz   — t         j                  j                  d«      }|d uxr t        | «      |j                  u S )Nztorchrec.sparse.jagged_tensor)r”   r•   r–   r    ÚKeyedJaggedTensor©r›   Úmods     rn   r¬  z,KeyedJaggedTensorVariable.is_matching_object}  s3   € ä�k‰k�o‰oÐ=Ó>ˆØ˜$ˆÒE¤4¨£9°×0EÑ0EÐ#EÐErp   r£   rÅ   Nc                 óz   •— ddl m} t        |«      |urt        dt        |«      › �«      ‚t	        ‰| �  |fi |¤Ž y )Nr   )r¶  z Expected KeyedJaggedTensor, got )Útorchrec.sparse.jagged_tensorr¶  r    r$  rÇ   rÈ   )r½   r£   rÅ   r¶  rË   s       €rn   rÈ   z"KeyedJaggedTensorVariable.__init__‚  s@   ø€ õ	
ô �‹;Ð/Ñ/Ü Ð#CÄDÈÃKÀ=Ð!QÓRÐRÜ‰Ñ˜Ñ) &Ó)rp   rÑ   rw   r¹   c                 ó  •— t         j                  j                  j                  r@| j                  �4|dv r0t        j                  d¬«      5  t        ‰| �!  ||«      cd d d «       S t        ‰| �!  ||«      S # 1 sw Y   ŒxY w)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   r0  rÇ   rw  rr  s      €rn   rw  z%KeyedJaggedTensorVariable.var_getattr‹  st   ø€ ô �M‰M× Ñ ×TÒTØ—‘Ð'ØÐ>Ñ>ä×%Ñ%È$ÔOñ 5Ü‘wÑ*¨2¨tÓ4÷5ñ 5ä‰wÑ" 2 tÓ,Ð,÷5ð 5ús   ÁA6Á6A?)r�   r¿   rÀ   r  r€   r€  r¬  r   rÈ   rÂ   rM   rw  r‚  rƒ  s   @rn   r´  r´  |  sc   ø„ ØðF ð F¨4ò Fó ðFð*˜fð *°ð *¸õ *ð
-Ø-ð
-Ø58ð
-à	÷
-ñ 
-rp   r´  Ú_constant_base_methodsc                   óH   ‡ — e Zd ZdZdededdfˆ fd„Zdefd„Zdefd„Zˆ xZ	S )	ÚUserDefinedConstantVariablez³
    Represents user-defined objects that subclass immutable constant types
    (int, float, str).

    Uses a ConstantVariable as _base_vt for the underlying constant value.
    r£   rÅ   rW   Nc                 ó  •— ddl m} t        ‰| �  |fi |¤Ž t	        |«      j
                  D ]7  }|t        v sŒ |j                   ||«      «      | _        t        |   | _
         n | j                  €t        dt	        |«      › �«      ‚y )NrF   rx   z&No constant base type found in MRO of )rÚ   ry   rÇ   rÈ   r    r  Ú_CONSTANT_BASE_TYPESrÛ   rN  rÀ  r“  r$  )r½   r£   rÅ   ry   r!  rË   s        €rn   rÈ   z$UserDefinedConstantVariable.__init__§  s‹   ø€ Ý.ä‰Ñ˜Ñ) &Ò)Ü˜“K×'Ñ'ò 	ˆDØÔ+Ò+Ø 7Ð 0× 7Ñ 7¹¸U»Ó D�”Ü%;¸DÑ%A�Ô"Ùð		ð
 �=‰=Ð Ü Ð#IÌ$ÈuË+ÈÐ!WÓXÐXð !rp   c                 ó   — | j                   S r   r«   rÏ   s    rn   rá   z.UserDefinedConstantVariable.as_python_constant³  râ   rp   c                 ód   — | j                   €t        d«      ‚| j                   j                  «       S )Nz%_base_vt must not be None in as_proxy)rN  r$  rä   rÏ   s    rn   rä   z$UserDefinedConstantVariable.as_proxy¶  s+   € Ø�=‰=Ð Ü Ð!HÓIÐIØ�}‰}×%Ñ%Ó'Ð'rp   )
r�   r¿   rÀ   rX  r   rÈ   rá   r€   rä   r‚  rƒ  s   @rn   rÂ  rÂ  Ÿ  s>   ø„ ñð
Y˜cð 
Y¨Sð 
Y°Tõ 
Yð Có ð(˜&÷ (rp   rÂ  c                   ó&   — e Zd Zededefd„«       Zy)ÚIntWrapperVariabler›   rW   c                 óz   — t         j                  j                  d«      }|d uxr t        | «      |j                  u S )Nztorch.export.dynamic_shapes)r”   r•   r–   r    Ú_IntWrapperr·  s     rn   r¬  z%IntWrapperVariable.is_matching_object¿  s1   € ä�k‰k�o‰oÐ;Ó<ˆØ˜$ˆÒ?¤4¨£9°·±Ð#?Ð?rp   N)r�   r¿   rÀ   r  r€   r€  r¬  rr   rp   rn   rÈ  rÈ  ¼  s(   „ ð ð@ ð @¨4ò @ó ñ@rp   rÈ  c            
       ó”   ‡ — e Zd ZdZ	 	 ddedz  dedz  deddfˆ fd„Zdd	d
ede	e
   deee
f   de
f
ˆ fd„Zdˆ fd„Zdee   fd„Zˆ xZS )ÚRemovableHandleVariableéÿÿÿÿNrþ  r0  rÅ   rW   c                 ó@   •— t        ‰| �  di |¤Ž || _        || _        y )Nrr   )rÇ   rÈ   rþ  r0  )r½   rþ  r0  rÅ   rË   s       €rn   rÈ   z RemovableHandleVariable.__init__È  s$   ø€ ô 	‰ÑÑ"˜6Ò"Ø*ˆÔØˆ�rp   rÑ   rw   r¹   rZ  c                 óP  •— |dk(  r�| j                   | j                  k7  rW| j                   €t        d«      ‚|j                  j                  j                  | j                   «       | j                  | _         t        j                  j                  d «      S t        ‰| �)  ||||«      S )NÚremovez%idx must not be None for hook removal)r0  ÚREMOVEDr$  r*  r]  Úremove_hookr   ry   rÛ   rÇ   r@  ©r½   rÑ   r¹   rZ  rÅ   rË   s        €rn   r@  z#RemovableHandleVariable.call_methodÓ  s‡   ø€ ð �8ÒØ�x‰x˜4Ÿ<™<Ò'Ø—8‘8Ð#Ü(Ð)PÓQÐQØ—	‘	×&Ñ&×2Ñ2°4·8±8Ô<ØŸ<™<�”Ü×-Ñ-×4Ñ4°TÓ:Ð:Ü‰wÑ" 2 t¨T°6Ó:Ð:rp   c                 ó¸   •‡— | j                   | j                  k(  r0‰j                  ˆfd„«       ‰j                  t	        dd«      «       y t
        ‰| �  ‰«       y )Nc                  ó(   •— ‰ j                  dd«      S )Nztorch._dynamo.utilsÚinvalid_removeable_handle)Úload_import_from)rz  s   €rn   r3  z5RemovableHandleVariable.reconstruct.<locals>.<lambda>ç  s   ø€ ˜×0Ñ0Ø)Ð+Fó€ rp   r   F)r0  rÑ  Úadd_push_nullÚextend_outputr   rÇ   rn  )r½   rz  rË   s    `€rn   rn  z#RemovableHandleVariable.reconstructã  sN   ù€ Ø�8‰8�t—|‘|Ò#à×!Ñ!óôð
 ×!Ñ!Ô"6°q¸%Ó"@ÔAØä‰Ñ˜GÕ$rp   c                 ó   — t         S r   )r‰  rÏ   s    rn   r¶  z#RemovableHandleVariable.python_typeð  s   € Ü#Ð#rp   r  r|  )r�   r¿   rÀ   rÑ  rJ   r  r   rÈ   rÂ   r  rM   r  r@  rn  r    r€   r¶  r‚  rƒ  s   @rn   rÌ  rÌ  Å  s�   ø„ Ø€Gð .2àñ		à# dÑ*ð	ð �4‰Zð		ð
 ð	ð 
õ	ð;à'ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
õ;õ %ð$˜T &™\÷ $rp   rÌ  c            
       óÂ   ‡ — e Zd ZdZ	 ddededz  deddfˆ fd„Zdefd„Z	d	d
de
fd„Zd	d
de
de
fˆ fd„Zd	d
dedee
   deee
f   de
f
ˆ fd„Zdefd„Zd	d
de
fˆ fd„Zˆ xZS )rM  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.
    Nr£   r™  rÅ   rW   c                 óà   •— t        ‰| �  |fi |¤Ž |€2| j                  �t        d«      ‚t	        i t        «       ¬«      | _        n|| _        t        | _        | j                  €t        d«      ‚y )Nz@dict_vt must be constructed by builder.py when source is present©rþ  ú._base_vt must not be None after initialization)	rÇ   rÈ   rÍ   r$  rN   rL   rN  r0   r“  )r½   r£   r™  rÅ   rË   s       €rn   rÈ   z UserDefinedDictVariable.__init__ý  sy   ø€ ô 	‰Ñ˜Ñ) &Ò)Øˆ?Ø�{‰{Ð&Ü$ØVóð ô .ØÜ.Ó0ôˆD�Mð
 $ˆDŒMÜ)ˆÔØ�=‰=Ð Ü Ð!QÓRÐRð !rp   c                 ód   — | j                   €t        d«      ‚| j                   j                  «       S )Nz _base_vt must not be None in len)rN  r$  rè  rÏ   s    rn   rè  zUserDefinedDictVariable.len  s-   € ð �=‰=Ð Ü Ð!CÓDÐDØ�}‰}× Ñ Ó"Ð"rp   rÑ   rw   c                 ó$   — | j                  |«      S r   )rª  rÕ   s     rn   r§  z!UserDefinedDictVariable.sq_length  s   € ð �~‰~˜bÓ!Ð!rp   r%  c                 ór  •— | j                  d«      }|| j                  v r4| j                  €t        d«      ‚	 | j                  j	                  ||«      S t        ‰| �  ||«      S # t
        $ rH t        | j                  «       t        «      r(| j                  d«      r| j                  |d|gi «      cY S ‚ w xY w)Nr  ú._base_vt must not be None in mp_subscript_implÚ__missing__)r¾   r“  rN  r$  r  r   r
  r¶  r  r@  rÇ   )r½   rÑ   r%  rò  rË   s       €rn   r  z)UserDefinedDictVariable.mp_subscript_impl   sº   ø€ ð ×1Ñ1°-Ó@ˆØ�T×'Ñ'Ñ'Ø�}‰}Ð$Ü$Ð%UÓVÐVðØ—}‘}×6Ñ6°r¸3Ó?Ð?ô ‰wÑ(¨¨SÓ1Ð1øô $ò ÜØ×$Ñ$Ó&¬ôà×6Ñ6°}ÔEØ×+Ñ+¨B°À¸uÀbÓIÒIàðús   ¹A% Á%AB6Â4B6r¹   rZ  c                 óV  •— |dk(  rd| j                  d«      | j                  v rG| j                  d«      r6| j                  €t        d«      ‚	 | j                  j	                  ||||«      S t        ‰| �  ||||«      S # t
        $ r" t        |«       | j	                  |d||«      cY S w xY w)Nr  rã  z(_base_vt must not be None in call_method)r¾   r“  rN  r$  r@  r   r   rÇ   rÓ  s        €rn   r@  z#UserDefinedDictVariable.call_method6  sµ   ø€ ð �MÒ!Ø×0Ñ0°Ó?À4×CUÑCUÑUØ×0Ñ0°Ô?à�}‰}Ð$Ü$Ð%OÓPÐPðIØ—}‘}×0Ñ0°°T¸4ÀÓHÐHô ‰wÑ" 2 t¨T°6Ó:Ð:øô $ò IÜ)¨"Ô-Ø×'Ñ'¨¨M¸4ÀÓHÒHðIús   ÁA= Á=(B(Â'B(c                 óH  — | j                   €t        d«      ‚t        t        | j                   «      }t	        | j
                  «      j                  t        j                  j                  u r”t        |j                  j                  «       «      }	 t        |d„ d¬«      }|s"t	        | j
                  «      j                  › d�S dj                  d„ |D «       «      }t	        | j
                  «      j                  › d|› d	�S |j!                  «       S # t        t        f$ r Y Œ‚w xY w)
Nú'_base_vt must not be None for dict reprc                 ó(   — | d   j                  «       S ©NrF   ©rá   ©r«  s    rn   r3  z4UserDefinedDictVariable.debug_repr.<locals>.<lambda>W  ó   €  T¨!¡W×%?Ñ%?Ó%A€ rp   T©r%  rI  ú()ú, c              3   ó|   K  — | ]4  \  }}|j                   j                  «       › d |j                  «       › �–— Œ6 y­w©ú: N)Úvtr�  ©r  r%  r£   s      rn   r  z5UserDefinedDictVariable.debug_repr.<locals>.<genexpr>^  s<   è ø€ ò !ÙCMÀ3È�3—6‘6×$Ñ$Ó&Ð' r¨%×*:Ñ*:Ó*<Ð)=Ô>ñ!ùs   ‚:<ú({ú}))rN  r$  r   rN   r    r£   ré   r�  ÚCounterr  r  ÚsortedrÔ   rµ   r�   Újoinr�  )r½   Úbase_vtr  Úcontentss       rn   r�  z"UserDefinedDictVariable.debug_reprN  s  € Ø�=‰=Ð Ü Ð!JÓKÐKÜÔ(¨$¯-©-Ó8ˆÜ�—
‘
Ó×$Ñ$¬×(;Ñ(;×(DÑ(DÑDÜ˜Ÿ™×,Ñ,Ó.Ó/ˆEðÜØÙAØ ô�ñ Ü˜tŸz™zÓ*×3Ñ3Ð4°BÐ7Ð7Ø—y‘yñ !ØQVô!ó ˆHô ˜4Ÿ:™:Ó&×/Ñ/Ð0°°H°:¸SÐAÐAØ×!Ñ!Ó#Ð#øô (¬Ð3ò Ùðús   ÂD ÄD!Ä D!c                 ó@  •‡— | j                  d«      }t        | j                  «      j                  t        j
                  j                  u rï| j                  €t        d«      ‚t        t        | j                  «      }t        |j                  j                  «       «      }	 t        |d„ d¬«      }|s6t        j                   ‰t        | j                  «      j"                  › d�«      S dj%                  ˆfd„|D «       «      }t        j                   ‰t        | j                  «      j"                  › d	|› d
�«      S || j&                  v r2| j                  €t        d«      ‚| j                  j)                  ‰«      S t*        ‰| �Q  ‰«      S # t        t        f$ r Y Œëw xY w)Nré   z*_base_vt must not be None for Counter reprc                 ó(   — | d   j                  «       S rè  ré  rê  s    rn   r3  z3UserDefinedDictVariable.repr_impl.<locals>.<lambda>o  rë  rp   Trì  rí  rî  c              3   ón   •K  — | ],  \  }}t        ‰|j                  «      › d t        ‰|«      › �–— Œ. y­wrð  )rB   rò  )r  r%  r£   rÑ   s      €rn   r  z4UserDefinedDictVariable.repr_impl.<locals>.<genexpr>v  s<   øè ø€ ò !á�C˜ô    C§F¡FÓ+Ð,¨B¬|¸BÀÓ/FÐ.GÔHñ!ùs   ƒ25rô  rõ  ræ  )r¾   r    r£   ré   r�  rö  rN  r$  r   rN   r  r  r÷  rÔ   rµ   rM   rE  r�   rø  r“  rH  rÇ   )r½   rÑ   rò  rù  r  rú  rË   s    `    €rn   rH  z!UserDefinedDictVariable.repr_impld  sq  ù€ à×1Ñ1°*Ó=ˆÜ�—
‘
Ó×$Ñ$¬×(;Ñ(;×(DÑ(DÑDØ�}‰}Ð$Ü$Ð%QÓRÐRÜÔ,¨d¯m©mÓ<ˆGÜ˜Ÿ™×,Ñ,Ó.Ó/ˆEðÜØÙAØ ô�ñ Ü&×,Ñ,¨R´D¸¿¹Ó4D×4MÑ4MÐ3NÈbÐ1QÓRÐRØ—y‘yó !à"'ô!ó ˆHô #×(Ñ(Ø”t˜DŸJ™JÓ'×0Ñ0Ð1°°X°J¸cÐBóð ð �T×'Ñ'Ñ'Ø�}‰}Ð$Ü$Ð%NÓOÐOØ—=‘=×*Ñ*¨2Ó.Ð.Ü‰wÑ  Ó$Ð$øô (¬Ð3ò Ùðús   Â"F ÆFÆFr   )r�   r¿   rÀ   rX  r€   rN   r   rÈ   r  rè  rM   r§  r  rÂ   r  r  r@  r�  rH  r‚  rƒ  s   @rn   rM  rM  ô  sì   ø„ ñð -1ñSàðSð # TÑ)ðSð ð	Sð
 
õSð,#�Só #ð"Ð7ð "¸Oó "ð
2à'ð2ð ð2ð 
õ	2ð,;à'ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
õ;ð0$˜Có $ð,%Ð7ð %¸O÷ %ñ %rp   rM  c            
       ó  ‡ — e Zd ZdZ	 ddedddeddfˆ fd„Zdefd	„Zdefd
„Z	e
deeeef      defd„«       Zdefd„Zdddefd„Z	 ddddededefd„Zdddedefd„Zdddededz  defˆ fd„Zdddedee   deeef   def
ˆ fd„Zˆ xZS )ÚOrderedDictVariablea.  
    Represents collections.OrderedDict instances.

    CPython has both a pure-Python implementation:
    https://github.com/python/cpython/blob/v3.13.0/Lib/collections/__init__.py#L86-L339
    and a C accelerator that replaces it at runtime:
    https://github.com/python/cpython/blob/v3.13.0/Objects/odictobject.c

    The C accelerator is always active, so methods like move_to_end and
    popitem are C-level method_descriptors, not Python functions.

    Dict storage is delegated to _base_vt (a ConstDictVariable) via
    UserDefinedDictVariable.
    Nr£   r™  zConstDictVariable | NonerÅ   rW   c                 ó|   •— |€'ddl m}  |i t        j                  t	        «       ¬«      }t        ‰| �  |fd|i|¤Ž y )NrF   ©rN   )Úuser_clsrþ  r™  )ÚdictsrN   r�  r�  rL   rÇ   rÈ   )r½   r£   r™  rÅ   rN   rË   s        €rn   rÈ   zOrderedDictVariable.__init__–  sB   ø€ ð ˆ?Ý0á'ØÜ$×0Ñ0Ü.Ó0ôˆGô
 	‰Ñ˜Ñ:¨Ð:°6Ó:rp   c                 ód   — | j                   €t        d«      ‚| j                   j                  «       S )Nz/_base_vt must not be None in is_python_constant)rN  r$  r4  rÏ   s    rn   r4  z&OrderedDictVariable.is_python_constant¦  ó+   € Ø�=‰=Ð Ü Ð!RÓSÐSØ�}‰}×/Ñ/Ó1Ð1rp   c                 óŠ   — | j                   €t        d«      ‚t        j                  | j                   j	                  «       «      S ©Nz/_base_vt must not be None in as_python_constant)rN  r$  r�  r�  rá   rÏ   s    rn   rá   z&OrderedDictVariable.as_python_constant«  s6   € Ø�=‰=Ð Ü Ð!RÓSÐSÜ×&Ñ& t§}¡}×'GÑ'GÓ'IÓJÐJrp   r  c                 ó¦   — | syt         j                  dk\  rddj                  d„ | D «       «      z   dz   S ddj                  d„ | D «       «      z   d	z   S )
NzOrderedDict())rØ  é   zOrderedDict({rî  c              3   ó0   K  — | ]  \  }}|› d |› �–— Œ y­wrð  rr   ró  s      rn   r  z9OrderedDictVariable._ordered_dict_repr.<locals>.<genexpr>·  s   è ø€ ÒF±*°#°u˜s˜e 2 e WÔ-ÑFùs   ‚rõ  zOrderedDict([c              3   ó4   K  — | ]  \  }}d |› d|› d�–— Œ y­w)rç   rî  rè   Nrr   ró  s      rn   r  z9OrderedDictVariable._ordered_dict_repr.<locals>.<genexpr>¼  s#   è ø€ ÒD±
°°U˜!˜C˜5  5 '¨Ô+ÑDùs   ‚z]))r”   rÚ  rø  )r  s    rn   Ú_ordered_dict_reprz&OrderedDictVariable._ordered_dict_repr°  sh   € áØ"Ü×Ñ˜wÒ&àØ—)‘)ÑFÀÔFÓFñGàñðð Ø�i‰iÑD¸eÔDÓDñEàñð	
rp   c                 ó:  — | j                   €t        d«      ‚t        t        | j                   «      }|j                  j	                  «       D ��cg c]/  \  }}|j
                  j                  «       |j                  «       f‘Œ1 }}}| j                  |«      S c c}}w ©Nz._base_vt must not be None for OrderedDict repr)rN  r$  r   rN   r  rò  r�  r  )r½   rù  r%  r£   r  s        rn   r�  zOrderedDictVariable.debug_reprÀ  sŒ   € Ø�=‰=Ð Ü Ð!QÓRÐRÜÔ(¨$¯-©-Ó8ˆð &Ÿm™m×1Ñ1Ó3÷
á��Uð �V‰V×ÑÓ  %×"2Ñ"2Ó"4Ò5ð
ˆñ 
ð ×&Ñ& uÓ-Ð-ùó	
s   Á4BrÑ   rw   c           	      óR  — | j                   €t        d«      ‚t        t        | j                   «      }|j                  j	                  «       D ��cg c]'  \  }}t        ||j                  «      t        ||«      f‘Œ) }}}t        j                  || j                  |«      «      S c c}}w r  )
rN  r$  r   rN   r  rB   rò  rM   rE  r  )r½   rÑ   rù  r%  r£   r  s         rn   rH  zOrderedDictVariable.repr_implÊ  s—   € ð �=‰=Ð Ü Ð!QÓRÐRÜÔ(¨$¯-©-Ó8ˆð &Ÿm™m×1Ñ1Ó3÷
á��Uô ˜"˜cŸf™fÓ%¤|°B¸Ó'>Ò?ð
ˆñ 
ô ×$Ñ$ R¨×)@Ñ)@ÀÓ)GÓHÐHùó	
s   Á,B#r×   rI  c                 ó˜  — t        |j                  «       t        «      s#t        j                  j                  t        «      S |r]t        j                  || j                  j                  t        «       ¬«      j                  ||gi «      }|j                  |d| gi «       |S | j                  |dg i «      }|j                  |d|gi «       |S )NrV  r  Úcopy)r
  r¶  r  r   ry   rÛ   rÜ   rM   rE  r£   rË   r&   rm  r@  )r½   rÑ   r×   rI  Únews        rn   rM  zOrderedDictVariable.nb_or_implÖ  s¶   € ô ˜%×+Ñ+Ó-¬tÔ4Ü×-Ñ-×4Ñ4´^ÓDÐDáÜ!×'Ñ'Ø�D—J‘J×(Ñ(´Ó1Bôç‰m˜B  ¨Ó,ð ð �O‰O˜B ¨4¨&°"Ô5ð ˆ
ð ×"Ñ" 2 v¨r°2Ó6ˆCØ�O‰O˜B ¨5¨'°2Ô6Øˆ
rp   c                 ó0   — | j                  |d|gi «       | S ©Nr  r3  r4  s      rn   rD  z&OrderedDictVariable.nb_inplace_or_implê  s   € ð 	×Ñ˜˜X¨ w°Ô3Øˆrp   r%  c                 óØ   •— |€dnd}| j                  |«      }|| j                  v r4| j                  €t        d«      ‚| j                  j	                  |||«      S t
        ‰| �  |||«      S )NrÁ  rÂ  z2_base_vt must not be None in mp_ass_subscript_impl)r¾   r“  rN  r$  rÃ  rÇ   )r½   rÑ   r%  r£   rÅ  rò  rË   s         €rn   rÃ  z)OrderedDictVariable.mp_ass_subscript_implñ  sw   ø€ ð !& ‰}°=ˆØ×1Ñ1°$Ó7ˆØ�T×'Ñ'Ñ'Ø�}‰}Ð$Ü$ØHóð ð —=‘=×6Ñ6°r¸3ÀÓFÐFÜ‰wÑ,¨R°°eÓ<Ð<rp   r¹   rZ  c                 óþ  •— ddl m} ddlm} |dk(  �r'| j                  €t        d«      ‚| j                  j                  «        |j                  j                  j                  | j                  «       |d   | j                  vrt        t        |«       d}t        |«      dk(  r&|d   j                  «       r|d   j                  «       }|r*d	|v r&|d	   j                  «       r|d	   j                  «       } ||d   «      }| j                  j                  j!                  ||¬
«        |j"                  d «      S |dk(  �r,| j                  €t        d«      ‚| j                  j                  st        t        |dg¬«       d}t        |«      dk(  r&|d   j                  «       r|d   j                  «       }|r*d	|v r&|d	   j                  «       r|d	   j                  «       }| j                  j                  j%                  |¬
«      \  }	}
d| j                  _        |j                  j                  j                  | j                  «       t)        j*                  |	j,                  |
g«      S t.        ‰| �a  ||||«      S )NrF   rx   rP   rä  z(_base_vt must not be None in move_to_endr   Tr   Úlast)r  Úpopitemz$_base_vt must not be None in popitemzpopitem(): dictionary is emptyrY  )rÚ   ry   r  rQ   rN  r$  Úinstall_dict_keys_match_guardr*  r]  Úmutationr   ÚKeyErrorrè  r4  rá   r  rä  rÛ   r  Úshould_reconstruct_allr   r|   rò  rÇ   r@  )r½   rÑ   r¹   rZ  rÅ   ry   rQ   r  r%  rS  rT  rË   s              €rn   r@  zOrderedDictVariable.call_method  s   ø€ õ 	/Ý*ð �=Ó Ø�}‰}Ð$Ü$Ð%OÓPÐPØ�M‰M×7Ñ7Ô9Ø�I‰I×"Ñ"×+Ñ+¨D¯M©MÔ:Ø�A‰w˜dŸm™mÑ+Ü(¬°2Ô6àˆDÜ�4‹y˜AŠ~ $ q¡'×"<Ñ"<Ô">Ø˜A‘w×1Ñ1Ó3�Ù˜& FÑ*¨v°f©~×/PÑ/PÔ/RØ˜f‘~×8Ñ8Ó:�á! $ q¡'Ó*ˆCØ�M‰M×Ñ×+Ñ+¨C°dÐ+Ô;Ø*Ð#×*Ñ*¨4Ó0Ð0Ø�YÓØ�}‰}Ð$Ü$Ð%KÓLÐLØ—=‘=×&Ò&Ü(Ü˜bÐ(HÐ'Iõð ˆDÜ�4‹y˜AŠ~ $ q¡'×"<Ñ"<Ô">Ø˜A‘w×1Ñ1Ó3�Ù˜& FÑ*¨v°f©~×/PÑ/PÔ/RØ˜f‘~×8Ñ8Ó:�à—=‘=×&Ñ&×.Ñ.°DÐ.Ó9‰DˆAˆqØ37ˆD�M‰MÔ0Ø�I‰I×"Ñ"×+Ñ+¨D¯M©MÔ:Ü×*Ñ*¨A¯D©D°!¨9Ó5Ð5Ü‰wÑ" 2 t¨T°6Ó:Ð:rp   r   r  )r�   r¿   rÀ   rX  r€   r   rÈ   r€  r4  rá   r  r   r  rÂ   r  r�  rM   rH  rM  rD  rÃ  r  r  r@  r‚  rƒ  s   @rn   rÿ  rÿ  †  sj  ø„ ñð$ /3ñ;àð;ð ,ð;ð ð	;ð
 
õ;ð 2 Dó 2ð
K Có Kð
 ð
 (¨5°°c°©?Ñ";ð 
Àò 
ó ð
ð.˜Có .ð
IÐ7ð 
I¸Oó 
Ið  ñ	à'ðð ðð ð	ð
 
óð(Ø-ðØ6Eðà	óð=à'ð=ð ð=ð  Ñ%ð	=ð
 
õ=ð"/;à'ð/;ð ð/;ð �?Ñ#ð	/;ð
 �S˜/Ð)Ñ*ð/;ð 
÷/;ñ /;rp   rÿ  c                   óP  ‡ — e Zd ZdZej
                  Z	 	 ddededz  de	dz  de
ddf
ˆ fd„Zed	edefd
„«       Zdefd„Zde
fd„Zdefd„Zdddefd„Zdddedefˆ fd„Z	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Z	 ddddededefd„Zdddedefd„Zdddedee   deeef   def
ˆ fd„Zˆ xZS )ÚDefaultDictVariableaÀ  
    Represents collections.defaultdict instances.

    CPython's defaultdict is implemented in C:
    https://github.com/python/cpython/blob/v3.13.3/Modules/_collectionsmodule.c#L2177-L2180

    default_factory is a field on the C struct (defdictobject.default_factory),
    not a Python instance attribute, so we model it as a field on the VT.

    Dict storage is delegated to _base_vt (a ConstDictVariable) via
    UserDefinedDictVariable.
    Nr£   Údefault_factoryr™  rÅ   rW   c                 ó    •— |€ddl m}  |i t        «       ¬«      }t        ‰| �  |fd|i|¤Ž |€ddlm}  |j                  d «      }|| _        y )NrF   r  rÝ  r™  rx   )	r  rN   rL   rÇ   rÈ   rÚ   ry   rÛ   r  )r½   r£   r  r™  rÅ   rN   ry   rË   s          €rn   rÈ   zDefaultDictVariable.__init__F  s]   ø€ ð ˆ?Ý0á'ØÜ.Ó0ôˆGô 	‰Ñ˜Ñ:¨Ð:°6Ò:ØÐ"Ý2à5Ð.×5Ñ5°dÓ;ˆOØ.ˆÕrp   Úargc                 ó  — | j                  «       }|t        ur|du xs t        |«      S t        | t        j
                  t        j                  j                  t        j                  j                  t        j                  f«      S )zýCheck if arg is a valid default_factory (callable or None).

        CPython's defaultdict.__init__ checks ``callable(factory)`` and
        raises TypeError if not.  We mirror this by checking the
        underlying Python value when possible.
        N)
r}  rK   rŸ   r	  r   ÚBaseBuiltinVariabler/  r  r�  rÄ   )r!  r}   s     rn   Úis_supported_factoryz(DefaultDictVariable.is_supported_factory[  sr   € ð ×.Ñ.Ó0ˆØ”nÑ$Ø˜$�;Ò/¤(¨3£-Ð/äØä×-Ñ-Ü×#Ñ#×<Ñ<Ü×#Ñ#×>Ñ>Ü×2Ñ2ð	ó
ð 	
rp   c                 óš   — | j                   €t        d«      ‚| j                  j                  «       sy| j                   j                  «       S )Nú/_base_vt must not be None for defaultdict constF)rN  r$  r  r4  rÏ   s    rn   r4  z&DefaultDictVariable.is_python_constantq  s@   € Ø�=‰=Ð Ü Ð!RÓSÐSØ×#Ñ#×6Ñ6Ô8ØØ�}‰}×/Ñ/Ó1Ð1rp   c                 ó  — | j                   €t        d«      ‚| j                  j                  «       st	        | d«      ‚| j                  j                  «       }t        j                  || j                   j                  «       «      S )Nr&  z4defaultdict default_factory is not a Python constant)rN  r$  r  r4  rH   rá   r�  ré  )r½   Úfactorys     rn   rá   z&DefaultDictVariable.as_python_constantx  ss   € Ø�=‰=Ð Ü Ð!RÓSÐSØ×#Ñ#×6Ñ6Ô8Ü5ØØFóð ð ×&Ñ&×9Ñ9Ó;ˆÜ×&Ñ& w°·±×0PÑ0PÓ0RÓSÐSrp   c                 óÐ   — | j                   €t        d«      ‚| j                  €t        d«      ‚d| j                   j                  «       › d| j                  j                  «       › d�S )Nz.default_factory must not be None in debug_reprz'_base_vt must not be None in debug_reprúdefaultdict(rî  rè   )r  r$  rN  r�  rÏ   s    rn   r�  zDefaultDictVariable.debug_reprƒ  sh   € Ø×ÑÐ'Ü Ð!QÓRÐRØ�=‰=Ð Ü Ð!JÓKÐKà˜4×/Ñ/×:Ñ:Ó<Ð=¸RØ�}‰}×'Ñ'Ó)Ð*¨!ð-ð	
rp   rÑ   rw   c           
      óº   — | j                   €t        d«      ‚t        j                  |dt	        || j
                  «      › dt	        || j                   «      › d�«      S )Nz._base_vt must not be None for defaultdict reprr*  rî  rè   )rN  r$  rM   rE  rB   r  rÕ   s     rn   rH  zDefaultDictVariable.repr_impl�  s]   € à�=‰=Ð Ü Ð!QÓRÐRÜ×$Ñ$ØØœ<¨¨D×,@Ñ,@ÓAÐBÀ"Ü˜B §¡Ó.Ð/¨qð2ó
ð 	
rp   r¹   c                 óF   •— |dk(  r| j                   S t        ‰| �	  ||«      S )Nr  )r  rÇ   rw  rr  s      €rn   rw  zDefaultDictVariable.var_getattr—  s,   ø€ ð
 Ð$Ò$Ø×'Ñ'Ð'Ü‰wÑ" 2 tÓ,Ð,rp   c                 ó8  — ddl m} t        | j                  |«      r)| j                  j                  €t        t        ||g¬«       | j                  j                  |g i «      }| j                  €t        d«      ‚| j                  j                  |d||gi «       |S )z©defaultdict.__missing__: auto-vivification via default_factory.

        https://github.com/python/cpython/blob/v3.13.3/Modules/_collectionsmodule.c#L2233-L2254
        rF   rx   rY  z*_base_vt must not be None in _missing_implrÂ  )rÚ   ry   r:   r  r£   r   r  rm  rN  r$  r@  )r½   rÑ   r%  ry   Údefault_vars        rn   Ú_missing_implz!DefaultDictVariable._missing_impl   s�   € õ 	/ô �4×'Ñ'Ð)9Ô:Ø×$Ñ$×*Ñ*Ð2ä$¤X¨r¸¸Õ>Ø×*Ñ*×8Ñ8¸¸RÀÓDˆØ�=‰=Ð Ü Ð!MÓNÐNØ�‰×!Ñ! " m°c¸;Ð5GÈÔLØÐrp   c                 ó¨   — | j                   €t        d«      ‚|| j                   v r| j                   j                  ||«      S | j                  ||«      S )z?defaultdict.__getitem__: dict lookup with __missing__ fallback.râ  )rN  r$  Úgetitem_constr/  )r½   rÑ   r%  s      rn   r  z%DefaultDictVariable.mp_subscript_impl¶  sP   € ð �=‰=Ð Ü Ð!QÓRÐRØ�$—-‘-ÑØ—=‘=×.Ñ.¨r°3Ó7Ð7Ø×!Ñ! " cÓ*Ð*rp   r×   rI  c                 ó¶  — |r|| fn| |f\  }}t        |j                  «       t        j                  «      }|r||fn||f\  }}t	        |t
        «      st        dt        |«      › �«      ‚t        |«      s#t        j                  j                  t        «      S t	        |t        «      r|j                  }	n@t	        |t        «      st        dt        |«      › d|› �«      ‚|j                   j                  }	|j"                  j$                  j'                  t)        j*                  |t,        «      t)        j*                  |t        j                  «      g |¬«      }
| j.                  |
_        t        |	j1                  «       t3        «       ¬«      |
_        |
j.                  }|j"                  j$                  j5                  |
d|«       |
j7                  |d|gi «       |
S )Nú"Expected DefaultDictVariable, got z&Expected UserDefinedDictVariable, got rñ  rç  rÝ  r  r  )r
  r¶  r�  ré  r	  r  r$  r    rO   r   ry   rÛ   rÜ   rN   r  rM  rN  r*  r]  rï  rM   rE  r  r  r  rL   rÁ  r@  )r½   rÑ   r×   rI  ÚleftÚrightÚretr  r  r  r  r  s               rn   rM  zDefaultDictVariable.nb_or_implÂ  s�  € ñ (/�u˜d‘m°T¸5°M‰ˆˆeÜ˜×)Ñ)Ó+¬[×-DÑ-DÓEˆÙ),˜˜u™°5¸$°-‰ˆˆvÜ˜%Ô!4Ô5Ü Ð#EÄdÈ5ÃkÀ]Ð!SÓTÐTä˜FÔ#Ü×-Ñ-×4Ñ4´^ÓDÐDä�dÔ-Ô.Ø—J‘J‰Eä˜dÔ$;Ô<Ü$Ø<¼TÀ$»Z¸LÈÈ4È&ÐQóð ð —M‘M×'Ñ'ˆEà�i‰i×$Ñ$×BÑBÜ×!Ñ! "¤dÓ+Ü×!Ñ! "¤k×&=Ñ&=Ó>ØØð	 Có 
ˆð #×2Ñ2ˆÔÜ(¨¯©«ÔEUÓEWÔXˆŒØ×-Ñ-ˆØ
�	‰	×Ñ×)Ñ)¨#Ð/@À/ÔRØ�‰˜˜H u g¨rÔ2Øˆ
rp   c                 ó0   — | j                  |d|gi «       | S r  r3  r4  s      rn   rD  z&DefaultDictVariable.nb_inplace_or_implî  s   € ð
 	×Ñ˜˜X¨ w°Ô3Øˆrp   rZ  c           
      óö  •— ddl m} |dk(  r´t        |«      dk\  rq| j                  |d   «      rJ|d   | _        |j
                  j                  j                  | d| j                  «       t        |dd  «      }nt        t        |dg¬«       | j                  €t        d«      ‚| j                  j                  |d||«      S |d	k(  r=t        |«      dk7  rt        ||d
t        |«      › d�«       | j                  ||d   «      S |dk(  r=t        |«      dk7  rt        ||d
t        |«      › d�«       | j!                  ||d   «      S |dk(  rK|st        |«      dk7  r&t        ||dt        |«      › dt        |«      › d�«       | j#                  ||d   «      S |dk(  �rddlm} | j                  €t        d«      ‚|j
                  j                  j)                  |j+                  |t,        «      |j+                  |t.        j0                  «      g |¬«      }t3        |t4        «      st        dt7        |«      › �«      ‚| j                  |_        | j                  j9                  t;        «       d ¬«      |_        |j
                  j                  j                  |d|j                  «       |S |dk(  r¼t        |«      dk7  rt        ||dt        |«      › d�«       t=        |d   |«      rs|d   j>                  dk(  ra| j                  |d   «      rM|d   | _        |j
                  j                  j                  | d| j                  «        |j*                  d «      S t@        ‰| �5  ||||«      S t@        ‰| �5  ||||«      S )NrF   rx   rÈ   r   r  z'first argument must be callable or NonerY  z%_base_vt must not be None in __init__r  z1 argsz argsrã  rC  r  r  r  r  rà  z!_base_vt must not be None in copyrç  r3  )rþ  rÍ   r�   r   z2 args)!rÚ   ry   rè  r$  r  r*  r]  rÁ  r  r   rµ   rN  r$  r@  r?   r  r/  rD  rÖ  rá  rï  rÛ   r  r�  ré  r	  r  r    rÝ  rL   r:   r£   rÇ   )	r½   rÑ   r¹   rZ  rÅ   ry   rá  Únew_ddrË   s	           €rn   r@  zDefaultDictVariable.call_methodö  sc  ø€ õ 	/à�:Òô �4‹y˜AŠ~Ø×,Ñ,¨T°!©WÔ5Ø+/°©7�DÔ(Ø—I‘I×*Ñ*×5Ñ5ØØ)Ø×,Ñ,ôô
    Q R ›>‘Dô -Ü!ØØGÐHõð
 �}‰}Ð$Ü$Ð%LÓMÐMØ—=‘=×,Ñ,¨R°¸TÀ6ÓJÐJØ�]Ò"Ü�4‹y˜AŠ~Ü# B¨¨h¼3¸t»9¸+ÀUÐ8KÔLØ×)Ñ)¨"¨d°1©gÓ6Ð6Ø�]Ò"Ü�4‹y˜AŠ~Ü# B¨¨h¼3¸t»9¸+ÀUÐ8KÔLØ×%Ñ% b¨$¨q©'Ó2Ð2Ø�YÒÙœ˜T› ašÜ#ØØØ)Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð ×*Ñ*¨2¨t°A©wÓ7Ð7Ø�V‹^õ 3à�}‰}Ð$Ü$Ð%HÓIÐIØ—Y‘Y×+Ñ+×IÑIØ!×(Ñ(¨¬TÓ2Ø!×(Ñ(¨¬[×-DÑ-DÓEØØð	 Jó ˆFô ˜fÔ&9Ô:Ü$Ø8¼¸f»¸ÐGóð ð &*×%9Ñ%9ˆFÔ"Ø"Ÿm™m×1Ñ1Ü.Ó0Øð 2ó ˆFŒOð �I‰I×"Ñ"×-Ñ-ØÐ)¨6×+AÑ+Aôð ˆMØ�]Ò"Ü�4‹y˜AŠ~Ü# B¨¨h¼3¸t»9¸+ÀUÐ8KÔLä�t˜A‘wÐ 0Ô1°d¸1±g·m±mÐGXÒ6XØ×+Ñ+¨D°©GÔ4Ø'+¨A¡w�Ô$Ø—	‘	×&Ñ&×1Ñ1ØÐ+¨T×-AÑ-Aôð /Ð'×.Ñ.¨tÓ4Ð4Ü‘7Ñ& r¨4°°vÓ>Ð>Ü‰wÑ" 2 t¨T°6Ó:Ð:rp   r  )rÑ   rw   r%  rM   rW   rM   r  )r�   r¿   rÀ   rX  r�  ré  Ú_cpython_typer€   rM   rN   r   rÈ   r  r€  r$  r4  rá   rÂ   r�  rH  rw  r/  r  rM  rD  r  r  r@  r‚  rƒ  s   @rn   r  r  6  s½  ø„ ñð  ×+Ñ+€Mð
 37Ø,0ñ	/àð/ð )¨4Ñ/ð/ð # TÑ)ð	/ð
 ð/ð 
õ/ð* ð
 /ð 
°dò 
ó ð
ð*2 Dó 2ð	T Có 	Tð
˜Có 
ð
Ð7ð 
¸Oó 
ð-à'ð-ð ð-ð 
õ	-ðà'ðð ðð 
ó	ð,
+à'ð
+ð ð
+ð 
ó	
+ð  ñ	*à'ð*ð ð*ð ð	*ð
 
ó*ðXà'ðð ðð 
ó	ðW;à'ðW;ð ðW;ð �?Ñ#ð	W;ð
 �S˜/Ð)Ñ*ðW;ð 
÷W;ñ W;rp   r  c            	       ó–   ‡ — e Zd ZdZ	 ddededz  deddfˆ fd„Zdefd„Ze	de
e   fd	„«       Ze	deeef   fd
„«       Zdedefd„Zˆ xZS )ÚUserDefinedSetVariablezè
    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.
    Nr£   Úset_vtrÅ   rW   c                 ó  •— ddl m} |j                  dd «      }t        ‰| �  |fi |¤Ž t        |t        «      rt        nt        }|t        u rt        nt        | _
        |€‡| j                  �t        d«      ‚|t        u r-t        j                  t        «       t        «       ¬«      | _        nB|j#                  di «      }|j%                  ||«      j'                  ||i «      | _        n|| _        | j                   €t        d«      ‚y )NrF   rà  rÑ   z?set_vt must be constructed by builder.py when source is presentrÝ  rñ  rÞ  )rÖ  rá  r˜  rÇ   rÈ   r	  r  r  r@   r2   r“  rÍ   r$  r   rT   rL   rN  r–   rÛ   rm  )	r½   r£   r=  rÅ   rá  rÑ   r¶  rñ  rË   s	           €rn   rÈ   zUserDefinedSetVariable.__init__Y  sî   ø€ õ 	/à�Z‰Z˜˜dÓ#ˆÜ‰Ñ˜Ñ) &Ò)ä'¨¬sÔ3•c¼ˆØ,7¼3Ñ,>�[ÔDUˆÔàˆ>Ø�{‰{Ð&Ü$ØUóð ð œcÑ!ä )× 5Ñ 5Ü“EÜ"2Ó"4ô!�•ð
 #ŸJ™J {°BÓ7�	Ø 1× 8Ñ 8¸¸[Ó I× WÑ WØ˜	 2ó!�•ð #ˆDŒMØ�=‰=Ð Ü Ð!QÓRÐRð !rp   c                 ód   — | j                   €t        d«      ‚| j                   j                  «       S r  )rN  r$  rá   rÏ   s    rn   rá   z)UserDefinedSetVariable.as_python_constanty  r  rp   c                 ó\   — | j                   €t        d«      ‚| j                   j                  S )Nz&_base_vt must not be None in set_items)rN  r$  Ú	set_itemsrÏ   s    rn   rA  z UserDefinedSetVariable.set_items~  s(   € à�=‰=Ð Ü Ð!IÓJÐJØ�}‰}×&Ñ&Ð&rp   c                 ó\   — | j                   €t        d«      ‚| j                   j                  S ©Nz"_base_vt must not be None in items©rN  r$  r  rÏ   s    rn   r  zUserDefinedSetVariable.items„  ó(   € à�=‰=Ð Ü Ð!EÓFÐFØ�}‰}×"Ñ"Ð"rp   r×   c                 óª   — | j                   €t        d«      ‚t        |t        «      r|j                   }| j	                  «       |j	                  «       k(  S ©Nz,_base_vt must not be None in is_python_equal)rN  r$  r	  r<  rá   rt  s     rn   ru  z&UserDefinedSetVariable.is_python_equalŠ  sI   € Ø�=‰=Ð Ü Ð!OÓPÐPÜ�eÔ3Ô4Ø—N‘NˆEØ×&Ñ&Ó(¨E×,DÑ,DÓ,FÑFÐFrp   r   )r�   r¿   rÀ   rX  r€   rT   r   rÈ   rá   rƒ  r  rA  r  rQ   rM   r  r€  ru  r‚  rƒ  s   @rn   r<  r<  P  s£   ø„ ñð ;?ñSØðSØ%0°4Ñ%7ðSØJMðSà	õSð@2 Fó 2ð
 ð'˜3˜s™8ò 'ó ð'ð
 ð#�t˜O¨_Ð<Ñ=ò #ó ð#ð
G Vð G°÷ Grp   r<  c            	       ó>   ‡ — e Zd ZdZ	 d	deded   deddfˆ fd„Zˆ xZS )
ÚUserDefinedListVariablezì
    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.
    Nr£   Úlist_vt)r{   NrÅ   rW   c                 óæ   •— ddl m} t        ‰| �  |fi |¤Ž |€/| j                  �t        d«      ‚ |g t        «       ¬«      | _        n|| _        t        | _	        | j                  €t        d«      ‚y )NrF   r	  z@list_vt must be constructed by builder.py when source is presentrÝ  rÞ  )
r&  r{   rÇ   rÈ   rÍ   r$  rL   rN  r;   r“  )r½   r£   rJ  rÅ   r{   rË   s        €rn   rÈ   z UserDefinedListVariable.__init__›  sw   ø€ õ 	(ä‰Ñ˜Ñ) &Ò)Øˆ?Ø�{‰{Ð&Ü$ØVóð ñ )¨Ô;KÓ;MÔNˆD�Mà#ˆDŒMÜ)ˆÔØ�=‰=Ð Ü Ð!QÓRÐRð !rp   r   )	r�   r¿   rÀ   rX  r€   r
   r   rÈ   r‚  rƒ  s   @rn   rI  rI  ’  sE   ø„ ñð EIñSØðSØ&+Ð,@Ñ&AðSØTWðSà	÷Sñ Srp   rI  c            
       ó\  ‡ — e Zd ZdZdhej
                  £Zededed    fd„«       Zdˆ fd„	Z	e
dee   fd„«       Zd	d
dedededz  def
ˆ fd„Zdd„Zdedef   fd„Zddded    dz  fd„Zdee   dd fd„Zdefd„Z	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zdedefd„Zˆ xZS ) ÚUserDefinedTupleVariablea€  
    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.

    NamedTupleVariable and StructSequenceVariable are subclasses that handle
    namedtuples and structseqs (torch.return_types.*) respectively.
    Ú	tuple_clsr*  rW   c                 ó0   — t        | «      rt        S t        S r   )r   ÚStructSequenceVariableÚNamedTupleVariable)r*  s    rn   Ú
get_vt_clsz#UserDefinedTupleVariable.get_vt_cls¿  s   € ä˜cÔ"Ü)Ð)Ü!Ð!rp   Nc                 óf  •— ddl m} |j                  dd «      }t        ‰| �  |fd|i|¤Ž |€K| j
                  �t        d«      ‚|st        d«      ‚t        ||d   «      } ||t        «       ¬«      | _	        n|| _	        t        |«      | _        t        | _        | j                  €t        d	«      ‚y )
NrF   r  rÑ   rñ  zAtuple_vt must be constructed by builder.py when source is presentz0init_args must be provided when tuple_vt is Noner   rÝ  rÞ  )r&  r|   r˜  rÇ   rÈ   rÍ   r$  rD   rL   rN  r    rN  rC   r“  )	r½   r£   Útuple_vtrñ  rÅ   r|   rÑ   ÚelemsrË   s	           €rn   rÈ   z!UserDefinedTupleVariable.__init__Å  s·   ø€ Ý(à�Z‰Z˜˜dÓ#ˆÜ‰Ñ˜Ñ>¨)Ð>°vÒ>ØÐØ�{‰{Ð&Ü$ØWóð ñ Ü$Ð%WÓXÐXô
 $ B¨	°!©Ó5ˆEÙ)¨%Ô?OÓ?QÔRˆD�Mà$ˆDŒMÜ˜e›ˆŒÜ*ˆÔØ�=‰=Ð Ü Ð!QÓRÐRð !rp   c                 ó\   — | j                   €t        d«      ‚| j                   j                  S rC  rD  rÏ   s    rn   r  zUserDefinedTupleVariable.itemsÞ  rE  rp   rÑ   rw   r¹   rG  rÍ   c                 ó¦   •— t        |t        j                  «      r%|j                  «       \  }\  }}| j                  |   S t
        ‰| �  ||||«      S r   ©r	  r‰  rŠ  Ú
__reduce__r  rÇ   rý  ©r½   rÑ   r¹   rG  rÍ   rÛ  r0  rË   s          €rn   rý  z0UserDefinedTupleVariable.resolve_data_descriptorä  sQ   ø€ ô �i¤×!:Ñ!:Ô;ð $×.Ñ.Ó0‰KˆA‰x��QØ—:‘:˜c‘?Ð"Ü‰wÑ.¨r°4¸ÀFÓKÐKrp   c                 óÚ   ‡‡— | j                   �t        d«      ‚| j                  «       Š‰j                  ˆˆfd„«        ‰| j                  «       ‰j                  t        dd«      «       y )Nz6reconstruct should only be called on sourceless tuplesc                  óD   •— ‰ j                  ‰ j                  ‰«      «      S r   )rl  rm  )rz  Ú	create_fns   €€rn   r3  z6UserDefinedTupleVariable.reconstruct.<locals>.<lambda>  s    ø€ �G×)Ñ)Ø×3Ñ3°IÓ>ó€ rp   rF   F)rÍ   r$  Úget_construct_fnrØ  rN  rÙ  r   )r½   rz  r]  s    `@rn   rn  z$UserDefinedTupleVariable.reconstruct÷  sf   ù€ ð �;‰;Ð"Ü ØHóð ð ×)Ñ)Ó+ˆ	Ø×Ñôô	
ñ
 	�—‘ÔØ×ÑÔ2°1°eÓ<Õ=rp   .c                 ó   — t         ‚r   )rÔ   rÏ   s    rn   r^  z)UserDefinedTupleVariable.get_construct_fn  s   € Ü!Ð!rp   rE  rU  c                 óè   — g }t        | j                  «      }|D ]U  }t        |t        «      r0t        |j                  «      |k7  s|j                  | j                  ur y|j                  |«       ŒW |S )z>Validate that rest args are compatible for tree_map fast-path.N)rè  r  r	  rM  rN  r�   )r½   rE  ÚothersÚnÚ	candidates        rn   Ú_validate_rest_for_tree_mapz4UserDefinedTupleVariable._validate_rest_for_tree_map  si   € ð 24ˆÜ�—
‘
‹OˆØò 	%ˆIä˜yÔ*BÔCÜ�y—‘Ó'¨1Ò,Ø×&Ñ&¨d¯n©nÑ<áØ�M‰M˜)Õ$ð	%ð ˆrp   Ú	new_itemsc                 ó~   — ddl m}  ||t        «       ¬«      } t        | «      | j                  |t        «       ¬«      S )NrF   r  rÝ  )rT  rþ  )r&  r|   rL   r    r£   )r½   re  r|   rT  s       rn   Ú_make_tree_map_resultz.UserDefinedTupleVariable._make_tree_map_result   s:   € õ 	)á  Ô:JÓ:LÔMˆØŒt�D‹zØ�J‰JØÜ*Ó,ô
ð 	
rp   c                 ó`   — ddl m}  || j                  «      xs t        | j                  «      S )Nr   )r=  )rœ  r=  rN  r   )r½   r=  s     rn   Ú_is_pytree_nodez(UserDefinedTupleVariable._is_pytree_node,  s#   € Ý;á" 4§>¡>Ó2ÒXÔ6HÈÏÉÓ6XÐXrp   c           
      ó„  •— | j                  «       st        ‰| �	  |||||«      S | j                  |«      }|€| j	                  |||||«      S g }t        | j                  «      D ]E  \  }}	|D �
cg c]  }
|
j                  |   ‘Œ }}
|j                  |	j                  |||||«      «       ŒG | j                  |«      S c c}
w r   )
ri  rÇ   rL  rd  r>  r'  r  r�   Úcall_tree_maprg  )r½   rÑ   rC  rD  rE  rF  ra  re  r0  r«  ÚoÚsibling_leavesrË   s               €rn   rL  z-UserDefinedTupleVariable.call_tree_map_branch1  sà   ø€ ð ×#Ñ#Ô%Ü‘7Ñ/Ø�K ¨¨óð ð ×1Ñ1°$Ó7ˆØˆ>Ø×*Ñ*Ø�K ¨¨óð ð ,.ˆ	Ü" 4§:¡:Ó.ò 	‰IˆC�Ø4:Ö;¨q˜aŸg™g c›lÐ;ˆNÐ;Ø×ÑØ×"Ñ"Ø˜ V¨^¸_óõð	ð ×)Ñ)¨)Ó4Ð4ùò <s   Á.B=c                 óØ  •— | j                  «       st        ‰| �	  ||||||«      S | j                  |«      }|€| j	                  ||||||«      S t        | j                  «      }g }	t        | j                  «      D ]X  \  }
}|D �cg c]  }|j                  |
   ‘Œ }}|t        ||
   «      fz   }|	j                  |j                  ||||||«      «       ŒZ | j                  |	«      S c c}w r   )ri  rÇ   rR  rd  rO  r<   rN  r'  r  r   r�   Úcall_tree_map_with_pathrg  )r½   rÑ   rC  rD  rE  rF  rP  ra  ra  re  r0  r«  rl  rm  Úchild_keypathrË   s                  €rn   rR  z7UserDefinedTupleVariable.call_tree_map_with_path_branchN  s  ø€ ð ×#Ñ#Ô%Ü‘7Ñ9Ø�K ¨¨Àóð ð ×1Ñ1°$Ó7ˆØˆ>Ø×4Ñ4Ø�K ¨¨Àóð ô # 4§>¡>Ó2ˆØ+-ˆ	Ü" 4§:¡:Ó.ò 	‰IˆC�Ø4:Ö;¨q˜aŸg™g c›lÐ;ˆNÐ;Ø#¤z°&¸±+Ó'>Ð&@Ñ@ˆMØ×ÑØ×,Ñ,ØØØØ"Ø#Ø!óõ	ð	ð ×)Ñ)¨)Ó4Ð4ùò <s   ÂC'r×   c                 ó¢   — | j                   €t        d«      ‚t        |t        «      r|j                   n|}| j                   j	                  |«      S rG  )rN  r$  r	  rM  ru  rt  s     rn   ru  z(UserDefinedTupleVariable.is_python_equals  sC   € Ø�=‰=Ð Ü Ð!OÓPÐPÜ",¨UÔ4LÔ"M�—’ÐSXˆØ�}‰}×,Ñ,¨UÓ3Ð3rp   r  r|  rS  rW  )r�   r¿   rÀ   rX  r™  rY  r  r    rR  rÈ   rƒ  r  rM   r  rÂ   r€   r   rý  rn  r   r   r^  rd  rg  r€  ri  rL  rR  ru  r‚  rƒ  s   @rn   rM  rM  ®  s¯  ø„ ñ	ð 	ðà	"×	1Ñ	1ð€Nð
 ð"˜ð " Ð&@Ñ!Aò "ó ð"õ
Sð2 ð#�t˜OÑ,ò #ó ð#ð
Là'ðLð ðLð ð	Lð
 ˜‘ðLð 
õLó&>ð," (¨3°¨8Ñ"4ó "ðØ+ðà	Ð(Ñ	)¨DÑ	0óð 

Ø˜oÑ.ð

à	#ó

ðY ó Yð
5à'ð5ð @ð5ð "ð	5ð
 &ð5ð 6ð5ð 
õ5ð:#5à'ð#5ð @ð#5ð "ð	#5ð
 &ð#5ð 6ð#5ð #ð#5ð 
õ#5ðJ4 Vð 4°÷ 4rp   rM  c            
       ó|   ‡ — e Zd ZdZdddedededz  def
ˆ fd	„Zde	d
e
f   fd„Zde
fd„Zde
fd„Zdddefd„Zˆ xZS )rQ  zÄRepresents Python namedtuples (created via collections.namedtuple).

    Namedtuples use _tuplegetter descriptors for field access and
    Type(*args) / Type._make(iterable) for construction.
    rÑ   rw   r¹   rG  rÍ   NrW   c                 ó¦   •— t        |t        j                  «      r%|j                  «       \  }\  }}| j                  |   S t
        ‰| �  ||||«      S r   rX  rZ  s          €rn   rý  z*NamedTupleVariable.resolve_data_descriptor�  sQ   ø€ ô �i¤×!:Ñ!:Ô;ð $×.Ñ.Ó0‰KˆA‰x��QØ—:‘:˜c‘?Ð"Ü‰wÑ.¨r°4¸ÀFÓKÐKrp   .c                 ó.   — | j                   j                  S r   )rN  Ú_makerÏ   s    rn   r^  z#NamedTupleVariable.get_construct_fn�  s   € Ø�~‰~×#Ñ#Ð#rp   c                 óx   — | j                   D �cg c]  }|j                  «       ‘Œ }} | j                  |Ž S c c}w r   ©r  rá   rN  ©r½   r  r  s      rn   rá   z%NamedTupleVariable.as_python_constant“  s8   € Ø15·±Ö<¨A�×%Ñ%Õ'Ð<ˆÐ<Øˆt�~‰~˜uÐ%Ð%ùò =ó   �7c                 óx   — | j                   D �cg c]  }|j                  «       ‘Œ }} | j                  |Ž S c c}w r   ©r  rä   rN  rx  s      rn   rä   zNamedTupleVariable.as_proxy—  s5   € Ø'+§z¡zÖ2 !�—‘•Ð2ˆÐ2Øˆt�~‰~˜uÐ%Ð%ùò 3ry  c                 óê   ‡— t        | j                  «      }dj                  ˆfd„t        || j                  «      D «       «      }t        j                  ‰| j                  j                  › d|› d�«      S )Nrî  c              3   óF   •K  — | ]  \  }}|› d t        ‰|«      › �–— Œ y­w©ú=N©rB   ©r  r¹   r«  rÑ   s      €rn   r  z/NamedTupleVariable.repr_impl.<locals>.<genexpr>�  ó-   øè ø€ ò 
Ù3=°4¸ˆtˆf�A”l 2 tÓ,Ð-Ô.ñ
ùó   ƒ!rç   rè   )r<   rN  rø  Úzipr  rM   rE  r�   ©r½   rÑ   ra  r  s    `  rn   rH  zNamedTupleVariable.repr_impl›  sd   ø€ Ü" 4§>¡>Ó2ˆØ—	‘	ó 
ÜADÀVÈTÏZÉZÓAXô
ó 
ˆô ×$Ñ$ R¨D¯N©N×,CÑ,CÐ+DÀAÀeÀWÈAÐ)NÓOÐOrp   )r�   r¿   rÀ   rX  rÂ   r€   r   rM   rý  r   r   r^  rá   rä   rH  r‚  rƒ  s   @rn   rQ  rQ  z  s‹   ø„ ñðLà'ðLð ðLð ð	Lð
 ˜‘ðLð 
õLð$ (¨3°¨8Ñ"4ó $ð& Có &ð&˜#ó &ðPÐ7ð P¸O÷ Prp   rQ  c            
       óˆ   ‡ — e Zd ZdZdddedededz  def
ˆ fd	„Zde	d
e
f   fd„Zde
fd„Zde
fd„Zdefd„Zdddefd„Zˆ xZS )rP  zœRepresents C-implemented PyStructSequence types (torch.return_types.*).

    Structseqs use Type(iterable) calling convention and reject tuple.__new__.
    rÑ   rw   r¹   rG  rÍ   NrW   c                 óÊ   •— t        |t        j                  «      r7t        | j                  «      }||v r| j
                  |j                  |«         S t        ‰| �!  ||||«      S r   )	r	  rb  r‡  r<   rN  r  ÚindexrÇ   rý  )r½   rÑ   r¹   rG  rÍ   ra  rË   s         €rn   rý  z.StructSequenceVariable.resolve_data_descriptor©  sZ   ø€ ô �i¤×!;Ñ!;Ô<ô ' t§~¡~Ó6ˆFØ�v‰~Ø—z‘z &§,¡,¨tÓ"4Ñ5Ð5Ü‰wÑ.¨r°4¸ÀFÓKÐKrp   .c                 ó   — | j                   S r   )rN  rÏ   s    rn   r^  z'StructSequenceVariable.get_construct_fn¹  s   € Ø�~‰~Ðrp   c                 ó|   — | j                   D �cg c]  }|j                  «       ‘Œ }}| j                  |«      S c c}w r   rw  rx  s      rn   rá   z)StructSequenceVariable.as_python_constant¼  s6   € Ø15·±Ö<¨A�×%Ñ%Õ'Ð<ˆÐ<Ø�~‰~˜eÓ$Ð$ùò =ó   �9c                 ó|   — | j                   D �cg c]  }|j                  «       ‘Œ }}| j                  |«      S c c}w r   r{  rx  s      rn   rä   zStructSequenceVariable.as_proxyÀ  s3   € Ø'+§z¡zÖ2 !�—‘•Ð2ˆÐ2Ø�~‰~˜eÓ$Ð$ùò 3r‹  c                 óê   — t        | j                  «      }dj                  d„ t        || j                  «      D «       «      }| j                  j
                  › d| j                  j                  › d|› d�S )Nrî  c              3   óL   K  — | ]  \  }}|› d |j                  «       › �–— Œ y­wr~  )r�  )r  r¹   r«  s      rn   r  z4StructSequenceVariable.debug_repr.<locals>.<genexpr>Æ  s,   è ø€ ò 
Ù.8¨d°Dˆtˆf�A�d—o‘oÓ'Ð(Ô)ñ
ùs   ‚"$r  rç   rè   )r<   rN  rø  r„  r  r¿   rÀ   )r½   ra  r  s      rn   r�  z!StructSequenceVariable.debug_reprÄ  sh   € Ü" 4§>¡>Ó2ˆØ—	‘	ñ 
Ü<?ÀÈÏ
É
Ó<Sô
ó 
ˆð —.‘.×+Ñ+Ð,¨A¨d¯n©n×.IÑ.IÐ-JÈ!ÈEÈ7ÐRSÐTÐTrp   c           	      ó  ‡— t        | j                  «      }dj                  ˆfd„t        || j                  «      D «       «      }t        j                  ‰| j                  j                  › d| j                  j                  › d|› d�«      S )Nrî  c              3   óF   •K  — | ]  \  }}|› d t        ‰|«      › �–— Œ y­wr~  r€  r�  s      €rn   r  z3StructSequenceVariable.repr_impl.<locals>.<genexpr>Í  r‚  rƒ  r  rç   rè   )	r<   rN  rø  r„  r  rM   rE  r¿   rÀ   r…  s    `  rn   rH  z StructSequenceVariable.repr_implË  s{   ø€ Ü" 4§>¡>Ó2ˆØ—	‘	ó 
ÜADÀVÈTÏZÉZÓAXô
ó 
ˆô ×$Ñ$ØØ�~‰~×(Ñ(Ð)¨¨4¯>©>×+FÑ+FÐ*GÀqÈÈÈqÐQó
ð 	
rp   )r�   r¿   rÀ   rX  rÂ   r€   r   rM   rý  r   r   r^  rá   rä   r�  rH  r‚  rƒ  s   @rn   rP  rP  £  s–   ø„ ñð
Là'ðLð ðLð ð	Lð
 ˜‘ðLð 
õLð  (¨3°¨8Ñ"4ó ð% Có %ð%˜#ó %ðU˜Có Uð
Ð7ð 
¸O÷ 
rp   rP  c                   ót   ‡ — e Zd Zdededdfˆ fd„Zdddededefˆ fd	„Zdddedefˆ fd
„Z	dddefˆ fd„Z
ˆ xZS )ÚMutableMappingVariabler£   rÅ   rW   Nc                 ó&   •— t        ‰| �  |fi |¤Ž y r   r€  rÊ   s      €rn   rÈ   zMutableMappingVariable.__init__×  s   ø€ Ü‰Ñ˜Ñ) &Ó)rp   rÑ   rw   r¹   c                 óö  •— t        |t        j                  «      rÎt        |j                  t        «      r´|j                  }t        j                  t        | j                  «      |d«      }t        |t        «      rn|j                  �bd}| j                  r| j                  ||«      }t        |d«      }t        j                  ||j                  |«      }|j                  || |gi «      S t         ‰	| �E  |||«      S )aÜ  Override to handle property setters on MutableMapping subclasses.

        This is needed because property.__set__ is a slot wrapper (C function),
        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
        Nr½  )r	  r   ry   r£   rÂ   r§   r»   r    rƒ  r½  r•  r;  r#   rM   rE  rm  rÇ   r’  )
r½   rÑ   r¹   r£   r³  r2  rÉ  rÆ  Úfset_vtrË   s
            €rn   r’  z.MutableMappingVariable.method_setattr_standardÚ  sË   ø€ ô. �dœI×6Ñ6Ô7¼JÀtÇzÁzÔSVÔ<WØ—z‘zˆHÜ ×/Ñ/´°T·Z±ZÓ0@À(ÈDÓQˆJÜ˜*¤hÔ/°J·O±OÐ4OØ"�Ø—?’?Ø"&×"@Ñ"@ÀÀXÓ"N�KÜ",¨[¸&Ó"A�KÜ)×/Ñ/°°J·O±OÀ[ÓQ�Ø×,Ñ,¨R°$¸°ÀÓCÐCä‰wÑ.¨r°4¸Ó?Ð?rp   c                 ó  •— |dk(  rwt        | j                  «      j                  t        j                  j
                  j                  t        j                  fv r$t        j                  t        j                  | «      S t        ‰| �1  ||«      S )Nr–   )r    r£   r–   r�  ÚabcÚMappingr  r   rl  r   Úmapping_getrÇ   rw  rr  s      €rn   rw  z"MutableMappingVariable.var_getattrþ  sn   ø€ ð �5Š=œT $§*¡*Ó-×1Ñ1Ü�O‰O×#Ñ#×'Ñ'Ü�H‰Hð6
ñ 
ô ×/Ñ/´	×0EÑ0EÀtÓLÐLä‘7Ñ& r¨4Ó0Ð0rp   c                 ó¢   •— | j                  d«      t        v r)t        j                  |t	        | j
                  «      «      S t        ‰| �  |«      S rª  )r¾   r0   rM   rE  rè  r£   rÇ   rª  rŸ  s     €rn   rª  z MutableMappingVariable.mp_length  sA   ø€ Ø×+Ñ+¨IÓ6¼,ÑFÜ"×(Ñ(¨¬S°·±«_Ó=Ð=Ü‰wÑ  Ó$Ð$rp   )r�   r¿   rÀ   r€   r   rÈ   rM   r’  rÂ   rw  rª  r‚  rƒ  s   @rn   r’  r’  Ö  s„   ø„ ð*˜fð *°ð *¸õ *ð"@à'ð"@ð ð"@ð ð	"@ð
 
õ"@ðH1Ø-ð1Ø58ð1à	õ1ð%Ð7ð %¸O÷ %ñ %rp   r’  c                   ó   — e Zd Zy)rK  NrŠ  rr   rp   rn   rK  rK    s   „ Ørp   rK  )ÀrX  r‰  r  r�  r  r©   r  r,  r§   rI  r”   r�  r¢  rb  r1  r,  Úcollections.abcr   r   r   Útypingr   r   r   r	   r
   Útyping_extensionsr   Útorch._dynamo.configrë   Útorch.nnÚtorch._C._dynamor   Útorch._guardsr   r   Útorch.utils._ordered_setr   Útorch.utils._python_dispatchr   rœ  r   r   ry  r   r   r   r   Úbytecode_transformationr   Úcreate_parameter_opr   rj  r   r   r   r   r   r   rE  r    Úguardsr!   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   rC   rD   rE   r!  rG   rH   rI   rJ   rK   rL   rM   r  rN   rO   rs  rQ   rì  rR   rS   ÚsetsrT   ÚnumpyrB  ÚModuleNotFoundErrorÚtorch.utils._cxx_pytreerU   r‘   r    rV   r€   rÁ   ro   rs   Útorch._dynamo.codegenrt   Útorch._dynamo.side_effectsrv   rÈ  rw   Ú torch._dynamo.variables.constantry   rz   r&  r{   r|   r€  r„   rˆ   rš   r¢   r¬   r  rƒ  rŠ  r‡  rÂ  r­   r²   r¶   r¸   rÄ   r…  r‰  r  r  rÂ   r‘  r™  r[  r~  r…  r¥  r´  r  r  rÄ  r¦   rÚ  rŸ   rÀ  r  rÂ  rÈ  rÌ  rM  rÿ  r  r<  rI  rM  rQ  rP  r’  rK  )Útr™   s   00rn   ú<module>r°     s*  ðòó. Û Û Û Û Û Û Û Û Û 
Û Û Û Û Û ß 8Ñ 8ß <Õ <Ý *ã Û Ý *ß 0Ý /Ý Kß >ç >Ó >Ý :Ý F÷÷ õ Aß 0÷÷ ÷ ÷÷ ÷ ÷ ÷ ÷ õ ÷6÷ ñ ÷ 3Ý %ß KÝ ðÛðÝ2ð
 ,0€ˆz˜&Ñ! DÑ(Ó /ð�z &Ñ)ó ð:˜z¨&Ñ1ó ñ
 Ý/Ý6ÝHÝAå)ß2ðB˜Vð B¨ó BðB˜Vð B¨ó Bð fð °ó ðD˜Fð  tó ð Vð °ó ñ 09àØ×!Ò!Ø×"Ò"Ø×"Ò"ð	ó0Ð ˜Y t™_ó ð˜Fð  tó ð�Vð  ó ô
˜/ô 
ôzÐ2ô zôz'7Ð(@ô 7÷6	ñ 	ðSØ#ðSà��c�ÑðSð ˆÑ
ðSð ��oÐ%Ñ&ð	Sð
 óSô,|$
Ð 3ô |$
ô~I^
Ð7ô ^
ôB
Ð$=ô 
ô0X+Ð)Bô X+ôv-Ð/ô -ô:-Ð 9ô -ð8 ˜U CÐ(Ð ð AU÷0Ø;<€A�1—:’:×$Ò$Ó&Ö6ˆa©(°1­+ŠÒ6Ñ6ó0Ð ˜˜T 3 s¡8˜^Ñ,ó ô
(Ð";ô (ô:@Ð2ô @ô,$˜oô ,$ô^M%Ð7ô M%ôdk;Ð1ô k;ô`W;Ð1ô W;ôt?GÐ6ô ?GôDSÐ7ô Sô8I4Ð8ô I4ôX&PÐ1ô &PôR0
Ð5ô 0
ôf:%Ð6ô :%ôz	Ð.õ 	øðwd ò Ø	ƒBðûð
 ò Ù�d“ƒJðüò|@ 7ùó0sB   Ä;M( Å M6 Ê$NÊ0N
Ê>N
ËNÍ(M3Í2M3Í6NÎNÎ
N