§
    ž²ÅjþÏ ã                  óV  — U d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	mZmZ d dlmZmZmZmZmZmZm Z m!Z!m"Z"m#Z# d dlm$Z$ d dl%Z%d dl&Z%d dl'Z%d dl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1 d d	l2m3Z3m4Z4m5Z5m6Z6m7Z7 d d
l8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZA d dlBmCZC d dlDmEZE d dlFmGZGmHZHmIZI d dlJmKZK d dlLmMZMmNZN d dlOmPZP ddlQmRZRmSZSmTZTmUZU ddlVmWZW ddlXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZt ddlmuZumvZvmwZwmxZxmyZymzZz ddl{m|Z|m}Z}m~Z~mZm€Z€m�Z�m‚Z‚mƒZƒm„Z„m…Z…m†Z†m‡Z‡mˆZˆm‰Z‰mŠZŠm‹Z‹ dZŒde�d<   	 d dlŽZ�n# e�$ r dZ�Y nw xY we"rd dl‘m’Z’  ej“        e”¦  «        Z•e%j–         —                    e”d¦  «        Z˜e%j–         —                    e”d¦  «        Z™e%j–         —                    e”d¦  «        Zše%j–         —                    e”d¦  «        Z› G d„ d¦  «        Zœd „ Z� ejž        d¦  «        d!„ ¦   «         ZŸda d"e�d#<   d$„ Z¡dhd)„Z¢d*„ Z£d+„ Z¤did/„Z¥djd3„Z¦d4„ Z§d5„ Z¨d6„ Z©d7„ Zª ej«        d8¬9¦  «         G d:„ d;¦  «        ¦   «         Z¬d<„ Z­d=„ Z®ej«         G d>„ d?¦  «        ¦   «         Z¯ G d@„ dAej°        ¦  «        Z± G dB„ dCe=¦  «        Z² G dD„ dE¦  «        Z³dF„ Z´ G dG„ dHeœ¦  «        Zµ G dI„ dJ¦  «        Z¶dkdL„Z·dM„ Z¸dN„ Z¹dO„ ZºdP„ Z»dldW„Z¼dmdZ„Z½dnd]„Z¾d^„ Z¿dodc„ZÀ eWeÀ¦  «         dd„ ZÁde„ ZÂd dfœdg„ZÃdS )pé    )ÚannotationsN)Úcontextmanager)Údeepcopy)ÚcurrentframeÚgetframeinfo)
ÚAnyÚCallableÚDictÚListÚOptionalÚSetÚTupleÚTypeÚTYPE_CHECKINGÚUnion)ÚReferenceType)	Úcheck_obj_idÚcheck_type_idÚdict_versionÚDictGuardManagerÚ install_no_tensor_aliasing_guardÚinstall_object_aliasing_guardÚ!install_storage_overlapping_guardÚprofile_guard_managerÚRootGuardManager)Ú$is_from_flatten_script_object_sourceÚis_from_local_sourceÚis_from_optimizer_sourceÚTensorPropertyÚTensorPropertySource)	ÚCompileContextÚ	CompileIdÚDuplicateInputsÚGuardÚGuardBuilderBaseÚGuardEnvExprÚGuardSourceÚSourceÚStorageOverlap)Ú
structured)Újustknobs_check)ÚEqualityConstraintÚis_symbolicÚSYMPY_INTERP)Ú
OrderedSet)Úformat_frameÚreport_compile_source_on_error)ÚTensorWeakRefé   )ÚconfigÚconvert_frameÚexcÚmutation_guard)Úset_guard_error_hook)ÚAttrProxySourceÚ
AttrSourceÚCallFunctionNoArgsSourceÚChainedSourceÚConstDictKeySourceÚDefaultsSourceÚFlattenScriptObjectSourceÚFSDPNNModuleSourceÚGetItemSourceÚGlobalSourceÚGlobalStateSourceÚGlobalWeakRefSourceÚ
GradSourceÚLocalSourceÚNNModuleSourceÚNumpyTensorSourceÚODictGetItemSourceÚOptimizerSourceÚScriptObjectQualifiedNameSourceÚShapeEnvSourceÚSubclassAttrListSourceÚTorchFunctionModeStackSourceÚTupleIteratorGetItemSourceÚ
TypeSourceÚ"UnspecializedBuiltinNNModuleSourceÚUnspecializedNNModuleSourceÚUnspecializedParamBufferSourceÚWeakRefCallSource)Ú
CacheEntryÚDynamoFrameTypeÚ
ExtraStateÚGuardedCodeÚ	GuardFailÚGuardFn)Úcommon_constant_typesÚdict_keys_reprÚget_custom_getattrÚget_torch_function_mode_stackÚ get_torch_function_mode_stack_atÚguard_failuresÚistypeÚ	key_is_idÚ	key_to_idÚnormalize_range_iterÚorig_code_mapÚtensor_always_has_static_shapeÚtuple_iterator_getitemÚtuple_iterator_lenÚunpatched_nn_module_getattrÚverify_guard_fn_signaturez#Optional[Callable[[Any, Any], Any]]Úguard_manager_testing_hook_fn)ÚSymbolÚguardsÚ
recompilesÚrecompiles_verboseÚverbose_guardsc                  óz   — e Zd ZdZdd„Zed„ ¦   «         Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zdd
„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚGuardManagerWrappera  
    A helper class that contains the root guard manager. An instance of this
    class is stored in the Dynamo cache entry, so that the cache entry can
    access the RootGuardManager stored in the "root" attribute and directly call
    the check_nopybind from C++.
    Nc                ó  — |€t          ¦   «         | _        n|| _        d | _        d | _        d | _        g | _        d | _        d | _        d | _        d | _	        d | _
        i | _        g | _        d| _        t          ¦   «         | _        d S ©NT)r   ÚrootÚdiff_guard_rootÚclosure_varsÚargsÚ
code_partsÚverbose_code_partsÚglobal_scopeÚguard_fail_fnÚcache_entryÚextra_stateÚid_matched_objsÚno_tensor_aliasing_sourcesÚprint_no_tensor_aliasing_guardr/   Údiff_guard_sources)Úselfru   s     úEC:\Projects\Historical\venv\Lib\site-packages\torch/_dynamo/guards.pyÚ__init__zGuardManagerWrapper.__init__«   s�   € Øˆ<Ý(Ñ*Ô*ˆDŒIˆIàˆDŒIà#ˆÔØ ˆÔØˆŒ	ØˆŒØ"&ˆÔØ ˆÔØ!ˆÔØˆÔØˆÔØ!ˆÔØ*,ˆÔ'à.2ˆÔ+å3=±<´<ˆÔÐÐó    c              #  óH   K  — d| _         	 d V — d| _         d S # d| _         w xY wrt   )r�   ©rƒ   s    r„   Ú'_preserve_print_no_tensor_aliasing_flagz;GuardManagerWrapper._preserve_print_no_tensor_aliasing_flagÁ   s>   è è € à.2ˆÔ+ð	7ØˆEˆEˆEà26ˆDÔ/Ð/Ð/ø°$ˆDÔ/Ð6Ð6Ð6Ð6s   ‹ ˜	!c                ó\   ‡ ‡‡‡— ˆ ˆfd„Šˆ ˆfd„Šˆˆfd„Š ‰‰ j         ¦  «         ‰ j        S )Nc                óv  •— |                       ¦   «         ‰j        v p|                      ¦   «         dk    }t          |                      ¦   «                              ¦   «         ¦  «        D ]"\  }\  }}| ‰|¦  «         ‰|¦  «        z  z  }Œ#|r,‰j                             |                       ¦   «         ¦  «         |S ©Nr   )Ú
get_sourcer‚   Ú
fail_countÚsortedÚget_key_value_managersÚitemsÚadd)ÚnodeÚis_diff_guard_nodeÚidxÚkey_mgrÚval_mgrrƒ   Úvisits        €€r„   Úvisit_dict_managerzJGuardManagerWrapper.collect_diff_guard_sources.<locals>.visit_dict_managerÓ   sÈ   ø€ à—’Ñ!Ô! TÔ%<Ð<ÐUÀÇÂÑ@QÔ@QÐTUÒ@Uð õ ,2Ø×+Ò+Ñ-Ô-×3Ò3Ñ5Ô5ñ,ô ,ð Fð FÑ'�Ñ'�g˜wð # e e¨G¡n¤n°u°u¸W±~´~Ñ&EÑEÐ"Ð"à!ð ?ØÔ'×+Ò+¨D¯OªOÑ,=Ô,=Ñ>Ô>Ð>à%Ð%r†   c                óB  •— t          | t          ¦  «        rJ ‚|                      ¦   «         ‰j        v p|                      ¦   «         dk    }|                      ¦   «         D ]}| ‰|¦  «        z  }Œ|r,‰j                             |                      ¦   «         ¦  «         |S rŒ   )Ú
isinstancer   r�   r‚   rŽ   Úget_child_managersr’   )r“   r”   Ú	child_mgrrƒ   r˜   s      €€r„   Úvisit_managerzEGuardManagerWrapper.collect_diff_guard_sources.<locals>.visit_managerá   s¯   ø€ Ý! $Õ(8Ñ9Ô9Ð9Ð9Ð9ð —’Ñ!Ô! TÔ%<Ð<ÐUÀÇÂÑ@QÔ@QÐTUÒ@Uð ð "×4Ò4Ñ6Ô6ð 7ð 7�	Ø" e e¨IÑ&6Ô&6Ñ6Ð"Ð"à!ð ?ØÔ'×+Ò+¨D¯OªOÑ,=Ô,=Ñ>Ô>Ð>à%Ð%r†   c                ób   •— | €dS t          | t          ¦  «        r ‰| ¦  «        S  ‰| ¦  «        S )NF)r›   r   )r“   r™   rž   s    €€r„   r˜   z=GuardManagerWrapper.collect_diff_guard_sources.<locals>.visitï   sA   ø€ Øˆ|Ø�uÝ˜$Õ 0Ñ1Ô1ð 0Ø)Ð)¨$Ñ/Ô/Ð/Ø �= Ñ&Ô&Ð&r†   )ru   r‚   )rƒ   r˜   r™   rž   s   `@@@r„   Úcollect_diff_guard_sourcesz.GuardManagerWrapper.collect_diff_guard_sourcesÉ   s}   øøøø€ ð	&ð 	&ð 	&ð 	&ð 	&ð 	&ð	&ð 	&ð 	&ð 	&ð 	&ð 	&ð	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	ˆˆdŒiÑÔÐàÔ&Ð&r†   c                óV   — |                       ¦   «          |                      ¦   «          d S ©N)r    Úpopulate_diff_guard_managerrˆ   s    r„   ÚfinalizezGuardManagerWrapper.finalizeú   s,   € Ø×'Ò'Ñ)Ô)Ð)Ø×(Ò(Ñ*Ô*Ð*Ð*Ð*r†   c                óˆ   — |                       | j        ¦  «        | _        | j        r| j                             ¦   «          d S d S r¢   )Úclone_with_chosen_sourcesr‚   rv   r}   Úupdate_diff_guard_root_managerrˆ   s    r„   r£   z/GuardManagerWrapper.populate_diff_guard_managerþ   sM   € Ø#×=Ò=¸dÔ>UÑVÔVˆÔð Ôð 	>ØÔ×;Ò;Ñ=Ô=Ð=Ð=Ð=ð	>ð 	>r†   c                óB   ‡— ˆfd„}| j                              |¦  «        S )Nc                ó0   •— |                       ¦   «         ‰v S r¢   )r�   )Únode_mgrÚchosen_sourcess    €r„   Ú	filter_fnz@GuardManagerWrapper.clone_with_chosen_sources.<locals>.filter_fn  s   ø€ Ø×&Ò&Ñ(Ô(¨NÐ:Ð:r†   )ru   Úclone_manager)rƒ   r«   r¬   s    ` r„   r¦   z-GuardManagerWrapper.clone_with_chosen_sources  s4   ø€ ð	;ð 	;ð 	;ð 	;ð 	;ð Œy×&Ò& yÑ1Ô1Ð1r†   c                ód   ‡— |j         j        Š|                     ¦   «         }ˆfd„|D ¦   «         }|S )Nc                ó    •— g | ]
}‰d z   |z   ‘ŒS )ú: © )Ú.0ÚpartÚ
guard_names     €r„   ú
<listcomp>z7GuardManagerWrapper.get_guard_lines.<locals>.<listcomp>  s#   ø€ Ð<Ð<Ð<¨d�˜dÑ" TÑ)Ð<Ð<Ð<r†   )Ú	__class__Ú__name__rz   )rƒ   ÚguardÚpartsr´   s      @r„   Úget_guard_linesz#GuardManagerWrapper.get_guard_lines  s<   ø€ Ø”_Ô-ˆ
Ø×(Ò(Ñ*Ô*ˆØ<Ð<Ð<Ð<°eÐ<Ñ<Ô<ˆØˆr†   c                ój   — |                      ¦   «         }|j        j        }|dz   |z   }|r|d|z   z  }|S )Nz	: source=ú, )r�   r¶   r·   )rƒ   Úguard_managerÚaccessor_strÚsourceÚtÚss         r„   Úget_manager_linez$GuardManagerWrapper.get_manager_line  sH   € Ø×)Ò)Ñ+Ô+ˆØÔ#Ô,ˆØ�‰O˜fÑ$ˆØð 	%Ø�˜Ñ$Ñ$ˆAØˆr†   c                ó  — t          |                     ¦   «                              ¦   «         ¦  «        D ]Ò\  }\  }}|                     d|› �¦  «         |                     ¦   «         5  |rA|                     d|                      |¦  «        › �¦  «         |                      ||¦  «         |rA|                     d|                      |¦  «        › �¦  «         |                      ||¦  «         d d d ¦  «         n# 1 swxY w Y   ŒÓd S )NzKeyValueManager pair at index=zKeyManager: zValueManager: )r�   r�   r‘   Ú	writelineÚindentrÂ   Úconstruct_manager_string)rƒ   ÚmgrÚbodyr•   r–   r—   s         r„   Úconstruct_dict_manager_stringz1GuardManagerWrapper.construct_dict_manager_string  si  € Ý'-¨c×.HÒ.HÑ.JÔ.J×.PÒ.PÑ.RÔ.RÑ'SÔ'Sð 		Að 		AÑ#ˆCÑ#�'˜7Ø�NŠNÐA¸CÐAÐAÑBÔBÐBØ—’‘”ð Að AØð AØ—N’NÐ#R°$×2GÒ2GÈÑ2PÔ2PÐ#RÐ#RÑSÔSÐSØ×1Ò1°'¸4Ñ@Ô@Ð@àð AØ—N’NÐ#T°D×4IÒ4IÈ'Ñ4RÔ4RÐ#TÐ#TÑUÔUÐUØ×1Ò1°'¸4Ñ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Aøð		Að 		As   Á(BC;Ã;C?	ÄC?	c           
     óT  — |                      ¦   «         5  |                     ¦   «         D ]«}t          |t          j        j        j        j        ¦  «        rX| j        r0d| _        | 	                    |  
                    |¦  «        ¦  «         Œb| 	                    |j        j        g¦  «         Œƒ| 	                    |  
                    |¦  «        ¦  «         Œ¬t          |t          ¦  «        r|                      ||¦  «         t          |                     ¦   «         |                     ¦   «         ¦  «        D ]Y\  }}|                     |                      |d|                     ¦   «         › �¦  «        ¦  «         |                      ||¦  «         ŒZ	 d d d ¦  «         d S # 1 swxY w Y   d S )NFzaccessed_by=)rÅ   Úget_leaf_guardsr›   ÚtorchÚ_CÚ_dynamorm   ÚNO_TENSOR_ALIASINGr�   Ú
writelinesrº   r¶   r·   r   rÉ   ÚzipÚget_accessorsrœ   rÄ   rÂ   ÚreprrÆ   )rƒ   rÇ   rÈ   r¸   Úaccessorr�   s         r„   rÆ   z,GuardManagerWrapper.construct_manager_string+  sö  € Ø�[Š[‰]Œ]ð 	?ð 	?Ø×,Ò,Ñ.Ô.ð Að A�Ý˜e¥U¤XÔ%5Ô%<Ô%OÑPÔPð AØÔ:ð Ø>C˜Ô;ØŸš¨×(<Ò(<¸UÑ(CÔ(CÑDÔDÐDÐDàŸšà %¤Ô 8ðñô ð ð ð —O’O D×$8Ò$8¸Ñ$?Ô$?Ñ@Ô@Ð@Ð@õ ˜#Õ/Ñ0Ô0ð >Ø×2Ò2°3¸Ñ=Ô=Ð=õ (+Ø×!Ò!Ñ#Ô# S×%;Ò%;Ñ%=Ô%=ñ(ô (ð ?ð ?Ñ#�˜)ð —’Ø×)Ò)¨)Ð5UÀHÇMÂMÁOÄOÐ5UÐ5UÑVÔVñô ð ð ×-Ò-¨i¸Ñ>Ô>Ð>Ð>ð?ð)	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 	?ð 	?s   •E:FÆF!Æ$F!c                ó>  — ddl m}  G d„ d|¦  «        }|                      ¦   «         5   |¦   «         }d|_        |                     dd¬¦  «         |                     d	d¬¦  «         |                     d
¦  «         |                      | j        |¦  «         t          | j        d¦  «        rD| j                             ¦   «         D ]*}| 	                    |  
                    |¦  «        ¦  «         Œ+|                     ¦   «         cd d d ¦  «         S # 1 swxY w Y   d S )Nr   ©ÚIndentedBufferc                  ó&   ‡ — e Zd Zd„ Zdˆ fd„	Zˆ xZS )ú=GuardManagerWrapper.__str__.<locals>.IndentedBufferWithPrefixc                ó&   — d| j         | j        z  z  S )Nz| )Ú_indentÚtabwidthrˆ   s    r„   ÚprefixzDGuardManagerWrapper.__str__.<locals>.IndentedBufferWithPrefix.prefixL  s   € Ø˜tœ|¨d¬mÑ;Ñ<Ð<r†   Fc                óš   •— |r#t          ¦   «                              |¦  «         d S t          ¦   «                              d|z   ¦  «         d S )Nz+- )ÚsuperrÄ   )rƒ   ÚlineÚskip_prefixr¶   s      €r„   rÄ   zGGuardManagerWrapper.__str__.<locals>.IndentedBufferWithPrefix.writelineO  sK   ø€ Øð 4Ý‘G”G×%Ò% dÑ+Ô+Ð+Ð+Ð+å‘G”G×%Ò% e¨d¡lÑ3Ô3Ð3Ð3Ð3r†   ©F)r·   Ú
__module__Ú__qualname__rÝ   rÄ   Ú__classcell__©r¶   s   @r„   ÚIndentedBufferWithPrefixrÙ   K  sL   ø€ € € € € ð=ð =ð =ð4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4r†   rç   r3   Ú T)rá   zTREE_GUARD_MANAGER:r   Úget_epilogue_lambda_guards)Útorch._inductor.utilsr×   r‰   rÜ   rÄ   rÆ   ru   Úhasattrré   rÐ   rº   Úgetvalue)rƒ   r×   rç   rÈ   r¸   s        r„   Ú__str__zGuardManagerWrapper.__str__H  s†  € Ø8Ð8Ð8Ð8Ð8Ð8ð	4ð 	4ð 	4ð 	4ð 	4 ~ñ 	4ô 	4ð 	4ð ×9Ò9Ñ;Ô;ð 
	#ð 
	#Ø+Ð+Ñ-Ô-ˆDØˆDŒMØ�NŠN˜2¨4ˆNÑ0Ô0Ð0Ø�NŠNÐ0¸dˆNÑCÔCÐCØ�NŠNÐ-Ñ.Ô.Ð.Ø×)Ò)¨$¬)°TÑ:Ô:Ð:Ý�t”yÐ">Ñ?Ô?ð AØ!œY×AÒAÑCÔCð Að A�EØ—O’O D×$8Ò$8¸Ñ$?Ô$?Ñ@Ô@Ð@Ð@Ø—=’=‘?”?ð
	#ð 
	#ð 
	#ð 
	#ñ 
	#ô 
	#ð 
	#ð 
	#ð 
	#ð 
	#ð 
	#ð 
	#øøøð 
	#ð 
	#ð 
	#ð 
	#ð 
	#ð 
	#s   ©CDÄDÄDc                ó6   — | j                              |¦  «        S r¢   )ru   Úcheck©rƒ   Úxs     r„   rï   zGuardManagerWrapper.checka  s   € àŒy�Š˜qÑ!Ô!Ð!r†   c                ó6   — | j                              |¦  «        S r¢   )ru   Úcheck_verboserð   s     r„   ró   z!GuardManagerWrapper.check_verbosee  s   € àŒy×&Ò& qÑ)Ô)Ð)r†   c                óH   ‡ ‡‡‡— dŠd„ Šˆˆ ˆˆfd„Š ‰‰ j         ¦  «         d S )NFc                ó¼   — g }|                       ¦   «         D ]D}|                     d¦  «        d                              ¦   «         }|                     |¦  «         ŒE|S )Nú#r   )rz   ÚsplitÚrstripÚappend)Ú
