§
    ž²Åj}ý  ã                   óæ  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
mZmZmZmZ d dlZd dlmZ d dlmc mZ ddlmZmZ ddlmZmZ ddlmZ ddl m!Z! ddl"m#Z#m$Z$ dd	l%m&Z& dd
l'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z- ddlm.Z.m/Z/m0Z0m1Z1m2Z2 ddl3m4Z4 ddl5m6Z6m7Z7m8Z8m9Z9 ddl:m;Z; ddl<m=Z=m>Z>m?Z? erd dl@mAZA  G d„ d¦  «        ZB G d„ de4¦  «        ZC G d„ de4¦  «        ZD G d„ de4¦  «        ZE G d„ deE¦  «        ZF G d„ de4¦  «        ZG G d„ de4¦  «        ZH G d „ d!e4¦  «        ZI G d"„ d#e4¦  «        ZJ G d$„ d%e4¦  «        ZK G d&„ d'e4¦  «        ZLd(„ ZM G d)„ d*e4¦  «        ZNejO         G d+„ d,¦  «        ¦   «         ZP G d-„ d.e?¦  «        ZQ G d/„ d0e?¦  «        ZR G d1„ d2e4¦  «        ZS G d3„ d4e4¦  «        ZT G d5„ d6e4¦  «        ZU G d7„ d8e4¦  «        ZV G d9„ d:e4¦  «        ZW G d;„ d<e4¦  «        ZX ejY        d¬=¦  «        d>„ ¦   «         ZZ G d?„ d@e4¦  «        Z[ G dA„ dBe4¦  «        Z\ G dC„ dDe4¦  «        Z] G dE„ dFe4¦  «        Z^ G dG„ dHe4¦  «        Z_ G dI„ dJe4¦  «        Z` G dK„ dLe4¦  «        Za G dM„ dNea¦  «        Zb G dO„ dPea¦  «        Zc G dQ„ dRea¦  «        Zd G dS„ dTea¦  «        Ze G dU„ dVea¦  «        Zfejg        eeejh        eeeji        efiZj G dW„ dXe4¦  «        Zk G dY„ dZe4¦  «        Zl G d[„ d\e4¦  «        ZmdS )]é    N)ÚDictÚListÚOptionalÚTYPE_CHECKINGé   )ÚconfigÚ	variables)Úcreate_call_functionÚcreate_instruction)Ú$do_not_convert_to_tracable_parameter©Úunimplemented)ÚGuardBuilderÚinstall_guard)Úunpatched_nn_module_init)Ú
AttrSourceÚDefaultsSourceÚGetItemSourceÚODictGetItemSourceÚ
TypeSourceÚWeakRefCallSource)Úcheck_unspec_or_constant_argsÚidentityÚis_tensor_base_attr_getterÚproxy_args_kwargsÚset_example_valueé   )ÚVariableTracker)ÚNestedUserFunctionVariableÚUserFunctionVariableÚUserMethodVariableÚwrap_bound_arg)ÚUnspecializedNNModuleVariable)Úcall_random_fnÚis_standard_setattrÚUserDefinedObjectVariable)ÚInstructionTranslatorc                   ó   — e Zd ZdS )ÚNO_SUCH_SUBOBJN)Ú__name__Ú
__module__Ú__qualname__© ó    úMC:\Projects\Historical\venv\Lib\site-packages\torch/_dynamo/variables/misc.pyr)   r)   6   s   € € € € € Ø€Dr.   r)   c                   óv   ‡ — e Zd Zh ej        £Zddˆ fd„Zˆ fd„Zdˆ fd„Zdddedd	fd
„Z		 	 	 	 	 	 dˆ fd„Z
ˆ xZS )ÚSuperVariableNÚreturnc                 óV   •—  t          ¦   «         j        di |¤Ž || _        || _        d S ©Nr-   )ÚsuperÚ__init__ÚtypevarÚobjvar)Úselfr7   r8   ÚkwargsÚ	__class__s       €r/   r6   zSuperVariable.__init__?   s6   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ð ˆŒð
 ˆŒˆˆr.   c                 ó  •‡— ‰                      ˆˆfd„¦  «          ‰| j        ¦  «         | j        �5 ‰| j        ¦  «         ‰                     t	          dd¦  «        ¦  «         d S ‰                     t	          dd¦  «        ¦  «         d S )Nc                  óH   •—  ‰t          j        t          ¦  «        ¦  «        S ©N)r	   ÚBuiltinVariabler5   )r;   Úcodegens   €€r/   ú<lambda>z+SuperVariable.reconstruct.<locals>.<lambda>L   s   ø€  g g­iÔ.GÍÑ.NÔ.NÑ&OÔ&O€ r.   r   Fr   )Úadd_push_nullr7   r8   Úextend_outputr
   )r9   r@   r;   s    `€r/   ÚreconstructzSuperVariable.reconstructK   s›   øø€ Ø×ÒÐOÐOÐOÐOÐOÑPÔPÐPØˆ�”ÑÔÐØŒ;Ð"ØˆG�D”KÑ Ô Ð Ø×!Ò!Õ"6°q¸%Ñ"@Ô"@ÑAÔAÐAÐAÐAà×!Ò!Õ"6°q¸%Ñ"@Ô"@ÑAÔAÐAÐAÐAr.   Útxr'   c           	      ó  •— | j         s
J d¦   «         ‚| j                             ¦   «         }| j                              ¦   «         }| j         j        rt          | j         j        ¦  «        nd }t          |t          ¦  «        r| j         j        }| j         j        }d }d }d }|j	        }		 |	 
                    |¦  «        dz   }
n0# t          $ r# t          t          ||¦  «        |¦  «        d fcY S w xY wt          |
t          |	¦  «        ¦  «        D ]g}|	|         j                             |t$          ¦  «        x}r=|t$          ur4|r,t'          t)          t'          |d¦  «        |¦  «        |¦  «        }||fc S Œht+          d¦  «         d S )Nz1-arg super not implementedr   Ú__mro__zUnable to resolve super getattr)r8   r7   Úas_python_constantÚpython_typeÚsourcer   Ú
issubclassÚtypeÚvaluerG   ÚindexÚ
ValueErrorÚgetattrr5   ÚrangeÚlenÚ__dict__Úgetr)   r   r   r   )r9   rE   ÚnameÚsearch_typeÚtype_to_useÚtype_to_use_sourcerJ   Úresolved_classÚresolved_attrÚ
search_mroÚstart_indexrN   Úresolved_getattrr;   s                €r/   Ú_resolved_getattr_and_sourcez*SuperVariable._resolved_getattr_and_sourceT   s¿  ø€ ØŒ{Ð9Ð9Ð9Ñ9Ô9ˆ{Ø”l×5Ò5Ñ7Ô7ˆð ”k×-Ò-Ñ/Ô/ˆà.2¬kÔ.@ÐJ�J�t”{Ô)Ñ*Ô*Ð*Àdð 	õ �k¥4Ñ(Ô(ð 	4Øœ+Ô+ˆKØ!%¤Ô!3ÐàˆØˆØˆØ Ô(ˆ
ð	HØ$×*Ò*¨;Ñ7Ô7¸!Ñ;ˆKˆKøÝð 	Hð 	Hð 	Hõ �5 ¨kÑ:Ô:¸DÑAÔAÀ4ÐGÐGÐGÐGð	Høøøõ ˜;­¨J©¬Ñ8Ô8ð 	4ð 	4ˆEà#-¨eÔ#4Ô#=×#AÒ#AÀ$ÍÑ#WÔ#WÐWÐð 
4Ø#­>Ð9Ð9à)ð Ý!+Ý)Ý *Ð+=¸yÑ IÔ IÈ5ñô ð !ñ	"ô "˜ð ,¨VÐ3Ð3Ð3Ð3øåÐ7Ñ8Ô8Ð8Ð8Ð8s   Â'C  Ã *C-Ã,C-rU   r   c                 ó0  — |                       | |¦  «        \  }}t          j                             |¦  «        st	          | |¦  «        S |r,t          |                     t          j        ¦  «        ¦  «         t          j         	                    ||¬¦  «        S )N©rJ   )
r^   r	   ÚConstantVariableÚ
is_literalÚGetAttrVariabler   Ú
make_guardr   ÚCONSTANT_MATCHÚcreate)r9   rE   rU   rM   rJ   s        r/   Úvar_getattrzSuperVariable.var_getattr…   sŠ   € ð ×9Ò9¸$ÀÑEÔE‰ˆˆvÝÔ)×4Ò4°UÑ;Ô;ð 	/Ý" 4¨Ñ.Ô.Ð.Øð 	JÝ˜&×+Ò+­LÔ,GÑHÔHÑIÔIÐIÝÔ)×0Ò0°¸vÐ0ÑFÔFÐFr.   ÚargsúList[VariableTracker]r:   úDict[str, VariableTracker]c                 ó~  •— |                       | |¦  «        \  }}|t          j        u rt          t          ¦  «        S |t
          j        j        j        u r²| j        }ddl	m
} t          |t          j        ¦  «        rzt          |j        |¦  «        re|sc|sat          ¦   «         5  t          j        t"          |¬¦  «                             || j        g|z   |¦  «        cd d d ¦  «         S # 1 swxY w Y   �nµt'          d¦  «         �n¤| j        j        r2|t          j        u r$|j        j	                             | j        ¦  «        S t          |t0          ¦  «        rOt          |j        t4          j        ¦  «        r0t          j        |j        |¬¦  «                             |||¦  «        S t          |t8          ¦  «        rUt          |j        t4          j        ¦  «        r6t          j        |j        | j        |¬¦  «                             |||¦  «        S t          |t4          j        ¦  «        r4t          j        ||¬¦  «                             || j        g|z   |¦  «        S t          |t4          j        ¦  «        r6t          j        |j        | j        |¬¦  «                             |||¦  «        S |t>          j         j!        u rßt          | j        t          j        ¦  «        rÀ| j        j        r´tE          |¦  «        dk    r¡tE          |¦  «        dk    rŽ|d          #                    ¦   «         rt|d          $                    ¦   «         }	t>          j          !                    | j        j%        |	¦  «        }
tM          | j        j        |	¦  «        }tO          j(        ||
|¦  «        S |t>          j         j)        t          j*        fv rkt          | j        t          j+        ¦  «        rL|stE          |¦  «        dk    sJ ‚tY          t          j+        | j        ¦  «         -                    |d||¦  «        S |t>          j         j!        u rTt          | j        t          j+        ¦  «        r5tY          t          j+        | j        ¦  «         -                    |d||¦  «        S t]          |¦  «        r0t          | j        t          ¦  «        r | j        j/        |g|¢R i |¤ŽS |t          j0        u rÊ|d         }	 | $                    ¦   «         }n"# tb          $ r t'          d	|› �¦  «         Y nw xY w|j        j	         2                    | j        ¦  «        st'          d
| j        › d|› d�¦  «         |j        j	         3                    | j        |t          j4        ¦   «         ¦  «         t          j5        d ¦  «        S t'          d|› �¦  «         d S )Nr   )ÚAttributeMutationNewr`   zsuper() nn.Module.__init__r   r   Ú__setitem__Ú__getitem__znon-const delattr attr: zdelattr(ú, z, ...)znon-function or method super: )6r^   Úobjectr6   ÚLambdaVariabler   ÚtorchÚnnÚModuler8   Úside_effectsrl   Ú
isinstancer	   r&   Úmutation_typer   r    r   Úcall_functionr   rJ   Ú__new__ÚoutputÚ(track_object_new_from_user_defined_classÚstaticmethodÚ__func__ÚtypesÚFunctionTypeÚclassmethodr!   Ú
MethodTypeÚcollectionsÚOrderedDictrn   rR   Úis_python_constantrH   rM   r   r   Úbuildrm   Ú__setattr__ÚCustomizedDictVariabler5   Úcall_methodr%   Úmethod_setattr_standardÚ__delattr__ÚNotImplementedErrorÚis_attribute_mutationÚ
store_attrÚDeletedVariablera   )r9   rE   rU   rh   r:   Úinner_fnrJ   r8   rl   ÚkeyrM   Úattrr;   s               €r/   rˆ   zSuperVariable.call_method•   s(  ø€ ð  ×<Ò<¸TÀ4ÑHÔHÑˆ�&Ø•v”Ð&Ð&Ý!¥(Ñ+Ô+Ð+Ø�œœÔ1Ð1Ð1Ø”[ˆFØ;Ð;Ð;Ð;Ð;Ð;õ ˜6¥9Ô#FÑGÔGð
<å˜vÔ3Ð5IÑJÔJð
<ð ð
<ð "(ð
<õ
 :Ñ;Ô;ð Fð FÝ$Ô9Ý0¸ðñ ô ç#’m B¨¬¨¸Ñ(<¸fÑEÔEðFð Fð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fñ Fõ
 Ð:Ñ;Ô;Ð;Ñ;ØŒ[Ôð B	4 Hµ´Ð$>Ð$>Ø”9Ô)×RÒRØ”ñô ð õ ˜¥,Ñ/Ô/ð >	4µJØÔ�uÔ1ñ5
ô 5
ð >	4õ Ô1ØÔ!¨&ðñ ô çŠm˜B  fÑ-Ô-ð.õ ˜¥+Ñ.Ô.ð 8	4µ:ØÔ�uÔ1ñ4
ô 4
ð 8	4õ Ô/ØÔ! 4¤;°vðñ ô çŠm˜B  fÑ-Ô-ð.õ ˜¥%Ô"4Ñ5Ô5ð 2	4ÝÔ1Ø ðñ ô çŠm˜B ¤ °Ñ 4°fÑ=Ô=ð>õ ˜¥%Ô"2Ñ3Ô3ð .	4ÝÔ/ØÔ! 4¤;°vðñ ô çŠm˜B  fÑ-Ô-ð.ð �Ô/Ô;Ð;Ð;Ý˜4œ;­	Ô(KÑLÔLð <à”Ô"ð <õ �D‘	”	˜Q’�Ý�F‘”˜qÒ Ð Ø�Q”×*Ò*Ñ,Ô,ð !ð �q”'×,Ò,Ñ.Ô.ˆCÝÔ+×7Ò7¸¼Ô8IÈ3ÑOÔOˆEÝ'¨¬Ô(:¸CÑ@Ô@ˆFÝ"Ô(¨¨U°FÑ;Ô;Ð;ØÝÔ#Ô/ÝÔð
ð 
ð 
õ ˜œ¥iÔ&FÑGÔGð
ð Ð0¥# d¡)¤)¨q¢. . .Ð0Ý�Ô9¸4¼;ÑGÔG×SÒSØ�M 4¨ñô ð ð �Ô0Ô<Ð<Ð<ÅØŒK�Ô9ñB
ô B
Ð<õ �Ô9¸4¼;ÑGÔG×SÒSØ�M 4¨ñô ð õ ! Ñ*Ô*ð 	4­zØŒKÕ2ñ0
ô 0
ð 	4ð 7�4”;Ô6°rÐK¸DÐKÐKÐKÀFÐKÐKÐKØ�Ô+Ð+Ð+Ø˜”7ˆDðAØ×.Ò.Ñ0Ô0��øÝ&ð Að Að AÝÐ?¸Ð?Ð?Ñ@Ô@Ð@Ð@Ð@ðAøøøà”9Ô)×?Ò?ÀÄÑLÔLð FÝÐD¨¬ÐDÐD¸ÐDÐDÐDÑEÔEÐEàŒIÔ"×-Ò-Ø”˜T¥9Ô#<Ñ#>Ô#>ñô ð õ Ô-¨dÑ3Ô3Ð3åÐA°xÐAÐAÑBÔBÐBÐBÐBs$   Â#9C)Ã)C-Ã0C-Ó*S? Ó?TÔTr>   ©r2   N©rE   r'   ©rh   ri   r:   rj   r2   r   )r*   r+   r,   r   Ú_nonvar_fieldsr6   rD   r^   Ústrrg   rˆ   Ú__classcell__©r;   s   @r/   r1   r1   :   s  ø€ € € € € ðØ	Ô	'ð€Nð
ð 
ð 
ð 
ð 
ð 
ð 
ðBð Bð Bð Bð Bð/9ð /9ð /9ð /9ð /9ð /9ðbGÐ5ð G¸Sð GÐEVð Gð Gð Gð Gð ]Cð &ð	]Cð
 -ð]Cð 
ð]Cð ]Cð ]Cð ]Cð ]Cð ]Cð ]Cð ]Cð ]Cð ]Cr.   r1   c                   ó&   ‡ — e Zd Zdˆ fd„Zd„ Zˆ xZS )ÚExceptionVariabler2   Nc                 óV   •—  t          ¦   «         j        di |¤Ž || _        || _        d S r4   )r5   r6   Úexc_typerh   )r9   rœ   rh   r:   r;   s       €r/   r6   zExceptionVariable.__init__ö   s2   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ø ˆŒØˆŒ	ˆ	ˆ	r.   c                 óÀ   ‡ ‡— ‰                      ˆˆ fd„¦  «         ‰                     ‰ j        ¦  «         ‰                     t	          ‰ j        ¦  «        d¦  «         d S )Nc                  óD   •— ‰                       d‰j        j        ¦  «        S )NÚbuiltins)Úload_import_fromrœ   r*   ©r@   r9   s   €€r/   rA   z/ExceptionVariable.reconstruct.<locals>.<lambda>ý   s   ø€ �G×,Ò,¨Z¸¼Ô9OÑPÔP€ r.   F)rB   Úforeachrh   rx   rR   ©r9   r@   s   ``r/   rD   zExceptionVariable.reconstructû   se   øø€ Ø×ÒØPÐPÐPÐPÐPñ	
ô 	
ð 	
ð 	�Š˜œ	Ñ"Ô"Ð"Ø×Ò�c $¤)™nœn¨eÑ4Ô4Ð4Ð4Ð4r.   r’   )r*   r+   r,   r6   rD   r—   r˜   s   @r/   rš   rš   õ   sL   ø€ € € € € ðð ð ð ð ð ð
5ð 5ð 5ð 5ð 5ð 5ð 5r.   rš   c                   ó   — e Zd ZdZdS )ÚUnknownVariablez
    It could be anything!
    N©r*   r+   r,   Ú__doc__r-   r.   r/   r¥   r¥     ó   € € € € € ðð ð ð r.   r¥   c                   ó   — e Zd ZdZdS )ÚDelayGraphBreakVariablez^
    Used to insert a dummy variable in the stack to do the graph break at CALL_FUNCTION.
    Nr¦   r-   r.   r/   rª   rª   	  r¨   r.   rª   c                   óD   — e Zd ZdZd„ Zdddeddfd„Z	 	 	 	 	 	 	 	 dd„ZdS )ÚComptimeVariableza
    This variable is special, it lets you execute arbitrary code at
    Dynamo compile time
    c                 ó    — t          d¦  «        ‚)Nzcomptime is special form)r‹   r£   s     r/   rD   zComptimeVariable.reconstruct  s   € Ý!Ð"<Ñ=Ô=Ð=r.   rE   r'   rU   r2   r   c                 óv   — ddl m } ddlm}  |t          ||¦  «        t	          | j        |¦  «        ¬¦  «        S )Nr   )Úcomptimer   )r    r`   )r¯   Ú	functionsr    rP   r   rJ   )r9   rE   rU   r¯   r    s        r/   rg   zComptimeVariable.var_getattr  s]   € Ø'Ð'Ð'Ð'Ð'Ð'ð 	4Ð3Ð3Ð3Ð3Ð3à#Ð#Ý�H˜dÑ#Ô#­J°t´{ÀDÑ,IÔ,Ið
