Ë
    ÃÓ^j  ã                   ój  — 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mZmZ ddlmZmZmZ ddlmZmZmZ ddlZddlmZ ddlmZ ddlmZ d	d
lm Z m!Z!m"Z"m#Z# d	dl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z, d	dl-m.Z.m/Z/ d	dl0m1Z1 d	dl2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8 d	dl9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZK ddlLmMZMmNZNmOZOmPZPmQZQ ddlRmSZSmTZT ddlUmVZVmWZWmXZXmYZY ddlZm[Z[ ddl\m]Z]m^Z^m_Z_m`Z`maZa ddlbmcZcmdZd ddlemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZy ddlzm{Z{m|Z| ddl}m~Z~mZm€Z€m�Z�m‚Z‚ ddlƒm„Z„m…Z…m†Z† erddl‡mˆZˆ ddl‰mŠZŠ  e�j                  eŒ«      Z�e	�j                  e	�j                  e	�j                   e	�j"                  e	�j$                  e	�j&                  e	�j(                  e	�j*                  e	�j,                  e	�j.                  e	�j0                  e	�j2                  e	�j4                  e	�j4                  e	�j6                  e	�j8                  e	�j:                  e	�j<                  e	�j>                  e	�j@                  e	�jB                  e	�jD                  e	�jF                  e	�jH                  e	�jJ                  e	�jL                  iZ§e¨ e©ddh«      eª e©ddh«      e« e©dd h«      iZ¬e­e®e©e¯   f   e°d!<   e
�jb                  d"k\  r e©d#h«      e¬e²<   ed$ej*                  ej*                  geQdz  f   Z³e®eQ   e´e®eQ   d%f   z  Zµe	�jl                  d&e	�jn                  d'e	�jp                  d(e	�jr                  d)e	�jt                  d*e	�jv                  d+iZ¼e­ed%ef   e¯f   e°d,<   e	�j@                  e	�j&                  e	�jz                  e	�j*                  e	�j.                  e	�j2                  e	�j                  e	�jp                  e	�jt                  e	�jv                  e	�jr                  e	�jn                  e	�jl                  e	�j"                  e	�j>                  e	�j$                  e	�j4                  e	�j(                  e	�j,                  e	�j0                  e	�j                  e	�j                   fZ¾e	�jD                  e	�jH                  e	�jL                  e	�jB                  e	�jJ                  e	�jF                  fZ¿e	�j€                  fZÁe	�j8                  e	�j<                  e	�j6                  e	�j:                  e	�j„                  fZÃe	�jˆ                  e	�jŠ                  e	�jŒ                  e	�jŽ                  e	�j�                  fZÉeWeXe|e…fZÊe´e®eQ   d%f   e°d-<   i aËe­ed%ef   ed%ef   f   e°d.<   i aÌe­ed%ef   ed%ef   f   e°d/<    eÍ«       ZÎdDd1„ZÏ G d2„ d3eQ«      ZÐ G d4„ d5eÐ«      ZÑ G d6„ d7eÐ«      ZÒ G d8„ d9eÐ«      ZÓ G d:„ d;eÐ«      ZÔ G d<„ d=eÐ«      ZÕ G d>„ d?eÐ«      ZÖ G d@„ dAeÐ«      Z×e�j°                  dBd$d0e�j²                  d   fdC„«       ZÚy)Ea\  
Built-in function and type variable tracking for TorchDynamo's symbolic execution.

This module contains variable tracker classes for Python built-in functions, types,
and operations during graph compilation. It handles symbolic execution of:

- Built-in functions (len, getattr, isinstance, etc.)
- Type constructors (int, float, str, list, dict, etc.)
- Built-in operators and methods
- Special Python constructs (super, hasattr, etc.)

Key classes:
- BuiltinVariable: Tracks built-in functions and handles their execution
- TypeVariable: Manages type constructor calls and type checking
- SuperVariable: Handles super() calls in class hierarchies

These variable trackers ensure that built-in Python operations are correctly
handled during symbolic execution, either by executing them directly when safe
or by creating appropriate graph nodes when needed.
é    N)ÚdefaultdictÚOrderedDict)ÚCallableÚIterableÚSequence)ÚAnyÚNoReturnÚTYPE_CHECKING)Úis_sparse_any)ÚBaseTorchFunctionMode)Úis_traceable_wrapper_subclassé   )ÚconfigÚgraph_break_hintsÚ	polyfillsÚ	variables)ÚObservedAttributeErrorÚObservedUserStopIterationÚraise_observed_exceptionÚraise_type_errorÚunimplementedÚUnsupportedÚ	UserErrorÚUserErrorType)ÚGuardBuilderÚinstall_guard)ÚDummyModule)Ú
AttrSourceÚGetItemSourceÚGlobalSourceÚis_constant_sourceÚSourceÚ
TypeSource)Úcheck_constant_argsÚcheck_numpy_ndarray_argsÚcheck_unspec_or_constant_argsÚcheck_unspec_python_argsÚdict_methodsÚextract_fake_example_valueÚget_fake_valueÚguard_if_dynÚis_tensor_getset_descriptorÚis_wrapper_or_member_descriptorÚistypeÚnumpy_operator_wrapperÚproxy_args_kwargsÚraise_args_mismatchÚspecialize_symnodeÚstr_methodsÚtensortype_to_dtypeÚunpack_iterableé   )Ú#AsPythonConstantNotImplementedErrorÚAttrMutationKindÚNO_SUCH_SUBOBJÚValueMutationNewÚVariableTracker)ÚConstantVariableÚFakeIdVariable)ÚConstDictVariableÚDictItemsVariableÚDictKeysVariableÚDictViewVariable©Úis_hashable)ÚBaseListVariableÚListIteratorVariableÚListVariableÚTupleIteratorVariableÚTupleVariable)ÚNullVariableÚStringFormatVariable)Ú
binary_iopÚ	binary_opÚgeneric_absÚgeneric_boolÚgeneric_floatÚgeneric_getiterÚgeneric_inplace_multiplyÚgeneric_intÚgeneric_lenÚgeneric_multiplyÚgeneric_negÚgeneric_posÚgeneric_reprÚgeneric_strÚmaybe_get_python_typeÚpysequence_checkÚvt_addÚ
vt_getitemÚvt_identity_compareÚvt_inplace_add)ÚFrozensetVariableÚSetVariable)ÚFakeItemVariableÚsupported_comparison_opsÚSymNodeVariableÚTensorVariableÚUnspecializedPythonVariable)Úis_data_descriptorÚUserDefinedObjectVariableÚUserDefinedVariable)Ú	PyCodegen)ÚInstructionTranslatorBaseÚ__new__Ú
from_bytesÚfromhexÚhexÚ"_BUILTIN_CONSTANT_FOLDABLE_METHODS©é   é   Úfrom_numberrj   .Ú__eq__Ú__ne__Ú__lt__Ú__le__Ú__gt__Ú__ge__Ú_OPERATOR_TO_DUNDERÚ_SET_LIKE_OP_SUPPORTÚBUILTIN_TO_TENSOR_FN_MAPÚBUILTIN_TO_TENSOR_RFN_MAPÚreturnc                  ór  ‡‡‡	‡
‡— t        t        «      dkD  ry d Š G ˆfd„dt        «      } t        j                  d«      Št        j                  d«      Š	t        j                  dt        j
                  ¬«      Št        j                  dt        j
                  ¬«      Š
 | «       5  ˆfd„t        fˆfd„t        fˆˆ	fd„t        fˆˆ
fd	„t        fˆfd
„t        fg}|D ]-  \  }}|D ]#  } ||«       ‰€t        d|› �«      ‚‰t        |<   Œ% Œ/ ˆ	fd„t        fˆ
fd„t        fˆfd„t        fg}t        j                  t        j                  t        j                  h}|D ]?  \  }}|D ]5  }||v rŒ ||«       ‰€t        d|› �«      ‚‰t        |   k7  sŒ-‰t         |<   Œ7 ŒA 	 d d d «       y # 1 sw Y   y xY w)Nr   c                   óX   •— e Zd ZdZ	 	 d
dedef   dedee   deeef   dz  def
ˆ fd	„Z	y)ú8populate_builtin_to_tensor_fn_map.<locals>.GetMethodModezš
        Mode to extract the correct methods from torch function invocations
        (Used to get the correct torch.Tensor methods from builtins)
        NÚfunc.ÚtypesÚargsÚkwargsr~   c                 ó$   •— |xs i }|Š ||i |¤ŽS ©N© )Úselfr‚   rƒ   r„   r…   Úmost_recent_funcs        €új/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/_dynamo/variables/builtin.pyÚ__torch_function__zKpopulate_builtin_to_tensor_fn_map.<locals>.GetMethodMode.__torch_function__  s$   ø€ ð ’\˜rˆFà#ÐÙ˜Ð( Ñ(Ð(ó    )rˆ   N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   ÚdictÚstrrŒ   )rŠ   s   €r‹   ÚGetMethodModer�     s_   ø„ ñ	ð #%Ø,0ñ
	)à˜3 ˜8Ñ$ð
	)ð ð
	)ð ˜3‘-ð	
	)ð
 ˜˜c˜‘N TÑ)ð
	)ð ö
	)r�   r”   r6   )Údtypec                 ó   •—  | ‰«      S r‡   rˆ   )ÚoÚinp0s    €r‹   ú<lambda>z3populate_builtin_to_tensor_fn_map.<locals>.<lambda>*  s   ø€ ‘q˜“w€ r�   c                 ó   •—  | ‰«      S r‡   rˆ   ©r—   Úinp0_ints    €r‹   r™   z3populate_builtin_to_tensor_fn_map.<locals>.<lambda>+  s   ø€ ‘q˜“{€ r�   c                 ó   •—  | ‰‰«      S r‡   rˆ   )r—   r˜   Úinp1s    €€r‹   r™   z3populate_builtin_to_tensor_fn_map.<locals>.<lambda>,  s   ø€ ‘q˜˜t“}€ r�   c                 ó   •—  | ‰‰«      S r‡   rˆ   )r—   rœ   Úinp1_ints    €€r‹   r™   z3populate_builtin_to_tensor_fn_map.<locals>.<lambda>-  s   ø€ ‘q˜ 8Ó,€ r�   c                 ó   •—  | ‰d«      S ©Nr   rˆ   r›   s    €r‹   r™   z3populate_builtin_to_tensor_fn_map.<locals>.<lambda>.  s   ø€ ‘q˜ 1“~€ r�   z,most_recent_func is None after setup for op c                 ó   •—  | d‰«      S ©Nr6   rˆ   )r—   rž   s    €r‹   r™   z3populate_builtin_to_tensor_fn_map.<locals>.<lambda><  s   ø€ ™!˜A˜t›*€ r�   c                 ó   •—  | d‰«      S r¤   rˆ   )r—   r    s    €r‹   r™   z3populate_builtin_to_tensor_fn_map.<locals>.<lambda>?  ó   ø€ ‘q˜˜H“~€ r�   c                 ó   •—  | d‰«      S r¢   rˆ   r›   s    €r‹   r™   z3populate_builtin_to_tensor_fn_map.<locals>.<lambda>@  r¦   r�   z4most_recent_func is None after setup for reverse op )Úlenr|   r   ÚtorchÚonesÚint32Úun_opsÚ
un_int_opsÚbin_opsÚbin_int_opsÚtensor_and_int_opsÚAssertionErrorÚoperatorÚmatmulÚimatmulÚgetitemr}   )r”   Úsetups_and_oplistsÚsetup_fnÚop_listÚopÚrsetups_and_oplistsÚrskipsr˜   rœ   rž   r    rŠ   s          @@@@@r‹   Ú!populate_builtin_to_tensor_fn_mapr¼   
  sÏ  ü€ ä
Ô#Ó$ qÒ(ð 	Ø26Ðö)Ô-ô )ô$ �:‰:�a‹=€DÜ�:‰:�a‹=€DÜ�z‰z˜!¤5§;¡;Ô/€HÜ�z‰z˜!¤5§;¡;Ô/€HÙ	‹ñ &Eã¤Ð'Û"¤JÐ/Ü$¤gÐ.Ü,¬kÐ:Û%Ô'9Ð:ðN
Ðð "4ò 	@ÑˆH�gØò @�Ù˜”Ø#Ð+Ü(ØFÀrÀdÐKóð ð 0@Ô(¨Ò,ñ@ð	@ó %Üðó &¤{Ð3Û%Ô'9Ð:ðO
Ðô —/‘/¤8×#3Ñ#3´X×5EÑ5EÐFˆØ!4ò 
	EÑˆH�gØò 	E�Ø˜‘<ØÙ˜”Ø#Ð+Ü(ØNÈrÈdÐSóð ð $Ô'?ÀÑ'CÓCØ4DÔ-¨bÒ1ñ	Eñ
	E÷9&E÷ &Eñ &Eús   Â'C.F-ÆF-Æ-F6c            
       óô   ‡ — e Zd ZU dZdZeed<   edededd fd„«       Z	defd„Z
dd	„Zd
ddedefd„Zd
ddede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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 )ÚBaseBuiltinVariablea  
    Common base class for all builtin variable trackers (BuiltinVariable,
    DictBuiltinVariable, IterBuiltinVariable, and future specialized builtins).

    Provides shared implementations for guard installation, hasattr tracing,
    and Python-level hashability/equality.

    Specialized subclasses (e.g. DictBuiltinVariable) set `_fn` as a class
    attribute. BuiltinVariable stores the callable on the instance as `self.fn`
    and overrides as_python_constant / reconstruct / var_getattr accordingly.
    NÚ_fnÚvalueÚsourcer~   c                 ód   — t        |j                  t        j                  «      «        | |¬«      S ©N©rÁ   ©r   Ú
make_guardr   ÚBUILTIN_MATCH©ÚclsrÀ   rÁ   s      r‹   Úcreate_with_sourcez&BaseBuiltinVariable.create_with_source`  s&   € ä�f×'Ñ'¬×(BÑ(BÓCÔDÙ˜&Ô!Ð!r�   c                 ó   — | j                   S r‡   )r¿   ©r‰   s    r‹   Úas_python_constantz&BaseBuiltinVariable.as_python_constante  s   € Ø�x‰xˆr�   c                 óÂ   — | j                  «       j                  }||j                  j                  v rt	        d«      ‚|j                  |j                  |d¬«      «       y )Núshadowed globalT©Úadd)rÍ   rŽ   ÚtxÚ	f_globalsr±   Úappend_outputÚcreate_load_global©r‰   ÚcodegenÚnames      r‹   ÚreconstructzBaseBuiltinVariable.reconstructh  sR   € Ø×&Ñ&Ó(×1Ñ1ˆØ�7—:‘:×'Ñ'Ñ'Ü Ð!2Ó3Ð3Ø×Ñ˜g×8Ñ8¸À4Ð8ÓHÕIr�   rÒ   rj   rØ   c                 óÐ   — | j                   xr t        | j                   |«      }t        | j                  |d «      }t	        j
                  | ||�t        |«      |¬«      S d |¬«      S )N©Úpy_typerÁ   )rÁ   r   Úgetattrr¿   r   ÚGetAttrVariableÚtype)r‰   rÒ   rØ   rÁ   Úattrs        r‹   Úvar_getattrzBaseBuiltinVariable.var_getattrn  se   € ð —‘Ò>¤¨D¯K©K¸Ó!>ˆÜ�t—x‘x  tÓ,ˆÜ×(Ñ(Ø�$¨dÐ.>¤ T£
ÐQWô
ð 	
ØDHÐQWô
ð 	
r�   c                 ó^   — t        j                  |t        | j                  «       |«      «      S r‡   )r;   ÚbuildÚhasattrrÍ   )r‰   rÒ   rØ   s      r‹   Úcall_obj_hasattrz$BaseBuiltinVariable.call_obj_hasattrw  s'   € ô ×$Ñ$ R¬°×1HÑ1HÓ1JÈDÓ)QÓRÐRr�   c                 ó8   — t        | j                  «       «      dfS ©NF)ÚhashrÍ   )r‰   rÒ   s     r‹   Ú	hash_implzBaseBuiltinVariable.hash_impl|  s   € ä�D×+Ñ+Ó-Ó.°Ð5Ð5r�   Úotherr¹   c                 ó$   — ddl m}  || |||«      S )Nr6   )Ú python_constant_richcompare_impl)Úobject_protocolrì   )r‰   rÒ   rê   r¹   rì   s        r‹   Úrichcompare_implz$BaseBuiltinVariable.richcompare_impl€  s   € õ 	Fá/°°b¸%ÀÓDÐDr�   c                 óf   — t        |t        «      xr  | j                  «       |j                  «       u S r‡   )Ú
isinstancer¾   rÍ   ©r‰   rê   s     r‹   Úis_python_equalz#BaseBuiltinVariable.is_python_equalŠ  s1   € Ü˜%Ô!4Ó5ò 
Ø×#Ñ#Ó%¨×)AÑ)AÓ)CÐCð	
r�   r„   r…   c                 óÐ  •— |dk(  �rNt        |«      dk(  �r?|�s<|d   }| j                  «       t        u rMt        |t        j
                  «      r3t        j                  |t        j                  |j                  «      «      S | j                  «       t        u r²t        |t        j                  «      r3t        j                  |t        j                  |j                  «      «      S |j                  «       rUt        |j                  «       t        «      r7t        j                  |t        j                  |j                  «       «      «      S t        ||«      S t        ‰| �=  ||||«      S )NÚ__repr__r6   r   )r¨   rÍ   Úobjectrð   r   rg   r;   rã   rô   rÀ   rß   ÚUserDefinedClassVariableÚis_python_constantrW   ÚsuperÚcall_method)r‰   rÒ   rØ   r„   r…   ÚargÚ	__class__s         €r‹   rù   zBaseBuiltinVariable.call_method�  s  ø€ ð �:Ó¤# d£)¨q£.ºØ�q‘'ˆCØ×&Ñ&Ó(¬FÑ2´zØ”Y×8Ñ8ô8ô '×,Ñ,¨R´·±ÀÇÁÓ1KÓLÐLØ×&Ñ&Ó(¬DÑ0Ü˜c¤9×#EÑ#EÔFÜ*×0Ñ0°´T·]±]À3Ç9Á9Ó5MÓNÐNØ×)Ñ)Ô+´
Ø×*Ñ*Ó,¬dô1ô +×0Ñ0ØœDŸM™M¨#×*@Ñ*@Ó*BÓCóð ô    CÓ(Ð(Ü‰wÑ" 2 t¨T°6Ó:Ð:r�   ©r×   ri   r~   N)rŽ   r�   r�   r‘   r¿   r   Ú__annotations__Úclassmethodr"   rÊ   rÍ   rÙ   r“   r;   rá   r<   rå   ÚtupleÚintÚboolré   rî   rõ   rò   Úlistr’   rù   Ú__classcell__©rû   s   @r‹   r¾   r¾   Q  s4  ø… ñ
ð €CˆƒOàð" sð "°Fð "Ð?Tò "ó ð"ð Có óJð
Ø-ð
Ø58ð
à	ó
ðSØ-ðSØ58ðSà	óSð
6Ð7ð 6¸EÀ#ÀtÀ)Ñ<Ló 6ðEà'ðEð ðEð ð	Eð
 
óEð
 Vð 
°ó 
ð
;à'ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
÷;ñ ;r�   r¾   c                   ój  ‡ — e Zd ZU dZ e«       Zdhej                  £Zede	de
dd fd„«       Zeej                  deede	f      fd„«       «       Zdefd	„Zeej                  deede	f      fd
„«       «       Zeej                  deedef   eee   edef   f   f   fd„«       «       Zeej                  deedef   eeeee   ef   ef      f   fd„«       «       Zedede	f   dee   dedee   dz  fd„«       Zdefd„Z e ee!e"e#ee$h«      Z%e e	   e&d<   de	de	ddfˆ fd„Z'defd„Z(de	fd„Z)de	fd„Z*	 dŽdddededefd„Z+de	fˆ fd„Z,d�d„Z-d ededefd!„Z.d edefd"„Z/d#ee   defd$„Z0d ededefd%„Z1ed ee   deeef   deee	   eee	f   f   fd&„«       Z2d ee   deeef   defd'„Z3edede	f   d#ee   d(ededee   eeef   gedz  f   fd)„«       Z4ed*e5jl                  defd+„«       Z7eddd,e5jp                  d-ededz  fd.„«       Z9ddded edededz  f
d/„Z:ddd e	defd0„Z;ddd edefd1„Z<edddefd2„«       Z=ddd ee   deeef   dedz  fd3„Z>i Z?eeedf   edee   eeef   gef   f   e&d4<   ddd ee   deeef   defd5„Z@ddd6ed ee   deeef   def
ˆ fd7„ZAddd8ededz  fd9„ZBddd8ededz  fd:„ZCddd8ededz  fd;„ZDddd8edefd<„ZEddd8ededz  fd=„ZFddd8ededz  fd>„ZGd?„ ZHddd ededz  fd@„ZIdddAee   defdB„ZJdddCedz  dDedz  dedz  fdE„ZKeIZLeIZMddd8edefdF„ZNddd8edefdG„ZOddd8edefdH„ZPddd8ed ededef
dI„ZQddd ededz  fdJ„ZRd ededefdK„ZSddd edefdL„ZTddd e	de	defdM„ZUddd edededz  fdN„ZVddd8ededz  fdO„ZWdPe	d edededz  fdQ„ZXddd8ededz  fdR„ZYddd ededefdS„ZZddd ededefdT„Z[ddd ededefdU„Z\ddd ededefdV„Z]ddd ededefdW„Z^ddd8edXedefdY„Z_dddZed[edefd\„Z`dddCedDedefd]„Zaddd edefd^„Zbddded_ededef
d`„Zcdddedaedefdb„Zdddd6edefdc„Zeddddedeedefdf„Zfddddedefdg„Zgddddedefdh„Zhddddedededz  fdi„ZidddCedefdj„Zjdddked ededef
dl„Zkddd edefdm„Zldddnedefdo„Zmdddpedqedefdr„Zndddpedqedefds„ZodddCedDededz  fdt„ZpdddCedDededz  fdu„ZqdddCedDededz  fdv„ZrdddCedDededz  fdw„ZsdddCedDededz  fdx„ZtdddCedDededz  fdy„ZudddCedDededz  fdz„ZvdddCedDededz  fd{„ZwdddCedDededz  fd|„ZxdddCedDededz  fd}„ZydddCedDededz  fd~„ZzdddCedDededz  fd„Z{dddCedDededz  fd€„Z|dddCedDededz  fd�„Z}dddCedDededz  fd‚„Z~dddCedDededz  fdƒ„ZdddCedDededz  fd„„Z€dddCedDededz  fd…„Z�dddCedDededz  fd†„Z‚dddCedDededz  fd‡„ZƒdddCedDededz  fdˆ„Z„dddCedDededz  fd‰„Z…dddCedDededz  fdŠ„Z†dddCededz  fd‹„Z‡dddCedDedefdŒ„Zˆdedefd�„Z‰ˆ xZŠS )�ÚBuiltinVariableað  
    A VariableTracker that represents a built-in value (functions and operators).
    A lot of the code here assumes it will be a function object.

    The BuiltinVariable class wraps Python built-in functions (like len, isinstance, etc.)
    and operators (like +, -, *, etc.) to enable symbolic execution during tracing. This allows
    Dynamo to properly handle these operations when converting Python code to FX graphs while
    maintaining correct semantics and enabling optimizations.
    ÚfnrÀ   rÁ   r~   c                 óf   — t        |j                  t        j                  «      «        | ||¬«      S rÃ   rÅ   rÈ   s      r‹   rÊ   z"BuiltinVariable.create_with_sourceº  s(   € ä�f×'Ñ'¬×(BÑ(BÓCÔDÙ�5 Ô(Ð(r�   .c                  óv  — h t         ’t        ’t        ’t        ’t        ’t
        ’t        ’t        ’t        ’t        ’t        ’t        ’t        ’t        ’t        ’t        ’t         ’t"        ’t$        ’t&        ’t(        ’t*        ’t,        ’t.        ’t.        j                  ’t0        ’t2        ’t4        j                   ’t4        j6                  ’t4        j8                  ’t4        j:                  ’t4        j<                  ’t4        j>                  ’t4        j(                  ’t4        j@                  ’t4        jB                  ’t4        jD                  ’t4        jF                  ’t4        jH                  ’t4        jJ                  ’t4        jL                  ’t4        jN                  ’t4        jP                  ’t4        jR                  ’t4        jT                  ’t4        jV                  ’t4        jX                  ’t4        jZ                  ’t4        j\                  ’t4        j^                  ’t4        j`                  ’t4        jb                  ’t4        jd                  ’t4        jf                  ’t4        jh                  ’t4        jj                  ’t4        jl                  ’t4        jn                  ’t4        jp                  ’t4        jr                  ’t4        jt                  ’t4        jv                  ’} ddl<m=} | j}                   |j~                  «       «       | j}                  d„ t€        j‚                  j                  «       D «       «       | S )Nr6   )rb   c              3   óh   K  — | ]*  }t        |t        t        j                  «      «      sŒ'|–— Œ, y ­wr‡   )rð   rß   ÚmathÚsqrt©Ú.0Úxs     r‹   ú	<genexpr>z;BuiltinVariable._constant_fold_functions.<locals>.<genexpr>  s!   è ø€ ÒW˜¼