leaf_guardry   Úverbose_code_partÚ	code_parts       r„   Úget_code_partszMGuardManagerWrapper.populate_code_parts_for_debugging.<locals>.get_code_partsm  sd   € ØˆJØ%/×%BÒ%BÑ%DÔ%Dð -ð -Ð!Ø-×3Ò3°CÑ8Ô8¸Ô;×BÒBÑDÔD�	Ø×!Ò! )Ñ,Ô,Ð,Ð,ØÐr†   c                ób  •— |                       ¦   «         D ]v}t          |t          j        j        j        j        ¦  «        r(‰s%‰j                              ‰|¦  «        ¦  «         dŠŒS‰j                              ‰|¦  «        ¦  «         Œw|  	                    ¦   «         D ]} ‰|¦  «         Œd S rt   )
rË   r›   rÌ   rÍ   rÎ   rm   rÏ   ry   Úextendrœ   )rÇ   r¸   r�   rý   rƒ   Útensor_aliasing_guard_seenr˜   s      €€€€r„   r˜   zDGuardManagerWrapper.populate_code_parts_for_debugging.<locals>.visitt  sÈ   ø€ à×,Ò,Ñ.Ô.ð Bð B�Ý˜e¥U¤XÔ%5Ô%<Ô%OÑPÔPð BØ5ð :Øœ×.Ò.¨~¨~¸eÑ/DÔ/DÑEÔEÐEØ59Ð2øà”O×*Ò*¨>¨>¸%Ñ+@Ô+@ÑAÔAÐAÐAà ×3Ò3Ñ5Ô5ð !ð !�	Ø��iÑ Ô Ð Ð ð!ð !r†   )ru   )rƒ   rý   r   r˜   s   `@@@r„   Ú!populate_code_parts_for_debuggingz5GuardManagerWrapper.populate_code_parts_for_debuggingi  s]   øøøø€ à%*Ð"ð	ð 	ð 	ð	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	ˆˆdŒiÑÔÐÐÐr†   r¢   )r·   rã   rä   Ú__doc__r…   r   r‰   r    r¤   r£   r¦   rº   rÂ   rÉ   rÆ   rí   rï   ró   r  r±   r†   r„   rr   rr   £   s  € € € € € ðð ð@ð @ð @ð @ð, ð7ð 7ñ „^ð7ð/'ð /'ð /'ðb+ð +ð +ð>ð >ð >ð2ð 2ð 2ðð ð ðð ð ð ð
Að 
Að 
Að?ð ?ð ?ð:#ð #ð #ð2"ð "ð "ð*ð *ð *ðð ð ð ð r†   rr   c                óê   — t           j                             ¦   «         5  t          | t          j        t          j        f¦  «        rt          j        | ¦  «        n| cd d d ¦  «         S # 1 swxY w Y   d S r¢   )rÌ   Ú	overridesÚ_enable_torch_functionr›   ÚnpÚgenericÚndarrayÚ	as_tensor)Úas    r„   Ú
from_numpyr  „  s»   € õ 
Œ×	/Ò	/Ñ	1Ô	1ð Tð TÝ%/°µB´JÅÄ
Ð3KÑ%LÔ%LÐS�uŒ˜qÑ!Ô!Ð!ÐRSðTð Tð Tð Tñ Tô Tð Tð Tð Tð Tð Tð Tøøøð Tð Tð Tð Tð Tð Ts   Ÿ<A(Á(A,Á/A,c                 ó�   — dd l } dd l} | j        j        | j        j        g}ddlm} |                     |¦  «         d„ |D ¦   «         S )Nr   )ÚPOLYFILLED_MODULESc                ó6   — h | ]}t          j        |¦  «        ’ŒS r±   )ÚinspectÚgetfile)r²   Úms     r„   ú	<setcomp>z&uninteresting_files.<locals>.<setcomp>˜  s"   € Ð-Ð-Ð- 1�GŒO˜AÑÔÐ-Ð-Ð-r†   )Útorch._dynamo.external_utilsÚtorch._dynamo.polyfillsrÎ   Úexternal_utilsÚ	polyfillsÚtorch._dynamo.polyfills.loaderr  rÿ   )rÌ   Úmodsr  s      r„   Úuninteresting_filesr  �  sg   € à'Ð'Ð'Ð'Ø"Ð"Ð"Ð"àŒMÔ(¨%¬-Ô*AÐB€DàAÐAÐAÐAÐAÐAà‡K‚KÐ"Ñ#Ô#Ð#à-Ð-¨Ð-Ñ-Ô-Ð-r†   zOptional[Dict[str, object]]Ú_CLOSURE_VARSc                 óÐ  — t           €Ùi dt          “dt          “dt          j        j        “dt          “dt          “dd„ “dt          “d	t          “d
t          “dt          “dt          j        “dt          €d nt          j        “dt          d¦  «        “dt           j        “dt$          j        j        “dt$          j        “dt,          “t$          j        t$          t0          dœ¥a t           S )NÚ___check_type_idÚ___check_obj_idÚ___odict_getitemÚ___key_to_idÚ___dict_versionÚ___dict_containsc                ó
   — | |v S r¢   r±   )r
  Úbs     r„   ú<lambda>z#_get_closure_vars.<locals>.<lambda>§  s
   € ¨Q°!¨V€ r†   Ú___tuple_iterator_lenÚ___normalize_range_iterÚ___tuple_iterator_getitemÚ#___get_torch_function_mode_stack_atÚ__math_isnanÚ__numpy_isnanÚinfÚ__load_moduleÚutils_deviceÚdeviceÚ___from_numpy)Ú___as_tensorrÌ   r  )r  r   r   ÚcollectionsÚOrderedDictÚ__getitem__rc   r   rh   rd   rg   r_   ÚmathÚisnanr  ÚfloatÚ	importlibÚimport_modulerÌ   ÚutilsÚ_devicer.  r  Ú_as_tensor_fullprecr  r±   r†   r„   Ú_get_closure_varsr<  ž  s&  € åÐð
Ø¥ð
à�|ð
ð ¥Ô 7Ô Cð
ð �Ið	
ð
 �|ð
ð Ð 3Ð 3ð
ð $Õ%7ð
ð &Õ';ð
ð (Õ)?ð
ð 2Õ3Sð
ð �DœJð
ð ¥R Z˜T˜TµR´Xð
ð •5˜‘<”<ð
ð �YÔ4ð
ð �EœKÔ/ð
ð  •e”lð!
ð" �Zð#
õ$ "Ô5ÝÝð)
ð 
ð 
ˆõ, Ðr†   r“   úast.ASTÚreturnÚstrc                óR   — t          j        | ¦  «                             dd¦  «        S )Nú
rè   )ÚastÚunparseÚreplace)r“   s    r„   Ú_ast_unparserE  º  s"   € ÝŒ;�tÑÔ×$Ò$ T¨2Ñ.Ô.Ð.r†   c                óÔ   — t          j        d¦  «        }d}| D ]A}|dv rd}Œ	|dv r/|r,|dk    r&|                     |¦  «        rt          |¦  «        c S Œ<||z  }ŒBt	          | ¦  «        S )zð
    "___odict_getitem(a, 1)" => "a"
    "a.layers[slice(2)][0]._xyz" ==> "a"
    "getattr(a.layers[slice(2)][0]._abc, '0')" ==> "a"
    "getattr(getattr(a.x[3], '0'), '3')" ==> "a"
    "a.layers[slice(None, -1, None)][0]._xyz" ==> "a"
    z[A-Za-z_].*rè   z (z),[]ÚNone)ÚreÚcompileÚmatchÚstrip_function_callÚstrip_getattr_getitem)ÚnameÚ
valid_nameÚcurrÚchars       r„   rK  rK  ¾  s�   € õ ”˜MÑ*Ô*€JØ€DØð ð ˆØ�4ˆ<ˆ<ØˆDˆDØ�Vˆ^ˆ^Øð 1˜ š˜¨:×+;Ò+;¸DÑ+AÔ+A˜Ý*¨4Ñ0Ô0Ð0Ð0Ð0øà�D‰LˆDˆDå  Ñ&Ô&Ð&r†   c                ó8   — t          j        d| ¦  «        d         S )z*
    "a[1]" => "a"
    "a.foo" => "a"
    z[.\[]r   )rH  r÷   ©rM  s    r„   rL  rL  Õ  s   € õ
 Œ8�H˜dÑ#Ô# AÔ&Ð&r†   rü   r¸   r$   c                ó  — d}|�€|j         rCt          |j         ¦  «        D ]-}|j        t          ¦   «         vrdt	          |d¬¦  «        › �} nŒ.n6|j        r/dt	          |j                             ¦   «         d         ¦  «        › �}| d›|› �S )Nrè   z  # T)rà   éÿÿÿÿz<60)Ú
user_stackÚreversedÚfilenamer  r0   ÚstackÚsummary)rü   r¸   ÚextraÚfss       r„   Úget_verbose_code_partr\  Ý  sµ   € Ø€EØÐØÔð 	EÝ˜uÔ/Ñ0Ô0ð ð �Ø”;Õ&9Ñ&;Ô&;Ð;Ð;Ø@¥<°¸Ð#>Ñ#>Ô#>Ð@Ð@�EØ�Eð <øð Œ[ð 	EØD�<¨¬×(;Ò(;Ñ(=Ô(=¸bÔ(AÑBÔBÐDÐDˆEØÐ$Ð$˜UÐ$Ð$Ð$r†   ry   úUnion[str | List[str]]ú	List[str]c                óP   ‡— t          | t          ¦  «        s| g} ˆfd„| D ¦   «         S )Nc                ó0   •— g | ]}t          |‰¦  «        ‘ŒS r±   )r\  )r²   rü   r¸   s     €r„   rµ   z*get_verbose_code_parts.<locals>.<listcomp>ï  s$   ø€ ÐPÐPÐP¸	Õ! )¨UÑ3Ô3ÐPÐPÐPr†   )r›   Úlist)ry   r¸   s    `r„   Úget_verbose_code_partsrb  ê  s8   ø€ õ �j¥$Ñ'Ô'ð "Ø �\ˆ
ØPÐPÐPÐPÀZÐPÑPÔPÐPr†   c                óî   — g }| D ]o}t          |¦  «        s|                     |¦  «         Œ't          |t          j        ¦  «        sJ ‚|                     |j                             ¦   «         ¦  «         Œp|S r¢   )r-   rù   r›   rÌ   ÚSymIntr“   Úmaybe_as_int)Úsize_or_strideÚ	convertedÚdims      r„   Úconvert_to_concrete_valuesri  ò  s€   € Ø%'€IØð 6ð 6ˆÝ˜3ÑÔð 	6Ø×Ò˜SÑ!Ô!Ð!Ð!å˜c¥5¤<Ñ0Ô0Ð0Ð0Ð0Ø×Ò˜SœX×2Ò2Ñ4Ô4Ñ5Ô5Ð5Ð5ØÐr†   c                óR  — t          | ¦  «        }t          j                             | ¦  «        t          j                             ¦   «         z  t          j                             ¦   «         z
  }| j        }| j        j        }| j	        }d|› d|j
        › d|› d|› d|› d|› d|› d|› d�}	|	S )Nzcheck_tensor(r¼   z	, device=z, requires_grad=z, size=z	, stride=ú))ÚtyperÌ   rÍ   Ú_dispatch_keysÚ_dispatch_tls_local_include_setÚ_dispatch_tls_local_exclude_setÚdtyper.  ÚindexÚrequires_gradrä   )
ÚvaluerM  ÚsizesÚstridesÚpytypeÚdispatch_keyrp  Údevice_indexrr  Ú	guard_strs
             r„   Úget_tensor_guard_code_partrz  ý  sö   € Ý�%‰[Œ[€FåŒ×Ò Ñ&Ô&­¬×)QÒ)QÑ)SÔ)SÑSÝŒ×0Ò0Ñ2Ô2ñ3€Lð ŒK€EØ”<Ô%€LØÔ'€Mð	a˜ð 	að 	a Ô 3ð 	að 	a°|ð 	að 	aÀuð 	að 	aØð	að 	aØ0=ð	að 	aØFKð	að 	aØV]ð	að 	að 	að ð Ðr†   c                ój   — t          |                      ¦   «         ¦  «                             |¦  «        S r¢   )ra  Úkeysrq  )ÚdctÚkeys     r„   Úget_key_indexr    s&   € Ý�—’‘
”
ÑÔ×!Ò! #Ñ&Ô&Ð&r†   c                ó   — d| › d|› d�S )Núlist(ú	.keys())[ú]r±   )r¿   rq  s     r„   Úget_key_index_sourcer„    s   € Ø,�6Ð,Ð, EÐ,Ð,Ð,Ð,r†   T)Úfrozenc                  ó:   — e Zd ZU dZded<   dZded<   dZded<   dS )ÚNNModuleAttrAccessorInfoFÚboolÚpresent_in_generic_dictNzOptional[str]Úl1_keyÚl2_key)r·   rã   rä   r‰  Ú__annotations__rŠ  r‹  r±   r†   r„   r‡  r‡    sL   € € € € € € ð %*ÐÐ)Ð)Ð)Ñ)ð !€FÐ Ð Ð Ñ ð !€FÐ Ð Ð Ñ Ð Ð r†   r‡  c                ó¾  — | j                              ¦   «         }|                      ¦   «         }t          | j        t          ¦  «        r| j        j        }n,t          |t
          ¦  «        sJ ‚t          || j        ¦  «        }t          ||¦  «        }t          | 	                    ¦   «         ¦  «        |         }	t          |	t          t          f¦  «        r	|› d|	›d�}
n|› d|› d�}
t          | j        t          ¦  «        sG|                     ||| j        t          j        ¬¦  «                             | j        |› d|	›�g¦  «         |                     ||
||¬¦  «        S )Nú[rƒ  ©rq  r¿   Úexample_valueÚguard_manager_enumú == )ÚbaserM  r›   rq  r=   Údictr  r„  ra  r|  Úintr?  Úget_key_managerÚGuardManagerTypeÚGUARD_MANAGERÚadd_equals_match_guardÚget_value_manager)r¿   Úbase_guard_managerÚbase_example_valuer�  r‘  Úbase_source_nameÚsource_namerq  Ú
key_sourceÚkey_example_valueÚvalue_sources              r„   Úgetitem_on_dict_managerr¢  #  s�  € ð ”{×'Ò'Ñ)Ô)ÐØ—+’+‘-”-€KÝ�&”,Õ 2Ñ3Ô3ð @Ø”Ô"ˆˆåÐ,­dÑ3Ô3Ð3Ð3Ð3ÝÐ0°&´,Ñ?Ô?ˆå%Ð&6¸Ñ>Ô>€JÝÐ/×4Ò4Ñ6Ô6Ñ7Ô7¸Ô>ÐÝÐ#¥c­3 ZÑ0Ô0ð ;Ø*ÐCÐCÐ->ÐCÐCÐCˆˆà*Ð:Ð:¨ZÐ:Ð:Ð:ˆÝ�f”lÕ$6Ñ7Ô7ð 

ð 	×*Ò*ØØØ œ,Ý/Ô=ð	 	+ñ 	
ô 	
÷
 !Ò
 ØŒL˜jÐCÐCÐ.?ÐCÐCÐDñ
ô 
ð 
ð ×/Ò/ØØØ#Ø-ð	 0ñ ô ð r†   c                ód   — | j         }|                     ¦   «         ot          |t          ¦  «         S r¢   )Úoriginating_sourceÚis_dict_keyr›   rE   )r¸   r¿   s     r„   Úmatch_on_id_for_tensorr¦  H  s.   € ØÔ%€FØ×ÒÑÔÐF­
°6½:Ñ(FÔ(FÐ$FÐFr†   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚGuardCodeListr^  Ú	code_listr$   r¸   N©r·   rã   rä   rŒ  r±   r†   r„   r¨  r¨  O  s%   € € € € € € àÐÐÑØ€L€L�L€L€Lr†   r¨  c                  ó   — e Zd ZdZdZdZdS )r—  r3   é   é   N)r·   rã   rä   r˜  ÚDICT_GUARD_MANAGERÚDICT_SUBCLASS_GUARD_MANAGERr±   r†   r„   r—  r—  U  s!   € € € € € Ø€MØÐØ"#ÐÐÐr†   r—  c                  óž  — e Zd ZdOd„Zd„ Zd„ Zed„ ¦   «         Zd„ Zd„ Z	d„ Z
d„ Zd„ Zd„ ZdPd„Z	 	 dQd„ZdRd"„ZdSd$„ZdTd&„ZdPd'„ZdUdVd)„ZdVd*„ZdPd+„ZdWd/„ZdPd0„ZdUdPd1„ZdPd2„ZdPd3„ZdPd4„ZdPd5„ZdPd6„ZdPd7„ZdPd8„Z dPd9„Z!dPd:„Z"dPd;„Z#dPd<„Z$dPd=„Z%d>„ Z&d?„ Z'd@„ Z(dA„ Z)dB„ Z*dC„ Z+dD„ Z,dE„ Z-dPdF„Z.dPdG„Z/dPdH„Z0dPdI„Z1dPdJ„Z2dPdK„Z3dPdL„Z4dUdPdM„Z5dUdN„Z6dS )XÚGuardBuilderÚid_refúCallable[[Any, str], str]Ú
source_refúCallable[[Source], str]Úlookup_weakrefsú)Callable[[object], ReferenceType[object]]Úlocal_scopeúDict[str, object]r{   r½   rr   Úcheck_fn_managerÚCheckFunctionManagerc                ó  — || _         || _        || _        ||dœ| _        t          j                             ¦   «         | j        d<   t          j        j	        j
                             ¦   «         D ]]\  }}	|                     dd¦  «                             dd¦  «                             dd¦  «        }|	| j        d         |<   |	| j        |<   Œ^|| _        g | _        g | _        g | _        g | _        g | _        || _        t)          ¦   «         | _        | j        j        j        D ]<}
| j                             t3          |                      |
¦  «        ¦  «        ¦  «         Œ=i | _        i | _        t)          ¦   «         | _        d S )N©ÚLÚGÚ__builtins__ú>Ú_ú<ú.Ú_dot_)r²  r´  r¶  ÚscopeÚbuiltinsÚ__dict__ÚcopyrÌ   ÚpackageÚpackage_importerÚ_package_imported_modulesr‘   rD  r½   ÚargnamesÚcodeÚshape_env_codeÚno_tensor_aliasing_namesÚ!no_tensor_aliasing_guard_managersrº  ÚsetÚkey_order_guarded_dict_idsÚoutput_graphÚguard_on_key_orderr’   ÚidÚgetr   Ú_cached_guard_managersÚ_cached_duplicate_input_guards)rƒ   r²  r´  r¶  r¸  r{   r½   rº  rM  Úpackage_modulerž  s              r„   r…   zGuardBuilder.__init__\  s„  € ð ˆŒØ$ˆŒØ.ˆÔØ9DÈ<Ð3XÐ3XˆŒ
Ý%-Ô%6×%;Ò%;Ñ%=Ô%=ˆŒ
�>Ñ"õ Œ]Ô+ÔE×KÒKÑMÔMð	.ð 	.ñ 
ØØà—<’<  SÑ)Ô)×1Ò1°#°sÑ;Ô;×CÒCÀCÈÑQÔQˆDà/=ˆDŒJ�~Ô& tÑ,à-ˆDŒJ�tÑÐØ*ˆÔà#%ˆŒà)+ˆŒ	ð
 46ˆÔð 46ˆÔ%ØLNˆÔ.à6FˆÔõ +.©%¬%ˆÔ'ØÔ0Ô=ÔPð 	Kð 	KˆKØÔ+×/Ò/µ°4·8²8¸KÑ3HÔ3HÑ0IÔ0IÑJÔJÐJÐJð
 BDˆÔð
 ð 	Ô#õ EHÁEÄEˆÔ+Ð+Ð+r†   c                óŽ  — |                       |¦  «        }t          |t          ¦  «        rt          d|j        › �¦  «        ‚|j                             ¦   «         }|                     ¦   «         D ]U}||         }t          |j        |¬¦  «        }|                      ||¦  «        }| 	                    ||› d|›d�||¬¦  «         ŒVd S )NzsNot expecting a DictGuardManager. Seems like Dynamo incorrectly added the dict to tx.output.guard_on_key_order for )rq  rŽ  rƒ  ©r~  r¿   r�  r‘  )