ñ 
ô 
ð 	
r.   rh   ri   r:   rj   c                 óš  — ddl m} |rJ ‚t          |¦  «        dk    sJ ‚|d         }t          |t          ¦  «        r' |                     ¦   «          ||¦  «        ¦  «         nÊt          |t          ¦  «        r–|                     ¦   «         }|j        rJ d|j	        › �¦   «         ‚t          j        ||j        |j                             ¦   «         |j        rt!          |j        j        ¦  «        nd d¦  «        } | ||¦  «        ¦  «         nt%          dt'          |¦  «        › �¦  «        ‚t(          j                             d ¦  «        S )Nr   )ÚComptimeContextr   zOcomptime function must not have free variables, but these variables were free: r-   z"unsupported argument to comptime: )r¯   r²   rR   rv   r    Úget_functionr   Úget_codeÚclosureÚco_freevarsr~   r   Ú	f_globalsÚfn_namerH   ÚdefaultsÚtupleÚitemsÚRuntimeErrorrL   r	   ra   rf   )r9   rE   rh   r:   r²   ÚfnÚcodeÚfuncs           r/   rx   zComptimeVariable.call_function"  so  € ð 	/Ð.Ð.Ð.Ð.Ð.ð ÐÐˆzå�4‰yŒy˜AŠ~ˆ~ˆ~ˆ~Ø�!ŒWˆÝ�bÕ.Ñ/Ô/ð 	PØˆB�OŠOÑÔ˜o˜o¨bÑ1Ô1Ñ2Ô2Ð2Ð2Ý˜Õ6Ñ7Ô7ð 	Pà—;’;‘=”=ˆDØ”zð ð ðEØ26Ô2BðEð Eñô �>õ Ô%ØØ”Ø”
×-Ò-Ñ/Ô/Ø,.¬KÐA•�b”kÔ'Ñ(Ô(Ð(¸Tð ñô ˆDð ˆD�� Ñ$Ô$Ñ%Ô%Ð%Ð%åÐNÅDÈÁHÄHÐNÐNÑOÔOÐOåÔ)×0Ò0°Ñ6Ô6Ð6r.   N©rE   r'   rh   ri   r:   rj   r2   r   )r*   r+   r,   r§   rD   r–   rg   rx   r-   r.   r/   r¬   r¬     s’   € € € € € ðð ð
>ð >ð >ð
Ð5ð 
¸Sð 
ÐEVð 
ð 
ð 
ð 
ð'7à#ð'7ð &ð'7ð -ð	'7ð
 