À1ÄdÌ4Ï9É9ÃoÕ8V”1ÑWùs   ‚(2«2)BÚabsÚallÚanyÚasciiÚbinr  ÚcallableÚchrÚcomplexÚdivmodÚfloatÚformatrÝ   rn   r   r¨   ÚmaxÚminÚoctÚordÚpowÚreprÚroundr“   Úsumrß   r²   ÚposÚnegÚnot_ÚtruthÚinvertÚmulr³   ÚfloordivÚtruedivÚmodrÑ   Úsubrµ   Úlength_hintÚlshiftÚrshiftÚand_Úor_ÚxorÚipowÚimulr´   Ú	ifloordivÚitruedivÚimodÚiaddÚisubÚilshiftÚirshiftÚiandÚixorÚiorÚindexÚtensorrb   ÚupdateÚvaluesr  Ú__dict__)Úfnsrb   s     r‹   Ú_constant_fold_functionsz(BuiltinVariable._constant_fold_functions¿  s”  € ð?(
Üð?(
äð?(
ô ð?(
ô ð	?(
ô
 ð?(
ô ð?(
ô ð?(
ô ð?(
ô ð?(
ô ð?(
ô ð?(
ô ð?(
ô ð?(
ô ð?(
ô ð?(
ô  ð!?(
ô" ð#?(
ô$ ð%?(
ô& ð'?(
ô( ð)?(
ô* ð+?(
ô, ð-?(
ô. ð/?(
ô0 ð1?(
ô2 �J‰Jð3?(
ô4 ð5?(
ô6 ð7?(
ô8 �L‰Lð9?(
ô: �L‰Lð;?(
ô< �L‰Lð=?(
ô> �M‰Mð??(
ô@ �N‰NðA?(
ôB �O‰OðC?(
ôD �L‰LðE?(
ôF �L‰LðG?(
ôH �O‰OðI?(
ôJ ×ÑðK?(
ôL ×ÑðM?(
ôN �L‰LðO?(
ôP �L‰LðQ?(
ôR �L‰LðS?(
ôT ×ÑðU?(
ôV × Ñ ðW?(
ôX �O‰OðY?(
ôZ �O‰Oð[?(
ô\ �M‰Mð]?(
ô^ �L‰Lð_?(
ô` �L‰Lða?(
ôb �M‰Mðc?(
ôd �M‰Mðe?(
ôf ×Ñðg?(
ôh ×Ñði?(
ôj ×Ñðk?(
ôl �M‰Mðm?(
ôn �M‰Mðo?(
ôp �M‰Mðq?(
ôr ×Ñðs?(
ôt ×Ñðu?(
ôv �M‰Mðw?(
ôx �M‰Mðy?(
ôz �L‰Lð{?(
ô| �N‰Nð}?(
ˆõ@ 	5à�
‰
Ð2Ð+×2Ñ2Ó4Ô5Ø�
‰
ÑWœdŸm™m×2Ñ2Ó4ÔWÔWØˆ
r�   c                 ó:   — | j                   | j                  «       v S r‡   )r  rF  rÌ   s    r‹   Úcan_constant_fold_throughz)BuiltinVariable.can_constant_fold_through  s   € Ø�w‰w˜$×7Ñ7Ó9Ð9Ð9r�   c                  óê  — h t         j                  ’t         j                  ’t         j                  ’t         j                  ’t         j
                  ’t         j                  ’t         j                  ’t         j                  ’t         j                  ’t         j                  ’t         j                  ’t         j                  ’t         j                  ’t         j                  ’t         j                  ’t         j                   ’t         j"                  ’t         j$                  ’t         j&                  ’t         j(                  ’t         j*                  ’t         j,                  ’t         j.                  ’t         j0                  ’t         j2                  ’t         j4                  ’t         j6                  ’t         j8                  ’t         j:                  ’t         j<                  ’t         j>                  ’t         j@                  ’t         jB                  ’t         jD                  ’t         jF                  ’t         jH                  ’t         jJ                  ’t         jL                  ’t         jN                  ’} | S r‡   )(r²   r  r$  r%  r&  r(  r   r)  r³   r*  r+  r,  rÑ   ÚltÚgtÚgeÚleÚneÚeqr-  r.  r/  r0  r1  r2  r3  r4  r5  r´   r6  r7  rµ   r8  r9  r:  r;  r<  r=  r>  r?  ©rE  s    r‹   Ú_fx_graph_functionsz#BuiltinVariable._fx_graph_functions  sQ  € ð(
Ü�L‰Lð(
ä�L‰Lð(
ô �L‰Lð(
ô �M‰Mð	(
ô
 �O‰Oð(
ô �L‰Lð(
ô �L‰Lð(
ô �O‰Oð(
ô ×Ñð(
ô ×Ñð(
ô �L‰Lð(
ô �L‰Lð(
ô �K‰Kð(
ô �K‰Kð(
ô �K‰Kð(
ô  �K‰Kð!(
ô" �K‰Kð#(
ô$ �K‰Kð%(
ô& �L‰Lð'(
ô( × Ñ ð)(
ô* �O‰Oð+(
ô, �O‰Oð-(
ô. �M‰Mð/(
ô0 �L‰Lð1(
ô2 �L‰Lð3(
ô4 �M‰Mð5(
ô6 �M‰Mð7(
ô8 ×Ñð9(
ô: ×Ñð;(
ô< ×Ñð=(
ô> ×Ñð?(
ô@ �M‰MðA(
ôB �M‰MðC(
ôD �M‰MðE(
ôF ×ÑðG(
ôH ×ÑðI(
ôJ �M‰MðK(
ôL �M‰MðM(
ôN �L‰LðO(
ˆðR ˆ
r�   c                  ó~   — t         g d¢t        j                  ft        j                   g d¢t        j                  fi} | S )N)Ú__pow__Ú__rpow__Ú__ipow__)r   r²   r4  rP  s    r‹   Ú_binopszBuiltinVariable._binops9  s5   € ô Ò5´x·}±}ÐEÜ�L‰LÒ>ÄÇÁÐNð	U
ˆð ˆ
r�   c                  ó¸  ‡‡‡‡‡— ddl mŠ ddlmŠ ddlmŠ ddlmŠ ddlm	Š i } t        j                  «       j                  «       D �]~  \  }\  }}g | |<   g | |<   |\  }}}||dœdd	d
t        dt        dt        dt        dt        fˆfd„}| |   j                  ‰t        f|f«       | |   j                  t        ‰f|f«       |dœdd	d
t        dt        dt        dt        f
d„}| |   j                  ‰t        f|f«       | |   j                  t        ‰f|f«       |dœdd	d
t        dt        dt         dt"        f   dt        f
d„}	| |   j                  t$        t        f|	f«       | |   j                  t        t$        f|	f«       | |   j                  t$        t        f|	f«       | |   j                  t        t$        f|	f«       �Œ� dt         dt"        f   dt&        t(        t(        t*        t*        f   t,        f      fˆˆˆˆˆfd„}
t/        j0                  «       D ]9  }t3        |«      st5        d|› d�«      ‚|| v rt5        d|› �«      ‚ |
|«      | |<   Œ; | S )Nr6   )ÚBaseUserFunctionVariable©ÚNNModuleVariable)Úsupported_const_comparison_ops)ÚBaseTorchVariable)rh   )Úforward_nameÚreverse_namerÒ   rj   ÚaÚbr]  r^  r~   c                óp   •— t        |‰«      r|j                  | ||gi «      S |j                  | ||gi «      S r‡   )rð   rù   )rÒ   r_  r`  r]  r^  rh   s        €r‹   Úuser_defined_handlerz=BuiltinVariable._binop_handlers.<locals>.user_defined_handlero  s>   ø€ ô, ˜aÐ!4Ô5ØŸ=™=¨¨\¸A¸3ÀÓCÐCàŸ=™=¨¨\¸A¸3ÀÓCÐCr�   )r]  c                ó,   — |j                  | ||gi «      S r‡   ©rù   )rÒ   r_  r`  r]  s       r‹   Úuser_defined_inplace_handlerzEBuiltinVariable._binop_handlers.<locals>.user_defined_inplace_handler‘  s   € ð —}‘} R¨¸°s¸BÓ?Ð?r�   ©r  r  .c          
      óp   — ddl m}  ||  | j                  j                  d|gt	        ||gi «      ¢­Ž «      S ©Nr6   ©Úwrap_fx_proxyÚcall_function)Úbuilderrj  ÚoutputÚcreate_proxyr0   )rÒ   r_  r`  r  rj  s        r‹   Údynamic_handlerz8BuiltinVariable._binop_handlers.<locals>.dynamic_handler¢  sC   € õ 3á$ØØ*�B—I‘I×*Ñ*Ø'¨ðÜ.?ÀÀAÀÈÓ.Kòóð r�   r¹   c           	      ó^  •‡ ‡
‡— dddt         dt         dt         fˆ fd„}t        t        f|fg}‰ t        v r›t        t        f|fg}t        ‰ «      }|j	                  t
        t         f|j                  ft         t
        f|j                  fg«       t        ‰    Š
dddt         dt         dt         fˆ
fd„}|j                  t         t         f|f«       |S t        t        f|fg}‰ ‰j                  «       v �r:‰ j                  j                  d«      �r ‰ t        «       d «      Šdddt         dt         dt         fˆfd	„}|}|}t        t
        ‰t        ‰‰t        ‰f}|j	                  |t        f|ft        |f|fg«       t        ‰ «      }|j	                  t        t         f|j                  ft         t        f|j                  ft
        t         f|j                  ft         t
        f|j                  fg«       ddd
t         dt         dt         d z  fˆ fd„}	|j                  t         t         f|	f«       |S )NrÒ   rj   r_  r`  r~   c                 óè   •— 	 t        j                  |  ‰|j                  |j                  «      «      S # t        $ r4}t	        t        |«      | t        |j                  «      ¬«       Y d }~y d }~ww xY w)N©r„   )r;   rã   rÀ   Ú	TypeErrorr   rß   r  r„   )rÒ   r_  r`  Úexcr¹   s       €r‹   Úcompare_by_valuezYBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.compare_by_valueÆ  s\   ø€ ðÜ*×0Ñ0°±R¸¿¹ÀÇÁÓ5IÓJÐJøÜ ò Ü,Ü˜S›	ØÜ! #§(¡(›^÷ò ûðús   ƒ04 ´	A1½*A,Á,A1c                 ó&   •— ddl m}  || ||‰«      S )Nr6   ©Úgeneric_richcompare)rí   rx  )rÒ   r_  r`  rx  Údunders       €r‹   ÚhandlerzPBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.handlerø  s   ø€ õ
 Eá.¨r°1°a¸Ó@Ð@r�   Úis_c                 ó0   •— t        j                  | ‰«      S r‡   )r;   rã   )rÒ   r_  r`  Únone_results      €r‹   ÚneverzNBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.never  s   ø€ ô
 +×0Ñ0°°[ÓAÐAr�   ÚleftÚrightc                 óš   •— t        ||«      }|€y |j                  «       }t        j                  | ‰j                  dk(  r|«      S | «      S )Nr{  )r]   rÍ   r;   rã   rŽ   )rÒ   r  r€  ÚresultÚis_samer¹   s        €r‹   Ú	handle_iszRBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.handle_isC  sY   ø€ ô
 1°°uÓ=�FØ�~Ø#Ø$×7Ñ7Ó9�GÜ*×0Ñ0Ø r§{¡{°eÒ';˜Góð ØELÀóð r�   )r;   r<   rz   r  Úextendrc   Ú_comparison_with_symnodeÚappendrC  rŽ   Ú
startswithrõ   rd   rD   r>   Ú_comparison_with_tensor)r¹   ru  r‚  Úop_varrz  r~  Úobj_op_noneÚnone_op_objÚtypes_that_are_never_noner„  ry  r}  r\  rX  rZ  rh   r[  s   `         @@€€€€€r‹   Úcreate_cmp_op_handlersz?BuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlersÃ  s°  û€ ð
Ø/ð
Ü4Cð
ÜHWð
ä õ
ô( $Ô%5Ð6Ð8HÐIÐJð ð Ô(Ñ(ô
 'Ô(8Ð9Ð;KÐLð�ô )¨Ó,�à—‘ô -¬oÐ>Ø"×;Ñ;ðô
 -¬oÐ>Ø"×;Ñ;ðð	ôô  -¨RÑ0�ðAØ3ðAä&ðAô 'ðAô %õ	Að —‘¤´ÐAÀ7ÐKÔLØ�ä(Ô*:Ð;Ð=MÐNÐOˆFàÐ3×:Ñ:Ó<Ò<ÀÇÁ×AWÑAWØõBñ !¤£¨4Ó0�ðBØ3ðBä&ðBô 'ðBô %õ	Bð $�Ø#�ô #Ü#Ø$Ü$Ø'Ø,Ü%Ø%ð	-Ð)ð —‘ð 7Ô8HÐIØ'ðô
 .Ð/HÐIØ'ðð	ôô )¨Ó,�Ø—‘ô ,¬_Ð=Ø"×:Ñ:ðô
 -¬nÐ=Ø"×:Ñ:ðô
 -¬oÐ>Ø"×;Ñ;ðô
 -¬oÐ>Ø"×;Ñ;ððôð*Ø3ðä)ðô +ðô % tÑ+õ	ð —‘¤´ÐAÀ9ÐMÔNàˆMr�   zcomparison op z is not callablezduplicate handler for op )Ú	functionsrX  Ú	nn_modulerZ  rA  r[  r©   r\  Úuser_definedrh   r  rV  Úitemsr;   r“   r‡  r   r   rc   r  rÿ   Ú_TrackersTypeÚ_HandlerCallbackrb   rC  r  r±   )Úop_handlersr¹   Úmagic_method_namesÚin_place_opr]  r^  Úinplace_namerb  re  ro  rŽ  r\  rX  rZ  rh   r[  s              @@@@@r‹   Ú_binop_handlerszBuiltinVariable._binop_handlersK  sõ  ü€ õ$ 	8Ý/Ý:Ý,Ý5ð -/ˆô ×$Ñ$Ó&×,Ñ,Ó.óZ	ñ 
ØÙ-Ð à ˆK˜‰OØ')ˆK˜Ñ$à7IÑ4ˆL˜,¨ð %1Ø$0òDØ/ðDä"ðDô #ðDô
 "ðDô "ðDô !õDð6 ˜‰O×"Ñ"Ø%¤Ð7Ð9MÐNôð ˜‰O×"Ñ"Ü!Ð#6Ð7Ð9MÐNôð %1ò@Ø/ð@ä"ð@ô #ð@ô
 "ð@ô !ó@ð ˜Ñ$×+Ñ+Ø%¤Ð7Ð9UÐVôð ˜Ñ$×+Ñ+Ü!Ð#6Ð7Ð9UÐVôð *,òØ/ðä"ðô #ðô
 ˜S¤#˜XÑ&ðô !óð  ˜‰O×"Ñ"Ü!¤?Ð3°_ÐEôð ˜‰O×"Ñ"Ü!¤?Ð3°_ÐEôð
 ˜Ñ$×+Ñ+Ü!¤?Ð3°_ÐEôð ˜Ñ$×+Ñ+Ü!¤?Ð3°_ÐEöðqZ	ð|O	Ü˜œc˜Ñ"ðO	ä”%œœm¬]Ð:Ñ;Ô=MÐMÑNÑO÷O	ñ O	ôb +×1Ñ1Ó3ò 	9ˆBÜ˜B”<Ü$ ~°b°TÐ9IÐ%JÓKÐKØ�[Ñ Ü$Ð'@ÀÀÐ%EÓFÐFÙ4°RÓ8ˆK˜ŠOð	9ð Ðr�   r¹   Úa_typeÚb_typeNc                 óÆ   — t         j                  «       j                  | «      }|€y g }|D ]3  \  \  }}}t        ||«      sŒt        ||«      sŒ#|j	                  |«       Œ5 |S r‡   )r  r™  ÚgetÚ
issubclassr‡  )r¹   rš  r›  ÚhandlersÚmatchesÚtype1Útype2rz  s           r‹   Ú_find_binop_handlerz#BuiltinVariable._find_binop_handler]  si   € ô #×2Ñ2Ó4×8Ñ8¸Ó<ˆØÐØàˆØ'/ò 	(Ñ#‰NˆU�E˜GÜ˜& %Õ(¬Z¸ÀÕ-FØ—‘˜wÕ'ð	(ð ˆr�   c                 ó:   — | j                   | j                  «       v S r‡   )r  rQ  rÌ   s    r‹   Úcan_insert_in_graphz#BuiltinVariable.can_insert_in_graphk  s   € Ø�w‰w˜$×2Ñ2Ó4Ð4Ð4r�   ÚMUST_USE_SPECIALIZEDr…   c                 ól   •— || j                   v rt        d|›d�«      ‚t        ‰| �  di |¤Ž || _        y )Nz!Use the specialized VT class for z9, not BuiltinVariable. E.g. DictBuiltinVariable for dict.rˆ   )r¦  r±   rø   Ú__init__r  )r‰   r  r…   rû   s      €r‹   r¨  zBuiltinVariable.__init__t  sH   ø€ Ø�×*Ñ*Ñ*Ü Ø3°B°6ð :5ð 6óð ô 	‰ÑÑ"˜6Ò"Øˆ�r�   c                 ó„   — | j                   €d}n| j                   j                  }| j                  j                  › d|› d�S )NÚNoneú(ú))r  rŽ   rû   )r‰   rØ   s     r‹   rô   zBuiltinVariable.__repr__}  s=   € Ø�7‰7ˆ?Ø‰Dà—7‘7×#Ñ#ˆDà—.‘.×)Ñ)Ð*¨!¨D¨6°Ð3Ð3r�   c                 ó   — | j                   S r‡   rf  rÌ   s    r‹   rÍ   z"BuiltinVariable.as_python_constant…  ó   € Ø�w‰wˆr�   c                 ó   — | j                   S r‡   rf  rÌ   s    r‹   Úget_real_python_backed_valuez,BuiltinVariable.get_real_python_backed_valueˆ  r®  r�   rÒ   rj   rê   Úreversec                 ó¬  — t        | j                  t        «      st        j                  |t
        «      S 	 |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  rß   r;   rã   ÚNotImplementedrÍ   ÚNotImplementedErrorÚ__or__)r‰   rÒ   rê   r±  Ú	other_valr‚  s         r‹   Ú
nb_or_implzBuiltinVariable.nb_or_impl‹  sª   € ô ˜$Ÿ'™'¤4Ô(Ü"×(Ñ(¨¬^Ó<Ð<ð	=Ø×0Ñ0Ó2ˆIô �d—g‘g“×%Ñ% d§g¡g¨yÓ9ˆØ”^Ñ#Ü"×(Ñ(¨¬^Ó<Ð<Ü×$Ñ$ R¨Ó0Ð0øô #ò 	=Ü"×(Ñ(¨¬^Ó<Ò<ð	=ús   ¶B- Â-#CÃCc                 óÖ   •— t         t        j                   t        t        j                  t        t        j
                  i}| j                  |v r|| j                     S t        ‰| �!  «       S r‡   )	r  r©   r   Úint64r  Úfloat64r  rø   Úas_proxy)r‰   ÚDTYPErû   s     €r‹   r»  zBuiltinVariable.as_proxy¢  sO   ø€ ä”%—*‘*Ü”—‘Ü”5—=‘=ð
ˆð
 �7‰7�eÑØ˜Ÿ™‘>Ð!Ü‰wÑÓ!Ð!r�   c                 ó0  — | j                   j                  }| j                   j                  dk7  r"t        d| j                   j                  › �«      ‚||j                  j
                  v rt        d«      ‚|j                  |j                  |d¬«      «       y )NÚbuiltinszExpected builtins module, got rÏ   TrÐ   )r  rŽ   r�   r±   rÒ   rÓ   rÔ   rÕ   rÖ   s      r‹   rÙ   zBuiltinVariable.reconstruct¬  s}   € Ø�w‰w×ÑˆØ�7‰7×Ñ Ò+Ü Ð#AÀ$Ç'Á'×BTÑBTÐAUÐ!VÓWÐWØ�7—:‘:×'Ñ'Ñ'Ü Ð!2Ó3Ð3Ø×Ñ˜g×8Ñ8¸À4Ð8ÓHÕIr�   r„   c                 ó   — t        ||«      S r‡   )r$   ©r‰   r„   r…   s      r‹   Úconstant_argszBuiltinVariable.constant_args´  s   € Ü" 4¨Ó0Ð0r�   c                 óx   — d}|D ]2  }t        |t        j                  «      r y|xs |j                  «       }Œ4 |S rç   )rð   r   rÞ   Ú	is_tensor)r‰   r„   Ú
any_tensorrú   s       r‹   Útensor_argszBuiltinVariable.tensor_args·  sA   € Øˆ
Øò 	7ˆCÜ˜#œy×8Ñ8Ô9ÙØ#Ò6 s§}¡}£‰Jð	7ð Ðr�   Ú	arg_typesc                 óŒ   — d}|D ]<  }t        |t        j                  «      r y|xs t        |t        j                  «      }Œ> |S rç   )rž  r   rÞ   rd   )r‰   rÆ  rÄ  Úarg_types       r‹   Útensor_args_typez BuiltinVariable.tensor_args_type¿  sJ   € Øˆ
Ø!ò 	VˆHÜ˜(¤I×$=Ñ$=Ô>ÙØ#ÒU¤z°(¼I×<TÑ<TÓ'U‰Jð	Vð Ðr�   c                 ó  — g }g }t        j                  ||j                  «       «      D ]5  }|j                  «       r|j	                  |«       Œ%|j	                  |«       Œ7 t        d„ |D «       «      xr  | j                  |Ž S )Nc              3   ób   K  — | ]'  }|j                   �t        |j                   «      nd–— Œ) y ­wrç   )rÁ   r!   )r  Úts     r‹   r  zBBuiltinVariable.python_and_tensor_constant_only.<locals>.<genexpr>Ñ  s0   è ø€ ò 
àð -.¯H©HÐ,@Ô˜qŸx™xÔ(ÀeÓKñ
ùs   ‚-/)Ú	itertoolsÚchainrC  rÃ  r‡  r  rÁ  )r‰   r„   r…   rÅ  Únon_tensor_argsÚis         r‹   Úpython_and_tensor_constant_onlyz/BuiltinVariable.python_and_tensor_constant_onlyÇ  s†   € ð ˆØˆÜ—‘  v§}¡}£Ó7ò 	*ˆAØ�{‰{Œ}Ø×"Ñ" 1Õ%à×&Ñ& qÕ)ð		*ô
 ñ 
à ô
ó 
ò 3ð !ˆd× Ñ  /Ð2ð	3r�   c                 ó¸   — | D �cg c]  }|j                  «       ‘Œ c}|j                  «       D ��ci c]  \  }}||j                  «       “Œ c}}fS c c}w c c}}w r‡   )rÍ   r’  )r„   r…   r  ÚkÚvs        r‹   Úunwrap_unspec_args_kwargsz)BuiltinVariable.unwrap_unspec_args_kwargsÖ  sX   € ð 15Ö5¨1�×$Ñ$Õ&Ò5Ø28·,±,³.÷8
Ù*.¨!¨QˆAˆq×#Ñ#Ó%Ñ%ó8
ð 
ð 	
ùÒ5ùó 8
s
   …A±Ac                 ó>   — | j                  «       xr t        ||«      S r‡   )rH  r&   rÀ  s      r‹   Úhas_constant_handlerz$BuiltinVariable.has_constant_handlerÞ  s'   € ð ×-Ñ-Ó/ò 
Ô4QØ�&ó5
ð 	
r�   Ú
has_kwargsc           
      ó~  ‡ ‡‡‡‡‡‡‡‡‡‡‡‡— ddl mŠmŠ t        ‰ «      Šg Š‰D �cg c]  }t	        |‰«      sŒ|‘Œ }}|r‡t        ˆfd„|D «       «      sˆˆˆfd„S t        j                  ‰ ‰D �cg c]  }t	        |‰«      rt        n|‘Œ c}‰«      Šdddt        t           dt        t        t        f   d	t        d z  fˆˆˆfd
„}|S t        j                  ‰ «      rHt	        ‰ t        «      s‰ t        u r0dddt        t           dt        t        t        f   d	t        fˆ fd„}|S ‰j!                  «       ri‰ t"        j$                  u rt	        ‰d   t&        j(                  «      r:‰j+                  ‰«      r‰j,                  S ‰r‰j/                  ‰j,                  «       t1        ‰«      dk(  rm‰skt        j2                  ‰ g‰¢­Ž Š‰snRt1        ‰«      dk(  r‰\  Š‰j/                  ˆfd„«       n+dddt4        dt4        d	t4        fˆfd„}‰j/                  |«       t7        ‰d‰ j8                  › �d «      Š‰rDdddt        t           dt        t        t        f   d	t        d z  fˆ ˆˆfd„}‰j/                  |«       ‰j;                  «       rˆt        d„ ‰D «       «      r4‰s2dddt        t           dt        t        t        f   d	t        d z  fˆ fd„}	n1dddt        t           dt        t        t        f   d	t        d z  fˆ fd„}	‰j/                  |	«       dt        t           d	d fˆˆ ˆfd„Št1        ‰«      dk(  rˆfd„S t1        ‰«      dk(  r8‰\  Šdddt        t           dt        t        t        f   d	t        d z  fˆˆfd„}
|
S dddt        t           dt        t        t        f   d	t        d z  fˆˆfd„}
|
S c c}w c c}w )Nr6   )ÚLazyConstantVariableÚLazyVariableTrackerc              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wr‡   )rž  )r  rÌ  rÚ  s     €r‹   r  z0BuiltinVariable._make_handler.<locals>.<genexpr>÷  s   øè ø€ ÒO¸q”z !Ð%9×:ÑOùó   ƒc           
      ó    •— ‰j                  | |D �cg c],  }t        |‰«      rt        |‰«      s|j                  «       n|‘Œ. c}|«      S c c}w r‡   )rk  rð   Úrealize)rÒ   r„   r…   r_  rÚ  rÛ  Úobjs       €€€r‹   r™   z/BuiltinVariable._make_handler.<locals>.<lambda>û  sa   ø€ °×0AÑ0AØð "&öð
 ô & aÐ)<Ô=Ü *¨1Ð.BÔ Cð Ÿ	™	œð ñòð ó