Úget_guard_managerr›   r   ÚNotImplementedErrorrM  r¤  r|  rA   Úget_guard_manager_typeÚdict_getitem_manager)	rƒ   r�  r¸   Údict_mgrÚdict_sourcer~  rs  r¡  r‘  s	            r„   Ú#guard_on_dict_keys_and_ignore_orderz0GuardBuilder.guard_on_dict_keys_and_ignore_order™  s  € Ø×)Ò)¨%Ñ0Ô0ˆÝ�hÕ 0Ñ1Ô1ð 	Ý%ðSØFKÄjðSð Sñô ð ð Ô.×3Ò3Ñ5Ô5ˆØ ×%Ò%Ñ'Ô'ð 	ð 	ˆCØ! #Ô&ˆEÝ(¨Ô)AÈÐMÑMÔMˆLØ!%×!<Ò!<Ø˜mñ"ô "Ðð ×)Ò)ØØ%Ð0Ð0¨Ð0Ð0Ð0Ø#Ø#5ð	 *ñ ô ð ð ð	ð 	r†   c                óh  — |                       |¦  «        }t          |t          ¦  «        st          d|j        › �¦  «        ‚t          |t          ¦  «        sJ ‚t          |                     ¦   «         ¦  «        D ]·\  }}t          |j        |¦  «        }|                     |||t          j
        ¬¦  «        }t          |¦  «        rB|                      ||¦  «        }|                     |t          d|› d|› d�|¦  «        ¦  «         ŒŽ|                     |t          |› d|›�|¦  «        ¦  «         Œ¸d S )Nz_Expecting a DictGuardManager. Seems like Dynamo forgot to set the right guard manager enum for r�  z__check_obj_id(r¼   rk  r’  )rÝ  r›   r   rÞ  rM  Ú	enumerater|  r„  r–  r—  r˜  rb   r²  Úadd_id_match_guardrb  r™  )	rƒ   rs  r¸   rá  r•   r~  rŸ  Úkey_managerÚid_vals	            r„   Úguard_on_dict_keys_and_orderz)GuardBuilder.guard_on_dict_keys_and_order°  sx  € ð ×)Ò)¨%Ñ0Ô0ˆÝ˜(Õ$4Ñ5Ô5ð 	Ý%ðHØ;@¼:ðHð Hñô ð õ ˜(Õ$4Ñ5Ô5Ð5Ð5Ð5å! %§*¢*¡,¤,Ñ/Ô/ð 	ð 	‰HˆC�Ý-¨e¬j¸#Ñ>Ô>ˆJØ"×2Ò2ØØ!Ø!Ý#3Ô#Að	 3ñ ô ˆKõ ˜‰~Œ~ð àŸš S¨*Ñ5Ô5�Ø×.Ò.ØÝ*ØA¨*ÐAÐA¸ÐAÐAÐAÀ5ñô ñô ð ð ð ×2Ò2ØÕ/°:Ð0JÐ0JÀ3Ð0JÐ0JÈEÑRÔRñô ð ð ð'	ð 	r†   c                ó–   — t           j        r<t          j        dk    r,t          j        dk     rt	          j        dt          ¦  «         d S | S )N)r­  é   )r­  rë  r3   zMGuards may run slower on Python 3.13.0. Consider upgrading to Python 3.13.1+.)r4   Úissue_3_13_0_warningÚsysÚversion_infoÚwarningsÚwarnÚRuntimeWarning)r�  s    r„   Ú'_get_generic_dict_manager_example_valuez4GuardBuilder._get_generic_dict_manager_example_valueÒ  sR   € õ Ô'ð		åÔ  GÒ+Ð+ÝÔ  :Ò-Ð-åŒMØ_Ýñô ð ð �4ØÐr†   c                ó0  — d„ }|j         }	|j        }
t          ¦   «         }t          j        |j        ¦  «        D ].}|                     |j                             ¦   «         ¦  «         Œ/t          ddd¦  «        }|	|
v rt          d|	d¦  «        }ncd|
v r|	|
d         v rt          dd|	¦  «        }nCd|
v r|	|
d         v rt          dd|	¦  «        }n#|	|vrd|
v r|	|
d         v rt          dd|	¦  «        }|j	        s| 
                    |j         |||¬¦  «        S |j        sJ ‚|j        }|j        }|› d	�}dx}}dx}}dx}}|rbt          |j        |¦  «        }|                     ¦   «         }|
|         }|                      ||¦  «        }|}|}|                      ||¦  «        }n|}|}|                      ||¦  «        }|                     ||                      |
¦  «        t&          j        ¬
¦  «        } |||||
||¬¦  «        }|r |||||||¬¦  «        S |S )a(  
        This tries to avoid calling the expensive nn module custom getattr method by
        checking if the attribute is accessible via __dict__. For attributes that
        are not accessible via __dict__ (like descriptors), we fallback to
        PyObject_GetAttr.

        There are two cases that we optimize for
        1) attributes present directly in __dict__, e.g training.
        2) parameters/buffers/modules - they can be accessed via _parameters,
        _buffers, _modules keys in __dict__. For example, mod.linear can be
        accessed as mod.__dict__["_parameters"]["linear"]

        The most common and expensive case for nn module guards is of type
        mod.submod1.submod2.submod3.training. We avoid the python getattr of nn
        modules by going through the __dict__.
        c                ó<  — t          | t          ¦  «        rot          ||¦  «        }d|› d|›d�}|                      |||t          j        ¬¦  «                             ||› d|›�g¦  «         |                      ||||¬¦  «        S |                      ||||¬¦  «        S )Nr�  r‚  rƒ  r�  r’  rÜ  )	r›   r   r  r–  r—  r˜  r™  rš  rà  )rÇ   r~  rž  rœ  r�  r‘  rq  rŸ  s           r„   Úgetitem_on_dict_mgrz>GuardBuilder.getattr_on_nn_module.<locals>.getitem_on_dict_mgrÿ  sç   € õ ˜#Õ/Ñ0Ô0ð õ &Ð&8¸#Ñ>Ô>�ð F [ÐEÐE¸5ÐEÐEÐE�
Ø×#Ò#ØØ%Ø"%Ý'7Ô'Eð	 $ñ ô ÷
 )Ò(¨°*Ð/IÐ/IÀ#Ð/IÐ/IÐ.JÑKÔKÐKð ×,Ò,ØØ&Ø"/Ø'9ð	 -ñ ô ð ð ×/Ò/ØØ&Ø"/Ø'9ð	 0ñ ô ð r†   FNTÚ_parametersÚ_buffersÚ_modules©Úattrr¿   r�  r‘  ú	.__dict__©r¿   r�  r‘  )rÇ   r~  rž  rœ  r�  r‘  )ÚmemberrÈ  rÒ  r  Úgetmror¶   Úupdater|  r‡  r‰  Úgetattr_managerrŠ  r‹  r:   r“  rM  rß  Úget_generic_dict_managerrò  r—  r˜  )rƒ   r¿   r›  rœ  r�  r�  rž  r‘  rõ  Ú	attr_nameÚmod_dictÚall_class_attribute_namesrñ   Úaccessor_inforŠ  r‹  Úmod_dict_sourceÚl1_source_nameÚl2_source_nameÚl1_valueÚl2_valueÚl1_guard_manager_enumÚl2_guard_manager_enumÚ	l1_sourceÚmod_generic_dict_managerÚl1_mgrs                             r„   Úgetattr_on_nn_modulez!GuardBuilder.getattr_on_nn_moduleä  sõ  € ð6	ð 	ð 	ð@ ”Mˆ	Ø%Ô.ˆå.1©e¬eÐ!Ý”Ð 2Ô <Ñ=Ô=ð 	@ð 	@ˆAØ%×,Ò,¨Q¬Z¯_ª_Ñ->Ô->Ñ?Ô?Ð?Ð?å0°¸¸dÑCÔCˆà˜Ð Ð Ý4°T¸9ÀdÑKÔKˆMˆMØ˜hÐ&Ð&¨9¸ÀÔ8OÐ+OÐ+OÝ4°T¸=È)ÑTÔTˆMˆMØ˜8Ð#Ð#¨	°X¸jÔ5IÐ(IÐ(IÝ4°T¸:ÀyÑQÔQˆMˆMàÐ6Ð6Ð6Ø˜hÐ&Ð&Ø˜X jÔ1Ð1Ð1õ 5°T¸:ÀyÑQÔQˆMàÔ4ð A	ð &×5Ò5Ø”]Ø"Ø+Ø#5ð	 6ñ ô ð ð !Ô'Ð'Ð'Ð'Ø"Ô)ˆFØ"Ô)ˆFð "2Ð<Ð<Ð<ˆOØ.2Ð2ˆN˜^Ø"&Ð&ˆH�xØ<@Ð@Ð!Ð$9Øð Ý& v¤{°FÑ;Ô;�	Ø!*§¢Ñ!1Ô!1�Ø# FÔ+�ð )-×(CÒ(CÀIÈxÑ(XÔ(XÐ%à!,�Ø(�Ø(,×(CÒ(CØ˜Mñ)ô )Ð%Ð%ð "-�Ø(�Ø(,×(CÒ(CØ˜Mñ)ô )Ð%ð (:×'RÒ'RØ&Ø"×JÒJÈ8ÑTÔTÝ#3Ô#Að (Sñ (ô (Ð$ð )Ð(Ø,ØØ*Ø#+Ø&Ø#8ðñ ô ˆFð ð Ø*Ð*ØØØ .Ø'/Ø"*Ø'<ðñ ô ð ð ˆMr†   c                ó�   — |                      ¦   «         }|dk    rdS t          |                      |¦  «        ¦  «        }|| j        v S )Nrè   F)rM  rÖ  r×  rÓ  )rƒ   r¿   rž  Úobj_ids       r„   Úrequires_key_order_guardingz(GuardBuilder.requires_key_order_guardingy  sF   € Ø—k’k‘m”mˆØ˜"ÒÐØ�5Ý�D—H’H˜[Ñ)Ô)Ñ*Ô*ˆØ˜Ô8Ð8Ð8r†   c                óø   — t           j        }|                      |¦  «        rXt          |t          ¦  «        sJ ‚t          |¦  «        j        t          i ¦  «        j        u rt           j        }nt           j        }|S r¢   )	r—  r˜  r  r›   r”  rl  r|  r®  r¯  )rƒ   r¿   r�  r‘  s       r„   rß  z#GuardBuilder.get_guard_manager_type€  ss   € Ý-Ô;ÐØ×+Ò+¨FÑ3Ô3ð 	RÝ˜m­TÑ2Ô2Ð2Ð2Ð2õ �MÑ"Ô"Ô'­4°©8¬8¬=Ð8Ð8Ý%5Ô%HÐ"Ð"å%5Ô%QÐ"Ø!Ð!r†   c                óB   — |t           j        k    p|t           j        k    S r¢   )r—  r®  r¯  )rƒ   Úmgr_enums     r„   Úmanager_guards_on_keysz#GuardBuilder.manager_guards_on_keysŒ  s%   € àÕ(Ô;Ò;ð HØÕ+ÔGÒGð	
r†   c                óˆ   — | j         j                             | j        d         d| j        d         t          j        ¬¦  «        S )Nr¿  )Ú	f_globalsr¿   r�  r‘  )r½   ru   Úglobals_dict_managerrÆ  r—  r˜  rˆ   s    r„   Úget_global_guard_managerz%GuardBuilder.get_global_guard_manager’  s@   € ØÔ!Ô&×;Ò;Ø”j ”oØØœ* Sœ/Ý/Ô=ð	 <ñ 
ô 
ð 	
r†   c           	     óÌ  ‡— | j         j        }d }‰                     ¦   «         }|dk    r|| j        v r| j        |         S |dk    r|                      |¦  «        }|                      ‰|¦  «        }d }d }d }t          j        }	t          ‰t          ¦  «        rc‰j
                             ¦   «         }|                      |¦  «        }|                      ‰j
        ¦  «        }|                      ‰j
        |¦  «        }	t          ‰t          ¦  «        r |                     ‰j        |||¬¦  «        }