ð'7ð '7ð '7ð '7ð '7ð '7r.   r¬   c                   ój   ‡ — e Zd ZU ee         ed<   dZee         ed<   	 ddee         ddfˆ fd„Zˆ xZ	S )ÚCellVariableÚpre_existing_contentsNÚ
local_namer2   c                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S r4   )r5   r6   rÃ   )r9   rÃ   r:   r;   s      €r/   r6   zCellVariable.__init__Y  s0   ø€ ð 	�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ø%:ˆÔ"Ð"Ð"r.   r>   )
r*   r+   r,   r   r   Ú__annotations__rÄ   r–   r6   r—   r˜   s   @r/   rÂ   rÂ   L  s‰   ø€ € € € € € ð $ OÔ4Ð4Ð4Ñ4ð !%€J�˜”Ð$Ð$Ñ$ð BFð;ð ;Ø%-¨oÔ%>ð;à	ð;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;r.   rÂ   c                   ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )ÚNewGlobalVariabler2   Nc                 ó:   •—  t          ¦   «         j        di |¤Ž d S r4   ©r5   r6   ©r9   r:   r;   s     €r/   r6   zNewGlobalVariable.__init__a  ó&   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ð"Ð"r.   r’   )r*   r+   r,   r6   r—   r˜   s   @r/   rÈ   rÈ   `  s=   ø€ € € € € ð#ð #ð #ð #ð #ð #ð #ð #ð #ð #r.   rÈ   c                   óŽ   ‡ — e Zd ZdZddhej        £Zed„ ¦   «         Zdeddfˆ fd„Zd	d
de	ddfˆ fd„Z
	 	 	 	 	 	 dˆ fd„Zd„ Zˆ xZS )ÚInspectSignatureVariablez!represents inspect.signature(...)Ú	signatureÚ
parametersc                 ó„   — |rt          d|› �¦  «         t          | t          j                             ¦   «         ¬¦  «        S )Nzinspect.signature with ©rw   )r   rÎ   r	   ÚbaseÚValueMutationNew)Úcallabler:   s     r/   rf   zInspectSignatureVariable.createn  sK   € àð 	>ÝÐ<°FÐ<Ð<Ñ=Ô=Ð=Ý'Ø¥I¤N×$CÒ$CÑ$EÔ$Eð
ñ 
ô 
ð 	
r.   Ú	inspectedr2   Nc                 ó‚  •—  t          ¦   «         j        di |¤Ž || _        	 t          | j        d¦  «        r| j                             ¦   «         | _        nJt          | j        t          ¦  «        r| j        j        | _        n| j         	                    ¦   «         | _        n# t          $ r t          d¦  «         Y nw xY wt          j        | j        ¦  «        | _        t          | j        j                             ¦   «         ¦  «        | _        t          | j        t"          ¦  «        r| j        dd …         | _        d S d S )Nr³   z,inspect.signature with non-constant functionr   r-   )r5   r6   rÖ   Úhasattrr³   r½   rv   r#   rM   rH   r‹   r   ÚinspectrÏ   ÚlistrÐ   r»   r!   )r9   rÖ   r:   r;   s      €r/   r6   z!InspectSignatureVariable.__init__v  s0  ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ø"ˆŒð	JÝ�t”~ ~Ñ6Ô6ð >Øœ.×5Ò5Ñ7Ô7�”�Ý˜DœNÕ,IÑJÔJð >Øœ.Ô.�”�àœ.×;Ò;Ñ=Ô=�”øøÝ"ð 	Jð 	Jð 	JÝÐHÑIÔIÐIÐIÐIð	Jøøøõ !Ô*¨4¬7Ñ3Ô3ˆŒÝ˜tœ~Ô8×>Ò>Ñ@Ô@ÑAÔAˆŒÝ�d”nÕ&8Ñ9Ô9ð 	2Ø"œo¨a¨b¨bÔ1ˆDŒOˆOˆOð	2ð 	2s   £A>B" Â"B>Â=B>rE   r'   rU   r   c                 ó¨   •— |dk    r*t          j        d„ | j        D ¦   «         t          ¬¦  «        S t	          ¦   «                              ||¦  «        S )NrÐ   c                 ó€   — i | ];}t           j                             |d          ¦  «        t          |d         ¦  «        “Œ<S )r   r   )r	   ra   rf   ÚInspectParameterVariable)Ú.0Úparams     r/   ú
<dictcomp>z8InspectSignatureVariable.var_getattr.<locals>.<dictcomp>Œ  sS   € ð ð ð ð õ Ô.×5Ò5Ø˜aœñô å/°°a´Ñ9Ô9ðð ð r.   )Úuser_cls)r	   ÚConstDictVariablerÐ   Údictr5   rg   )r9   rE   rU   r;   s      €r/   rg   z$InspectSignatureVariable.var_getattr‰  si   ø€ Ø�<ÒÐÝÔ.ðð ð "&¤ð	ñ ô õ ðñ ô ð õ ‰wŒw×"Ò" 2 tÑ,Ô,Ð,r.   rh   ri   r:   rj   c                 óÖ  •‡ ‡‡— |dk    r¼t          ‰ j        d¦  «        st          d‰ j        › d�¦  «          ‰ j        j        |i |¤Ž}i }‰ j        j        r^t          j        t          |¬¦  «        Šˆ fd„‰ j        j        D ¦   «         Šˆˆfd„‰ j        j         	                    ¦   «         D ¦   «         }t          ||‰ ¦  «        S t          ¦   «                              ||||¦  «        S )NÚbindÚ__kwdefaults__zinspect.signature.bind with z without __kwdefaults__)rE   c                 óR   •— i | ]#}|‰j         €d nt          ‰j         |d¬¦  «        “Œ$S )NT)Úis_kw)rJ   r   )rÞ   Úkr9   s     €r/   rà   z8InspectSignatureVariable.call_method.<locals>.<dictcomp>¨  sN   ø€ ð &ð &ð &ð ð àœ;Ð.ð ˜å+¨D¬K¸À$ÐGÑGÔGð	&ð &ð &r.   c                 ó>   •— i | ]\  }}| ‰|‰|         ¬ ¦  «        “ŒS ))ÚvalrJ   r-   )rÞ   ré   ÚvÚkwdefaults_sourcesÚwraps      €€r/   rà   z8InspectSignatureVariable.call_method.<locals>.<dictcomp>°  sD   ø€ ð ð ð á˜˜1ð �t�t Ð*<¸QÔ*?Ð@Ñ@Ô@ðð ð r.   )rØ   r½   r   rÏ   rå   ræ   Ú	functoolsÚpartialr"   r»   ÚInspectBoundArgumentsVariabler5   rˆ   )
r9   rE   rU   rh   r:   Úobjr¹   rí   rî   r;   s
   `      @@€r/   rˆ   z$InspectSignatureVariable.call_method–  s7  øøøø€ ð �6Š>ˆ>Ý˜4œ7Ð$4Ñ5Ô5ð ÝØS°4´7ÐSÐSÐSñô ð ð &�$”.Ô% tÐ6¨vÐ6Ð6ˆCð ˆHØŒwÔ%ð Ý Ô(­¸BÐ?Ñ?Ô?�ð&ð &ð &ð &ð "œWÔ3ð&ñ &ô &Ð"ðð ð ð ð à $¤Ô 6× <Ò <Ñ >Ô >ðñ ô �õ
 1ØØØñô ð õ
 ‰wŒw×"Ò" 2 t¨T°6Ñ:Ô:Ð:r.   c                 óž   ‡— ‰                      ˆfd„¦  «          ‰| j        ¦  «         ‰                     t          dd¦  «        ¦  «         d S )Nc                  óˆ   •— ‰                       ‰                      t          ¦  «        ‰                      d¦  «        g¦  «        S )NrÏ   )rC   Úcreate_load_python_modulerÙ   Úcreate_load_attr©r@   s   €r/   rA   z6InspectSignatureVariable.reconstruct.<locals>.<lambda>¾  s>   ø€ �G×)Ò)à×5Ò5µgÑ>Ô>Ø×,Ò,¨[Ñ9Ô9ðñô € r.   r   F)rB   rÖ   rC   r
   r£   s    `r/   rD   z$InspectSignatureVariable.reconstruct¼  sh   ø€ Ø×Òðð ð ð ñ	
ô 	
ð 	
ð 	ˆ�”ÑÔÐØ×ÒÕ2°1°eÑ<Ô<Ñ=Ô=Ð=Ð=Ð=r.   r”   )r*   r+   r,   r§   r   r•   r|   rf   r6   r–   rg   rˆ   rD   r—   r˜   s   @r/   rÎ   rÎ   e  s	  ø€ € € € € Ø+Ð+ð 	Øðð 
Ô	'ð€Nð ð
ð 
ñ „\ð
ð2 /ð 2Àð 2ð 2ð 2ð 2ð 2ð 2ð&-Ð5ð -¸Sð -ÐEVð -ð -ð -ð -ð -ð -ð$;ð &ð	$;ð
 -ð$;ð 
ð$;ð $;ð $;ð $;ð $;ð $;ðL
>ð 
>ð 
>ð 
>ð 
>ð 
>ð 
>r.   rÎ   c                   ó8   ‡ — e Zd ZdZd
ˆ fd„Zdddeddfd	„Zˆ xZS )rÝ   z!represents inspect.Parameter(...)r2   Nc                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S r4   ©r5   r6   rM   ©r9   rM   r:   r;   s      €r/   r6   z!InspectParameterVariable.__init__Ì  ó+   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØˆŒ
ˆ
ˆ
r.   rE   r'   rU   r   c                 óê   — 	 t          | j        |¦  «        }| j        ot          | j        |¦  «        }t	          j        |||¦  «        S # t          $ r t          d| j        › d|› d�¦  «         Y d S w xY w)Nzgetattr(ro   ú))rP   rM   rJ   r   r   r…   ÚAttributeErrorr   ©r9   rE   rU   Ú
attr_valuerJ   s        r/   rg   z$InspectParameterVariable.var_getattrÐ  s�   € ð	<Ý  ¤¨TÑ2Ô2ˆJØ”[ÐB¥Z°´¸TÑ%BÔ%BˆFÝ"Ô(¨¨Z¸Ñ@Ô@Ð@øÝð 	<ð 	<ð 	<ÝÐ: T¤ZÐ:Ð:°4Ð:Ð:Ð:Ñ;Ô;Ð;Ð;Ð;Ð;ð	<øøøs   ‚AA	 Á	%A2Á1A2r’   )r*   r+   r,   r§   r6   r–   rg   r—   r˜   s   @r/   rÝ   rÝ   É  sn   ø€ € € € € Ø+Ð+ðð ð ð ð ð ð<Ð5ð <¸Sð <ÐEVð <ð <ð <ð <ð <ð <ð <ð <r.   rÝ   c                   óœ   ‡ — e Zd ZdZddhej        £Zdej        dee	ef         de
fˆ fd„Zd„ Zdd	d
e	ddfˆ fd„Z	 	 	 	 	 	 dˆ fd„Zd„ Zˆ xZS )rñ   z+represents inspect.signature(...).bind(...)Úbound_argumentsÚpacked_varsr¹   rÏ   c                 óJ  •—  t          ¦   «         j        di |¤Ž || _        || _        t	          ¦   «         | _        i }|j                             ¦   «         D ]ú\  }}t          j	        |¦  «        }t          |t          ¦  «        r?t          j        t          |¦  «        ¦  «        ||<   | j                             |¦  «         Œmt          |t          ¦  «        rN| j                             |¦  «         t          j        d„ |                     ¦   «         D ¦   «         ¦  «        ||<   ŒÐt          |t"          ¦  «        r|||<   Œët%          d¦  «         Œût          j        |t'          |j        ¦  «        t          j                             ¦   «         ¬¦  «        | _        || _        d S )Nc                 ó>   — i | ]\  }}t          j        |¦  «        |“ŒS r-   ©r	   ra   ©rÞ   ré   rì   s      r/   rà   z:InspectBoundArgumentsVariable.__init__.<locals>.<dictcomp>ü  s)   € ÐNÐNÐN¹$¸!¸Q•YÔ/°Ñ2Ô2°AÐNÐNÐNr.   zKinspect.signature(...).bind(...).arguments contains non-variable/tuple/dictrÒ   r-   )r5   r6   r  r¹   Úsetr  Ú	argumentsr»   r	   ra   rv   rº   ÚTupleVariablerÚ   Úaddrã   râ   r   r   rL   rÓ   rÔ   Úbound_arguments_varrÏ   )
r9   r  r¹   rÏ   r:   Úarguments_dictr�   rë   Úkey_varr;   s
            €r/   r6   z&InspectBoundArgumentsVariable.__init__å  s�  ø€ ð 	�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ø.ˆÔØ ˆŒå™5œ5ˆÔàˆØ'Ô1×7Ò7Ñ9Ô9ð 	ð 	‰HˆC�ÝÔ0°Ñ5Ô5ˆGå˜#�uÑ%Ô%ð Ý*3Ô*AÅ$ÀsÁ)Ä)Ñ*LÔ*L�˜wÑ'ØÔ ×$Ò$ SÑ)Ô)Ð)Ð)Ý˜C¥Ñ&Ô&ð 
ØÔ ×$Ò$ SÑ)Ô)Ð)Ý*3Ô*EØNÐNÀ#Ç)Â)Á+Ä+ÐNÑNÔNñ+ô +�˜wÑ'Ð'õ ˜C¥Ñ1Ô1ð Ø*-�˜wÑ'Ð'åØañô ð ð õ $-Ô#>ØÝ�Ô*Ñ+Ô+Ý#œ.×9Ò9Ñ;Ô;ð$
ñ $
ô $
ˆÔ ð
 #ˆŒˆˆr.   c                 óŽ  — | j         j                             ¦   «         D ]¥\  }}|}|j        | j        v r|t	          |t
          j        ¦  «        rt          |j        ¦  «        }nMt	          |t
          j        ¦  «        r$d„ |j                             ¦   «         D ¦   «         }nt          d¦  «         || j
        j        |j        <   Œ¦d S )Nc                 ó$   — i | ]\  }}|j         |“ŒS r-   )Úunderlying_valuer  s      r/   rà   zIInspectBoundArgumentsVariable._update_bound_arguments.<locals>.<dictcomp>  s!   € ÐTÐTÐT¹$¸!¸Q Ô 2°AÐTÐTÐTr.   z>inspect.signature(...).bind(...) cannot update bound arguments)r  r»   r  r  rv   r	   r  rº   râ   r   r  r
  )r9   r�   rë   Útrue_vals       r/   Ú_update_bound_argumentsz5InspectBoundArgumentsVariable._update_bound_arguments  sÖ   € ØÔ0Ô6×<Ò<Ñ>Ô>ð 	Lð 	L‰HˆC�ØˆHØÔ# tÔ'7Ð7Ð7Ý˜c¥9Ô#:Ñ;Ô;ð Ý$ S¤YÑ/Ô/�H�HÝ ¥YÔ%@ÑAÔAð ØTÐTÀ#Ä)Ç/Â/ÑBSÔBSÐTÑTÔT�H�Hå!ØXñô ð ð DLˆDÔ Ô*¨3Ô+?Ñ@Ð@ð	Lð 	Lr.   rE   r'   rU   r2   r   c                 ó²  •— |dk    r| j         S |dk    r?|                      ¦   «          t          j        t	          | j        j        ¦  «        ¦  «        S |dk    rP|                      ¦   «          d„ | j        j                             ¦   «         D ¦   «         }t          j	        |¦  «        S |dk    r| j
        S t          ¦   «                              ||¦  «        S )Nr
  rh   r:   c                 ó>   — i | ]\  }}t          j        |¦  «        |“ŒS r-   r  ©rÞ   r�   rë   s      r/   rà   z=InspectBoundArgumentsVariable.var_getattr.<locals>.<dictcomp>"  s9   € ð ð ð á�C˜õ Ô*¨3Ñ/Ô/°ðð ð r.   rÏ   )r  r  r	   r  rÚ   r  rh   r:   r»   râ   rÏ   r5   rg   )r9   rE   rU   Úkwr;   s       €r/   rg   z)InspectBoundArgumentsVariable.var_getattr  sÞ   ø€ Ø�;ÒÐØÔ+Ð+Ø�VŠ^ˆ^Ø×(Ò(Ñ*Ô*Ð*ÝÔ*­4°Ô0DÔ0IÑ+JÔ+JÑKÔKÐKØ�XÒÐØ×(Ò(Ñ*Ô*Ð*ðð à $Ô 4Ô ;× AÒ AÑ CÔ Cðñ ô ˆBõ Ô.¨rÑ2Ô2Ð2Ø�[Ò Ð Ø”>Ð!Ý‰wŒw×"Ò" 2 tÑ,Ô,Ð,r.   rh   ri   r:   rj   c                 ó^  •— |dk    rƒ| j                              ¦   «         D ]A\  }}t          j        |¦  «        }|| j        vr| j                             |d||gi ¦  «         ŒB|                      ¦   «          t          j        d ¦  «        S t          ¦   «                              ||||¦  «        S )NÚapply_defaultsrm   )r¹   r»   r	   ra   r  rˆ   r  r5   )	r9   rE   rU   rh   r:   r�   rë   r  r;   s	           €r/   rˆ   z)InspectBoundArgumentsVariable.call_method+  s¼   ø€ ð Ð#Ò#Ð#à œM×/Ò/Ñ1Ô1ð ð ‘��SÝ#Ô4°SÑ9Ô9�Ø $Ô":Ð:Ð:ØÔ,×8Ò8Ø˜M¨G°S¨>¸2ñô ð øð
 ×(Ò(Ñ*Ô*Ð*åÔ-¨dÑ3Ô3Ð3Ý‰wŒw×"Ò" 2 t¨T°6Ñ:Ô:Ð:r.   c                 óf  ‡ ‡— ‰                       ¦   «          ˆˆ fd„}‰                     |d¬¦  «         ‰                     ‰ j        j        ¦  «         ‰                     t          dt          ‰ j        j        ¦  «        ¬¦  «        ¦  «         ‰ j        j         	                    ¦   «         D ]8\  }}‰                     ‰ 
                    |¦  «        ¦  «          ‰|¦  «         Œ9‰                     t          dt          ‰ j        j        ¦  «        ¬¦  «        t          dd¬¦  «        g¦  «         d S )	Nc                  óx   •—  ‰ ‰j         ¦  «         ‰                      ‰                      d¦  «        ¦  «         d S )Nrå   )rÏ   Úappend_outputrö   r¡   s   €€r/   Úgen_fnz9InspectBoundArgumentsVariable.reconstruct.<locals>.gen_fnG  s=   ø€ ØˆG�D”NÑ#Ô#Ð#Ø×!Ò! '×":Ò":¸6Ñ"BÔ"BÑCÔCÐCÐCÐCr.   T©Úcall_function_exÚBUILD_TUPLE©ÚargÚ	BUILD_MAPÚCALL_FUNCTION_EXr   )r  rB   r¢   r  rh   r  r   rR   r:   r»   Úcreate_load_constrC   )r9   r@   r  r�   rë   s   ``   r/   rD   z)InspectBoundArgumentsVariable.reconstructA  sS  øø€ ð 	×$Ò$Ñ&Ô&Ð&ð	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	×Ò˜f°tÐÑ<Ô<Ð<à�Š˜Ô,Ô1Ñ2Ô2Ð2Ø×ÒÝ˜}µ#°dÔ6JÔ6OÑ2PÔ2PÐQÑQÔQñ	
ô 	
ð 	
ð Ô,Ô3×9Ò9Ñ;Ô;ð 	ð 	‰HˆC�Ø×!Ò! '×";Ò";¸CÑ"@Ô"@ÑAÔAÐAØˆG�C‰LŒLˆLˆLØ×Òå" ;µC¸Ô8LÔ8SÑ4TÔ4TÐUÑUÔUÝ"Ð#5¸1Ð=Ñ=Ô=ðñ	
ô 	
ð 	
ð 	
ð 	
r.   r”   )r*   r+   r,   r§   r   r•   rÙ   ÚBoundArgumentsr   r–   rÎ   r6   r  rg   rˆ   rD   r—   r˜   s   @r/   rñ   rñ   Ù  s  ø€ € € € € Ø5Ð5ð 	Øðð 
Ô	'ð€Nð%#à Ô/ð%#ð �s˜OÐ+Ô,ð%#ð ,ð	%#ð %#ð %#ð %#ð %#ð %#ðNLð Lð Lð-Ð5ð -¸Sð -ÐEVð -ð -ð -ð -ð -ð -ð";ð &ð	;ð
 -ð;ð 
ð;ð ;ð ;ð ;ð ;ð ;ð,
ð 
ð 
ð 
ð 
ð 
ð 
r.   rñ   c                 ó*   ‡ — ˆ fd„}t           |_        |S )Nc                  ó   •—  ‰j         | i |¤ŽS r>   )Úapply)rh   r:   Úfn_clss     €r/   Útrampoline_autograd_applyzDproduce_trampoline_autograd_apply.<locals>.trampoline_autograd_apply^  s   ø€ ØˆvŒ|˜TÐ, VÐ,Ð,Ð,r.   )Ú!produce_trampoline_autograd_applyÚ_origin)r+  r,  s   ` r/   r-  r-  ]  s.   ø€ ð-ð -ð -ð -ð -õ )JÐÔ%Ø$Ð$r.   c                   ó`   ‡ — e Zd ZdZdhej        £Zdˆ fd„Zdd„Zdd	„Zdd
„Z		 	 	 	 dd„Z
ˆ xZS )ÚAutogradFunctionVariablez-represents a torch.autograd.Function subclassr+  r2   Nc                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S r4   )r5   r6   r+  )r9   r+  r:   r;   s      €r/   r6   z!AutogradFunctionVariable.__init__m  s+   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØˆŒˆˆr.   rE   r'   c           	      óÚ  ‡‡— dŠˆˆfd„}t          j        |||f¦  «         ‰�rût          j        ¦   «         �rçt          j        du rt          j        d¦  «         ddlm	} ddl
m} | j        j        } || j        j        ¦  «        }|r  || j        j        | j        j        ¦  «        }| j        j        }	|	t          j        j        j        urt%          d¦  «         | j        j        }
|
t          j        j        j        urt%          d¦  «         d	d
lm} | j        }|€7t/          ‰                     | j        j        ¦  «        | j        j        ¦  «        } ||| j        j        |t/          |d¬¦  «        ¬¦  «                             ‰||¦  «        }| j        r„t/          | j        d¦  «        }t;          |                     t>          j         ¦  «        ¦  «         |rAt/          | j        d¦  «        }t;          |                     t>          j         ¦  «        ¦  «         |S | j        rt/          | j        d¦  «        }nd }| j        j        }tB           "                    ‰||¦  «        }|g|¢}tG          |tH          j%        ¦  «        rqtM          j'        |¦  «        }tQ          |¦  «        d	z
  tQ          |j)        ¦  «        k    r
|d	d …         }tU          j+        ||¬¦  «                             ‰||¦  «        S tG          |tH          j,        ¦  «        rHtU          j-        |j.        tU          j/        | j        ¦  «        |¬¦  «                             ‰||¦  «        S t%          d|› �¦  «         d S )NFc                 ó¼   •— t          | t          j        ¦  «        r| j        durdŠt          | t          j        ¦  «        r|                      ‰¦  «        rdŠd S d S d S )NFT)rv   r	   ÚTensorVariableÚrequires_gradÚNNModuleVariableÚis_training)Únoder5  rE   s    €€r/   Úvisitz2AutogradFunctionVariable.call_apply.<locals>.visitt  ss   ø€ å˜$¥	Ô 8Ñ9Ô9ð )ØÔ%¨UÐ2Ð2Ø$(�MÝ˜$¥	Ô :Ñ;Ô;ð )Ø×#Ò# BÑ'Ô'ð )Ø$(�M�M�Mð)ð )ð)ð )r.   zNThe config.capture_autograd_function flag is deprecated, it's now always true.r   )Ú#autograd_function_forward_rewritten)Ú_is_setup_context_definedzNYI - User defind vjpzNYI - User defind jvpr   )ÚAutogradFunctionApplyVariabler*  )Úmemberr`   ÚforwardÚsetup_contextz?non-function or method in subclass of torch.autograd.Function: )0r   r9  rr   Úis_grad_enabledr   Úcapture_autograd_functionÚwarningsÚwarnÚ"torch._functorch.autograd_functionr:  Útorch.autograd.functionr;  r+  r>  r?  ÚvjpÚautogradÚFunctionr   ÚjvpÚhigher_order_opsr<  rJ   r   Úimport_sourcer+   r*   Úbackwardrx   r   rd   r   ÚFUNCTION_MATCHÚAutogradFunctionContextVariablerf   rv   r~   r   rÙ   rÏ   rR   Ú_parametersr	   r    r�   r!   r}   ÚUserDefinedClassVariable)r9   rE   rh   r:   r9  r:  r;  Ú
forward_fnÚis_setup_ctx_definedÚvjp_fnÚjvp_fnr<  rJ   rë   Úfwd_srcÚsetup_ctx_srcr½   ÚctxÚsigr5  s    `                 @r/   Ú
call_applyz#AutogradFunctionVariable.call_applyq  sº  øø€ Øˆð	)ð 	)ð 	)ð 	)ð 	)ð 	)õ 	Ô˜e d¨F ^Ñ4Ô4Ð4àñ 7	�UÔ2Ñ4Ô4ñ 7	ÝÔ/°5Ð8Ð8Ý”Ødñô ð ðð ð ð ð ð ð JÐIÐIÐIÐIÐIàœÔ,ˆJà#<Ð#<¸T¼[Ô=VÑ#WÔ#WÐ Ø#ð ð AÐ@Ø”KÔ'¨¬Ô)Bñô �
ð ”[”_ˆFØ�Uœ^Ô4Ô8Ð8Ð8ÝÐ5Ñ6Ô6Ð6à”[”_ˆFØ�Uœ^Ô4Ô8Ð8Ð8ÝÐ5Ñ6Ô6Ð6àGÐGÐGÐGÐGÐGà”[ˆFØˆ~Ý#Ø×$Ò$ T¤[Ô%;Ñ<Ô<¸d¼kÔ>Rñô �ð 0Ð/ØØ”Ô$ØÝ! &°Ð9Ñ9Ô9ð	ñ ô ÷
 Šm˜B  fÑ-Ô-ð ð Œ{ð YÝ$ T¤[°)Ñ<Ô<�Ý˜g×0Ò0µÔ1LÑMÔMÑNÔNÐNØ'ð YÝ$.¨t¬{¸OÑ$LÔ$L�MÝ! -×":Ò":½<Ô;VÑ"WÔ"WÑXÔXÐXàˆJàŒ;ð 	Ý ¤¨YÑ7Ô7ˆFˆFàˆFàŒ[Ô ˆÝ-×4Ò4°R¸¸vÑFÔFˆØˆ|�dˆ|ˆÝ�b�%Ô,Ñ-Ô-ð 	ÝÔ# BÑ'Ô'ˆCÝ�4‰yŒy˜1‰}¥ C¤OÑ 4Ô 4Ò4Ð4Ø˜A˜B˜B”x�ÝÔ1°"¸VÐDÑDÔD×RÒRØ�D˜&ñô ð õ ˜�EÔ,Ñ-Ô-ð 		ÝÔ/Ø”ÝÔ2°4´;Ñ?Ô?Øðñ ô ÷ Šm˜B  fÑ-Ô-ð	.õ ØVÐRTÐVÐVñô ð ð ð r.   c                 ó6  — | j         j        }t          |d         j        ¦  «        t          j        j        j        u sJ ‚t          |t          j
        ¦  «        sJ ‚t          | j        d¦  «        }t          j        ||¬¦  «                             |||¦  «        S )Nr   rL  r`   )r+  rL  rL   rM   rr   Ú_dynamoÚexternal_utilsÚFakeBackwardCFunctionrv   r~   r   r   rJ   r	   r    rx   )r9   rE   rh   r:   r½   Ú	fn_sources         r/   Úcall_backwardz&AutogradFunctionVariable.call_backwardÒ  sŒ   € ØŒ[Ô!ˆÝ�D˜”G”MÑ"Ô"¥e¤mÔ&BÔ&XÐXÐXÐXÐXÝ˜"�eÔ0Ñ1Ô1Ð1Ð1Ð1å˜tœ{¨JÑ7Ô7ˆ	ÝÔ-¨b¸ÐCÑCÔC×QÒQØ��fñ
ô 
ð 	
r.   c                 ó*   — t          | j        ¦  «        S r>   )r0  r+  ©r9   rE   rh   r:   s       r/   rx   z&AutogradFunctionVariable.call_functionÜ  s   € Ý'¨¬Ñ4Ô4Ð4r.   rh   ri   r:   rj   c           
      óÎ  — ddl m} ddlm} |dk    rh || j        ¦  «        rAt          | j        ¦  «        } || |j        j        d|gt          ||¦  «        ¢R Ž ¬¦  «        S |  	                    |||¦  «        S |dk    r|  
                    |||¦  «        S dd	lm } | j        �t          | j        |¦  «        nd }		 t          j        | j        |¦  «        }