1€ ùòs   ’1A
rÒ   rj   r„   r…   r~   c                 óô   •— |D ]d  }t        |‰«      sŒ|j                  «       t        usŒ'‰j                  | |D �cg c]   }t        |‰«      r|j	                  «       n|‘Œ" c}|«      c S   ‰| ||«      S c c}w r‡   )rð   Úget_handler_type_for_dispatchr<   rk  rß  )rÒ   r„   r…   r_  rÔ  rÚ  Úinner_handlerrà  s        €€€r‹   Úlazy_constant_handlerz<BuiltinVariable._make_handler.<locals>.lazy_constant_handler  s—   ø€ ð
 ò �AÜ! !Ð%9Õ:Ø×:Ñ:Ó<ÔDTÒTØ#&×#4Ñ#4Ø "ð
 .2ö	!"ð )*ô (2°!Ð5IÔ'Jð %&§I¡I¤Kà)*ñ%+ò!"ð !'ó	$ò 	ðñ % R¨¨vÓ6Ð6ùò!"s   »%A5c                 ó¶   •— ‰t         u r:t        d„ |D «       «      s(t        dt        |«      dg t        j
                  ¢¬«       t        j                  ‰||«      S )Nc              3   ó|   K  — | ]4  }|j                  «       xr t        |j                  «       t        «      –— Œ6 y ­wr‡   )r÷   rð   rÍ   r“   r  s     r‹   r  zWBuiltinVariable._make_handler.<locals>.create_exception_class_object.<locals>.<genexpr>9  s:   è ø€ ò 4àð ×(Ñ(Ó*ÒV¬z¸!×:NÑ:NÓ:PÔRUÓ/VÓVñ4ùs   ‚:<zassert with non-string messagez1Dynamo only supports asserts with string messages©Úgb_typeÚcontextÚexplanationÚhints)r±   r  r   r“   r   ÚSUPPORTABLEr   ÚExceptionVariable)rÒ   r„   r…   r  s      €r‹   Úcreate_exception_class_objectzDBuiltinVariable._make_handler.<locals>.create_exception_class_object4  s^   ø€ ð
 œÑ'´ñ 4à!ô4ô 1ô "Ø @Ü # D£	Ø$WØ>Ô 1× =Ñ =Ð>õ	ô !×2Ñ2°2°t¸VÓDÐDr�   r   r   c                 ó   •—  ‰| g|¢­Ž S r‡   rˆ   )rÒ   r„   Ú_Úbinop_handlers      €r‹   r™   z/BuiltinVariable._make_handler.<locals>.<lambda>[  s   ø€ ±MÀ"Ð4LÀtÒ4L€ r�   rð  c                 ó2   •— ‰D ]  } || g|¢­Ž }|sŒ|c S  y r‡   rˆ   )rÒ   r„   rð  r  ÚrvÚbinop_handlerss        €r‹   Úcall_binop_handlersz:BuiltinVariable._make_handler.<locals>.call_binop_handlers^  s.   ø€ ð -ò &˜Ù ˜] Tš]˜ÚØ#%šIð&ð  r�   Úcall_c                 óè  •— 	  ‰| g|¢­i |¤ŽS # t         $ r£ 	  t        j                  ‰«      j                  | g|¢­i |¤Ž ‚ # t         $ rk}‰j	                  ||«      }|sLt
        j                  d‰|«       t        dd‰› d|› d|› �d‰j                  › �g t        j                  ¢¬«       Y d }~Y y d }~ww xY wt        $ r/}‰j	                  ||«      }|s‚ |j                  «        Y d }~y d }~ww xY w)Nz1incorrect arg count %s %s and no constant handlerz"invalid call to builtin op handlerzinvalid args to z: ú z/Encountered TypeError when trying to handle op rç  )rs  ÚinspectÚ	signatureÚbindr×  ÚlogÚwarningr   rŽ   r   Ú	DIFFICULTr   Úremove_from_stats)	rÒ   r„   r…   Úer×  rt  r  rà  Úself_handlers	         €€€r‹   Úcall_self_handlerz8BuiltinVariable._make_handler.<locals>.call_self_handlerm  s  ø€ ð
,á'¨Ð<¨TÒ<°VÑ<Ð<øÜ ò ðà<œ×)Ñ)¨,Ó7×<Ñ<¸RÐQÀ$ÒQÈ&ÒQð  øô %ò Ø/2×/GÑ/GÈÈfÓ/UÐ,Ù3ÜŸK™KØ SØ ,Ø !ôô
 *Ø(LØ*:¸<¸.ÈÈ4È&ÐPQÐRXÐQYÐ(ZØ.]Ð^`×^iÑ^iÐ]jÐ,kØ&DÔ(9×(CÑ(CÐ&Dõ	üð ûð-úô  #ò ,Ø+.×+CÑ+CÀDÈ&Ó+QÐ(Ù/Øà×)Ñ)×+Ð+Øûð,ús?   ƒ �	C1™)AÁC1Á	B7ÁA B2Â,C1Â2B7Â7C1Ã%C,Ã,C1c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr‡   )rž  r<   r  s     r‹   r  z0BuiltinVariable._make_handler.<locals>.<genexpr>—  s   è ø€ ÒG¸”J˜qÔ"2×3ÑGùó   ‚c                 ól  •— 	  ‰|D �cg c]  }|j                  «       ‘Œ c}Ž }t        j                  | «      S c c}w # t        $ r4}t        t        |«      | t	        |j
                  «      ¬«       Y d }~ŒSd }~wt        $ r0}t        dd‰› d|› �dg t        j                  ¢|¬«       Y d }~ŒŠd }~ww xY w)Nrr  úconstant fold exceptionúattempted to run function ú with arguments ú7Encountered exception when attempting to constant fold.©rè  ré  rê  rë  Úfrom_exc)rÍ   Ú	Exceptionr   rß   r  r„   r7   r   r   Ú
DYNAMO_BUGr;   rã   )rÒ   r„   r…   r  Úresrt  r  s         €r‹   Úconstant_fold_handlerz<BuiltinVariable._make_handler.<locals>.constant_fold_handler›  s¹   ø€ ðÙ Ø>BÖC¸˜a×2Ñ2Õ4ÒCð˜ô" +×0Ñ0°°SÓ9Ð9ùò! Døä$ò Ü0Ü  ›IØÜ!% c§h¡h£÷ò ûô
 ?ò Ü%Ø$=Ø&@ÀÀÐDTÐUYÐTZÐ$[Ø(aØ"AÔ$5×$@Ñ$@Ð"AØ%(÷ò ûðús-   ƒ? ‰: ? º? ¿	B3Á*A7Á7B3Â&B.Â.B3c                 óø  •— t        ||«      rk	  ‰|D �cg c]  }|j                  «       ‘Œ c}i |j                  «       D ��ci c]  \  }}||j                  «       “Œ c}}¤Ž}t        j                  | «      S y c c}w c c}}w # t        $ r0}t	        dd‰› d|› �dg t
        j                  ¢|¬«       Y d }~ŒVd }~wt        $ r4}t        t        |«      | t        |j                  «      ¬«       Y d }~Œ‘d }~ww xY w)Nr  r  r  r	  r
  rr  )r&   rÍ   r’  r7   r   r   r  r  r   rß   r  r„   r;   rã   )	rÒ   r„   r…   r  rÓ  rÔ  r  rt  r  s	           €r‹   r  z<BuiltinVariable._make_handler.<locals>.constant_fold_handler·  s  ø€ ô 5°T¸6ÔBðÙ"$ØBFÖ!G¸Q !×"6Ñ"6Õ"8Ò!Gð#ð KQÏ,É,Ë.÷#"ÙBFÀ!ÀQ A q×';Ñ';Ó'=Ñ$=ó#"ñ#˜Cô(  /×4Ñ4°R¸Ó=Ð=Øùò) "Hùó#"øô  Cò Ü)Ø(AØ*DÀRÀDÐHXÐY]ÐX^Ð(_Ø,eØ&EÔ(9×(DÑ(DÐ&EØ),÷ò ûô  )ò Ü4Ü $ S£	Ø "Ü%)¨#¯(©(£^÷ò ûðús?   �B •A:¬B ÁA?ÁB Á:B Â	C9Â&B9Â9C9Ã*C4Ã4C9c                 óø   •— | D �cg c]  }|j                  «       ‘Œ }}t        dd‰j                  › d‰› d‰› �d‰j                  › d|› d‰› d�d‰j                  › d|› d	‰j                  › d
�ddg¬«       y c c}w )Nz Failed to trace builtin operatorzbuiltin rø  z4Dynamo does not know how to trace builtin operator `z` with argument types z (has_kwargs r¬  zAvoid calling builtin `z?. Consider using an equivalent alternative function/method to `z`.z�If you are attempting to call a logging function (e.g. `print`), you can try adding it to `torch._dynamo.config.reorderable_logging_functions`.z"Please report an issue to PyTorch.rç  )Úpython_type_namer   rŽ   )r„   rú   Úreal_arg_typesrÆ  r  rØ  s      €€€r‹   Úcall_unimplementedz9BuiltinVariable._make_handler.<locals>.call_unimplementedØ  s³   ø€ Ø@DÖE¸˜c×2Ñ2Õ4ÐEˆNÐEÜØ:Ø" 2§;¡; -¨q°°¸1¸Z¸LÐIØRÐSU×S^ÑS^ÐR_ð `'Ø'5Ð&6°mÀJÀ<ÈqðRð .¨b¯k©k¨]Ð:PÐQ_ÐP`ð aTØTV×T_ÑT_ÐS`Ð`bðdðeà8ðöùò Fs   †A7c                 ó   •—  ‰|«      S r‡   rˆ   )rÒ   r„   r…   r  s      €r‹   r™   z/BuiltinVariable._make_handler.<locals>.<lambda>é  s   ø€ Ñ,>¸tÓ,D€ r�   c                 ó4   •—  ‰| ||«      }|r|S  ‰|«       |S r‡   rˆ   )rÒ   r„   r…   ró  r  rz  s       €€r‹   Úbuiltin_dispatchz7BuiltinVariable._make_handler.<locals>.builtin_dispatchí  s(   ø€ ñ
 ˜R  vÓ.�ÙØ�IÙ" 4Ô(Ø�	r�   c                 óJ   •— d }‰D ]  } || ||«      }|sŒ|c S   ‰|«       |S r‡   rˆ   )rÒ   r„   r…   ró  r  r  rŸ  s        €€r‹   r  z7BuiltinVariable._make_handler.<locals>.builtin_dispatchú  s>   ø€ ð
 �Ø"ò "�BÙ˜B  fÓ-�BÚØ!š	ð"ñ # 4Ô(Ø�	r�   )ÚlazyrÚ  rÛ  r  rž  r  Ú_make_handlerr<   r  r;   r’   r“   rù  ÚisclassÚBaseExceptionÚGeneratorExitr¥  r²   rµ   r   rd   rÉ  Ú_handle_insert_op_in_graphr‡  r¨   r£  r   rÝ   rŽ   rH  )r  rÆ  rØ  rÌ  Ú
lazy_typesrä  rî  rõ  r  r  r  rÚ  rÛ  rñ  rô  r  rz  rŸ  rã  rà  r  s   ```        @@@@@@@@@@r‹   r  zBuiltinVariable._make_handlerå  s   ÿü€ ÷ 	Dä˜bÓ!ˆØ+-ˆà!*ÖQ˜A¬j¸Ð<OÕ.P’aÐQˆ
ÐQÙÜÓOÀJÔOÔOõ
ð 
ô$ ,×9Ñ9Øð 'öàô )3°1Ð6JÔ(KÕ$ÐQRÑRòð óˆMð7Ø/ð7äœ?Ñ+ð7ô œS¤/Ð1Ñ2ð7ô ! 4Ñ'÷	7ð( )Ð(ä�?‰?˜2ÔÜ�rœ=Ô)ð ”]Ñ"ðEØ/ðEäœ?Ñ+ðEô œS¤/Ð1Ñ2ðEô !õ	Eð$ 1Ð0à×"Ñ"Ô$Ø”(×"Ñ"Ñ"Ü˜y¨™|¬Y×-EÑ-EÔFà×#Ñ# IÔ.Ø×5Ñ5Ð5Ùà—‘ × >Ñ >Ô?ô ˆy‹>˜QÒ¡zä,×@Ñ@ÀÐPÀiÒPˆNÙ!ØÜ�^Ó$¨Ò)Ø#1Ñ �Ø—‘Ó LÕMð Ø3ð Ü;>ð ÜCFð äõ ð —‘Ð 3Ô4ä˜s e¨B¯K©K¨=Ð$9¸4Ó@ˆÙð$Ø/ð$äœ?Ñ+ð$ô œS¤/Ð1Ñ2ð$ô ! 4Ñ'÷	$ðL �O‰OÐ-Ô.à×(Ñ(Ô*äÑG¸YÔGÔGÙ"ð:Ø3ð:äœÑ/ð:ô !¤¤oÐ!5Ñ6ð:ô % tÑ+ö	:ð8 Ø3ð äœÑ/ð ô !¤¤oÐ!5Ñ6ð ô % tÑ+õ	 ð> �O‰OÐ1Ô2ð	¤T¬/Ñ%:ð 	¸t÷ 	ô  ˆx‹=˜AÒÛDÐDÜ�‹]˜aÒØ!‰JˆWð	Ø/ð	äœ?Ñ+ð	ô œS¤/Ð1Ñ2ð	ô ! 4Ñ'ö		ð4  ÐðØ/ðäœ?Ñ+ðô œS¤/Ð1Ñ2ðô ! 4Ñ'ö	ð  Ðùòe Rùò4s   §N5¹N5Á0N:
Únodec                 ó6  ‡— t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                  t         j                   fŠt#        ˆfd„t        j$                  | «      D «       «      S )Nc              3   óÈ   •K  — | ]Y  }t        |‰«      xrG t        |t        j                  «       xs* t        |j                  t        t
        t        t        f«      –— Œ[ y ­wr‡   )rð   ÚastÚConstantrÀ   r  r   r  r  )r  ÚchildÚallowed_nodess     €r‹   r  z>BuiltinVariable._constant_eval_numeric_expr.<locals>.<genexpr>  sZ   øè ø€ ò 
ð ô �u˜mÓ,ò ä˜u¤c§l¡lÓ3Ð3ò HÜ˜eŸk™k¬D´#´u¼gÐ+FÓGóñ
ùs   ƒAA")r#  Ú
Expressionr$  ÚUnaryOpÚBinOpÚUAddÚUSubÚInvertÚAddÚSubÚMultÚDivÚFloorDivÚModÚBitOrÚBitXorÚBitAndr  Úwalk)r   r&  s    @r‹   Ú_constant_eval_numeric_exprz+BuiltinVariable._constant_eval_numeric_expr	  s¢   ø€ ô �N‰NÜ�L‰LÜ�K‰KÜ�I‰IÜ�H‰HÜ�H‰HÜ�J‰JÜ�G‰GÜ�G‰GÜ�H‰HÜ�G‰GÜ�L‰LÜ�G‰GÜ�I‰IÜ�J‰JÜ�J‰Jð!
ˆô$ ó 
ô Ÿ™ $›ô
ó 
ð 	
r�   ÚtreeÚfilenamec           	      óÔ  — t        d„ t        j                  |«      D «       «      ry t        j                  |«       	 t        j                  |«      }t        j                   | «      S # t
        $ rv t        j                  |«      sY y 	 t        t        ||d«      di ii «      }n@# t        $ r4}t        t        |«      | t        |j                  «      ¬«       Y d }~nd }~ww xY wY Œ”w xY w)Nc              3   óP   K  — | ]  }t        |t        j                  «      –— Œ  y ­wr‡   )rð   r#  ÚCall)r  r%  s     r‹   r  z8BuiltinVariable._constant_eval_result.<locals>.<genexpr>*  s   è ø€ ÒG¨uŒz˜%¤§¡×*ÑGùs   ‚$&ÚevalÚ__builtins__rr  )r  r#  r6  Úfix_missing_locationsÚliteral_evalÚ
ValueErrorr  r7  r=  Úcompiler  r   rß   r  r„   r;   rã   )rÒ   r8  r9  r‚  rt  s        r‹   Ú_constant_eval_resultz%BuiltinVariable._constant_eval_result&  sÐ   € ô ÑG¼¿¹À»ÔGÔGØÜ×!Ñ! $Ô'ð	MÜ×%Ñ% dÓ+ˆFô ×$Ñ$ R¨Ó0Ð0øô ò 
	MÜ"×>Ñ>¸tÔDÙðMÜÜ˜D (¨FÓ3Ø# RÐ(Øó‘øô
 ò MÜ(¬¨c«°B¼TÀ#Ç(Á(»^×LÒLûðMüð
	Mús;   ½A( Á(C'Â	B$Â#C'Â$	C!Â-*CÃC'ÃC!Ã!C'Ã&C'c                 óH  — |s|ry |j                  «       sy |j                  «       }t        |t        «      sy 	 t	        j
                  |j                  «       d¬«      }| j                  |d«      S # t        $ r'}t        t        ||j                  g¬«       Y d }~Œ>d }~ww xY w)Nr=  )Úmoderr  z<torch._dynamo.eval>)r÷   rÍ   rð   r“   r#  ÚparseÚstripÚSyntaxErrorr   ÚmsgrC  )r‰   rÒ   rÁ   r„   r…   Ú
source_strr8  rt  s           r‹   Ú	call_evalzBuiltinVariable.call_eval<  s–   € ñ ‘6ØØ×(Ñ(Ô*ØØ×.Ñ.Ó0ˆ
Ü˜*¤cÔ*Øð	FÜ—9‘9˜Z×-Ñ-Ó/°fÔ=ˆDð ×)Ñ)¨"¨dÐ4JÓKÐKøô ò 	FÜ$¤[°"¸C¿G¹G¸9×EÒEûð	Fús   ¹%A1 Á1	B!Á:BÂB!c                 óô   — t        |«      dk(  r| j                  |«      S t        |«      dk7  rt        dt        |«      › �«      ‚	 |d   j                  |d«      S # t        $ r t        t        |«       Y y w xY w)Nr   r6   z vars() expected 1 argument, got rD  )r¨   Ú_call_frame_locals_snapshotr±   rá   r   r   rs  ©r‰   rÒ   r„   s      r‹   Ú	call_varszBuiltinVariable.call_varsR  su   € Üˆt‹9˜Š>Ø×3Ñ3°BÓ7Ð7Üˆt‹9˜Š>Ü Ð#CÄCÈÃIÀ;Ð!OÓPÐPð	4Ø˜‘7×&Ñ& r¨:Ó6Ð6øÜ%ò 	4Ü$¤Y°Ö3ð	4ús   ÁA ÁA7Á6A7c                 ó`   — t        |«      dk7  rt        t        |«       | j                  |«      S r¢   )r¨   r   rs  rM  rN  s      r‹   Úcall_localszBuiltinVariable.call_locals]  s*   € ô ˆt‹9˜Š>Ü$¤Y°Ô3Ø×/Ñ/°Ó3Ð3r�   c                 ó  — t        | j                  j                  «      t        | j                  «       «      z  }t        | j                  «       «      }i }| j                  j                  «       D ]€  \  }}||vrŒ||v r%| j                  j                  j                  |«      }t        j                  t        |«      st        |t        j                  «      rŒi||t        j                   |«      <   Œ‚ t#        |t$        t'        «       ¬«      S ©N©Úmutation_type)ÚsetÚf_codeÚco_varnamesÚcell_and_freevarsÚsymbolic_localsr’  rm  Úside_effectsÚ	load_cellrß   Ú__instancecheck__rI   rð   r   ÚDeletedVariabler<   Úcreater>   r’   r:   )rÒ   Úframe_local_namesrY  Úframe_localsrØ   rÀ   s         r‹   rM  z+BuiltinVariable._call_frame_locals_snapshotd  sî   € ä §	¡	× 5Ñ 5Ó6¼¸R×=QÑ=QÓ=SÓ9TÑTÐÜ × 4Ñ 4Ó 6Ó7ÐØˆØ×-Ñ-×3Ñ3Ó5ò 		@‰KˆD�%ØÐ,Ñ,ØØÐ(Ñ(ØŸ	™	×.Ñ.×8Ñ8¸Ó?�Ü×%Ñ%¤l°EÔ:¼jØ”y×0Ñ0ô?ð Ø:?ˆLÔ)×0Ñ0°Ó6Ò7ð		@ô !ØÜÜ*Ó,ô
ð 	
r�   c           
      óþ  — ddl m}m} |r# | j                  g |¢|j	                  «       ¢­Ž sy ddl m} ddlm}m}  ||||«      r²|j                  s}t        «        |d   j                  «       sL| j                  t        v rt        | j                     }	nt        | j                     }	|d   }
