Ë
    L²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mZmZ ddlmZ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* d	dl+m,Z,m-Z- d	dl.m/Z/ d	dl0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6 d	dl7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZK ddlLmMZMmNZNmOZOmPZP ddlQmRZRmSZS ddlTmUZUmVZVmWZWmXZXmYZY ddlZm[Z[ ddl\m]Z]m^Z^m_Z_m`Z`maZambZbmcZc ddldmeZe ddlfmgZgmhZhmiZi ddljmkZkmlZlmmZmmnZnmoZo ddlpmqZqmrZrmsZsmtZt erddlumvZv ddlwmxZx  ejò                  ez«      Z{ejø                  ejú                  ejü                  ejþ                  e�j                   e�j                  e�j                  e�j                  e�j                  e�j
                  e�j                  e�j                  e�j                  e�j                  e�j                  e�j                  e�j                  e�j                  e�j                  e�j                  e�j                  e�j                   e�j"                  e�j$                  e�j&                  e�j(                  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�j>                  d!k\  r e—d"h«      eše <   ed#e
j(                  e
j(                  gePdz  f   Z¡eœeP   e¢eœeP   d$f   z  Z£e�jH                  e!�jJ                  e�jL                  e!�jN                  e�jP                  e!�jR                  e�jT                  e!�jV                  e�jX                  e!�jZ                  e�j\                  e!�j^                  iZ°e�j                  e�j                  e�jb                  e�j                  e�j
                  e�j                  ejú                  e�jP                  e�jX                  e�j\                  e�jT                  e�jL                  e�jH                  ejþ                  e�j                  e�j                   e�j                  e�j                  e�j                  e�j                  ejø                  ejü                  fZ²e�j                   e�j$                  e�j(                  e�j                  e�j&                  e�j"                  fZ³e�jh                  fZµe�j                  e�j                  e�j                  e�j                  e�jl                  fZ·e�jp                  e�jr                  e�jt                  e�jv                  e�jx                  fZ½eWeXeiesfZ¾e¢eœeP   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'<   d6d)„ZÁ G d*„ d+eP«      ZÂ G d,„ d-eÂ«      ZÃ G d.„ d/eÂ«      ZÄ G d0„ d1eÂ«      ZÅ G d2„ d3eÂ«      ZÆe�jŽ                  d4d#d(e
�j�                  d   fd5„«       ZÉy)7a\  
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ÚKeysViewÚSequence)ÚAnyÚcastÚTYPE_CHECKING)Úis_sparse_any)ÚBaseTorchFunctionMode)Úis_traceable_wrapper_subclassé   )ÚconfigÚgraph_break_hintsÚ	polyfillsÚ	variables)ÚObservedAttributeErrorÚObservedUserStopIterationÚraise_observed_exceptionÚ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Úcmp_name_to_op_mappingÚdict_methodsÚextract_fake_example_valueÚfrozenset_methodsÚ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Úset_methodsÚspecialize_symnodeÚstr_methodsÚtensortype_to_dtypeé   )Ú#AsPythonConstantNotImplementedErrorÚNO_SUCH_SUBOBJÚValueMutationNewÚVariableTracker)ÚConstantVariableÚFakeIdVariable)ÚConstDictVariableÚDefaultDictVariableÚDictItemsVariableÚDictKeysVariableÚDictViewVariable©Úis_hashable)ÚBaseListVariableÚListIteratorVariableÚListVariableÚRangeVariableÚSizeVariableÚTupleIteratorVariableÚTupleVariable)ÚNullVariable)ÚFrozensetVariableÚOrderedSetClassVariableÚSetVariable)ÚFakeItemVariableÚsupported_comparison_opsÚSymNodeVariableÚTensorVariableÚUnspecializedPythonVariable)ÚMutableMappingVariableÚUserDefinedDictVariableÚUserDefinedObjectVariableÚUserDefinedVariable)Ú	PyCodegen)ÚInstructionTranslatorÚ__new__Ú
from_bytesÚfromhexÚhexÚ"_BUILTIN_CONSTANT_FOLDABLE_METHODS©é   é   Úfrom_numberr[   .Ú_SET_LIKE_OP_SUPPORTÚBUILTIN_TO_TENSOR_FN_MAPÚBUILTIN_TO_TENSOR_RFN_MAPÚreturnc                  óB  ‡‡‡	‡
‡— 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 ]  } ||«       ‰€J ‚‰t        |<   Œ Œ# ˆ	fd„t        fˆ
fd„t        fˆfd„t        fg}t        j                  t        j                  t        j                  h}|D ]3  \  }}|D ])  }||v rŒ ||«       ‰€J ‚‰t        |   k7  sŒ!‰t        |<   Œ+ Œ5 	 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Úkwargsrh   c                 ó$   •— |xs i }|Š ||i |¤ŽS ©N© )Úselfrl   rm   rn   ro   Úmost_recent_funcs        €ú^/var/www/html/ia-enhanced/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à#ÐÙ˜Ð( Ñ(Ð(ó    )rr   N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r	   r   ÚdictÚstrrv   )rt   s   €ru   ÚGetMethodModerk   ø   s_   ø„ ñ	ð #%Ø,0ñ
	)à˜3 ˜8Ñ$ð
	)ð ð
	)ð ˜3‘-ð	
	)ð
 ˜˜c˜‘N TÑ)ð
	)ð ö
	)rw   r~   r8   )Údtypec                 ó   •—  | ‰«      S rq   rr   )ÚoÚinp0s    €ru   ú<lambda>z3populate_builtin_to_tensor_fn_map.<locals>.<lambda>  s   ø€ ‘q˜“w€ rw   c                 ó   •—  | ‰«      S rq   rr   ©r�   Úinp0_ints    €ru   rƒ   z3populate_builtin_to_tensor_fn_map.<locals>.<lambda>  s   ø€ ‘q˜“{€ rw   c                 ó   •—  | ‰‰«      S rq   rr   )r�   r‚   Úinp1s    €€ru   rƒ   z3populate_builtin_to_tensor_fn_map.<locals>.<lambda>  s   ø€ ‘q˜˜t“}€ rw   c                 ó   •—  | ‰‰«      S rq   rr   )r�   r†   Úinp1_ints    €€ru   rƒ   z3populate_builtin_to_tensor_fn_map.<locals>.<lambda>  s   ø€ ‘q˜ 8Ó,€ rw   c                 ó   •—  | ‰d«      S ©Nr   rr   r…   s    €ru   rƒ   z3populate_builtin_to_tensor_fn_map.<locals>.<lambda>  s   ø€ ‘q˜ 1“~€ rw   c                 ó   •—  | d‰«      S ©Nr8   rr   )r�   rˆ   s    €ru   rƒ   z3populate_builtin_to_tensor_fn_map.<locals>.<lambda>  s   ø€ ™!˜A˜t›*€ rw   c                 ó   •—  | d‰«      S rŽ   rr   )r�   rŠ   s    €ru   rƒ   z3populate_builtin_to_tensor_fn_map.<locals>.<lambda>"  ó   ø€ ‘q˜˜H“~€ rw   c                 ó   •—  | d‰«      S rŒ   rr   r…   s    €ru   rƒ   z3populate_builtin_to_tensor_fn_map.<locals>.<lambda>#  r�   rw   )Úlenrf   r   ÚtorchÚonesÚint32Úun_opsÚ
un_int_opsÚbin_opsÚbin_int_opsÚtensor_and_int_opsÚoperatorÚmatmulÚimatmulÚgetitemrg   )r~   Úsetups_and_oplistsÚsetup_fnÚop_listÚopÚrsetups_and_oplistsÚrskipsr‚   r†   rˆ   rŠ   rt   s          @@@@@ru   Ú!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Øò @�Ù˜”Ø'Ð3Ð3Ð3Ø/?Ô(¨Ò,ñ@ð	@ó %Üðó &¤{Ð3Û%Ô'9Ð:ðO
Ðô —/‘/¤8×#3Ñ#3´X×5EÑ5EÐFˆØ!4ò 	EÑˆH�gØò E�Ø˜‘<ØÙ˜”Ø'Ð3Ð3Ð3Ø#Ô'?ÀÑ'CÓCØ4DÔ-¨bÒ1ñEñ	E÷3 E÷  Eñ  Eús   Â'CFÅ>FÆF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efd„Zdefd„Zdedefd„Zy)Ú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Úsourcerh   c                 ód   — t        |j                  t        j                  «      «        | |¬«      S ©N©rª   ©r   Ú
make_guardr   ÚBUILTIN_MATCH©Úclsr©   rª   s      ru   Úcreate_with_sourcez&BaseBuiltinVariable.create_with_source@  s&   € ä�f×'Ñ'¬×(BÑ(BÓCÔDÙ˜&Ô!Ð!rw   c                 ó   — | j                   S rq   )r¨   ©rs   s    ru   Úas_python_constantz&BaseBuiltinVariable.as_python_constantE  s   € Ø�x‰xˆrw   c                 óº   — | j                  «       j                  }||j                  j                  vsJ d«       ‚|j	                  |j                  |d¬«      «       y )Núshadowed globalT©Úadd)r¶   rx   ÚtxÚ	f_globalsÚappend_outputÚcreate_load_global©rs   ÚcodegenÚnames      ru   ÚreconstructzBaseBuiltinVariable.reconstructH  sR   € Ø×&Ñ&Ó(×1Ñ1ˆØ˜7Ÿ:™:×/Ñ/Ñ/ÐBÐ1BÓBÐ/Ø×Ñ˜g×8Ñ8¸À4Ð8ÓHÕIrw   r»   r[   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)rs   r»   rÁ   rª   Úattrs        ru   Úvar_getattrzBaseBuiltinVariable.var_getattrM  sc   € Ø—‘Ò>¤¨D¯K©K¸Ó!>ˆÜ�t—x‘x  tÓ,ˆÜ×(Ñ(Ø�$¨dÐ.>¤ T£
ÐQWô
ð 	
ØDHÐQWô
ð 	
rw   c                 ó^   — t        j                  |t        | j                  «       |«      «      S rq   )r<   ÚbuildÚhasattrr¶   )rs   r»   rÁ   s      ru   Úcall_obj_hasattrz$BaseBuiltinVariable.call_obj_hasattrT  s'   € ô ×$Ñ$ R¬°×1HÑ1HÓ1JÈDÓ)QÓRÐRrw   c                  ó   — y)NTrr   rµ   s    ru   Úis_python_hashablez&BaseBuiltinVariable.is_python_hashableY  s   € Ørw   c                 ó4   — t        | j                  «       «      S rq   )Úhashr¶   rµ   s    ru   Úget_python_hashz#BaseBuiltinVariable.get_python_hash\  s   € Ü�D×+Ñ+Ó-Ó.Ð.rw   Úotherc                 óf   — t        |t        «      xr  | j                  «       |j                  «       u S rq   )Ú
isinstancer§   r¶   ©rs   rÔ   s     ru   Úis_python_equalz#BaseBuiltinVariable.is_python_equal_  s1   € Ü˜%Ô!4Ó5ò 
Ø×#Ñ#Ó%¨×)AÑ)AÓ)CÐCð	
rw   ©rÀ   rZ   rh   N)rx   ry   rz   r{   r¨   r	   Ú__annotations__Úclassmethodr"   r³   r¶   rÂ   r}   r<   rÊ   r=   rÎ   ÚboolrÐ   ÚintrÓ   ÚobjectrØ   rr   rw   ru   r§   r§   1  s³   … ñ
ð €CˆƒOàð" sð "°Fð "Ð?Tò "ó ð"ð Có óJð

Ð5ð 
¸Sð 
À_ó 
ðSØ)ðSØ14ðSà	óSð
 Dó ð/ ó /ð
 Vð 
°ô 
rw   r§   c                   ó²
  ‡ — 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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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„Z,dededefd „Z-ede.e   deeef   deee	   eee	f   f   fd!„«       Z/de.e   deeef   defd"„Z0e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%„«       Z1d&d$de	defd'„Z2d&d$dedefd(„Z3ed&d$defd)„«       Z4d&d$de.e   deeef   dedz  fd*„Z5i Z6eeedf   ed$e.e   eeef   gef   f   e#d+<   d&d$de.e   deeef   defd,„Z7d&d$d-edee   deeef   def
ˆ fd.„Z8d&d$d/ededz  fd0„Z9d&d$d/ededz  fd1„Z:d&d$d/ededz  fd2„Z;d&d$d/ededz  fd3„Z<d&d$d/ededz  fd4„Z=d&d$dededz  fd5„Z>d&d$d6e.e   defd7„Z?d&d$d8edz  d9edz  dedz  fd:„Z@e>ZAe>ZBd&d$d/edefd;„ZCd&d$d/edefd<„ZDd&d$d/edefd=„ZEd&d$d/edededef
d>„ZFd&d$dededz  fd?„ZGdededefd@„ZHd&d$dedefdA„ZId&d$de	de	defdB„ZJ	 d~d&d$dCedz  dedededz  f
dD„ZKd&d$dCedededef
dE„ZL	 d~d&d$dCedz  dedededz  f
dF„ZMeMZNd&d$d/ededz  fdG„ZOdHe	dedededz  fdI„ZPd&d$d/ededz  fdJ„ZQd&d$dededefdK„ZRd&d$dededefdL„ZSd&d$dededefdM„ZTd&d$dededefdN„ZUd&d$dededefdO„ZVd&d$d/edPedefdQ„ZWd&d$dRedSedefdT„ZXd&d$d8ed9edefdU„ZYd&d$dedefdV„ZZd&d$dCedWededz  fdX„Z[d&d$dedYededef
dZ„Z\d&d$ded[edefd\„Z]d&d$d-edefd]„Z^	 d~d&d$dCed^ed_edz  dedz  f
d`„Z_d&d$dCed^edaededz  f
db„Z`d&d$dCed^edefdc„Zad&d$dCedefdd„Zbd&d$dCededz  fde„Zcd&d$dCedededz  fdf„Zdd&d$d8ededz  fdg„Zed&d$dhedededef
di„Zfd&d$dedefdj„Zgd&d$dkedefdl„Zhd&d$dmednedefdo„Zid&d$dmednedefdp„Zjd&d$d8ed9ededz  fdq„Zkd&d$d8ed9ededz  fdr„Zld&d$d8ed9ededz  fds„Zmd&d$d8ed9ededz  fdt„Znd&d$d8ed9ededz  fdu„Zod&d$d8ed9ededz  fdv„Zpd&d$d8ed9ededz  fdw„Zqd&d$d8ed9ededz  fdx„Zrd&d$d8ededz  fdy„Zsd&d$d8ed9edefdz„Ztd{edefd|„Zuˆ xZvS )Ú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ª   rh   c                 óf   — t        |j                  t        j                  «      «        | ||¬«      S r¬   r®   r±   s      ru   r³   z"BuiltinVariable.create_with_sourcev  s(   € ä�f×'Ñ'¬×(BÑ(BÓCÔDÙ�5 Ô(Ð(rw   .c                  ó:  — h t         ’t        ’t        ’t        ’t        ’t
        ’t        ’t        ’t        ’t        ’t        ’t        ’t        ’t        ’t        ’t        ’t         ’t"        ’t$        ’t$        j&                  ’t(        ’t*        ’t,        j                   ’t,        j.                  ’t,        j0                  ’t,        j2                  ’t,        j4                  ’t,        j6                  ’t,        j                  ’t,        j8                  ’t,        j:                  ’t,        j<                  ’t,        j>                  ’t,        j@                  ’t,        jB                  ’t,        jD                  ’t,        jF                  ’t,        jH                  ’t,        jJ                  ’t,        jL                  ’t,        jN                  ’t,        jP                  ’t,        jR                  ’t,        jT                  ’t,        jV                  ’t,        jX                  ’t,        jZ                  ’t,        j\                  ’t,        j^                  ’t,        j`                  ’t,        jb                  ’t,        jd                  ’t,        jf                  ’t,        jh                  ’t,        jj                  ’t,        jl                  ’t,        jn                  ’} ddl8m9} | ju                   |jv                  «       «       | ju                  d„ tx        jz                  jw                  «       D «       «       | S )Nr8   )rR   c              3   óh   K  — | ]*  }t        |t        t        j                  «      «      sŒ'|–— Œ, y ­wrq   )rÖ   rÈ   ÚmathÚsqrt©Ú.0Úxs     ru   ú	<genexpr>z;BuiltinVariable._constant_fold_functions.<locals>.<genexpr>¼  s!   è ø€ ÒW˜¼