n# t           $ r d }
Y nw xY wt#          |
t$          ¦  «        rŽ|
                     | j        ¦  «        }|	�?|                     |¦  «                             ||	¬
¦  «                             |||¦  «        S  |                     |¦  «        |¦  «                             |||¦  «        S t#          |
t.          ¦  «        r1t1          j        |
j        | |	¬
¦  «                             |||¦  «        S t7          d|› �¦  «         d S )Nr   )Úis_callable_allowedr   )Úwrap_fx_proxyr*  rx   )rE   ÚproxyrL  )Útrace_rulesr`   zUnsupported method: )rf  rc  Úbuilderrd  r+  r-  rz   Úcreate_proxyr   rY  r_  Ú rJ   r   rÙ   Úgetattr_staticrÿ   rv   r|   Ú__get__ÚlookupÚcreate_with_sourcerx   r€   r	   r!   r}   r   )r9   rE   rU   rh   r:   rc  rd  r,  rf  rJ   rò   r¿   s               r/   rˆ   z$AutogradFunctionVariable.call_methodß  s]  € ð 	6Ð5Ð5Ð5Ð5Ð5Ø*Ð*Ð*Ð*Ð*Ð*à�7Š?ˆ?Ø"Ð" 4¤;Ñ/Ô/ð 9Ý,MØ”Kñ-ô -Ð)ð %�}ØØ0˜"œ)Ô0Ø'Ø1ðõ +¨4°Ñ8Ô8ðð ð ðñ ô ð ð —’ r¨4°Ñ8Ô8Ð8à�ZÒÐØ×%Ò% b¨$°Ñ7Ô7Ð7à&Ð&Ð&Ð&Ð&Ð&à6:´kÐ6M•Z ¤¨TÑ2Ô2Ð2ÐSWˆFðÝÔ,¨T¬[¸$Ñ?Ô?��øÝ!ð ð ð Ø���ðøøøõ ˜#�|Ñ,Ô,ð =Ø—{’{ 4¤;Ñ/Ô/�ØÐ%à#×*Ò*¨4Ñ0Ô0ß+Ò+¨D¸Ð+Ñ@Ô@ß&š r¨4°Ñ8Ô8ðð 4˜;×-Ò-¨dÑ3Ô3°DÑ9Ô9×GÒGØ˜D &ñô ð õ ˜C¥Ñ-Ô-ð =Ý Ô3Ø”L $¨vðñ ô ç’-  D¨&Ñ1Ô1ð2õ Ð;°TÐ;Ð;Ñ<Ô<Ð<Ð<Ð<s   Â=C ÃC'Ã&C'r’   r“   )rh   ri   r:   rj   )r*   r+   r,   r§   r   r•   r6   rY  r_  rx   rˆ   r—   r˜   s   @r/   r0  r0  e  sÃ   ø€ € € € € Ø7Ð7ð 	ðà	Ô	'ð€Nð
ð ð ð ð ð ð_ð _ð _ð _ðB
ð 
ð 
ð 
ð5ð 5ð 5ð 5ð6=ð &ð	6=ð
 -ð6=ð 6=ð 6=ð 6=ð 6=ð 6=ð 6=ð 6=r.   r0  c                   óH   — e Zd ZU  ej        e¬¦  «        Zee         e	d<   dS )ÚSavedTensorBox)Údefault_factoryÚtensorsN)
r*   r+   r,   ÚdataclassesÚfieldrÚ   rq  r   r   rÆ   r-   r.   r/   ro  ro    s7   € € € € € € à%6 [Ô%6ÀtÐ%LÑ%LÔ%L€GˆT�/Ô"ÐLÐLÑLÐLÐLr.   ro  c                   ó�   ‡ — e Zd ZdZdddhej        £Z	 	 	 	 	 	 d	 dˆ fd„Zeddd„¦   «         Zd„ Z		 	 	 	 	 	 dˆ fd„Z
dˆ fd„Zˆ xZS )rN  zZ
    Tracks an autograd.Function() context using mutation tracking in side_effects.py
    re  Ú	inferenceÚsaved_tensorsNFr2   c                 ó†   •—  t          ¦   «         j        d||dœ|¤Ž || _        || _        || _        || _        || _        d S ©N)rM   Ú
value_typer-   )r5   r6   ru  re  rv  Úneeds_input_gradÚnon_differentiable)
r9   rM   ry  ru  re  rv  rz  r{  r:   r;   s
            €r/   r6   z(AutogradFunctionContextVariable.__init__)  sU   ø€ ð 	�‰ŒÔÐF˜u°ÐFÐF¸vÐFÐFÐFØ"ˆŒØˆŒ
Ø*ˆÔØ 0ˆÔØ"4ˆÔÐÐr.   rE   r'   c                 ó–  — d }|r|st          d„ |D ¦   «         ¦  «        }| j                             dt          j        j        j        di ¦  «        }| j        j                             d t          j        j        j        t          j
        t          d|t          ¦   «         |¬¦  «        i ¦  «        }t          |j        |j        ¦  «         |S )Nc              3   óX   K  — | ]%}t          |t          j        ¦  «        o|j        V — Œ&d S r>   )rv   r	   r4  r5  ©rÞ   Úxs     r/   ú	<genexpr>z9AutogradFunctionContextVariable.create.<locals>.<genexpr>?  sJ   è è € ð %ð %àõ ˜1�iÔ6Ñ7Ô7ÐK¸A¼Oð%ð %ð %ð %ð %ð %r.   rx   r-   T)ru  re  rv  rz  )rº   rz   rh  rr   rG  ÚfunctionÚFunctionCtxru   Útrack_object_newrï   rð   rN  ro  r   r8  rM   )rE   rh   r:   rz  re  Úouts         r/   rf   z&AutogradFunctionContextVariable.create;  sá   € àÐØð 	˜ð 	Ý$ð %ð %àð%ñ %ô %ñ  ô  Ðð ”	×&Ò&Ø�Uœ^Ô4Ô@À"Àbñ
ô 
ˆð ŒiÔ$×5Ò5ØÝŒNÔ#Ô/ÝÔÝ/ØØÝ,Ñ.Ô.Ø!1ðñ ô ð ñ
ô 
ˆõ 	˜%œ* c¤iÑ0Ô0Ð0àˆ
r.   c                 ó<   — | j         €t          d¦  «         | j         S )Nzproxy not set)re  r   ©r9   s    r/   Úas_proxyz(AutogradFunctionContextVariable.as_proxyV  s    € ØŒ:ÐÝ˜/Ñ*Ô*Ð*ØŒzÐr.   rh   ri   r:   rj   r   c                 óš  •— |dk    r$t          ¦   «                              ||||¦  «        S |dk    rOt          |¦  «        dk    sJ ‚t          |i ¦  «        d         | _        t
          j                             d ¦  «        S |dk    rt          d|› �¦  «         | j	        €t          d¦  «         | j
        s+| j        r|rJ ‚|j        j                             | |¦  «         t          | j	        j        ¦  «        dk    rg | j	        _        |D ]!}| j	        j                             |¦  «         Œ"t
          j                             d ¦  «        S )Nr†   Úmark_non_differentiabler   Úsave_for_backwardz"autograd.Function context method: zCsave_for_backward only supported on a newly constructed FunctionCtx)r5   rˆ   rR   r   r{  r	   ra   rf   r   rv  ru  rJ   rz   ru   Útrack_save_for_backwardrq  Úappend)r9   rE   rU   rh   r:   r#  r;   s         €r/   rˆ   z+AutogradFunctionContextVariable.call_method[  sd  ø€ ð �=Ò Ð Ý‘7”7×&Ò& r¨4°°vÑ>Ô>Ð>ØÐ.Ò.Ð.Ý�v‘;”; !Ò#Ð#Ð#Ð#Ý&7¸¸bÑ&AÔ&AÀ!Ô&DˆDÔ#ÝÔ-×4Ò4°TÑ:Ô:Ð:àÐ&Ò&Ð&ÝÐE¸tÐEÐEÑFÔFÐFØÔÐ%ÝØUñô ð ð Œ~ð 	GØ”;Ð- vÐ-Ð-Ð-ØŒIÔ"×:Ò:¸4ÀÑFÔFÐFõ ˆtÔ!Ô)Ñ*Ô*¨QÒ.Ð.Ø)+ˆDÔÔ&Øð 	3ð 	3ˆCØÔÔ&×-Ò-¨cÑ2Ô2Ð2Ð2ÝÔ)×0Ò0°Ñ6Ô6Ð6r.   c                 óÈ  •‡ ‡‡— ‰dv rt          ˆˆ ˆfd„¦  «        S ‰dk    r2‰ j        �+t          j        t	          ‰ j        j        ¦  «        ¦  «        S ‰dk    rg‰ j        �$t          j                             ‰ j        ¦  «        S ‰ j	        r5t          ‰ j	        d¦  «        }t          j        ‰‰ j        j        |¦  «        S t          ¦   «                              ‰‰¦  «        S )N)rŠ  r‰  c                  ó4   •— ‰                      ‰‰| |¦  «        S r>   )rˆ   )rh   r:   rU   r9   rE   s     €€€r/   rA   z=AutogradFunctionContextVariable.var_getattr.<locals>.<lambda>~  s   ø€ ¨×(8Ò(8¸¸TÀ4ÈÑ(PÔ(P€ r.   rv  rz  )rq   rv  r	   r  rÚ   rq  rz  ra   rf   rJ   r   r   r…   rM   r5   rg   ©r9   rE   rU   rJ   r;   s   ``` €r/   rg   z+AutogradFunctionContextVariable.var_getattr{  sê   øøøø€ ØÐCÐCÐCÝ!ØPÐPÐPÐPÐPÐPñô ð ð �?Ò"Ð" tÔ'9Ð'EÝÔ*­4°Ô0BÔ0JÑ+KÔ+KÑLÔLÐLØÐ%Ò%Ð%ØÔ$Ð0Ý Ô1×8Ò8¸Ô9NÑOÔOÐOØŒ{ð VÝ# D¤KÐ1CÑDÔD�Ý&Ô,¨R°´Ô1LÈfÑUÔUÐUå‰wŒw×"Ò" 2 tÑ,Ô,Ð,r.   )NFNNNNr’   ©NNr“   r”   )r*   r+   r,   r§   r&   r•   r6   r|   rf   r‡  rˆ   rg   r—   r˜   s   @r/   rN  rN    s  ø€ € € € € ðð ð
 	ØØðð 
#Ô	1ð	€Nð ØØØØØð5ð 
ð5ð 5ð 5ð 5ð 5ð 5ð$ ðð ð ð ñ „\ðð4ð ð ð
7ð &ð	7ð
 -ð7ð 
ð7ð 7ð 7ð 7ð 7ð 7ð@-ð -ð -ð -ð -ð -ð -ð -ð -ð -r.   rN  c                   ó>   ‡ — e Zd ZdZ	 d	 dˆ fd„Z	 	 	 	 	 	 dd
„Zˆ xZS )ÚAutogradEngineVariablez;
    Represents a torch._C._ImperativeEngine instance.
    Nr2   c                 ó@   •—  t          ¦   «         j        d||dœ|¤Ž d S rx  rÊ   )r9   rM   ry  r:   r;   s       €r/   r6   zAutogradEngineVariable.__init__‘  s/   ø€ ð 	�‰ŒÔÐF˜u°ÐFÐF¸vÐFÐFÐFÐFÐFr.   rh   ri   r:   rj   r   c                 óx  — |dk    r¡t           j        j        j        rz|j        s