|d   |d<   |
|d<   n t        | j                     }	n| j                  }	|j                  ||	«      } |||||«      S | j                  }	  | j                   |i |¤Žr(ddlm} ddlm}  ||| ||j*                  «      ||«      S |t,        v r0t/        |d   t0        j2                  «      rt,        |   }|d   |d   g}|t4        j6                  u rLt/        |d   t8        «      r9t:        j<                  }|d   t0        j>                  jA                  |d«      |d   g}tC        ||«      r[tE        d	„ |D «       «      sI |jF                  jH                  d
tK        |«      gtM        ||«      ¢­Ž } |t0        jN                  ||«      S |tP        v r>tS        |«      dk(  r0tE        d„ |D «       «      rddl*m+}  |||d   |d   tP        |   «      S  |jF                  jH                  d
|gtM        ||«      ¢­Ž }tE        d„ |D «       «      r |tX        ||«      S t[        ||«      rb| j]                  ||«      \  }} ||i |¤Ž}tE        d„ t_        j`                  ||j	                  «       «      D «       «      } |tb        ||||¬«      S te        d„ |D «       «      rt9        j                  ||d «      S |t4        jf                  u r>t/        |d   t0        jb                  «      r!ti        |«      }|d   jk                  «       |d<    |||«      S # tl        $ r9 to        dd| › d|› d|› �d| j                  › d�g tp        jr                  ¢¬«       Y y w xY w)Nr6   )rj  Úwrap_fx_proxy_cls©ÚSourcelessBuilder)Úcan_dispatch_torch_functionÚdispatch_torch_functionr   r   )Ú	unique_id)Úinvoke_and_store_as_constantc              3   ó>   K  — | ]  }t        |«      t        u –— Œ y ­wr‡   )rß   rd   ©r  rú   s     r‹   r  z=BuiltinVariable._handle_insert_op_in_graph.<locals>.<genexpr>É  s    è ø€ ò BØ03”�S“	œ^Ô+ñBùs   ‚rk  c              3   ó^   K  — | ]%  }t        |t        j                  t        f«       –— Œ' y ­wr‡   )rð   r   rd   rc   ©r  r_  s     r‹   r  z=BuiltinVariable._handle_insert_op_in_graph.<locals>.<genexpr>×  s-   è ø€ ò àô # 1¤y×'?Ñ'?ÄÐ&QÓRÔRñùs   ‚+-rw  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr‡   ©rð   ra   rk  s     r‹   r  z=BuiltinVariable._handle_insert_op_in_graph.<locals>.<genexpr>ç  s   è ø€ ÒE¸”:˜cÔ#3×4ÑEùr  c              3   óh   K  — | ]*  }t        |t        j                  «      r|j                  –— Œ, y ­wr‡   ©rð   r   re   Úneed_unwrapr  s     r‹   r  z=BuiltinVariable._handle_insert_op_in_graph.<locals>.<genexpr>ñ  ó,   è ø€ ò "àÜ! !¤Y×%JÑ%JÔKð —M•Mñ"ùó   ‚02)Ú	raw_valuerr  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr‡   ©rð   rc   r  s     r‹   r  z=BuiltinVariable._handle_insert_op_in_graph.<locals>.<genexpr>þ  s   è ø€ ÒB¸”Z ¤?×3ÑBùr  z,unimplemented builtin op on tensor argumentszpartial tensor op: rø  z3Dynamo does not know how to trace builtin operator z with tensor argumentsrç  ):rl  rj  rc  rÅ  rC  re  Útorch_functionrf  rg  Úexportr¼   rÃ  r  r}   r|   r_  rÑ  Úbytecode_transformationrh  r�  ri  rŽ   ÚIN_PLACE_DESUGARING_MAPrð   r   r<   r²   rµ   rc   r©   Úselectr;   rã   r%   r  rm  rn  r/   r0   ÚNumpyNdarrayVariablerz   r¨   rí   rx  ra   r'   rÕ  rÍ  rÎ  re   r  r+  r  rÍ   r´  r   r   rì  )r‰   rÒ   r„   r…   rj  rc  re  rf  rg  r‚   ÚtmpÚfn_varr  rh  ri  Úproxyrx  Ú_argsÚ_kwargsru  rr  s                        r‹   r  z*BuiltinVariable._handle_insert_op_in_graphy  s  € ÷ 	>áÐ*˜$×*Ñ*ÐC¨DÐC°6·=±=³?ÓCØõ 	/ßXñ ' r¨4°Ô8ð —9’9ä1Ô3à˜A‘w×(Ñ(Ô*Ø—w‘wÔ";Ñ;Ü8¸¿¹ÑA™ä7¸¿¹Ñ@˜à˜q™'�Cà" 1™g�D˜‘GØ!�D˜’Gä3°D·G±GÑ<‘Dà—w‘w�à&×-Ñ-¨b°$Ó7ˆFá*¨2¨v°t¸VÓDÐDà�W‰Wˆðl	à3ˆt×3Ñ3°TÐD¸VÒDÝ?ÝCá3Ø˜™I b§k¡kÓ2°D¸&óð ð Ô,Ñ,´Ø�Q‘œ×3Ñ3ô2ô -¨RÑ0�Ø˜Q™  a¡Ð)�à”X×%Ñ%Ñ%¬*°T¸!±W¼oÔ*Nô —\‘\�à˜‘GÜ×-Ñ-×3Ñ3°B¸Ó:Ø˜‘Gð�ô (¨¨fÔ5¼cñ BØ7;ôBô ?ð /˜Ÿ	™	×.Ñ.Ø#Ü*¨2Ó.ðô ' t¨VÓ4ò�ñ )¬×)GÑ)GÈÈUÓSÐSð Ô)Ñ)Ü˜“I ’NÜñ à!ôô õ
 Aá*Ø˜˜Q™  a¡Ô*=¸bÑ*Aóð ð +�B—I‘I×*Ñ*ØØðô # 4¨Ó0òˆEô
 ÑEÀÔEÔEÙ(Ü$ØØóð ô
 *¨$°Ô7Ø!%×!?Ñ!?ÀÀfÓ!M‘��wÙ Ð1¨Ñ1�	ä!ñ "ä&Ÿ_™_¨T°6·=±=³?ÓCô"ó �ñ )Ü/ØØØ'Ø +ôð ô ÑB¸TÔBÔBÜ&×-Ñ-¨b°%¸Ó>Ð>ð œ×)Ñ)Ñ)¬jØ˜‘GœY×BÑBô/ô   ›:�DØ" 1™g×8Ñ8Ó:�D˜‘GÙ$ R¨Ó/Ð/øä"ò 	ÜØFØ-¨d¨V°1°T°F¸!¸F¸8ÐDØQÐRV×RYÑRYÐQZÐZpÐqØ6Ô)×5Ñ5Ð6÷	ð	ús;   Ä9N: Ä?C<N: È<AN: ÊAN: Ë
A-N: Ì8(N: Í!AN: Î:?O<Ï;O<Úcall_function_handler_cachec                 ó8  — |rK|j                  «       D ��ci c]  \  }}||j                  «       “Œ }}}| j                  gd„ |D «       ¢d‘­}n| j                  gd„ |D «       ¢­}| j                  j	                  |«      }|sL| j                  | j                  |D �cg c]  }t        |«      ‘Œ c}t        |«      «      x| j                  |<   }|€2t        d| j                  › d|D �cg c]  }t        |«      ‘Œ c}› �«      ‚ ||||«      S c c}}w c c}w c c}w )Nc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr‡   ©rß   r  s     r‹   r  z0BuiltinVariable.call_function.<locals>.<genexpr>'  ó   è ø€ Ò4¨!œd 1ŸgÑ4ùó   ‚Tc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr‡   r†  r  s     r‹   r  z0BuiltinVariable.call_function.<locals>.<genexpr>)  r‡  rˆ  zNo handler found for z with args )	r’  rß  r  rƒ  r�  r  rß   r  r±   )	r‰   rÒ   r„   r…   rÓ  rÔ  Úkeyrz  r  s	            r‹   rk  zBuiltinVariable.call_function  s  € ñ Ø17·±³×@©¨¨A�a˜Ÿ™›‘nÐ@ˆFÑ@Ø—7‘7Ð;Ñ4¨tÔ4Ð;°dÑ;‰Cà—7‘7Ð5Ñ4¨tÔ4Ñ5ˆCà×2Ñ2×6Ñ6°sÓ;ˆÙØ>B×>PÑ>PØ—‘¨4Ö0 aœ$˜q�'Ò0´$°v³,ó?ð ˆD×,Ñ,¨SÑ1°Gð ˆ?Ü Ø'¨¯© y°ÈdÖ<SÈ¼TÀ!½WÒ<SÐ;TÐUóð ñ �r˜4 Ó(Ð(ùó Aùò 1ùò =Ts   –DÂD
Ã'DrØ   c                 ób  •— | j                   t        u r½|dk(  r¸t        |«      dk7  rt        dt        |«      › �«      ‚t        |«      dk7  rt        dt        |«      › �«      ‚|\  }}}|j	                  «       }t        |t        «      rH|j                  j                  j                  |«      r#|j                  «       r|j                  |||«      S |dk(  �r| j                   t        u rbt        |«      dk(  rTt        |«      dk7  rt        dt        |«      › �«      ‚|j                  j                  j                  | |d   |dd  |¬	«      S | j                   t        u r•t        |«      d
k(  r‡|s…t        |d   t        «      rC|d   j                   t        u r.t        ||d   «      }t!        j"                  |t%        «       ¬«      S |j                  j                  j                  | |d   |dd  |¬	«      S |t&        j)                  | j                   d«      v ržt+        d„ |D «       «      rŒt+        d„ |j-                  «       D «       «      rl	 t/        | j                   |«      }	 |	d„ |D «       i |j1                  «       D �
�ci c]  \  }
}|
|j3                  «       “Œ c}}
¤Ž}t5        j6                  ||«      S | j                   t        u r$|dk(  rt         jB                  jE                  d «      S | j                   tF        tH        t>        t        fv rut        |d   t         j                  «      r>|d   jJ                  €t        d«      ‚|d   jJ                  jM                  |||dd  |«      S |d   jM                  |||dd  |«      S | j                   tN        u rZt        |«      dk\  rLt/        | j                   |d «      }|tP        v r-t        |d   tB        «      r|d   jM                  |||dd  |«      S | j                   tR        u r\t        |«      dk\  rNt        |d   tB        «      r;t5        j6                  | t/        tR        |«      |d   j3                  «       «      «      S |dk(  rt        |«      dk(  r|stU        ||d   «      S |dk(  rt        |«      dk(  r|stW        ||d   «      S |dk(  r"t        |«      dk(  r|stX        ‰| �™  ||||«      S |dk(  rt        |«      dk(  r|st[        ||d   «      S |dk(  rt        |«      dk(  r|st]        ||d   «      S |dk(  rt        |«      dk(  r|st_        ||d   «      S |dk(  rt        |«      dk(  r|sta        ||d   «      S tX        ‰| �™  ||||«      S c c}}
w # t8        $ r5}t;        t=        |«      |t?        |j@                  «      ¬«       Y d }~�Œ÷d }~ww xY w)NÚ__setattr__rq   z'object.__setattr__ expects 3 args, got r   z*object.__setattr__ expects no kwargs, got rk   r6   z&object.__new__ expects no kwargs, got ©rÒ   r   rT  rˆ   c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr‡   ©r÷   rm  s     r‹   r  z.BuiltinVariable.call_method.<locals>.<genexpr>l  s   è ø€ Ò8¨a�1×'Ñ'×)Ñ8ùr  c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr‡   r�  ©r  rÔ  s     r‹   r  z.BuiltinVariable.call_method.<locals>.<genexpr>l  s    è ø€ ò AØ+,�×$Ñ$×&ñAùr  c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr‡   )rÍ   rm  s     r‹   r  z.BuiltinVariable.call_method.<locals>.<genexpr>r  s   è ø€ Ò?°Q˜!×.Ñ.×0Ñ?ùr  rr  r¨  z3UserDefinedObjectVariable._base_vt must not be NoneÚ__len__Ú__str__rô   Ú__iter__Ú__neg__Ú__pos__Ú__abs__)1r  rõ   r¨   r±   rß  rð   rg   rm  r[  Úis_attribute_mutationr÷   Úmethod_setattr_standardÚtrack_new_user_defined_objectrÿ   r  r5   r   rH   r:   ro   r�  r  rC  rÝ   r’  rÍ   r;   rã   r  r   rß   r  r„   r<   r_  rV  Ú	frozensetÚ_base_vtrù   r“   r3   r  rS   rX   rø   rP   rU   rV   rM   )r‰   rÒ   rØ   r„   r…   rà  Úname_varÚvalÚ	init_argsr  rÓ  rÔ  r  r   Úresolved_fnrû   s                  €r‹   rù   zBuiltinVariable.call_method6  sk  ø€ ð �7‰7”fÑ ¨Ò!6Ü�4‹y˜AŠ~Ü$Ø=¼cÀ$»i¸[ÐIóð ô �6‹{˜aÒÜ$Ø@ÄÀVÃÀÐNóð ð "&ÑˆC�˜3Ø—+‘+“-ˆCä˜3Ô 9Ô:Ø—I‘I×*Ñ*×@Ñ@ÀÔEØ×/Ñ/Ô1à×2Ñ2°2°xÀÓEÐEà�9Óà�w‰wœ&Ñ ¤S¨£Y°!¢^Ü�v“; !Ò#Ü(Ø@ÄÀVÃÀÐNóð ð —y‘y×-Ñ-×KÑKØØ˜‘GØ˜˜�HØð	 Ló ð ð �w‰wœ%Ñ¤C¨£I°¢N¹6Ü˜d 1™g¤Ô7¸DÀ¹G¿J¹JÌ%Ñ<OÜ /°°D¸±GÓ <�IÜ$×2Ñ2Ø!Ô1AÓ1Côð ð —y‘y×-Ñ-×KÑKØØ˜‘GØ˜˜�HØð	 Ló ð ð Ô5×9Ñ9¸$¿'¹'À2ÓFÑFÜÑ8°4Ô8Ô8¼Sñ AØ06·±³ôAô >ðÜ  §¡¨$Ó/�BÙÙ?¸$Ô?ðàAGÇÁÃ×P¹¸¸A˜1˜a×2Ñ2Ó4Ñ4ÓPñ�Cô +×0Ñ0°°SÓ9Ð9ð �7‰7”fÑ ¨Ò!3ä×-Ñ-×4Ñ4°TÓ:Ð:à�7‰7”sœI¤t¬UÐ3Ñ3Ü˜$˜q™'¤9×#FÑ#FÔGØ˜‘7×#Ñ#Ð+Ü(ØMóð ð ˜A‘w×'Ñ'×3Ñ3°B¸¸dÀ1À2¸hÈÓOÐOà˜A‘w×*Ñ*¨2¨t°T¸!¸"°X¸vÓFÐFà�7‰7”c‰>œc $›i¨1šnÜ! $§'¡'¨4°Ó6ˆKØœkÑ)ä˜d 1™gÔ'7Ô8Ø ™7×.Ñ.¨r°4¸¸a¸b¸À6ÓJÐJà�7‰7”eÑ¤ D£	¨Q¢ä˜$˜q™'Ô#3Ô4Ü&×,Ñ,ØÐ,œ¤ tÓ,¨T°!©W×-GÑ-GÓ-IÓJóð ð �9Ò¤ T£¨a¢¹ô ˜r 4¨¡7Ó+Ð+à�9Ò¤ T£¨a¢¹ä˜r 4¨¡7Ó+Ð+à�:Ò¤# d£)¨q¢.¹Ü‘7Ñ& r¨4°°vÓ>Ð>à�:Ò¤# d£)¨q¢.¹ô # 2 t¨A¡wÓ/Ð/à�9Ò¤ T£¨a¢¹ô ˜r 4¨¡7Ó+Ð+à�9Ò¤ T£¨a¢¹ô ˜r 4¨¡7Ó+Ð+à�9Ò¤ T£¨a¢¹ô ˜r 4¨¡7Ó+Ð+ä‰wÑ" 2 t¨T°6Ó:Ð:ùóO Qøô !ò Ü,Ü˜Q›ØÜ! !§&¡&›\÷ó ûðús*   É4U0 É;U*ÊU0 Õ*U0 Õ0	V.Õ9*V)Ö)V.rú   c                 ó   — t        ||«      S r‡   )rR   ©r‰   rÒ   rú   s      r‹   Úcall_intzBuiltinVariable.call_int¼  ó   € ô ˜2˜sÓ#Ð#r�   c                 ó   — t        ||«      S r‡   )rO   r£  s      r‹   Ú
call_floatzBuiltinVariable.call_floatÁ  s   € ô ˜R Ó%Ð%r�   c                 ó   — t        ||«      S r‡   )rN   r£  s      r‹   Ú	call_boolzBuiltinVariable.call_boolÆ  s   € ô ˜B Ó$Ð$r�   c                 ó    — ddl m}  |||«      S )Nr6   )Úgeneric_hash)rí   r«  )r‰   rÒ   rú   r«  s       r‹   Ú	call_hashzBuiltinVariable.call_hashÌ  s   € õ 	2á˜B Ó$Ð$r�   c                 ó   — t        ||«      S r‡   )rW   r£  s      r‹   Ú	call_reprzBuiltinVariable.call_reprÓ  s   € ô ˜B Ó$Ð$r�   c                 ód  — t        |t        j                  t        j                  f«      r½t	        |j
                  «      dk(  rt        j                  |d«      S t	        |j
                  «      dk(  r.t        t        «      j                  ||j
                  d   gi «      S t        j                  t        |j
                  «      «      }t        t        «      j                  ||gi «      S t        |t        j                  «      r)t        j                  |t        |j                  «      «      S t        |t        j                  «      �r6t!        |j"                  d«      r|j"                  j$                  }nUt!        |j"                  d«      r|j"                  j&                  }n(t)        dt        |«      dg t*        j,                  ¢¬«       t/        |j"                  «      j$                  t0        j$                  u r	 t        j                  | «       «      S t5        «      r't)        d	dt/        |j"                  «      › d
�dg¬«       y |j6                  }	 t        j                  ||«      }|j                  ||gi «      S y # t2        $ r Y y w xY w# t8        $ r t:        j=                  dd¬«       Y y w xY w)Nr   Ú r6   r”  rô   z+failed to call str() on user defined objectz5User defined object has no __str__ or __repr__ methodrç  z0Attempted to a str() method implemented in C/C++z5 has a C/C++ based str method. This is not supported.zWrite the str method in Pythonz%Failed to create UserFunctionVariableT)Úexc_info)rð   r   rí  Ú"UserDefinedExceptionObjectVariabler¨   r„   r;   rã   r  r“   rk  rH   r  ÚUserFunctionVariabler  rg   rä   rÀ   r”  rô   r   r   Ú
USER_ERRORrß   rõ   ÚAttributeErrorr-   Ú__func__r±   rü  rý  )r‰   rÒ   rú   Ú	tuple_varÚ
str_methodÚbound_methodÚuser_func_variables          r‹   Úcall_strzBuiltinVariable.call_strØ  s2  € ô ØÜ×(Ñ(¬)×*VÑ*VÐWô
ô �3—8‘8‹} Ò!Ü&×,Ñ,¨R°Ó4Ð4Ü�S—X‘X“ !Ò#Ü&¤sÓ+×9Ñ9¸"¸s¿x¹xÈ¹{¸mÈRÓPÐPä%×3Ñ3´D¸¿¹³NÓC�	Ü&¤sÓ+×9Ñ9¸"¸y¸kÈ2ÓNÐNô �cœI×:Ñ:Ô<Ü"×(Ñ(¨¬S°·±«[Ó9Ð9Ü˜œi×AÑAÕCä�s—y‘y )Ô,Ø ŸY™Y×.Ñ.‘
Ü˜Ÿ™ JÔ/à ŸY™Y×/Ñ/‘
äØIÜ ›HØ WØ9Ô-×8Ñ8Ð9õ	ô �C—I‘I‹×&Ñ&¬&¯.©.Ñ8ð ä*×0Ñ0°±Z³\ÓBÐBô 1°Ô<ÜØNØÜ#'¨¯	©	£?Ð"3Ð3hÐ iØ;Ð<õ	ð* ð  *×2Ñ2�ð ä)8×)>Ñ)>¸rÀ<Ó)PÐ&ð *×7Ñ7¸¸S¸EÀ2ÓFÐFØøô3 &ò  áð ûô$ &ò  ä—K‘KÐ GÐRV�KÔWÙð ús$   Ç8I= ÉJ É=	J	ÊJ	Ê J/Ê.J/c                 óš  — dt         fd„}t        j                  j                  j                  s	 |||«       	 |d   j                  «       }t        |dd  |«      rKt        j                  g|dd  D �cg c]  }|j                  «       ‘Œ c}¢­Ž }t        j                  ||«      S  |||«       y # t        $ r  |||«       Y Œxw xY wc c}w )Nr~   c                 óN   — t        dd| › d|› �dg t        j                  ¢¬«       y )NzInvalid call to __build_class__z&Non-constant args to __build_class__: rø  zCannot trace class definition: the class body function is unsupported or the base class argument are not compile-time constantsrç  ©r   r   rì  )r„   r…   s     r‹   Úfailz2BuiltinVariable.call___build_class__.<locals>.fail  s2   € ÜØ9Ø@ÀÀÀaÈÀxÐPð ^Ø6Ô)×5Ñ5Ð6ö	r�   r   r6   )r	   r©   Ú_dynamor   Úenable_trace_load_build_classÚget_functionr´  r$   r¾  Ú__build_class__rÍ   r;   rã   )r‰   rÒ   r„   r…   r¿  r  r_  Úrs           r‹   Úcall___build_class__z$BuiltinVariable.call___build_class__  sÉ   € ð	¤(ó 	ô �}‰}×#Ñ#×AÒAÙ��vÔð	Ø�a‘×%Ñ%Ó'ˆBô ˜t A B˜x¨Ô0Ü×(Ñ(Øðà26°q°r°(Ö;¨Q�!×&Ñ&Õ(Ò;òˆAô #×(Ñ(¨¨QÓ/Ð/á��vÕøô #ò 	Ù��vÖð	üò <s   ¹B0 Á3C
Â0CÃCc                 ó  — t        |«      dk(  r!t        ||d   «      }| j                  ||«      S t        |«      dk(  r| j                  ||d   |d   «      S t        |«      dkD  r| j                  |t	        |«      «      S y )Nr6   r   r   )r¨   r5   Ú_call_min_max_seqÚ_call_min_max_binaryr  )r‰   rÒ   r„   r’  s       r‹   Ú_call_min_maxzBuiltinVariable._call_min_max3  s   € ô ˆt‹9˜Š>Ü# B¨¨Q©Ó0ˆEØ×)Ñ)¨"¨eÓ4Ð4Ü�‹Y˜!Š^Ø×,Ñ,¨R°°a±¸$¸q¹'ÓBÐBÜ�‹Y˜Š]Ø×)Ñ)¨"¬d°4«jÓ9Ð9Ør�   r’  c                 óÂ   — t        |«      dk  rt        d«      ‚t        |«      dk(  r|d   S t        j                  t        j                  | j
                  |«      |«      S )Nr   z,_call_min_max_seq requires at least one itemr6   )r¨   r±   Ú	functoolsÚreduceÚpartialrÈ  )r‰   rÒ   r’  s      r‹   rÇ  z!BuiltinVariable._call_min_max_seq?  sV   € ô ˆu‹:˜Š?Ü Ð!OÓPÐPÜˆu‹:˜Š?Ø˜‘8ˆOä×Ñ¤	× 1Ñ 1°$×2KÑ2KÈRÓ PÐRWÓXÐXr�   r_  r`  c                 ó~  — |�|€y | j                  ||«      �r.|j                  «       s||}}|j                  «       st        d«      ‚t        |t        «      r5t        j                  t        j                  «      j                  ||gi «      }t        |t        «      st        |t        «      rLddlm}  |t        |«      | |j                  j                  d| j                   gt#        ||gi «      ¢­Ž ¬«      S |j%                  «       r�t        |t
        j&                  «      r$dd l}t        j*                  |j,                  «      }n#t        j                  t        j.                  «      }| j                   t0        u rd|ind|i}|j                  ||g|«      }nÄt        |t
        j&                  «      rIdd l}t0        |j2                  t4        |j6                  i| j                      }	t        j*                  |	«      }nLt0        t        j2                  t4        t        j6                  i| j                      }