�nt          ‰t           ¦  «        r2|                      ¦   «                              ‰j        |||¬¦  «        }
�nÑt          ‰t&          ¦  «        r2|                      ¦   «                              ‰j        |||¬¦  «        }
�nŠt          ‰t*          ¦  «        r|S t          ‰t,          ¦  «        r|S t          ‰t.          ¦  «        r|sJ ‚|                     |||¬¦  «        }
�n)t          ‰t2          t4          t6          t8          t:          f¦  «        r|sJ ‚|}
�nót          ‰t<          ¦  «        r|                     ˆfd„|||¬¦  «        }
�nÀt          ‰t@          ¦  «        r|sJ ‚| !                    |||¬¦  «        }
�n�t          ‰tD          tF          f¦  «        rv|sJ ‚t          |tH          j%        j&        ¦  «        r3tO          |¦  «        tP          u r|  )                    ‰||||||¦  «        }
�n| *                    ‰j+        |||¬¦  «        }
�nût          ‰tX          ¦  «        �rd|sJ ‚t          |tZ          t\          j/        f¦  «        rŠt          |t`          ¦  «        r,|  1                    |	¦  «        sJ ‚te          ‰||||¦  «        }
�nt          ‰j3        th          ¦  «        rtk          d¦  «        ‚|                     ‰j3        |||¬¦  «        }
�n6t          |tl          ¦  «        r'‰j7        s | 8                    ‰j3        |||¬¦  «        }
�nút          |tr          ¦  «        r'‰j7        s | :                    ‰j3        |||¬¦  «        }
�n¾‰j3        }‰j7        r‰ ;                    ¦   «         }| <                    ||||¬¦  «        }
�n�t          ‰tz          ¦  «        ret          |t`          ¦  «        r,|  1                    |	¦  «        sJ ‚te          ‰||||¦  «        }
�n+|sJ ‚|                     ‰j3        |||¬¦  «        }
�nt          ‰t|          ¦  «        rÊ|sJ ‚t          |¦  «        sJ ‚‰j@        sE| A                    ||jB        t          j        ¬¦  «         <                    ‰jC        |||¬¦  «        }
�n‘|jD        }|€J ‚|d	z   }| E                    ||t          j        ¬¦  «        }t          |t`          ¦  «        rJ ‚|                     ‰jC        |||¬¦  «        }
�n(t          ‰tŒ          ¦  «        r$|sJ ‚|                     tŽ          |||¬¦  «        }
�nït          ‰t�          ¦  «        r |sJ ‚|                     d
„ |||¬¦  «        }
�nºt          ‰t’          ¦  «        r |sJ ‚|                     d„ |||¬¦  «        }
�n…t          ‰t”          ¦  «        r |sJ ‚|                     d„ |||¬¦  «        }
�nPt          ‰t–          ¦  «        r |sJ ‚|                     d„ |||¬¦  «        }
�nt          ‰t˜          ¦  «        r#|sJ ‚| M                    ‰j3        |||¬¦  «        }
nãt          ‰th          ¦  «        rCt          |t`          ¦  «        st�          d¦  «        ‚| O                    ‰j3        |||¬¦  «        }
n‹t          ‰t           ¦  «        r|sJ ‚| Q                    |||¬¦  «        }
nYt          ‰t¤          ¦  «        r|sJ ‚| S                    |||¬¦  «        }
n't�          d‰› d‰                     ¦   «         › �¦  «        ‚|
| j        ‰                     ¦   «         <   |
S )Nrè   rÜ  )Úglobal_namer¿   r�  r‘  rü  c                óF   •— t          ‰                     ¦   «         ¦  «        S r¢   )r_   Ú
_get_index)rÂ  r¿   s    €r„   r$  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>ì  s!   ø€ Õ(HØ×%Ò%Ñ'Ô'ñ)ô )€ r†   )Úpython_lambdar¿   r�  r‘  rù  zUExpecting clean index here. Likely Dynamo forgot to mark a dict as guard_on_key_orderz.__kwdefaults__c                ó6   — |                       ¦   «         d         S rŒ   ©Ú__tensor_flatten__©rñ   s    r„   r$  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>„  s   € ¨×(<Ò(<Ñ(>Ô(>¸qÔ(A€ r†   c                ó*   — |                       ¦   «         S r¢   )Ú__obj_flatten__r$  s    r„   r$  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>Œ  s   € ¨×(9Ò(9Ñ(;Ô(;€ r†   c                óN   — |                       ¦   «                              ¦   «         S r¢   )Ú_typeÚqualified_namer$  s    r„   r$  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>”  s   € ¨¯ª©	¬	×(@Ò(@Ñ(BÔ(B€ r†   c                ó*   — |                       ¦   «         S r¢   )Úget_baser$  s    r„   r$  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>œ  s   € ¨¯
ª
©¬€ r†   r�  z4ConstDictKeySource can only work on DictGuardManagerzmissing guard manager builder z - )Tr½   ru   rM  rØ  r×  rß  r—  r˜  r›   r<   r“  Úget_guard_manager_from_sourcera   rF   rà  Ú
local_namerB   r  r  rD   Úglobal_weakref_managerrC   rL   rP   Útype_managerrJ   rG   rR   rQ   r@   rN   Úlambda_managerrE   Úgrad_managerr:   rS   rÌ   ÚnnÚModuler]   ri   r  r   rý  rA   r”  r1  r2  r   r  r¢  rq  r=   ÚRuntimeErrorra  Úindex_is_sliceÚlist_getitem_managerÚtupleÚtuple_getitem_managerÚunpack_sliceÚgetitem_managerrI   r>   ÚcallableÚis_kwÚfunc_defaults_managerÚ__defaults__Úidx_keyÚ__kwdefaults__Úfunc_kwdefaults_managerrH   r  rM   r?   rK   r9   rO   Útuple_iterator_getitem_managerÚAssertionErrorr–  rT   Úweakref_call_managerr;   Úcall_function_no_args_manager)rƒ   r¿   Úroot_guard_managerr�  rž  r‘  r�  rœ  r›  Úbase_guard_manager_enumÚoutrq  Ú
kwdefaultsÚ	kw_sourcerá  s    `             r„   r,  z*GuardBuilder.get_guard_manager_from_sourceš  sq
  ø€ Ø!Ô/Ô4ÐàˆØ—k’k‘m”mˆà˜"ÒÐ °Ô0KÐ!KÐ!KØÔ.¨{Ô;Ð;à˜"ÒÐØ ŸHšH [Ñ1Ô1ˆMà!×8Ò8¸ÀÑOÔOÐð  ÐØ!ÐØ!ÐÝ"2Ô"@ÐÝ�f�mÑ,Ô,ð 	Ø%œ{×/Ò/Ñ1Ô1ÐØ!%§¢Ð*:Ñ!;Ô!;ÐØ!%×!CÒ!CÀFÄKÑ!PÔ!PÐØ&*×&AÒ&AØ”Ð/ñ'ô 'Ð#õ
 �&�+Ñ&Ô&ð O	ð %×9Ò9ØÔ%Ø"Ø+Ø#5ð	 :ñ ô ˆC‰Cõ �F�LÑ)Ô)ð E	ð ×/Ò/Ñ1Ô1×FÒFØÔ&Ø"Ø+Ø#5ð	 Gñ ô ˆC‰Cõ �FÕ/Ñ0Ô0ð {	Ø×/Ò/Ñ1Ô1×HÒHØ"Ô.Ø"Ø+Ø#5ð	 Iñ ô ˆC‰Cõ �FÕ-Ñ.Ô.ð t	ð &Ð%Ý�F�NÑ+Ô+ð p	Ø%Ð%Ý�F�JÑ'Ô'ð n	Ø%Ð%Ð%Ð%Ø$×1Ò1Ø"Ø+Ø#5ð 2ñ ô ˆC‰Cõ
 ØåÝÝ+Ý2Ý"ðñ	
ô 	
ð g	ð &Ð%Ð%Ð%Ø$ˆC‰CÝ�FÕ8Ñ9Ô9ð [	Ø$×3Ò3ðð ð ð ð #Ø+Ø#5ð 4ñ ô ˆC‰Cõ �F�JÑ'Ô'ð R	Ø%Ð%Ð%Ð%Ø$×1Ò1Ø"Ø+Ø#5ð 2ñ ô ˆC‰Cõ
 �F�ZÕ)GÐHÑIÔIð K	Ø%Ð%Ð%Ð%õ Ð-­u¬x¬Ñ?Ô?ðå&Ð'9Ñ:Ô:Ý.ð/ð /ð ×/Ò/ØØ&Ø&Ø!Ø$ØØ&ñô �‘ð )×8Ò8ØœØ&Ø"/Ø'9ð	 9ñ ô �‘õ �F�MÑ*Ô*ñ s	Ø%Ð%Ð%Ð%ÝÐ,­tµ[Ô5LÐ.MÑNÔNð 0õ Ð0Õ2BÑCÔCð Ø×6Ò6Ð7NÑOÔOÐOÐOÐOÝ1ØØ*Ø*Ø%Ø*ñô �C‘Cõ " &¤,Õ0BÑCÔCð Ý*ð<ñô ð ð -×AÒAØ"œLØ*Ø&3Ø+=ð	 Bñ ô �C‘Cõ Ð.µÑ5Ô5ð ¸fÔ>Sð Ø(×=Ò=ØœØ&Ø"/Ø'9ð	 >ñ ô �‘õ Ð.µÑ6Ô6ð ¸vÔ?Tð Ø(×>Ò>ØœØ&Ø"/Ø'9ð	 ?ñ ô �‘ð œ�ØÔ(ð 2Ø"×/Ò/Ñ1Ô1�EØ(×8Ò8ØØ&Ø"/Ø'9ð	 9ñ ô �‘õ �FÕ.Ñ/Ô/ð @	ÝÐ,Õ.>Ñ?Ô?ð Ø×2Ò2Ð3JÑKÔKÐKÐKÐKÝ-ØØ&Ø&Ø!Ø&ñô �‘ð *Ð)Ð)Ð)Ø(×=Ò=ØœØ&Ø"/Ø'9ð	 >ñ ô �‘õ �F�NÑ+Ô+ð n	Ø%Ð%Ð%Ð%ÝÐ.Ñ/Ô/Ð/Ð/Ð/Ø”<ð Ø(×>Ò>Ø+Ø"4Ô"AÝ'7Ô'Eð ?ñ ô ÷ "’/ØœØ&Ø"/Ø'9ð	 "ñ ô ð	 ‘ð 0Ô>�
Ø'Ð3Ð3Ð3Ø,Ð/@Ñ@�	ð .×EÒEØ$Ø",Ý'7Ô'Eð Fñ ô �õ
 & hÕ0@ÑAÔAÐAÐAÐAà×3Ò3ØœØ&Ø"/Ø'9ð	 4ñ ô �‘õ �FÕ-Ñ.Ô.ð L	Ø%Ð%Ð%Ð%Ø$×3Ò3Ý(Ø"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �FÕ2Ñ3Ô3ð D	Ø%Ð%Ð%Ð%Ø$×3Ò3ØAÐAØ"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �FÕ5Ñ6Ô6ð <	Ø%Ð%Ð%Ð%Ø$×3Ò3Ø;Ð;Ø"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �FÕ;Ñ<Ô<ð 4	Ø%Ð%Ð%Ð%Ø$×3Ò3ØBÐBØ"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �F�OÑ,Ô,ð ,	Ø%Ð%Ð%Ð%Ø$×3Ò3Ø4Ð4Ø"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �FÕ6Ñ7Ô7ð $	Ø%Ð%Ð%Ð%Ø$×CÒCØ”lØ"Ø+Ø#5ð	 Dñ ô ˆCˆCõ ˜Õ 2Ñ3Ô3ð 	ÝÐ0Õ2BÑCÔCð Ý$ØJñô ð ð %×4Ò4Ø”lØ"Ø+Ø#5ð	 5ñ ô ˆCˆCõ �FÕ-Ñ.Ô.ð 	Ø%Ð%Ð%Ð%Ø$×9Ò9Ø"Ø+Ø#5ð :ñ ô ˆCˆCõ
 �FÕ4Ñ5Ô5ð 
	Ø%Ð%Ð%Ð%Ø$×BÒBØ"Ø+Ø#5ð Cñ ô ˆCˆCõ !ØK°ÐKÐK¸F¿KºK¹M¼MÐKÐKñô ð ð 69ˆÔ# F§K¢K¡M¤MÑ2Øˆ
r†   r¸   r$   c                ó6   — |                       |j        ¦  «        S r¢   )r,  r¤  ©rƒ   r¸   s     r„   rÝ  zGuardBuilder.get_guard_managerÊ  s   € Ø×1Ò1°%Ô2JÑKÔKÐKr†   NTc                ó   — |€t          ¦   «         }d                     |                     ¦   «         ¦  «        }t          ||¦  «        \  }}i }d| j        d         i}	t          ||	|¦  «          |d         |                     ¦   «         Ž }
|r"| j        j         	                    |
|¦  «         d S | j        j         
                    |
|¦  «         d S )Nr¼   r¿  Ú___make_guard_fn)r<  Újoinr|  Úbuild_guard_functionrÆ  ÚexecÚvaluesr½   ru   Úadd_epilogue_lambda_guardÚadd_lambda_guard)rƒ   ry   rz   rw   Úis_epilogueÚmake_guard_fn_argsÚ
guard_bodyÚpycoderH  Úglobals_for_guard_fnÚguard_fns              r„   Ú$add_python_lambda_leaf_guard_to_rootz1GuardBuilder.add_python_lambda_leaf_guard_to_rootÍ  sï   € ð ÐÝ,Ñ.Ô.ˆLð "ŸYšY |×'8Ò'8Ñ':Ô':Ñ;Ô;ÐÝ1°*Ð>PÑQÔQÑˆ
�FØ ˆØ # T¤Z°¤_Ð5ÐÝˆVÐ)¨3Ñ/Ô/Ð/Ø*�3Ð)Ô*¨L×,?Ò,?Ñ,AÔ,AÐBˆØð 	Sð ÔÔ#×=Ò=ØÐ,ñô ð ð ð ð ÔÔ#×4Ò4°XÐ?QÑRÔRÐRÐRÐRr†   rM  r?  r>  r   c                óF   — t          || j        t          ¦   «         ¦  «        S r¢   )ÚevalrÆ  r<  )rƒ   rM  s     r„   r×  zGuardBuilder.getï  s   € Ý�D˜$œ*Õ&7Ñ&9Ô&9Ñ:Ô:Ð:r†   úUnion[str, Guard]c                óL  — t          |t          ¦  «        r|}n|j        }t          t	          |¦  «        ¦  «        }|| j        vr_t          j        d|¦  «        rJt          j        d|¦  «        rt           	                    d|¦  «         | j         
                    |¦  «         |S )Nz[a-zA-Z0-9_]+z^\d+$zinvalid var name: %s)r›   r?  rM  rL  rK  rÍ  rH  rJ  ÚlogÚwarningrù   )rƒ   r¸   rM  r“  s       r„   Úarg_refzGuardBuilder.arg_ref÷  sž   € å�e�SÑ!Ô!ð 	ØˆDˆDà”:ˆDÝ$Õ%8¸Ñ%>Ô%>Ñ?Ô?ˆØ�t”}Ð$Ð$ÝŒxÐ(¨$Ñ/Ô/ð +Ý”8˜H dÑ+Ô+ð ?Ý—K’KÐ 6¸Ñ>Ô>Ð>Ø”×$Ò$ TÑ*Ô*Ð*àˆr†   r  c                ó”   — t          |j        |¦  «        }t          |||j        |j        ¬¦  «        }|                     | ¦  «         d S )N)rX  rU  )r:   r¤  r$   rX  rU  Úcreate)rƒ   r¸   r  rZ  Úattr_sourceÚ	new_guards         r„   Ú_guard_on_attributez GuardBuilder._guard_on_attribute  sR   € Ý  Ô!9¸9ÑEÔEˆåØ˜¨¬ÀÔAQð
ñ 
ô 
ˆ	ð 	×Ò˜ÑÔÐÐÐr†   c           	     óò  — |j         }t          |t          ¦  «        r|j        }t          |t          ¦  «        sJ d|j        › �¦   «         ‚|j        }|                     ¦   «         }|j        }|                      |¦  «        }t          |  	                    |¦  «        |¦  «        }d }|r
d|› d|›d�}n	d|› d|›d�}|  
                    ||g|  	                    |¦  «        ¬¦  «         |                      |¦  «        }	|rÔ|  	                    |                     ¦   «         ¦  «        }
|  	                    |¦  «        }|                      ||
¦  «        }t          |t          j        j        ¦  «        rCt!          |¦  «        t"          u r-|                      ||	||
||                     ¦   «         |¦  «        S |	                     ||j        |
|¬¦  «         d S |	                     |t+          ||¦  «        ¦  «         d S )Nzinvalid source úhasattr(r¼   rk  znot hasattr()Úprovided_guarded_objectrù  )r¤  r›   rG   r“  r:   rM  rý  rb  rë   r×  Ú_set_guard_export_infor,  rß  rÌ   r2  r3  r]   ri   r  r   Úadd_no_hasattr_guardrb  )rƒ   r¸   r¿   Úbase_sourcer“  rú  ÚrefÚvalrÎ  Úbase_managerr�  rœ  r‘  s                r„   ÚHASATTRzGuardBuilder.HASATTR  s-  € ØÔ)ˆÝ�f�nÑ-Ô-ð 	!Ø”[ˆFÝ˜&¥*Ñ-Ô-ÐMÐMÐ/MÀÄÐ/MÐ/MÑMÔMÐ-Ø”kˆØ×ÒÑ!Ô!ˆØŒ}ˆà�lŠl˜4Ñ Ô ˆÝ�d—h’h˜t‘n”n dÑ+Ô+ˆØˆØð 	3Ø.˜cÐ.Ð. TÐ.Ð.Ð.ˆDˆDà2 #Ð2Ð2¨Ð2Ð2Ð2ˆDØ×#Ò#Ø�D�6°4·8²8¸D±>´>ð 	$ñ 	
ô 	
ð 	
ð ×9Ò9¸+ÑFÔFˆØð 	Yð !ŸHšH V§[¢[¡]¤]Ñ3Ô3ˆMØ!%§¢¨$¡¤ÐØ!%×!<Ò!<¸VÀ]Ñ!SÔ!SÐõ
 Ð-­u¬x¬Ñ?Ô?ðå&Ð'9Ñ:Ô:Ý.ð/ð /ð ×0Ò0ØØ Ø&Ø!ØØ—K’K‘M”MØ&ñô ð ð ×,Ò,ØØ œ:Ø"/Ø'9ð	 -ñ ô ð ð ð ð ×-Ò-¨dÕ4JÈ4ÐQVÑ4WÔ4WÑXÔXÐXÐXÐXr†   rG  c                ó¼  — |€J ‚|                       |¦  «        }|                      |j        ¦  «        }t          |t          j        j        ¦  «        sJ ‚|                      |¦  «        }|j        › d�}|                     ||  	                    |j
        ¦  «        t          j        ¬¦  «        }d|›d|› d�}|                     d|t          ||¦  «        ¦  «         d S )Nrû  rü  znot ___dict_contains(r¼   z
.__dict__)F)rb  r×  rM  r›   rÌ   r2  r3  rÝ  r  rò  rÈ  r—  r˜  Úadd_dict_contains_guardrb  )	rƒ   r¸   rú  rn  ro  rp  r  r  rÎ  s	            r„   ÚNOT_PRESENT_IN_GENERIC_DICTz(GuardBuilder.NOT_PRESENT_IN_GENERIC_DICTE  sö   € ØÐÐÐØ�lŠl˜5Ñ!Ô!ˆØ�hŠh�u”zÑ"Ô"ˆÝ˜#�uœxœÑ/Ô/Ð/Ð/Ð/à×-Ò-¨eÑ4Ô4ˆà"œZÐ2Ð2Ð2ˆØ#/×#HÒ#HØ"Ø×FÒFÀsÄ|ÑTÔTÝ/Ô=ð $Iñ $
ô $
Ð ð A tÐ@Ð@°Ð@Ð@Ð@ˆØ ×8Ò8Ø�4Õ/°°eÑ<Ô<ñ	
ô 	
ð 	
ð 	
ð 	
r†   c                óf  — t          |                      |j        ¦  «        ¦  «        }|                      |d|j        › d�¦  «        }d|                      |¦  «        › d|› d�}|                      ||g¦  «         |                      |¦  «                             |t          ||¦  «        ¦  «         d S )Nútype(rk  z___check_type_id(r¼   )	rl  r×  rM  r²  rb  rk  rÝ  Úadd_type_match_guardrb  )rƒ   r¸   rÀ   r  rÎ  s        r„   Ú
TYPE_MATCHzGuardBuilder.TYPE_MATCHY  sº   € å�—’˜%œ*Ñ%Ô%Ñ&Ô&ˆØ—’˜QÐ 5¨¬
Ð 5Ð 5Ð 5Ñ6Ô6ˆØC 4§<¢<°Ñ#6Ô#6ÐCÐC¸&ÐCÐCÐCˆØ×#Ò# E¨D¨6Ñ2Ô2Ð2à×Ò˜uÑ%Ô%×:Ò:ØÕ*¨4°Ñ7Ô7ñ	
ô 	
ð 	
ð 	
ð 	
r†   c                ó^  — |                       |¦  «        }|                      |j        ¦  «        }t          |                      |j        ¦  «        ¦  «        }d|› d|› �}|                      ||g¦  «         |                      |¦  «                             |t          ||¦  «        ¦  «         d S )Nz___dict_version(ú) == )rb  r×  rM  r   rk  rÝ  Úadd_dict_version_guardrb  )rƒ   r¸   rn  ro  ÚversionrÎ  s         r„   ÚDICT_VERSIONzGuardBuilder.DICT_VERSIONd  s°   € à�lŠl˜5Ñ!Ô!ˆØ�hŠh�u”zÑ"Ô"ˆÝ˜tŸxšx¨¬
Ñ3Ô3Ñ4Ô4ˆØ5 #Ð5Ð5¨GÐ5Ð5ˆØ×#Ò# E¨D¨6Ñ2Ô2Ð2ð 	×Ò˜uÑ%Ô%×<Ò<ØÕ'¨¨eÑ4Ô4ñ	
ô 	
ð 	
ð 	
ð 	
r†   r~  Úinvertrˆ  c                óò   — |                       |¦  «        }|rdnd}|› d|›d|› d�}|                      ||g¦  «         |                      |¦  «                             | |t	          ||¦  «        ¦  «         d S )Núnot rè   z___dict_contains(r¼   rk  )rb  rk  rÝ  rs  rb  )rƒ   r¸   r~  r~  Údict_refÚ	maybe_notrÎ  s          r„   ÚDICT_CONTAINSzGuardBuilder.DICT_CONTAINSr  s›   € Ø—<’< Ñ&Ô&ˆà$Ð,�F�F¨"ˆ	ØÐBÐB¨cÐBÐB°xÐBÐBÐBˆØ×#Ò# E¨D¨6Ñ2Ô2Ð2à×Ò˜uÑ%Ô%×=Ò=ØˆJ˜Õ3°D¸%Ñ@Ô@ñ	
ô 	
ð 	
ð 	
ð 	
r†   c                óÂ  — t          |j        t          ¦  «        r7|                      t	          |j        j        t          j        ¦  «        ¦  «        S |                      |¦  «        }|                      |j	        ¦  «        }|  
                    ||j	        ¦  «        }d|› d|› d�}|                      ||g¦  «         |                      |¦  «                             |t          ||¦  «        ¦  «         t          |j        t          ¦  «        rNt          |t           j        j        ¦  «        r1|j        j        }|                      |¦  «        }|�|| j        |<   d S d S d S d S )Nz___check_obj_id(r¼   rk  )r›   r¤  rP   rx  r$   r“  r±  rb  r×  rM  r²  rk  rÝ  ræ  rb  rF   rÌ   r2  r3  r-  r¶  r   )rƒ   r¸   rn  ro  rè  rÎ  r-  Úweak_ids           r„   ÚID_MATCHzGuardBuilder.ID_MATCH}  sf  € å�eÔ.µ
Ñ;Ô;ð 	à—?’?Ý�eÔ.Ô3µ\Ô5LÑMÔMñô ð ð �lŠl˜5Ñ!Ô!ˆØ�hŠh�u”zÑ"Ô"ˆØ—’˜S %¤*Ñ-Ô-ˆØ2 #Ð2Ð2¨Ð2Ð2Ð2ˆØ×#Ò# E¨D¨6Ñ2Ô2Ð2à×Ò˜uÑ%Ô%×8Ò8ØÕ*¨4°Ñ7Ô7ñ	
ô 	
ð 	
õ �eÔ.µÑ<Ô<ð 	?õ ˜#�uœxœÑ/Ô/ð ?Ø"Ô5Ô@�
Ø×.Ò.¨sÑ3Ô3�ØÐ&Ø7>�DÔ(¨Ñ4Ð4Ð4ð	?ð 	?ð?ð ?ð 'Ð&r†   c                ó@  — |                       |¦  «        }|                      |j        ¦  «        }t          |t          j        ¦  «        sJ ‚|› d�}|                      ||g¦  «         |                      |¦  «                             t          ||¦  «        ¦  «         d S ©Nz is not None)
rb  r×  rM  r›   rÌ   ÚTensorrk  rÝ  Úadd_not_none_guardrb  )rƒ   r¸   rs  rn  ro  rÎ  s         r„   ÚNOT_NONE_MATCHzGuardBuilder.NOT_NONE_MATCH›  s¡   € Ø�lŠl˜5Ñ!Ô!ˆØ�hŠh�u”zÑ"Ô"ˆÝ˜#�uœ|Ñ,Ô,Ð,Ð,Ð,ØÐ#Ð#Ð#ˆØ×#Ò# E¨D¨6Ñ2Ô2Ð2à×Ò˜uÑ%Ô%×8Ò8Ý" 4¨Ñ/Ô/ñ	
ô 	
ð 	
ð 	
ð 	
r†   c                óH   — |                       |dt          j        ¦  «         d S )Nr·   )rg  r±  ÚEQUALS_MATCHrL  s     r„   Ú
NAME_MATCHzGuardBuilder.NAME_MATCH¦  s#   € Ø× Ò  ¨
µLÔ4MÑNÔNÐNÐNÐNr†   c                ó.  — |                       |j        ¦  «        }|                      |¦  «        › d|                     ¦   «         › �}|                      ||g¦  «         |                      |¦  «                             |t          ||¦  «        ¦  «         d S )Nz.data_ptr() == )r×  rM  rb  Údata_ptrrk  rÝ  Úadd_data_ptr_guardrb  )rƒ   r¸   ÚobjrÎ  s       r„   ÚDATA_PTR_MATCHzGuardBuilder.DATA_PTR_MATCH©  s”   € à�hŠh�u”zÑ"Ô"ˆØ—,’,˜uÑ%Ô%ÐFÐF°c·l²l±n´nÐFÐFˆØ×#Ò# E¨D¨6Ñ2Ô2Ð2à×Ò˜uÑ%Ô%×8Ò8ØÕ'¨¨eÑ4Ô4ñ	
ô 	
ð 	
ð 	
ð 	
r†   c                óú   ‡‡— t           j        j        j        Šd‰› �g}|                      ||g¦  «         t           j        j        Šˆˆfd„}| j        j                             |t          ||¦  «        ¦  «         d S )Nz,torch.autograd.forward_ad._current_level == c                ó   •— ‰j         ‰k    S r¢   )Ú_current_level)rñ   Ú
dual_levelÚ
forward_ads    €€r„   Úfnz#GuardBuilder.DUAL_LEVEL.<locals>.fn¼  s   ø€ ØÔ,°
Ò:Ð:r†   )	rÌ   Úautogradr˜  r–  rk  r½   ru   rT  rb  )rƒ   r¸   rÎ  r™  r—  r˜  s       @@r„   Ú
DUAL_LEVELzGuardBuilder.DUAL_LEVEL³  s�   øø€ õ ”^Ô.Ô=ˆ
ØK¸zÐKÐKÐLˆØ×#Ò# E¨D¨6Ñ2Ô2Ð2å”^Ô.ˆ
ð	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	ÔÔ×0Ò0ØÕ& t¨UÑ3Ô3ñ	
ô 	
ð 	
ð 	
ð 	
r†   c                ó6  ‡‡— t           j        j                             ¦   «         }d„ |D ¦   «         Šd‰› d�g}|                      ||¦  «         t           j        j        j        Šˆˆfd„}| j        j                             |t          ||¦  «        ¦  «         d S )Nc                ó6   — g | ]}|                      ¦   «         ‘ŒS r±   )Ú	get_state)r²   Úcis     r„   rµ   z6GuardBuilder.FUNCTORCH_STACK_MATCH.<locals>.<listcomp>Ç  s    € Ð/Ð/Ð/ R�"—,’,‘.”.Ð/Ð/Ð/r†   z5torch._functorch.pyfunctorch.compare_functorch_state(rk  c                ó   •—  ‰‰¦  «        S r¢   r±   )rñ   Ú
compare_fnÚstatess    €€r„   r™  z.GuardBuilder.FUNCTORCH_STACK_MATCH.<locals>.fnÎ  s   ø€ Ø�:˜fÑ%Ô%Ð%r†   )
rÌ   Ú
_functorchÚpyfunctorchÚ#retrieve_all_functorch_interpretersrk  Úcompare_functorch_stater½   ru   rT  rb  )rƒ   r¸   ÚcisrÎ  r™  r¡  r¢  s        @@r„   ÚFUNCTORCH_STACK_MATCHz"GuardBuilder.FUNCTORCH_STACK_MATCHÃ  sÁ   øø€ õ ÔÔ*×NÒNÑPÔPˆØ/Ð/¨3Ð/Ñ/Ô/ˆØQÈÐQÐQÐQÐRˆØ×#Ò# E¨4Ñ0Ô0Ð0õ Ô%Ô1ÔIˆ
ð	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	ÔÔ×0Ò0ØÕ& t¨UÑ3Ô3ñ	
ô 	
ð 	
ð 	
ð 	
r†   c                óÌ  ‡‡— |                       |j        ¦  «        Št          |                       |j        ¦  «                             ¦   «         d         ¦  «        Št	          ‰d¦  «        rt          ‰¦  «         ˆˆfd„}nˆfd„}dt          |¦  «        › dt          j        ¦   «         › �}|  	                    |¦  «         
                    |t          ||¦  «        ¦  «         d S )Nr3   Ú__metadata_guard__c                ó`   •— ‰                      ‰|                      ¦   «         d         ¦  «        S ©Nr3   )rª  r#  )rñ   Úoriginal_metadatars  s    €€r„   Úmetadata_checkerzEGuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>.metadata_checkerÛ  s1   ø€ Ø×/Ò/Ø% q×';Ò';Ñ'=Ô'=¸aÔ'@ñô ð r†   c                ó@   •— |                       ¦   «         d         ‰k    S r¬  r"  )rñ   r­  s    €r„   r®  zEGuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>.metadata_checkerâ  s    ø€ Ø×+Ò+Ñ-Ô-¨aÔ0Ð4EÒEÐEr†   Ú___check_metadata_Ú_c)r×  rM  r   r#  rë   rj   rÖ  r!   Úcurrent_compile_idrÝ  rT  rb  )rƒ   r¸   r®  r  r­  rs  s       @@r„   ÚTENSOR_SUBCLASS_METADATA_MATCHz+GuardBuilder.TENSOR_SUBCLASS_METADATA_MATCHÕ  s  øø€ Ø—’˜œÑ$Ô$ˆÝ$ T§X¢X¨e¬jÑ%9Ô%9×%LÒ%LÑ%NÔ%NÈqÔ%QÑRÔRÐÝ�5Ð.Ñ/Ô/ð 	FÝ% eÑ,Ô,Ð,ðð ð ð ð ð ð ðFð Fð Fð Fð Fð i­2Ð.>Ñ+?Ô+?ÐhÐhÅ>ÔCdÑCfÔCfÐhÐhˆØ×Ò˜uÑ%Ô%×6Ò6ØÕ4°[À%ÑHÔHñ	
ô 	
ð 	
ð 	
ð 	
r†   c                óž  ‡— |                       |¦  «        }|                      |j        ¦  «        }t          |¦  «        }t          r|t          j        t          j        t          j        t          j        t          j	        t          j
        t          j        t          j        t          j        t          j        t          j        f}nd}t           t"          f}t%          t&          t          t$          t(          t*          t,          t.          j        h|£|£z  ¦  «        Št.          j                             ¦   «         rddlm} ddlm}m}	m }
 ‰|
|	||fz   ŠtC          |tD          ¦  «        rUtG          ˆfd„tI          j%        | &                    ¦   «         | '                    ¦   «         ¦  «        D ¦   «         ¦  «        sJ ‚n-tC          |‰¦  «        sJ dt          |¦  «        › d‰› �¦   «         ‚tC          |tP          ¦  «        r¥tS          j*        |¦  «        r‘|  +                    |¦  «         g }| ,                    d|› d	�¦  «         |  -                    ||¦  «         |  .                    |¦  «         /                    ta          ¦   «         d
         tc          ||¦  «        ¦  «         d S tC          |td          ¦  «        r¥t	          j*        |¦  «        r‘|  +                    |¦  «         g }| ,                    d|› d	�¦  «         |  -                    ||¦  «         |  .                    |¦  «         /                    ta          ¦   «         d         tc          ||¦  «        ¦  «         d S |› d|›�g}tC          ||¦  «        rtg          |¦  «        }|  .                    |¦  «         4                    |tc          ||¦  «        ¦  «         |  -                    ||¦  «         d S )Nr±   r   )Ú