J d¦   «         ‚t          j        t           j        j        j        j	        | j
        ¬¦  «                             ||j        j                             ¦   «         g|¢R |¦  «        S t          d¦  «         d S t          d|› �¦  «         d S )NÚqueue_callbackzXqueue_callback() is only supported when Compiled Autograd is enabled with fullgraph=Truer`   z#torch._C._ImperativeEngine method: )rr   r[  Úcompiled_autogradÚin_compiled_autograd_regionÚ	one_graphr	   r    r\  ÚFakeCompiledAutogradEnginer•  rJ   rx   rz   ru   Úget_ca_final_callbacks_varr   ©r9   rE   rU   rh   r:   s        r/   rˆ   z"AutogradEngineVariable.call_method™  sæ   € ð Ð#Ò#Ð#ÝŒ}Ô.ÔJð à”Lðnð nàmñnô nØ å Ô5Ý”MÔ0ÔKÔZØœ;ðñ ô ÷  ’-ØØ”YÔ+×FÒFÑHÔHÐPÈ4ÐPÐPØñô ðõ Ønñô ð ð ð õ ÐFÀÐFÐFÑGÔGÐGÐGÐGr.   r>   r’   r”   ©r*   r+   r,   r§   r6   rˆ   r—   r˜   s   @r/   r’  r’  Œ  sš   ø€ € € € € ðð ð ðGð
 
ðGð Gð Gð Gð Gð GðHð &ð	Hð
 -ðHð 
ðHð Hð Hð Hð Hð Hð Hð Hr.   r’  c                   ó8   ‡ — e Zd Zdˆ fd„Z	 	 	 	 	 	 	 	 dd„Zˆ xZS )rq   r2   Nc                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S r4   )r5   r6   r½   )r9   r½   r:   r;   s      €r/   r6   zLambdaVariable.__init__¶  s+   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØˆŒˆˆr.   rE   r'   rh   ri   r:   rj   r   c                 ó   —  | j         |i |¤ŽS r>   )r½   ra  s       r/   rx   zLambdaVariable.call_functionº  s   € ð ˆtŒw˜Ð' Ð'Ð'Ð'r.   r’   rÀ   )r*   r+   r,   r6   rx   r—   r˜   s   @r/   rq   rq   µ  sw   ø€ € € € € ðð ð ð ð ð ð(à#ð(ð &ð(ð -ð	(ð
 
ð(ð (ð (ð (ð (ð (ð (ð (r.   rq   c                   óä   ‡ — e Zd Zddhej        £Zddˆ fd„Zˆ fd„Zdefd„Ze	de
j        j        fd	„¦   «         Zd
„ Zd„ Zdd„Zd„ Z	 	 	 	 	 	 	 	 dd„Zdee         deeef         defˆ fd„Zˆ xZS )rc   rU   Úpy_typeNr2   c                 óÀ   •—  t          ¦   «         j        di |¤Ž t          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚|| _        || _        || _        d S r4   )r5   r6   rv   r   r–   rò   rU   r¡  )r9   rò   rU   r¡  r:   r;   s        €r/   r6   zGetAttrVariable.__init__Ê  se   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ý˜#�Ñ/Ô/Ð/Ð/Ð/Ý˜$¥Ñ$Ô$Ð$Ð$Ð$ØˆŒØˆŒ	ØˆŒˆˆr.   c                 ód   •— | j         �| j         S t          ¦   «                              ¦   «          d S r>   )r¡  r5   rI   ©r9   r;   s    €r/   rI   zGetAttrVariable.python_typeÒ  s/   ø€ ØŒ<Ð#Ø”<Ðå‰GŒG×ÒÑ!Ô!Ð!Ð!Ð!r.   c                 ó@   — | j         j        › d| j        › d| j        › d�S ©Nú(ro   rþ   )r;   r*   rò   rU   r†  s    r/   Ú__repr__zGetAttrVariable.__repr__Ø  s*   € Ø”.Ô)ÐDÐD¨D¬HÐDÐD¸¼	ÐDÐDÐDÐDr.   Ú
base_proxyc                 ó"   — t          | |¦  «        S r>   )rP   )r©  r‘   s     r/   Úcreate_getattr_proxyz$GetAttrVariable.create_getattr_proxyÛ  s   € å�z 4Ñ(Ô(Ð(r.   c                 óp   — t                                | j                             ¦   «         | j        ¦  «        S r>   )rc   r«  rò   r‡  rU   r†  s    r/   r‡  zGetAttrVariable.as_proxyß  s(   € Ý×3Ò3°D´H×4EÒ4EÑ4GÔ4GÈÌÑSÔSÐSr.   c                 ó¢   — | j                              ¦   «         }	 t          || j        ¦  «        S # t          $ r t          | › d�¦  «        d ‚w xY w)Nz is not a constant)rò   rH   rP   rU   rÿ   r‹   )r9   Úconstants     r/   rH   z"GetAttrVariable.as_python_constantâ  se   € Ø”8×.Ò.Ñ0Ô0ˆð	MÝ˜8 T¤YÑ/Ô/Ð/øÝð 	Mð 	Mð 	MÝ%¨Ð&AÐ&AÐ&AÑBÔBÈÐLð	Møøøs	   ›0 °ArE   r'   c                 ó>  — t          | j        t          j        ¦  «        st          ‚|j                             | j        j        ¦  «        }| j        |j	        vrt          ‚t          j        || j        ¦  «        }||j	        vrt          ‚t          j        ||¦  «        S r>   )rv   rò   r	   r6  r‹   rz   Úget_submoduleÚ
module_keyrU   rS   rÙ   rj  )r9   rE   rU   Ústep1Ústep2s        r/   Úconst_getattrzGetAttrVariable.const_getattré  sˆ   € Ý˜$œ(¥IÔ$>Ñ?Ô?ð 	&Ý%Ð%Ø”	×'Ò'¨¬Ô(;Ñ<Ô<ˆØŒ9˜EœNÐ*Ð*Ý%Ð%ÝÔ& u¨d¬iÑ8Ô8ˆØ�u”~Ð%Ð%Ý%Ð%ÝÔ% e¨TÑ2Ô2Ð2r.   c                 ó€   —  || j         ¦  «         |                     |                     | j        ¦  «        ¦  «         d S r>   )rò   rC   Úcreate_load_attrsrU   r£   s     r/   rD   zGetAttrVariable.reconstructô  s>   € Øˆ�”ÑÔÐØ×Ò˜g×7Ò7¸¼	ÑBÔBÑCÔCÐCÐCÐCr.   rh   ri   r:   rj   r   c                 óF   — | j                              || j        ||¦  «        S r>   )rò   rˆ   rU   ra  s       r/   rx   zGetAttrVariable.call_functionø  s"   € ð Œx×#Ò# B¨¬	°4¸Ñ@Ô@Ð@r.   c                 ó¾  •— |dv rà| j         dk    rÕ|sÓ|d                              ¦   «         r¹t          | j        t          j        t          j        t          j        f¦  «        rƒ| j        }|d                              ¦   «         }| 	                    ||¦  «        r| 
                    ||¦  «        S |dk    r/t          |¦  «        dk    r|d         S t	          j        d ¦  «        S nÕ|dk    rÏ| j         dk    rÄt          |¦  «        dk    r±|d                              ¦   «         r—|s•t          | j        t          j        t          j        t          j        f¦  «        r_| j        }|d                              ¦   «         }| 	                    ||¦  «        rt	          j        d¦  «        S t	          j        d	¦  «        S t          ¦   «                              ||||¦  «        S )
N)rn   rT   rS   r   rT   r   r   Ú__contains__TF)rU   r„   rv   rò   r	   r&   r6  rP  rH   Úhas_key_in_generic_dictrg   rR   ra   r5   rˆ   )r9   rE   rU   rh   r:   rò   r�   r;   s          €r/   rˆ   zGetAttrVariable.call_method   sà  ø€ ð Ð*Ð*Ð*Ø”	˜ZÒ'Ð'Øð (à�Q”×*Ò*Ñ,Ô,ð (õ Ø”åÔ7ÝÔ.ÝÔ6ðñô ð (ð ”(ˆCØ�q”'×,Ò,Ñ.Ô.ˆCØ×*Ò*¨2¨sÑ3Ô3ð 0à—’ r¨3Ñ/Ô/Ð/ð �uŠ}ˆ}Ý�t‘9”9 ’>�>Ø œ7�Nå$Ô5°dÑ;Ô;Ð;ð	 ð �NÒ"Ð"Ø”	˜ZÒ'Ð'Ý�D‘	”	˜Q’�Ø�Q”×*Ò*Ñ,Ô,ð àð õ Ø”åÔ7ÝÔ.ÝÔ6ðñô ð ð ”(ˆCØ�q”'×,Ò,Ñ.Ô.ˆCØ×*Ò*¨2¨sÑ3Ô3ð 9Ý Ô1°$Ñ7Ô7Ð7å Ô1°%Ñ8Ô8Ð8å‰wŒw×"Ò" 2 t¨T°6Ñ:Ô:Ð:r.   r>   r’   r“   rÀ   )r*   r+   r,   r   r•   r6   rI   r–   r¨  r|   rr   ÚfxÚProxyr«  r‡  rH   r´  rD   rx   r   r   rˆ   r—   r˜   s   @r/   rc   rc   Ã  s—  ø€ € € € € àØðð 
Ô	'ð€Nðð ð ð ð ð ð ð"ð "ð "ð "ð "ðE˜#ð Eð Eð Eð Eð ð)¨¬¬ð )ð )ð )ñ „\ð)ðTð Tð TðMð Mð Mð	3ð 	3ð 	3ð 	3ðDð Dð DðAà#ðAð &ðAð -ð	Að
 
ðAð Að Að Að8;ð �?Ô#ð	8;ð
 �S˜/Ð)Ô*ð8;ð 
ð8;ð 8;ð 8;ð 8;ð 8;ð 8;ð 8;ð 8;ð 8;ð 8;r.   rc   c                   óH   ‡ — e Zd Zdˆ fd„Z	 	 	 	 	 	 	 	 dˆ fd„Zd„ Zd„ Zˆ xZS )ÚMethodWrapperVariabler2   Nc                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S r4   )r5   r6   Úmethod_wrapper)r9   rÀ  r:   r;   s      €r/   r6   zMethodWrapperVariable.__init__<  s.   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ø,ˆÔÐÐr.   rE   r'   rh   ri   r:   rj   r   c                 ó\  •— t          | j        ¦  «        rst          |d         t          j        ¦  «        rSt          |¦  «        dk    rt          |¦  «        dk    sJ ‚|d                              || j        j        j        ¦  «        S t          ¦   «          
                    |||¦  «         d S )Nr   r   )r   rÀ  rv   r	   r4  rR   rg   Ú__self__r*   r5   rx   )r9   rE   rh   r:   r;   s       €r/   rx   z#MethodWrapperVariable.call_function@  s¥   ø€ õ & dÔ&9Ñ:Ô:ð 	R½zØ�ŒG•YÔ-ñ@
ô @
ð 	Rõ �t‘9”9 ’>�>¥c¨&¡k¤k°QÒ&6Ð&6Ð&6Ð6à˜”7×&Ò& r¨4Ô+>Ô+GÔ+PÑQÔQÐQå‰Œ×Ò˜b $¨Ñ/Ô/Ð/Ð/Ð/r.   c                 ó   — dS ©NTr-   r†  s    r/   r„   z(MethodWrapperVariable.is_python_constantO  ó   € Øˆtr.   c                 ó   — | j         S r>   )rÀ  r†  s    r/   rH   z(MethodWrapperVariable.as_python_constantR  s   € ØÔ"Ð"r.   r’   rÀ   )r*   r+   r,   r6   rx   r„   rH   r—   r˜   s   @r/   r¾  r¾  ;  sŸ   ø€ € € € € ð-ð -ð -ð -ð -ð -ð0à#ð0ð &ð0ð -ð	0ð
 
ð0ð 0ð 0ð 0ð 0ð 0ðð ð ð#ð #ð #ð #ð #ð #ð #r.   r¾  c                   ó8   ‡ — e Zd Zd	ˆ fd„Zd
ˆ fd„Zd„ Zd„ Zˆ xZS )ÚGetSetDescriptorVariabler2   Nc                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S r4   )r5   r6   Údesc)r9   rÊ  r:   r;   s      €r/   r6   z!GetSetDescriptorVariable.__init__W  s+   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØˆŒ	ˆ	ˆ	r.   rE   r'   c                 óÌ   •— |dk    r<| j         r5t          | j         d¦  «        }t          j        || j        j        |¦  «        S t          ¦   «                              ||¦  «        S )Nrk  )rJ   r   r   r…   rÊ  rk  r5   rg   r�  s       €r/   rg   z$GetSetDescriptorVariable.var_getattr[  sZ   ø€ Ø�9ÒÐ ¤ÐÝ ¤¨YÑ7Ô7ˆFÝ"Ô(¨¨T¬YÔ->ÀÑGÔGÐGå‘7”7×&Ò& r¨4Ñ0Ô0Ð0r.   c                 ó   — dS rÄ  r-   r†  s    r/   r„   z+GetSetDescriptorVariable.is_python_constantb  rÅ  r.   c                 ó   — | j         S r>   )rÊ  r†  s    r/   rH   z+GetSetDescriptorVariable.as_python_constante  s
   € ØŒyÐr.   r’   r“   )r*   r+   r,   r6   rg   r„   rH   r—   r˜   s   @r/   rÈ  rÈ  V  sy   ø€ € € € € ðð ð ð ð ð ð1ð 1ð 1ð 1ð 1ð 1ðð ð ðð ð ð ð ð ð r.   rÈ  c                   óp   ‡ — e Zd Zddhej        £Zdej        ddfˆ fd„Zd„ Zd„ Z	de
fd„Zdd„Zdd„Zˆ xZS )ÚPythonModuleVariablerM   Úis_torchr2   Nc                 ó¬   •—  t          ¦   «         j        di |¤Ž || _        | j        t          u p| j        j                             d¦  «        | _        d S )Nztorch.r-   )r5   r6   rM   rr   r*   Ú
startswithrÐ  rû   s      €r/   r6   zPythonModuleVariable.__init__p  sQ   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØˆŒ
Øœ
¥eÐ+ÐW¨t¬zÔ/B×/MÒ/MÈhÑ/WÔ/WˆŒˆˆr.   c                 ó   — t           j        S r>   )r~   Ú
ModuleTyper†  s    r/   rI   z PythonModuleVariable.python_typeu  s   € ÝÔÐr.   c                 ó   — | j         S r>   ©rM   r†  s    r/   rH   z'PythonModuleVariable.as_python_constantx  ó
   € ØŒzÐr.   c                 ó   — d| j         › d�S )NzPythonModuleVariable(rþ   rÖ  r†  s    r/   r¨  zPythonModuleVariable.__repr__{  s   € Ø4 t¤zÐ4Ð4Ð4Ð4r.   rE   r'   c                 ój   — t          | j        |¦  «        }t          j                             |¦  «        S r>   )rØ   rM   r	   ra   rf   ©r9   rE   rU   Úresults       r/   Úcall_hasattrz!PythonModuleVariable.call_hasattr~  s*   € Ý˜œ TÑ*Ô*ˆÝÔ)×0Ò0°Ñ8Ô8Ð8r.   c                 ó`  — |j         j                             | |¦  «        r |j         j                             | |¦  «        S | j        s|| j        j        vrt          | j        |¦  «        }n| j        j        |         }| j        ot          | j        |¦  «        }t          j        |||¦  «        S r>   )rz   ru   Úhas_pending_mutation_of_attrÚ	load_attrrÐ  rM   rS   rP   rJ   r   r   r…   r   s        r/   rg   z PythonModuleVariable.var_getattr‚  s£   € ØŒ9Ô!×>Ò>¸tÀTÑJÔJð 	@Ø”9Ô)×3Ò3°D¸$Ñ?Ô?Ð?àŒ=ð 	3˜D¨¬
Ô(;Ð;Ð;Ý  ¤¨TÑ2Ô2ˆJˆJàœÔ,¨TÔ2ˆJà”Ð>¥¨D¬K¸Ñ!>Ô!>ˆÝÔ$ R¨°VÑ<Ô<Ð<r.   r“   )r*   r+   r,   r   r•   r~   rÔ  r6   rI   rH   r–   r¨  rÜ  rg   r—   r˜   s   @r/   rÏ  rÏ  i  sÑ   ø€ € € € € àØðð 
Ô	'ð€NðX˜eÔ.ð X¸Tð Xð Xð Xð Xð Xð Xð
 ð  ð  ðð ð ð5˜#ð 5ð 5ð 5ð 5ð9ð 9ð 9ð 9ð