t        j                  |
«      }|j                  |||gi «      }t9        d	„ ||fD «       «      rÔt;        d
„ ||fD «       «      rt
        j                  j=                  |«      S |j%                  «       r|j?                  «       }n|j@                  }| j                   t0        u rt1        |j@                  |«      }nt5        |j@                  |«      }t;        d„ ||fD «       «      }t
        jB                  j=                  |||«      S |S t        |t        «      st        |t        «      rs| j                   t0        u rt        jD                  nt        jF                  } |j                  j                  d|gt#        ||gi «      ¢­Ž }t        jH                  ||d «      S t        |tJ        «      rTt        |tJ        «      rD| j!                  |j?                  «       |j?                  «       «      }tM        jN                  ||«      S y )Nz1Expected at least one tensor argument for min/maxr6   ©rc  rk  )rÒ   r€  r   r  r  c              3   óp   K  — | ].  }t        |t        j                  t        j                  f«      –— Œ0 y ­wr‡   )rð   r   re   r<   )r  rÐ  s     r‹   r  z7BuiltinVariable._call_min_max_binary.<locals>.<genexpr>†  s9   è ø€ ò 	ð ô Øä!×=Ñ=Ü!×2Ñ2ð÷ñ	ùs   ‚46c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr‡   ro  )r  rŸ  s     r‹   r  z7BuiltinVariable._call_min_max_binary.<locals>.<genexpr>�  s   è ø€ ÒK¸S”z #Ô'7×8ÑKùr  c              3   óh   K  — | ]*  }t        |t        j                  «      r|j                  –— Œ, y ­wr‡   rq  r  s     r‹   r  z7BuiltinVariable._call_min_max_binary.<locals>.<genexpr>�  rs  rt  )(rÅ  rÃ  r±   rð   ra   r   ÚTorchInGraphFunctionVariabler©   rA  rk  rc   rl  rc  rß   rm  rn  r  r0   r÷   r}  ÚnumpyÚNumpyVariableÚclipÚclampr  Úmaximumr  Úminimumr  r  Úfrom_tensor_variablerÍ   ru  re   Úsym_maxÚsym_minr_  r<   r;   rã   )r‰   rÒ   r_  r`  rc  Únpr  r…   r‚  Únp_fnÚtorch_fnÚraw_bÚraw_resrr  Úpy_fnr€  rÀ   s                    r‹   rÈ  z$BuiltinVariable._call_min_max_binaryI  s…  € ð ˆ9˜˜	ð Ø×Ñ˜A˜qÕ!Ø—;‘;”=Ø˜!�1�Ø—;‘;”=Ü$ØGóð ô
 ˜!Ô-Ô.Ü×:Ñ:¼5¿<¹<ÓH×VÑVØ˜˜˜Ró�ô
 ˜!œ_Ô-´¸A¼Ô1OÝ6á(Ü˜“GØØ0˜"Ÿ)™)×0Ñ0Ø'ØŸ™ðô +¨A¨q¨6°2Ó6òôð ð ×#Ñ#Ô%ä˜a¤×!?Ñ!?Ô@Û&ä"×0Ñ0°·±Ó9‘Bä"×?Ñ?ÄÇÁÓL�BØ(,¯©´3©˜% ™¸eÀQ¸Z�Ø×)Ñ)¨"¨q¨c°6Ó:‘ä˜a¤×!?Ñ!?Ô@Û&ä  "§*¡*¬c°2·:±:Ð>¸t¿w¹wÑG�EÜ"×0Ñ0°Ó7‘Bä #¤U§]¡]´C¼¿¹ÐGÈÏÉÑP�HÜ"×?Ñ?ÀÓI�BØ×)Ñ)¨"¨q°!¨f°bÓ9�ô ñ 	ð ˜Q˜ô	ô 	ô ÑKÀQÈÀFÔKÔKä$×5Ñ5×JÑJÈ6ÓRÐRà×'Ñ'Ô)Ø×0Ñ0Ó2‘EàŸK™K�EØ—7‘7œc‘>Ü! !§+¡+¨uÓ5‘Gä! !§+¡+¨uÓ5�Gä!ñ "à ˜Vô"ó �ô
 !×<Ñ<×QÑQØØØóð ð �Ü˜œ?Ô+¬z¸!¼_Ô/MØ%)§W¡W´¡^”E—M’M¼¿¹ˆEØ*�B—I‘I×*Ñ*Ø ðÜ):¸A¸q¸6À2Ó)FòˆEô #×)Ñ)¨"¨e°TÓ:Ð:Ü˜Ô+Ô,´¸AÔ?OÔ1PØ—G‘GØ×$Ñ$Ó&Ø×$Ñ$Ó&óˆEô #×(Ñ(¨¨UÓ3Ð3Ør�   c                 ó   — t        ||«      S r‡   )rM   r£  s      r‹   Úcall_abszBuiltinVariable.call_abs»  r¥  r�   c                 ó   — t        ||«      S r‡   )rV   r£  s      r‹   Úcall_poszBuiltinVariable.call_posÀ  r¥  r�   c                 ó:   — t        |«      }|j                  |«      S r‡   )r2   Únb_index_implr£  s      r‹   Ú
call_indexzBuiltinVariable.call_indexÅ  s   € ô
 ! Ó%ˆØ× Ñ  Ó$Ð$r�   c                 óÀ   — ddl m} |j                  |t        «      j	                  ||t        j                  |d«      gi «      }|j	                  |t        |«      |«      S )Nr6   rd  Ú	__round__)rl  re  r_  rÝ   rk  r;   rã   r  )r‰   rÒ   rú   r„   r…   re  Úround_methods          r‹   Ú
call_roundzBuiltinVariable.call_roundÍ  sZ   € õ 	/ð )×/Ñ/°´GÓ<×JÑJØ�”o×+Ñ+¨B°Ó<Ð=¸ró
ˆð ×)Ñ)¨"¬d°4«j¸&ÓAÐAr�   c                 óÜ   ‡— t        |i «      rt        j                  t        |«      «      S  | j                  |Ž r2t        ˆfd„|D «       «      }t        j                  t        |«      «      S y )Nc              3   ó\   •K  — | ]#  }t        j                  ‰t        |«      «      –— Œ% y ­wr‡   )r;   rã   r+   )r  rú   rÒ   s     €r‹   r  z-BuiltinVariable.call_range.<locals>.<genexpr>â  s#   øè ø€ ÒVÈ#œ×.Ñ.¨r´<ÀÓ3D×EÑVùs   ƒ),)r&   r   ÚRangeVariabler  Ú_dynamic_argsrÿ   rN  s    ` r‹   Ú
call_rangezBuiltinVariable.call_rangeÜ  s]   ø€ ô )¨¨rÔ2Ü×*Ñ*¬4°«:Ó6Ð6ØˆT×Ñ Ñ&ÜÓVÐQUÔVÓVˆDÜ×*Ñ*¬4°«:Ó6Ð6àr�   c                 ój   — t        d„ |D «       «      xs  t        d„ |j                  «       D «       «      S )Nc              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr‡   rw  r  s     r‹   r  z0BuiltinVariable._dynamic_args.<locals>.<genexpr>è  s   è ø€ Ò@°a”:˜a¤×1Ñ@ùr  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wr‡   rw  r  s     r‹   r  z0BuiltinVariable._dynamic_args.<locals>.<genexpr>è  s   è ø€ ò H
Ø/0ŒJ�qœ/×*ñH
ùr  )r  rC  rÀ  s      r‹   rñ  zBuiltinVariable._dynamic_argsç  s7   € ÜÑ@¸4Ô@Ó@ò 
ÄCñ H
Ø4:·M±M³OôH
ó E
ð 	
r�   c                 óœ   — dt        |«      cxk  rdk  sn t        |dt        |«      › �«       t        j                  t	        |«      |«      S )Nr6   é   z(slice expected at least 1 argument, got )r¨   r   r   ÚSliceVariabler  rN  s      r‹   Ú
call_slicezBuiltinVariable.call_sliceì  sC   € ð ”C˜“IÔ! Ô!Ü˜RÐ#KÌCÐPTËIÈ;Ð!WÔXÜ×&Ñ&¤t¨D£z°2Ó6Ð6r�   c           
      ó€   — ddl m}  || |j                  j                  d| j                  gt        ||«      ¢­Ž «      S rh  )rl  rj  rm  rn  r  r0   )r‰   rÒ   r„   r…   rj  s        r‹   Ú
_dyn_proxyzBuiltinVariable._dyn_proxyó  sC   € õ 	+áØØ"ˆB�I‰I×"Ñ"Ø §¡ðÜ+<¸TÀ6Ó+Jòó
ð 	
r�   c                 ó¬  — |r#t        || j                  j                  › d�«       t        |«      dk(  rt	        g t        «       ¬«      S t        |«      dkD  r.t        || j                  j                  › dt        |«      › �«       |d   }t        |t        «      r|j                  «       t        u r|S t        ||d   «      }t	        |t        «       ¬«      S )Nz() takes no keyword argumentsr   rT  r6   z" expected at most 1 argument, got )
r   r  rŽ   r¨   rH   r:   rð   Úpython_typerÿ   r5   )r‰   rÒ   r„   r…   rà  r’  s         r‹   Ú
call_tuplezBuiltinVariable.call_tupleÿ  sÃ   € ñ ÜØØ—7‘7×#Ñ#Ð$Ð$AÐBôô ˆt‹9˜Š>Ü  Ô3CÓ3EÔFÐFÜ�‹Y˜Š]ÜØØ—7‘7×#Ñ#Ð$Ð$FÄsÈ4ÃyÀkÐRôð
 �1‰gˆÜ�cœ=Ô)¨c¯o©oÓ.?Ä5Ñ.HØˆJä  D¨¡GÓ,ˆÜ˜UÔ2BÓ2DÔEÐEr�   c           
      ó¨  — ddl m}m} ddlm} t        |t        j                  |||f«      rt        j                  j                  d«      S t        |t        «      r)t        j                  |t        |j                  «      «      S t        |t        t        t         t"        t$        t&        t(        f«      rt        j                  j                  d«      S y )Nr6   )rX  ÚFunctoolsPartialVariablerY  TF)r�  rX  r   r�  rZ  rð   r   rö   r<   r_  rh   r;   rã   r  rÀ   rc   rJ   rd   rF   rH   rE   )r‰   rÒ   rú   rX  r   rZ  s         r‹   Úcall_callablezBuiltinVariable.call_callable  s®   € ÷ 	RÝ/äØä×2Ñ2Ø(Ø(Ø ð	ô
ô ×-Ñ-×4Ñ4°TÓ:Ð:Ü˜Ô0Ô1Ü"×(Ñ(¨¬X°c·i±iÓ-@ÓAÐAÜØä ÜÜ$ÜÜÜÜ$ðô
ô ×-Ñ-×4Ñ4°UÓ;Ð;àr�   rð  c                 óV   — t        |«      dk(  r|d   S t        dd|› d|› �ddg¬«       y )	Nr   r6   zbad args to builtin cast()z	got args rø  z0Dynamo expects exactly 2 args to builtin cast().z3Ensure your call to cast() has exactly 2 arguments.rç  )r¨   r   )r‰   rð  r„   r…   s       r‹   Ú	call_castzBuiltinVariable.call_cast<  s<   € ô ˆt‹9˜Š>Ø˜‘7ˆNäØ0Ø ˜v Q v hÐ/ØJØHÐIö		
r�   c                 óv  — t        |t        j                  «      r)t        j                  |t        |j                  «      «      S t        |t        «      r)t        j                  |t        |j                  «      «      S |j                  «       r-t        j                  |t        |j                  «       «      «      S y r‡   )rð   r   rö   r;   rã   ÚdirrÀ   r  r  r÷   rÍ   r£  s      r‹   Úcall_dirzBuiltinVariable.call_dirI  s„   € ô �cœ9×=Ñ=Ô>Ü"×(Ñ(¨¬S°·±«^Ó<Ð<Ü�cœ?Ô+Ü"×(Ñ(¨¬S°·±«[Ó9Ð9à×!Ñ!Ô#Ü"×(Ñ(¨¬S°×1GÑ1GÓ1IÓ-JÓKÐKØr�   c                 ó4  — t        |«      dk(  r't        j                  t        «       t	        «       ¬«      S t        |«      dkD  rt        |dt        |«      › �«       n|rt        |d«       t        g t	        «       ¬«      }|j                  |d|d   g|«       |S )Nr   rT  r6   z%set expected at most 1 argument, got z set() takes no keyword argumentsrB  )r¨   r   r`   rV  r:   r   rù   )r‰   rÒ   r„   r…   Úss        r‹   Úcall_setzBuiltinVariable.call_setU  sŽ   € ô ˆt‹9˜Š>Ü×(Ñ(¬«Ô>NÓ>PÔQÐQÜ�‹Y˜Š]ÜØØ7¼¸D»	°{ÐCõñ ÜØØ2ôô
 ˜Ô*:Ó*<Ô=ˆØ	�‰�b˜( T¨!¡W I¨vÔ6Øˆr�   c                 óf  — t        |«      dk(  r't        j                  t        «       t	        «       ¬«      S t        |«      dkD  rt        |dt        |«      › �«       n|rt        |d«       t        |d   t        j                  «      r|d   S t        ||d   «      }t        |t	        «       ¬«      }|S )Nr   rT  r6   z+frozenset expected at most 1 argument, got z&frozenset() takes no keyword arguments)r¨   r   r_   rV  r:   r   r.   r5   )r‰   rÒ   r„   r…   r’  Úfss         r‹   Úcall_frozensetzBuiltinVariable.call_frozensetm  s£   € ô ˆt‹9˜Š>Ü×.Ñ.¬s«uÔDTÓDVÔWÐWÜ�‹Y˜Š]ÜØØ=¼cÀ$»i¸[ÐIõñ ÜØØ8ôô
 �$�q‘'œ9×6Ñ6Ô7à˜‘7ˆNä  D¨¡GÓ,ˆÜ˜uÔ4DÓ4FÔGˆØˆ	r�   c                 óv  — |r,t        |«      dk(  rd|v st        |ddt        |«      › d�«       |j                  dt        j                  d«      «      }g }|D ]  }|j                  t        ||«      «       Œ t        |t        «       ¬«      }t        j                  ||j                  «       t        «       ¬«      S )	Nr6   ÚstrictÚzipú1 kwargs (`strict`)ú kwargsFrT  ©r  rU  )r¨   r1   Úpopr<   r_  r‡  rP   rH   r:   r   ÚZipVariablerÍ   )r‰   rÒ   r„   r…   r  r’  rú   Ú	iter_argss           r‹   Úcall_zipzBuiltinVariable.call_zipˆ  s¶   € ñ Ü˜“K 1Ò$¨°VÑ);Ü#ØØØ)Ü˜6“{�m 7Ð+ô	ð —‘˜HÔ&6×&=Ñ&=¸eÓ&DÓEˆØˆØò 	3ˆCØ�L‰Lœ¨¨SÓ1Õ2ð	3ä! %Ô7GÓ7IÔJˆ	Ü×$Ñ$ØØ×,Ñ,Ó.Ü*Ó,ô
ð 	
r�   c                 ó    — t        ||d   «      S r¢   )rS   ©r‰   rÒ   r„   r…   s       r‹   Úcall_lenzBuiltinVariable.call_len¢  s   € ô ˜2˜t A™wÓ'Ð'r�   c                 ó(   — t        ||d   |d   «      S ©Nr   r6   )r\   r  s       r‹   Úcall_getitemzBuiltinVariable.call_getitemª  s   € ô ˜"˜d 1™g t¨A¡wÓ/Ð/r�   Úisinstance_type_varc           	      ó  ‡— 	 ‰j                  «       }|j                  «       }t        ‰t        j                  «      rA‰j                  �5dt        dt        d	t        fˆfd
„}t        j                  | |‰|«      «      S t        ‰t        j                  «      rJt        ‰j                  t         j"                  «      r&t        dd‰› d|› d�dg t        j$                  ¢¬«       t        ‰t        j                  «      rRd|j&                  j(                  v r:t        j                  ||j&                  j+                  |‰j                  «      «      S t        ‰t        j,                  «      r t        j                  |t        |«      «      S t        |t.        «      st1        t3        |dd «      «      r|f}nht        |t         j4                  «      rt7        j8                  |«      }n8t        |t:        «      rt=        d„ |D «       «      r|}nt?        t@        |dg¬«       	 tC        «      }t        j                  ||«      S # t        $ r- t        dd‰› d|› d�d‰› �g t        j                  ¢¬«       Y �Œ_w xY w# t@        $ r v }Y Œ^w xY w)Nz6builtin isinstance() cannot determine type of argumentzisinstance(ú, r¬  z=Dynamo doesn't have a rule to determine the type of argument rç  Ú
tensor_varÚtensor_typer~   c                 ó„   •‡— dt         dt        fˆfd„Št        |«      t        u rt	        ˆfd„|D «       «      S  ‰|«      S )NÚtyr~   c                 ó>  •— | t         vr~‰j                  «       j                  j                  d   }t	        |«      r2| t
        j                  j                  j                  u rt        || «      S t        ‰j                  «       | «      S t         |    }‰j                  |v S )NÚexample_value)r4   r»  r   Úmetar   r©   ÚnnÚ	parameterÚ	Parameterrð   rž  rý  r•   )r#  Úexample_valÚdtypesrú   s      €r‹   Ú
check_typezOBuiltinVariable.call_isinstance.<locals>._tensor_isinstance.<locals>.check_typeÇ  s„   ø€ ØÔ!4Ñ4Ø&)§l¡l£n×&9Ñ&9×&>Ñ&>¸Ñ&O˜ä9¸+ÔFØ "¤e§h¡h×&8Ñ&8×&BÑ&BÑ Bô
 $.¨k¸2Ó#>Ð>ä#-¨c¯o©oÓ.?ÀÓ#DÐDä0°Ñ4�FàŸ9™9¨Ð.Ð.r�   c              3   ó.   •K  — | ]  } ‰|«      –— Œ y ­wr‡   rˆ   )r  r#  r,  s     €r‹   r  zNBuiltinVariable.call_isinstance.<locals>._tensor_isinstance.<locals>.<genexpr>Ú  s   øè ø€ ÒD°"™z¨"Ÿ~ÑDùs   ƒ)r   r  rß   rÿ   r  )r   r!  r,  rú   s     @€r‹   Ú_tensor_isinstancez;BuiltinVariable.call_isinstance.<locals>._tensor_isinstanceÄ  sA   ù€ ð/¤3ð /¬4õ /ô$ ˜Ó$¬Ñ-ÜÓD¸ÔDÓDÐDá% kÓ2Ð2r�   z<isinstance() called on user defined object with C extensionszeUser-defined object with C extensions can have torch.Tensor attributes; intentionally graph breaking.r]  c              3   ól   K  — | ],  }t        |t        «      xs t        t        |d d«      «      –— Œ. y­w)r]  N)rð   rß   r  rÝ   )r  Útps     r‹   r  z2BuiltinVariable.call_isinstance.<locals>.<genexpr>	  s6   è ø€ ò 8
àô �rœ4Ó ÒT¤H¬W°RÐ9LÈdÓ-SÓ$TÓTñ8
ùs   ‚24z?isinstance() arg 2 must be a type, a tuple of types, or a unionrr  )"rý  r´  r   r   r  rÍ   rð   r   rd   r•   r;   r   r  rã   rg   rÀ   rƒ   ÚMemberDescriptorTyperì  rû   rD  r]  Ú!UserDefinedExceptionClassVariablerß   r  rÝ   Ú	UnionTypeÚtypingÚget_argsrÿ   r  r   rs  rž  )	r‰   rÒ   rú   r  rÈ  Úisinstance_typer.  Úisinstance_type_tuplerŸ  s	     `      r‹   Úcall_isinstancezBuiltinVariable.call_isinstance²  sp  ø€ ð	Ø—‘Ó(ˆHð .×@Ñ@ÓBˆÜ�cœ9×3Ñ3Ô4¸¿¹Ð9Nð3Ü+ð3Ü:=ð3äõ3ô4 #×(Ñ(¨Ñ-?ÀÀ_Ó-UÓVÐVô �cœ9×>Ñ>Ô?ÄJØ�I‰I”u×1Ñ1ôE
ô ØVØ% c U¨"¨_Ð,=¸QÐ?ð<à6Ô)×5Ñ5Ð6õô �sœI×?Ñ?Ô@Ø# ×'@Ñ'@×'IÑ'IÑIä"×(Ñ(ØØ×)Ñ)×;Ñ;¸OÈSÏYÉYÓWóð ô
 �cœ9×FÑFÔGä"×(Ñ(¨¬Z¸À/Ó-RÓSÐSô �o¤tÔ,´ä�OÐ%8¸$Ó?ô1
ð &5Ð$6Ñ!Ü˜¬¯©Ô9Ü$*§O¡O°OÓ$DÑ!Ü˜¬Ô/´Cñ 8
à%ô8
ô 5
ð %4Ñ!ä$ÜØàUðõð
	4ô ˜XÐ'<Ó=ˆCô ×$Ñ$ R¨Ó-Ð-øôA #ò 	ÜØPØ% c U¨"Ð-@Ð,AÀÐCØ[Ð\_Ð[`ÐaØ5Ô)×4Ñ4Ð5÷	ð ð	ûô| ò 	4ØÐ3Ð3ŠCð	4ús#   ƒH= ÈI6 È=2I3É2I3É6JÊJÚleft_tyÚright_tyc                 ó"   — ddl m}  ||||«      S )z,Checks if first arg is subclass of right argr6   )Úgeneric_issubclass)rí   r<  )r‰   rÒ   r9  r:  r<  s        r‹   Úcall_issubclasszBuiltinVariable.call_issubclass	  s   € õ 	8á! " g¨xÓ8Ð8r�   c                 ó.   — t        j                  ||«      S r‡   )r   ÚSuperVariable©r‰   rÒ   r_  r`  s       r‹   Ú
call_superzBuiltinVariable.call_super'	  s   € ô ×&Ñ& q¨!Ó,Ð,r�   c                 ó  — |d   }	 |j                  |«      S # t        $ r t        |«      dk(  r|d   cY S ‚ t        $ rD}t	        |t
        j                  «      r$|j                  «        |j                  d   cY d }~S ‚ d }~ww xY w)Nr   r   r6   )	Únext_variabler   r¨   r   rð   r   rD   rÿ  r’  )r‰   rÒ   r„   rú   Úexs        r‹   Ú	call_nextzBuiltinVariable.call_next,	  s   € ð �1‰gˆð
	Ø×$Ñ$ RÓ(Ð(øÜ(ò 	Ü�4‹y˜AŠ~Ø˜A‘w’ØÜò 	Ü˜#œy×9Ñ9Ô:Ø×$Ñ$Ô&Ø—y‘y ‘|Õ#Øûð		ús%   ‡ ˜B¶	B¿8A>Á7BÁ=A>Á>BÚseqsc                 ó4  — t        |«      dk(  rt        t        |dg¬«       t        j                  d«      }|rt
        j                  dk\  rRt        |«      dk(  rd|v st        |dd	t        |«      › d
�«       |j                  dt        j                  d«      «      }nt        |ddt        |«      › d
�«       |D �cg c]  }t        ||«      ‘Œ }}t        |t        «       ¬«      }t        j                  |||j                  «       t        «       ¬«      S c c}w )Nr   z'map() must have at least two arguments.rr  Frp   r6   r  Úmapr  r  z0 kwargsrT  r  )r¨   r   rs  r<   r_  ÚsysÚversion_infor1   r  rP   rH   r:   r   ÚMapVariablerÍ   )	r‰   rÒ   r  rF  r…   r  ÚseqÚ	iterablesr  s	            r‹   Úcall_mapzBuiltinVariable.call_map<	  s  € ô ˆt‹9˜Š>Ü$ÜØØ?Ð@õô "×(Ñ(¨Ó/ˆÙÜ×Ñ 7Ò*Ü˜F› qÒ(¨X¸Ñ-?Ü'ØØØ-Ü˜v›;˜- wÐ/ô	ð  Ÿ™ HÔ.>×.EÑ.EÀeÓ.LÓM‘ä#ØØØÜ˜6“{�m 7Ð+ô	ð :>Ö>°#”_ R¨Õ-Ð>ˆ	Ð>Ü! )Ô;KÓ;MÔNˆ	Ü×$Ñ$ØØØ×,Ñ,Ó.Ü*Ó,ô	
ð 	
ùò ?s   Â<DrL  c                 óV   — t        j                  |t        ||«      t        «       ¬«      S rS  )r   ÚFilterVariablerP   r:   )r‰   rÒ   r  rL  s       r‹   Úcall_filterzBuiltinVariable.call_filterf	  s*   € ô ×'Ñ'ØÜ˜B Ó$Ü*Ó,ô
ð 	
r�   c                 ó  — | j                   xr t        | j                   |«      }|dk(  r+t        j                  || j                  j
                  |«      S | j                  t        u r9	 t        | j                  |«      }t        «      st        j                  |||«      S t        | j                  |d «      }t        j                  | ||�t        |«      |¬«      S d |¬«      S # t        $ r t        t        |«       Y Œ€w xY w)NrŽ   rÛ   )rÁ   r   r;   rã   r  rŽ   rõ   rÝ   rµ  r   r  r   rÞ   rß   )r‰   rÒ   rØ   rÁ   rÀ   rà   s         r‹   rá   zBuiltinVariable.var_getattro	  sæ   € ð —‘Ò>¤¨D¯K©K¸Ó!>ˆØ�:ÒÜ"×(Ñ(¨¨T¯W©W×-=Ñ-=¸vÓFÐFØ�7‰7”fÑð=Ü §¡¨Ó.�ô ˜E”?Ü&×,Ñ,¨R°¸Ó?Ð?Ü�t—w‘w  dÓ+ˆÜ×(Ñ(Ø�$¨dÐ.>¤ T£