DeviceMesh)ÚPartialÚ	ReplicateÚShardc              3  ó8   •K  — | ]}t          |‰¦  «        V — Œd S r¢   )ra   )r²   rñ   Úok_typess     €r„   ú	<genexpr>z,GuardBuilder.EQUALS_MATCH.<locals>.<genexpr>  s>   øè è € ð ð Ø()•�q˜(Ñ#Ô#ðð ð ð ð ð r†   zUnexpected type z	, not in z__math_isnan(rk  r)  z__numpy_isnan(r*  r’  )5rb  r×  rM  rl  r  Úint8Úint16Úint32Úint64Úuint8Úuint16Úuint32Úuint64Úfloat16Úfloat32Úfloat64ra  rÒ  r7  r[   Ú	frozensetÚsliceÚrangerÌ   ÚSizeÚdistributedÚis_availableÚtorch.distributed.device_meshrµ  Ú(torch.distributed.tensor.placement_typesr¶  r·  r¸  ra   r”  ÚallÚ	itertoolsÚchainr|  rR  r6  r4  r5  rx  rù   rk  rÝ  rT  r<  rb  Úcomplexr   r™  )rƒ   r¸   rn  ro  rÀ   Únp_typesÚok_mutable_typesrµ  r¶  r·  r¸  rÎ  rº  s               @r„   r�  zGuardBuilder.EQUALS_MATCHê  s  ø€ Ø�lŠl˜5Ñ!Ô!ˆØ�hŠh�u”zÑ"Ô"ˆÝ�‰IŒIˆÝð 	å”Ý”Ý”Ý”Ý”Ý”	Ý”	Ý”	Ý”
Ý”
Ý”
ð/ˆHˆHð ˆHå ¥#˜;ÐåÝ!åÝÝÝÝÝ”
ð	ð ð	ð "ð	ñ
ñ
ô 
ˆõ Ô×)Ò)Ñ+Ô+ð 	Ø@Ð@Ð@Ð@Ð@Ð@ðð ð ð ð ð ð ð ð ð ð  ØØØØð	#ñ ˆHõ �#•tÑÔð 	AÝð ð ð ð Ý-6¬_¸S¿XºX¹Z¼ZÈÏÊÉÌÑ-VÔ-Vðñ ô ñ ô ð ð ð ð õ ØØñô ð Að Að A¥$ s¡)¤)Ð@Ð@°hÐ@Ð@ñAô Að õ �#•uÑÔð 
	¥$¤*¨S¡/¤/ð 
	Ø�OŠO˜EÑ"Ô"Ð"ØˆDØ�KŠKÐ.¨Ð.Ð.Ð.Ñ/Ô/Ð/Ø×'Ò'¨¨tÑ4Ô4Ð4à×"Ò" 5Ñ)Ô)×:Ò:Ý!Ñ#Ô# NÔ3Ý& t¨UÑ3Ô3ñô ð ð ˆFõ �#•wÑÔð 
	¥B¤H¨S¡M¤Mð 
	Ø�OŠO˜EÑ"Ô"Ð"ØˆDØ�KŠKÐ/¨Ð/Ð/Ð/Ñ0Ô0Ð0Ø×'Ò'¨¨tÑ4Ô4Ð4à×"Ò" 5Ñ)Ô)×:Ò:Ý!Ñ#Ô# OÔ4Ý& t¨UÑ3Ô3ñô ð ð ˆFð Ð#Ð#˜CÐ#Ð#Ð$ˆÝ�#Ð'Ñ(Ô(ð 	 õ ˜3‘-”-ˆCØ×Ò˜uÑ%Ô%×<Ò<ØÕ'¨¨eÑ4Ô4ñ	
ô 	
ð 	
ð 	×#Ò# E¨4Ñ0Ô0Ð0Øˆr†   c                óð   — |                       |j        ¦  «        }t          |t          t	          d ¦  «        t
          j        f¦  «        r|                      |¦  «         d S |                      |¦  «         d S r¢   )	r×  rM  ra   rˆ  rl  ÚtypesÚCodeTyper†  r�  ©rƒ   r¸   ro  s      r„   ÚCONSTANT_MATCHzGuardBuilder.CONSTANT_MATCHO  sh   € Ø�hŠh�u”zÑ"Ô"ˆÝ�#��d 4™jœj­%¬.Ð9Ñ:Ô:ð 	%Ø�MŠM˜%Ñ Ô Ð Ð Ð à×Ò˜eÑ$Ô$Ð$Ð$Ð$r†   c                óJ  — |                       |¦  «         |                      |j        ¦  «        }t          |d¦  «        r?t	          |j        t          ¦  «        sJ ‚|                      |dt          j	        ¦  «         d S t          j        dt          |¦  «        › �¦  «         d S )NÚtrainingz$Guard setup for uninitialized class )r†  r×  rM  rë   ra   rÛ  rˆ  rg  r±  rÙ  r6   Úunimplementedrl  rØ  s      r„   Ú	NN_MODULEzGuardBuilder.NN_MODULEV  s™   € Ø�Š�eÑÔÐØ�hŠh�u”zÑ"Ô"ˆÝ�3˜
Ñ#Ô#ð 	RÝ˜#œ,­Ñ-Ô-Ð-Ð-Ð-Ø×$Ò$ U¨J½Ô8SÑTÔTÐTÐTÐTåÔÐPÅTÈ#ÁYÄYÐPÐPÑQÔQÐQÐQÐQr†   c                ó,   — |                       |¦  «        S )z0things like torch.add and user defined functions)r†  rL  s     r„   ÚFUNCTION_MATCHzGuardBuilder.FUNCTION_MATCH_  s   € à�}Š}˜UÑ#Ô#Ð#r†   c                óF  — |                       |j        ¦  «        }t          |¦  «        t          j        k    rTt          |d¦  «        rD|                      |dt          j        ¦  «         |                      |dt          j	        ¦  «         dS |  	                    |¦  «         dS )z!matches a closure by __code__ id.Ú__code__N)
r×  rM  rl  rÖ  ÚFunctionTyperë   rg  r±  rq  rß  rØ  s      r„   ÚCLOSURE_MATCHzGuardBuilder.CLOSURE_MATCHc  sŽ   € à�hŠh�u”zÑ"Ô"ˆå�‰9Œ9�Ô*Ò*Ð*­w°s¸JÑ/GÔ/GÐ*Ø×$Ò$ U¨J½Ô8LÑMÔMÐMØ×$Ò$ U¨J½Ô8SÑTÔTÐTÐTÐTà×Ò Ñ&Ô&Ð&Ð&Ð&r†   c                ó,   — |                       |¦  «        S r¢   ©rß  rL  s     r„   ÚBUILTIN_MATCHzGuardBuilder.BUILTIN_MATCHm  ó   € Ø×"Ò" 5Ñ)Ô)Ð)r†   c                ó,   — |                       |¦  «        S r¢   rå  rL  s     r„   ÚPYMODULE_MATCHzGuardBuilder.PYMODULE_MATCHp  rç  r†   c                óì  — |                       |¦  «        }|                      |j        ¦  «        }t          |¦  «        }t	          |t
          ¦  «        s|                      |¦  «         g }t          |¦  «        dk    r|                     d|› �¦  «         n(|                     d|› dt          |¦  «        › �¦  «         |  	                    ||¦  «         t	          |t
          ¦  «        rF|  
                    |¦  «                             t          |¦  «        t          ||¦  «        ¦  «         d S |  
                    |¦  «                             t          |¦  «        t          ||¦  «        ¦  «         d S )Nr   r€  zlen(rz  )rb  r×  rM  rl  r›   r”  rx  Úlenrù   rk  rÝ  Úadd_dict_length_check_guardrb  Úadd_length_check_guard©rƒ   r¸   rn  rs  rÀ   rÎ  s         r„   ÚSEQUENCE_LENGTHzGuardBuilder.SEQUENCE_LENGTHs  se  € ð �lŠl˜5Ñ!Ô!ˆØ—’˜œÑ$Ô$ˆÝ�‰KŒKˆå˜%¥Ñ&Ô&ð 	#à�OŠO˜EÑ"Ô"Ð"àˆÝˆu‰:Œ:˜Š?ˆ?Ø�KŠK˜˜s˜˜Ñ%Ô%Ð%Ð%à�KŠKÐ5˜sÐ5Ð5­¨U©¬Ð5Ð5Ñ6Ô6Ð6à×#Ò# E¨4Ñ0Ô0Ð0Ý�e�TÑ"Ô"ð 	Ø×"Ò" 5Ñ)Ô)×EÒEÝ�E‘
”
Õ2°4¸Ñ?Ô?ñô ð ð ð ð ×"Ò" 5Ñ)Ô)×@Ò@Ý�E‘
”
Õ2°4¸Ñ?Ô?ñô ð ð ð r†   c                óè  — |                       |¦  «        }|                      |j        ¦  «        }t          |¦  «        }g }|                     d|› dt          |¦  «        › �¦  «         |                      ||¦  «         t          |¦  «        }|                      |d|j        › d�¦  «        }|                      |¦  «         	                    t          |¦  «        |t          ||¦  «        ¦  «         d S )Nz___tuple_iterator_len(rz  rv  rk  )rb  r×  rM  rl  rù   rh   rk  r²  rÝ  Úadd_tuple_iterator_length_guardrb  )rƒ   r¸   rn  rs  rÀ   rÎ  r  s          r„   ÚTUPLE_ITERATOR_LENzGuardBuilder.TUPLE_ITERATOR_LENŽ  sî   € Ø�lŠl˜5Ñ!Ô!ˆØ—’˜œÑ$Ô$ˆÝ�‰KŒKˆàˆØ�ŠÐR¨SÐRÐRÕ7IÈ%Ñ7PÔ7PÐRÐRÑSÔSÐSØ×#Ò# E¨4Ñ0Ô0Ð0å�‰KŒKˆØ—’˜QÐ 5¨¬
Ð 5Ð 5Ð 5Ñ6Ô6ˆà×Ò˜uÑ%Ô%×EÒEÝ˜uÑ%Ô% vÕ/EÀdÈEÑ/RÔ/Rñ	
ô 	
ð 	
ð 	
ð 	
r†   c           
     óâ  — |                       |¦  «        }|                      |j        ¦  «        }t          |¦  «        }g }t	          |¦  «        }|                     d|› d|› �¦  «         |                      ||¦  «         t          |¦  «        }|                      |d|j        › d�¦  «        }|\  }}	}
|                      |¦  «         	                    ||	|
|t          ||¦  «        ¦  «         d S )Nz___normalize_range_iter(rz  rv  rk  )rb  r×  rM  rl  rd   rù   rk  r²  rÝ  Úadd_range_iterator_match_guardrb  )rƒ   r¸   rn  rs  rÀ   rÎ  Únormalized_range_iterr  ÚstartÚstopÚsteps              r„   ÚRANGE_ITERATOR_MATCHz!GuardBuilder.RANGE_ITERATOR_MATCHž  sü   € Ø�lŠl˜5Ñ!Ô!ˆØ—’˜œÑ$Ô$ˆÝ�‰KŒKˆàˆÝ 4°UÑ ;Ô ;ÐØ�ŠÐP¨sÐPÐPÐ9NÐPÐPÑQÔQÐQØ×#Ò# E¨4Ñ0Ô0Ð0å�‰KŒKˆØ—’˜QÐ 5¨¬
Ð 5Ð 5Ð 5Ñ6Ô6ˆà1Ñˆˆt�TØ×Ò˜uÑ%Ô%×DÒDØ�4˜˜vÕ'=¸dÀEÑ'JÔ'Jñ	
ô 	
ð 	
ð 	
ð 	
r†   c                ó  — |                       |¦  «        }|                       |                     ¦   «         ¦  «        }t          |j        ¦  «        st          |¦  «        rd S |› d|› �g}|                      ||¦  «         ||f}|| j        v rd S | j                             ||f¦  «         | j                             ||f¦  «         t          |                      |¦  «        |  	                    |¦  «        t          ||¦  «        ¦  «         d S )Nú is )rb  rM  r   r¤  rk  rÙ  r’   r   rÝ  r,  rb  )rƒ   r¸   Úsource_bÚref_aÚref_brÎ  r~  s          r„   ÚDUPLICATE_INPUTzGuardBuilder.DUPLICATE_INPUT±  s&  € Ø—’˜UÑ#Ô#ˆØ—’˜XŸ]š]™_œ_Ñ-Ô-ˆå#ØÔ$ñ
ô 
ð 	å% hÑ/Ô/ð	ð ˆFàÐ%Ð%˜eÐ%Ð%Ð&ˆØ×#Ò# E¨4Ñ0Ô0Ð0ð �eˆnˆØ�$Ô5Ð5Ð5ØˆFØÔ+×/Ò/°¸°Ñ?Ô?Ð?ØÔ+×/Ò/°¸°Ñ?Ô?Ð?å%Ø×"Ò" 5Ñ)Ô)Ø×.Ò.¨xÑ8Ô8Ý" 4¨Ñ/Ô/ñ	
ô 	
ð 	
ð 	
ð 	
r†   c                ó”  — |                       |¦  «        }|                      |j        ¦  «        }t          |¦  «        }|                      |¦  «         g }t          d„ |                     ¦   «         D ¦   «         ¦  «        }t          t          |¦  «        t          |j
        ¦  «        ¬¦  «        }|r|                     d|› d|› �¦  «         n|                     d|› d|› �¦  «         |                      ||¦  «         |                      |j
        ¦  «        r|                      ||¦  «         d S |                      ||¦  «         d S )Nc              3  ó4   K  — | ]}t          |¦  «        V — Œd S r¢   )rb   )r²   Úks     r„   r»  z)GuardBuilder.DICT_KEYS.<locals>.<genexpr>Ò  s(   è è € Ð?Ð?¨Q�I a™LœLÐ?Ð?Ð?Ð?Ð?Ð?r†   )Úlocalz___key_to_id(rz  r�  ú.keys()) == )rb  r×  rM  rl  rx  Úanyr|  r\   rc   r   r¤  rù   rk  r  ré  rã  )rƒ   r¸   rn  rs  rÀ   rÎ  Úany_key_is_idÚconst_keys_reprs           r„   Ú	DICT_KEYSzGuardBuilder.DICT_KEYSÊ  sU  € à�lŠl˜5Ñ!Ô!ˆØ—’˜œÑ$Ô$ˆÝ�‰KŒKˆà�Š˜ÑÔÐØˆÝÐ?Ð?°%·*²*±,´,Ð?Ñ?Ô?Ñ?Ô?ˆÝ(Ý�eÑÔÝ& uÔ'?Ñ@Ô@ð
ñ 
ô 
ˆð ð 	DØ�KŠKÐC¨ÐCÐC°/ÐCÐCÑDÔDÐDÐDà�KŠKÐB ÐBÐB°ÐBÐBÑCÔCÐCà×#Ò# E¨4Ñ0Ô0Ð0Ø×+Ò+¨EÔ,DÑEÔEð 	CØ×-Ò-¨e°UÑ;Ô;Ð;Ð;Ð;à×4Ò4°U¸EÑBÔBÐBÐBÐBr†   c                óÐ   — |                       |¦  «        › d�g}|                      ||¦  «         |                      |¦  «                             t	          ||¦  «        ¦  «         d S rˆ  )rb  rk  rÝ  rŠ  rb  )rƒ   r¸   rÎ  s      r„   ÚWEAKREF_ALIVEzGuardBuilder.WEAKREF_ALIVEâ  sr   € Ø—<’< Ñ&Ô&Ð4Ð4Ð4Ð5ˆà×#Ò# E¨4Ñ0Ô0Ð0Ø×Ò˜uÑ%Ô%×8Ò8Ý" 4¨Ñ/Ô/ñ	
ô 	
ð 	
ð 	
ð 	
r†   c           	     ó¶  — |                       |¦  «        }|                      |j        ¦  «        }t          |¦  «        }g }|                     d|› dt          |                     ¦   «         ¦  «        ›�¦  «         |                      ||¦  «         |                      |j	        ¦  «        r|  
                    ||¦  «         dS |                      ||¦  «         dS )zConstant keys matchr�  r  N)rb  r×  rM  rl  rù   ra  r|  rk  r  r¤  ré  rã  rî  s         r„   ÚDICT_CONST_KEYSzGuardBuilder.DICT_CONST_KEYSê  sÑ   € à�lŠl˜5Ñ!Ô!ˆØ—’˜œÑ$Ô$ˆÝ�‰KŒKˆàˆØ�ŠÐC˜CÐCÐC­T°%·*²*±,´,Ñ-?Ô-?ÐCÐCÑDÔDÐDØ×#Ò# E¨4Ñ0Ô0Ð0à×+Ò+¨EÔ,DÑEÔEð 	CØ×-Ò-¨e°UÑ;Ô;Ð;Ð;Ð;à×4Ò4°U¸EÑBÔBÐBÐBÐBr†   c                óL   — t           j        rdS |                      |¦  «         dS )z\Special guard to skip guards on empty hooks. This is controlled by skip_nnmodule_hook_guardsN)r4   Úskip_nnmodule_hook_guardsrï  rL  s     r„   ÚEMPTY_NN_MODULE_HOOKS_DICTz'GuardBuilder.EMPTY_NN_MODULE_HOOKS_DICTù  s,   € åÔ+ð 	àˆFØ×Ò˜UÑ#Ô#Ð#Ð#Ð#r†   c                ój   — t          j        |                      |j        ¦  «        | j        ¦  «         d S r¢   )r7   Úwatchr×  rM  rº  rL  s     r„   ÚOBJECT_MUTATIONzGuardBuilder.OBJECT_MUTATION   s,   € ÝÔ˜TŸXšX e¤jÑ1Ô1°4Ô3HÑIÔIÐIÐIÐIr†   c                ó   — d S r¢   r±   rL  s     r„   Ú	GRAD_MODEzGuardBuilder.GRAD_MODE  ó   € Øˆr†   c                ó   — d S r¢   r±   rL  s     r„   ÚDETERMINISTIC_ALGORITHMSz%GuardBuilder.DETERMINISTIC_ALGORITHMS  r  r†   c                ó   — d S r¢   r±   rL  s     r„   ÚTORCH_FUNCTION_STATEz!GuardBuilder.TORCH_FUNCTION_STATE	  r  r†   c                ó   — d S r¢   r±   rL  s     r„   ÚFSDP_TRAINING_STATEz GuardBuilder.FSDP_TRAINING_STATE  r  r†   c                óð   — |j         t          j        u sJ ‚ddlmc m} d|j        ›�g}|                      ||¦  «         |                      |¦  «         	                    t          ||¦  «        ¦  «         dS )z/Guard on CURRENT_DEVICE per torch.utils._devicer   Nzutils_device.CURRENT_DEVICE == )r¿   r'   ÚGLOBALÚtorch.utils._devicer9  r:  ÚCURRENT_DEVICErk  rÝ  Úadd_default_device_guardrb  )rƒ   r¸   r  rÎ  s       r„   ÚDEFAULT_DEVICEzGuardBuilder.DEFAULT_DEVICE  s™   € àŒ|�{Ô1Ð1Ð1Ð1Ð1Ø'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'àF°!Ô2BÐFÐFÐGˆØ×#Ò# E¨4Ñ0Ô0Ð0à×Ò˜uÑ%Ô%×>Ò>Ý" 4¨Ñ/Ô/ñ	
ô 	
ð 	
ð 	
ð 	
r†   c                ó²  ‡— |j         dk    sJ ‚| j        j        Š‰j        }d„ |D ¦   «         }ˆfd„}‰j        r­i }g }g }i }t          ¦   «         }	‰j        D ][}
|
j        ‰j        v r1t          j	        j
                             |
|‰j        |||||	¦  «         ŒAt                               d¦  «         Œ\t          ||t!          |                     ¦   «         ¦  «        |	d¬¦  «        }nd }‰j                             d„ |D ¦   «         d„ |D ¦   «         ||| j        | j        j        j	         ¬	¦  «        \  }}| j        j        j	        s‰j                             ¦   «          |D ]}|                      ||g¦  «         Œt-          j        ¦   «         x}r|j                             |¦  «         |                      ||i t6          ¥t9          ¦   «         ¥¬
¦  «         d S )Nrè   c                ó   — g | ]	}|j         ‘Œ
S r±   )Úsymbolic_context©r²   r
  s     r„   rµ   z*GuardBuilder.SHAPE_ENV.<locals>.<listcomp>#  s   € Ð9Ð9Ð9°˜!Ô,Ð9Ð9Ð9r†   c                ó8   •‡— ˆfd„‰j         |          D ¦   «         S )Nc                óF   •— g | ]}t          |t          j        ‰¦  «        ‘ŒS r±   )r    r   ÚSIZE)r²   r¿   rh  s     €r„   rµ   z?GuardBuilder.SHAPE_ENV.<locals>.get_sources.<locals>.<listcomp>(  s8   ø€ ð ð ð àõ % V­^Ô-@À#ÑFÔFðð ð r†   )Útracked_fakes_id_to_source)Út_idrh  rÔ  s    `€r„   Úget_sourcesz+GuardBuilder.SHAPE_ENV.<locals>.get_sources%  s7   øø€ ðð ð ð à*ÔEÀdÔKðñ ô ð r†   z+Untracked tensor used in export constraintsF)Úsource_pairsÚderived_equalitiesÚphantom_symbolsÚrelaxed_sourcesÚ	warn_onlyc                ó   — g | ]	}|j         ‘Œ