À1ÄdÌ4Ï9É9ÃoÕ8V”1ÑWùs   ‚(2«2)>ÚabsÚallÚanyrÜ   ÚcallableÚchrÚcomplexÚdivmodÚfloatrÆ   rÝ   r’   ÚmaxÚminÚordÚpowÚreprÚroundr}   ÚformatÚ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ÚtensorrR   ÚupdateÚvaluesrå   Ú__dict__)ÚfnsrR   s     ru   Ú_constant_fold_functionsz(BuiltinVariable._constant_fold_functions{  sX  € ð:(
Üð:(
äð:(
ô ð:(
ô ð	:(
ô
 ð:(
ô ð:(
ô ð:(
ô ð:(
ô ð:(
ô ð:(
ô ð:(
ô ð:(
ô ð:(
ô ð:(
ô ð:(
ô  ð!:(
ô" ð#:(
ô$ ð%:(
ô& ð':(
ô( �J‰Jð):(
ô* ð+:(
ô, ð-:(
ô. �L‰Lð/:(
ô0 �L‰Lð1:(
ô2 �L‰Lð3:(
ô4 �M‰Mð5:(
ô6 �N‰Nð7:(
ô8 �O‰Oð9:(
ô: �L‰Lð;:(
ô< �L‰Lð=:(
ô> �O‰Oð?:(
ô@ ×ÑðA:(
ôB ×ÑðC:(
ôD �L‰LðE:(
ôF �L‰LðG:(
ôH �L‰LðI:(
ôJ ×ÑðK:(
ôL × Ñ ðM:(
ôN �O‰OðO:(
ôP �O‰OðQ:(
ôR �M‰MðS:(
ôT �L‰LðU:(
ôV �L‰LðW:(
ôX �M‰MðY:(
ôZ �M‰Mð[:(
ô\ ×Ñð]:(
ô^ ×Ñð_:(
ô` ×Ñða:(
ôb �M‰Mðc:(
ôd �M‰Mðe:(
ôf �M‰Mðg:(
ôh ×Ñði:(
ôj ×Ñðk:(
ôl �M‰Mðm:(
ôn �M‰Mðo:(
ôp �L‰Lðq:(
ôr �N‰Nðs:(
ˆõv 	5à�
‰
Ð2Ð+×2Ñ2Ó4Ô5Ø�
‰
ÑWœdŸm™m×2Ñ2Ó4ÔWÔWØˆ
rw   c                 ó:   — | j                   | j                  «       v S rq   )rá   r  rµ   s    ru   Úcan_constant_fold_throughz)BuiltinVariable.can_constant_fold_through¿  s   € Ø�w‰w˜$×7Ñ7Ó9Ð9Ð9rw   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 rq   )(r›   rë   rû   rü   rý   rÿ   rö   r   rœ   r  r  r  rº   ÚltÚgtÚgeÚleÚneÚeqr  r  r  r  r  r	  r
  r  r  r�   r  r  rž   r  r  r  r  r  r  r  r  ©r  s    ru   Ú_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 ˆ
rw   c                  óâ  — t         j                  g d¢t         j                  ft         j                  g d¢t         j                  ft         j
                  g d¢t         j                  ft         j                  g d¢t         j                  ft         j                  g d¢t         j                  ft         j                  g d¢t         j                  ft        g d¢t         j                  ft         j                  g d¢t         j                  ft         j                  g d¢t         j                   ft         j"                  g d	¢t         j$                  ft         j&                  g d
¢t         j&                  fi} | S )N)Ú__add__Ú__radd__Ú__iadd__)Ú__sub__Ú__rsub__Ú__isub__)Ú__mul__Ú__rmul__Ú__imul__)Ú__truediv__Ú__rtruediv__Ú__itruediv__)Ú__floordiv__Ú__rfloordiv__Ú__ifloordiv__)Ú__mod__Ú__rmod__Ú__imod__)Ú__pow__Ú__rpow__Ú__ipow__)Ú
__lshift__Ú__rlshift__Ú__ilshift__)Ú
__rshift__Ú__rrshift__Ú__irshift__)Ú__xor__Ú__rxor__Ú__ixor__)r›   rº   r  r  r  r   r  r  r  r  r  r  r  rö   r  r  r  r  r  r
  r'  s    ru   Ú_binopszBuiltinVariable._binopsð  s   € ô �L‰LÒ>ÄÇÁÐNÜ�L‰LÒ>ÄÇÁÐNÜ�L‰LÒ>ÄÇÁÐNÜ×ÑÚ?Ü×!Ñ!ðô ×ÑÚBÜ×"Ñ"ð ô �L‰LÒ>ÄÇÁÐNÜÒ5´x·}±}ÐEÜ�L‰LÒ>ÄÇÁÐNÜ�O‰OÚ<Ü× Ñ ðô �O‰OÚ<Ü× Ñ ðô �L‰LÒ>ÄÇÁÐMð/U
ˆð> ˆ
rw   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d	d
t&        dt        dt        fd„}
dd	d
t&        dt        dt        fd„}t(        t(        f|ft(        t*        f|ft*        t(        f|ft*        t*        f|
ft*        t,        f|
ft,        t*        fd„ ft.        t&        t,        t0        ffd„ ft&        t&        fd„ fg}| t2        j4                     j7                  |«       dd	d
t&        dt        dt"        fd„}t.        t        f|ft*        t*        f|
ft*        t,        f|
fg}| t2        j8                     j7                  |«       dd	dt        dt        dt        fd„}t.        t,        f|ft*        t,        f|ft,        t.        f|ft,        t*        f|fg}| t2        j:                     j7                  |«       dt         dt"        f   dt<        t>        t>        t@        t@        f   tB        f      fˆˆˆˆˆfd „}tE        jF                  «       D ]   }tI        |«      sJ ‚|| vsJ ‚ ||«      | |<   Œ" | S )!Nr8   )ÚBaseUserFunctionVariable©ÚNNModuleVariable)Úsupported_const_comparison_ops)ÚBaseTorchVariable)rY   )Úforward_nameÚreverse_namer»   r[   ÚaÚbrO  rP  rh   c                óp   •— t        |‰«      r|j                  | ||gi «      S |j                  | ||gi «      S rq   )rÖ   Úcall_method)r»   rQ  rR  rO  rP  rY   s        €ru   Úuser_defined_handlerz=BuiltinVariable._binop_handlers.<locals>.user_defined_handler;  s>   ø€ ô, ˜aÐ!4Ô5ØŸ=™=¨¨\¸A¸3ÀÓCÐCàŸ=™=¨¨\¸A¸3ÀÓCÐCrw   )rO  c                ó,   — |j                  | ||gi «      S rq   ©rT  )r»   rQ  rR  rO  s       ru   Úuser_defined_inplace_handlerzEBuiltinVariable._binop_handlers.<locals>.user_defined_inplace_handler]  s   € ð —}‘} R¨¸°s¸BÓ?Ð?rw   ©rá   rá   .c          
      óp   — ddl m}  ||  | j                  j                  d|gt	        ||gi «      ¢­Ž «      S ©Nr8   ©Úwrap_fx_proxyÚcall_function)Úbuilderr]  ÚoutputÚcreate_proxyr2   )r»   rQ  rR  rá   r]  s        ru   Údynamic_handlerz8BuiltinVariable._binop_handlers.<locals>.dynamic_handlern  sC   € õ 3á$ØØ*�B—I‘I×*Ñ*Ø'¨ðÜ.?ÀÀAÀÈÓ.Kòóð rw   c                 óR   — t        g |j                  ¢|j                  | «      ¢«      S rq   )rL   ÚitemsÚunpack_var_sequence©r»   rQ  rR  s      ru   Útuple_add_handlerz:BuiltinVariable._binop_handlers.<locals>.tuple_add_handler�  s)   € ô !Ð!G 1§7¡7Ð!G¨Q×-BÑ-BÀ2Ó-FÐ!GÓHÐHrw   c                 óR   — t        g |j                  ¢|j                  | «      ¢«      S rq   )rJ   rd  re  rf  s      ru   Úsize_add_handlerz9BuiltinVariable._binop_handlers.<locals>.size_add_handler•  s)   € ô  Ð F !§'¡'Ð F¨A×,AÑ,AÀ"Ó,EÐ FÓGÐGrw   c                 óR   — t        g |j                  | «      ¢|j                  ¢«      S rq   )rL   re  rd  rf  s      ru   rƒ   z1BuiltinVariable._binop_handlers.<locals>.<lambda>¼  s/   € ¤ðØ×.Ñ.¨rÓ2ðàŸ™ðó"€ rw   c                 óf   — t        g |j                  ¢|j                  | «      ¢t        «       ¬«      S ©N©Úmutation_type)rH   rd  re  r;   rf  s      ru   rƒ   z1BuiltinVariable._binop_handlers.<locals>.<lambda>È  s-   € ¤Ø:�a—g‘gÐ: × 5Ñ 5°bÓ 9Ð:Ü"2Ó"4ô"€ rw   c                 óT   —  t        |«      g |j                  ¢|j                  ¢«      S rq   )rÈ   rd  rf  s      ru   rƒ   z1BuiltinVariable._binop_handlers.<locals>.<lambda>Ï  s.   €  ¤ a£ðØŸ™ðàŸ™ðó"€ rw   c                 óì   — |j                  «       s|j                  | «      sy |j                  | «      }| j                  j                  j                  |«       |j                  j                  |«       |S rq   )Úis_immutableÚhas_unpack_var_sequencere  r`  Úside_effectsÚmutationrd  Úextend)r»   rQ  rR  Úseqs       ru   Úlist_iadd_handlerz:BuiltinVariable._binop_handlers.<locals>.list_iadd_handlerÙ  s[   € ð �~‰~Ô q×'@Ñ'@ÀÔ'Dàà×'Ñ'¨Ó+ˆCØ�I‰I×"Ñ"×+Ñ+¨AÔ.Ø�G‰G�N‰N˜3ÔØˆHrw   ÚlstÚconstc                 ó\  — t        |t        «      s|j                  «       r||}}	 t        |t        «      sJ ‚|j                  |j                  |j                  «       z  t        «       ¬«      S # t        $ r4}t        t        |«      | t        |j                  «      ¬«       Y d }~y d }~ww xY w)N)rd  rn  ©rn   )rÖ   rF   Úis_python_constantÚ	__class__rd  r¶   r;   ÚMemoryErrorr   rÈ   Úlistrn   )r»   rx  ry  Úexcs       ru   Úexpand_list_likez9BuiltinVariable._binop_handlers.<locals>.expand_list_likeö  sž   € ô ˜cÔ#3Ô4¸×9OÑ9OÔ9QØ" C�U�ðÜ! #Ô'7Ô8Ð8Ð8Ø—}‘}ØŸ)™) e×&>Ñ&>Ó&@Ñ@Ü"2Ó"4ð %ó ð øô ò Ü(Ü˜“IØÜ˜cŸh™h›÷ò ûðús   ¦AA. Á.	B+Á7*B&Â&B+r¢   c           	      óJ  •‡ ‡
— 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«       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»   r[   rQ  rR  rh   c                 óè   •— 	 t        j                  |  ‰|j                  |j                  «      «      S # t        $ r4}t	        t        |«      | t        |j                  «      ¬«       Y d }~y d }~ww xY w)Nr{  )r<   rÌ   r©   Ú	TypeErrorr   rÈ   r  rn   )r»   rQ  rR  r€  r¢   s       €ru   Ú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   •— | j                  t        j                  | t        ‰   «      ||gi «      S rq   )Úinline_user_function_returnr<   rÌ   Úpolyfill_fn_mapping)r»   rQ  rR  r¢   s      €ru   ÚhandlerzPBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.handlerE  s8   ø€ ð ×9Ñ9Ü'×-Ñ-¨bÔ2EÀbÑ2IÓJÈQÐPQÈFÐTVóð rw   Úis_c                 ó0   •— t        j                  | ‰«      S rq   )r<   rÌ   )r»   rQ  rR  Únone_results      €ru   ÚneverzNBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.neverW  s   ø€ ô +×0Ñ0°°[ÓAÐArw   ÚleftÚrightc                 ó    •— ddl m}  |||«      }|€y |j                  «       }t        j                  | ‰j
                  dk(  r|«      S | «      S )Nr8   )Úvt_identity_comparerŠ  )Úobject_protocolr‘  r¶   r<   rÌ   rx   )r»   rŽ  r�  r‘  ÚresultÚis_samer¢   s         €ru   Ú	handle_iszRBuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers.<locals>.handle_isŒ  s]   ø€ õ
 Eá0°°uÓ=�FØ�~Ø#Ø$×7Ñ7Ó9�GÜ*×0Ñ0Ø r§{¡{°eÒ';˜Góð ØELÀóð rw   )r<   r=   rˆ  rà   ru  rS   Ú_comparison_with_symnodeÚappendr  rx   Ú
startswithrÞ   rT   rF   r?   Ú_comparison_with_tensor)r¢   r…  r“  Úop_varr‰  r�  Úobj_op_noneÚnone_op_objÚtypes_that_are_never_noner•  rŒ  rN  rJ  rL  rY   rM  s   `         @€€€€€ru   Úcreate_cmp_op_handlersz?BuiltinVariable._binop_handlers.<locals>.create_cmp_op_handlers  s—  ú€ ð
Ø+ð
Ü0?ð
ÜDSð
ä õ
ô( $Ô%5Ð6Ð8HÐIÐJð ð Ô(Ñ(ô
 'Ô(8Ð9Ð;KÐLð�ô )¨Ó,�à—‘ô -¬oÐ>Ø"×;Ñ;ðô
 -¬oÐ>Ø"×;Ñ;ðð	ôðØ/ðÜ4CðÜHWðä$õð —‘¤´ÐAÀ7ÐKÔLØ�ä(Ô*:Ð;Ð=MÐNÐOˆFàÐ3×:Ñ:Ó<Ò<ÀÇÁ×AWÑAWØõBñ !¤£¨4Ó0�ðBØ/ðBÜ4CðBÜHWðBä$õBð
 $�Ø#�ô #Ü#Ø$Ü$Ø'Ø,Ü%Ø%ð	-Ð)ð —‘ð 7Ô8HÐIØ'ðô
 .Ð/HÐIØ'ðð	ôô )¨Ó,�Ø—‘ô ,¬_Ð=Ø"×:Ñ:ðô
 -¬nÐ=Ø"×:Ñ:ðô
 -¬oÐ>Ø"×;Ñ;ðô
 -¬oÐ>Ø"×;Ñ;ððôð*Ø/ðä)ðô +ðô % tÑ+õ	ð —‘¤´ÐAÀ9ÐMÔNàˆMrw   )%Ú	functionsrJ  Ú	nn_modulerL  r  rM  r“   rN  Úuser_definedrY   rà   rH  rd  r<   r}   r—  r   r	   rS   rF   rJ   rL   r=   rH   rG   r›   rº   ru  r  r   r  ÚtupleÚ_TrackersTypeÚ_HandlerCallbackrR   r  rî   )Úop_handlersr¢   Úmagic_method_namesÚin_place_oprO  rP  Úinplace_namerU  rX  rb  rg  ri  Úlist_like_addition_handlersrw  Úlist_like_iadd_handlersr�  Úlist_like_expansion_handlersrž  rN  rJ  rL  rY   rM  s                     @@@@@ru   Ú_binop_handlerszBuiltinVariable._binop_handlers  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	ð~	IØ'ð	IÜ,<ð	IÜAPð	Iäó	Ið
	HØ'ð	HÜ,<ð	HÜAPð	Häó	Hô$ œ|Ð,Ø ðô
 œ}Ð-Ø ðô
 ¤Ð-Ø ðô
 ¤Ð.Ø!ðô
 Ô 0Ð1Ø!ðô
 "¤=Ð1ñðô !Ü%Ô'7Ô9MÐNðñð	ô "Ô#3Ð4ñððW4
ð 	$ðz 	”H—L‘LÑ!×(Ñ(Ð)DÔEð
	Ø'ð
	Ü,<ð
	ÜAPð
	äó
	ô œÐ/Ø!ðô
 ¤Ð.Ø!ðô
 Ô 0Ð1Ø!ðð.
Ðð 	”H—M‘MÑ"×)Ñ)Ð*AÔBð	Ø'ð	Ü.=ð	ÜFUð	äó	ô0 Ô,Ð-Ð/?Ð@ÜÔ-Ð.Ð0@ÐAÜ¤Ð-Ð/?Ð@Ü¤Ð.Ð0@ÐAð	
ð 	%ð 	”H—L‘LÑ!×(Ñ(Ð)EÔFðH	Ü˜œc˜Ñ"ðH	ä”%œœm¬]Ð:Ñ;Ô=MÐMÑNÑO÷H	ñ H	ôT +×1Ñ1Ó3ò 	9ˆBÜ˜B”<Ð�<Ø˜[Ñ(Ð(Ð(Ù4°RÓ8ˆK˜ŠOð	9ð
 Ðrw   r¢   Úa_typeÚb_typeNc                 óÆ   — t         j                  «       j                  | «      }|€y g }|D ]3  \  \  }}}t        ||«      sŒt        ||«      sŒ#|j	                  |«       Œ5 |S rq   )rà   r¬  ÚgetÚ
issubclassr—  )r¢   r­  r®  ÚhandlersÚmatchesÚtype1Útype2r‰  s           ru   Ú_find_binop_handlerz#BuiltinVariable._find_binop_handler¦  si   € ô #×2Ñ2Ó4×8Ñ8¸Ó<ˆØÐØàˆØ'/ò 	(Ñ#‰NˆU�E˜GÜ˜& %Õ(¬Z¸ÀÕ-FØ—‘˜wÕ'ð	(ð ˆrw   c                 ó:   — | j                   | j                  «       v S rq   )rá   r(  rµ   s    ru   Úcan_insert_in_graphz#BuiltinVariable.can_insert_in_graph´  s   € Ø�w‰w˜$×2Ñ2Ó4Ð4Ð4rw   ÚMUST_USE_SPECIALIZEDro   c                 ód   •— || j                   vsJ d|›d�«       ‚t        ‰| �  di |¤Ž || _        y )Nz!Use the specialized VT class for z9, not BuiltinVariable. E.g. DictBuiltinVariable for dict.rr   )r¹  ÚsuperÚ__init__rá   )rs   rá   ro   r}  s      €ru   r¼  zBuiltinVariable.__init__»  sH   ø€ Ø˜×2Ñ2Ñ2ð 	
Ø/°¨vð 61ð 2ó	
Ð2ô 	‰ÑÑ"˜6Ò"Øˆ�rw   c                 ó„   — | j                   €d}n| j                   j                  }| j                  j                  › d|› d�S )NÚNoneú(ú))rá   rx   r}  )rs   rÁ   s     ru   Ú__repr__zBuiltinVariable.__repr__Ã  s=   € Ø�7‰7ˆ?Ø‰Dà—7‘7×#Ñ#ˆDà—.‘.×)Ñ)Ð*¨!¨D¨6°Ð3Ð3rw   c                 ó   — | j                   S rq   rY  rµ   s    ru   r¶   z"BuiltinVariable.as_python_constantË  ó   € Ø�w‰wˆrw   c                 ó   — | j                   S rq   rY  rµ   s    ru   Úget_real_python_backed_valuez,BuiltinVariable.get_real_python_backed_valueÎ  rÃ  rw   c                 óÖ   •— t         t        j                   t        t        j                  t        t        j
                  i}| j                  |v r|| j                     S t        ‰| �!  «       S rq   )	rÜ   r“   rÝ   Úint64rò   Úfloat64rá   r»  Úas_proxy)rs   ÚDTYPEr}  s     €ru   rÉ  zBuiltinVariable.as_proxyÑ  sO   ø€ ä”%—*‘*Ü”—‘Ü”5—=‘=ð
ˆð
 �7‰7�eÑØ˜Ÿ™‘>Ð!Ü‰wÑÓ!Ð!rw   c                 óè   — | j                   j                  }| j                   j                  dk(  sJ ‚||j                  j                  vsJ d«       ‚|j                  |j                  |d¬«      «       y )NÚbuiltinsr¸   Tr¹   )rá   rx   ry   r»   r¼   r½   r¾   r¿   s      ru   rÂ   zBuiltinVariable.reconstructÛ  se   € Ø�w‰w×ÑˆØ�w‰w×!Ñ! ZÒ/Ð/Ð/Ø˜7Ÿ:™:×/Ñ/Ñ/ÐBÐ1BÓBÐ/Ø×Ñ˜g×8Ñ8¸À4Ð8ÓHÕIrw   rn   c                 ó   — t        ||«      S rq   )r$   ©rs   rn   ro   s      ru   Úconstant_argszBuiltinVariable.constant_argsá  s   € Ü" 4¨Ó0Ð0rw   c                 óx   — d}|D ]2  }t        |t        j                  «      r y|xs |j                  «       }Œ4 |S ©NF)rÖ   r   rÇ   Ú	is_tensor)rs   rn   Ú
any_tensorÚargs       ru   Útensor_argszBuiltinVariable.tensor_argsä  sA   € Øˆ
Øò 	7ˆCÜ˜#œy×8Ñ8Ô9ÙØ#Ò6 s§}¡}£‰Jð	7ð Ðrw   Ú	arg_typesc                 óŒ   — d}|D ]<  }t        |t        j                  «      r y|xs t        |t        j                  «      }Œ> |S rÑ  )r±  r   rÇ   rT   )rs   rÖ  rÓ  Úarg_types       ru   Útensor_args_typez BuiltinVariable.tensor_args_typeì  sJ   € Øˆ
Ø!ò 	VˆHÜ˜(¤I×$=Ñ$=Ô>ÙØ#ÒU¤z°(¼I×<TÑ<TÓ'U‰Jð	Vð Ðrw   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     ru   rê   zBBuiltinVariable.python_and_tensor_constant_only.<locals>.<genexpr>þ  s0   è ø€ ò 
àð -.¯H©HÐ,@Ô˜qŸx™xÔ(ÀeÓKñ
ùs   ‚-/)Ú	itertoolsÚchainr  rÒ  r—  rì   rÏ  )rs   rn   ro   rÕ  Únon_tensor_argsÚis         ru   Úpython_and_tensor_constant_onlyz/BuiltinVariable.python_and_tensor_constant_onlyô  s†   € ð ˆØˆÜ—‘  v§}¡}£Ó7ò 	*ˆAØ�{‰{Œ}Ø×"Ñ" 1Õ%à×&Ñ& qÕ)ð		*ô
 ñ 
à ô
ó 
ò 3ð !ˆd× Ñ  /Ð2ð	3rw   c                 ó¸   — | D �cg c]  }|j                  «       ‘Œ c}|j                  «       D ��ci c]  \  }}||j                  «       “Œ c}}fS c c}w c c}}w rq   )r¶   rd  )rn   ro   ré   ÚkÚvs        ru   Ú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 rq   )r  r&   rÎ  s      ru   Úhas_constant_handlerz$BuiltinVariable.has_constant_handler  s'   € ð ×-Ñ-Ó/ò 
Ô4QØ�&ó5
ð 	
rw   Ú
has_kwargsr[   c           	      óJ  ‡ ‡‡‡‡	‡
‡‡‡‡‡— ddl mŠ t        ‰ «      Šg Št        ˆfd„‰D «       «      rˆ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&                  «       t+        ‰«      dk(  rm‰skt        j,                  ‰ g‰¢­Ž Š
‰
snRt+        ‰
«      dk(  r‰
\  Š	‰j)                  ˆ	fd„«       n+dddt.        dt.        d	t.        fˆ
fd„}‰j)                  |«       t1        ‰d‰ j2                  › �d «      Š‰rDdddt4        t           dt        t        t        f   d	t        d z  fˆ ˆˆfd„}‰j)                  |«       ‰j7                  «       rˆt9        d„ ‰D «       «      r4‰s2dddt4        t           dt        t        t        f   d	t        d z  fˆ fd„}n1dddt4        t           dt        t        t        f   d	t        d z  fˆ fd„}‰j)                  |«       dt4        t           d	d fˆˆ ˆfd„Št+        ‰«      dk(  rˆfd„S t+        ‰«      dk(  r8‰\  Šdddt4        t           dt        t        t        f   d	t        d z  fˆˆfd„}|S dddt4        t           dt        t        t        f   d	t        d z  fˆˆfd„}|S )Nr8   )ÚLazyVariableTrackerc              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wrq   )r±  )rè   rÜ  rê  s     €ru   rê   z0BuiltinVariable._make_handler.<locals>.<genexpr>"  s   øè ø€ ÒE°aŒz˜!Ð0×1ÑEùs   ƒc                 ól   •— ‰j                  | |D �cg c]  }|j                  «       ‘Œ c}|«      S c c}w rq   )r^  Úrealize)r»   rn   ro   rä  Úobjs       €ru   rƒ   z/BuiltinVariable._make_handler.<locals>.<lambda>#  s-   ø€ ¨C×,=Ñ,=Ø¨$Ö/ Q�Q—Y‘Y•[Ò/°ó-€ ùÚ/s   ’1
r»   r[   rn   ro   rh   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rq   )r|  rÖ   r¶   r}   rç   s     ru   rê   zWBuiltinVariable._make_handler.<locals>.create_exception_class_object.<locals>.<genexpr>4  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)ÚAssertionErrorrì   r   r}   r   ÚSUPPORTABLEr   ÚExceptionVariable)r»   rn   ro   rá   s      €ru   Úcreate_exception_class_objectzDBuiltinVariable._make_handler.<locals>.create_exception_class_object/  s^   ø€ ð
 œÑ'´ñ 4à!ô4ô 1ô "Ø @Ü # D£	Ø$WØ>Ô 1× =Ñ =Ð>õ	ô !×2Ñ2°2°t¸VÓDÐDrw   r   r   c                 ó   •—  ‰| g|¢­Ž S rq   rr   )r»   rn   Ú_Úbinop_handlers      €ru   rƒ   z/BuiltinVariable._make_handler.<locals>.<lambda>V  s   ø€ ±MÀ"Ð4LÀtÒ4L€ rw   rû  c                 ó2   •— ‰D ]  } || g|¢­Ž }|sŒ|c S  y rq   rr   )r»   rn   rû  rá   ÚrvÚbinop_handlerss        €ru   Úcall_binop_handlersz:BuiltinVariable._make_handler.<locals>.call_binop_handlersY  s.   ø€ ð -ò &˜Ù ˜] Tš]˜ÚØ#%šIð&ð  rw   Ú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ñ  )r„  ÚinspectÚ	signatureÚbindrç  ÚlogÚwarningr   rx   r   Ú	DIFFICULTr   Úremove_from_stats)	r»   rn   ro   Úerç  r€  rá   rî  Úself_handlers	         €€€ru   Úcall_self_handlerz8BuiltinVariable._make_handler.<locals>.call_self_handlerh  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rq   )r±  r=   rç   s     ru   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)Nr{  ú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  rn   r9   r   r   Ú
DYNAMO_BUGr<   rÌ   )r»   rn   ro   ré   Úresr€  rá   s         €ru   Ú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  r{  )r&   r¶   rd  r9   r   r   r  r  r   rÈ   r  rn   r<   rÌ   )	r»   rn   ro   ré   rã  rä  r  r€  rá   s	           €ru   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   rx   )rn   rÔ  Úreal_arg_typesrÖ  rá   rè  s      €€€ru   Ú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 rq   rr   )r»   rn   ro   r  s      €ru   rƒ   z/BuiltinVariable._make_handler.<locals>.<lambda>ä  s   ø€ Ñ,>¸tÓ,D€ rw   c                 ó4   •—  ‰| ||«      }|r|S  ‰|«       |S rq   rr   )r»   rn   ro   rþ  r  r‰  s       €€ru   Úbuiltin_dispatchz7BuiltinVariable._make_handler.<locals>.builtin_dispatchè  s(   ø€ ñ
 ˜R  vÓ.�ÙØ�IÙ" 4Ô(Ø�	rw   c                 óJ   •— d }‰D ]  } || ||«      }|sŒ|c S   ‰|«       |S rq   rr   )r»   rn   ro   rþ  rá   r  r²  s        €€ru   r"  z7BuiltinVariable._make_handler.<locals>.builtin_dispatchõ  s>   ø€ ð
 �Ø"ò "�BÙ˜B  fÓ-�BÚØ!š	ð"ñ # 4Ô(Ø�	rw   )Úlazyrê  rà   rí   r  Úisclassr±  ÚBaseExceptionÚGeneratorExitr  r<   r|   r}   r¸  r›   rž   r   rT   rÙ  Ú_handle_insert_op_in_graphr—  r’   r¶  r	   rÆ   rx   r   r  rì   )rá   rÖ  rè  rù  r   r  r  r"  rê  rü  rÿ  r  r‰  r²  rî  r  s   ```     @@@@@@@@ru   Ú_make_handlerzBuiltinVariable._make_handler  sM  ÿú€ õ 	.ä˜bÓ!ˆØ+-ˆäÓE¸9ÔEÔEóð ô �?‰?˜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ð Ø/ð Ü7:ð Ü?Bð äõ ð —‘Ð 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ð	¤X¬oÑ%>ð 	À4÷ 	ô  ˆx‹=˜AÒÛDÐDÜ�‹]˜aÒØ!‰JˆWð	Ø+ð	äœÑ/ð	ô œS¤/Ð1Ñ2ð	ô ! 4Ñ'ö		ð4  ÐðØ+ðäœÑ/ðô œS¤/Ð1Ñ2ðô ! 4Ñ'ö	ð  Ðrw   r»   c                 óÊ   — t        |«      dk(  r| j                  |«      S t        |«      dk(  sJ ‚	 |d   j                  |d«      S # t        $ r t	        t
        |«       Y y w xY w)Nr   r8   r  )r’   Ú_call_frame_locals_snapshotrÊ   r   r   r„  ©rs   r»   rn   s      ru   Ú	call_varszBuiltinVariable.call_vars  sc   € Üˆt‹9˜Š>Ø×3Ñ3°BÓ7Ð7Ü�4‹y˜AŠ~Ðˆ~ð	4Ø˜‘7×&Ñ& r¨:Ó6Ð6øÜ%ò 	4Ü$¤Y°Ö3ð	4ús   ±A ÁA"Á!A"c                 ó`   — t        |«      dk7  rt        t        |«       | j                  |«      S rŒ   )r’   r   r„  r+  r,  s      ru   Úcall_localszBuiltinVariable.call_locals  s*   € ô ˆt‹9˜Š>Ü$¤Y°Ô3Ø×/Ñ/°Ó3Ð3rw   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 rl  )ÚsetÚf_codeÚco_varnamesÚcell_and_freevarsÚsymbolic_localsrd  r`  rs  Ú	load_cellrÈ   Ú__instancecheck__rM   rÖ   r   ÚDeletedVariabler=   Úcreater?   r|   r;   )r»   Úframe_local_namesr4  Úframe_localsrÁ   r©   s         ru   r+  z+BuiltinVariable._call_frame_locals_snapshot  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ð		@ô !ØÜÜ*Ó,ô
ð 	
rw   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 |t4        jP                  u rDtS        |«      dk(  r6|d   j                  «       r#|d   jU                  |dtW        |dd  «      |«      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!tW        |«      }|d   ji                  «       |d<    |||«      S # tj        $ r9 tm        dd| › d|› d|› �d| j                  › d�g tn        jp                  ¢¬«       Y y w xY w)Nr8   )r]  Ú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rq   )rÈ   rT   ©rè   rÔ  s     ru   rê   z=BuiltinVariable._handle_insert_op_in_graph.<locals>.<genexpr>z  s    è ø€ ò BØ03”�S“	œ^Ô+ñBùs   ‚r^  Ú__eq__c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrq   ©rÖ   rQ   rE  s     ru   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rq   ©rÖ   r   rU   Úneed_unwraprç   s     ru   rê   z=BuiltinVariable._handle_insert_op_in_graph.<locals>.<genexpr>™  ó,   è ø€ ò "àÜ! !¤Y×%JÑ%JÔKð —M•Mñ"ùó   ‚02)Ú	raw_valuerK  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrq   ©rÖ   rS   rç   s     ru   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ñ  )9r_  r]  r=  rÕ  r  r?  Útorch_functionr@  rA  Úexportr¥   rÒ  rá   rg   rf   r9  rá  Úbytecode_transformationrB  rŸ  rC  rx   ÚIN_PLACE_DESUGARING_MAPrÖ   r   r=   r›   rž   rS   r“   Úselectr<   rÌ   r%   rí   r`  ra  r1   r2   ÚNumpyNdarrayVariabler&  r’   rT  r  rQ   r'   rå  rÝ  rÞ  rU   rì   r  r¶   ÚNotImplementedErrorr   r   r÷  )rs   r»   rn   ro   r]  r=  r?  r@  rA  rl   ÚtmpÚfn_varrá   rB  rC  ÚproxyÚ_argsÚ_kwargsrN  rK  s                       ru   r(  z*BuiltinVariable._handle_insert_op_in_graph*  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ˆðc	à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à”X—[‘[Ñ ¤S¨£Y°!¢^¸¸Q¹×8IÑ8IÔ8Kð ˜A‘w×*Ñ*¨2¨x¼¸dÀ1À2¸h»ÈÓPÐPØ*�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;   Ä9O
 Ä?C<O
 È<AO
 ÊAO
 ËA-O
 Í(O
 Í1AO
 Ï
?PÐPÚcall_function_handler_cachec           	      óÎ  — |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                  |<   }|€J ‚ ||||«      S c c}}w c c}w )Nc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrq   ©rÈ   rç   s     ru   rê   z0BuiltinVariable.call_function.<locals>.<genexpr>Ï  ó   è ø€ Ò4¨!œd 1ŸgÑ4ùó   ‚Tc              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrq   r`  rç   s     ru   rê   z0BuiltinVariable.call_function.<locals>.<genexpr>Ñ  ra  rb  )rd  rí  rá   r]  r°  r)  rÈ   rÜ   )	rs   r»   rn   ro   rã  rä  Úkeyr‰  ré   s	            ru   r^  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ð Ð"Ð"Ð"Ù�r˜4 Ó(Ð(ùó Aùò 1s   –CÂC"
rÁ   c                 ón
  •— | j                   t        u r“|dk(  rŽt        |«      dk(  sJ ‚t        |«      dk(  sJ ‚|\  }}}|j                  «       }t	        |t
        «      rH|j                  j                  j                  |«      r#|j                  «       r|j                  |||«      S |dk(  �r| j                   t        u rKt        |«      dk(  r=t        |«      dk(  sJ ‚|j                  j                  j                  | |d   |dd  «      S | j                   t        u r¬t        |«      dk(  rž|d   j                  |«      rŠ|sˆt	        |d   t        «      rH|d   j                   t        u r3|d   j                  |«      }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        u r§t/        | j                   |«      }|tH        v r‰t	        |d   t         jJ                  «      r5|d   jL                  €J ‚|d   jL                  jO                  |||dd  |«      S t	        |d   t         jP                  «      r|d   jO                  |||dd  |«      S | j                   tR        u rUt/        | j                   |«      }|tT        v r7t	        |d   t         jV                  «      r|d   jO                  |||dd  |«      S | j                   tX        u rYt        |«      dk\  rKt/        | j                   |«      }|tZ        v r-t	        |d   tB        «      r|d   jO                  |||dd  |«      S | j                   t\        u r\t        |«      dk\  rNt	        |d   tB        «      r;t5        j6                  | t/        t\        |«      |d   j3                  «       «      «      S |dk(  r"t        |«      dk(  r|sddl/m0}  |||d   «      S tb        ‰| ��  ||||«      S c c}}
w # t8        $ r5}t;        t=        |«      |t?        |j@                  «      ¬«       Y d }~�Œ§d }~ww xY w)NÚ__setattr__rb   r   r\   r8   r   rm  rr   c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wrq   ©r|  ©rè   rQ  s     ru   rê   z.BuiltinVariable.call_method.<locals>.<genexpr>	  s   è ø€ Ò8¨a�1×'Ñ'×)Ñ8ùr  c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wrq   rh  ©rè   rä  s     ru   rê   z.BuiltinVariable.call_method.<locals>.<genexpr>	  s    è ø€ ò AØ+,�×$Ñ$×&ñAùr  c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wrq   ©r¶   ri  s     ru   rê   z.BuiltinVariable.call_method.<locals>.<genexpr>  s   è ø€ Ò?°Q˜!×.Ñ.×0Ñ?ùr  r{  r¼  Ú__len__©Úgeneric_len)2rá   rÞ   r’   rí  rÖ   rX   r`  rs  Úis_attribute_mutationr|  Úmethod_setattr_standardÚtrack_new_user_defined_objectr¢  Úhas_force_unpack_var_sequencerà   Úforce_unpack_var_sequencer   rL   r;   r`   r°  rì   r  rÆ   rd  r¶   r<   rÌ   r  r   rÈ   r  rn   r=   r9  r1  r4   ÚUserDefinedSetVariableÚ_base_vtrT  rP   Ú	frozensetr+   rN   r}   r6   rò   r’  rp  r»  )rs   r»   rÁ   rn   ro   rî  Úname_varÚvalÚ	init_argsrá   rã  rä  r  r  Úresolved_fnrp  r}  s                   €ru   rT  zBuiltinVariable.call_methodÛ  s¯  ø€ ð �7‰7”fÑ ¨Ò!6Ü�t“9 ’>Ð!�>Ü�v“; !Ò#Ð#Ð#Ø!%ÑˆC�˜3Ø—+‘+“-ˆCä˜3Ô 9Ô:Ø—I‘I×*Ñ*×@Ñ@ÀÔEØ×/Ñ/Ô1à×2Ñ2°2°xÀÓEÐEà�9Óà�w‰wœ&Ñ ¤S¨£Y°!¢^Ü˜6“{ aÒ'Ð'Ð'Ø—y‘y×-Ñ-×KÑKØ˜$˜q™' 4¨¨ 8óð ð
 —‘œ5Ñ Ü˜“I ’NØ˜‘G×9Ñ9¸"Ô=Ùä˜d 1™g¤Ô7¸DÀ¹G¿J¹JÌ%Ñ<OØ $ Q¡× AÑ AÀ"Ó E�IÜ$×2Ñ2Ø!Ô1AÓ1Côð ð —y‘y×-Ñ-×KÑKØØ˜‘GØ˜˜�Hóð ð Ô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”c‰>Ü! $§'¡'¨4Ó0ˆKØœkÑ)Ü˜d 1™g¤y×'GÑ'GÔHØ ™7×+Ñ+Ð7Ð7Ð7Ø ™7×+Ñ+×7Ñ7¸¸DÀ$ÀqÀrÀ(ÈFÓSÐSÜ  Q¡¬×)>Ñ)>Ô?Ø ™7×.Ñ.¨r°4¸¸a¸b¸À6ÓJÐJà�7‰7”iÑÜ! $§'¡'¨4Ó0ˆKØÔ/Ñ/Ü˜d 1™g¤y×'BÑ'BÔCØ ™7×.Ñ.¨r°4¸¸a¸b¸À6ÓJÐJà�7‰7”c‰>œc $›i¨1šnÜ! $§'¡'¨4Ó0ˆ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¢¹õ 5á˜r 4¨¡7Ó+Ð+ä‰wÑ" 2 t¨T°6Ó:Ð:ùóe Qøô !ò Ü,Ü˜Q›ØÜ! !§&¡&›\÷ó ûðús*   È4S6 ÉS0É,S6 Ó0S6 Ó6	T4Ó?*T/Ô/T4rÔ  c                 ó    — ddl m}  |||«      S )Nr8   )Úgeneric_int)r’  r~  )rs   r»   rÔ  r~  s       ru   Úcall_intzBuiltinVariable.call_intD  s   € õ 	1á˜2˜sÓ#Ð#rw   c                 ó    — ddl m}  |||«      S )Nr8   )Úgeneric_float)r’  r�  )rs   r»   rÔ  r�  s       ru   Ú
call_floatzBuiltinVariable.call_floatK  s   € õ 	3á˜R Ó%Ð%rw   c                 ó    — ddl m}  |||«      S )Nr8   )Úgeneric_bool)r’  r„  )rs   r»   rÔ  r„  s       ru   Ú	call_boolzBuiltinVariable.call_boolR  s   € õ 	2á˜B Ó$Ð$rw   c                 ó  — t        |t        j                  t        j                  f«      r£	 t	        d„ |j
                  D «       «      }t        |«      dk(  r|j                  j                  › d�}nHt        |«      dk(  r |j                  j                  › d|d   ›d�}n|j                  j                  › |›�}t        j                  ||«      S t        |t        j                  «      rÖ|j                  j                  }t        |j                  «      j                  t         j                  u r)t        j                  ||«      }|j#                  |g i «      S t%        |«      r't'        dd	t        |j                  «      › d
�dg¬«       n6|j(                  }t        j                  ||«      }|j#                  ||gi «      S t        |t        j*                  «      rXt        |j                  «      j                  t        j                  u r)t        j                  |t-        |j                  «      «      S t        |t.        t0        t2        t4        t6        f«      r$t        j                  ||j9                  «       «      S y# t        $ r Y yw xY w)z&Handle repr() on user defined objects.c              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wrq   rm  ri  s     ru   rê   z,BuiltinVariable.call_repr.<locals>.<genexpr>c  s   è ø€ Ò"L¸a 1×#7Ñ#7×#9Ñ"Lùr  Nr   z()r8   r¿  rÀ  z4Attempted to call repr() method implemented in C/C++Ú z6 has a C/C++ based repr method. This is not supported.zWrite the repr method in Pythonrñ  )rÖ   r   rø  Ú"UserDefinedExceptionObjectVariabler¢  rn   rW  r’   Úexc_typerx   r<   rÌ   rX   r©   rÁ  rÈ   rÞ   r^  r/   r   Ú__func__ÚUserDefinedClassVariabler÷   rI   r?   r@   rO   rC   Ú
debug_repr)rs   r»   rÔ  Ú
const_argsr©   Úrepr_methodÚfn_vtÚbound_methods           ru   Ú	call_reprzBuiltinVariable.call_reprZ  s  € ô ØÜ×(Ñ(¬)×*VÑ*VÐWô
ðÜ"Ñ"LÀ3Ç8Á8Ô"LÓL�
ô �:‹ !Ò#ØŸ<™<×0Ñ0Ð1°Ð4‘Ü�Z“ AÒ%ØŸ<™<×0Ñ0Ð1°°:¸a±=Ð2CÀ1ÐE‘àŸ<™<×0Ñ0Ð1°*°Ð@�Ü"×(Ñ(¨¨UÓ3Ð3Ü�cœ9×>Ñ>Ô?ØŸ)™)×,Ñ,ˆKä�C—I‘I‹×'Ñ'¬6¯?©?Ñ:ä'×-Ñ-¨b°+Ó>�Ø×*Ñ*¨2¨r°2Ó6Ð6Ü0°Ô=ÜØRØÜ#'¨¯	©	£?Ð"3Ð3iÐ jØ<Ð=ö	ð  +×3Ñ3�Ü'×-Ñ-¨b°,Ó?�Ø×*Ñ*¨2°¨u°bÓ9Ð9Ü�cœ9×=Ñ=Ô>Ü�C—I‘I‹×'Ñ'¬4¯=©=Ñ8Ü&×,Ñ,¨R´°c·i±i³ÓAÐAÜØäÜ!Ü#Ü'Ü ðô	
ô #×(Ñ(¨¨S¯^©^Ó-=Ó>Ð>ØøôS 'ò Ùðús   ¬I: É:	JÊJ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   rˆ  r8   Ú__str__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ø  r‰  r’   rn   r<   rÌ   rà   r}   r^  rL   r  ÚUserFunctionVariablerá   rX   rÍ   r©   r”  rÁ  r   r   Ú
USER_ERRORrÈ   rÞ   ÚAttributeErrorr/   r‹  rö  r  r  )rs   r»   rÔ  Ú	tuple_varÚ
str_methodr‘  Úuser_func_variables          ru   Ú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                 ó"  — t        |«      dk(  r:|d   j                  |«      r&|d   j                  |«      }| j                  ||«      S t        |«      dk(  r| j	                  ||d   |d   «      S t        |«      dkD  r| j                  ||«      S y )Nr8   r   r   )r’   rt  ru  Ú_call_min_max_seqÚ_call_min_max_binary)rs   r»   rn   rd  s       ru   Ú_call_min_maxzBuiltinVariable._call_min_maxÐ  s�   € ô ˆt‹9˜Š>˜d 1™g×CÑCÀBÔGØ˜‘G×5Ñ5°bÓ9ˆEØ×)Ñ)¨"¨eÓ4Ð4Ü�‹Y˜!Š^Ø×,Ñ,¨R°°a±¸$¸q¹'ÓBÐBÜ�‹Y˜Š]Ø×)Ñ)¨"¨dÓ3Ð3Ørw   rd  c                 ó°   — t        |«      dkD  sJ ‚t        |«      dk(  r|d   S t        j                  t        j                  | j                  |«      |«      S ©Nr   r8   )r’   Ú	functoolsÚreduceÚpartialrŸ  )rs   r»   rd  s      ru   rž  z!BuiltinVariable._call_min_max_seqÜ  sO   € ô �5‹z˜AŠ~Ðˆ~Üˆu‹:˜Š?Ø˜‘8ˆOä×Ñ¤	× 1Ñ 1°$×2KÑ2KÈRÓ PÐRWÓXÐXrw   rQ  rR  c                 ól  — |�|€y | j                  ||«      �r%|j                  «       s||}}|j                  «       sJ ‚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                  t.        u rd|ind|i}|j                  ||g|«      }nÄt        |t        j$                  «      rIdd l}t.        |j0                  t2        |j4                  i| j                     }	t	        j(                  |	«      }nLt.        t        j0                  t2        t        j4                  i| j                     }
t	        j
                  |
«      }|j                  |||gi «      }t7        d„ ||fD «       «      rÔt9        d	„ ||fD «       «      rt        j                  j;                  |«      S |j#                  «       r|j=                  «       }n|j>                  }| j                  t.        u rt/        |j>                  |«      }nt3        |j>                  |«      }t9        d
„ ||fD «       «      }t        j@                  j;                  |||«      S |S t        |t        «      st        |t        «      rs| j                  t.        u rt        jB                  nt        jD                  } |j                  j                  d|gt!        ||gi «      ¢­Ž }t        jF                  ||d «      S t        |tH        «      rTt        |tH        «      rD| j                  |j=                  «       |j=                  «       «      }tK        jL                  ||«      S y )Nr8   ©r=  r^  )r»   rZ  r   rô   ró   c              3   óp   K  — | ].  }t        |t        j                  t        j                  f«      –— Œ0 y ­wrq   )rÖ   r   rU   r=   )rè   rà  s     ru   rê   z7BuiltinVariable._call_min_max_binary.<locals>.<genexpr>  s9   è ø€ ò 	ð ô Øä!×=Ñ=Ü!×2Ñ2ð÷ñ	ùs   ‚46c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrq   rH  )rè   rz  s     ru   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rq   rJ  rç   s     ru   rê   z7BuiltinVariable._call_min_max_binary.<locals>.<genexpr>6  rL  rM  )'rÕ  rÒ  rÖ   rQ   r   ÚTorchInGraphFunctionVariabler“   r  r^  rS   r_  r=  rÈ   r`  ra  rá   r2   r|  rV  ÚnumpyÚNumpyVariableÚclipÚclampró   Úmaximumrô   Úminimumrì   rí   Úfrom_tensor_variabler¶   rN  rU   Úsym_maxÚsym_minr9  r=   r<   rÌ   )rs   r»   rQ  rR  r=  Únprá   ro   r“  Únp_fnÚtorch_fnÚraw_bÚraw_resrK  Úpy_fnrZ  r©   s                    ru   rŸ  z$BuiltinVariable._call_min_max_binaryå  sz  € ð ˆ9˜˜	ð Ø×Ñ˜A˜qÕ!Ø—;‘;”=Ø˜!�1�Ø—;‘;”=Ð �=ô ˜!Ô-Ô.Ü×:Ñ:¼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Ørw   c                 ó®   — ddl m} |j                  |t        «      j	                  ||t        j                  |d«      gi «      }|j	                  |g i «      S )Nr8   r>  Ú__abs__©r_  r?  r9  rÆ   r^  r<   rÌ   )rs   r»   rÔ  r?  Ú
abs_methods        ru   Úcall_abszBuiltinVariable.call_absT  óV   € õ 	/ð '×-Ñ-¨b´'Ó:×HÑHØ�”o×+Ñ+¨B°	Ó:Ð;¸Ró
ˆ
ð ×'Ñ'¨¨B°Ó3Ð3rw   c                 ó®   — ddl m} |j                  |t        «      j	                  ||t        j                  |d«      gi «      }|j	                  |g i «      S )Nr8   r>  Ú__pos__r½  )rs   r»   rÔ  r?  Ú
pos_methods        ru   Úcall_poszBuiltinVariable.call_pos_  rÀ  rw   c                 ó:   — t        |«      }|j                  |«      S rq   )r5   Únb_index_impl©rs   r»   rÔ  s      ru   Ú
call_indexzBuiltinVariable.call_indexj  s   € ô
 ! Ó%ˆØ× Ñ  Ó$Ð$rw   c                 ó®   — ddl m} |j                  |t        «      j	                  ||t        j                  |d«      gi «      }|j	                  |||«      S )Nr8   r>  Ú	__round__r½  )rs   r»   rÔ  rn   ro   r?  Úround_methods          ru   Ú
call_roundzBuiltinVariable.call_roundr  sV   € õ 	/ð )×/Ñ/°´GÓ<×JÑJØ�”o×+Ñ+¨B°Ó<Ð=¸ró
ˆð ×)Ñ)¨"¨d°FÓ;Ð;rw   c                 ó¸   ‡— t        |i «      rt        j                  |«      S  | j                  |Ž r)t	        ˆfd„|D «       «      }t        j                  |«      S y )Nc              3   ó\   •K  — | ]#  }t        j                  ‰t        |«      «      –— Œ% y ­wrq   )r<   rÌ   r-   )rè   rÔ  r»   s     €ru   rê   z-BuiltinVariable.call_range.<locals>.<genexpr>‡  s#   øè ø€ ÒVÈ#œ×.Ñ.¨r´<ÀÓ3D×EÑVùs   ƒ),)r&   r   rI   Ú_dynamic_argsr¢  r,  s    ` ru   Ú
call_rangezBuiltinVariable.call_range�  sU   ø€ ô )¨¨rÔ2Ü×*Ñ*¨4Ó0Ð0ØˆT×Ñ Ñ&ÜÓVÐQUÔVÓVˆDÜ×*Ñ*¨4Ó0Ð0àrw   c                 ój   — t        d„ |D «       «      xs  t        d„ |j                  «       D «       «      S )Nc              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrq   rP  rç   s     ru   rê   z0BuiltinVariable._dynamic_args.<locals>.<genexpr>�  s   è ø€ Ò@°a”:˜a¤×1Ñ@ùr  c              3   ó<   K  — | ]  }t        |t        «      –— Œ y ­wrq   rP  rç   s     ru   rê   z0BuiltinVariable._dynamic_args.<locals>.<genexpr>�  s   è ø€ ò H
Ø/0ŒJ�qœ/×*ñH
ùr  )rí   r  rÎ  s      ru   rÏ  zBuiltinVariable._dynamic_argsŒ  s7   € ÜÑ@¸4Ô@Ó@ò 
ÄCñ H
Ø4:·M±M³OôH
ó E
ð 	
rw   c                 ó.   — t        j                  ||«      S rq   )r   ÚSliceVariabler,  s      ru   Ú
call_slicezBuiltinVariable.call_slice‘  s   € ô ×&Ñ& t¨RÓ0Ð0rw   c           
      ó€   — ddl m}  || |j                  j                  d| j                  gt        ||«      ¢­Ž «      S r[  )r_  r]  r`  ra  rá   r2   )rs   r»   rn   ro   r]  s        ru   Ú
_dyn_proxyzBuiltinVariable._dyn_proxy–  sC   € õ 	+áØØ"ˆB�I‰I×"Ñ"Ø §¡ðÜ+<¸TÀ6Ó+Jòó
ð 	
rw   rî  c                 óT  — t        |t        j                  «      rJ ‚ | j                  |i |¤Žr | j                  |g|¢­i |¤ŽS t        j
                  j                  | j                  «      }|€ |g t        «       ¬«      S |j                  |«      �r•|j                  �r^t        |j                  «      �sHt        |t        «      r4t        |j                  j                  t        j                   «      «       �nt#        |dd«      r^t        |t$        t        j&                  t        j(                  f«      r/|j*                  j,                  j/                  |j                  «       t        |t        j0                  «      r3t        |j                  j                  t        j2                  «      «       nLt        |t        j4                  «      s2t        |j                  j                  t        j6                  «      «        |t9        |j;                  |«      «      t        «       ¬«      S y )Nrm  rª   F)rÖ   r   ÚIteratorVariablerÏ  rØ  rF   Úcls_forrá   r;   rr  rª   r!   rK   r   r¯   r   ÚTUPLE_ITERATOR_LENrÆ   r?   ÚOrderedSetVariableÚDictKeySetVariabler`  Úguard_on_key_orderrº   ÚMappingProxyVariableÚMAPPING_KEYS_CHECKÚUnspecializedNNModuleVariableÚSEQUENCE_LENGTHr  re  ©rs   r»   rî  rn   ro   r²   s         ru   Ú_call_iter_tuple_listz%BuiltinVariable._call_iter_tuple_list£  s°  € ô ˜c¤9×#=Ñ#=Ô>Ð>Ð>àˆ4×Ñ˜tÐ. vÒ.Ø"�4—?‘? 2Ð7¨Ò7°Ñ7Ð7ä×(Ñ(×0Ñ0°·±Ó9ˆØˆ;ÙØÜ.Ó0ôð ð ×(Ñ(¨Õ,Ø�z‹zÔ"4°S·Z±ZÕ"@Ü˜cÔ#8Ô9Ü!ØŸ
™
×-Ñ-¬l×.MÑ.MÓNöô ˜s H¨eÔ4¼Øä-Ü%×8Ñ8Ü%×8Ñ8ðô:ð Ÿ	™	×4Ñ4×8Ñ8¸¿¹ÔDä! #¤y×'EÑ'EÔFô &ØŸJ™J×1Ñ1´,×2QÑ2QÓRõô (¨¬Y×-TÑ-TÔUô &ØŸJ™J×1Ñ1´,×2NÑ2NÓOôñ Ü�S×,Ñ,¨RÓ0Ó1Ü.Ó0ôð ð rw   c                 ó¨   — t         j                  j                  | j                  «      } |t	        |j                  |«      «      t        «       ¬«      S rl  )r   rF   rÛ  rá   r  ru  r;   rä  s         ru   Ú_call_iter_tuple_generatorz*BuiltinVariable._call_iter_tuple_generatorÙ  sD   € ô ×(Ñ(×0Ñ0°·±Ó9ˆÙÜ�×.Ñ.¨rÓ2Ó3Ü*Ó,ô
ð 	
rw   c                 ó®  — t        |t        j                  «      rSt        j                  j	                  | j
                  «      } |t        |j                  |«      «      t        «       ¬«      S t        |t        j                  «      s!t        |t        «      r(|j                  |«      r | j                  ||g|¢­i |¤ŽS  | j                  ||g|¢­i |¤ŽS rl  )rÖ   r   rÚ  rF   rÛ  rá   r  ru  r;   ÚLocalGeneratorObjectVariablerX   rt  rç  rå  rä  s         ru   Ú_call_tuple_listz BuiltinVariable._call_tuple_listæ  s½   € ô �cœ9×5Ñ5Ô6Ü×,Ñ,×4Ñ4°T·W±WÓ=ˆCÙÜ�S×2Ñ2°2Ó6Ó7Ü.Ó0ôð ô ˜œY×CÑCÔDÜ�sÔ5Ô6Ø×1Ñ1°"Ô5à2�4×2Ñ2°2°sÐL¸TÒLÀVÑLÐLà-�4×-Ñ-¨b°#ÐG¸ÒGÀÑGÐGrw   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&        f«      rt        j                  j                  d«      S y )Nr8   )rJ  ÚFunctoolsPartialVariablerK  TF)rŸ  rJ  rì  r   rL  rÖ   r   rŒ  r=   r9  rY   r<   rÌ   rî   r©   rS   rT   rH   rL   rG   )rs   r»   rÔ  rJ  rì  rL  s         ru   Úcall_callablezBuiltinVariable.call_callableý  s«   € ÷ 	RÝ/äØä×2Ñ2Ø(Ø(Ø ð	ô
ô ×-Ñ-×4Ñ4°TÓ:Ð:Ü˜Ô0Ô1Ü"×(Ñ(¨¬X°c·i±iÓ-@ÓAÐAÜØä ÜÜÜÜÜ$ðô

ô ×-Ñ-×4Ñ4°UÓ;Ð;àrw   rû  c                 óV   — t        |«      dk(  r|d   S t        dd|› d|› �ddg¬«       y )	Nr   r8   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   )rs   rû  rn   ro   s       ru   Ú	call_castzBuiltinVariable.call_cast  s<   € ô ˆt‹9˜Š>Ø˜‘7ˆNäØ0Ø ˜v Q v hÐ/ØJØHÐIö		
rw   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 rq   )rÖ   r   rŒ  r<   rÌ   Údirr©   rà   rá   r|  r¶   rÇ  s      ru   Úcall_dirzBuiltinVariable.call_dir+  s„   € ô �cœ9×=Ñ=Ô>Ü"×(Ñ(¨¬S°·±«^Ó<Ð<Ü�cœ?Ô+Ü"×(Ñ(¨¬S°·±«[Ó9Ð9à×!Ñ!Ô#Ü"×(Ñ(¨¬S°×1GÑ1GÓ1IÓ-JÓKÐKØrw   c                 óþ  — ddl m} |rJ ‚|st        g t        «       ¬«      S t	        |«      dk7  r t        t        |dt	        |«      › d�g¬«       |d   }t        |t        j                  «      r|j                  t        «       ¬«      S |j                  |«      r&|j                  |«      }t        |t        «       ¬«      S t        |t        j                  «      r‘t        |j                  t        «      rw|j!                  |d«      }t        |t        j"                  «      rK|j%                  |||«      }t        |t        «      r|S |j'                  |t(        «      j+                  ||«      S t        t        |d	g¬«       y )
Nr8   r>  rm  z&set() takes 1 positional argument but ú were givenr{  r   Ú__iter__z!failed to construct builtin set())r_  r?  rP   r;   r’   r   r„  r0   r   Úclonert  ru  rÖ   rX   r©   r   rÊ   ÚUserMethodVariabler‡  r9  r1  Úcall_set)	rs   r»   rn   ro   r?  rÔ  rd  Úiter_fnÚouts	            ru   rø  zBuiltinVariable.call_set7  sH  € õ 	/áÐˆzÙÜ˜rÔ1AÓ1CÔDÐDÜˆt‹9˜Š>Ü$ÜØØ>¼sÀ4»y¸kÈÐUÐVõð
 �1‰gˆÜ�#”y×,Ñ,Ô-Ø—9‘9Ô+;Ó+=�9Ó>Ð>Ø×.Ñ.¨rÔ2Ø×1Ñ1°"Ó5ˆEÜ˜uÔ4DÓ4FÔGÐGÜ˜œY×@Ñ@ÔAÄjØ�I‰I”xôG
ð —o‘o b¨*Ó5ˆGÜ˜'¤9×#?Ñ#?Ô@Ø×4Ñ4°W¸dÀFÓK�Ü˜c¤;Ô/Ø�JØ(×/Ñ/°´CÓ8×AÑAÀ"ÀcÓJÐJÜ ÜØØ5Ð6ö	
rw   c                 ó¤  — |rJ ‚|st        g «      S t        |«      dk7  r t        t        |dt        |«      › d�g¬«       |d   }t	        |t
        j                   «      r-t        |j                  D �cg c]  }|j                  ‘Œ c}«      S |j                  |«      r|j                  |«      }t        |«      S t        t        |dg¬«       y c c}w )Nr8   z,frozenset() takes 1 positional argument but rô  r{  r   z'failed to construct builtin frozenset())
rN   r’   r   r„  r0   r   Ú	set_itemsÚvtrt  ru  )rs   r»   rn   ro   rÔ  ré   rd  s          ru   Úcall_frozensetzBuiltinVariable.call_frozenset]  sÄ   € ñ ÐˆzÙÜ$ RÓ(Ð(Üˆt‹9˜Š>Ü$ÜØàBÄ3ÀtÃ9À+È[ÐYðõð �1‰gˆÜ�#”y×2Ñ2Ô3Ü$°C·M±MÖ%B¨q a§d£dÒ%BÓCÐCØ×.Ñ.¨rÔ2Ø×1Ñ1°"Ó5ˆEÜ$ UÓ+Ð+Ü ÜØØ;Ð<ö	
ùò	 &Cs   Á2Cc                 ó„  — ddl m} |r,t        |«      dk(  rd|v st        |ddt        |«      › d�«       |j	                  dt        j                  d«      «      }|D �cg c]*  }|j                  |t        «      j                  ||gi «      ‘Œ, }}t        j                  ||j                  «       t        «       ¬«      S c c}w )	Nr8   r>  ÚstrictÚzipú1 kwargs (`strict`)ú kwargsF©r   rn  )r_  r?  r’   r3   Úpopr=   r9  Úiterr^  r   ÚZipVariabler¶   r;   )rs   r»   rn   ro   r?  r   rÔ  Ú	iter_argss           ru   Úcall_zipzBuiltinVariable.call_zipz  sÆ   € õ 	/áÜ˜“K 1Ò$¨°VÑ);Ü#ØØØ)Ü˜6“{�m 7Ð+ô	ð —‘˜HÔ&6×&=Ñ&=¸eÓ&DÓEˆð ö
àð ×$Ñ$ R¬Ó.×<Ñ<¸RÀ#ÀÈÕKð
ˆ	ð 
ô ×$Ñ$ØØ×,Ñ,Ó.Ü*Ó,ô
ð 	
ùò	
s   Á/B=c                 ó&   — ddl m}  |||d   «      S )Nr8   ro  r   )r’  rp  )rs   r»   rn   ro   rp  s        ru   Úcall_lenzBuiltinVariable.call_len•  s   € õ 	1á˜2˜t A™wÓ'Ð'rw   c                 ó.   — ddl m}  |||d   |d   «      S )Nr8   )Ú
vt_getitemr   )r’  r  )rs   r»   rn   ro   r  s        ru   Úcall_getitemzBuiltinVariable.call_getitemŸ  s   € õ 	0á˜"˜d 1™g t¨A¡wÓ/Ð/rw   Ú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}n_t        |t         j4                  «      r|j6                  }n8t        |t8        «      rt;        d„ |D «       «      r|}nt=        t>        |dg¬«       	 tA        «      }t        j                  ||«      S # t        $ r- t        dd‰› d|› d�d‰› �g t        j                  ¢¬«       Y �ŒVw 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_typerh   c                 ó„   •‡— dt         dt        fˆfd„Št        |«      t        u rt	        ˆfd„|D «       «      S  ‰|«      S )NÚtyrh   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)r7   rÉ  ÚnodeÚmetar   r“   ÚnnÚ	parameterÚ	ParameterrÖ   r±  Úpython_typer   )r  Úexample_valÚdtypesrÔ  s      €ru   Ú
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¨Ð.Ð.rw   c              3   ó.   •K  — | ]  } ‰|«      –— Œ y ­wrq   rr   )rè   r  r   s     €ru   rê   zNBuiltinVariable.call_isinstance.<locals>._tensor_isinstance.<locals>.<genexpr>Ñ  s   øè ø€ ÒD°"™z¨"Ÿ~ÑDùs   ƒ)r	   rÜ   rÈ   r¢  rí   )r  r  r   rÔ  s     @€ru   Ú_tensor_isinstancez;BuiltinVariable.call_isinstance.<locals>._tensor_isinstance»  sA   ù€ ð/¤3ð /¬4õ /ô$ ˜Ó$¬Ñ-ÜÓD¸ÔDÓDÐDá% kÓ2Ð2rw   z<isinstance() called on user defined object with C extensionszeUser-defined object with C extensions can have torch.Tensor attributes; intentionally graph breaking.r7  c              3   ól   K  — | ],  }t        |t        «      xs t        t        |d d«      «      –— Œ. y­w)r7  N)rÖ   rÈ   rî   rÆ   )rè   Útps     ru   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 unionr{  )!r  rW  r   r   r  r¶   rÖ   r   rT   r   r<   r	   rÜ   rÌ   rX   r©   rm   ÚMemberDescriptorTyper÷  r}  r  r7  Ú!UserDefinedExceptionClassVariablerÈ   rî   rÆ   Ú	UnionTypeÚ__args__r¢  rì   r   r„  r±  )	rs   r»   rÔ  r  rØ  Úisinstance_typer"  Úisinstance_type_tuplerz  s	     `      ru   Úcall_isinstancezBuiltinVariable.call_isinstance©  sm  ø€ ð	Ø—‘Ó(ˆ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Ø$3×$<Ñ$<Ñ!Ü˜¬Ô/´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#   ƒH4 ÈI- È42I*É)I*É-I=É<I=Úleft_tyÚright_tyc           	      óð   — 	 |j                  «       }|j                  «       }t        j                  |t        «      «      S # t        $ r* t        dd|› d|› d�ddgt        j                  ¢¬«       Y ŒRw xY w)z,Checks if first arg is subclass of right argz(issubclass() with non-constant argumentszissubclass(r  rÀ  z7issubclass() with non-constant arguments not supported.z#Make sure your arguments are types.rñ  )r¶   rW  r   r   r—  r<   rÌ   r±  )rs   r»   r,  r-  Ú
left_ty_pyÚright_ty_pys         ru   Úcall_issubclasszBuiltinVariable.call_issubclass	  s†   € ð	Ø ×3Ñ3Ó5ˆJØ"×5Ñ5Ó7ˆKô ×$Ñ$ R¬°JÀÓ)LÓMÐMøô #ò 		ÜØBØ% g Y¨b°°
¸!Ð<ØUà9ðä&×1Ñ1ð÷	ð		ús   ‚ A Á0A5Á4A5c                 ó.   — t        j                  ||«      S rq   )r   ÚSuperVariable©rs   r»   rQ  rR  s       ru   Ú
call_superzBuiltinVariable.call_super-	  s   € ô ×&Ñ& q¨!Ó,Ð,rw   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   r8   )	Únext_variabler   r’   r   rÖ   r   rF   r
  rd  )rs   r»   rn   rÔ  Úexs        ru   Ú	call_nextzBuiltinVariable.call_next2	  s   € ð �1‰gˆð
	Ø×$Ñ$ RÓ(Ð(øÜ(ò 	Ü�4‹y˜AŠ~Ø˜A‘w’ØÜò 	Ü˜#œy×9Ñ9Ô:Ø×$Ñ$Ô&Ø—y‘y ‘|Õ#Øûð		ús%   ‡ ˜B¶	B¿8A>Á7BÁ=A>Á>BrÉ   c                 óh   — |j                  «       r"|j                  «       }|j                  ||«      S y rq   )r|  r¶   rÎ   )rs   r»   rî  rÉ   rÁ   s        ru   Úcall_hasattrzBuiltinVariable.call_hasattrB	  s4   € ð ×"Ñ"Ô$Ø×*Ñ*Ó,ˆDØ×'Ñ'¨¨DÓ1Ð1Ørw   Úseqsc                 óø  — 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]&  }|j                  |«      r|j                  |«      n|‘Œ( }}t        j                  |||j                  «       t        «       ¬	«      S c c}w )
NFra   r8   r   Úmapr  r  z0 kwargsr  )r=   r9  ÚsysÚversion_infor’   r3   r  rr  re  r   ÚMapVariabler¶   r;   )rs   r»   rá   r<  ro   r   rv  Úseq_lists           ru   Úcall_mapzBuiltinVariable.call_mapJ	  s  € ô "×(Ñ(¨Ó/ˆÙÜ×Ñ 7Ò*Ü˜F› qÒ(¨X¸Ñ-?Ü'ØØØ-Ü˜v›;˜- wÐ/ô	ð  Ÿ™ HÔ.>×.EÑ.EÀeÓ.LÓM‘ä#ØØØÜ˜6“{�m 7Ð+ô	ð ö
àð ,/×+FÑ+FÀrÔ+JˆC×#Ñ# BÔ'ÐPSÑSð
ˆð 
ô ×$Ñ$ØØØ×,Ñ,Ó.Ü*Ó,ô	
ð 	
ùò	
s   Â+C7rv  c                 óŠ   — |j                  |«      r|j                  |«      n|}t        j                  ||t	        «       ¬«      S rl  )rr  re  r   ÚFilterVariabler;   )rs   r»   rá   rv  Úseq_or_lists        ru   Úcall_filterzBuiltinVariable.call_filtero	  sH   € ð ,/×+FÑ+FÀrÔ+JˆC×#Ñ# BÔ'ÐPSð 	ô ×'Ñ'ØØÜ*Ó,ô
ð 	
rw   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)Nrx   rÄ   )rª   r   r<   rÌ   rá   rx   rÞ   rÆ   r˜  r   rî   r   rÇ   rÈ   )rs   r»   rÁ   rª   r©   rÉ   s         ru   rÊ   zBuiltinVariable.var_getattr{	  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?ry  Údefaultc                 ó„  — |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&|j                  j
                  j                  ||«      S |�=| j                  |||«      }|�&|j                  dd«      sJ ‚|j                  «       s|S |S |j                   xr t#        |j                   |«      }|dv rÒ	 |j                  «       }t        |t$        «      r±|dk(  rat'        |j(                  «      D �	�
cg c]*  \  }	}
t+        j,                  ||
|xr t/        ||	«      «      ‘Œ, }}	}
t        j0                  ||¬«      S |dk(  r!t+        j,                  ||j2                  |«      S |dk(  r t+        j,                  ||j4                  «      S t        |t        j8                  «      r|j;                  ||«      S t        |t        j<                  t        j>                  t        j@                  t        jB                  t        jD                  t        jF                  f«      �r!t        |t        jF                  «      r]tI        |jJ                  jL                  tN        jP                  «      r/tR        jT                  r|dv rt        dd|› �d|› d�d|› d�g¬«       |j                  «       r‡|jW                  «       jX                  jZ                  d   }t        |t\        j^                  «      rFta        |«      r;|jb                  rtR        jd                  st        dddg tf        jh                  ¢¬«       	 |j;                  ||«      S t        |t        jn                  «      rÀ	 tq        |jJ                  |«      }t        |t\        jv                  jx                  t\        jv                  jz                  f«      r@t\        j|                  j~                  j�                  |«      rt        jn                  ||¬«      S |t‚        v r"t        jl                  ||t%        |«      |¬«      S y t        |t„        «      r¢|j†                  s||jJ                  jˆ                  vrtq        |jJ                  |«      }n|jJ                  jˆ                  |   }tR        jŠ                  r'|jŒ                  j�                  |jJ                  ||«       t+        j,                  |||«      S 	 |j;                  ||«      S c c}
}	w # t6        $ r Y �Œew xY w# tj        $ r ‚ t6        $ r t        jl                  |||¬«      cY S w xY w# tr        $ r tu        tr        |«       ‚ w xY w# t6        $ r t        jl                  |||¬«      cY S w xY w) Nz)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 mutationTF>   Ú__base__Ú	__bases__Ú	__flags__rT  r­   rS  rU  )ÚassertRaisesRegexÚ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 TensorsrÄ   )Hr|  r   r¶   rÒ  r`  rs  rq  rÖ   r   râ  Úis_state_mutatedÚhas_pending_mutationÚhas_pending_mutation_of_attrÚ	load_attrr;  Úis_constant_matchrª   r   rÈ   Ú	enumeraterT  r<   rÌ   r   rL   rS  rU  rW  rL  rÊ   rT   r=   r@   ÚDistributedVariablerŒ  rX   r±  r©   r}  ÚunittestÚTestCaser   Úenable_trace_unittestrÉ  r  r  r“   ÚTensorr   rR  Úcapture_sparse_computer   ÚSPARSE_TENSORr9   rÇ   r«  rÆ   r˜  r   Ú_opsÚOpOverloadPacketÚ
OpOverloadÚ_dynamoÚtrace_rulesÚis_aten_op_or_tensor_methodr(   r   Úis_torchr  Úreplay_record_enabledÚexec_recorderÚrecord_module_access)rs   r»   rî  ry  rI  rÁ   Úhasattr_varrª   r©   rà  rR  Ú
tuple_argsÚfake_valÚmembers                 ru   Úcall_getattrzBuiltinVariable.call_getattrŒ	  sŽ  € ð ×*Ñ*Ô,ÜØ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Ø—9‘9×)Ñ)×3Ñ3°C¸Ó>Ð>àÐØ×+Ñ+¨B°°XÓ>ˆKØÐ&Ø"×4Ñ4°T¸5ÔAÐAÐAØ"×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Ø˜¤t¨F£|¸Fôð ð Ü˜œ[Ô)à�|Š|˜t¨3¯9©9×+=Ñ+=Ñ=Ü  §¡¨DÓ1‘àŸ™×+Ñ+¨DÑ1�ä×+Ò+Ø× Ñ ×5Ñ5°c·i±iÀÀvÔNÜ"×(Ñ(¨¨V°VÓ<Ð<ðKØ—‘ r¨4Ó0Ð0ùóK&øô 'ò Úðûôl 7ò ð Ü&ò KÜ ×0Ñ0°°dÀ6ÔJÒJðKûô "ò Ü(¬¸Ô<Øðûô6 'ò KÜ ×0Ñ0°°dÀ6ÔJÒJðKús`   Æ=V= Ç/V7Ç?V= È%V= È?$V= ÐW Ð3W= Ö%X Ö7V= Ö=	W
×	W
×*W:×9W:×=XØ!X?Ø>X?rz  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) Nrf  r8   r\  Úrequires_gradz!setattr() on Tensor.requires_gradzsetattr(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 attributezVDyanmo 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 dtypezPDyanmo only supports mutating `.data` of tensor to a new one with the same dtyper^  ré   rh   c                 óŠ   — | j                   }|dkD  r|dz
  }t        j                  j                  j	                  | f|f«       | S r¢  )Ú_versionr“   Ú_CÚ	_autogradÚ_unsafe_set_version_counter)ré   Úversions     ru   Ú_lower_version_count_by_1z?BuiltinVariable.call_setattr.<locals>._lower_version_count_by_1�
  s>   € Ø"#§*¡*˜Ø" Qš;Ø&-°¡k˜GÜŸ™×*Ñ*×FÑFÈÀtÈgÈZÔXØ ˜rw   r  )rK  rL  rL  zFailed to set tensor attributez6Dyanmo 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@   rX   ÚNestedUserFunctionVariablerø  ÚTracebackVariablerT  r`  rs  rq  r|  r¶   rÒ  r_  r]  r   r   r÷  rª   r   Útracked_fakesÚremoveÚdynamo_disable_gradr“   Úno_gradra  rd  Úset_r2   rÉ  r  r  r.   Ú
store_attrrL  Úis_root_tracerÚFUNDAMENTALrT   r,   rÊ   r˜  r   r  Úgetattr_staticÚmodule_typer  ÚModulerf  Úconvert_to_unspecialized)rs   r»   rî  ry  rz  rÁ   r]  ÚtfÚ	to_removerú  r  Úassigning_fake_valÚgetattr_varÚexisting_fake_attrÚmod_setattrs                  ru   Úcall_setattrzBuiltinVariable.call_setattr3
  s{  € ô Øä×-Ñ-Ü×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&c                 ó,   — |j                  |d|gi «      S )NÚ__delattr__rW  )rs   r»   rî  ry  s       ru   Úcall_delattrzBuiltinVariable.call_delattrÙ
  s   € ð �‰˜r =°8°*¸bÓAÐArw   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ˆ  rd  )r  rW  r   r   ÚINVALID_INPUTr}   rª   r#   rÖ   r   rX   Ú
cls_sourcer“   rd  r`  Úinstall_global_by_idr   r    r<   rÌ   )rs   r»   rî  rÅ   Úerrorrª   rÁ   s          ru   Ú	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                  |«      r8t        t        |j                  |«      «      «      }t	        j
                  |«      S y rq   )rr  r  Úreversedre  r   rL   )rs   r»   rî  rd  s       ru   Úcall_reversedzBuiltinVariable.call_reversedû
  s@   € ð ×&Ñ& rÔ*Üœ #×"9Ñ"9¸"Ó"=Ó>Ó?ˆEÜ×*Ñ*¨5Ó1Ð1Ørw   c                 óâ   — |j                  |«      r^t        |t        j                  «      sDt        j                  |j                  |«      t        «       ¬«      }|j                  |dg |«       |S y )Nrm  Úsort)rt  rÖ   r   rT   rH   ru  r;   rT  )rs   r»   rî  ro   Úlist_vars        ru   Úcall_sortedzBuiltinVariable.call_sorted  sh   € ð ×,Ñ,¨RÔ0¼Ø”×)Ñ)ô:
ô !×-Ñ-Ø×-Ñ-¨bÓ1Ü.Ó0ôˆHð × Ñ   V¨R°Ô8ØˆOØrw   c                 ó  — t        |t        «      r9t        j                  |t        j                  |j                  «       «      d ¬«      S t        |t        «      r0|j                  |d«      j                  r|j                  |dg i «      S y )N©Úsym_numÚ__neg__)
rÖ   rS   r9  r›   rü   rÉ  rX   rÎ   r©   rT  )rs   r»   rQ  s      ru   Úcall_negzBuiltinVariable.call_neg  sv   € ô �aœÔ)Ü"×)Ñ)ØÜ—‘˜qŸz™z›|Ó,Øôð ô �qÔ3Ô4Ø×"Ñ" 2 yÓ1×7Ò7à—=‘=  Y°°BÓ7Ð7ð rw   Ú_format_stringc                 óz   — |j                  «       }t        |«      }t        j                  j	                  |||«      S rq   )r¶   r}   r   ÚStringFormatVariabler9  )rs   r»   r¬  rn   ro   Úformat_strings         ru   Úcall_formatzBuiltinVariable.call_format(  s7   € ð '×9Ñ9Ó;ˆÜ˜MÓ*ˆÜ×-Ñ-×4Ñ4°]ÀDÈ&ÓQÐQrw   c                 óˆ  — t        |«      dkD  rft        |d   t        j                  «      rI|d   }|j                  j                  |j                  «      }t        j                  |t        |«      «      S t        |«      dk(  r7|d   j                  «       r$t        t        |d   «      }|j                  |«      S t        |d   t        j                  «      r,t        j                  |t        |d   j                   «      «      S t        |«      dk(  �r|d   }t        |t        j"                  t        j$                  f«      r‹|j&                  rt        |t        j"                  «      r3t)        |j&                  j+                  t,        j.                  «      «       n2t)        |j&                  j+                  t,        j0                  «      «       |j3                  «       }|t4        urt        j                  |t        |«      «      S t7        t        |«      «      S t9        dt;        |«      d|› �dgt<        j>                  ¢¬«       y )Nr   r8   zid() with unsupported argsz5Dynamo doesn't know how to trace id() call with args zkSupported args are Tensors, and functions/nn.Modules/user-defined objects from outside the compiled region.rñ  ) r’   rÖ   r   rL  r`  Úget_submoduleÚ
module_keyr<   rÌ   ÚidrÒ  r
   rT   Úcall_idr0   rì  Ú