ÐQWô
ð 	
ØDHÐQWô
ð 	
øô "ò =Ü(¬¸Ö<ð=ús   Á(C# Ã#C?Ã>C?rà  rž  c                 ó,   — |j                  |d|gi «      S )NÚ__delattr__rd  )r‰   rÒ   rà  rž  s       r‹   Úcall_delattrzBuiltinVariable.call_delattr‚	  s   € ð �‰˜r =°8°*¸bÓAÐAr�   c                 óü  — 	 |j                  «       }|j                  xr t        |j                  «      }|€2t        |t        j                  «      r|j                  r|j                  }|t        j                  u r5|j                  j                  dt        «      }t!        t#        |«      d«      }t%        j&                  |||«      S # t        $ r+}t        t        j                  t        |«      d¬«      d ‚d }~ww xY w)NÚunknown_python_type)Ú	case_namer°  ÚTensor)rý  r´  r   r   ÚINVALID_INPUTr“   rÁ   r#   rð   r   rg   Ú
cls_sourcer©   rY  rm  Úinstall_global_by_idr   r    r;   rã   )r‰   rÒ   rà  rÜ   ÚerrorrÁ   rØ   s          r‹   Ú	call_typezBuiltinVariable.call_typeŠ	  sÐ   € ð	Ø—o‘oÓ'ˆGð —‘Ò6¤
¨3¯:©:Ó 6ˆàˆNÜ˜3¤	× CÑ CÔDØ—’à—^‘^ˆFØ”e—l‘lÑ"à—9‘9×1Ñ1°"´eÓ<ˆDÜ¤¨TÓ 2°HÓ=ˆFä×$Ñ$ R¨°&Ó9Ð9øô' #ò 	ÜÜ×+Ñ+Ü�E“
Ø/ôð ð	ûð	ús   ‚C Ã	C;Ã&C6Ã6C;c                 ój  — t        |«      }t        j                  |dt        «      }|€t	        |d|j
                  › d�«       |t        ur|j                  |dg i «      S t        |«      st	        |d«       t        j                  t        j                  j                  «      j                  ||gi «      S )NÚ__reversed__ú'z' object is not reversiblez)argument to reversed() must be a sequence)rY   rù  Úgetattr_staticÚ_MISSING_SENTINELr   rŽ   rù   rZ   r   r³  r   r¾  Úreversed_sequence_iteratorrk  )r‰   rÒ   rà  Úobj_typeÚreversed_attrs        r‹   Úcall_reversedzBuiltinVariable.call_reversed¤	  s®   € ô )¨Ó-ˆô  ×.Ñ.Ø�nÔ&7ó
ˆð Ð Ü˜R 1 X×%6Ñ%6Ð$7Ð7QÐ!RÔSØÔ 1Ñ1Ø—?‘? 2 ~°r¸2Ó>Ð>ä Ô)Ü˜RÐ!LÔMä×-Ñ-Ü×Ñ×9Ñ9ó
ç
‰-˜˜S˜E 2Ó
&ð	'r�   c                 ó¶   — t        |t        j                  «      s?t        j                  t	        ||«      t        «       ¬«      }|j                  |dg |«       |S y )NrT  Úsort)rð   r   rd   rF   r5   r:   rù   )r‰   rÒ   rà  r…   Úlist_vars        r‹   Úcall_sortedzBuiltinVariable.call_sortedÂ	  sR   € ô ˜#œy×7Ñ7Ô8Ü ×-Ñ-Ü  CÓ(Ü.Ó0ôˆHð × Ñ   V¨R°Ô8ØˆOØr�   c                 ó   — t        ||«      S r‡   )rU   )r‰   rÒ   r_  s      r‹   Úcall_negzBuiltinVariable.call_negÑ	  s   € ô ˜2˜qÓ!Ð!r�   Ú_format_stringc                 óx   — |j                  «       }t        |«      }t        j                  |t	        |«      |«      S r‡   )rÍ   r“   rJ   r_  r  )r‰   rÒ   rn  r„   r…   Úformat_strings         r‹   Úcall_formatzBuiltinVariable.call_formatÖ	  s5   € ð '×9Ñ9Ó;ˆÜ˜MÓ*ˆÜ#×*Ñ*¨=¼$¸t»*ÀfÓMÐMr�   c                 óf  — t        |«      dk7  r t        t        |dt        |«      › d�g¬«       |d   }|j                  |«      }|�X|j                  r6|j                  «       }|�$t        |j                  j                  |«      «       t        j                  ||«      S t        t        |«      «      S )Nr6   z!id() takes exactly one argument (z given)rr  r   )r¨   r   rs  Úget_idrÁ   Úget_id_guard_typer   rÆ   r;   rã   r=   Úid)r‰   rÒ   r„   rú   Úreal_idÚ
guard_types         r‹   Úcall_idzBuiltinVariable.call_idá	  s¢   € ô ˆt‹9˜Š>Ü$ÜØØ9¼#¸d»)¸ÀGÐLÐMõð
 �1‰gˆà—*‘*˜R“.ˆØÐØ�zŠzØ ×2Ñ2Ó4�
ØÐ)Ü! #§*¡*×"7Ñ"7¸
Ó"CÔDÜ"×(Ñ(¨¨WÓ5Ð5äœb ›gÓ&Ð&r�   r  c                 óL   — t        dd|› d�ddgt        j                  ¢¬«       y )Nzcopy.deepcopy()zcopy.deepcopy(r¬  z'Dynamo does not support copy.deepcopy()zAvoid calling copy.deepcopy()rç  r¾  )r‰   rÒ   r  s      r‹   Úcall_deepcopyzBuiltinVariable.call_deepcopyö	  s4   € ô 	Ø%Ø$ Q C qÐ)ØAà/ðä"×.Ñ.ðö		
r�   r  r€  c                 óì  — ddl m} ddlm} | j                  }|t
        j                  t
        j                  fv r¼|j                  «       xrk |j                  «       xrY t        t        |j                  «       j                  «      «      t        t        |j                  «       j                  «      «      k(  }|t
        j                  u rt        j                  ||«      S t        j                  || «      S ||vrEt        d|j                   › d|› d|› d�d|j                   › d	|› d|› �g t"        j$                  ¢¬
«       t'        |t(        «      rnt'        |t(        «      r^|j*                  xr |j*                  �D|j*                  |j*                  k7  r+	 t-        j.                  |j*                  |j*                  «       |j                  «       r|n|}|j4                  j7                  d||j                  «       |j                  «       fi «      }	 |t9        |«      ||	«      S # t0        $ rI t        d|j                   › d|› d|› d�d|› d|› d|j                   › d�g t"        j2                  ¢¬
«       Y Œ´w xY w)Nr6   rÏ  ©Ú%supported_tensor_comparison_op_valuesz unsupported Tensor comparison opr«  r  r¬  ú*Dynamo does not support the comparison op z with Tensor arguments rç  z8failed to broadcast when attempting Tensor comparison opz.Dynamo was unable to broad cast the arguments z, when attempting to trace the comparison op ú.rk  )rl  rc  rA  r}  r  r²   r{  Úis_notrÃ  ru  r)   r»  r   r;   rã   r   rŽ   r   rì  rð   rd   Úsizer©   Úbroadcast_shapesÚRuntimeErrorr´  rm  rn  rß   )
r‰   rÒ   r  r€  rc  r}  r¹   Ú	is_resultÚ
tensor_clsr€  s
             r‹   r‰  z'BuiltinVariable._comparison_with_tensor
  s?  € õ 	/ÝAà�W‰Wˆà”(—,‘,¤§¡Ð0Ñ0à—‘Ó ò IØ—O‘OÓ%òIäÔ1°$·-±-³/×2FÑ2FÓGÓHÜÔ0°·±Ó1A×1FÑ1FÓGÓHñIð ð ”X—\‘\Ñ!Ü&×,Ñ,¨R°Ó;Ð;ä&×,Ñ,¨R°Y°Ó?Ð?àÐ:Ñ:ÜØ:ØŸ;™;˜- q¨¨¨b°°°qÐ9ØHÈÏÉÈð V)Ø)-¨¨b°°ð9à6Ô)×5Ñ5Ð6õô �tœ^Ô,Ü˜5¤.Ô1Ø—‘Ò)˜uŸz™zÐ6Ø—	‘	˜UŸZ™ZÒ'ð
Ü×&Ñ& t§y¡y°%·*±*Ô=ð "Ÿ^™^Ô-‘T°5ˆ
Ø—	‘	×&Ñ&Ø˜R $§-¡-£/°5·>±>Ó3CÐ!DÀbó
ˆñ !Ü�ÓØØó
ð 	
øô  ò äØVØ!Ÿ{™{˜m¨1¨T¨F°"°U°G¸1Ð=Ø"PÐQUÐPVÐVXÐY^ÐX_ð `BØBDÇ+Á+ÀÈað!Qà9Ô-×8Ñ8Ð9÷ðús   Æ*H! È!AI3É2I3c           
      ó  — ddl m} | j                  }||vrEt        d|j                  › d|› d|› d�d|j                  › d|› d|› �g t
        j                  ¢¬	«       t        |t        «      r|n|}t        |t        t        t        f«      s%t        j                  | |t        «       d «      «      S |j                  j                  d
||j!                  «       |j!                  «       fi «      }t        j"                  ||d ¬«      S )Nr6   r|  z!unsupported SymNode comparison opr«  r  r¬  r~  z with SymNode arguments rç  rk  ©Úsym_num)rA  r}  r  r   rŽ   r   rì  rð   rc   r<   rd   r;   rã   rõ   rm  rn  r»  r_  )r‰   rÒ   r  r€  r}  r¹   Únon_symnoder€  s           r‹   r†  z(BuiltinVariable._comparison_with_symnode=
  s  € õ 	Bà�W‰WˆàÐ:Ñ:ÜØ;ØŸ;™;˜- q¨¨¨b°°°qÐ9ØHÈÏÉÈð V*Ø*.¨¨r°%°ð:à6Ô)×5Ñ5Ð6õô  *¨$´Ô@‘eÀdˆÜØœ/Ô+;¼^ÐLô
ô #×(Ñ(¨©R´³¸$Ó-?Ó@Ð@à—	‘	×&Ñ&Ø˜R $§-¡-£/°5·>±>Ó3CÐ!DÀbó
ˆô ×%Ñ%ØØØô
ð 	
r�   c                 ó    — t        |||dd«      S )NÚnb_xorú^©rL   r@  s       r‹   Úcall_xorzBuiltinVariable.call_xord
  ó   € ô ˜˜Q  8¨SÓ1Ð1r�   c                 ó"   — t        |||ddd«      S )NÚnb_inplace_xorr‹  z^=©rK   r@  s       r‹   Ú	call_ixorzBuiltinVariable.call_ixori
  ó   € ô ˜"˜a Ð$4°hÀÓEÐEr�   c                 ó   — t        |||«      S r‡   )rT   r@  s       r‹   Úcall_mulzBuiltinVariable.call_muln
  s   € ô    A qÓ)Ð)r�   c                 ó   — t        |||«      S r‡   )rQ   r@  s       r‹   Ú	call_imulzBuiltinVariable.call_imuls
  s   € ô (¨¨A¨qÓ1Ð1r�   c                 ó    — t        |||dd«      S )NÚnb_subtractú-r�  r@  s       r‹   Úcall_subzBuiltinVariable.call_subx
  s   € ô ˜˜Q  =°#Ó6Ð6r�   c                 ó"   — t        |||ddd«      S )NÚnb_inplace_subtractrš  z-=r’  r@  s       r‹   Ú	call_isubzBuiltinVariable.call_isub}
  s   € ô ˜"˜a Ð$9¸=È$ÓOÐOr�   c                 ó   — t        |||«      S r‡   )r[   r@  s       r‹   Úcall_addzBuiltinVariable.call_add‚
  s   € ô �b˜!˜QÓÐr�   c                 ó   — t        |||«      S r‡   )r^   r@  s       r‹   Ú	call_iaddzBuiltinVariable.call_iadd‡
  s   € ô ˜b ! QÓ'Ð'r�   c                 ó    — t        |||dd«      S )NÚnb_andú&r�  r@  s       r‹   Ú	call_and_zBuiltinVariable.call_and_Œ
  r�  r�   c                 ó"   — t        |||ddd«      S )NÚnb_inplace_andr¥  z&=r’  r@  s       r‹   Ú	call_iandzBuiltinVariable.call_iand‘
  r”  r�   c                 ó    — t        |||dd«      S )NÚnb_orú|r�  r@  s       r‹   Úcall_or_zBuiltinVariable.call_or_–
  s   € ô ˜˜Q  7¨CÓ0Ð0r�   c                 ó"   — t        |||ddd«      S )NÚnb_inplace_orr¬  z|=r’  r@  s       r‹   Úcall_iorzBuiltinVariable.call_ior›
  s   € ô ˜"˜a  O°W¸dÓCÐCr�   c                 ó    — t        |||dd«      S )NÚ	nb_lshiftz<<r�  r@  s       r‹   Úcall_lshiftzBuiltinVariable.call_lshift 
  ó   € ô ˜˜Q  ;°Ó5Ð5r�   c                 ó"   — t        |||ddd«      S )NÚnb_inplace_lshiftr³  z<<=r’  r@  s       r‹   Úcall_ilshiftzBuiltinVariable.call_ilshift¥
  ó   € ô ˜"˜a Ð$7¸ÀeÓLÐLr�   c                 ó    — t        |||dd«      S )NÚ	nb_rshiftz>>r�  r@  s       r‹   Úcall_rshiftzBuiltinVariable.call_rshiftª
  rµ  r�   c                 ó"   — t        |||ddd«      S )NÚnb_inplace_rshiftr»  z>>=r’  r@  s       r‹   Úcall_irshiftzBuiltinVariable.call_irshift¯
  r¹  r�   c                 ó    — t        |||dd«      S )NÚnb_floor_dividez//r�  r@  s       r‹   Úcall_floordivzBuiltinVariable.call_floordiv´
  s   € ô ˜˜Q Ð#4°dÓ;Ð;r�   c                 ó"   — t        |||ddd«      S )NÚnb_inplace_floor_dividerÁ  z//=r’  r@  s       r‹   Úcall_ifloordivzBuiltinVariable.call_ifloordiv¹
  s   € ô ˜"˜a Ð$=Ð?PÐRWÓXÐXr�   c                 ó    — t        |||dd«      S )NÚnb_true_divideú/r�  r@  s       r‹   Úcall_truedivzBuiltinVariable.call_truediv¾
  s   € ô ˜˜Q Ð#3°SÓ9Ð9r�   c                 ó"   — t        |||ddd«      S )NÚnb_inplace_true_dividerÇ  z/=r’  r@  s       r‹   Úcall_itruedivzBuiltinVariable.call_itruedivÃ
  s   € ô ˜"˜a Ð$<Ð>NÐPTÓUÐUr�   c                 ó    — t        |||dd«      S )NÚnb_remainderú%r�  r@  s       r‹   Úcall_modzBuiltinVariable.call_modÈ
  s   € ô ˜˜Q  >°3Ó7Ð7r�   c                 ó"   — t        |||ddd«      S )NÚnb_inplace_remainderrÎ  z%=r’  r@  s       r‹   Ú	call_imodzBuiltinVariable.call_imodÍ
  s   € ô ˜"˜a Ð$:¸NÈDÓQÐQr�   c                 ó    — t        |||dd«      S )NÚ	nb_divmodzdivmod()r�  r@  s       r‹   Úcall_divmodzBuiltinVariable.call_divmodÒ
  s   € ô
 ˜˜Q  ;°
Ó;Ð;r�   c           
      ó
  — t        |t        «      rMt        j                  | |j                  j                  dt
        j                  gt        |gi «      ¢­Ž d ¬«      S t        |t        «      r|j                  }t        |t        t        t        f«      r,t        j                  |t        |j                   «      dk(  «      S t        |t"        «      r3| j%                  ||«      }t        j                  ||j&                   «      S y )Nrk  r‡  r   )rð   rc   r_  rm  rn  r²   r&  r0   rA   Údv_dictrF   r>   r`   r;   rã   r¨   r’  rg   r©  rÀ   )r‰   rÒ   r_  Úbool_results       r‹   Ú	call_not_zBuiltinVariable.call_not_Ù
  sÙ   € ô �aœÔ)Ü"×)Ñ)ØØ&�—	‘	×&Ñ&Ø#¤X§]¡]ðÜ5FÈÀsÈBÓ5Oòð ôð ô �aÔ)Ô*Ø—	‘	ˆAÜ�aœ,Ô(9¼;ÐGÔHÜ"×(Ñ(¨¬S°·±«\¸QÑ->Ó?Ð?Ü�aÔ2Ô3ØŸ.™.¨¨QÓ/ˆKÜ"×(Ñ(¨°×1BÑ1BÐ-BÓCÐCàr�   c                 ó"   — ddl m}  ||||«      S )Nr6   )Úgeneric_contains)rí   rÜ  )r‰   rÒ   r_  r`  rÜ  s        r‹   Úcall_containszBuiltinVariable.call_containsð
  s   € õ 	6á  A qÓ)Ð)r�   c                 ój   — t        |t        j                  «      xr | j                  |j                  u S r‡   )rð   r   r  r  rñ   s     r‹   rò   zBuiltinVariable.is_python_equal÷
  s'   € Ü˜%¤×!:Ñ!:Ó;ÒSÀÇÁÈ5Ï8É8Ð@SÐSr�   )Frü   )‹rŽ   r�   r�   r‘   rõ   Ú	_SENTINELr;   Ú_nonvar_fieldsrþ   r   r"   rÊ   ÚstaticmethodrË  ÚcacherV  r   rF  r  rH  rQ  r’   rÿ   r  r“   rV  rß   r“  r”  r™  r£  r¥  rœ  rÝ   rä   ÚiterÚsetattrr¦  rý   r¨  rô   rÍ   r°  r·  r»  rÙ   rÁ  rÅ  rÉ  rÑ  rÕ  r×  r  r#  ÚASTr7  r'  rC  rK  rO  rQ  rM  r  rƒ  rk  rù   r¤  r§  r©  r¬  r®  r»  rÅ  rÉ  rÇ  rÈ  Úcall_minÚcall_maxrä  ræ  ré  rí  rò  rñ  rù  rû  rþ  r  r  r  r	  r  r  r  r  r8  r=  rA  rE  rN  rQ  rá   rU  r^  rg  rk  rm  rq  rx  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  s   @r‹   r  r  ©  sã  ø… ññ “€Iàðà	×	'Ñ	'ð€Nð
 ð) sð )°Fð )Ð?Pò )ó ð)ð Ø‡_�_ðE c¨(°3¸°8Ñ*<Ñ&=ò Eó ó ðEðN:¨4ó :ð Ø‡_�_ð*  X¨c°3¨hÑ%7Ñ!8ò *ó ó ð*ðX Ø‡_�_ð�TØ��f�Ñ˜u T¨#¡Y°¸¸f¸Ñ0EÐ%EÑFÐFñò ó ó ðð  Ø‡_�_ðN˜TØ��f�ÑØØØØ˜Ñ)Ø!ð#ñð !ð	"ññ	
ð		ñò Nó ó ðNð` ðØ�S˜#�XÑðØ(,¨_Ñ(=ðØGKðà	ÐÑ	 $Ñ	&òó ðð5 Tó 5ñ
 ,5Ø	ˆw˜  t¨WÐ5ó,Ð˜) C™.ó ð˜3ð ¨#ð °$õ ð4˜#ó 4ð Có ð¨có ð ñ	1à'ð1ð ð1ð ð	1ð
 
ó1ð."˜#õ "óJð1 ?ð 1¸oð 1ÐRVó 1ð ð °Tó ð¨$¨t©*ð ¸ó ð3Ø$ð3Ø0?ð3à	ó3ð ð
Ø�?Ñ#ð
Ø-1°#°Ð2FÑ-Gð
à	ˆt�C‰y˜$˜s C˜x™.Ð(Ñ	)ò
ó ð
ð
Ø˜Ñ)ð
Ø37¸¸_Ð8LÑ3Mð
à	ó
ð ða Ø�S˜#�XÑða Ø+/°©:ða ØCGða à	à'Ø�Ñ!Ø��oÐ%Ñ&ð	
ð
 	˜$Ñð	 ñ
òa ó ða ðF	 ð
¨#¯'©'ð 
°dò 
ó ð
ð8 ð1Ø'ð1Ø/2¯~©~ð1ØILð1à	˜4Ñ	ò1ó ð1ð*Là'ðLð  ðLð ð	Lð
 "ðLð 
˜4Ñ	óLð,	4Ð7ð 	4Àð 	4Èó 	4ð4Ø-ð4Ø6Eð4à	ó4ð ð
Ð(Cð 
Èò 
ó ð
ð(Wà'ðWð �?Ñ#ðWð �S˜/Ð)Ñ*ð	Wð
 
˜4Ñ	óWðF 	ð   Øˆf�cˆkÑØà+Ø�_Ñ%Ø�S˜/Ð)Ñ*ðð
 ðñ	
ð	ñ
"ó 
ð)à'ð)ð �?Ñ#ð)ð �S˜/Ð)Ñ*ð	)ð
 
ó)ð0D;à'ðD;ð ðD;ð �?Ñ#ð	D;ð
 �S˜/Ð)Ñ*ðD;ð 
õD;ðL$Ø-ð$Ø4Cð$à	˜4Ñ	ó$ð
&Ø-ð&Ø4Cð&à	˜4Ñ	ó&ð
%Ø-ð%Ø4Cð%à	˜4Ñ	ó%ð%Ø-ð%Ø4Cð%à	ó%ð%Ø-ð%Ø4Cð%à	˜4Ñ	ó%ð
?Ø-ð?Ø4Cð?à	˜4Ñ	ó?òBð4
Ø-ð
Ø6Eð
à	˜4Ñ	ó
ðYØ-ðYØ6:¸?Ñ6KðYà	óYðmà'ðmð ˜TÑ!ðmð ˜TÑ!ð	mð
 
˜4Ñ	ómð^ €HØ€Hð$Ø-ð$Ø4Cð$à	ó$ð
$Ø-ð$Ø4Cð$à	ó$ð
%Ø-ð%Ø4Cð%à	ó%ðBà'ðBð ðBð ð	Bð
 "ðBð 
óBð	Ø-ð	Ø6Eð	à	˜4Ñ	ó	ð
 ?ð 
¸oð 
ÐRVó 
ð
7Ø-ð7Ø6Eð7à	ó7ð

Ø-ð

Ø69ð

ØEHð

à	ó

ðFà'ðFð ðFð "ð	Fð
 
˜4Ñ	óFð6 Ø-ð Ø4Cð à	˜4Ñ	ó ðD
Øð
Ø,ð
Ø8Gð
à	˜4Ñ	ó
ð
Ø-ð
Ø4Cð
à	˜4Ñ	ó
ðà'ðð ðð "ð	ð
 
óð0à'ðð ðð "ð	ð
 
óð6
à'ð
ð ð
ð "ð	
ð
 