S r±   )Úfaker%  s     r„   rµ   z*GuardBuilder.SHAPE_ENV.<locals>.<listcomp>M  s   € Ð Ð Ð ˜ˆQŒVÐ Ð Ð r†   c                ó   — g | ]	}|j         ‘Œ
S r±   )r¿   r%  s     r„   rµ   z*GuardBuilder.SHAPE_ENV.<locals>.<listcomp>N  s   € Ð"Ð"Ð"˜!ˆQŒXÐ"Ð"Ð"r†   )Úinput_contextsÚequalities_inputsr´  Úignore_static)rw   )rM  rº  rÔ  Útracked_fakesÚexport_constraintsrÒ  r*  r)  rÌ   ÚexportÚdynamic_shapesÚ_process_equalitiesÚ	shape_envr`  ra  r,   ra  rR  Úproduce_guards_verboser´  Úfreezerk  r!   Útry_getÚshape_env_guardsrÿ   r[  r.   r<  )rƒ   r¸   r[  r4  r+  Únamesr,  r-  r.  r/  Ú
constraintr5  ry   rz   rÎ  Úcompile_contextrÔ  s                   @r„   Ú	SHAPE_ENVzGuardBuilder.SHAPE_ENV  sj  ø€ ð Œz˜RÒÐÐÐØÔ,Ô9ˆàÔ'ˆØ9Ð9°bÐ9Ñ9Ô9ˆð	ð 	ð 	ð 	ð 	ð Ô*ð 	%Ø02ˆEØ8:ˆLð ð ð 24ˆOÝ+.©5¬5ˆOØ*Ô=ð Oð O�
Ø”? lÔ&MÐMÐMÝ”LÔ/×CÒCØ"Ø#Ø$Ô.ØØ$Ø*Ø'Ø'ñ	ô 	ð 	ð 	õ —K’KÐ MÑNÔNÐNÐNÝ 2Ø)Ø#5Ý $ _×%;Ò%;Ñ%=Ô%=Ñ >Ô >Ø /Øð!ñ !ô !ÐÐð !%ÐØ)5Ô)?×)VÒ)VØ Ð ˜RÐ Ñ Ô Ø"Ð"˜rÐ"Ñ"Ô"Ø)Ø/Ø”à#Ô4ÔAÔHÐHð *Wñ *
ô *
Ñ&ˆ
Ð&ð Ô$Ô1Ô8ð 	,ØÔ"×)Ò)Ñ+Ô+Ð+àð 	7ð 	7ˆDØ×'Ò'¨°¨vÑ6Ô6Ð6Ð6õ -Ô4Ñ6Ô6Ð6ˆ?ð 	HØÔ,×3Ò3Ð4FÑGÔGÐGð
 	×1Ò1ØØØ@�LÐ@Õ,=Ñ,?Ô,?Ð@ð 	2ñ 	
ô 	
ð 	
ð 	
ð 	
r†   c                ó¢  — |                      ¦   «         rt          |j        t          ¦  «        rt	          |¦  «        r|                      |¦  «         d S t          |t          ¦  «        r
 |¦   «         }|�|n|                      |j        ¦  «        }t          |t          j
        ¦  «        sJ ‚|                      |¦  «        }g }| j        j        j        rª|                      |¦  «         g d¢}|D ]Œ}|                      |dz   |z   ¦  «        }t!          |t          j        t          j        f¦  «        r,|                     d|› d|› dt)          |¦  «        ›�¦  «         Œo|                     |› d|› d|› �¦  «         Œ��n=|                      |¦  «        }t,          j        rt!          |t          j        j        ¦  «        s4| j                             |¦  «         | j                             |¦  «         | j        j        }	|	j        |j                 }
t;          |
d         ¦  «        }t;          |
d         ¦  «        }t=          t?          ||||¦  «        |¦  «        }|                      |||||¦  «         t          |t          j        j        ¦  «        s)| j        j!        j"         #                    |j        ¦  «         |j$        €J ‚tK          |d|j        ¬	¦  «        \  }}|sÂtM          |d
¦  «        r`|j'        }d|› d|› d|› d�}|                     |¦  «         |                      |¦  «         (                    |t=          ||¦  «        ¦  «         nRd|› d�}|                     |¦  «         |                      |¦  «         )                    d
t=          ||¦  «        ¦  «         tU          |¦  «        dk    r|  +                    ||¦  «         d S d S )N)rp  r.  rr  zndimension()rÄ  zstr(rz  r’  ÚsizeÚstrideT)Ú	is_tensorÚtensor_sourceÚ_dynamo_dynamic_indicesz((z"._dynamo_dynamic_indices.issubset(z)) if hasattr(z', '_dynamo_dynamic_indices') else True)ri  z%, '_dynamo_dynamic_indices') == Falser   ),Úis_specialized_nn_moduler›   r¤  rH   r¦  r†  r2   r×  rM  rÌ   r‰  rb  rº  rÔ  r9  rx  ra   r.  rp  rù   r?  rÝ  r4   Ú,skip_no_tensor_aliasing_guards_on_parametersr2  Ú	ParameterrÐ  rÑ  Úinput_source_to_sizes_stridesri  rb  rz  Úadd_tensor_match_guardr½   r‚   r’   r¿   rf   rë   rJ  Úadd_dynamic_indices_guardrl  rë  rk  )rƒ   r¸   rs  Útensor_namerÎ  ÚtermsÚtermÚ
real_valuer½   rÔ  ÚmetadatarF  rG  rz   ÚstaticÚreasonÚdynamic_indicesrü   s                     r„   ÚTENSOR_MATCHzGuardBuilder.TENSOR_MATCHj  sW  € ð ×*Ò*Ñ,Ô,ðU	9å˜uÔ7Õ9JÑKÔKðU	9õ $ EÑ*Ô*ðU	9ð �MŠM˜%Ñ Ô Ð Ð Ð å˜%¥Ñ/Ô/ð  Ø˜™œ�à"Ð.�E�E°D·H²H¸U¼ZÑ4HÔ4HˆEÝ˜e¥U¤\Ñ2Ô2Ð2Ð2Ð2àŸ,š, uÑ-Ô-ˆKð, !ˆDØÔ$Ô1Ô8ð ;Ø—’ Ñ&Ô&Ð&ðð ð �ð "ð Mð M�DØ!%§¢¨+¸Ñ*;¸dÑ*BÑ!CÔ!C�JÝ˜j­5¬<½¼Ð*EÑFÔFð MàŸšÐ$W¨;Ð$WÐ$W¸Ð$WÐ$WÅCÈ
ÁOÄOÐ$WÐ$WÑXÔXÐXÐXàŸš {Ð$KÐ$K°TÐ$KÐ$K¸zÐ$KÐ$KÑLÔLÐLÐLñMð !%× 6Ò 6°uÑ =Ô =�õ ÔGðQå˜u¥e¤hÔ&8Ñ9Ô9ðQð Ô1×8Ò8¸ÑEÔEÐEØÔ:×AÒAÀ-ÑPÔPÐPà#Ô4ÔA�Ø'ÔEØÔ,ô�õ 2°(¸6Ô2BÑCÔC�Ý3°H¸XÔ4FÑGÔG�å%;Ý.¨u°kÀ4ÈÑPÔPØñ&ô &Ð"ð ×4Ò4ØØØØØ&ñô ð õ " %­¬Ô);Ñ<Ô<ð ØÔ)Ô7ÔJ×NÒNØœ
ñô ð ð@ ”<Ð+Ð+Ð+Ý;Ø °UÔ5Mðñ ô ‰NˆF�Fð ð Ý˜5Ð";Ñ<Ô<ð Ø&+Ô&C�Oð !h [ð  !hð  !hÐTcð  !hð  !hÐs~ð  !hð  !hð  !h�IØ—K’K 	Ñ*Ô*Ð*Ø×*Ò*¨5Ñ1Ô1×KÒKØ'Õ)?À	È5Ñ)QÔ)Qñô ð ð ð V ;ÐUÐUÐUð ð —K’K 	Ñ*Ô*Ð*Ø×*Ò*¨5Ñ1Ô1×FÒFØ1Ý.¨y¸%Ñ@Ô@ñô ð õ �4‰yŒy˜1Š}ˆ}Ø×+Ò+¨E°4Ñ8Ô8Ð8Ð8Ð8ð ˆ}r†   c                óB  — t          ¦   «         }|€J ‚|j        }~|€J ‚t          |¦  «        d         }~|t          | j        ¦  «        v sJ d|› �¦   «         ‚|€3|j        d uo
|j        dk    }|r|                      |j        ¦  «        nd }n|}|�!t          j        t          |¦  «        ¦  «        nd }	d }
t          |j        dd¦  «        dk    }|r5t          |t          j        t          f¦  «        st          j        |¦  «        }
|                     ||	||
¦  «         d S )Nr¬  zH_produce_guard_code must be called from inside GuardedCode. Called from rè   Ú__weakrefoffset__r   )r   Úf_backr   Údirr¶   rM  r×  Úweakrefrn  rl  Úgetattrr›   ÚenumÚEnumr7  Úset_export_info)rƒ   r¸   r©  rj  Ú	cur_frameÚcallerÚ	func_nameÚ
name_validÚguarded_objectÚguarded_object_typeÚobj_refÚsupports_weakrefs               r„   rk  z#GuardBuilder._set_guard_export_info  st  € õ !‘N”Nˆ	ØÐ$Ð$Ð$ØÔ!ˆØØÐ!Ð!Ð!Ý  Ñ(Ô(¨Ô+ˆ	Øà�CØŒNñ
ô 
ð 
ð 
ð 
àaÐV_ÐaÐañ
ô 
ð 
ð
 #Ð*Øœ¨4Ð/ÐD°E´JÀ"Ò4DˆJà5?ÐI˜TŸXšX e¤jÑ1Ô1Ð1ÀTˆNˆNà4ˆNð 2@Ð1K�GŒK�˜^Ñ,Ô,Ñ-Ô-Ð-ÐQUð 	ð ˆõ �NÔ,Ð.AÀ1ÑEÔEÈÒJð 	ð ð 	2¥J¨~ÅÄ	Í5Ð?QÑ$RÔ$Rð 	2Ý”k .Ñ1Ô1ˆGà×ÒØØØØñ		
ô 	
ð 	
ð 	
ð 	
r†   )r²  r³  r´  rµ  r¶  r·  r¸  r¹  r{   r¹  r½   rr   rº  r»  )r¸   r$   rt   )rM  r?  r>  r   )r¸   r^  r>  r?  )r¸   r$   r  r?  r¢   )r¸   r$   r>  rG  )r¸   r$   r~  r?  r~  rˆ  )7r·   rã   rä   r…   rã  ré  Ústaticmethodrò  r  r  rß  r  r  r,  rÝ  r[  r×  rb  rg  rq  rt  rx  r}  rƒ  r†  r‹  rŽ  r“  r›  r¨  r³  r�  rÙ  rÝ  rß  rã  ræ  ré  rï  rò  rù  rÿ  r  r
  r  r  r  r  r  r  r  r!  rD  rY  rk  r±   r†   r„   r±  r±  [  s  € € € € € ð;Jð ;Jð ;Jð ;Jðzð ð ð. ð  ð  ðD ðð ñ „\ðð"Sð Sð Sðj9ð 9ð 9ð
"ð 
"ð 
"ð
ð 
ð 
ð
ð 
ð 
ðnð nð nð`	Lð Lð Lð Lð ØðSð Sð Sð SðD;ð ;ð ;ð ;ðð ð ð ðð ð ð ð4Yð 4Yð 4Yð 4Yðl
ð 
ð 
ð 
ð 
ð(	
ð 	
ð 	
ð 	
ð
ð 
ð 
ð 
ð	
ð 	
ð 	
ð 	
ð?ð ?ð ?ð ?ð<	
ð 	
ð 	
ð 	
ð 	
ðOð Oð Oð Oð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð$
ð 
ð 
ð 
ð*cð cð cð cðJ%ð %ð %ð %ðRð Rð Rð Rð$ð $ð $ð $ð'ð 'ð 'ð 'ð*ð *ð *ð *ð*ð *ð *ð *ðð ð ð6
ð 
ð 
ð 
ð 
ð 
ð&
ð 
ð 
ð2Cð Cð Cð0
ð 
ð 
ðCð Cð Cð$ð $ð $ðJð Jð Jð Jðð ð ð ðð ð ð ðð ð ð ðð ð ð ð

ð 

ð 

ð 

ðM
ð M
ð M
ð M
ð^[9ð [9ð [9ð [9ð [9ð|*
ð *
ð *
ð *
ð *
ð *
r†   r±  c                  óÜ   — e Zd ZdZej        ej        ej        fZe	j
         G d„ d¦  «        ¦   «         Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Zdd
„Zddd„Zdd„Zdd„ZdS )ÚPyExprCSEPassr3   c                  ó$   — e Zd ZU ded<   ded<   dS )úPyExprCSEPass.ConfigzDict[str, int]Ú
expr_countzDict[str, str]Úexpr_to_nameNrª  r±   r†   r„   ÚConfigro  N  s*   € € € € € € à"Ð"Ð"Ñ"Ø$Ð$Ð$Ñ$Ð$Ð$r†   rr  c                  ó(   ‡ — e Zd Zd
d„Zdˆ fd	„Zˆ xZS )úPyExprCSEPass.ExprCounterr4   ro  r>  rG  c                ó   — || _         d S r¢   )Ú_config)rƒ   r4   s     r„   r…   z"PyExprCSEPass.ExprCounter.__init__T  s   € Ø!ˆDŒLˆLˆLr†   r“   r=  r   c                óÌ   •— t          |t          j        ¦  «        r'| j        j        t          |¦  «        xx         dz  cc<   t          ¦   «                              |¦  «         d S r¬  )r›   rm  ÚALLOWED_NODE_TYPESrv  rp  rE  rß   r˜   )rƒ   r“   r¶   s     €r„   r˜   zPyExprCSEPass.ExprCounter.visitW  s^   ø€ Ý˜$¥Ô @ÑAÔAð AØ”Ô'­°TÑ(:Ô(:Ð;Ð;Ô;¸qÑ@Ð;Ð;Ñ;Ý‰GŒG�MŠM˜$ÑÔÐÐÐr†   )r4   ro  r>  rG  ©r“   r=  r>  r   ©r·   rã   rä   r…   r˜   rå   ræ   s   @r„   ÚExprCounterrt  S  sQ   ø€ € € € € ð	"ð 	"ð 	"ð 	"ð	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 r†   r{  c                  ó,   ‡ — e Zd Zdˆ fd„Zdˆ fd„Zˆ xZS )úPyExprCSEPass.Replacerr4   ro  Úgen_nameúCallable[[], str]r>  rG  c                ór   •— t          ¦   «                              ¦   «          || _        || _        g | _        d S r¢   )rß   r…   rv  Ú	_gen_nameÚpreface)rƒ   r4   r~  r¶   s      €r„   r…   zPyExprCSEPass.Replacer.__init__]  s4   ø€ õ
 ‰GŒG×ÒÑÔÐØ!ˆDŒLØ%ˆDŒNØ&(ˆDŒLˆLˆLr†   r“   r=  r   c                óJ  •— t          |t          j        ¦  «        rèt          |¦  «        }| j        j        |         t          j        k    r¹|| j        j        vrst          ¦   «          	                    |¦  «        }t          |¦  «        }|  
                    ¦   «         }| j                             |› d|› �¦  «         || j        j        |<   n| j        j        |         }t          j        |t          j        ¦   «         ¦  «        S t          ¦   «          	                    |¦  «        S )Nz = )r›   rm  rx  rE  rv  rp  ÚUSE_THRESHOLDrq  rß   r˜   r�  r‚  rù   rB  ÚNameÚLoad)rƒ   r“   ÚexprÚnode_Úexpr_Úvar_namer¶   s         €r„   r˜   zPyExprCSEPass.Replacer.visitg  sõ   ø€ Ý˜$¥Ô @ÑAÔAð :Ý# DÑ)Ô)�ð ”<Ô*¨4Ô0µ=Ô3NÒNÐNØ 4¤<Ô#<Ð<Ð<õ !&¡¤§¢¨dÑ 3Ô 3˜Ý ,¨UÑ 3Ô 3˜Ø#'§>¢>Ñ#3Ô#3˜Øœ×+Ò+¨xÐ,CÐ,C¸EÐ,CÐ,CÑDÔDÐDØ:B˜œÔ1°$Ñ7Ð7à#'¤<Ô#<¸TÔ#B˜Ýœ8 H­c¬h©j¬jÑ9Ô9Ð9å‘7”7—=’= Ñ&Ô&Ð&r†   )r4   ro  r~  r  r>  rG  ry  rz  ræ   s   @r„   ÚReplacerr}  \  s[   ø€ € € € € ð	)ð 	)ð 	)ð 	)ð 	)ð 	)ð	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'r†   r‹  r>  rG  c                ór   — d| _         |                      t          j        d„ ¦  «        i ¬¦  «        | _        d S )Nr   c                 ó   — dS rŒ   r±   r±   r†   r„   r$  z(PyExprCSEPass.__init__.<locals>.<lambda>„  s   € °q€ r†   )rp  rq  )Ú_counterrr  r1  Údefaultdictrv  rˆ   s    r„   r…   zPyExprCSEPass.__init__�  s9   € ØˆŒØ—{’{Ý"Ô.¨y¨yÑ9Ô9Èð #ñ 
ô 
ˆŒˆˆr†   Ú_varrÝ   r?  c                ó<   — |› | j         › �}| xj         dz  c_         |S r¬  )rŽ  )rƒ   rÝ   rM  s      r„   Ú_new_varzPyExprCSEPass._new_var‡  s)   € ØÐ)˜$œ-Ð)Ð)ˆØˆŒ˜ÑˆŒØˆr†   Úexprsr^  c                óü   — |                       | j        ¦  «        }|D ]^}	 |                     t          j        |¦  «        ¦  «         Œ+# t
          $ r'}t                               d|j        |¦  «         ‚ d }~ww xY wd S )Nz#Failed to visit expr at line %s.
%s)	r{  rv  r˜   rB  ÚparseÚSyntaxErrorr`  Ú	exceptionÚlineno)rƒ   r“  ÚcounterÚeÚexs        r„   ÚcountzPyExprCSEPass.countŒ  sŽ   € Ø×"Ò" 4¤<Ñ0Ô0ˆØð 	ð 	ˆAðØ—’�cœi¨™lœlÑ+Ô+Ð+Ð+øÝð ð ð Ý—’ÐDÀbÄiÐQRÑSÔSÐSØøøøøðøøøð	ð 	s    'AÁ
A9Á"A4Á4A9r‡  úTuple[List[str], str]c                ó¼   — |                       | j        | j        ¦  «        }|                     t	          j        |¦  «        ¦  «        }|j        t          |¦  «        fS r¢   )r‹  rv  r’  r˜   rB  r•  r‚  rE  )rƒ   r‡  ÚreplacerÚnew_nodes       r„   rD  zPyExprCSEPass.replace•  sH   € Ø—=’= ¤¨t¬}Ñ=Ô=ˆØ—>’>¥#¤)¨D¡/¤/Ñ2Ô2ˆØÔ¥¨hÑ!7Ô!7Ð7Ð7r†   N)r>  rG  )r�  )rÝ   r?  r>  r?  )r“  r^  r>  rG  ©r‡  r?  r>  r�  )r·   rã   rä   r„  rB  Ú	AttributeÚCallÚ	Subscriptrx  ÚdataclassesÚ	dataclassrr  ÚNodeVisitorr{  ÚNodeTransformerr‹  r…   r’  rœ  rD  r±   r†   r„   rm  rm  F  s  € € € € € ð €Mð œ-¨¬°3´=ÐAÐàÔð%ð %ð %ð %ð %ñ %ô %ñ Ôð%ð ð  ð  ð  ð  �c”oñ  ô  ð  ð#'ð #'ð #'ð #'ð #'�3Ô&ñ #'ô #'ð #'ðJ
ð 
ð 
ð 
ðð ð ð ð ð
ð ð ð ð8ð 8ð 8ð 8ð 8ð 8r†   rm  c                ót   — t          | j        t          ¦  «        pt          j        o| j        t          j        u S r¢   )r›   r¤  r>   r4   Ú guard_nn_modules_using_dict_tagsÚ	create_fnr±  rÝ  )r¸   s    r„   Úmust_add_nn_module_guardsr¬  ›  s8   € õ
 	�5Ô+­^Ñ<Ô<ð 	