fake_valuerŒ  rX   rª   r   r¯   r   ÚCLASS_MATCHÚID_MATCHrÅ  r:   r>   r   r}   r   r÷  )rs   r»   rn   Únn_mod_variabler  Útensor_variablerÔ  Úreal_vals           ru   rµ  zBuiltinVariable.call_id3  sÊ  € ô ˆt‹9�qŠ=œZ¨¨Q©´×1KÑ1KÔLØ" 1™gˆOØ—)‘)×)Ñ)¨/×*DÑ*DÓEˆCÜ"×(Ñ(¨¬R°«WÓ5Ð5Ü�‹Y˜!Š^  Q¡× 1Ñ 1Ô 3Ü"¤>°4¸±7Ó;ˆOØ"×*Ñ*¨2Ó.Ð.Ü�D˜‘GœY×?Ñ?Ô@Ü"×(Ñ(¨¬R°°Q±×0BÑ0BÓ-CÓDÐDÜ�‹Y˜!‹^Ø�q‘'ˆCÜØä×6Ñ6Ü×7Ñ7ðôð —:’:Ü! #¤y×'IÑ'IÔJÜ% c§j¡j×&;Ñ&;¼L×<TÑ<TÓ&UÕVä% c§j¡j×&;Ñ&;¼L×<QÑ<QÓ&RÔSØ×7Ñ7Ó9ˆHØœ~Ñ-Ü&×,Ñ,¨R´°H³Ó>Ð>Ü!¤" S£'Ó*Ð*äØ4Ü˜D›	ØSÐTXÐSYÐZð8ðô '×2Ñ2ðö		rw   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÷  )rs   r»   ré   s      ru   Úcall_deepcopyzBuiltinVariable.call_deepcopy]  s4   € ô 	Ø%Ø$ Q C qÐ)ØAà/ðä"×.Ñ.ðö		
rw   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)Nr8   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 ú.r^  )r_  r=  r  rÀ  rá   r›   rŠ  Úis_notrÒ  r´  r*   rÉ  r  r<   rÌ   r   rx   r   r÷  rÖ   rT   Úsizer“   Úbroadcast_shapesÚRuntimeErrorr—  r`  ra  rÈ   )
rs   r»   rŽ  r�  r=  rÀ  r¢   Ú	is_resultÚ
tensor_clsrZ  s
             ru   r™  z'BuiltinVariable._comparison_with_tensorj  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 )Nr8   r¿  z!unsupported SymNode comparison opr¿  r  rÀ  rÁ  z with SymNode arguments rñ  r^  r¨  )r  rÀ  rá   r   rx   r   r÷  rÖ   rS   r=   rT   r<   rÌ   rÞ   r`  ra  rÉ  r9  )rs   r»   rŽ  r�  rÀ  r¢   Únon_symnoderZ  s           ru   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ó