=ð 
=ð 
=ð 
=ð 
=ð 
=ð 
=ð 
=r.   rÏ  c                   óJ   ‡ — e Zd Zdˆ fd„Z	 	 	 	 	 	 dd	„Zd
ddefd„Zd„ Zˆ xZS )ÚTypingVariabler2   Nc                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S r4   rú   rû   s      €r/   r6   zTypingVariable.__init__�  rü   r.   rh   ri   r:   rj   r   c                 ó¾   — |dk    rGt          |¦  «        dk    r4| j        |d                              ¦   «                  }t          |¦  «        S t	          d¦  «         d S )Nrn   r   r   z+unsupported method call on typing variablel)rR   rM   rH   rá  r   )r9   rE   rU   rh   r:   Ú
new_typings         r/   rˆ   zTypingVariable.call_method”  s\   € ð �=Ò Ð ¥S¨¡Y¤Y°!¢^ ^Øœ D¨¤G×$>Ò$>Ñ$@Ô$@ÔAˆJÝ! *Ñ-Ô-Ð-ÝÐCÑDÔDÐDÐDÐDr.   rE   r'   rU   c                 ó,  — ddl m}m} |j        j                             | |¦  «        r|j                             | |¦  «        S t          | j        |¦  «        }| j	        r*t          | j	        |¦  «        }  |||¦  «        |¦  «        S  |||¦  «        S )Nr   )ÚSourcelessBuilderÚVariableBuilder)rg  ræ  rç  rz   ru   rÞ  rß  rP   rM   rJ   r   )r9   rE   rU   ræ  rç  rM   Úattr_sources          r/   rg   zTypingVariable.var_getattr¡  sª   € Ø?Ð?Ð?Ð?Ð?Ð?Ð?Ð?àŒ9Ô!×>Ò>¸tÀTÑJÔJð 	9Ø”?×,Ò,¨T°4Ñ8Ô8Ð8å˜œ
 DÑ)Ô)ˆØŒ;ð 	0Ý$ T¤[°$Ñ7Ô7ˆKØ3�?�? 2 {Ñ3Ô3°EÑ:Ô:Ð:à$Ð$ R¨Ñ/Ô/Ð/r.   c                 ó   — | j         S r>   rÖ  r†  s    r/   rH   z!TypingVariable.as_python_constant®  r×  r.   r’   r”   )	r*   r+   r,   r6   rˆ   r–   rg   rH   r—   r˜   s   @r/   rá  rá  �  s¨   ø€ € € € € ðð ð ð ð ð ðEð &ð	Eð
 -ðEð 
ðEð Eð Eð Eð0Ð5ð 0¸Sð 0ð 0ð 0ð 0ðð ð ð ð ð ð r.   rá  )Úmaxsizec                  óÖ   — ddl m}  i }|                      ¦   «         D ]K\  }}|j                             ¦   «         D ],\  }}t	          |¦  «        rt          ||d ¦  «        x}r|||<   Œ-ŒL|S )Nr   )ÚNP_TO_TNP_MODULE)Úutilsrì  r»   rS   rÕ   rP   )rì  Únp_fn_to_tnp_fnÚnp_modÚtnp_modr¸   Útnp_fnÚnp_fns          r/   Úget_np_to_tnp_mapró  ²  s�   € à(Ð(Ð(Ð(Ð(Ð(à€Oà+×1Ò1Ñ3Ô3ð 4ð 4‰ˆ�Ø&Ô/×5Ò5Ñ7Ô7ð 	4ð 	4‰OˆG�VÝ˜ÑÔð 4õ $ F¨G°TÑ:Ô:Ð:�5ð 4Ø-3�O EÑ*øð	4ð Ðr.   c                   óœ   ‡ — e Zd ZdZej        fZdˆ fd„Zed„ ¦   «         Z	ed„ ¦   «         Z
	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Zd„ Zˆ fd„Zˆ xZS )ÚNumpyVariablezz
    Wrapper around `numpy.*`. Currently, is able to trace a small subset of numpy functions as well as numpy dtypes.
    r2   Nc                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S r4   rú   rû   s      €r/   r6   zNumpyVariable.__init__Ê  rü   r.   c                 ó’   — |j                              d¦  «        }t          |¦  «        dk    r|d d…         ddgk    sJ ‚|| j        v S ©Nú.r   rr   Ú_numpy)r+   ÚsplitrR   Úconstant_fold_functions©Úclsr½   Úmods      r/   Úcan_constant_fold_throughz'NumpyVariable.can_constant_fold_throughÎ  sQ   € àŒm×!Ò! #Ñ&Ô&ˆÝ�3‰xŒx˜1Š}ˆ}  R a R¤¨W°hÐ,?Ò!?Ð!?Ð!?Ð?Ø�SÔ0Ð0Ð0r.   c                 ó¶   — |j                              d¦  «        }t          |¦  «        dk    r|d d…         ddgk    sJ ‚t                               |d ¦  «        S rø  )r+   rû  rR   Únp_constant_collections_maprT   rý  s      r/   Ú get_constant_collection_for_funcz.NumpyVariable.get_constant_collection_for_funcÔ  sY   € àŒm×!Ò! #Ñ&Ô&ˆÝ�3‰xŒx˜1Š}ˆ}  R a R¤¨W°hÐ,?Ò!?Ð!?Ð!?Ð?Ý*×.Ò.¨r°4Ñ8Ô8Ð8r.   rE   r'   rh   ri   r:   rj   r   c           	      ó:  — t           j        st          d| j        › d�¦  «         ddlm} ddlm} t          ¦   «          	                    | j        ¦  «        }|€t          d| j        › d�¦  «         |  
                    |¦  «        x}	 �o	  | | j        d	„ |D ¦   «         i d
„ |                     ¦   «         D ¦   «         ¤Ž¦  «        S # t          $ r% t          | j        j        › d|› d|› �¦  «         Y d S w xY w|j        dk    r8t           j        r,d|j        › d�}|dt           j        › �z  }t          |¦  «         |                     |j        ||¦  «        \  }}|                      |¦  «        rmt'          ||¦  «        r]t(          j                              |                      ¦   «         d„ |D ¦   «         i d„ |                     ¦   «         D ¦   «         ¤Ž¦  «        S  |j        j        d ||¦  «        gt5          ||¦  «        ¢R Ž }	|                     ||	¦  «        S )Nznumpy.z()r   )Únumpy_to_tensor_wrapperr   )ÚNumpyNdarrayVariablezCan't find numpy function zM in torch._numpy.  Please file an issue to request support for this function.c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r-   ©rH   r~  s     r/   ú
<listcomp>z/NumpyVariable.call_function.<locals>.<listcomp>ô  ó$   € Ð?Ð?Ð?°Q˜!×.Ò.Ñ0Ô0Ð?Ð?Ð?r.   c                 ó>   — i | ]\  }}||                      ¦   «         “ŒS r-   r  r  s      r/   rà   z/NumpyVariable.call_function.<locals>.<dictcomp>õ  ó*   € ÐPÐPÐP¹¸¸A˜1˜a×2Ò2Ñ4Ô4ÐPÐPÐPr.   z with non-const args: ú ztorch._numpy.randomz
delegate 'z' to NumPy itself via zconfg.use_numpy_random_stream=c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r-   r  r~  s     r/   r	  z/NumpyVariable.call_function.<locals>.<listcomp>  r
  r.   c                 ó>   — i | ]\  }}||                      ¦   «         “ŒS r-   r  r  s      r/   rà   z/NumpyVariable.call_function.<locals>.<dictcomp>  r  r.   rx   )r   Útrace_numpyr   rM   rí  r  Útensorr  ró  rT   r  r»   r‹   r*   r+   Úuse_numpy_random_streamr,   Ú
patch_argsr   r   r	   ra   rf   rH   rz   rh  r   )
r9   rE   rh   r:   r  r  r¿   Úcollection_variable_typÚmsgre  s
             r/   rx   zNumpyVariable.call_functionÚ  sÐ  € õ Ô!ð 	3ÝÐ1 4¤:Ð1Ð1Ð1Ñ2Ô2Ð2à3Ð3Ð3Ð3Ð3Ð3Ø0Ð0Ð0Ð0Ð0Ð0å Ñ"Ô"×&Ò& t¤zÑ2Ô2ˆØˆ<ÝðN¨T¬Zð Nð Nð Nñô ð ð (,×'LÒ'LÈTÑ'RÔ'RÐRÐ#Øðð
Ø.Ð.Ø�D”JØ?Ð?¸$Ð?Ñ?Ô?ðàPÐPÀÇÂÁÄÐPÑPÔPðð ñô ð øõ 'ð ð ð ÝØ”zÔ*ÐQÐQÀ$ÐQÐQÈÐQÐQñô ð ð ð ð ðøøøð ”Ð#8Ò8Ð8ÝÔ2ð 9ð M 4Ô#4ÐLÐLÐL�ØÐX½Ô8VÐXÐXÑX�Ý˜cÑ"Ô"Ð"à/×:Ò:¸4¼=È$ÐPVÑWÔW‰LˆD�&à×-Ò-¨dÑ3Ô3ð 	Ý-¨d°FÑ;Ô;ð	õ !Ô1×8Ò8Ø-�D×+Ò+Ñ-Ô-Ø?Ð?¸$Ð?Ñ?Ô?ðàPÐPÀÇÂÁÄÐPÑPÔPðð ñô ð ð +�B”IÔ*ØØ'Ð'¨Ñ-Ô-ðõ # 4¨Ñ0Ô0ðð ð ˆEð
 (×.Ò.¨r°5Ñ9Ô9Ð9s   Â
;C Ã+C5Ã4C5c                 ó$   — t          d¦  «         d S )NÚnumpyr   r›  s        r/   rˆ   zNumpyVariable.call_method  s   € õ 	�gÑÔÐÐÐr.   c                 ó   — | j         S r>   rÖ  r†  s    r/   rH   z NumpyVariable.as_python_constant#  r×  r.   c                 ó¨   •— t           j        r&t          | j        t          ¦  «        r| j        j        S t          ¦   «                              ¦   «         S r>   )r   r  rv   rM   rL   r*   r5   r‡  r¤  s    €r/   r‡  zNumpyVariable.as_proxy&  sD   ø€ ÝÔð 	'¥*¨T¬Z½Ñ">Ô">ð 	'ð ”:Ô&Ð&å‰wŒw×ÒÑ!Ô!Ð!r.   r’   rÀ   r”   )r*   r+   r,   r§   ÚtnpÚ
issubdtyperü  r6   r€   r   r  rx   rˆ   rH   r‡  r—   r˜   s   @r/   rõ  rõ  Ã  s  ø€ € € € € ðð ð  #œ~Ð/Ððð ð ð ð ð ð ð1ð 1ñ „[ð1ð
 ð9ð 9ñ „[ð9ð
>:à#ð>:ð &ð>:ð -ð	>:ð
 
ð>:ð >:ð >:ð >:ð@ð &ð	ð
 -ðð 
ðð ð ð ðð ð ð"ð "ð "ð "ð "ð "ð "ð "ð "r.   rõ  c                   ó2   ‡ — e Zd Zdˆ fd„Zdefd„Zd„ Zˆ xZS )ÚNullVariabler2   Nc                 ó:   •—  t          ¦   «         j        di |¤Ž d S r4   rÊ   rË   s     €r/   r6   zNullVariable.__init__2  rÌ   r.   c                 ó   — dS )Nr  r-   r†  s    r/   r¨  zNullVariable.__repr__5  s   € Øˆ~r.   c                 óˆ   — t           j        dk     rt          d¦  «         |                     t	          d¦  «        ¦  «         d S )N)é   é   z0cannot reconstruct NullVariable in < Python 3.11Ú	PUSH_NULL)ÚsysÚversion_infor   r  r   r£   s     r/   rD   zNullVariable.reconstruct8  sB   € ÝÔ˜gÒ%Ð%ÝÐLÑMÔMÐMØ×ÒÕ0°Ñ=Ô=Ñ>Ô>Ð>Ð>Ð>r.   r’   )r*   r+   r,   r6   r–   r¨  rD   r—   r˜   s   @r/   r  r  1  sg   ø€ € € € € ð#ð #ð #ð #ð #ð #ð˜#ð ð ð ð ð?ð ?ð ?ð ?ð ?ð ?ð ?r.   r  c                   ó   — e Zd ZdZdS )rŽ   z"Marker used to implement delattr()Nr¦   r-   r.   r/   rŽ   rŽ   >  s   € € € € € Ø,Ð,Ð,Ð,r.   rŽ   c                   ó`   ‡ — e Zd ZdZdhej        £Zed„ ¦   «         Zd	ˆ fd„Zde	fd„Z
d„ Zˆ xZS )
ÚStringFormatVariablez[
    Represents a call to str.format(), we delay calling format until after the graph.
    Úformat_stringc           	      ól  — t          d„ t          j        ||                     ¦   «         ¦  «        D ¦   «         ¦  «        rPt          j                              |j        d„ |D ¦   «         i d„ |                     ¦   «         D ¦   «         ¤Ž¦  «        S  | |t          |¦  «        t          |¦  «        ¦  «        S )Nc              3   ó>   K  — | ]}|                      ¦   «         V — Œd S r>   )r„   r~  s     r/   r€  z.StringFormatVariable.create.<locals>.<genexpr>K  sB   è è € ð 
ð 
àð × Ò Ñ"Ô"ð
ð 
ð 
ð 
ð 
ð 
r.   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r-   r  )rÞ   rì   s     r/   r	  z/StringFormatVariable.create.<locals>.<listcomp>Q  s$   € Ð?Ð?Ð?°�a×*Ò*Ñ,Ô,Ð?Ð?Ð?r.   c                 ó>   — i | ]\  }}||                      ¦   «         “ŒS r-   r  r  s      r/   rà   z/StringFormatVariable.create.<locals>.<dictcomp>R  s*   € ÐPÐPÐP±T°Q¸�q˜!×.Ò.Ñ0Ô0ÐPÐPÐPr.   )ÚallÚ	itertoolsÚchainÚvaluesr	   ra   rf   Úformatr»   rÚ   rã   )rþ  r)  Úsym_argsÚ
sym_kwargss       r/   rf   zStringFormatVariable.createI  sÎ   € åð 
ð 
å”_ X¨z×/@Ò/@Ñ/BÔ/BÑCÔCð
ñ 
ô 
ñ 
ô 
ð 		õ Ô-×4Ò4Ø$�Ô$Ø?Ð?°hÐ?Ñ?Ô?ðàPÐP¸Z×=MÒ=MÑ=OÔ=OÐPÑPÔPðð ñô ð ð ˆs�=¥$ x¡.¤.µ$°zÑ2BÔ2BÑCÔCÐCr.   r2   Nc                 ó’   •—  t          ¦   «         j        di |¤Ž t          |t          ¦  «        sJ ‚|| _        || _        || _        d S r4   )r5   r6   rv   r–   r)  r3  r4  )r9   r)  r3  r4  r:   r;   s        €r/   r6   zStringFormatVariable.__init__W  sP   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ý˜-­Ñ-Ô-Ð-Ð-Ð-Ø*ˆÔØ ˆŒØ$ˆŒˆˆr.   c                 óP   — | j         j        › d| j        ›d| j        ›d| j        ›d�S r¦  )r;   r*   r)  r3  r4  r†  s    r/   r¨  zStringFormatVariable.__repr__^  s7   € Ø”.Ô)ÐkÐk¨DÔ,>ÐkÐkÀDÄMÐkÐkÐW[ÔWfÐkÐkÐkÐkr.   c                 óL  ‡ ‡— ‰                      ˆˆ fd„d¬¦  «          ‰t          j        ‰ j        ¦  «        ¦  «         d„ ‰ j                             ¦   «         D ¦   «         } ‰t          j        |¦  «        ¦  «         ‰                     t          dd¬¦  «        ¦  «         d S )Nc                  óˆ   •— ‰                       ‰                      ‰j        ¦  «        ‰                      d¦  «        g¦  «        S )Nr2  )rC   r&  r)  rö   r¡   s   €€r/   rA   z2StringFormatVariable.reconstruct.<locals>.<lambda>c  sA   ø€ �G×)Ò)à×-Ò-¨dÔ.@ÑAÔAØ×,Ò,¨XÑ6Ô6ðñô € r.   Tr  c                 óT   — i | ]%\  }}t           j                             |¦  «        |“Œ&S r-   ©r	   ra   rf   r  s      r/   rà   z4StringFormatVariable.reconstruct.<locals>.<dictcomp>l  s<   € ð 
ð 
ð 
Ù8<¸¸1�IÔ&×-Ò-¨aÑ0Ô0°!ð
ð 
ð 
r.   r%  r   r"  )	rB   r	   r  r3  r4  r»   râ   r  r   )r9   r@   r:   s   `` r/   rD   z StringFormatVariable.reconstructa  sÐ   øø€ Ø×Òðð ð ð ð ð "ð 	ñ 	
ô 	
ð 	
ð 	ˆ•	Ô'¨¬Ñ6Ô6Ñ7Ô7Ð7ð
ð 
Ø@DÄ×@UÒ@UÑ@WÔ@Wð
ñ 
ô 
ˆð 	ˆ•	Ô+¨FÑ3Ô3Ñ4Ô4Ð4Ø×ÒÕ0Ð1CÈÐKÑKÔKÑLÔLÐLÐLÐLr.   r’   )r*   r+   r,   r§   r   r•   r€   rf   r6   r–   r¨  rD   r—   r˜   s   @r/   r(  r(  B  s«   ø€ € € € € ðð ð &ÐG¨Ô(FÐG€NàðDð Dñ „[ðDð%ð %ð %ð %ð %ð %ðl˜#ð lð lð lð lðMð Mð Mð Mð Mð Mð Mr.   r(  c                   ó`   ‡ — e Zd ZdZdˆ fd„Zed„ ¦   «         Zdd„Zd	„ Zedd„¦   «         Z	ˆ xZ
S )ÚDebuggingVariablez†
    Represents a call to a debugging function like print(), or something
    registered to config.reorderable_logging_functions.
    r2   Nc                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S r4   rú   rû   s      €r/   r6   zDebuggingVariable.__init__y  rü   r.   c                 óœ   — t          | ¦  «        o=t          | t          j        t          j        f¦  «        o| t
          j        j        j        v S r>   )	rÕ   rv   r~   r   ÚBuiltinFunctionTyperr   r[  r   Úreorderable_logging_functions)rò   s    r/   Úis_reorderable_logging_functionz1DebuggingVariable.is_reorderable_logging_function}  sF   € õ �S‰MŒMð JÝ˜3¥Ô!3µUÔ5NÐ OÑPÔPðJà•u”}Ô+ÔIÐIð	