õ Ô3ð :Ø”¥<Ô#9Ð9ðr†   c                  ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )ÚDeletedGuardManagerWrapperc                óV   •— t          ¦   «                              ¦   «          || _        d S r¢   )rß   r…   Úinvalidation_reason)rƒ   rW  r¶   s     €r„   r…   z#DeletedGuardManagerWrapper.__init__ª  s'   ø€ Ý‰Œ×ÒÑÔÐØ#)ˆÔ Ð Ð r†   c                ó   — d | _         d S r¢   )rv   rˆ   s    r„   r£   z6DeletedGuardManagerWrapper.populate_diff_guard_manager®  s   € Ø#ˆÔÐÐr†   )r·   rã   rä   r…   r£   rå   ræ   s   @r„   r®  r®  ©  sG   ø€ € € € € ð*ð *ð *ð *ð *ð$ð $ð $ð $ð $ð $ð $r†   r®  c                  ó6   — e Zd Z	 	 	 d	d
d„Zd„ Zd„ Zd„ Zd„ ZdS )r»  Nr|   ú%Optional[Callable[[GuardFail], None]]c           	     óÄ  ‡ ‡— |r|j         nd }i ‰ _        t          |¦  «        }t          ¦   «         ‰ _        |‰ j        _        |‰ _        d Š|r|j        nd ‰ _        ˆfd„}t          ‰ j	        |‰ j
        |j        |j        ‰ j        ‰ ¦  «        }d„ }t          j        ||¦  «        Št          j        ot#          d¦  «        }	t#          d¦  «        st$                               d¦  «         t)          |pg t*          j        ¬¦  «        D ]U}
|	s<|
                     ¦   «         r(d|
j        vrd|
j        vrt          j        s	d|
j        vrŒ@|
                     |¦  «         ŒV‰                      |||¦  «         |j        ‰ j        _        t:          j                             d	ˆ fd
„¬¦  «         t@           !                    d‰ j        ¦  «         |j        ‰ j        _        |j"        sÞ‰ j         #                    |j        ¦  «        s>tI          ‰ j        |j        tK          j&        ¦   «         ¦  «        }tO          d|› �¦  «        ‚tP          �tQ          ‰ j        |j        ¦  «         t@           )                    tT          j+        ¦  «        r<tY          ‰ j        j-        |j        ¦  «        }t@           !                    d|d›¦  «         ‰ j         .                    ¦   «          d ‰ _        d S )Nc                óâ   •— |                       ¦   «         }|t          j        u r|                      ¦   «         S ‰sJ ‚ ‰¦   «         }|€J ‚|                     |                      ¦   «         ¦  «        S r¢   )Úguard_sourcer'   ÚCONSTANTrM  rb  )r¿   r¶  Ú	r_builderÚ	w_builders      €r„   r´  z1CheckFunctionManager.__init__.<locals>.source_refÏ  sn   ø€ Ø!×.Ò.Ñ0Ô0ˆLØ�{Ô3Ð3Ð3à—{’{‘}”}Ð$ØÐÐ�9Ø!˜	™œˆIØÐ(Ð(Ð(Ø×$Ò$ V§[¢[¡]¤]Ñ3Ô3Ð3r†   c                ó0   —  | ¦   «         }|r	d |_         d S d S r¢   )rÆ  )Úweak_br#  s     r„   Úcleanup_builderz6CheckFunctionManager.__init__.<locals>.cleanup_builderä  s*   € Ø�‘”ˆAØð Ø�”��ðð r†   z!pytorch/compiler:guard_nn_modulesz9guard_nn_modules is turned off using justknobs killswitch)r~  r>  r@  ÚhooksÚdynamo_cpp_guards_strc                 ó,   •— t          ‰ j        ¦  «        S r¢   )r?  r½   rˆ   s   €r„   r$  z/CheckFunctionManager.__init__.<locals>.<lambda>	  s   ø€ ½¸DÔ<NÑ8OÔ8O€ r†   ©Ú
payload_fnú%szGuard check failed: zGuard eval latency = %s usz.2f)/rm   Ú	_weakrefsÚ5update_diff_guard_managers_for_existing_cache_entriesrr   r½   r‚   rÔ  Útorch_function_mode_stackr±  r²  r¶  r¸  r{   r^  rn  r4   Úguard_nn_modulesr+   r`  ra  r�   r$   Úsort_keyrK  rM  r  rd  Úcompile_check_fnr   rÌ   Ú_loggingÚtrace_structuredÚ
guards_logÚdebugr9  rï   Úget_guard_fail_reason_helperr!   r²  rC  rk   ÚisEnabledForÚloggingÚDEBUGr   ru   Úclear)rƒ   rÔ  r}   r|   rm   Úexisting_diff_guard_sourcesr´  Úbuilderr¼  Úguard_on_nn_modulesr¸   ÚreasonsÚlatencyr¹  s   `            @r„   r…   zCheckFunctionManager.__init__¸  s<  øø€ ð )5Ð>�Ô$Ð$¸$ˆØ;=ˆŒõ BÀ+ÑNÔNð 	$õ 1Ñ2Ô2ˆÔØ0KˆÔÔ-Ø(ˆÔØˆ	ð
 7CÐLˆLÔ2Ð2Èð 	Ô&ð	4ð 	4ð 	4ð 	4ð 	4õ ØŒKØØÔ ØÔ$ØÔ%ØÔØñ
ô 
ˆð	ð 	ð 	õ ”K ¨Ñ9Ô9ˆ	å$Ô5ð 
½/Ø/ñ;
ô ;
Ðõ ÐBÑCÔCð 	UÝ�KŠKÐSÑTÔTÐTå˜F˜L b­e¬nÐ=Ñ=Ô=ð 	"ð 	"ˆEà'ð	à×2Ò2Ñ4Ô4ð	ð
 #¨%¬*Ð4Ð4Ø$¨E¬JÐ6Ð6ÝÔ5ð 7Ø9@ÈÌ
Ð9RÐ9Ràà�LŠL˜Ñ!Ô!Ð!Ð!à×Ò˜g v¨}Ñ=Ô=Ð=ð .5Ô-DˆÔÔ*õ 	Œ×'Ò'Ø#Ð0OÐ0OÐ0OÐ0Oð 	(ñ 	
ô 	
ð 	
õ 	×Ò˜˜tÔ1Ñ2Ô2Ð2Ø-4Ô-DˆÔÔ*ð Ô"ð 	QØÔ%×+Ò+¨LÔ,DÑEÔEð GÝ6ØÔ&Ø Ô,Ý"Ô5Ñ7Ô7ñô �õ
 %Ð%E¸GÐ%EÐ%EÑFÔFÐFå,Ð8Ý-ØÔ&¨Ô(@ñô ð õ ×&Ò&¥w¤}Ñ5Ô5ð QÝ/ØÔ&Ô+¨\Ô-Eñô �õ × Ò Ð!=À'Ð?OÐ?OÑPÔPÐPð 	Œ×ÒÑÔÐØ ˆÔÐÐr†   c                óÞ  ‡‡‡‡— ‰j         }|dgz  }t                               d¦  «         g Šg Šg Št          | j        ¦  «        }| j        j                             dg¦  «         | j        j                             | j        dg¦  «         d | _        dˆˆˆfd„	}t          ¦   «         }‰j
        D ]7}|j        D ]-}	|	|vr' ||	|j        d¦  «         |                     |	¦  «         Œ.Œ8‰j        }
d }d }t          |
¦  «        dk    r0t!          ‰j        |
d	d
                     |
¦  «        z   dz   g¦  «         | j        r| j        j        j        j        ng }|D �]P}t/          |t0          ¦  «        r|j        }|j        }|                     ¦   «         › d|                     ¦   «         › �}t9          ‰                     |¦  «        ‰                     |¦  «        |g¦  «          ||d d¦  «         Œ—t/          |t<          ¦  «        r”ˆfd„|j        D ¦   «         }ˆfd„|j         D ¦   «         }dd
                     d„ |j        D ¦   «         ¦  «        › dd
                     d„ |j         D ¦   «         ¦  «        › d�}tC          |||g¦  «          ||d d¦  «         �Œ@tE          d|› �¦  «        ‚‰j#        D ]}|j        D ]}	 ||	|j        d¦  «         ŒŒ‰r$tH          j%         &                    dˆfd„¬¦  «         tN          j(        }|€tO          j)        ¦   «         }|||j*        |dœtV          ¥tY          ¦   «         ¥}| j         -                    ¦   «          d‰j.        d         i}t          ‰¦  «        dk    sJ ‚|| j        _/        || j        _0        | j         1                    ¦   «          ‰| j        _2        || j        _3        || j        _4        d | j        _5        d | j        _6        |
| j        _7        d S )Nz**___kwargs_ignoredzGUARDS:z___check_global_state()z$___check_torch_function_mode_stack()Fc                óV  •‡ ‡— t          ‰ ‰¦  «        }t                               d|¦  «         ‰                     ˆ ˆfd„¦  «         t                               t          j        ¦  «        r�d}d}‰�l‰j        r/dd 	                    ‰j         
                    ¦   «         ¦  «        › �}‰j        r/dd 	                    ‰j         
                    ¦   «         ¦  «        › �}t                               d‰ ||¦  «         |s,‰                     ‰ ¦  «         ‰                     |¦  «         d S d S )NrÂ  c                 ó¼   •— ‰ ‰r2‰j         r+t          j        ‰j                              ¦   «         ¦  «        nd ‰r ‰j        rt          j        ‰j        ¦  «        nd dœS )N)rÎ  rX  rU  )rX  r*   Úfrom_tracebackrY  rU  )rü   r¸   s   €€r„   r$  zNCheckFunctionManager.compile_check_fn.<locals>.add_code_part.<locals>.<lambda>U	  sr   ø€ Ø%ð !ð"Ø%*¤[ð"�
Ô1°%´+×2EÒ2EÑ2GÔ2GÑHÔHÐHà!ð !ð"Ø%*Ô%5ð"�
Ô1°%Ô2BÑCÔCÐCà!ðð € r†   rè   z
Stack:
z
User stack:
zGuard: %s%s%s)r\  rË  rÌ  rù   Úverbose_guards_logrÎ  rÏ  rÐ  rX  rO  ÚformatrU  )	rü   r¸   Úlog_onlyrû   Úmaybe_stackÚmaybe_user_stackry   Ústructured_guard_fnsrz   s	   ``    €€€r„   Úadd_code_partz<CheckFunctionManager.compile_check_fn.<locals>.add_code_partP	  sY  øøø€ Ý 5°iÀÑ GÔ GÐÝ×Ò˜TÐ#4Ñ5Ô5Ð5à ×'Ò'ðð ð ð ð ñô ð õ  "×.Ò.­w¬}Ñ=Ô=ð Ø �Ø#%Ð ØÐ$Ø”{ð SØ&R°2·7²7¸5¼;×;MÒ;MÑ;OÔ;OÑ3PÔ3PÐ&RÐ&R˜ØÔ'ð àR¨b¯gªg°eÔ6F×6MÒ6MÑ6OÔ6OÑ.PÔ.PÐRÐRð )õ #×(Ò(Ø#ØØØ$ñ	ô ð ð ð =Ø×!Ò! )Ñ,Ô,Ð,Ø"×)Ò)Ð*;Ñ<Ô<Ð<Ð<Ð<ð=ð =r†   Tr3   zcheck_no_aliasing(r¼   rk  rû  c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS r±   ©r,  ©r²   rÁ   rÓ  s     €r„   rµ   z9CheckFunctionManager.compile_check_fn.<locals>.<listcomp>¤	  s7   ø€ ð .ð .ð .àð ×9Ò9¸!Ñ<Ô<ð.ð .ð .r†   c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS r±   rã  rä  s     €r„   rµ   z9CheckFunctionManager.compile_check_fn.<locals>.<listcomp>¨	  s7   ø€ ð 2ð 2ð 2àð ×9Ò9¸!Ñ<Ô<ð2ð 2ð 2r†   zcheck_overlapping(overlapping=[c              3  ó>   K  — | ]}|                      ¦   «         V — Œd S r¢   rR  ©r²   rÁ   s     r„   r»  z8CheckFunctionManager.compile_check_fn.<locals>.<genexpr>®	  s*   è è € Ð/\Ð/\¸Q°·²±´Ð/\Ð/\Ð/\Ð/\Ð/\Ð/\r†   z], non_overlapping=[c              3  ó>   K  — | ]}|                      ¦   «         V — Œd S r¢   rR  rç  s     r„   r»  z8CheckFunctionManager.compile_check_fn.<locals>.<genexpr>¯	  s*   è è € Ð3dÐ3dÀ°A·F²F±H´HÐ3dÐ3dÐ3dÐ3dÐ3dÐ3dr†   z])zUnknown GuardEnvExpr: Údynamo_guardsc                 ó   •— d„ ‰ D ¦   «         S )Nc                ó"   — g | ]} |¦   «         ‘ŒS r±   r±   )r²   Úfs     r„   rµ   zKCheckFunctionManager.compile_check_fn.<locals>.<lambda>.<locals>.<listcomp>Å	  s   € Ð4WÐ4WÐ4W¸Q°Q°Q±S´SÐ4WÐ4WÐ4Wr†   r±   )rà  s   €r„   r$  z7CheckFunctionManager.compile_check_fn.<locals>.<lambda>Å	  s   ø€ Ð4WÐ4WÐBVÐ4WÑ4WÔ4W€ r†   rÀ  )Ú___check_tensorsÚ___check_tensors_verboseÚ___check_global_stateÚ"___check_torch_function_mode_stackr¿  r   râ   )8rÍ  rË  rÌ  Ú$make_torch_function_mode_stack_guardrÅ  r½   ru   Úadd_global_state_guardÚ#add_torch_function_mode_stack_guardrÒ  rÎ  r©  r¸   r’   rÐ  rë  r   rÑ  rO  rÔ  Útracing_contextÚguards_contextÚaotautograd_guardsr›   r#   Úinput_source_aÚinput_source_brM  r   r,  r)   Úoverlapping_sourcesÚnon_overlapping_sourcesr   r4  rÏ  rÌ   rÉ  rÊ  r5   Úinitial_global_stateÚGlobalStateGuardrï   r.   r<  r¤   rÆ  rw   rx   r  rz   r{   r|   r}   r~   r€   )rƒ   rÓ  Ú
guards_outr|   ÚlargsÚ"torch_function_mode_stack_check_fnrá  ÚseenÚgclrÎ  rÐ  Úcheck_tensors_fnÚcheck_tensors_verbose_fnrö  r¸   Úsource_arü  rü   Úoverlapping_guard_managersÚnon_overlapping_guard_managersÚglobal_staterw   rY  ry   rà  rz   s    `                     @@@r„   rÈ  z%CheckFunctionManager.compile_check_fn7	  s  øøøø€ àÔ ˆØÐ'Ð(Ñ(ˆå×Ò˜Ñ#Ô#Ð#àˆ
ØÐØCEÐå-QØÔ*ñ.
ô .
Ð*ð
 	ÔÔ×6Ò6Ð8QÐ7RÑSÔSÐSàÔÔ×CÒCØÔ*Ø3Ð4ñ	
ô 	
ð 	
ð
 *.ˆÔ&ð'	=ð '	=ð '	=ð '	=ð '	=ð '	=ð '	=ð '	=õR ‰uŒuˆØ”<ð 	#ð 	#ˆCØœð #ð #�Ø˜tÐ#Ð#ð "�M $¨¬	°4Ñ8Ô8Ð8Ø—H’H˜T‘N”N�Nøð#ð $+Ô#CÐ ØÐØ#'Ð åÐ'Ñ(Ô(¨1Ò,Ð,õ -ØÔ9Ø(Ø%¨¯	ª	Ð2JÑ(KÔ(KÑKÈcÑQÐRñô ð ð Ô ðˆDÔÔ-Ô<ÔOÐOàð 	ð (ð  	Eñ  	EˆEÝ˜%¥Ñ1Ô1ð EØ Ô/�Ø Ô/�Ø'Ÿ}š}™œÐEÐE°H·M²M±O´OÐEÐE�	Ý-Ø×9Ò9¸(ÑCÔCØ×9Ò9¸(ÑCÔCØ�Kñô ð ð
 �˜i¨¨tÑ4Ô4Ð4Ð4Ý˜E¥>Ñ2Ô2ð Eð.ð .ð .ð .à"Ô6ð.ñ .ô .Ð*ð2ð 2ð 2ð 2à"Ô:ð2ñ 2ô 2Ð.ð
kØ&*§i¢iÐ/\Ð/\À%ÔB[Ð/\Ñ/\Ô/\Ñ&\Ô&\ðkð kà*.¯)ª)Ð3dÐ3dÀeÔFcÐ3dÑ3dÔ3dÑ*dÔ*dðkð kð kð õ
 2Ø.Ø2Ø�Kñô ð ð
 �˜i¨¨tÑ4Ô4Ð4Ñ4å"Ð#C¸EÐ#CÐ#CÑDÔDÐDð Ô)ð 	5ð 	5ˆCØœð 5ð 5�ð �˜d C¤I¨tÑ4Ô4Ð4Ð4ð5ð  ð 	ÝŒN×+Ò+ØÐ,WÐ,WÐ,WÐ,Wð ,ñ ô ð õ %Ô9ˆØÐå(Ô9Ñ;Ô;ˆLà 0Ø(@Ø%1Ô%7Ø2Tð	
ð 
õ
 ð
õ  Ñ!Ô!ð
ˆð 	Ô×#Ò#Ñ%Ô%Ð%à # W¤]°3Ô%7Ð8Ðõ �:‰Œ !Ò#Ð#Ð#Ð#à*6ˆÔÔ'Ø"'ˆÔÔØÔ×<Ò<Ñ>Ô>Ð>Ø0BˆÔÔ-à*>ˆÔÔ'Ø+8ˆÔÔ(ð *.ˆÔÔ&Ø)-ˆÔÔ&Ø8PˆÔÔ5Ð5Ð5r†   c                ób  — t          | d¦  «        r˜t          | j        t          ¦  «        s€| j        j        x}�t| j        j        x}�ht          |t          ¦  «        sJ ‚t          |t          ¦  «        sJ ‚d|› d�}t          |¦  «        }|                     ||¦  «         || _        d S d S d S d S d S )Nr½   zCache line invalidated because z got deallocated)	rë   r›   r½   r®  r}   r~   rU   rW   Ú
invalidate)rƒ   Úobj_strr}   r~   rW  Údeleted_guard_managers         r„   r	  zCheckFunctionManager.invalidateé	  sâ   € õ
 �D˜/Ñ*Ô*ð	7å˜tÔ1Õ3MÑNÔNð	7ð !%Ô 2Ô >Ð>�ÐKØ $Ô 2Ô >Ð>�ÐKå˜k­:Ñ6Ô6Ð6Ð6Ð6Ý˜k­:Ñ6Ô6Ð6Ð6Ð6ØP°wÐPÐPÐPˆFÝ$>¸vÑ$FÔ$FÐ!Ø×"Ò" ;Ð0EÑFÔFÐFØ!6ˆDÔÐÐð	7ð 	7ð 	7ð 	7ð LÐKØKÐKr†   c                ó  — 	 t          |¦  «        | j        vrWt          j        |¦  «        | j        t          |¦  «        <   t          j        |t          j        | j        |¬¦  «        ¦  «         n# t          $ r Y nw xY wt          |¦  «        S )zadd a weakref, return the id)r
  )	rÖ  rÃ  r^  rn  r¤   Ú	functoolsÚpartialr	  Ú	TypeError)rƒ   r’  r
  s      r„   r²  zCheckFunctionManager.id_refú	  s’   € ð
	Ý�#‰wŒw˜dœnÐ,Ð,õ +2¬+°cÑ*:Ô*:�”�r #™wœwÑ'ÝÔ Ø�Ô*¨4¬?ÀGÐLÑLÔLñô ð øøõ ð 	ð 	ð 	ØˆDð	øøøå�#‰wŒwˆs   ‚A-A0 Á0
A=Á<A=c                óf   — t          |¦  «        | j        v r| j        t          |¦  «                 S dS )zFLookup the _weakrefs created in id_ref function for ID_MATCH'd objectsN)rÖ  rÃ  )rƒ   r’  s     r„   r¶  z$CheckFunctionManager.lookup_weakrefs	
  s-   € åˆc‰7Œ7�d”nÐ$Ð$Ø”>¥" S¡'¤'Ô*Ð*Øˆtr†   )NNN)r|   r³  )r·   rã   rä   r…   rÈ  r	  r²  r¶  r±   r†   r„   r»  r»  ·  s�   € € € € € ð ØØ?Cð	}!ð }!ð }!ð }!ð }!ð~pQð pQð pQðd7ð 7ð 7ð"ð ð ðð ð ð ð r†   r»  úTuple[str, str]c                ó¦  ‡	— ddl m} t          ¦   «         Š	‰	                     | ¦  «         dˆ	fd„} |¦   «         }| D ]} ||¦  «        \  }}|                     |¦  «         |                     d|› d	�¦  «         |                     ¦   «         5  |                     d
¦  «         d d d ¦  «         n# 1 swxY w Y   Œ€ |¦   «         }|                     d¦  «         |                     ¦   «         5  |                     |¦  «         |                     d¦  «         d d d ¦  «         n# 1 swxY w Y    |¦   «         }|                     d|› d	�¦  «         |                     ¦   «         5  |                     |¦  «         |                     d¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         |                     ¦   «         fS )Nr   rÖ   r‡  r?  r>  r�  c                ó.   •— ‰                      | ¦  «        S r¢   )rD  )r‡  Úcsepasss    €r„   rD  z%build_guard_function.<locals>.replace
  s   ø€ Ø�Š˜tÑ$Ô$Ð$r†   zif not (z):zreturn Falsezdef guard(L):zreturn Truezdef ___make_guard_fn(zreturn guardr¡  )	rê   r×   rm  rœ  rÐ   rÄ   rÅ   Úsplicerì   )