ˆô ×%Ñ%ØØØô
ð 	
rw   c           
      ól  — t        |t        «      rt        |t        «      ry |j                  «       r^|j                  «       rNt        j                  | |j
                  j                  dt        j                  gt        ||gi «      ¢­Ž d ¬«      S t        |t        «      r|j                  |d|gi «      S y )Nr^  r¨  rE  )rÖ   r=   Úis_symnode_likerS   r9  r`  ra  r›   r
  r2   re   rT  r4  s       ru   Úcall_xorzBuiltinVariable.call_xorÅ  s¥   € ô �aÔ)Ô*¬z¸!Ô=MÔ/NØØ×ÑÔ 1×#4Ñ#4Ô#6Ü"×)Ñ)ØØ&�—	‘	×&Ñ&Ø#¤X§\¡\ðÜ4EÀqÈ!ÀfÈbÓ4Qòð ôð ô �aÔ-Ô.Ø—=‘=  Y°°°RÓ8Ð8Ørw   c                 óN   — t        |t        «      r|j                  |d|gi «      S y )NrG  ©rÖ   re   rT  r4  s       ru   Ú	call_ixorzBuiltinVariable.call_ixorØ  ó)   € ô �aÔ-Ô.Ø—=‘=  Z°!°°bÓ9Ð9Ørw   c                 óN   — t        |t        «      r|j                  |d|gi «      S y )Nr-  rÏ  r4  s       ru   Úcall_subzBuiltinVariable.call_subß  s)   € ô �aÔ-Ô.Ø—=‘=  Y°°°RÓ8Ð8Ørw   c                 óN   — t        |t        «      r|j                  |d|gi «      S y )Nr/  rÏ  r4  s       ru   Ú	call_isubzBuiltinVariable.call_isubæ  rÑ  rw   c           
      ól  — t        |t        «      rt        |t        «      ry |j                  «       r^|j                  «       rNt        j                  | |j
                  j                  dt        j                  gt        ||gi «      ¢­Ž d ¬«      S t        |t        «      r|j                  |d|gi «      S y )Nr^  r¨  Ú__and__)rÖ   r=   rÌ  rS   r9  r`  ra  r›   r  r2   re   rT  r4  s       ru   Ú	call_and_zBuiltinVariable.call_and_í  s¥   € ô �aÔ)Ô*¬z¸!Ô=MÔ/NØØ×ÑÔ 1×#4Ñ#4Ô#6Ü"×)Ñ)ØØ&�—	‘	×&Ñ&Ø#¤X§]¡]ðÜ5FÈÈ1ÀvÈrÓ5Ròð ôð ô �aÔ-Ô.Ø—=‘=  Y°°°RÓ8Ð8àrw   c           
      ól  — t        |t        «      rt        |t        «      ry |j                  «       r^|j                  «       rNt        j                  | |j
                  j                  dt        j                  gt        ||gi «      ¢­Ž d ¬«      S t        |t        «      r|j                  |d|gi «      S y )Nr^  r¨  Ú__iand__)rÖ   r=   rÌ  rS   r9  r`  ra  r›   r  r2   re   rT  r4  s       ru   Ú	call_iandzBuiltinVariable.call_iand   s¥   € ô �aÔ)Ô*¬z¸!Ô=MÔ/NØØ×ÑÔ 1×#4Ñ#4Ô#6Ü"×)Ñ)ØØ&�—	‘	×&Ñ&Ø#¤X§]¡]ðÜ5FÈÈ1ÀvÈrÓ5Ròð ôð ô �aÔ-Ô.Ø—=‘=  Z°!°°bÓ9Ð9Ørw   c           
      óh  — t        |t        «      rt        |t        «      ry 	 |j                  «       }|j                  «       }t        |t        «      r)t        |t        «      rt	        j
                  |||z  «      S |j                  «       r^|j                  «       rNt        j                  | |j                  j                  dt        j                  gt        ||gi «      ¢­Ž d ¬«      S t        |g t        ¢t         ‘t"        ‘t$        ‘­«      r|j'                  |d|gi «      S y # t        $ r Y Œ´w xY w)Nr^  r¨  Ú__or__)rÖ   r=   r¶   rÈ   r<   rÌ   rW  rÌ  rS   r9  r`  ra  r›   r	  r2   re   r?   rV   rW   rT  )rs   r»   rQ  rR  Úa_constÚb_consts         ru   Úcall_or_zBuiltinVariable.call_or_  s4  € ô �aÔ)Ô*¬z¸!Ô=MÔ/NØð	Ø×*Ñ*Ó,ˆGØ×*Ñ*Ó,ˆGÜ˜'¤4Ô(¬Z¸ÄÔ-FÜ&×,Ñ,¨R°¸7Ñ1BÓCÐCð ×ÑÔ 1×#4Ñ#4Ô#6Ü"×)Ñ)ØØ&�—	‘	×&Ñ&Ø#¤X§\¡\ðÜ4EÀqÈ!ÀfÈbÓ4Qòð ôð ô ØðÜ%ðä!ðô 'ðô (ñ	ô
ð —=‘=  X°¨s°BÓ7Ð7ð øô7 #ò 	Ùð	ús   £AD% Ä%	D1Ä0D1c           
      óŠ  — t        |t        «      rt        |t        «      ry |j                  «       r^|j                  «       rNt        j                  | |j
                  j                  dt        j                  gt        ||gi «      ¢­Ž d ¬«      S t        |g t        ¢t        ‘t        ‘­«      r|j                  |d|gi «      S y )Nr^  r¨  Ú__ior__)rÖ   r=   rÌ  rS   r9  r`  ra  r›   r  r2   re   r?   rV   rT  r4  s       ru   Úcall_iorzBuiltinVariable.call_ior?  sÈ   € ô �aÔ)Ô*¬z¸!Ô=MÔ/NØØ×ÑÔ 1×#4Ñ#4Ô#6Ü"×)Ñ)ØØ&�—	‘	×&Ñ&Ø#¤X§\¡\ðÜ4EÀqÈ!ÀfÈbÓ4Qòð ôð ô ØðÜ%ðä!ðô 'ñô
ð —=‘=  Y°°°RÓ8Ð8ð rw   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 )Nr^  r¨  r   )rÖ   rS   r9  r`  ra  r›   rý   r2   rC   Údv_dictrH   r?   rP   r<   rÌ   r’   rd  rX   r…  r©   )rs   r»   rQ  Úbool_results       ru   Ú	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àrw   c                 ó,   — |j                  |d|gi «      S )NÚ__contains__rW  r4  s       ru   Úcall_containszBuiltinVariable.call_containss  s   € ð �}‰}˜R °!°°bÓ9Ð9rw   rÔ   c                 ój   — t        |t        j                  «      xr | j                  |j                  u S rq   )rÖ   r   rà   rá   r×   s     ru   rØ   zBuiltinVariable.is_python_equalx  s'   € Ü˜%¤×!:Ñ!:Ó;ÒSÀÇÁÈ5Ï8É8Ð@SÐSrw   rÙ   rq   )wrx   ry   rz   r{   rÞ   Ú	_SENTINELr<   Ú_nonvar_fieldsrÛ   r	   r"   r³   Ústaticmethodr£  Úcacher1  r   r  rÜ   r  r(  r|   r¢  r  r}   rH  rÈ   r£  r¤  r¬  r¶  r¸  rx  r  r¹  rÚ   r¼  rÁ  r¶   rÅ  rÉ  rÂ   rÏ  rÕ  rÙ  rá  r   rå  rç  r)  r-  r/  r+  r(  r]  r^  rT  r  r‚  r…  r’  rœ  r   rž  rŸ  Úcall_minÚcall_maxr¿  rÄ  rÈ  rÌ  rÐ  rÏ  rÖ  rØ  rå  rç  rê  Ú
call_tuplerí  rï  rò  rø  rþ  r	  r  r  r+  r1  r5  r9  r;  rC  rG  rÊ   ru  r”  r—  rŸ  r¢  r¦  r«  r°  rµ  r½  r™  r–  rÍ  rÐ  rÓ  rÕ  rØ  rÛ  rà  rã  rç  rê  rØ   Ú__classcell__©r}  s   @ru   rà   rà   e  s’  ø… ññ “€Iàðà	×	'Ñ	'ð€Nð
 ð) sð )°Fð )Ð?Pò )ó ð)ð Ø‡_�_ð@ c¨(°3¸°8Ñ*<Ñ&=ò @ó ó ð@ðD:¨4ó :ð Ø‡_�_ð*  X¨c°3¨hÑ%7Ñ!8ò *ó ó ð*ðX Ø‡_�_ð#�TØ��f�Ñ˜u T¨#¡Y°¸¸f¸Ñ0EÐ%EÑFÐFñò #ó ó ð#ðJ Ø‡_�_ðK˜TØ��f�ÑØØØØ˜Ñ)Ø!ð#ñð !ð	"ññ	
ð		ñò Kó ó ðKðZ ðØ�S˜#�XÑðØ(,¨_Ñ(=ðØGKðà	ÐÑ	 $Ñ	&òó ðð5 Tó 5ñ
 ,5°d¸DÀ$Ð5GÓ+HÐ˜) C™.ÓHð˜3ð ¨#ð °$õ ð4˜#ó 4ð Có ð¨có ð"˜#õ "óJð1 ?ð 1¸oð 1ÐRVó 1ð ð °Tó ð¨$¨t©*ð ¸ó ð3Ø$ð3Ø0?ð3à	ó3ð ð