ó
ð4(à'ð(ð ð(ð "ð	(ð
 
ó(ð0à'ð0ð ð0ð "ð	0ð
 
ó0ðh.à'ðh.ð ðh.ð -ð	h.ð
 
óh.ðT	9à'ð	9ð !ð	9ð "ð		9ð
 
ó	9ð-Ø-ð-Ø2Að-ØFUð-à	ó-ð
Ø-ðØ6Eðà	óð (
à'ð(
ð ð(
ð ð	(
ð
 "ð(
ð 
ó(
ðT
Ø-ð
Ø3Bð
ØIXð
à	ó
ð
Ø-ð
Ø58ð
à	ó
ð&Bà'ðBð ðBð "ð	Bð
 
óBð:Ø-ð:Ø4Cð:à	ó:ð4'Ø-ð'Ø4Cð'à	ó'ð<à'ðð ðð "ð	ð
 
˜4Ñ	óð"Ø-ð"Ø2Að"à	ó"ð
	Nà'ð	Nð (ð	Nð ð		Nð
 "ð	Nð 
ó	Nð'Ø-ð'Ø6Eð'à	ó'ð*
Ø-ð
Ø2Að
à	ó
ð8
à'ð8
ð ð8
ð ð	8
ð
 
ó8
ðt%
à'ð%
ð ð%
ð ð	%
ð
 
ó%
ðN2Ø-ð2Ø2Að2ØFUð2à	˜4Ñ	ó2ð
FØ-ðFØ2AðFØFUðFà	˜4Ñ	óFð
*Ø-ð*Ø2Að*ØFUð*à	˜4Ñ	ó*ð
2Ø-ð2Ø2Að2ØFUð2à	˜4Ñ	ó2ð
7Ø-ð7Ø2Að7ØFUð7à	˜4Ñ	ó7ð
PØ-ðPØ2AðPØFUðPà	˜4Ñ	óPð
 Ø-ð Ø2Að ØFUð à	˜4Ñ	ó ð
(Ø-ð(Ø2Að(ØFUð(à	˜4Ñ	ó(ð
2Ø-ð2Ø2Að2ØFUð2à	˜4Ñ	ó2ð
FØ-ðFØ2AðFØFUðFà	˜4Ñ	óFð
1Ø-ð1Ø2Að1ØFUð1à	˜4Ñ	ó1ð
DØ-ðDØ2AðDØFUðDà	˜4Ñ	óDð
6Ø-ð6Ø2Að6ØFUð6à	˜4Ñ	ó6ð
MØ-ðMØ2AðMØFUðMà	˜4Ñ	óMð
6Ø-ð6Ø2Að6ØFUð6à	˜4Ñ	ó6ð
MØ-ðMØ2AðMØFUðMà	˜4Ñ	óMð
<Ø-ð<Ø2Að<ØFUð<à	˜4Ñ	ó<ð
YØ-ðYØ2AðYØFUðYà	˜4Ñ	óYð
:Ø-ð:Ø2Að:ØFUð:à	˜4Ñ	ó:ð
VØ-ðVØ2AðVØFUðVà	˜4Ñ	óVð
8Ø-ð8Ø2Að8ØFUð8à	˜4Ñ	ó8ð
RØ-ðRØ2AðRØFUðRà	˜4Ñ	óRð
<Ø-ð<Ø2Að<ØFUð<à	˜4Ñ	ó<ðØ-ðØ2Aðà	˜4Ñ	óð.*Ø-ð*Ø2Að*ØFUð*à	ó*ðT Vð T°÷ Tr�   r  c                   óè   ‡ — e Zd ZdZeZefdededdfˆ fd„Zde	fd„Z
dd	d
ee   dee	ef   defd„Zdd	de	d
ee   dee	ef   def
ˆ fd„Zedd	ded
ededef
d„«       Zedd	ded
ededef
d„«       Zˆ xZS )ÚDictBuiltinVariablez4Variable tracker for the `dict` builtin constructor.rÀ   r…   r~   Nc                 óP   •— |t         urt        d|› �«      ‚t        ‰| �  di |¤Ž y )Nz,DictBuiltinVariable value must be dict, got rˆ   )r’   r±   rø   r¨  ©r‰   rÀ   r…   rû   s      €r‹   r¨  zDictBuiltinVariable.__init__   ó/   ø€ ØœÑÜ Ð#OÐPUÈwÐ!WÓXÐXÜ‰ÑÑ"˜6Ó"r�   c                  ó   — y)NzDictBuiltinVariable()rˆ   rÌ   s    r‹   rô   zDictBuiltinVariable.__repr__  ó   € Ø&r�   rÒ   rj   r„   c                 ó>   — t        j                  |t        g|¢­i |¤ŽS r‡   )ré  Úcall_custom_dictr’   r  s       r‹   rk  z!DictBuiltinVariable.call_function  s!   € ô #×3Ñ3°B¼ÐN¸tÒNÀvÑNÐNr�   rØ   c                 óx  •— |dk(  r]|r[t        i t        t        «       ¬«      }t        |d   t        «      r|S |j
                  j                  j                  | |d   g |¬«      S |dk(  rt	        j                  |t        g|¢­i |¤ŽS t        t        |d «      }|��|t        v rˆt        |d   t        j                  «      r>|d   j                  €t        d«      ‚|d   j                  j                  |||dd  |«      S t        |d   t         «      r|d   j                  |||dd  |«      S t         ‰| �=  ||||«      S )Nrk   rT  r   r�  ÚfromkeyszJUserDefinedDictVariable._base_vt must not be None for dict method dispatchr6   )r>   r’   r:   rð   ré  rm  r[  r›  Úcall_custom_dict_fromkeysrÝ   r(   r   ÚUserDefinedDictVariabler�  r±   rù   rø   )r‰   rÒ   rØ   r„   r…   Údict_vtr¡  rû   s          €r‹   rù   zDictBuiltinVariable.call_method  s]  ø€ ð �9ÒÙô
 ,¨B´ÔDTÓDVÔW�Ü˜d 1™gÔ':Ô;Ø"�NØ—y‘y×-Ñ-×KÑKØØ˜‘GØØð	 Ló ð ð �:ÒÜ&×@Ñ@Ø”DðØòØ#)ñð ô œd D¨$Ó/ˆØÐ" {´lÑ'BÜ˜$˜q™'¤9×#DÑ#DÔEØ˜‘7×#Ñ#Ð+Ü(Ødóð ð ˜A‘w×'Ñ'×3Ñ3°B¸¸dÀ1À2¸hÈÓOÐOÜ˜D ™GÔ%6Ô7Ø˜A‘w×*Ñ*¨2¨t°T¸!¸"°X¸vÓFÐFä‰wÑ" 2 t¨T°6Ó:Ð:r�   Úuser_clsc                ó°   — t        |«      }| j                  t        j                  | t        j
                  «      t        j                  | |«      g|¢|«      S r‡   )r  Úinline_user_function_returnr;   rã   r   Úconstruct_dict)rÒ   rö  r„   r…   Ú	args_lists        r‹   rð  z$DictBuiltinVariable.call_custom_dict9  sQ   € ô ˜“Jˆ	Ø×-Ñ-Ü×!Ñ! "¤i×&>Ñ&>Ó?Ü×"Ñ" 2 xÓ0Ð=°9Ð=Øó
ð 	
r�   c          
      ó²  ‡ ‡— ‰t         t        t        hvrKt        d‰j                  › d|› d|› �d‰j                  › d‰j                  › d�d‰j                  › d�g¬	«       |rq‰t        us t        |«      d
k7  st        |«      d
k7  sd|vr3t        ‰ ‰j                  › d�dt        |«      › dt        |«      › d�«       g |¢|j                  d«      ‘­}t        |«      dk(  r't        ‰ ‰j                  › d�dt        |«      › d�«       t        |«      d
k(  rg |¢t        j                  d «      ‘­}t        |«      dk7  r't        ‰ ‰j                  › d�dt        |«      › d�«       |\  }}dt         t        t        f   dt        fˆ ˆfd„}t        |t         «      r?|D �cg c]  }t        j                  ‰ |«      ‘Œ }} |t         j                  ||«      «      S t        ‰ |«      x}	r:t        ‰ |	«      }
t!        d„ |
D «       «      r |t         j                  |
|«      «      S t        d‰j                  › d|› d|› �d‰j                  › d�ddg¬	«       y c c}w )Nz$Unsupported dict type for fromkeys()z.fromkeys(): rø  zFailed to call z.fromkeys() because z5 is not any type of dict, OrderedDict, or defaultdictzEnsure z0 is a type of dict, OrderedDict, or defaultdict.rç  r6   rÀ   z	.fromkeysz1 args and 1 kwargs (`value`)z
 args and r  r   zat least 1 argsz argsr   z2 argsr’  r~   c                 óÈ  •— ‰t         u r¡ddlm} ddlm} ‰j
                  j                  j                  |j                  ‰t        «      |j                  ‰t         «      g ‰¬«      }t        ||«      st        dt        |«      › �«      ‚t        | t         t        «       ¬«      |_        |S ‰t         u rœddlm} ddlm} ‰j
                  j                  j                  |j                  ‰t        «      |j                  ‰t         «      g ‰¬«      }t        ||«      st        dt        |«      › �«      ‚t        | t        «       ¬	«      |_        |S t        | t        «       ¬	«      S )
Nr6   rd  )ÚOrderedDictVariabler�  z"Expected OrderedDictVariable, got )rö  rU  )ÚDefaultDictVariablez"Expected DefaultDictVariable, got rT  )r   rl  re  r‘  rý  rm  r[  r›  r_  r’   rð   r±   rß   r>   r:   r�  r   rþ  )r’  re  rý  r‚  rþ  rÒ   rö  s        €€r‹   Ú_make_resultzCDictBuiltinVariable.call_custom_dict_fromkeys.<locals>._make_result|  sM  ø€ ð œ;Ñ&Ý6Ý=àŸ™×/Ñ/×MÑMØ%×,Ñ,¨R´Ó6Ø%×,Ñ,¨R´Ó=ØØð	 Nó �ô " &Ð*=Ô>Ü(Ø<¼TÀ&»\¸NÐKóð ô #4ØÜ(Ü"2Ó"4ô#�”ð
 �Øœ[Ñ(Ý6Ý=àŸ™×/Ñ/×MÑMØ%×,Ñ,¨R´Ó6Ø%×,Ñ,¨R´Ó=ØØð	 Nó �ô " &Ð*=Ô>Ü(Ø<¼TÀ&»\¸NÐKóð ô #4ØÔ)9Ó);ô#�”ð �ä(¨Ô>NÓ>PÔQÐQr�   c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr‡   rB   r‘  s     r‹   r  z@DictBuiltinVariable.call_custom_dict_fromkeys.<locals>.<genexpr>­  s   è ø€ Ò0 a”;˜q—>Ñ0ùrˆ  zfailed to call dict.fromkeys()zo.fromkeys() because arguments could not be automatically converted to a list, or some dict key is not hashable.z(Manually convert the argument to a list.zEnsure all keys are hashable.)r’   r   r   r   rŽ   r¨   r1   r  r<   r_  r;   rð   rã   rò  rP   r5   r  )rÒ   rö  r„   r…   rú   rÀ   rÿ  rÓ  Úarg_listÚiteratorÚkeyss   ``         r‹   ró  z-DictBuiltinVariable.call_custom_dict_fromkeysH  s•  ù€ ð œD¤+¬{Ð;Ñ;ÜØ>Ø#×,Ñ,Ð-¨]¸4¸&ÀÀ&ÀÐJØ-¨h×.?Ñ.?Ð-@Ð@TØ×$Ñ$Ð%Ð%Zð\ð ˜h×/Ñ/Ð0Ð0`Ðaðõñ ð ¤Ñ+Ü�t“9 ’>Ü�v“; !Ò#Ø &Ñ(ä#ØØ×(Ñ(Ð)¨Ð3Ø3Ü˜4“y�k ¬C°«K¨=¸Ð@ô	ð 0�TÐ/˜6Ÿ:™: gÓ.Ñ/ˆDÜˆt‹9˜Š>ÜØØ×$Ñ$Ð% YÐ/Ø!Ü�t“9�+˜UÐ#ô	ô ˆt‹9˜Š>Ø9�TÐ9Ô+×2Ñ2°4Ó8Ñ9ˆDÜˆt‹9˜Š>ÜØØ×$Ñ$Ð% YÐ/ØÜ�t“9�+˜UÐ#ô	ð ‰
ˆˆUð*	RÜœ¬Ð8Ñ9ð*	Räö*	RôX �cœ4Ô Ø>AÖB¸œ×-Ñ-¨b°!Õ4ÐBˆHÐBÙ¤§¡¨h¸Ó >Ó?Ð?Ü(¨¨SÓ1Ð1ˆXÐ1Ü" 2 xÓ0ˆDÜÑ0¨4Ô0Ô0Ù#¤D§M¡M°$¸Ó$>Ó?Ð?äØ4Ø×(Ñ(Ð)¨°t°f¸A¸f¸XÐFØ)¨(×*;Ñ*;Ð)<ð =0ð 0ð ;Ø/ðö
	
ùò Cs   ÆI)rŽ   r�   r�   r‘   r’   r¿   rß   r   r¨  r“   rô   r  r;   rk  rù   rá  rð  ró  r  r  s   @r‹   ré  ré  û
  sC  ø„ Ù>à
€Cà%)ñ #˜dð #°Sð #¸Tõ #ð
'˜#ó 'ðOà'ðOð �?Ñ#ðOð �S˜/Ð)Ñ*ð	Oð
 
óOð';à'ð';ð ð';ð �?Ñ#ð	';ð
 �S˜/Ð)Ñ*ð';ð 
õ';ðR ð
Ø'ð
àð
ð ð	
ð
 "ð
ð 
ò
ó ð
ð ðq
Ø'ðq
àðq
ð ð	q
ð
 "ðq
ð 
òq
ó ôq
r�   ré  c                   ól   ‡ — e Zd ZdZeZefdededdfˆ fd„Zdefd„Z	dd	d
e
e   deeef   defd„Zˆ xZS )ÚIterBuiltinVariablez(Variable tracker for the `iter` builtin.rÀ   r…   r~   Nc                 óP   •— |t         urt        d|› �«      ‚t        ‰| �  di |¤Ž y )Nz,IterBuiltinVariable value must be iter, got rˆ   )rã  r±   rø   r¨  rë  s      €r‹   r¨  zIterBuiltinVariable.__init__Â  rì  r�   c                  ó   — y)NzIterBuiltinVariable()rˆ   rÌ   s    r‹   rô   zIterBuiltinVariable.__repr__Ç  rî  r�   rÒ   rj   r„   c                 óâ   — |st        t        |dg¬«       t        |«      dk(  rt        ||d   «      S t	        j
                  t        j                  j                  «      j                  |||«      S )Nz(iter expected at least 1 argument, got 0rr  r6   r   )
r   rs  r¨   rP   r   r³  r   r¾  Úcallable_iteratorrk  r  s       r‹   rk  z!IterBuiltinVariable.call_functionÊ  si   € ñ Ü$ÜØØ@ÐAõô ˆt‹9˜Š>Ü" 2 t¨A¡wÓ/Ð/ä×1Ñ1Ü×"Ñ"×4Ñ4óç‰m˜B  fÓ-ð.r�   )rŽ   r�   r�   r‘   rã  r¿   r   r¨  r“   rô   r  r;   r’   rk  r  r  s   @r‹   r  r  ½  sn   ø„ Ù2à
€Cà$(ñ #˜cð #°Cð #¸Dõ #ð
'˜#ó 'ð.à'ð.ð �?Ñ#ð.ð �S˜/Ð)Ñ*ð	.ð
 
÷.r�   r  c                   ó”   ‡ — e Zd ZdZeZefdededdfˆ fd„Zdefd„Z	dd	d
e
e   deeef   defd„Zdd	d
e
e   deeef   defd„Zˆ xZS )ÚGetAttrBuiltinVariablez+Variable tracker for the `getattr` builtin.rÀ   r…   r~   Nc                 óP   •— |t         urt        d|› �«      ‚t        ‰| �  di |¤Ž y )Nz2GetAttrBuiltinVariable value must be getattr, got rˆ   )rÝ   r±   rø   r¨  rë  s      €r‹   r¨  zGetAttrBuiltinVariable.__init__æ  ó4   ø€ ØœÑÜ ØDÀUÀGÐLóð ô 	‰ÑÑ"˜6Ó"r�   c                  ó   — y)NzGetAttrBuiltinVariable()rˆ   rÌ   s    r‹   rô   zGetAttrBuiltinVariable.__repr__í  ó   € Ø)r�   rÒ   rj   r„   c           	      ó8  ‡— ddl mŠ t        ˆfd„|D «       «      r+|D �cg c]   }t        |‰«      r|j	                  «       n|‘Œ" }}	 | j                  |||«      S c c}w # t        $ r° t        ||«      s‚ 	 t        |D �cg c]  }|j                  «       ‘Œ nc c}w c}Ž }n^# t        $ r t        t        |«       ‚ t        $ r ‚ t        $ r0}t        t        |«      |t        |j                   «      ¬«       ‚ d }~ww xY wt#        j$                  ||«      cY S w xY w)Nr6   ©rÛ  c              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wr‡   ©rð   ©r  r_  rÛ  s     €r‹   r  z7GetAttrBuiltinVariable.call_function.<locals>.<genexpr>ø  ó   øè ø€ Ò@°aŒz˜!Ð0×1Ñ@ùrÝ  rr  )r  rÛ  r  rð   rß  Ú_call_getattrr   r&   rÝ   rÍ   rµ  r   r7   r  rß   r  r„   r;   rã   )r‰   rÒ   r„   r…   r_  r‚  rt  rÛ  s          @r‹   rk  z$GetAttrBuiltinVariable.call_functionð  s
  ø€ õ 	.äÓ@¸4Ô@Ô@àRVöØMNœz¨!Ð-@ÔA�—	‘	”ÀqÑHðˆDð ð	5Ø×%Ñ% b¨$°Ó7Ð7ùò	øô
 ò 	5ô 1°°vÔ>Øð	Ü À4Ö"H¸a 1×#7Ñ#7Õ#9Ñ"HùÔ"HÐI‘øÜ!ò Ü(¬¸Ô<ØÜ6ò ØÜò Ü(¬¨c«°B¼TÀ#Ç(Á(»^ÕLØûðúô #×(Ñ(¨¨VÓ4Ò4ð!	5úsG    %AÁA  Á DÁ7	B"Â B
Â
B"Â!DÂ"+C=Ã+C8Ã8C=Ã=DÄDc                 ó>  — |d   }|d   }t        |«      dkD  r|d   nd }|j                  «       st        dd|› d|› d|› d�dd	g¬
«       |j                  «       }|j	                  «       r|dk(  rd}|j
                  j                  j                  |«      rht        |t        j                  «      rN|dv rJ|j                  r>|j
                  j                  j                  |«      rt        dd|› d|› d|› d�dg ¬
«       |j
                  j                  j                  ||«      rÝt        |t        j                  «      s&|j
                  j                  j                  ||«      S |j
                  j                  j                  ||t         j"                  «      rh|j
                  j                  j                  ||d¬«      }|j%                  |«      }	t        |t        j&                  «      s|	t(        u st+        |	«      s|S |�H|j-                  ||«      }
|
�2|
j/                  dd«      st1        d|
› �«      ‚|
j                  «       s|S |S |j2                  xr t5        |j2                  |«      }|dv rÒ	 |j                  «       }t        |t6        «      r±|dk(  rat9        |j:                  «      D ��cg c]*  \  }}t=        j>                  |||xr tA        ||«      «      ‘Œ, }}}t        jB                  ||¬«      S |dk(  r!t=        j>                  ||jD                  |«      S |dk(  r t=        j>                  ||jF                  «      S t        |t        jJ                  «      r|jM                  ||«      S t        |t        jN                  t        jP                  t        jR                  t        jT                  t        jV                  t        jX                  t        j                  f«      �r!t        |t        j                  «      r]t[        |j\                  j^                  t`        jb                  «      r/td        jf                  r|dv rt        dd|› �d|› d�d|› d�g¬
«       |j	                  «       r‡|ji                  «       jj                  jl                  d    }t        |tn        jp                  «      rFts        |«      r;|jt                  rtd        jv                  st        d!d"d#g tx        jz                  ¢¬
«       	 |jM                  ||«      S t        |t        j€                  «      r­	 tƒ        |j\                  |«      }t        |tn        jˆ                  jŠ                  tn        jˆ                  jŒ                  f«      r@tn        jŽ                  j�                  j“                  |«      rt        j€                  ||¬«      S t        j~                  |||¬«      S t        |t”        «      r¢|j–                  s||j\                  j˜                  vrtƒ        |j\                  |«      }n|j\                  j˜                  |   }td        jš                  r'|jœ                  jŸ                  |j\                  ||«       t=        j>                  |||«      S 	 |jM                  ||«      S c c}}w # tH        $ r Y �Œaw xY w# t|        $ r ‚ tH        $ r t        j~                  |||¬«      cY S w xY w# t„        $ r t‡        t„        |«       ‚ w xY w# tH        $ r t        j~                  |||¬«      cY S w xY w)$Nr   r6   r   z)getattr() with non-constant name argumentzgetattr(r  r¬  z:getattr() with non-constant name argument is not supportedz1Ensure the name argument of getattr() is a stringrç  Ú_gradÚgrad)Únamed_parametersÚ
parametersÚnamed_buffersÚbuffersÚnamed_modulesÚmodulesz,getattr() on nn.Module with pending mutationzPIntentionally graph breaking on getattr() on a nn.Module with a pending mutationT)Ú
deleted_okFz2hasattr_var must be a constant True or False, got >   Ú__base__Ú	__bases__Ú	__flags__r"  rÄ   r!  r#  )ÚassertNotWarnsÚassertWarnsRegexÚassertWarnszFailed to trace unittest methodzfunction: unittest.TestCase.z3Dynamo does not know how to trace unittest method `z` zAvoid calling `TestCase.z%`. Please report an issue to PyTorch.r%  zAttempted to wrap sparse Tensorr°  z-torch.compile does not support sparse Tensors)Pr¨   r÷   r   rÍ   rÃ  rm  r[  r™  rð   r   ÚUnspecializedNNModuleVariableÚis_state_mutatedÚhas_pending_mutationÚhas_pending_mutation_of_attrrg   Ú	load_attrr8   ÚINSTANCE_DICTÚlookup_class_mro_attrr^  r9   rf   rå   Úis_constant_matchr±   rÁ   r   rß   Ú	enumerater"  r;   rã   r   rH   r!  r#  r´  rZ  rá   rd   ÚNamedTupleVariabler<   rþ  ÚDistributedVariablerö   rž  rÀ   rû   ÚunittestÚTestCaser   Úenable_trace_unittestr»  r   r&  r©   rY  r   ry  Úcapture_sparse_computer   ÚSPARSE_TENSORr7   rÞ   rÓ  rÝ   rµ  r   Ú_opsÚOpOverloadPacketÚ
OpOverloadrÀ  Útrace_rulesÚis_aten_op_or_tensor_methodr   Úis_torchrD  Úreplay_record_enabledÚexec_recorderÚrecord_module_access)r‰   rÒ   r„   r…   rà  rž  ÚdefaultrØ   rÀ   Ú	type_attrÚhasattr_varrÁ   rÐ  r`  Ú
tuple_argsÚfake_valÚmembers                    r‹   r  z$GetAttrBuiltinVariable._call_getattr  sD  € ð �1‰gˆØ˜‘7ˆÜ  ›Y¨š]�$�q’'°ˆà×*Ñ*Ô,ÜØCØ" 3 % r¨(¨°2°g°Y¸aÐ@ØXØJÐKõ	ð ×*Ñ*Ó,ˆð �=‰=Œ?˜t wšØˆDà�9‰9×!Ñ!×7Ñ7¸Ô<Ü˜#œy×FÑFÔGàðñð ×,Ò,ØŸ	™	×.Ñ.×CÑCÀCÔHä!Ø NØ"*¨3¨%¨r°$°°r¸'¸À!Ð Dð%2à õð �9‰9×!Ñ!×>Ñ>¸sÀDÔIÜ˜c¤9×#FÑ#FÔGØ—y‘y×-Ñ-×7Ñ7¸¸TÓBÐBØ�y‰y×%Ñ%×BÑBØ�TÔ+×9Ñ9ôð Ÿ	™	×.Ñ.×8Ñ8¸¸dÈtÐ8ÓT�Ø×5Ñ5°dÓ;�	Ü! %¬×)BÑ)BÔCØ¤Ñ/Ô7IÈ)Ô7Tà �LàÐØ×.Ñ.¨r°4Ó8ˆKØÐ&Ø"×4Ñ4°T¸5ÔAÜ(ØLÈ[ÈMÐZóð ð #×5Ñ5Ô7Ø"�Nà�à—‘Ò<¤
¨3¯:©:°tÓ <ˆØÐ9Ñ9ðØ×.Ñ.Ó0�Ü˜e¤TÔ*Ø˜{Ò*ô
 )2°%·/±/Ó(B÷	&ñ !%  1ô ,×1Ñ1Ø " A vÒ'J´-ÀÈÓ2Jõð&˜
ñ &ô  )×6Ñ6°zÈ&ÔQÐQØ˜zÒ)Ü.×4Ñ4°R¸¿¹ÈÓPÐPØ˜{Ò*Ü.×4Ñ4°R¸¿¹ÓIÐIô �cœ9×5Ñ5Ô6Ø—?‘? 2 tÓ,Ð,ÜØä×(Ñ(Ü×,Ñ,Ü×*Ñ*Ü×-Ñ-Ü×-Ñ-Ü×2Ñ2Ü×3Ñ3ðõ
ô ˜3¤	× CÑ CÔDÜ˜sŸy™y×2Ñ2´H×4EÑ4EÔFÜ×0Ò0Øðñô Ø=Ø:¸4¸&ÐAØ"UÐVZÐU[Ð[]Ð ^à2°4°&ð 9=ð =ðõ	ð �}‰}ŒàŸ<™<›>×.Ñ.×3Ñ3°OÑD�ä˜x¬¯©Ô6Ü% hÔ/ØŸYšY¬f×.KÒ.Kä!Ø AØ "Ø$SØ@Ô 1× ?Ñ ?Ð@õ	ðKØ—‘ r¨4Ó0Ð0ô ˜œY×CÑCÔDðÜ  §¡¨DÓ1�ô
 ØœŸ™×4Ñ4´e·j±j×6KÑ6KÐLôä—-‘-×+Ñ+×GÑGÈÔOÜ ×=Ñ=¸fÈVÔTÐTä ×0Ñ0°°dÀ6ÔJÐJÜ˜œ[Ô)à�|Š|˜t¨3¯9©9×+=Ñ+=Ñ=Ü  §¡¨DÓ1‘àŸ™×+Ñ+¨DÑ1�ä×+Ò+Ø× Ñ ×5Ñ5°c·i±iÀÀvÔNÜ"×(Ñ(¨¨V°VÓ<Ð<ðKØ—‘ r¨4Ó0Ð0ùóC&øô 'ò Úðûôl 7ò ð Ü&ò KÜ ×0Ñ0°°dÀ6ÔJÒJðKûô "ò Ü(¬¸Ô<Øðûô. 'ò KÜ ×0Ñ0°°dÀ6ÔJÒJðKús`   É4=Z Ê1/ZË Z Ë:%Z Ì $Z Ó6Z* Ô#[ Ú[8 ÚZ Ú	Z'Ú&Z'Ú**[Û[Û[5Û8!\Ü\)rŽ   r�   r�   r‘   rÝ   r¿   r   r¨  r“   rô   r  r;   r’   rk  r  r  r  s   @r‹   r  r  á  s³   ø„ Ù5à
€Cà$+ñ #˜cð #°sð #¸tõ #ð*˜#ó *ð5à'ð5ð �?Ñ#ð5ð �S˜/Ð)Ñ*ð	5ð
 
ó5ð@qKà'ðqKð �?Ñ#ðqKð �S˜/Ð)Ñ*ð	qKð
 
÷qKr�   r  c                   ól   ‡ — e Zd ZdZeZefdededdfˆ fd„Zdefd„Z	dd	d
e
e   deeef   defd„Zˆ xZS )ÚHasAttrBuiltinVariablez+Variable tracker for the `hasattr` builtin.rÀ   r…   r~   Nc                 óP   •— |t         urt        d|› �«      ‚t        ‰| �  di |¤Ž y )Nz2HasAttrBuiltinVariable value must be hasattr, got rˆ   )rä   r±   rø   r¨  rë  s      €r‹   r¨  zHasAttrBuiltinVariable.__init__É  r  r�   c                  ó   — y)NzHasAttrBuiltinVariable()rˆ   rÌ   s    r‹   rô   zHasAttrBuiltinVariable.__repr__Ð  r  r�   rÒ   rj   r„   c                 óØ  ‡— ddl mŠ t        ˆfd„|D «       «      r+|D �cg c]   }t        |‰«      r|j	                  «       n|‘Œ" }}t        |«      dk7  s|rt        t        |«       |\  }}|j                  «       st        t        |«       |j                  ||j                  «       «      }|€7t        dd|› d|› d�d	|j                  «       › �g t        j                  ¢¬
«       |S c c}w )Nr6   r  c              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wr‡   r  r  s     €r‹   r  z7HasAttrBuiltinVariable.call_function.<locals>.<genexpr>Û  r  rÝ  r   zhasattr() on unsupported typezhasattr(r  r¬  z#hasattr() is not supported on type rç  )r  rÛ  r  rð   rß  r¨   r   rs  r÷   rå   rÍ   r   r  r   rì  )	r‰   rÒ   r„   r…   r_  rà  rà   r‚  rÛ  s	           @r‹   rk  z$HasAttrBuiltinVariable.call_functionÓ  sé   ø€ õ 	.äÓ@¸4Ô@Ô@àRVöØMNœz¨!Ð-@ÔA�—	‘	”ÀqÑHðˆDð ô ˆt‹9˜Š>™VÜ$¤Y°Ô3Ø‰	ˆˆTØ×&Ñ&Ô(Ü$¤Y°Ô3Ø×%Ñ% b¨$×*AÑ*AÓ*CÓDˆØˆ>ÜØ7Ø" 3 % r¨$¨¨qÐ1ØAÀ#×BVÑBVÓBXÐAYÐZØ6Ô)×5Ñ5Ð6õ	ð ˆùò!s    %C')rŽ   r�   r�   r‘   rä   r¿   r   r¨  r“   rô   r   r;   r’   rk  r  r  s   @r‹   rG  rG  Ä  sn   ø„ Ù5à
€Cà$+ñ #˜cð #°sð #¸tõ #ð*˜#ó *ðà'ðð �Ñ'ðð �S˜/Ð)Ñ*ð	ð
 
÷r�   rG  c                   óŽ   ‡ — e Zd ZdZeZefdededdfˆ fd„Zdefd„Z	dd	d
e
e   deeef   defd„Zdd	dededededz  f
d„Zˆ xZS )ÚSetAttrBuiltinVariablez+Variable tracker for the `setattr` builtin.rÀ   r…   r~   Nc                 óP   •— |t         urt        d|› �«      ‚t        ‰| �  di |¤Ž y )Nz2SetAttrBuiltinVariable value must be setattr, got rˆ   )rä  r±   rø   r¨  rë  s      €r‹   r¨  zSetAttrBuiltinVariable.__init__ô  r  r�   c                  ó   — y)NzSetAttrBuiltinVariable()rˆ   rÌ   s    r‹   rô   zSetAttrBuiltinVariable.__repr__û  r  r�   rÒ   rj   r„   c           
      óŠ  ‡	— ddl mŠ	 t        ˆ	fd„|D «       «      r+|D �cg c]   }t        |‰	«      r|j	                  «       n|‘Œ" }}t        |«      dk7  s|rt        t        |«       |\  }}}| j                  ||||«      }|�|S t        dd|› d|› d|› d�d	|j                  «       › �g t        j                  ¢¬