ry   Úclosure_argsr×   rD  rW  r‡  r‚  r¸   Úmake_guard_fnr  s
            @r„   rP  rP  
  s¸  ø€ Ø4Ð4Ð4Ð4Ð4Ð4å‰oŒo€GØ‡M‚M�*ÑÔÐð%ð %ð %ð %ð %ð %ð
  �Ñ!Ô!€JØð 1ð 1ˆØ˜ ™œ‰ˆ�Ø×Ò˜gÑ&Ô&Ð&Ø×ÒÐ0¨Ð0Ð0Ð0Ñ1Ô1Ð1Ø×ÒÑ Ô ð 	1ð 	1Ø× Ò  Ñ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1øð ˆNÑÔ€EØ	‡O‚O�OÑ$Ô$Ð$Ø	�Š‰Œð 'ð 'Ø�Š�ZÑ Ô Ð Ø�Š˜Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð #�NÑ$Ô$€MØ×ÒÐD°LÐDÐDÐDÑEÔEÐEØ	×	Ò	Ñ	Ô	ð 0ð 0Ø×Ò˜UÑ#Ô#Ð#Ø×Ò Ñ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð ×ÒÑ Ô  -×"8Ò"8Ñ":Ô":Ð:Ð:s6   ÂB1Â1B5	Â8B5	Ã0+D'Ä'D+Ä.D+Å)+F Æ F$Æ'F$c                 óT   — t           j        j        j                             d¦  «        S )Nrn   ©rÌ   rÉ  Ú	_internalÚ	log_stateÚis_artifact_enabledr±   r†   r„   Úis_recompiles_enabledr  5
  s   € ÝŒ>Ô#Ô-×AÒAÀ,ÑOÔOÐOr†   c                 óT   — t           j        j        j                             d¦  «        S )Nro   r  r±   r†   r„   Úis_recompiles_verbose_enabledr  9
  s   € ÝŒ>Ô#Ô-×AÒAÐBVÑWÔWÐWr†   c                ó*   ‡— d„ | D ¦   «         Šˆfd„}|S )Nc                ó,   — g | ]}t          |¦  «        ‘ŒS r±   )rl  )r²   rñ   s     r„   rµ   z8make_torch_function_mode_stack_guard.<locals>.<listcomp>?
  s   € Ð+Ð+Ð+˜�T�!‰WŒWÐ+Ð+Ð+r†   c                 óÀ   •— t          ¦   «         } t          | ¦  «        t          ‰¦  «        k    rdS t          ‰| ¦  «        D ]\  }}|t          |¦  «        k    r dS ŒdS )NFT)r^   rë  rÑ   rl  )Ú	cur_stackÚtyÚmoderÖ  s      €r„   Úcheck_torch_function_mode_stackzMmake_torch_function_mode_stack_guard.<locals>.check_torch_function_mode_stackA
  sk   ø€ Ý1Ñ3Ô3ˆ	åˆy‰>Œ>�S ™ZœZÒ'Ð'Ø�5å˜E 9Ñ-Ô-ð 	ð 	‰HˆB�Ø•T˜$‘Z”ZÒÐØ�u�uð  ð ˆtr†   r±   )Úintial_stackr&  rÖ  s     @r„   rñ  rñ  >
  s7   ø€ Ø+Ð+˜lÐ+Ñ+Ô+€Eð
ð 
ð 
ð 
ð 
ð +Ð*r†   c                ó@  ‡— t          | j        ¦  «        }t          j        t          ¦  «        Š| j        D ]@}||d<   t          t          |||¦  «        ¦  «        }‰|                              |¦  «         ŒAˆfd„‰D ¦   «         }d 	                    |¦  «        }d|› �gS )NÚ__compile_source__c                óT   •— g | ]$}t          ‰|         ¦  «        d k    ¯‰|         › ‘Œ%S )r3   )rë  )r²   r~  Úids_to_sources     €r„   rµ   zErecompilation_reason_for_no_tensor_aliasing_guard.<locals>.<listcomp>X
  s@   ø€ ð ð ð Ø$'½CÀÈcÔ@RÑ<SÔ<SÐVWÒ<WÐ<Wˆ=˜ÔÐÐ<WÐ<WÐ<Wr†   r¼   zDuplicate tensors found: )
r”  r{   r1  r�  ra  r€   rÖ  r]  rù   rO  )r½   rÆ  r{   rI  Ú	tensor_idÚduplicate_tensorsrW  r+  s          @r„   Ú1recompilation_reason_for_no_tensor_aliasing_guardr.  P
  sÃ   ø€ Ý˜Ô2Ñ3Ô3€LÝÔ+­DÑ1Ô1€MØ&ÔAð 7ð 7ˆØ-:ˆÐ)Ñ*Ý•t˜M¨<¸Ñ?Ô?Ñ@Ô@ˆ	Ø�iÔ ×'Ò'¨Ñ6Ô6Ð6Ð6ðð ð ð Ø+8ðñ ô Ðð �YŠYÐ(Ñ)Ô)€FØ0¨Ð0Ð0Ð1Ð1r†   r½   rZ   Úf_localsr¹  Ú
compile_idr"   c                ó  — || j         d         dœ}|                     | j        ¦  «         g }d}g }|                      |¦  «        }|j        s+|j        }t          |¦  «        dk    rd|d         v rd}n|}g }|rt          | |¦  «        }nÜ|D ]Ù}t          | j         ¦  «        }	||	d<   t          ¦   «         5  	 t          ||	|¦  «        }
n1# t          $ r$}t          ¦   «         rY d	}~d	d	d	¦  «         Œe‚ d	}~ww xY w	 d	d	d	¦  «         n# 1 swxY w Y   t          |
t          ¦  «        r|
s|}
t          |
t          ¦  «        r%|                     |
¦  «         t          ¦   «         s nŒÚ|› d
�d                     |¦  «        z   }|S )z­
    Return the reason why `guard_manager` failed.
    Updates `guard_failures` with the generated reason.
    Only the first failed check of guard_manager is reported.
    r¿  r½  Fr3   zDuplicate tensor foundr   Tr)  Nr°   z; )r{   rÿ  rw   ró   Úresultrz   rë  r.  r”  r1   r]  Ú	Exceptionr  r›   rˆ  r?  rù   rO  )r½   r/  r0  rÆ  rÕ  Úno_tensor_aliasing_check_failedrz   Úguard_debug_infor³   r{   Úfail_reasonrš  Ú
reason_strs                r„   rÍ  rÍ  `
  sG  € ð  Ô!;¸CÔ!@ÐAÐA€EØ	‡L‚L�Ô+Ñ,Ô,Ð,Ø€Gà&+Ð#à$&ÐØ$×2Ò2°8Ñ<Ô<Ðð Ô"ð (Ø-Ô@Ðõ Ð!Ñ"Ô" aÒ'Ð'Ø'Ð+=¸aÔ+@Ð@Ð@Ø26Ð/Ð/à,�Ø%'Ð"à&ð ÝCØ˜5ñ
ô 
ˆˆð 'ð 	ð 	ˆDÝ Ô :Ñ;Ô;ˆLØ15ˆLÐ-Ñ.Ý/Ñ1Ô1ð ð ðÝ"& t¨\¸5Ñ"AÔ"A�K�KøÝ ð ð ð Ý4Ñ6Ô6ð Ø ˜˜˜ðð ð ñ ô ð ð ð øøøøð	øøøð  ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ˜+¥tÑ,Ô,ð #°[ð #Ø"�Ý˜+¥sÑ+Ô+ð Ø—’˜{Ñ+Ô+Ð+Ý4Ñ6Ô6ð Ø�EøàÐ"Ð"Ð" T§Y¢Y¨wÑ%7Ô%7Ñ7€JØÐsB   Â6DÂ8C
Ã	DÃ

C8ÃC3Ã"DÃ2C3Ã3C8Ã8DÄD	ÄD	rÎ  útypes.CodeTypec                ó”  — t          | t          ¦  «        r|› d| j        › �S t          | ||¦  «        }t          t
          |                                       |¦  «         	 | j        �0|                      t          |pdt
          |         ¦  «        ¦  «         n1# t          $ r$}t                               d¦  «         Y d }~nd }~ww xY w|S )Nr°   zunknown reasonzVFailure in guard_fail_fn callback - raising here will cause a NULL Error on guard eval)r›   r®  r°  rÍ  r`   re   rù   r|   rY   r3  r`  r—  )r½   rÎ  r/  r0  r7  rš  s         r„   Úget_guard_fail_reasonr:  £
  sø   € õ �-Õ!;Ñ<Ô<ð DØÐCÐC Ô AÐCÐCÐCÝ-¨m¸XÀzÑRÔR€JÝ•= Ô&Ô'×.Ò.¨zÑ:Ô:Ð:ð
ØÔ&Ð2Ø×'Ò'Ý˜*Ð8Ð(8½-ÈÔ:MÑNÔNñô ð øøõ ð 
ð 
ð 
Ý�ŠØdñ	
ô 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
øøøøð
øøøð
 Ðs   Á7B Â
CÂ!C Ã CÚframerV   c                óD  ‡— g Š| �Ft          | j        | j        |j        | j        ¦  «        }|r‰                     |¦  «         | j        } | ­F|j        }t          ¦   «         pt          ¦   «         }|st          j        rýt          ¦   «         r-d                     d„ t          ‰¦  «        D ¦   «         ¦  «        }n(t          j        d                     ‰¦  «        d¦  «        }d|› �}d|j        › d|j        › d	|j        › dt          j        |d
¦  «        › �}|rCt          ¦   «         rt&                               |¦  «         nt*                               |¦  «         t          j        rt-          j        |¦  «        ‚t0          j                             dd„ ˆfd„¬¦  «         ‰S )zÒ
    Return the list of guard failure reasons using cache_entry.
    Logs the recompilation reason if `recompiles` logging is enabled.
    Raises a RecompileError if `config.error_on_recompile` is enabled.
    Nz

c              3  óT   K  — | ]#\  }}d |› d�t          j        |d¦  «        z   V — Œ$dS )zguard z failures:
ú- N)ÚtextwraprÅ   )r²   ÚirW  s      r„   r»  z9get_and_maybe_log_recompilation_reason.<locals>.<genexpr>Ö
  sV   è è € ð #ð #á�A�vð )˜Ð(Ð(Ð(­8¬?¸6À4Ñ+HÔ+HÑHð#ð #ð #ð #ð #ð #r†   rA  r>  z-triggered by the following guard failure(s):
zRecompiling function z in ú:z    Úartifactc                 ó   — dddœS )NÚrecompile_reasonsÚjson)rM  Úencodingr±   r±   r†   r„   r$  z8get_and_maybe_log_recompilation_reason.<locals>.<lambda>í
  s   € Ø'Øð
ð 
€ r†   c                 ó   •— ‰ S r¢   r±   )rÕ  s   €r„   r$  z8get_and_maybe_log_recompilation_reason.<locals>.<lambda>ñ
  s   ø€ ˜7€ r†   )Úmetadata_fnrÁ  )r:  r½   rÎ  r/  r0  rù   ÚnextÚf_coder  r  r4   Úerror_on_recompilerO  rå  r?  rÅ   Úco_nameÚco_filenameÚco_firstlinenoÚrecompiles_verbose_logrÌ  Úrecompiles_logr6   ÚRecompileErrorrÌ   rÉ  rÊ  )	r}   r;  rW  rÎ  Údo_recompiles_logÚfailuresÚguard_failure_detailsÚmessagerÕ  s	           @r„   Ú&get_and_maybe_log_recompilation_reasonrV  »
  s  ø€ ð €GØ
Ð
!Ý&ØÔ%ØÔØŒNØÔ"ñ	
ô 
ˆð ð 	#Ø�NŠN˜6Ñ"Ô"Ð"Ø!Ô&ˆð Ð
!ð Œ<€Dõ .Ñ/Ô/ÐRÕ3PÑ3RÔ3RÐàð .�FÔ5ð .Ý(Ñ*Ô*ð 	AØ—{’{ð #ð #å!*¨7Ñ!3Ô!3ð#ñ #ô #ñ ô ˆHˆHõ
  ” t§y¢y°Ñ'9Ô'9¸4Ñ@Ô@ˆHàG¸XÐGÐGð 	ð@ D¤Lð @ð @°dÔ6Fð @ð @ÈÔI\ð @ð @ÝŒÐ4°fÑ=Ô=ð@ð @ð 	ð ð 	.Ý,Ñ.Ô.ð .Ý&×,Ò,¨WÑ5Ô5Ð5Ð5å×$Ò$ WÑ-Ô-Ð-ÝÔ$ð 	.ÝÔ$ WÑ-Ô-Ð-å	„N×#Ò#Øð
ð 
ð #�?�?�?ð $ñ ô ð ð €Nr†   c                óø   — | }t          ¦   «         }| �5|                     | j                             ¦   «         ¦  «         | j        } | ­5|} | �.|| j        _        | j                             ¦   «          | j        } | ­.|S r¢   )rÒ  rÿ  r½   r    rI  r‚   r£   )r}   Úfirst_cache_entryÚacc_diff_guard_sourcess      r„   rÄ  rÄ  ÷
  s›   € Ø#Ðõ
 !™UœUÐØ
Ð
!Ø×%Ò%ØÔ%×@Ò@ÑBÔBñ	
ô 	
ð 	
ð "Ô&ˆð	 Ð
!ð $€KØ
Ð
!Ø7MˆÔ!Ô4ØÔ!×=Ò=Ñ?Ô?Ð?Ø!Ô&ˆð Ð
!ð "Ð!r†   rq  r•  Úlastrˆ  c                ó¦  — t          d|j        › d|j        › d|j        › �¦  «         t          dd                     | j        ¦  «        z   dz   ¦  «         t          dd                     | j        ¦  «        ¦  «         t          | ¦  «         d|i| j        ¥}| j        D ]2}	 t          || j	        |¦  «         Œ#  t          d|› �¦  «         Y Œ0xY wd S )	NzERROR RUNNING GUARDS ú rA  zlambda r¼   z and
  r¾  zMalformed guard:
)
ÚprintrL  rM  rN  rO  rx   ry   rw   r]  r{   )r½   rÎ  r/  rq  rZ  r¸  r¸   s          r„   Úguard_error_hookr^    s   € õ 
ØW ¤ÐWÐW¨tÔ/?ÐWÐWÀ$ÔBUÐWÐWñô ð õ 
ˆ)�d—i’i Ô 2Ñ3Ô3Ñ
3°cÑ
9Ñ:Ô:Ð:Ý	ˆ#ˆz�Š˜}Ô7Ñ8Ô8Ñ9Ô9Ð9å	ˆ-ÑÔÐà˜Ð? MÔ$>Ð?€KØÔ)ð 0ð 0ˆð	0Ý�˜Ô2°KÑ@Ô@Ð@Ð@øð	0ÝÐ. uÐ.Ð.Ñ/Ô/Ð/Ð/Ð/øøøð	0ð 0s   Â!B8Â8Cc              #  ój   K  — t          ¦   «         }| D ]}||vr|V — |                     |¦  «         Œ d S r¢   )rÒ  r’   )Úseqr   rñ   s      r„   Úuniquera  *  sJ   è è € Ý‰5Œ5€DØð ð ˆØ�Dˆ=ˆ=ØˆGˆGˆGØ�HŠH�Q‰KŒKˆKøðð r†   c                óV  — |r¦|| k    r t          |¦  «        }t          | ¦  «        }t          |¦  «        st          | ¦  «        r>t          j        |                      ¦   «         › d|                     ¦   «         › d�¦  «        ‚||k    r t          j        t          j        |¬¦  «        S d S )Nz is alising zC. This is not supported. Please do a clone for corresponding input.)rü  )	r   r   r6   ÚUnsafeScriptObjectErrorrM  r  r  r±  rÿ  )Ú
obj_sourceÚdupe_sourceÚser_source_is_localÚsource_is_locals       r„   Úmake_dupe_guardrh  2  sÏ   € ð ð Y�{ jÒ0Ð0Ý2°;Ñ?Ô?ÐÝ.¨zÑ:Ô:ˆÝ/Øñ
ô 
ð 	å1°*Ñ=Ô=ð	õ Ô-Ø—?’?Ñ$Ô$ð ?ð ?°+×2BÒ2BÑ2DÔ2Dð ?ð ?ð ?ñô ð ð  /Ò1Ð1õ Ô$¥\Ô%AÈKÐXÑXÔXÐXØˆ4r†   )Úskipc                óB  — ddl m} t                               t          j        ¦  «        p#t                               t          j        ¦  «        }|                     ¦   «         j        j	        j
        }|D ]*}t          |t          ¦  «        sJ ‚ |||| dz   ¬¦  «         Œ+dS )z«
    Add dynamo guards to the current tracing context.

    Args:
        guards: guard(s) to add
        skip: number of stack frames to ignore for debug stack trace
    r   )ÚTracingContextr3   )Úcollect_debug_stackri  N)Útorch._guardsrk  rË  rÎ  rÏ  rÐ  rÛ  r×  rõ  ré  r’   r›   r$   )ri  rm   rk  rl  r’   r¸   s         r„   Úinstall_guardrn  T  s¹   € ð -Ð,Ð,Ð,Ð,Ð,å$×1Ò1ÝŒñô ð 8å	×	(Ò	(­¬Ñ	7Ô	7ð ð ×
Ò
Ñ
Ô
Ô
-Ô
;Ô
?€CØð Kð KˆÝ˜%¥Ñ'Ô'Ð'Ð'Ð'ØˆˆEÐ':ÀÈÁÐJÑJÔJÐJÐJðKð Kr†   )r“   r=  r>  r?  )rü   r?  r¸   r$   r>  r?  )ry   r]  r¸   r$   r>  r^  )r>  r  )r½   rZ   r/  r¹  r0  r"   r>  r?  )
r½   rZ   rÎ  r8  r/  r¹  r0  r"   r>  r?  )r;  rV   r>  r^  )
r½   rZ   rÎ  r8  r/  r¹  rq  r•  rZ  rˆ  )ÄÚ
__future__r   rB  rÇ  r1  r¥  r`  r  r7  r  rÐ  rÏ  r4  rH  rí  r?  rÖ  rï  r^  Ú
contextlibr   rÉ  r   r   r   Útypingr   r	   r
   r   r   r   r   r   r   r   r   rÌ   Útorch.overridesr  Útorch._C._dynamo.guardsr   r   r   r   r   r   r   r   r   Útorch._dynamo.sourcer   r   r   r   r    rm  r!   r"   r#   r$   r%   r&   r'   r(   r)   Útorch._loggingr*   Útorch._utils_internalr+   Ú%torch.fx.experimental.symbolic_shapesr,   r-   r.   Útorch.utils._ordered_setr/   Útorch.utils._tracebackr0   r1   Útorch.utils.weakr2   rè   r4   r5   r6   r7   Ú
eval_framer8   r¿   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r9  r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rŒ  Únumpyr  ÚModuleNotFoundErrorÚsympyrl   Ú	getLoggerr·   r`  rÉ  ÚgetArtifactLoggerrË  rP  rO  rÛ  rr   r  Ú	lru_cacher  r  r<  rE  rK  rL  r\  rb  ri  rz  r  r„  r¦  r‡  r¢  r¦  r¨  ra  r—  r±  rm  r¬  r®  r»  rP  r  r  rñ  r.  rÍ  r:  rV  rÄ  r^  ra  rh  rn  r±   r†   r„   ú<module>r‚     s‘
  ðð #Ð "Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø €€€Ø €€€Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð "Ð !Ð !Ð !Ð !Ð !à €€€Ø Ð Ð Ð Ø Ð Ð Ð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ðð ð ð ð ð ð ð ð ð ð ð ð ð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð &Ð %Ð %Ð %Ð %Ð %Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1ðð ð ð ð ð ð ð ð ð ð
 0Ð /Ð /Ð /Ð /Ð /Ø OÐ OÐ OÐ OÐ OÐ OÐ OÐ OØ *Ð *Ð *Ð *Ð *Ð *à 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð<ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð( FJÐ Ð IÐ IÐ IÑ IðØÐÐÐÐøØð ð ð Ø	€B€B€Bðøøøð ð ØÐÐÐÐÐð €gÔ˜Ñ!Ô!€ØŒ^×-Ò-¨h¸ÑAÔA€
Ø”×1Ò1°(¸LÑIÔI€Øœ×9Ò9ØÐ"ñô Ð ð ”^×5Ò5°hÐ@PÑQÔQÐ ð^ð ^ð ^ð ^ð ^ñ ^ô ^ð ^ðBTð Tð Tð €Ô�TÑÔð
.ð 
.ñ Ôð
.ð .2€Ð 1Ð 1Ð 1Ñ 1ðð ð ð8/ð /ð /ð /ð'ð 'ð 'ð.'ð 'ð 'ð
%ð 
%ð 
%ð 
%ðQð Qð Qð Qðð ð ðð ð ð'ð 'ð 'ð-ð -ð -ð €Ô˜dÐ#Ñ#Ô#ð!ð !ð !ð !ð !ñ !ô !ñ $Ô#ð!ð"ð "ð "ðJGð Gð Gð Ôðð ð ð ð ñ ô ñ Ôðð
$ð $ð $ð $ð $�t”yñ $ô $ð $ðW
ð W
ð W
ð W
ð W
Ð#ñ W
ô W
ð W
ðV/R8ð R8ð R8ð R8ð R8ñ R8ô R8ð R8ðjð ð ð$ð $ð $ð $ð $Ð!4ñ $ô $ð $ðVð Vð Vð Vð Vñ Vô Vð Vðr
";ð ";ð ";ð ";ðJPð Pð PðXð Xð Xð
+ð +ð +ð$2ð 2ð 2ð @ð @ð @ð @ðFð ð ð ð09ð 9ð 9ð 9ðx"ð "ð "ð20ð 0ð 0ð 0ð. Ð Ð%Ñ &Ô &Ð &ðð ð ðð ð ðD !"ð Kð Kð Kð Kð Kð Kð Ks   Å8E= Å=FÆF