Ø�Ñ'ð
Ø15°c¸?Ð6JÑ1Kð
à	ˆt�C‰y˜$˜s C˜x™.Ð(Ñ	)ò
ó ð
ð
Ø˜_Ñ-ð
Ø7;¸CÀÐ<PÑ7Qð
à	ó
ð ðo Ø�S˜#�XÑðo Ø+/°©:ðo ØCGðo à	à#Ø�Ñ!Ø��oÐ%Ñ&ð	
ð
 	˜$Ñð	 ñ
òo ó ðo ðb4Ð3ð 4¸Cð 4ÀOó 4ð4Ø)ð4Ø2Að4à	ó4ð ð
Ð(?ð 
ÀOò 
ó ð
ð(Nà#ðNð �Ñ'ðNð �S˜/Ð)Ñ*ð	Nð
 
˜4Ñ	óNðt 	ð   Øˆf�cˆkÑØà'Ø˜Ñ)Ø�S˜/Ð)Ñ*ðð
 ðñ	
ð	ñ
"ó 
ð)à#ð)ð �Ñ'ð)ð �S˜/Ð)Ñ*ð	)ð
 
ó)ð*g;à#ðg;ð ðg;ð �?Ñ#ð	g;ð
 �S˜/Ð)Ñ*ðg;ð 
õg;ðR$Ø)ð$Ø0?ð$à	˜4Ñ	ó$ð&Ø)ð&Ø0?ð&à	˜4Ñ	ó&ð%Ø)ð%Ø0?ð%à	˜4Ñ	ó%ð3Ø)ð3Ø0?ð3à	˜4Ñ	ó3ðj?Ø)ð?Ø0?ð?à	˜4Ñ	ó?ðB
Ø)ð
Ø2Að
à	˜4Ñ	ó
ðYØ)ðYØ2:¸?Ñ2KðYà	óYðjà#ðjð ˜TÑ!ðjð ˜TÑ!ð	jð
 
˜4Ñ	ójðX €HØ€Hð	4Ø)ð	4Ø0?ð	4à	ó	4ð	4Ø)ð	4Ø0?ð	4à	ó	4ð%Ø)ð%Ø0?ð%à	ó%ð<à#ð<ð ð<ð ð	<ð
 "ð<ð 
ó<ð	Ø)ð	Ø2Að	à	˜4Ñ	ó	ð
 ?ð 
¸oð 
ÐRVó 
ð
1Ø)ð1Ø2Að1à	ó1ð


Ø)ð

Ø25ð

ØADð

à	ó

ð  '+ñ4à#ð4ð ˜tÑ#ð4ð ð	4ð
 "ð4ð 
˜4Ñ	ó4ðl
à#ð
ð ð
ð ð	
ð
 "ð
ð 
ó
ð  '+ñHà#ðHð ˜tÑ#ðHð ð	Hð
 "ðHð 
˜4Ñ	óHð* "€JðØ)ðØ0?ðà	˜4Ñ	óðB
Øð
Ø,ð
Ø8Gð
à	˜4Ñ	ó
ð
Ø)ð
Ø0?ð
à	˜4Ñ	ó
ð$
à#ð$
ð ð$
ð "ð	$
ð
 
ó$
ðL
à#ð
ð ð
ð "ð	
ð
 
ó
ð:
à#ð
ð ð
ð "ð	
ð
 
ó
ð6(à#ð(ð ð(ð "ð	(ð
 
ó(ð0à#ð0ð ð0ð "ð	0ð
 
ó0ðh.à#ðh.ð ðh.ð -ð	h.ð
 
óh.ðTNà#ðNð !ðNð "ð	Nð
 
óNð4-Ø)ð-Ø.=ð-ØBQð-à	ó-ð
Ø)ðØ2Aðà	óð Ø)ðØ0?ðØGVðà	˜4Ñ	óð#
à#ð#
ð ð#
ð ð	#
ð
 "ð#
ð 
ó#
ðJ

Ø)ð

Ø/>ð

ØETð

à	ó

ð
Ð5ð 
¸Sð 
À_ó 
ð, +/ñeKà#ðeKð ðeKð "ð	eKð
 ! 4Ñ'ðeKð 
˜4Ñ	óeKðNdà#ðdð ðdð "ð	dð
 ðdð 
˜4Ñ	ódðLBà#ðBð ðBð "ð	Bð
 
óBð:Ø)ð:Ø0?ð:à	ó:ð4Ø)ðØ0?ðà	˜4Ñ	óðà#ðð ðð "ð	ð
 
˜4Ñ	óð$Ø)ðØ.=ðà	˜4Ñ	óð&	Rà#ð	Rð (ð	Rð ð		Rð
 "ð	Rð 