«       y c c}w )Nr6   r  c              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wr‡   r  r  s     €r‹   r  z7SetAttrBuiltinVariable.call_function.<locals>.<genexpr>  r  rÝ  rq   zsetattr() on unsupported typeúsetattr(r  r¬  z#setattr() is not supported on type rç  )r  rÛ  r  rð   rß  r¨   r   rs  Ú_call_setattrr   r  r   rì  )
r‰   rÒ   r„   r…   r_  rà  rž  rŸ  r‚  rÛ  s
            @r‹   rk  z$SetAttrBuiltinVariable.call_functionþ  sÖ   ø€ õ 	.äÓ@¸4Ô@Ô@àRVöØMNœz¨!Ð-@ÔA�—	‘	”ÀqÑHðˆDð ô ˆt‹9˜Š>™VÜ$¤Y°Ô3Ø!ÑˆˆX�sØ×#Ñ# B¨¨X°sÓ;ˆØÐØˆMÜØ3Ø˜s˜e 2 h Z¨r°#°°aÐ8Ø=¸c×>RÑ>RÓ>TÐ=UÐVØ2Ô%×1Ñ1Ð2ö		
ùòs    %C rà  rž  rŸ  c                 óR	  — t        |t        j                  t        j                  t        j                  t        j
                  t        j                  f«      r|j                  |d||gi «      S |j                  j                  j                  |«      �r„|j                  «       �rs|j                  «       }|j                  «       �r)ddlm} |dk(  r+t!        dd|› d|› d|› d�d	g t"        j$                  ¢¬
«       �nó|dk(  �r½|j&                  €t!        dd|› d|› d|› d�ddg¬
«       n3|j(                  |j(                  k7  rt!        dd|› d|› d|› d�ddg¬
«       |j                  j*                  D �cg c]  }|j&                  |j&                  k(  sŒ|‘Œ  }}|D ]'  }|j                  j*                  j-                  |«       Œ) t/        |«      5  t1        j2                  «       5   || |j                  j4                  dt0        j6                  j8                  gt;        ||gi «      ¢­Ž «      }	d d d «       d d d «       dt0        j6                  dt0        j6                  fd„}
|j                  j5                  d|
	j=                  «       fi «        |
|j=                  «       j>                  j@                  d   «       |	S |dv rd}n)tC        |«      rt!        dd|› d|› d|› d�dd|› d�g¬
«       |j                  j                  jE                  |||«       |S t        |t        jF                  «      �r?|j                  jI                  «       s#t!        dd|› �ddgt"        jJ                  ¢¬
«       |j                  «       rát        |t        jL                  «      rÇtO        |j=                  «       j>                  |«      }	 |jQ                  ||j                  «       «      }|�€|j                  «       rptO        |j=                  «       j>                  |«      }tW        jX                  |jZ                  d«      }||u r(|t0        j\                  j^                  j`                  u r|S |jc                  |«       y c c}w # 1 sw Y   �ŒKxY w# 1 sw Y   �ŒPxY w# tR        tT        f$ r d }Y ŒÆw xY w) NrŒ  r6   ri  Úrequires_gradz!setattr() on Tensor.requires_gradrR  r  r¬  zÑsetattr() on Tensor.requires_grad not supported. Mutating requires_grad can introduce a new leaf from non-leaf or vice versa in the middle of the graph, which AOTAutograd does not currently know how to handle.rç  Údataz&Failed to mutate tensor data attributezVDynamo only supports mutating `.data` of tensor created outside `torch.compile` regionzWDon't mutate `.data` on this tensor, or move the mutation out of `torch.compile` regionz9Failed to mutate tensor data attribute to different dtypezPDynamo only supports mutating `.data` of tensor to a new one with the same dtyperk  r  r~   c                 óŠ   — | j                   }|dkD  r|dz
  }t        j                  j                  j	                  | f|f«       | S r  )Ú_versionr©   Ú_CÚ	_autogradÚ_unsafe_set_version_counter)r  Úversions     r‹   Ú_lower_version_count_by_1zGSetAttrBuiltinVariable._call_setattr.<locals>._lower_version_count_by_1q  s>   € Ø"#§*¡*˜Ø" Qš;Ø&-°¡k˜GÜŸ™×*Ñ*×FÑFÈÀtÈgÈZÔXØ ˜r�   r%  )r  r  r  zFailed to set tensor attributez6Dynamo doesn't support setting these tensor attributeszDon't mutate attribute 'z@' on tensors, or move the mutation out of `torch.compile` regionz#nn.Module mutation in HigherOrderOpznn.Module: zPInplace modifying nn.Module params/buffers inside HigherOrderOps is not allowed.z<Remove the mutation or move it outside of the HigherOrderOp.)2rð   r   rþ  rg   ÚNestedUserFunctionVariablerí  ÚTracebackVariablerù   rm  r[  r™  r÷   rÍ   rÃ  rl  rj  r   r   rì  rÁ   r•   Útracked_fakesÚremoveÚdynamo_disable_gradr©   Úno_gradrn  rY  Úset_r0   r»  r   r&  r,   Ú
store_attrrZ  Úis_root_tracerÚFUNDAMENTALrd   r*   rá   rµ  r   rù  rb  Úmodule_typer'  ÚModulerŒ  Úconvert_to_unspecialized)r‰   rÒ   rà  rž  rŸ  rØ   rj  ÚtfÚ	to_removeÚoutr]  Úassigning_fake_valÚgetattr_varÚexisting_fake_attrÚmod_setattrs                  r‹   rS  z$SetAttrBuiltinVariable._call_setattr  sy  € ô Øä×-Ñ-Ü×3Ñ3Ü×4Ñ4Ü×+Ñ+Ü×+Ñ+ðô	
ð —?‘? 2 }°xÀ°oÀrÓJÐJà�I‰I×"Ñ"×8Ñ8¸Õ=Ø×+Ñ+Õ-à×.Ñ.Ó0ˆDØ�}‰}�Ý2à˜?Ò*ä!Ø CØ"*¨3¨%¨r°$°°r¸#¸¸aÐ @ð%lð ?Ô 1× =Ñ =Ð>÷ð ˜V“^ð —z‘zÐ)Ü%Ø$LØ&.¨s¨e°2°d°V¸2¸c¸UÀ!Ð$Dð)Pð!Mð#ö	ð Ÿ™ c§i¡iÒ/Ü%Ø$_Ø&.¨s¨e°2°d°V¸2¸c¸UÀ!Ð$Dð)Jð!Mð#õ	ð" &(§Y¡Y×%<Ñ%<ö!Ø!ÀÇ	Á	ÈSÏZÉZÓ@Wšð!�Ið !ð (ò ;˜ØŸ	™	×/Ñ/×6Ñ6°rÕ:ð;ô -¨RÓ0ñ 	´%·-±-³/ñ 	á+ØØ2˜BŸI™I×2Ñ2Ø /Ü %§¡× 1Ñ 1ðô "3°C¸°:¸rÓ!Bòó˜÷	÷ 	ð!´U·\±\ð !ÄeÇlÁló !ð —I‘I×*Ñ*Ø'Ø1ØŸ™›Ð)Øô	ñ .¨c¯l©l«n×.AÑ.A×.FÑ.FÀÑ.WÔXð �JØÐ.Ñ.ð "‘DÜ0°Ô6ô "Ø @Ø"*¨3¨%¨r°$°°r¸#¸¸aÐ @Ø$\à6°t°fð =Nð Nðõ	ð �I‰I×"Ñ"×-Ñ-¨c°4¸Ô=ØˆJÜ˜œY×7Ñ7Õ8Ø—9‘9×+Ñ+Ô-ÜØAØ)¨#¨Ð/Ø ràVðä*×6Ñ6ðõ	ð ×*Ñ*Ô,´Ø”Y×-Ñ-ô2ô &4°C·L±L³N×4GÑ4GÈÓ%LÐ"ð'Ø"%§/¡/°"°h×6QÑ6QÓ6SÓ"T�Kð Ð*¨{×/DÑ/DÔ/Fä)7¸×8LÑ8LÓ8N×8SÑ8SÐUWÓ)XÐ&ô #*×"8Ñ"8¸¿¹È-Ó"X�Kà*Ð.@Ñ@Ø'¬5¯8©8¯?©?×+FÑ+FÑFà*Ð*à×(Ñ(¨Ô,ØùòA!÷	ñ 	ú÷ 	ñ 	ûôR 'Ô(>Ð?ò 'Ø"&’Kð'úsC   Å4Q3ÆQ3ÇRÇ%A
Q8È/RÎ? R Ñ8R	Ñ=RÒRÒR&Ò%R&)rŽ   r�   r�   r‘   rä  r¿   r   r¨  r“   rô   r   r;   r’   rk  rS  r  r  s   @r‹   rM  rM  ï  s®   ø„ Ù5à
€Cà$+ñ #˜cð #°sð #¸tõ #ð*˜#ó *ð
à'ð
ð �Ñ'ð
ð �S˜/Ð)Ñ*ð	
ð
 
ó
ð2dà'ðdð ðdð "ð	dð
 ðdð 
˜4Ñ	÷dr�   rM  c            
       óœ   ‡ — e Zd ZdZeZefdededdfˆ fd„Zde	fd„Z
dd	d
ee   dee	ef   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 )ÚListBuiltinVariablez4Variable tracker for the `list` builtin constructor.rÀ   r…   r~   Nc                 óP   •— |t         urt        d|› �«      ‚t        ‰| �  di |¤Ž y )Nz,ListBuiltinVariable value must be list, got rˆ   )r  r±   rø   r¨  rë  s      €r‹   r¨  zListBuiltinVariable.__init__Ã  rì  r�   c                  ó   — y)NzListBuiltinVariable()rˆ   rÌ   s    r‹   rô   zListBuiltinVariable.__repr__È  rî  r�   rÒ   rj   r„   c                 ó(  — |rt        |d«       t        |«      dk(  rt        g t        «       ¬«      S t        |«      dkD  rt        |dt        |«      › �«       |d   }|j                  �r{t        |j                  «      �set        |t        «      r4t        |j                  j                  t        j                  «      «       �n!t        |t        j                  t        j                  f«      s÷t        |t        t        j                   t        j"                  f«      r/|j$                  j&                  j)                  |j                  «       t        |t        j*                  «      r3t        |j                  j                  t        j,                  «      «       nLt        |t        j.                  «      s2t        |j                  j                  t        j0                  «      «       t        g t        «       ¬«      }|j3                  |d|d   gi «       |S )Nz!list() takes no keyword argumentsr   rT  r6   z&list expected at most 1 argument, got r…  )r   r¨   rF   r:   rÁ   r!   rð   rG   r   rÆ   r   ÚTUPLE_ITERATOR_LENr   ÚIteratorVariableÚLocalGeneratorObjectVariabler>   ÚOrderedSetVariableÚDictKeySetVariablerm  Úguard_on_key_orderrÑ   ÚMappingProxyVariableÚMAPPING_KEYS_CHECKr'  ÚSEQUENCE_LENGTHrù   )r‰   rÒ   r„   r…   rà  Úlsts         r‹   rk  z!ListBuiltinVariable.call_functionË  s�  € ñ ÜØØ3ôô ˆt‹9˜Š>Ü Ô2BÓ2DÔEÐEÜ�‹Y˜Š]ÜØØ8¼¸T»¸ÐDôð
 �1‰gˆØ�:‹:Ô0°·±Õ<Ü˜#Ô4Ô5Ü˜cŸj™j×3Ñ3´L×4SÑ4SÓTÖUÜØÜ×+Ñ+¬Y×-SÑ-SÐTôô Øä)Ü!×4Ñ4Ü!×4Ñ4ðôð —I‘I×0Ñ0×4Ñ4°S·Z±ZÔ@Ü˜c¤9×#AÑ#AÔBÜ!ØŸ
™
×-Ñ-¬l×.MÑ.MÓNõô $ C¬×)PÑ)PÔQÜ! #§*¡*×"7Ñ"7¼×8TÑ8TÓ"UÔVä˜2Ô-=Ó-?Ô@ˆØ�‰˜˜H t¨A¡w i°Ô4Øˆ
r�   rØ   c                 ó  •— |dk(  rit        |«      dk(  r[|sYt        g t        «       ¬«      }t        |d   t        «      r|S |j
                  j                  j                  | |d   |dd  |¬«      S t        ‰| �%  ||||«      S )Nrk   r6   rT  r   r�  )
r¨   rF   r:   rð   rs  rm  r[  r›  rø   rù   )r‰   rÒ   rØ   r„   r…   Úlist_vtrû   s         €r‹   rù   zListBuiltinVariable.call_methodû  s�   ø€ ð �9ÒÜ�4‹y˜AŠ~¡fÜ& rÔ9IÓ9KÔL�Ü˜d 1™gÔ':Ô;Ø"�NØ—y‘y×-Ñ-×KÑKØØ˜‘GØ˜˜�HØð	 Ló ð ô ‰wÑ" 2 t¨T°6Ó:Ð:r�   )rŽ   r�   r�   r‘   r  r¿   rß   r   r¨  r“   rô   r;   r’   rk  rù   r  r  s   @r‹   rs  rs  ¾  s¸   ø„ Ù>à
€Cà%)ñ #˜dð #°Sð #¸Tõ #ð
'˜#ó 'ð.à'ð.ð �?Ñ#ð.ð �S˜/Ð)Ñ*ð	.ð
 
ó.ð`;à'ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
÷;ñ ;r�   rs  rÒ   c              #   ó¶   K  — ddl m} |j                  | d«      }	 |j                  | «       d –— |j	                  | «       y # |j	                  | «       w xY w­w)Nr6   )ÚGradModeVariableF)r°  r„  r_  ÚenterÚexit)rÒ   r„  Úgmvs      r‹   rb  rb    sD   è ø€ å"à
×
!Ñ
! " eÓ
,€CðØ�	‰	�"ŒÛà�‰��øˆ�‰��üs   ‚AœA ±AÁAÁA)r~   N)Ûr‘   r#  r¾  Ú
contextlibrË  rù  rÍ  Úloggingr  r²   rI  rƒ   r4  r2  Úcollectionsr   r   Úcollections.abcr   r   r   r   r	   r
   r©   Útorch._subclasses.meta_utilsr   Útorch.overridesr   Útorch.utils._python_dispatchr   r°  r   r   r   r   rt  r   r   r   r   r   r   r   r   Úguardsr   r   Úreplay_recordr   rÁ   r   r   r    r!   r"   r#   Úutilsr$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   Úbaser7   r8   r9   r:   r;   Úconstantr<   r=   Údictsr>   r?   r@   rA   ÚhashablerC   ÚlistsrD   rE   rF   rG   rH   ÚmiscrI   rJ   rí   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   Úsetsr_   r`   rA  ra   rb   rc   rd   re   r‘  rf   rg   rh   Útorch._dynamo.codegenri   Útorch._dynamo.symbolic_convertrj   Ú	getLoggerrŽ   rü  r9  rÑ   r:  r-  r5  r)  r6  r*  r7  r+  r8  r,  r´   r;  r/  r<  r0  r4  r   r=  r1  r?  r2  r>  r3  r{  r   rœ  r  r  ro   r’   rß   r“   rý   rJ  r  r”  rÿ   r“  rO  rN  rJ  rM  rK  rL  rz   r³   r®   r¯   r(  r­   rµ   r°   r  r$  r%  r&  r.  r¬   r{   r|   r}   rõ   rc  r¼   r¾   r  ré  r  r  rG  rM  rs  ÚcontextmanagerÚIteratorrb  rˆ   r�   r‹   ú<module>rž     sw  ðòó* Û Û Û Û Û Û Û Û Û 
Û Û Û ß 0ß 8Ñ 8ß /Ñ /ã Ý 6Ý 1Ý Fç >Ó >÷	÷ 	ó 	÷ 1Ý '÷÷ ÷÷ ÷ ÷ ÷ ÷(õ ÷ 7÷ó õ "÷õ ÷ 5÷÷ ÷ ÷ ÷ ó ÷, 1÷õ ÷ñ ñ å/ÝHà€g×Ò˜Ó!€ð ‡M‚M�8—<’<Ø‡M‚M�8—<’<Ø‡M‚M�8—<’<Ø×Ò˜×)Ò)Ø×Ò�x×'Ò'Ø‡M‚M�8—<’<Ø×Ò�h×&Ò&Ø×Ò�h—o’oØ×Ò�h—o’oØ‡M‚M�8—<’<Ø‡M‚M�8—=’=Ø‡L‚L�(—,’,Ø‡M‚M�8—<’<ðÐ ð" ‰�I˜|Ð,Ó	-Ø‰)�Y Ð-Ó
.Ø	‰9�i Ð'Ó(ðBÐ " D¨¨y¸©~Ð)=Ñ$>ó ð
 ×Ò�wÒÙ2;¸]¸OÓ2LÐ& wÑ/ð Ø  &§*¡*¨f¯j©jÐ9¸?ÈTÑ;QÐQñÐ ð �_Ñ%¨¨d°?Ñ.CÀSÐ.HÑ(IÑI€à‡K‚K�Ø‡K‚K�Ø‡K‚K�Ø‡K‚K�Ø‡K‚K�Ø‡K‚K�ð6Ð �T˜( 3¨ 8Ñ,¨cÐ1Ñ2ó ð ‡L‚LØ‡L‚LØ‡O‚OØ×ÒØ×ÒØ‡L‚LØ‡L‚LØ‡K‚KØ‡K‚KØ‡K‚KØ‡K‚KØ‡K‚KØ‡K‚KØ‡L‚LØ‡M‚MØ‡M‚MØ×ÒØ×ÒØ×ÒØ‡M‚MØ‡M‚MØ‡M‚Mð-€ð4 ‡M‚MØ‡L‚LØ‡L‚LØ‡M‚MØ‡M‚MØ‡L‚Lð€ð �oŠoÐ€
ð ‡O‚OØ‡O‚OØ×ÒØ×ÒØ×ÒðÐ ð ‡L‚LØ‡L‚LØ‡L‚LØ‡M‚MØ×Òð
€ð ØØØð	;Ð �e˜D Ñ1°3Ð6Ñ7ó ð JLÐ ˜$˜x¨¨S¨Ñ1°8¸CÀ¸HÑ3EÐEÑFÓ Kð KMÐ ˜4 ¨¨c¨Ñ 2°H¸SÀ#¸XÑ4FÐ FÑGÓ Lñ
 “HÐ óDEôNU;˜/ô U;ôpO%TÐ)ô O%TôdJ
Ð-ô 
ôD!.Ð-ô !.ôH`KÐ0ô `KôF(Ð0ô (ôVLÐ0ô Lô^P;Ð-ô P;ðh ×ÒðÐ7ð ¸F¿OºOÈDÑ<Qò ó ñr�   