r.   rE   r'   c           	      óÞ   — |j         rd S |                      | j        ||¦  «        st          d| j        › d|› d|› d�¦  «         |j                             | t          |¦  «        f¦  «         d S )NzReordering debugging function z with inputs r  z is not yet implemented.)ÚexportÚcan_reorder_logsrM   r   Údebug_localsrŒ  rÚ   ra  s       r/   rx   zDebuggingVariable.call_function…  s¢   € ØŒ9ð 	àˆFà×$Ò$ T¤Z°°vÑ>Ô>ð 	ÝðG°´ð Gð GØ#ðGð GØ&,ðGð Gð Gñô ð ð
 	Œ×Ò ¥d¨4¡j¤jÐ1Ñ2Ô2Ð2Ð2Ð2r.   c                 ó6   — | j                              |¦  «        S r>   )rJ   rD   r£   s     r/   rD   zDebuggingVariable.reconstruct’  s   € ØŒ{×&Ò& wÑ/Ô/Ð/r.   Tc                 óž   — t           j        t           j        t          f}t	          j        ||g¦  «        }|D ]}t          ||¦  «        s dS ŒdS )zm
        Run some additional checks for what sort of function calls can we
        actually reorder.
        FT)r	   r4  ra   r(  ÚpytreeÚtree_leavesrv   )r½   rh   r:   Úallowed_input_typesÚ	flat_argsr#  s         r/   rD  z"DebuggingVariable.can_reorder_logs•  sf   € õ Ô$ÝÔ&Ý ð
Ðõ Ô&¨¨f ~Ñ6Ô6ˆ	Øð 	ð 	ˆCÝ˜cÐ#6Ñ7Ô7ð Ø�u�uðð ˆtr.   r’   r“   )r2   T)r*   r+   r,   r§   r6   r|   rA  rx   rD   rD  r—   r˜   s   @r/   r<  r<  s  s¥   ø€ € € € € ðð ð
ð ð ð ð ð ð ð
ð 
ñ „\ð
ð3ð 3ð 3ð 3ð0ð 0ð 0ð ðð ð ñ „\ðð ð ð ð r.   r<  c                   ó8   ‡ — e Zd ZdZdˆ fd„Z	 	 	 	 	 	 dd
„Zˆ xZS )ÚLoggingLoggerVariablez<
    Represents a call to any of logging.Logger methods
    r2   Nc                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S r4   rú   rû   s      €r/   r6   zLoggingLoggerVariable.__init__¯  rü   r.   rh   ri   r:   rj   r   c                 ó  — |j         rd S t          | j        |d ¦  «        }t          |dd ¦  «        }||h                     t          j        j        j        ¦  «        rt          j	         
                    d ¦  «        S t          d¦  «         d S )Nr}   zÁLogger not supported for non-export cases. To avoid graph breaks caused by logger in compile-mode, it is recommended to disable logging by adding logging methods to config.ignore_logger_methods)rC  rP   rM   Úintersectionrr   r[  r   Úignore_logger_methodsr	   ra   rf   r   )r9   rE   rU   rh   r:   Úmethodr�  s          r/   rˆ   z!LoggingLoggerVariable.call_method³  s“   € ð Œ9ð 	àˆFÝ˜œ T¨4Ñ0Ô0ˆÝ˜6 :¨tÑ4Ô4ˆØ�HÐ×*Ò*­5¬=Ô+?Ô+UÑVÔVð 	;ÝÔ-×4Ò4°TÑ:Ô:Ð:ÝðYñ	
ô 	
ð 	
ð 	
ð 	
r.   r’   r”   rœ  r˜   s   @r/   rM  rM  ª  sy   ø€ € € € € ðð ðð ð ð ð ð ð
ð &ð	
ð
 -ð
ð 
ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r.   rM  c                   óÔ   ‡ — e Zd ZdZd Z	 ddlmZmZ	m
Z n%# e$ r  eddi ¦  «        Z	 eddi ¦  «        ZY nw xY wdˆ fd„Zd	„ Zd
ee         deeef         defd„Zdddedefd„Zˆ xZS )ÚConstantLikeVariablez8self.value is a compile-time constant, but not a literalr   )ÚdtypeÚfloatingÚgenericÚinvalid_typer-   r2   Nc                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S r4   rú   rû   s      €r/   r6   zConstantLikeVariable.__init__Ö  rü   r.   c                 ó   — | j         S r>   rÖ  r†  s    r/   rH   z'ConstantLikeVariable.as_python_constantÚ  r×  r.   rh   r:   c                 óú  — 	 d„ |D ¦   «         }d„ |                      ¦   «         D ¦   «         }n0# t          $ r# t          | j        › d|› d|› d|› d�¦  «         Y nw xY w t	          | j        |¦  «        |i |¤Ž}t          j                             |¦  «        rt          j         	                    |¦  «        S t          |t          j        ¦  «        rt          |¦  «        S t          | j        › d|› d|› �¦  «         d S )Nc                 ó6   — g | ]}|                      ¦   «         ‘ŒS r-   r  r~  s     r/   r	  z4ConstantLikeVariable.call_method.<locals>.<listcomp>æ  s$   € Ð:Ð:Ð:°�Q×)Ò)Ñ+Ô+Ð:Ð:Ð:r.   c                 ó>   — i | ]\  }}||                      ¦   «         “ŒS r-   r  r  s      r/   rà   z4ConstantLikeVariable.call_method.<locals>.<dictcomp>ç  s*   € ÐLÐLÐL±T°Q¸�q˜!×.Ò.Ñ0Ô0ÐLÐLÐLr.   rù  z(*z, **rþ   z() -> )r»   r‹   r   Ú_error_prefixrP   rM   r	   ra   rb   rf   rv   ÚreÚMatchÚConstantRegexMatchVariable)r9   rE   rU   rh   r:   ÚcargsÚckwargsrÛ  s           r/   rˆ   z ConstantLikeVariable.call_methodÝ  s0  € ð	Oà:Ð:°TÐ:Ñ:Ô:ˆEØLÐL¸V¿\º\¹^¼^ÐLÑLÔLˆGˆGøÝ"ð 	Oð 	Oð 	OÝ˜TÔ/ÐMÐM°$ÐMÐM¸$ÐMÐMÀFÐMÐMÐMÑNÔNÐNÐNÐNð	Oøøøð +•˜œ TÑ*Ô*¨EÐ=°WÐ=Ð=ˆåÔ%×0Ò0°Ñ8Ô8ð 	=ÝÔ-×4Ò4°VÑ<Ô<Ð<Ý�f�bœhÑ'Ô'ð 	6Ý-¨fÑ5Ô5Ð5å˜Ô+ÐBÐB¨dÐBÐB¸&ÐBÐBÑCÔCÐCÐCÐCs   ‚*- ­*AÁArE   r'   rU   c                 óÊ  — t          | j        |¦  «        }t          || j        ¦  «        rt	          |¦  «        }t          || j        ¦  «        rt          |¦  «        S t          |t          ¦  «        r$t          || j	        ¦  «        rt          |¦  «        S t          j                             |¦  «        rt          j                             |¦  «        S t          | |¦  «        S r>   )rP   rM   rv   Únp_floatingÚfloatÚnp_dtypeÚNumpyDTypeVariablerL   rK   Ú
np_genericrõ  r	   ra   rb   rf   rc   rÚ  s       r/   rg   z ConstantLikeVariable.var_getattrô  sÈ   € Ý˜œ TÑ*Ô*ˆÝ�f˜dÔ.Ñ/Ô/ð 	#Ý˜6‘]”]ˆFÝ�f˜dœmÑ,Ô,ð 	.Ý% fÑ-Ô-Ð-Ý�f�dÑ#Ô#ð 	)­
°6¸4¼?Ñ(KÔ(Kð 	)å  Ñ(Ô(Ð(ÝÔ%×0Ò0°Ñ8Ô8ð 	=ÝÔ-×4Ò4°VÑ<Ô<Ð<Ý˜t TÑ*Ô*Ð*r.   r’   )r*   r+   r,   r§   r^  r  rU  rg  rV  re  rW  ri  ÚImportErrorrL   r6   rH   r   r   r   r–   rˆ   rg   r—   r˜   s   @r/   rT  rT  È  sL  ø€ € € € € ØBÐBà*€Mð0ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
øð
 ð 0ð 0ð 0Ø�d˜>¨2¨rÑ2Ô2ˆØ�4˜¨¨BÑ/Ô/ˆˆˆð0øøøðð ð ð ð ð ðð ð ðDð �?Ô#ð	Dð
 �S˜/Ð)Ô*ðDð 
ðDð Dð Dð Dð.+Ð5ð +¸Sð +À_ð +ð +ð +ð +ð +ð +ð +ð +s   ‹
 –8·8rT  c                   ó   — e Zd ZdZdS )ÚRegexPatternVariablez
re.PatternN©r*   r+   r,   r^  r-   r.   r/   rl  rl    s   € € € € € Ø €M€M€Mr.   rl  c                   ó   — e Zd ZdZdS )ra  zre.MatchNrm  r-   r.   r/   ra  ra    s   € € € € € Ø€M€M€Mr.   ra  c                   ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )ÚTorchVersionVariableztorch.__version__r2   Nc                 ó¦   •— |                      dt          j        ¦  «         |d         t          j        u sJ ‚ t          ¦   «         j        di |¤Ž d S )NrM   r-   )Ú
setdefaultrr   Ú__version__r5   r6   rË   s     €r/   r6   zTorchVersionVariable.__init__  sW   ø€ Ø×Ò˜'¥5Ô#4Ñ5Ô5Ð5Ø�gŒ¥%Ô"3Ð3Ð3Ð3Ð3Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"Ð"Ð"r.   r’   )r*   r+   r,   r^  r6   r—   r˜   s   @r/   rp  rp  
  sB   ø€ € € € € Ø'€Mð#ð #ð #ð #ð #ð #ð #ð #ð #ð #r.   rp  c                   ó   — e Zd ZdZdS )ÚNumpyTypeInfoVariableznp.iinfo/np.finfoNrm  r-   r.   r/   ru  ru    s   € € € € € Ø'€M€M€Mr.   ru  c                   ó   — e Zd ZdZd„ ZdS )rh  znp.dtype[...]c                 ó$   — | j         j        j        S )a0  Similar to how numpy dtype descriptors (e.g. np.float32 ) are handled by NumpyVariable:

        np.dtype() objects are serialized as strings, torch._numpy wrappers will normalize to the torch dtype.
        This also handles unsupported things nicely (i.e. structured arrays and object arrays).
        )rM   rL   r*   r†  s    r/   r‡  zNumpyDTypeVariable.as_proxy  s   € ð ŒzŒÔ'Ð'r.   N)r*   r+   r,   r^  r‡  r-   r.   r/   rh  rh    s(   € € € € € Ø#€Mð(ð (ð (ð (ð (r.   rh  c                   ó,   ‡ — e Zd ZdZdˆ fd„Zd	d„Zˆ xZS )
ÚRandomClassVariablezrandom.Randomr2   Nc                 ó:   •—  t          ¦   «         j        di |¤Ž d S r4   rÊ   rË   s     €r/   r6   zRandomClassVariable.__init__-  rÌ   r.   rE   r'   c                 ó8  — t          |¦  «        dk    rt          d¦  «         n|rt          d¦  «         t          |¦  «        dk    rt          j                             d ¦  «        n|d         }t          |t          j                             ¦   «         ¬¦  «        S )Nr   zrandom.Random() with > 1 argzrandom.Random() with kwargsr   )Úseedrw   )rR   r   r	   ra   rf   ÚRandomVariablerÓ   rÔ   )r9   rE   rh   r:   r|  s        r/   rx   z!RandomClassVariable.call_function0  s’   € Ýˆt‰9Œ9�qŠ=ˆ=ÝÐ8Ñ9Ô9Ð9Ð9Øð 	9ÝÐ7Ñ8Ô8Ð8Ý:=¸d¹)¼)Àqº.¸.�yÔ)×0Ò0°Ñ6Ô6Ð6ÈdÐSTÌgˆÝØ¥Y¤^×%DÒ%DÑ%FÔ%Fð
ñ 
ô 
ð 	
r.   r’   r“   )r*   r+   r,   r§   r6   rx   r—   r˜   s   @r/   ry  ry  *  sW   ø€ € € € € ØÐð#ð #ð #ð #ð #ð #ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r.   ry  c                   ó  ‡ — e Zd ZdZdhej        £Zh d£Z	 	 ddeej	                 dee         ddfˆ fd„Z
d	„ Zd
„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zdee         deeef         defˆ fd„Zd„ Zˆ xZS )r}  zùrandom.Random()

    Implemented by wrapping a VariableTracker around a random.Random object.
    The supported methods for the random.Random object cannot be overriden.
    Assumes that random objects behave the same given a set seed or state.
    Úrandom>   r  ÚrandintÚuniformÚ	randrangeNÚrandr|  r2   c                 óZ  •—  t          ¦   «         j        di |¤Ž |�]|                      |¦  «        sJ ‚t          j        ¦   «         | _        | j                             |                     ¦   «         ¦  «         d S |�|                     ¦   «         nd }t          j        |¦  «        | _        d S r4   )r5   r6   Úis_supported_random_objr  ÚRandomÚsetstateÚgetstaterH   )r9   rƒ  r|  r:   r;   s       €r/   r6   zRandomVariable.__init__O  s£   ø€ ð 	�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØÐØ×/Ò/°Ñ5Ô5Ð5Ð5Ð5Ý œ-™/œ/ˆDŒKØŒK× Ò  §¢¡¤Ñ1Ô1Ð1Ð1Ð1à04Ð0@�4×*Ò*Ñ,Ô,Ð,ÀdˆDÝ œ-¨Ñ-Ô-ˆDŒKˆKˆKr.   c                 ó   — t           j        S r>   )r  r†  r†  s    r/   rI   zRandomVariable.python_type^  s
   € ÝŒ}Ðr.   c                 ó   — | j         S r>   )r  r†  s    r/   rH   z!RandomVariable.as_python_constanta  s
   € ØŒ{Ðr.   c                 ó¸  — t          | ¦  «        t          j        urdS t          j        t
          j        d¦  «        D ]œ}t          | |¦  «        s dS t          | |¦  «        }t          j
        |¦  «        r5|t          t          j        |¦  «                             | ¦  «        k    r dS Œnt          |dd ¦  «        t          t          j        |¦  «        ur dS Œ�dS )NF)r|  rˆ  r‡  r}   T)rL   r  r†  r/  r0  r}  Ú_supported_fn_namesrØ   rP   rÙ   Ú	isbuiltinrk  )rë   rU   Úmeths      r/   r…  z&RandomVariable.is_supported_random_objd  så   € å�‰9Œ9�FœMÐ)Ð)Ø�5Ý”OÝÔ.Ð0Pñ