ó	Rð(Ø)ð(Ø2Að(à	ó(ðT
Ø)ð
Ø.=ð
à	ó
ð5
Ø)ð5
Ø1@ð5
ØIXð5
à	ó5
ðn"
Ø)ð"
Ø1@ð"
ØIXð"
à	ó"
ðHØ)ðØ.=ðØBQðà	˜4Ñ	óð&Ø)ðØ.=ðØBQðà	˜4Ñ	óðØ)ðØ.=ðØBQðà	˜4Ñ	óðØ)ðØ.=ðØBQðà	˜4Ñ	óðØ)ðØ.=ðØBQðà	˜4Ñ	óð&Ø)ðØ.=ðØBQðà	˜4Ñ	óð$+Ø)ð+Ø.=ð+ØBQð+à	˜4Ñ	ó+ðZØ)ðØ.=ðØBQðà	˜4Ñ	óð:Ø)ðØ.=ðà	˜4Ñ	óð.:Ø)ð:Ø.=ð:ØBQð:à	ó:ð
T Vð T°÷ Trw   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©   ro   rh   Nc                 ó8   •— |t         u sJ ‚t        ‰| �  di |¤Ž y ©Nrr   )r|   r»  r¼  ©rs   r©   ro   r}  s      €ru   r¼  zDictBuiltinVariable.__init__�  ó   ø€ Øœ‰}Ðˆ}Ü‰ÑÑ"˜6Ó"rw   c                  ó   — y)NzDictBuiltinVariable()rr   rµ   s    ru   rÁ  zDictBuiltinVariable.__repr__…  ó   € Ø&rw   r»   r[   rn   c                 ó>   — t        j                  |t        g|¢­i |¤ŽS rq   )rö  Úcall_custom_dictr|   )rs   r»   rn   ro   s       ru   r^  z!DictBuiltinVariable.call_functionˆ  s!   € ô #×3Ñ3°B¼ÐN¸tÒNÀvÑNÐNrw   rÁ   c                 ó„  •— |dk(  rlt        |«      dk(  r^|s\t        i t        t        «       ¬«      }t	        |d   t
        «      r|S |j                  j                  j                  | |d   |dd  «      S |dk(  rt        j                  |t        g|¢­i |¤ŽS t        t        |d «      }|�‡|t        v rt	        |d   t        j                  «      r5|d   j                  €J ‚|d   j                  j                  |||dd  |«      S t	        |d   t        «      r|d   j                  |||dd  |«      S t         ‰| �=  ||||«      S )Nr\   r8   rm  r   Úfromkeys)r’   r?   r|   r;   rÖ   rö  r`  rs  rs  Úcall_custom_dict_fromkeysrÆ   r)   r   rW   rw  rT  r»  )rs   r»   rÁ   rn   ro   Údict_vtr|  r}  s          €ru   rT  zDictBuiltinVariable.call_method�  sT  ø€ ð �9ÒÜ�4‹y˜AŠ~¡fÜ+¨B´ÔDTÓDVÔW�Ü˜d 1™gÔ':Ô;Ø"�NØ—y‘y×-Ñ-×KÑKØ˜$˜q™' 4¨¨ 8óð ð �:ÒÜ&×@Ñ@Ø”DðØòØ#)ñð ô œd D¨$Ó/ˆØÐ" {´lÑ'BÜ˜$˜q™'¤9×#DÑ#DÔEØ˜A‘w×'Ñ'Ð3Ð3Ð3Ø˜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Ó:Ð:rw   Úuser_clsc                ó°   — t        |«      }| j                  t        j                  | t        j
                  «      t        j                  | |«      g|¢|«      S rq   )r  r‡  r<   rÌ   r   Úconstruct_dict)r»   r  rn   ro   Ú	args_lists        ru   rþ  z$DictBuiltinVariable.call_custom_dict¯  sQ   € ô ˜“Jˆ	Ø×-Ñ-Ü×!Ñ! "¤i×&>Ñ&>Ó?Ü×"Ñ" 2 xÓ0Ð=°9Ð=Øó
ð 	
rw   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�«       |\  }}|t        urt        nt        }t        |t         «      rJ|D �cg c]  }t        j                  | |«      ‘Œ }} |t         j                  ||«      |t!        «       ¬«      S |j#                  | «      rJ|j%                  | «      }	t'        d„ |	D «       «      r' |t         j                  |	|«      |t!        «       ¬«      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ñ  r8   r©   z	.fromkeysz1 args and 1 kwargs (`value`)z
 args and r  r   zat least 1 argsz argsr   z2 argsrm  c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wrq   rD   rk  s     ru   rê   z@DictBuiltinVariable.call_custom_dict_fromkeys.<locals>.<genexpr>þ  s   è ø€ Ò0 a”;˜q—>Ñ0ùrb  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   rx   r’   r3   r  r=   r9  r?   r@   rÖ   r<   rÌ   r   r;   rt  ru  rì   )
r»   r  rn   ro   rÔ  r©   ÚDictVariableTyperã  Úarg_listÚkeyss
             ru   r  z-DictBuiltinVariable.call_custom_dict_fromkeys¾  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à!)´Ñ!<ÕÔBUð 	ô �cœ4Ô Ø>AÖB¸œ×-Ñ-¨b°!Õ4ÐBˆHÐBÙ#Ü—‘˜h¨Ó.ØÜ.Ó0ôð ð
 ×.Ñ.¨rÔ2Ø×0Ñ0°Ó4ˆDÜÑ0¨4Ô0Ô0Ù'Ü—M‘M $¨Ó.ØÜ"2Ó"4ôð ô 	Ø4Ø×(Ñ(Ð)¨°t°f¸A¸f¸XÐFØ)¨(×*;Ñ*;Ð)<ð =0ð 0ð ;Ø/ðö
	
ùò Cs   ÆI$)rx   ry   rz   r{   r|   r¨   rÈ   r	   r¼  r}   rÁ  r   r<   r^  r  rT  rî  rþ  r  ró  rô  s   @ru   rö  rö  |  sB  ø„ Ù>à
€Cà%)ñ #˜dð #°Sð #¸Tõ #ð'˜#ó 'ðOà#ðOð �Ñ'ðOð �S˜/Ð)Ñ*ð	Oð
 
óOð;à#ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
õ;ð> ð
Ø#ð
àð
ð ð	
ð
 "ð
ð 
ò
ó ð
ð ðP
Ø#ðP
àðP
ð ð	P
ð
 "ðP
ð 
òP
ó ôP
rw   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©   ro   rh   Nc                 ó8   •— |t         u sJ ‚t        ‰| �  di |¤Ž y rø  )r  r»  r¼  rù  s      €ru   r¼  zIterBuiltinVariable.__init__  rú  rw   c                  ó   — y)NzIterBuiltinVariable()rr   rµ   s    ru   rÁ  zIterBuiltinVariable.__repr__  rü  rw   r»   r[   rn   c                 óB  — |st        dddg t        j                  ¢¬«       |^}}|sŸ|s�t        |t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        f	«      r|j                  |dg i «      S t	        j                  t         j"                  j$                  «      j'                  ||g|¢i «      }|rt	        j(                  |«      }|S )Nziter() with no argumentsziter()z%iter() requires at least one argumentrñ  rõ  )r   r   r—  rÖ   r   rH   rI   rÚ  r?   rL  rT   rL   rŒ  rC   rT  r–  r   rÌ  Úiter_r^  ÚObjectIteratorVariable)rs   r»   rn   ro   rî  ÚrestÚrets          ru   r^  z!IterBuiltinVariable.call_function  s   € ñ ÜØ2Ø ØCØ5Ô)×4Ñ4Ð5õ	ð ˆ
ˆˆdñ
 ÙÜØä×*Ñ*Ü×+Ñ+Ü×.Ñ.Ü×/Ñ/Ü×.Ñ.Ü×,Ñ,Ü×+Ñ+Ü×6Ñ6Ü$ð
ôð —?‘? 2 z°2°rÓ:Ð:ô ×,Ñ,Ü×Ñ×$Ñ$ó
ç
‰-˜˜S˜L 4˜L¨"Ó
-ð 	ñ ô ×2Ñ2°3Ó7ˆCØˆ
rw   )rx   ry   rz   r{   r  r¨   r	   r¼  r}   rÁ  r   r<   r|   r^  ró  rô  s   @ru   r  r    sn   ø„ Ù2à
€Cà$(ñ #˜cð #°Cð #¸Dõ #ð'˜#ó 'ð.à#ð.ð �Ñ'ð.ð �S˜/Ð)Ñ*ð	.ð
 
÷.rw   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ˆ xZS )ÚListBuiltinVariablez4Variable tracker for the `list` builtin constructor.r©   ro   rh   Nc                 ó8   •— |t         u sJ ‚t        ‰| �  di |¤Ž y rø  )r  r»  r¼  rù  s      €ru   r¼  zListBuiltinVariable.__init__T  rú  rw   c                  ó   — y)NzListBuiltinVariable()rr   rµ   s    ru   rÁ  zListBuiltinVariable.__repr__X  rü  rw   r»   r[   rn   c                 óø  — ddl m} |r|d   nd }t        |t        j                  t        j
                  f«      st        ||«      r>|j                  |«      r-t        t        |j                  |«      «      t        «       ¬«      S |€t        g t        «       ¬«      S |j                  |«      �r�|j                  �rGt        |j                  «      �s1t        |t        «      r3t        |j                  j!                  t"        j$                  «      «       nît        |t&        «      rEt)        |t*        t,        f«      s/|j.                  j0                  j3                  |j                  «       t        |t        j4                  «      r3t        |j                  j!                  t"        j6                  «      «       nLt        |t        j8                  «      s2t        |j                  j!                  t"        j:                  «      «       t        t        |j=                  |«      «      t        «       ¬«      S |D �cg c]  }t?        |«      j@                  ‘Œ }}tC        dd|› d�d|› �g tD        jF                  ¢¬	«       y c c}w )
Nr8   )rX   r   rm  zFailed to trace list()zlist(rÀ  zADynamo does not know how to construct a list from argument types rñ  )$r¡  rX   rÖ   r   rÚ  ré  rt  rH   r  ru  r;   rr  rª   r!   rK   r   r¯   r   rÜ  r?   r0   rP   rN   r`  rß  rº   rà  rá  râ  rã  re  rÈ   rx   r   r   r÷  )rs   r»   rn   ro   rX   rî  rQ  rÖ  s           ru   r^  z!ListBuiltinVariable.call_function[  sõ  € õ 	<áˆd�1Šg 4ˆäØ”)×,Ñ,¬i×.TÑ.TÐUô
ô �sÐ5Ô6Ø×1Ñ1°"Ô5äÜ�S×2Ñ2°2Ó6Ó7Ü.Ó0ôð ð
 ˆ;Ü Ô2BÓ2DÔEÐEà×&Ñ& rÕ*Ø�z‹zÔ"4°S·Z±ZÕ"@Ü˜cÔ#8Ô9Ü!ØŸ
™
×-Ñ-¬l×.MÑ.MÓNõô " #Ô'8Ô9Ä&ØœkÔ+<Ð=ôCð Ÿ	™	×4Ñ4×8Ñ8¸¿¹ÔDÜ! #¤y×'EÑ'EÔFÜ%ØŸJ™J×1Ñ1´,×2QÑ2QÓRõô (¨¬Y×-TÑ-TÔUÜ%ØŸJ™J×1Ñ1´,×2NÑ2NÓOôô  Ü�S×,Ñ,¨RÓ0Ó1Ü.Ó0ôð ð
 04Ö4¨!”T˜!“W×%Ó%Ð4ˆ	Ð4ÜØ,Ø˜I˜; aÐ(Ø[Ð\eÐ[fÐgØ2Ô%×1Ñ1Ð2ö		
ùò 5s   È2I7rÁ   c                 ó   •— |dk(  rgt        |«      dk(  rY|sWt        g t        «       ¬«      }t        |d   t        «      r|S |j
                  j                  j                  | |d   |dd  «      S t        ‰| �%  ||||«      S )Nr\   r8   rm  r   )
r’   rH   r;   rÖ   r  r`  rs  rs  r»  rT  )rs   r»   rÁ   rn   ro   Úlist_vtr}  s         €ru   rT  zListBuiltinVariable.call_method“  s„   ø€ ð �9ÒÜ�4‹y˜AŠ~¡fÜ& rÔ9IÓ9KÔL�Ü˜d 1™gÔ':Ô;Ø"�NØ—y‘y×-Ñ-×KÑKØ˜$˜q™' 4¨¨ 8óð ô ‰wÑ" 2 t¨T°6Ó:Ð:rw   )rx   ry   rz   r{   r  r¨   rÈ   r	   r¼  r}   rÁ  r   r<   r|   r^  rT  ró  rô  s   @ru   r  r  O  s¸   ø„ Ù>à
€Cà%)ñ #˜dð #°Sð #¸Tõ #ð'˜#ó 'ð6
à#ð6
ð �Ñ'ð6
ð �S˜/Ð)Ñ*ð	6
ð
 
ó6
ðp;à#ð;ð ð;ð �?Ñ#ð	;ð
 �S˜/Ð)Ñ*ð;ð 
÷;ñ ;rw   r  r»   c              #   ó¶   K  — ddl m} |j                  | d«      }	 |j                  | «       d –— |j	                  | «       y # |j	                  | «       w xY w­w)Nr8   )ÚGradModeVariableF)rˆ  r  r9  ÚenterÚexit)r»   r  Úgmvs      ru   r„  r„  §  sD   è ø€ å"à
×
!Ñ
! " eÓ
,€CðØ�	‰	�"ŒÛà�‰��øˆ�‰��üs   ‚AœA ±AÁAÁA)rh   N)Êr{   Ú
contextlibr£  r  rÝ  Úloggingrå   r›   r?  rm   Útypingra  Úcollectionsr   r   Úcollections.abcr   r   r   r   r	   r
   r   r“   Útorch._subclasses.meta_utilsr   Útorch.overridesr   Útorch.utils._python_dispatchr   rˆ  r   r   r   r   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   r6   r7   Úbaser9   r:   r;   r<   Úconstantr=   r>   Údictsr?   r@   rA   rB   rC   ÚhashablerE   ÚlistsrF   rG   rH   rI   rJ   rK   rL   ÚmiscrM   ÚsetsrN   rO   rP   r  rQ   rR   rS   rT   rU   r¡  rV   rW   rX   rY   Útorch._dynamo.codegenrZ   Útorch._dynamo.symbolic_convertr[   Ú	getLoggerrx   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
  rT  rÝ   rx  rÜ   rò   r`   r|   rÈ   r}   rÚ   r@  rð   r¤  r¢  r£  r&  Úcmp_eqr%  Úcmp_ner!  Úcmp_ltr$  Úcmp_ler"  Úcmp_gtr#  Úcmp_gerˆ  rœ   r˜   r™   rÿ   r—   rž   rš   rë   rû   rü   rý   r  r–   re   rf   rg   r¥   r§   rà   rö  r  r  ÚcontextmanagerÚIteratorr„  rr   rw   ru   ú<module>r>     s+  ðòó* Û Û Û Û Û Û Û 
Û Û Û ß 0ß BÓ Bß +Ñ +ã Ý 6Ý 1Ý Fç >Ó >÷÷ ñ ÷ 1Ý '÷÷ ÷÷ ÷ ÷ ÷ ó ÷,ó ÷ 7÷õ õ "÷÷ ñ õ ß IÑ I÷õ ÷ó ñ å/ÝDà€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¨&¯*©*Ð5°ÈÑ7MÐMñÐ ð �_Ñ%¨¨d°?Ñ.CÀSÐ.HÑ(IÑI€à‡K‚K�×!Ò!Ø‡K‚K�×!Ò!Ø‡K‚K�×!Ò!Ø‡K‚K�×!Ò!Ø‡K‚K�×!Ò!Ø‡K‚K�×!Ò!ðÐ ð ‡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ó>EôB1
˜/ô 1
ôhT,TÐ)ô T,TônXS
Ð-ô S
ôl:Ð-ô :ôzT;Ð-ô T;ðp ×ÒðÐ3ð ¸¿ºÈÑ8Mò ó ñrw   