ô 
ð 	!ð 	!ˆDõ ˜3 Ñ%Ô%ð Ø�u�uÝ˜3 Ñ%Ô%ˆDÝÔ  Ñ&Ô&ð !à�7¥6¤=°$Ñ7Ô7×?Ò?ÀÑDÔDÒDÐDØ ˜5˜5ð Eõ ˜4 ¨TÑ2Ô2½'Å&Ä-ÐQUÑ:VÔ:VÐVÐVØ ˜5˜5ð Wàˆtr.   c                 ó@  — t          | ¦  «        t          u sJ ‚t          | d         ¦  «        t          u sJ ‚t          | d         ¦  «        t          u sJ ‚t          d„ | d         D ¦   «         ¦  «        sJ ‚| d         �t          | d         ¦  «        t          u sJ ‚d S d S )Nr   r   c              3   óB   K  — | ]}t          |¦  «        t          u V — Œd S r>   )rL   Úintr~  s     r/   r€  z-RandomVariable.check_state.<locals>.<genexpr>|  s,   è è € Ð4Ð4 a•4˜‘7”7�c�>Ð4Ð4Ð4Ð4Ð4Ð4r.   r   )rL   rº   r‘  r.  rf  ©Ústates    r/   Úcheck_statezRandomVariable.check_statew  s¦   € å�E‰{Œ{�eÐ#Ð#Ð#Ð#Ý�E˜!”H‰~Œ~¥Ð$Ð$Ð$Ð$Ý�E˜!”H‰~Œ~¥Ð&Ð&Ð&Ð&ÝÐ4Ð4¨5°¬8Ð4Ñ4Ô4Ñ4Ô4Ð4Ð4Ð4Ø�QŒxÐ¥4¨¨a¬¡>¤>µUÐ#:Ð#:Ð#:Ð:ÐÐÐ#:Ð#:r.   c                 ó4  — t                                | ¦  «         t          j        t          j                             | d         ¦  «        t          j        d„ | d         D ¦   «         ¦  «        t          j                             | d         ¦  «        g¦  «        S )Nr   c                 óL   — g | ]!}t           j                             |¦  «        ‘Œ"S r-   r:  r~  s     r/   r	  z-RandomVariable.wrap_state.<locals>.<listcomp>†  s)   € ÐLÐLÐL¸a•YÔ/×6Ò6°qÑ9Ô9ÐLÐLÐLr.   r   r   )r}  r”  r	   r  ra   rf   r’  s    r/   Ú
wrap_statezRandomVariable.wrap_state  s‡   € å×"Ò" 5Ñ)Ô)Ð)ÝÔ&åÔ*×1Ò1°%¸´(Ñ;Ô;ÝÔ'ØLÐLÀ5ÈÄ8ÐLÑLÔLñô õ Ô*×1Ò1°%¸´(Ñ;Ô;ðñ
ô 
ð 	
r.   c                 ób   — |                       ¦   «         }t                               |¦  «         |S r>   )rH   r}  r”  )r“  Ú	state_objs     r/   Úunwrap_statezRandomVariable.unwrap_stateŒ  s-   € à×,Ò,Ñ.Ô.ˆ	Ý×"Ò" 9Ñ-Ô-Ð-ØÐr.   rh   r:   c                 óÎ  •‡‡— ‰dk    rv|j         j                             | ¦  «          | j        j        d„ |D ¦   «         i d„ |                     ¦   «         D ¦   «         ¤Ž t          j                             d ¦  «        S ‰dk    r,|  	                    | j         
                    ¦   «         ¦  «        S ‰dk    rq|j         j                             | ¦  «         | j                             |                      |d         ¦  «        ¦  «         t          j                             d ¦  «        S ‰| j        v r‘|j         j                             | ¦  «         | j         
                    ¦   «         Šˆˆfd„} t          | j        ‰¦  «        d„ |D ¦   «         i d	„ |                     ¦   «         D ¦   «         ¤Ž t          ||||¦  «        S t!          ¦   «                              |‰||¦  «        S )
Nr|  c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r-   r  r~  s     r/   r	  z.RandomVariable.call_method.<locals>.<listcomp>œ  ó$   € Ð7Ð7Ð7¨Q�!×&Ò&Ñ(Ô(Ð7Ð7Ð7r.   c                 ó>   — i | ]\  }}||                      ¦   «         “ŒS r-   r  r  s      r/   rà   z.RandomVariable.call_method.<locals>.<dictcomp>�  s*   € ÐPÐPÐP±X°S¸#�3˜×.Ò.Ñ0Ô0ÐPÐPÐPr.   rˆ  r‡  r   c                  ó€   •— t          j        ¦   «         }|                     ‰¦  «          t          |‰¦  «        | i |¤ŽS r>   )r  r†  r‡  rP   )rh   r:   ÚrrU   r“  s      €€r/   Úcall_random_methz4RandomVariable.call_method.<locals>.call_random_methª  s?   ø€ Ý”M‘O”O�Ø—
’
˜5Ñ!Ô!Ð!Ø'•w˜q $Ñ'Ô'¨Ð8°Ð8Ð8Ð8r.   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r-   r  r~  s     r/   r	  z.RandomVariable.call_method.<locals>.<listcomp>²  r�  r.   c                 ó>   — i | ]\  }}||                      ¦   «         “ŒS r-   r  r  s      r/   rà   z.RandomVariable.call_method.<locals>.<dictcomp>³  s*   € ÐHÐHÐH±°°A�1�a×*Ò*Ñ,Ô,ÐHÐHÐHr.   )rz   ru   Úmutationr  r|  r»   r	   ra   rf   r—  rˆ  r‡  rš  rŒ  rP   r$   r5   rˆ   )r9   rE   rU   rh   r:   r¡  r“  r;   s     `   @€r/   rˆ   zRandomVariable.call_method’  sö  øøø€ ð �6Š>ˆ>ØŒIÔ"×+Ò+¨DÑ1Ô1Ð1ØˆDŒKÔØ7Ð7°$Ð7Ñ7Ô7ðàPÐPÀÇÂÁÄÐPÑPÔPðð ð õ Ô-×4Ò4°TÑ:Ô:Ð:Ø�ZÒÐØ—?’? 4¤;×#7Ò#7Ñ#9Ô#9Ñ:Ô:Ð:Ø�ZÒÐØŒIÔ"×+Ò+¨DÑ1Ô1Ð1ØŒK× Ò  ×!2Ò!2°4¸´7Ñ!;Ô!;Ñ<Ô<Ð<ÝÔ-×4Ò4°TÑ:Ô:Ð:Ø�TÔ-Ð-Ð-ØŒIÔ"×+Ò+¨DÑ1Ô1Ð1Ø”K×(Ò(Ñ*Ô*ˆEð9ð 9ð 9ð 9ð 9ð 9ð '�G�D”K Ñ&Ô&Ø7Ð7°$Ð7Ñ7Ô7ðàHÐH¸¿º¹¼ÐHÑHÔHðð ð õ
 " "Ð&6¸¸fÑEÔEÐEÝ‰wŒw×"Ò" 2 t¨T°6Ñ:Ô:Ð:r.   c                 ót  ‡— ‰                      ˆfd„¦  «         ‰                     dd¦  «         ‰                     ¦   «          ‰                     d¦  «          ‰|                      | j                             ¦   «         ¦  «        ¦  «         ‰                     dd¦  «         ‰                     ¦   «          d S )Nc                  óˆ   •— ‰                       ‰                      t          ¦  «        ‰                      d¦  «        g¦  «        S )Nr†  )rC   rõ   r  rö   r÷   s   €r/   rA   z,RandomVariable.reconstruct.<locals>.<lambda>»  s>   ø€ �G×)Ò)à×5Ò5µfÑ=Ô=Ø×,Ò,¨XÑ6Ô6ðñô € r.   r   Fr‡  r   T)rB   rx   Údup_toprß  r—  r  rˆ  Úpop_topr£   s    `r/   rD   zRandomVariable.reconstruct¹  sÃ   ø€ Ø×Òðð ð ð ñ	
ô 	
ð 	
ð 	×Ò˜a Ñ'Ô'Ð'ð 	�ŠÑÔÐØ×Ò˜*Ñ%Ô%Ð%Øˆ�—’ ¤× 4Ò 4Ñ 6Ô 6Ñ7Ô7Ñ8Ô8Ð8Ø×Ò˜a Ñ&Ô&Ð&Ø�ŠÑÔÐÐÐr.   r�  )r*   r+   r,   r§   r   r•   rŒ  r   r  r†  r6   rI   rH   r|   r…  r”  r—  rš  r   r   r–   rˆ   rD   r—   r˜   s   @r/   r}  r}  ;  sŠ  ø€ € € € € ðð ð 	ðà	Ô	'ð€Nð
ð ð Ðð )-Ø*.ð.ð .à�v”}Ô%ð.ð �Ô'ð.ð
 
ð.ð .ð .ð .ð .ð .ðð ð ðð ð ð ðð ñ „\ðð$ ð;ð ;ñ „\ð;ð ð

ð 

ñ „\ð

ð ðð ñ „\ðð
%;ð �?Ô#ð	%;ð
 �S˜/Ð)Ô*ð%;ð 
ð%;ð %;ð %;ð %;ð %;ð %;ðNð ð ð ð ð ð r.   r}  c                   óL   ‡ — e Zd Zed„ ¦   «         Zˆ fd„Z	 	 	 	 	 	 	 	 dd„Zˆ xZS )ÚWeakRefVariablec                 ó´   — |                      dd ¦  «        } |¦   «         }|ot          |¦  «        }t          j        | ||¦  «        }||d<   t	          |fi |¤ŽS )NrJ   )rT   r   r   r…   rª  )rE   Úweakref_valueÚoptionsrJ   ÚreferentÚreferent_vts         r/   r…   zWeakRefVariable.buildÍ  sg   € à—’˜X tÑ,Ô,ˆØ �=‘?”?ˆØÐ5Õ-¨fÑ5Ô5ˆÝ%Ô+¨B°¸&ÑAÔAˆØ"ˆ�ÑÝ˜{Ð6Ð6¨gÐ6Ð6Ð6r.   c                 óH   •—  t          ¦   «         j        di |¤Ž || _        d S r4   )r5   r6   r¯  )r9   r¯  r­  r;   s      €r/   r6   zWeakRefVariable.__init__Ö  s.   ø€ Ø�‰ŒÔÐ#Ð#˜7Ð#Ð#Ð#Ø&ˆÔÐÐr.   rE   r'   rh   ri   r:   rj   r2   r   c                 ó   — | j         S r>   )r¯  ra  s       r/   rx   zWeakRefVariable.call_functionÚ  s   € ð ÔÐr.   rÀ   )r*   r+   r,   r|   r…   r6   rx   r—   r˜   s   @r/   rª  rª  Ì  s‹   ø€ € € € € Øð7ð 7ñ „\ð7ð'ð 'ð 'ð 'ð 'ð à#ð ð &ð ð -ð	 ð
 
ð ð  ð  ð  ð  ð  ð  ð  r.   rª  )nr‚   rr  rï   rÙ   r/  r  r_  r$  r~   rB  Útypingr   r   r   r   Útorch._Crr   Útorch._numpyrú  r  Útorch.utils._pytreerí  Ú_pytreerH  ri  r   r	   Úbytecode_transformationr
   r   Úcreate_parameter_opr   Úexcr   Úguardsr   r   Úmutation_guardr   rJ   r   r   r   r   r   r   r   r   r   r   r   rÓ   r   r°   r   r    r!   r"   Ú	nn_moduler#   Úuser_definedr$   r%   r&   Útorch._dynamo.symbolic_convertr'   r)   r1   rš   r¥   rª   r¬   rÂ   rÈ   rÎ   rÝ   rñ   r-  r0  Ú	dataclassro  rN  r’  rq   rc   r¾  rÈ  rÏ  rá  Ú	lru_cacheró  rõ  r  rŽ   r(  r<  rM  rT  rl  ra  rp  ru  rh  ÚfinfoÚiinforU  r  ry  r}  rª  r-   r.   r/   ú<module>rÃ     sI	  ðà Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø €€€Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6à €€€Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $à  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ FÐ FÐ FÐ FÐ FÐ FØ Ð Ð Ð Ð Ð Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð "Ð !Ð !Ð !Ð !Ð !ðð ð ð ð ð ð ð ð ð ð ð ð 5Ð 4Ð 4Ð 4Ð 4Ð 4Ø XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ Xð ð EØDÐDÐDÐDÐDÐDð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ðxCð xCð xCð xCð xC�Oñ xCô xCð xCðv5ð 5ð 5ð 5ð 5˜ñ 5ô 5ð 5ðð ð ð ð �oñ ô ð ðð ð ð ð ˜oñ ô ð ð:7ð :7ð :7ð :7ð :7�ñ :7ô :7ð :7ðz;ð ;ð ;ð ;ð ;�?ñ ;ô ;ð ;ð(#ð #ð #ð #ð #˜ñ #ô #ð #ð
a>ð a>ð a>ð a>ð a>˜ñ a>ô a>ð a>ðH<ð <ð <ð <ð <˜ñ <ô <ð <ð A
ð A
ð A
ð A
ð A
 Oñ A
ô A
ð A
ðH%ð %ð %ðp=ð p=ð p=ð p=ð p=˜ñ p=ô p=ð p=ðf ÔðMð Mð Mð Mð Mñ Mô Mñ ÔðMðl-ð l-ð l-ð l-ð l-Ð&?ñ l-ô l-ð l-ð^&Hð &Hð &Hð &Hð &HÐ6ñ &Hô &Hð &HðR(ð (ð (ð (ð (�_ñ (ô (ð (ðu;ð u;ð u;ð u;ð u;�oñ u;ô u;ð u;ðp#ð #ð #ð #ð #˜Oñ #ô #ð #ð6ð ð ð ð ˜ñ ô ð ð&#=ð #=ð #=ð #=ð #=˜?ñ #=ô #=ð #=ðL ð  ð  ð  ð  �_ñ  ô  ð  ðF €Ô˜QÐÑÔðð ñ  Ôðð j"ð j"ð j"ð j"ð j"�Oñ j"ô j"ð j"ð\
?ð 
?ð 
?ð 
?ð 
?�?ñ 
?ô 
?ð 
?ð-ð -ð -ð -ð -�oñ -ô -ð -ð.Mð .Mð .Mð .Mð .M˜?ñ .Mô .Mð .Mðb4ð 4ð 4ð 4ð 4˜ñ 4ô 4ð 4ðn
ð 
ð 
ð 
ð 
˜Oñ 
ô 
ð 
ð<7+ð 7+ð 7+ð 7+ð 7+˜?ñ 7+ô 7+ð 7+ðt!ð !ð !ð !ð !Ð/ñ !ô !ð !ðð ð ð ð Ð!5ñ ô ð ð#ð #ð #ð #ð #Ð/ñ #ô #ð #ð(ð (ð (ð (ð (Ð0ñ (ô (ð (ð	(ð 	(ð 	(ð 	(ð 	(Ð-ñ 	(ô 	(ð 	(ð „IÐ$Ø„IÐ$Ø„IÐ!ðÐ ð
ð 
ð 
ð 
ð 
˜/ñ 
ô 
ð 
ð"Nð Nð Nð Nð N�_ñ Nô Nð Nðb ð  ð  ð  ð  �oñ  ô  ð  ð  ð  r.   