§
    ŠŠtj@s ã                  óÀ  — U d Z 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ZddlZddlmZ ddlmZ ddl
mZ ddlmZmZmZmZ ddl m!Z!m"Z"m#Z# dd	lm$Z$ ddl%Z%ddl&Z%ddl'Z%dd
l(m)Z) ddl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZD ddlEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZO ddlPmQZQmRZR ddlSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\ ddl]m^Z^ ddl_m`Z` ddlambZbmcZc ddldmeZe ddlfmgZg ddlhmiZimjZjmkZkmlZlmmZm ddlnmoZp ddlqmrZr ddlsmtZtmuZu ddlvmwZw ddlxmyZymzZzm{Z{ ddl|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ˆ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˜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¨m©Z©mªZªm«Z« ddlm¬Z¬m­Z­m®Z®m¯Z¯m°Z°m±Z±m²Z² ddl³m´Z´mµZµ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Ä erddlÅmÆZÆ dZÇd eÈd!<    eÉ ejÊ        ¦   «         ¦  «        ZË	 ddlÌZÍn# eÎ$ r dZÍY nw xY wer$dd"lÅmÏZÏmÐZÐmÑZÑ dd#lÒmÓZÓ dd$lÔmÕZÕ dd%lÖm×Z×mØZØ dd&lÙmÚZÚ  e#d'¦  «        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äd,Zådìd3„Zæ G d4„ d5e^¦  «        Zç G d6„ d7¦  «        Zèdíd;„Zéejê        dîd=„¦   «         Zëdaìd>eÈd?<   dïdA„ZídðdD„Zîe%jï        jð        jñ        ZñdñdG„ZòdòdK„Zó	 dódôdQ„ZôdõdT„ZõdödW„Zöd÷d[„Z÷dødd„Zødùdh„Zùdúdj„Zúdûdm„Zûdüdo„Zü ejý        dp¬q¦  «         G dr„ ds¦  «        ¦   «         Zþdýd|„Zÿdþd~„�Z ejý         G d„ d€¦  «        ¦   «         �Z G d�„ dze�j        ¦  «        �Zejê        dÿd‚„¦   «         �Z G dƒ„ d„e¦  «        �Z �e¦   «         �Z�d d†„�Z�dd‡„�Z	�dd‰„�Z
�ddŠ„�Z�dd‹„�Z�ddŒ„�Z�dd�„�Z�ddŽ„�Z�dd�„�Z�dd�„�Zd‘„ �Zd’„ �Z G d“„ d”¦  «        �Zd•„ �Z G d–„ d—eX¦  «        �Z G d˜„ d™¦  «        �Zdþdš„�Z G d›„ dœeè¦  «        �Zejý         G d�„ dž¦  «        ¦   «         �Zejý         G dŸ„ d ¦  «        ¦   «         �Z G d¡„ d¢¦  «        �Zejê        �dd¤„¦   «         �Z G d¥„ d¦e�j        ¦  «        �Z�dd©„�Z �dd¬„�Z! G d­„ d®¦  «        �Z"�d	d±„�Z#�d
d²„�Z$�d
d³„�Z%�dd·„�Z& e"d¸�e'�e(�ef         ¦  «        �Z)�dd»„�Z*�dd½„�Z+�ddÀ„�Z,�ddÃ„�Z-�ddÈ„�Z.	 �d�ddÍ„�Z/	 �d�ddÒ„�Z0�ddÔ„�Z1�ddØ„�Z2 e}�e2¦  «         �ddÜ„�Z3�ddá„�Z4ddâœ�ddä„�Z5då„  �e6�e¦  «        D ¦   «         �Z7dæeÈdç<   dè„  �e6�e¦  «        D ¦   «         �Z8�e8r% �e9dédê� :                    �e8¦  «        › dë�¦  «        ‚dS (  aî  
Core guard system for Dynamo that detects when compiled code needs to be recompiled due to
changes in program state. Guards are conditions that must remain true for previously-compiled
code to be valid for reuse.

This module provides the infrastructure for creating, managing and checking guards, including:
- Guard creation and composition
- Guard state management and invalidation
- Guard checking and failure handling
- Utilities for guard optimization and debugging
- Integration with Dynamo's compilation caching

The guard system is critical for Dynamo's ability to efficiently reuse compiled code while
maintaining correctness by detecting when recompilation is necessary due to changes in
program state, tensor properties, or control flow.
é    )ÚannotationsN)Úcontextmanager©Údeepcopy)Úcurrentframe)ÚAnyÚ
NamedTupleÚNoReturnÚTYPE_CHECKING)ÚLiteralStringÚTypeAliasTypeÚTypeVar)ÚReferenceType)Úcode_framelocals_names)Úcheck_obj_idÚcheck_type_idÚClosureGuardAccessorÚCodeGuardAccessorÚdict_versionÚDictGetItemGuardAccessorÚDictGuardManagerÚFuncDefaultsGuardAccessorÚFuncKwDefaultsGuardAccessorÚGetAttrGuardAccessorÚGetGenericDictGuardAccessorÚGuardAccessorÚGuardDebugInfoÚGuardManagerÚ install_no_tensor_aliasing_guardÚinstall_object_aliasing_guardÚ!install_storage_overlapping_guardÚinstall_symbolic_shape_guardÚ	LeafGuardÚprofile_guard_managerÚRelationalGuardÚRootGuardManagerÚTupleGetItemGuardAccessorÚTypeDictGuardAccessorÚTypeGuardAccessorÚTypeMROGuardAccessor)
Úget_global_source_nameÚget_local_source_nameÚIndexedSourceÚ$is_from_flatten_script_object_sourceÚis_from_local_sourceÚis_from_optimizer_sourceÚis_from_skip_guard_sourceÚ.is_from_unspecialized_builtin_nn_module_sourceÚTensorPropertyÚTensorPropertySource)ÚCompileEventLoggerÚget_metrics_context)	ÚCompileContextÚ	CompileIdÚDuplicateInputsÚGuardÚGuardBuilderBaseÚGuardEnvExprÚGuardSourceÚSourceÚStorageOverlap©ÚIndentedBuffer)ÚFakeScriptObject)Úget_opaque_obj_infoÚis_opaque_value_type)Ú
structured)Újustknobs_check)Ú_CppShapeGuardsHelperÚ_ShapeGuardsHelperÚEqualityConstraintÚis_symbolicÚSYMPY_INTERP)Ú_pytree)Ú
OrderedSet)Úformat_frameÚreport_compile_source_on_error)ÚTensorWeakRefé   )ÚconfigÚconvert_frameÚexc)Úset_guard_error_hook)-ÚAttrProxySourceÚ
AttrSourceÚCallFunctionNoArgsSourceÚCallMethodItemSourceÚCellContentsSourceÚChainedSourceÚClosureSourceÚ
CodeSourceÚConstantSourceÚConstDictKeySourceÚCurrentStreamSourceÚDataclassFieldsSourceÚDefaultsSourceÚDictGetItemSourceÚDictSubclassGetItemSourceÚDynamicScalarSourceÚFlattenScriptObjectSourceÚFloatTensorSourceÚFSDPNNModuleSourceÚGenericAttrSourceÚGetItemSourceÚGlobalSourceÚGlobalStateSourceÚGlobalWeakRefSourceÚ
GradSourceÚImportSourceÚListGetItemSourceÚLocalSourceÚNamedTupleFieldsSourceÚNNModuleSourceÚNonSerializableSetGetItemSourceÚNumpyTensorSourceÚOptimizerSourceÚScriptObjectQualifiedNameSourceÚShapeEnvSourceÚSubclassAttrListSourceÚTorchFunctionModeStackSourceÚTupleIteratorGetItemSourceÚTypeDictSourceÚTypeMROSourceÚ
TypeSourceÚ"UnspecializedBuiltinNNModuleSourceÚUnspecializedNNModuleSourceÚUnspecializedParamBufferSourceÚWeakRefCallSource)Ú
CacheEntryÚDynamoFrameTypeÚ
ExtraStateÚGuardedCodeÚ	GuardFailÚGuardFilterEntryÚGuardFn)Úbuiltin_dict_keysÚcommon_constant_typesÚdataclass_fieldsÚ	dict_keysÚget_current_streamÚget_torch_function_mode_stackÚ get_torch_function_mode_stack_atÚguard_failuresÚistypeÚ	key_is_idÚ	key_to_idÚnormalize_count_iterÚnormalize_range_iterÚorig_code_mapÚtuple_iterator_getitemÚtuple_iterator_lenÚverify_guard_fn_signature)ÚCallablez%Callable[[Any, Any, Any], Any] | NoneÚguard_manager_testing_hook_fn)Ú	GeneratorÚKeysViewÚSequence)ÚSymbol)ÚDispatchKeySet)ÚOutputGraphCommonÚOutputGraphGuardsState©ÚSerializedCodeÚTÚguardsÚ
recompilesÚrecompiles_verboseÚverbose_guards)Ú__defaults__Ú__kwdefaults__Ú__code__Ú__closure__Ú__annotations__Ú__func__Ú__mro__Úcodeútypes.CodeTypeÚvar_nameÚstrÚreturnÚintc                ót   — t          | ¦  «        }t          |¦  «        |                     |¦  «        z
  dz
  }|S ©NrQ   )Ú&code_framelocals_names_reversed_cachedÚlenÚindex)r²   r´   Úframelocals_names_reversedÚframelocals_idxs       úR/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/_dynamo/guards.pyÚget_framelocals_idxrÀ   ñ   sF   € õ "HÈÑ!MÔ!MÐåÐ&Ñ'Ô'Ð*D×*JÒ*JÈ8Ñ*TÔ*TÑTÐWXÑXð ð Ðó    c                  ó*   ‡ — e Zd Zd
d„Zddˆ fd	„Zˆ xZS )ÚIndentedBufferWithPrefixr¶   rµ   c                ó&   — d| j         | j        z  z  S )Nz| )Ú_indentÚtabwidth©Úselfs    r¿   ÚprefixzIndentedBufferWithPrefix.prefix   s   € Ø�t”| d¤mÑ3Ñ4Ð4rÁ   FÚlineÚskip_prefixÚboolÚNonec                óš   •— |r#t          ¦   «                              |¦  «         d S t          ¦   «                              d|z   ¦  «         d S )Nz+- )ÚsuperÚ	writeline)rÈ   rÊ   rË   Ú	__class__s      €r¿   rÐ   z"IndentedBufferWithPrefix.writeline  sK   ø€ Øð 	,Ý‰GŒG×Ò˜dÑ#Ô#Ð#Ð#Ð#å‰GŒG×Ò˜e d™lÑ+Ô+Ð+Ð+Ð+rÁ   ©r¶   rµ   ©F)rÊ   rµ   rË   rÌ   r¶   rÍ   )Ú__name__Ú
__module__Ú__qualname__rÉ   rÐ   Ú__classcell__©rÑ   s   @r¿   rÃ   rÃ   ÿ   sV   ø€ € € € € ð5ð 5ð 5ð 5ð,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,ð ,rÁ   rÃ   c                  ó¨   — e Zd ZdZd+d,d„Zed-d	„¦   «         Zd.d„Zd/d„Zd/d„Z	d/d„Z
d/d„Zd0d„Zd1d„Z	 d+d2d„Zd3d!„Zd4d"„Zd5d#„Zd6d'„Zd7d)„Zd/d*„ZdS )8Ú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++.
    NÚrootúRootGuardManager | Noner¶   rÍ   c                ó&  — |€t          ¦   «         | _        n|| _        d | _        d | _        d | _        g | _        d | _        d | _        d | _        d | _	        d | _
        i | _        g | _        t          ¦   «         | _        t          ¦   «         | _        d S ©N)r&   rÛ   Ú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ÚsetÚprinted_relational_guardsrM   Údiff_guard_sources)rÈ   rÛ   s     r¿   Ú__init__zGuardManagerWrapper.__init__  s‘   € Øˆ<Ý(Ñ*Ô*ˆDŒIˆIàˆDŒIà8<ˆÔØ37ˆÔØ&*ˆŒ	Ø%'ˆŒØ48ˆÔØ37ˆÔØAEˆÔØ.2ˆÔØ.2ˆÔØACˆÔØ57ˆÔ'å?B¹u¼uˆÔ&å3=±<´<ˆÔÐÐrÁ   úGenerator[None, None, None]c              #  ó�   K  — t          ¦   «         | _        	 d V — t          ¦   «         | _        d S # t          ¦   «         | _        w xY wrÞ   )rê   rë   rÇ   s    r¿   Ú#_preserve_printed_relational_guardsz7GuardManagerWrapper._preserve_printed_relational_guards(  sJ   è è € å),©¬ˆÔ&ð	3ØˆEˆEˆEå-0©U¬UˆDÔ*Ð*Ð*ø­S©U¬UˆDÔ*Ð2Ð2Ð2Ð2s	   —0 °AúOrderedSet[str]c                ób   ‡ ‡‡‡— d	ˆ ˆfd„Šd
ˆ ˆfd„Šd
ˆˆfd„Š ‰‰ j         ¦  «         ‰ j        S )NÚnoder   r¶   rÌ   c                ó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)ró   Ú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ð õ -3Ø×+Ò+Ñ-Ô-×3Ò3Ñ5Ô5ñ-ô -ð Fð FÑ(�Ñ(�w ð # e e¨G¡n¤n°u°u¸W±~´~Ñ&EÑEÐ"Ð"à!ð ?ØÔ'×+Ò+¨D¯OªOÑ,=Ô,=Ñ>Ô>Ð>à%Ð%rÁ   r   c                ó|  •— t          | t          ¦  «        rt          dt          | ¦  «        › �¦  «        ‚|                      ¦   «         ‰j        v p|                      ¦   «         dk    }|                      ¦   «         D ]}| ‰|¦  «        z  }Œ|r,‰j                             |                      ¦   «         ¦  «         |S )Nú(Expected non-DictGuardManager node, got r   )	Ú
isinstancer   ÚAssertionErrorÚtyperö   rì   r÷   Úget_child_managersrû   )ró   rü   Ú	child_mgrrÈ   r   s      €€r¿   Úvisit_managerzEGuardManagerWrapper.collect_diff_guard_sources.<locals>.visit_managerI  sÎ   ø€ Ý˜$Õ 0Ñ1Ô1ð Ý$ØK½tÀD¹z¼zÐKÐKñô ð ð
 —’Ñ!Ô! 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>.visitZ  sA   ø€ Øˆ|Ø�uÝ˜$Õ 0Ñ1Ô1ð 0Ø)Ð)¨$Ñ/Ô/Ð/Ø �= Ñ&Ô&Ð&rÁ   )ró   r   r¶   rÌ   )ró   r   r¶   rÌ   )rÛ   rì   )rÈ   r   r  r	  s   `@@@r¿   Úcollect_diff_guard_sourcesz.GuardManagerWrapper.collect_diff_guard_sources1  sŒ   øøøø€ ð	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð"	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	ˆˆdŒiÑÔÐàÔ&Ð&rÁ   c                óŒ   — t           j        r#t          d¦  «        r|                      ¦   «          |                      ¦   «          d S )Nz3pytorch/compiler:use_recursive_dict_tags_for_guards)rR   Ú"use_recursive_dict_tags_for_guardsrF   Úfind_tag_safe_rootsÚprepare_diff_guard_managerrÇ   s    r¿   ÚfinalizezGuardManagerWrapper.finalizee  sM   € ÝÔ4ð 	'½ØAñ:
ô :
ð 	'ð ×$Ò$Ñ&Ô&Ð&Ø×'Ò'Ñ)Ô)Ð)Ð)Ð)rÁ   c                óV   — |                       ¦   «          |                      ¦   «          d S rÞ   )r  Úpopulate_diff_guard_managerrÇ   s    r¿   r  z.GuardManagerWrapper.prepare_diff_guard_managerl  s,   € Ø×'Ò'Ñ)Ô)Ð)Ø×(Ò(Ñ*Ô*Ð*Ð*Ð*rÁ   c                óò   ‡‡‡‡— dd„Šdˆfd
„Šdˆˆfd„Šdˆˆfd„Š ‰| j         ¦  «        }|D ]G}t          |                     ¦   «         t          j        j        ¦  «        r|                     ¦   «          ŒHdS )uB  
        Identify ``tag safe nodes`` and ``tag safe roots`` within a guard tree.

        -----------------------------------------------------------------------
        tag safe node
        -----------------------------------------------------------------------
        A *tag safe node* is a ``GuardManager`` whose guarded value satisfies one
        of the following conditions:

        1. Immutable value - The value is intrinsically immutable according to
        ``is_immutable_object``. Tensors are considered immutable. To ensure
        that symbolic guards run, we also check that the GuardManager has no
        accessors.

        2. Nested tag safe dictionary - The value is a ``dict`` whose keys and
        values are all tag safe nodes  (checked recursively).  Such dictionaries
        allow entire nested structures to be skipped once their identity tag
        matches.

        3. Pure ``nn.Module`` - The value is an ``nn.Module`` whose sole
        accessor is ``GetGenericDictGuardAccessor``â€”i.e., it only exposes its
        ``__dict__`` and nothing else that could mutate between runs.

        For every tag safe node, verifying the identity/tag of just the top-level
        dictionary is enough to guarantee the entire subtree is unchanged, enabling
        a *fast-path* guard check.

        -----------------------------------------------------------------------
        tag safe root
        -----------------------------------------------------------------------
        A ``tag safe root`` is a tag safe node whose parent is not tag safe.
        These boundary nodes mark the points where guard evaluation can safely
        prune traversal: if a tag-safe root's dictionary tag matches, the entire
        subtree beneath it is skipped.

        One strong requirement for tag safe root is for the guarded object to
        support weakref. Refer to more details in the Recursive dict tag
        matching note. In short, we need to save the weakref of the object on
        first invocation, and check if it is still valid in later iterations, to
        apply recursive dict tag optimizations. `dict` objects do NOT support
        weakref. Therefore, as of now, we only mark nn module related guard
        managers as tag safe roots.

        Algorithm
        ---------
        The search runs in post-order traversal

        1. Visit leaves and classify them as tag safe or not.
        2. Propagate tag-safety upward: a parent dictionary becomes tag safe only if
        all of its children are already tag-safe.
        3. Propagate tag-safe-rootness upward: if the whole subtree is tag safe,
        the current node becomes the new tag safe root, otherwise propagate the
        subtree tag safe roots.
        4. Collect every tag safe node and, by inspecting parent tags, label the
        subset that are tag safe roots.
        ró   r   Úaccepted_accessorsútuple[type[GuardAccessor], ...]r¶   rÌ   c                ó¦   ‡— |                       ¦   «         }|                      ¦   «         }t          ˆfd„t          ||¦  «        D ¦   «         ¦  «        S )Nc              3  óf   •K  — | ]+\  }}t          |‰¦  «        o|                     ¦   «         V — Œ,d S rÞ   )r  Úis_tag_safe)Ú.0ÚaccessorÚmgrr  s      €r¿   ú	<genexpr>zTGuardManagerWrapper.find_tag_safe_roots.<locals>.check_tag_safety.<locals>.<genexpr>¯  sU   øè è € ð ð á!�H˜cõ ˜8Ð%7Ñ8Ô8ÐN¸S¿_º_Ñ=NÔ=Nðð ð ð ð ð rÁ   )Úget_accessorsr  ÚallÚzip)ró   r  Ú	accessorsÚ
child_mgrss    `  r¿   Úcheck_tag_safetyzAGuardManagerWrapper.find_tag_safe_roots.<locals>.check_tag_safetyª  si   ø€ ð ×*Ò*Ñ,Ô,ˆIØ×0Ò0Ñ2Ô2ˆJÝð ð ð ð å%(¨°JÑ%?Ô%?ðñ ô ñ ô ð rÁ   r   úlist[GuardManager]c                ó`  •— t          |                      ¦   «         t          ¦  «        s$t          d|                      ¦   «         › �¦  «        ‚g }d}t	          |                      ¦   «                              ¦   «         ¦  «        D ]5\  }\  }}|� ‰|¦  «         |�|                      ‰|¦  «        ¦  «         Œ6|                      ¦   «                              ¦   «         D ]7\  }}|r|| 	                    ¦   «         z  }|r|| 	                    ¦   «         z  }Œ8|r|  
                    ¦   «          |S )NzExpected dict subclass, got T)Ú
issubclassÚget_type_of_guarded_valueÚdictr  rø   rù   rú   ÚextendÚvaluesr  Úmark_tag_safe)ró   Útag_safe_rootsÚis_subtree_tag_saferý   rþ   rÿ   r   s         €r¿   r  zCGuardManagerWrapper.find_tag_safe_roots.<locals>.visit_dict_manager´  s`  ø€ õ ˜d×<Ò<Ñ>Ô>ÅÑEÔEð Ý$ØU°4×3QÒ3QÑ3SÔ3SÐUÐUñô ð ð  ˆNØ"&Ðõ -3Ø×+Ò+Ñ-Ô-×3Ò3Ñ5Ô5ñ-ô -ð :ð :Ñ(�Ñ(�w ð Ð&Ø�E˜'‘N”N�NØÐ&Ø"×)Ò)¨%¨%°©.¬.Ñ9Ô9Ð9øà$(×$?Ò$?Ñ$AÔ$A×$HÒ$HÑ$JÔ$Jð Að AÑ �˜Øð AØ'¨7×+>Ò+>Ñ+@Ô+@Ñ@Ð'àð AØ'¨7×+>Ò+>Ñ+@Ô+@Ñ@Ð'øà"ð %Ø×"Ò"Ñ$Ô$Ð$Ø!Ð!rÁ   c                ó¤  •— t          | t          ¦  «        rt          dt          | ¦  «        › �¦  «        ‚g }|                      ¦   «         D ] }|                      ‰|¦  «        ¦  «         Œ!|                      ¦   «         r­t          |                      ¦   «         t          j
        ¦  «        r>|                      ¦   «         r(|                      ¦   «         s|                      ¦   «          �net          d„ |                      ¦   «         D ¦   «         ¦  «        r�n8|                      ¦   «          �n"t          |                      ¦   «         t           ¦  «        rg|                      ¦   «         }|                      ¦   «         }t#          d„ t%          ||¦  «        D ¦   «         ¦  «        }|r|                      ¦   «          �n”t          |                      ¦   «         t          j        j        ¦  «        r3 ‰| t*          t,          f¦  «        }|r|                      ¦   «          | gS �n0|                      ¦   «         t.          j        t.          j        t4          t6          fv r˜t8          j        rŒ ‰| t<          t>          t@          tB          tD          f¦  «        }|                      ¦   «         D ]5}t          |tD          ¦  «        r|| #                    ¦   «         tH          v z  }Œ6|r|                      ¦   «          �n`t          |                      ¦   «         t.          j%        ¦  «        rW ‰| tD          f¦  «        }|t#          d„ |                      ¦   «         D ¦   «         ¦  «        z  }|r|                      ¦   «          nÝt          |                      ¦   «         tL          ¦  «        ra|  '                    ¦   «          (                    tH          ¦  «        r5t8          j        r) ‰| tR          f¦  «        }|r|                      ¦   «          nUt          |                      ¦   «         t          ¦  «        r. ‰| tT          tV          f¦  «        }|r|                      ¦   «          |S )Nr  c              3  óF   K  — | ]}|                      ¦   «         d k    V — ŒdS )ÚPythonLambdaGuardAccessorN)Úrepr©r  Úas     r¿   r  zQGuardManagerWrapper.find_tag_safe_roots.<locals>.visit_manager.<locals>.<genexpr>å  sD   è è € ð ð àð —F’F‘H”HÐ ;Ò;ðð ð ð ð ð rÁ   c              3  ón   K  — | ]0\  }}t          |t          ¦  «        o|                     ¦   «         V — Œ1d S rÞ   )r  r   r  )r  r  r  s      r¿   r  zQGuardManagerWrapper.find_tag_safe_roots.<locals>.visit_manager.<locals>.<genexpr>ó  sT   è è € ð *ð *á%˜ #õ ˜xÕ)AÑBÔBÐXÀsÇÂÑGXÔGXð*ð *ð *ð *ð *ð *rÁ   c              3  óp   K  — | ]1}t          |t          ¦  «        o|                     ¦   «         d k    V — Œ2dS )Úcell_contentsN)r  r   Úget_attr_name)r  r  s     r¿   r  zQGuardManagerWrapper.find_tag_safe_roots.<locals>.visit_manager.<locals>.<genexpr>*  s]   è è € ð +ð +ð !õ ˜xÕ)=Ñ>Ô>ð DØ ×.Ò.Ñ0Ô0°OÒCð+ð +ð +ð +ð +ð +rÁ   ),r  r   r  r  r  r+  Úis_guarded_value_immutabler(  r)  ÚtorchÚTensorÚhas_no_accessorsÚhas_object_aliasing_guardr-  Úanyr   r*  r!  r"  ÚnnÚModuler   r)   ÚtypesÚFunctionTypeÚ
MethodTypeÚstaticmethodÚclassmethodrR   Ú)assume_dunder_attributes_remain_unchangedr   r   r   r   r   r9  Údunder_attrs_assumed_constantsÚCellTypeÚtuplerö   Úendswithr'   r(   r*   )	ró   r.  r  r#  r$  r/  r  r%  r   s	          €€r¿   r	  z>GuardManagerWrapper.find_tag_safe_roots.<locals>.visit_managerÓ  s›  ø€ Ý˜$Õ 0Ñ1Ô1ð Ý$ØK½tÀD¹z¼zÐKÐKñô ð ð
  ˆNØ!×4Ò4Ñ6Ô6ð 8ð 8�	Ø×%Ò% e e¨IÑ&6Ô&6Ñ7Ô7Ð7Ð7à×.Ò.Ñ0Ô0ð k)õ ˜d×<Ò<Ñ>Ô>ÅÄÑMÔMð )Ø×,Ò,Ñ.Ô.ð -°t×7UÒ7UÑ7WÔ7Wð -Ø×*Ò*Ñ,Ô,Ð,ùÝð ð à!×/Ò/Ñ1Ô1ðñ ô ñ ô ð 
)ñ à×&Ò&Ñ(Ô(Ð(Ñ(Ý˜D×:Ò:Ñ<Ô<½dÑCÔCð Y)Ø ×.Ò.Ñ0Ô0�	Ø!×4Ò4Ñ6Ô6�
Ý&)ð *ð *å),¨Y¸
Ñ)CÔ)Cð*ñ *ô *ñ 'ô 'Ð#ð 'ð )Ø×&Ò&Ñ(Ô(Ð(ùÝ˜D×:Ò:Ñ<Ô<½e¼h¼oÑNÔNð P)Ø&6Ð&6ØÕ6Õ8IÐJñ'ô 'Ð#ð 'ð Ø×&Ò&Ñ(Ô(Ð(ð ðð ñ	ð ×.Ò.Ñ0Ô0åÔ&ÝÔ$Ý Ýð	ðð õ ÔDðð '7Ð&6Øå)Ý,Ý1Ý3Ý,ðñ	'ô 	'Ð#ð !%× 2Ò 2Ñ 4Ô 4ð ð �HÝ! (Õ,@ÑAÔAð Ø+Ø$×2Ò2Ñ4Ô4Õ8VÐVñÐ+øð 'ð )Ø×&Ò&Ñ(Ô(Ð(ùÝ˜D×:Ò:Ñ<Ô<½e¼nÑMÔMð ")Ø&6Ð&6°tÕ>RÐ=TÑ&UÔ&UÐ#à#¥sð +ð +ð %)×$6Ò$6Ñ$8Ô$8ð+ñ +ô +ñ (ô (ñ Ð#ð
 'ð )Ø×&Ò&Ñ(Ô(Ð(øå˜4×9Ò9Ñ;Ô;½UÑCÔCð)à—O’OÑ%Ô%×.Ò.Õ/MÑNÔNð)õ ÔDð)ð '7Ð&6ØÕ4Ð6ñ'ô 'Ð#ð 'ð )Ø×&Ò&Ñ(Ô(Ð(øÝ˜D×:Ò:Ñ<Ô<½dÑCÔCð )Ø&6Ð&6ØÕ0Õ2FÐGñ'ô 'Ð#ð 'ð )Ø×&Ò&Ñ(Ô(Ð(à!Ð!rÁ   c                ób   •— | €g S t          | t          ¦  «        r ‰| ¦  «        S  ‰| ¦  «        S rÞ   r  r  s    €€r¿   r   z6GuardManagerWrapper.find_tag_safe_roots.<locals>.visitM  sA   ø€ Øˆ|Ø�	Ý˜$Õ 0Ñ1Ô1ð 0Ø)Ð)¨$Ñ/Ô/Ð/Ø �= Ñ&Ô&Ð&rÁ   N)ró   r   r  r  r¶   rÌ   )ró   r   r¶   r&  )ró   r   r¶   r&  )rÛ   r(  r)  r;  r@  rA  Úmark_tag_safe_root)rÈ   r.  ró   r%  r   r  r	  s      @@@@r¿   r  z'GuardManagerWrapper.find_tag_safe_rootsp  sè   øøøø€ ðt	ð 	ð 	ð 	ð	"ð 	"ð 	"ð 	"ð 	"ð 	"ð>x	"ð x	"ð x	"ð x	"ð x	"ð x	"ð x	"ðt	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð ˜˜tœyÑ)Ô)ˆØ"ð 	*ð 	*ˆDÝ˜$×8Ò8Ñ:Ô:½E¼H¼OÑLÔLð *Ø×'Ò'Ñ)Ô)Ð)øð	*ð 	*rÁ   c                óˆ   — |                       | j        ¦  «        | _        | j        r| j                             ¦   «          d S d S rÞ   )Úclone_with_chosen_sourcesrì   rß   ræ   Úupdate_diff_guard_root_managerrÇ   s    r¿   r  z/GuardManagerWrapper.populate_diff_guard_managerY  sM   € Ø#×=Ò=¸dÔ>UÑVÔVˆÔð Ôð 	>ØÔ×;Ò;Ñ=Ô=Ð=Ð=Ð=ð	>ð 	>rÁ   Úchosen_sourcesr&   c                óD   ‡— dˆfd„}| j                              |¦  «        S )NÚnode_mgrr   r¶   rÌ   c                ó0   •— |                       ¦   «         ‰v S rÞ   )rö   )rS  rQ  s    €r¿   Ú	filter_fnz@GuardManagerWrapper.clone_with_chosen_sources.<locals>.filter_fni  s   ø€ Ø×&Ò&Ñ(Ô(¨NÐ:Ð:rÁ   )rS  r   r¶   rÌ   )rÛ   Úclone_manager)rÈ   rQ  rU  s    ` r¿   rO  z-GuardManagerWrapper.clone_with_chosen_sourcesf  s9   ø€ ð	;ð 	;ð 	;ð 	;ð 	;ð 	;ð Œy×&Ò& yÑ1Ô1Ð1rÁ   Úguardr#   ú	list[str]c                ód   ‡— |j         j        Š|                     ¦   «         }ˆfd„|D ¦   «         }|S )Nc                ó    •— g | ]
}‰d z   |z   ‘ŒS )ú: © )r  ÚpartÚ
guard_names     €r¿   ú
<listcomp>z7GuardManagerWrapper.get_guard_lines.<locals>.<listcomp>q  s#   ø€ Ð<Ð<Ð<¨d�˜dÑ" TÑ)Ð<Ð<Ð<rÁ   )rÑ   rÔ   rã   )rÈ   rW  Úpartsr^  s      @r¿   Úget_guard_linesz#GuardManagerWrapper.get_guard_linesn  s<   ø€ Ø”_Ô-ˆ
Ø×(Ò(Ñ*Ô*ˆØ<Ð<Ð<Ð<°eÐ<Ñ<Ô<ˆØˆrÁ   Úguard_managerr   Úaccessor_strú
str | Nonerµ   c                óþ   — |                      ¦   «         }|j        j        }|dz   |z   }|r|d|z   z  }|d|                     ¦   «         › �z  }|d|                     ¦   «         › d|                     ¦   «         › d�z  }|S )Nz	: source=ú, z, type=z, tag_safe=(ú))rö   rÑ   rÔ   r)  r  Úis_tag_safe_root)rÈ   rb  rc  ÚsourceÚtÚss         r¿   Úget_manager_linez$GuardManagerWrapper.get_manager_linet  sŸ   € ð ×)Ò)Ñ+Ô+ˆØÔ#Ô,ˆØ�‰O˜fÑ$ˆØð 	%Ø�˜Ñ$Ñ$ˆAØ	ÐB�}×>Ò>Ñ@Ô@ÐBÐBÑBˆØ	Ð^˜M×5Ò5Ñ7Ô7Ð^Ð^¸=×;YÒ;YÑ;[Ô;[Ð^Ð^Ð^Ñ^ˆØˆrÁ   r  r   ÚbodyrÃ   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ú   rÐ   Úindentrl  Úconstruct_manager_string)rÈ   r  rm  Úidxrþ   rÿ   s         r¿   Úconstruct_dict_manager_stringz1GuardManagerWrapper.construct_dict_manager_string€  sk  € õ (.¨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           
     óV  — |                      ¦   «         5  |                     ¦   «         D ]¬}t          |t          ¦  «        rm|| j        vrC| j                             |¦  «         |                     |                      |¦  «        ¦  «         Œc|                     |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 )Nzaccessed_by=)ro  Úget_leaf_guardsr  r%   rë   rû   Ú
writelinesra  rÑ   rÔ   r   rr  r"  r   r  rÐ   rl  r3  rp  )rÈ   r  rm  rW  r  r  s         r¿   rp  z,GuardManagerWrapper.construct_manager_stringŽ  sÿ  € ð �[Š[‰]Œ]ð 	?ð 	?Ø×,Ò,Ñ.Ô.ð Að A�Ý˜e¥_Ñ5Ô5ð AØ DÔ$BÐBÐBØÔ6×:Ò:¸5ÑAÔAÐAàŸš¨×(<Ò(<¸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                ó  — |                       ¦   «         5  t          ¦   «         }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 )NrQ   Ú T)rË   zTREE_GUARD_MANAGER:r&   Úget_epilogue_lambda_guards)rð   rÃ   rÆ   rÐ   rp  rÛ   Úhasattrrx  ru  ra  Úgetvalue)rÈ   rm  rW  s      r¿   Ú__str__zGuardManagerWrapper.__str__®  sE  € Ø×5Ò5Ñ7Ô7ð 
	#ð 
	#Ý+Ñ-Ô-ˆ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Úxr   rÌ   c                ó6   — | j                              |¦  «        S rÞ   )rÛ   Úcheck©rÈ   r|  s     r¿   r~  zGuardManagerWrapper.check»  s   € àŒy�Š˜qÑ!Ô!Ð!rÁ   r   c                ó6   — | j                              |¦  «        S rÞ   )rÛ   Úcheck_verboser  s     r¿   r�  z!GuardManagerWrapper.check_verbose¿  s   € àŒy×&Ò& qÑ)Ô)Ð)rÁ   c                ód   ‡ ‡‡‡— t          ¦   «         Šd
d„Šdˆˆˆ ˆfd	„Š ‰‰ j        ¦  «         d S )NÚ
leaf_guardr#   r¶   rX  c                ó¼   — g }|                       ¦   «         D ]D}|                     d¦  «        d                              ¦   «         }|                     |¦  «         ŒE|S )Nú#r   )rã   ÚsplitÚrstripÚappend)rƒ  râ   Úverbose_code_partÚ	code_parts       r¿   Úget_code_partszMGuardManagerWrapper.populate_code_parts_for_debugging.<locals>.get_code_partsÇ  sd   € ØˆJØ%/×%BÒ%BÑ%DÔ%Dð -ð -Ð!Ø-×3Ò3°CÑ8Ô8¸Ô;×BÒBÑDÔD�	Ø×!Ò! )Ñ,Ô,Ð,Ð,ØÐrÁ   r  r   rÍ   c                ód  •— |                       ¦   «         D ]w}t          |t          ¦  «        r=|‰vr8‰j                              ‰|¦  «        ¦  «         ‰                     |¦  «         ŒT‰j                              ‰|¦  «        ¦  «         Œx|                      ¦   «         D ]} ‰|¦  «         Œd S rÞ   )rt  r  r%   râ   r+  rû   r  )r  rW  r  r‹  Úrelational_guards_seenrÈ   r   s      €€€€r¿   r   zDGuardManagerWrapper.populate_code_parts_for_debugging.<locals>.visitÎ  sÏ   ø€ à×,Ò,Ñ.Ô.ð Bð B�Ý˜e¥_Ñ5Ô5ð BØÐ$:Ð:Ð:Øœ×.Ò.¨~¨~¸eÑ/DÔ/DÑEÔEÐEØ.×2Ò2°5Ñ9Ô9Ð9øà”O×*Ò*¨>¨>¸%Ñ+@Ô+@ÑAÔAÐAÐAà ×3Ò3Ñ5Ô5ð !ð !�	Ø��iÑ Ô Ð Ð ð!ð !rÁ   )rƒ  r#   r¶   rX  )r  r   r¶   rÍ   )rê   rÛ   )rÈ   r‹  r�  r   s   `@@@r¿   Ú!populate_code_parts_for_debuggingz5GuardManagerWrapper.populate_code_parts_for_debuggingÃ  sk   øøøø€ å!$¡¤Ðð	ð 	ð 	ð 	ð	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	ˆˆdŒiÑÔÐÐÐrÁ   rÞ   )rÛ   rÜ   r¶   rÍ   )r¶   rî   )r¶   rñ   ©r¶   rÍ   )rQ  rñ   r¶   r&   )rW  r#   r¶   rX  )rb  r   rc  rd  r¶   rµ   )r  r   rm  rÃ   r¶   rÍ   )r  r   rm  rÃ   r¶   rÍ   rÒ   ©r|  r   r¶   rÌ   )r|  r   r¶   r   )rÔ   rÕ   rÖ   Ú__doc__rí   r   rð   r  r  r  r  r  rO  ra  rl  rr  rp  r{  r~  r�  rŽ  r\  rÁ   r¿   rÚ   rÚ   
  s‹  € € € € € ðð ð@ð @ð @ð @ð @ð, ð3ð 3ð 3ñ „^ð3ð2'ð 2'ð 2'ð 2'ðh*ð *ð *ð *ð+ð +ð +ð +ðg*ð g*ð g*ð g*ðR>ð >ð >ð >ð2ð 2ð 2ð 2ðð ð ð ð GKð
ð 
ð 
ð 
ð 
ðAð Að Að Að?ð ?ð ?ð ?ð@#ð #ð #ð #ð"ð "ð "ð "ð*ð *ð *ð *ðð ð ð ð ð rÁ   rÚ   r5  r   útorch.Tensorc                óê   — 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)r5  s    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,úset[str]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.polyfillsÚ_dynamoÚexternal_utilsÚ	polyfillsÚtorch._dynamo.polyfills.loaderr�  r+  )r;  Úmodsr�  s      r¿   Úuninteresting_filesrª  è  si   € à'Ð'Ð'Ð'Ø"Ð"Ð"Ð"àŒMÔ(¨%¬-Ô*AÐB€DàAÐAÐAÐAÐAÐAð 	‡K‚KÐ"Ñ#Ô#Ð#à-Ð-¨Ð-Ñ-Ô-Ð-rÁ   údict[str, object] | NoneÚ_CLOSURE_VARSúdict[str, object]c            	     óø  — 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          “dd„ “dt          “dt          “dt          j        “dt"          €d nt"          j        “dt%          d¦  «        “t&          j        t*          j        j        t*          j        t2          t*          j        t*          t6          dœ¥a t           S )NÚ___check_type_idÚ___check_obj_idÚ___odict_getitemÚ___key_to_idÚ___dict_versionÚ___dict_containsc                ó8   — t                                || ¦  «        S rÞ   )r*  Ú__contains__)r5  Úbs     r¿   ú<lambda>z#_get_closure_vars.<locals>.<lambda>  s   € ­T×->Ò->¸qÀ!Ñ-DÔ-D€ rÁ   Ú___tuple_iterator_lenÚ___normalize_count_iterÚ___normalize_range_iterÚ___tuple_iterator_getitemÚ___dataclass_fieldsÚ___namedtuple_fieldsc                ó   — | j         S rÞ   ©Ú_fields©r|  s    r¿   r¸  z#_get_closure_vars.<locals>.<lambda>	  s   € ¨a¬i€ rÁ   Ú#___get_torch_function_mode_stack_atÚ___get_current_streamÚ__math_isnanÚ__numpy_isnanÚinf)Ú__load_moduleÚutils_deviceÚdeviceÚ___from_numpyÚ___as_tensorr;  rŸ  )r¬  r   r   ÚcollectionsÚOrderedDictÚ__getitem__r”   r   r™   r•   r–   r˜   rŒ   r�   rŽ   ÚmathÚisnanr–  ÚfloatÚ	importlibÚimport_moduler;  ÚutilsÚ_devicerÊ  rš  Ú_as_tensor_fullprecrŸ  r\  rÁ   r¿   Ú_get_closure_varsrØ  ú  s9  € åÐð
Ø¥ð
à�|ð
ð ¥Ô 7Ô Cð
ð �Ið	
ð
 �|ð
ð Ð DÐ Dð
ð $Õ%7ð
ð &Õ';ð
ð &Õ';ð
ð (Õ)?ð
ð "Õ#3ð
ð #Ð$7Ð$7ð
ð 2Õ3Sð
ð $Õ%7ð
ð �DœJð
ð  ¥R Z˜T˜TµR´Xð!
ð" •5˜‘<”<ð#
õ$ 'Ô4Ý!œKÔ/Ý”lÝ'Ý!Ô5ÝÝð1
ð 
ð 
ˆõ4 ÐrÁ   ró   úast.ASTc                óR   — t          j        | ¦  «                             dd¦  «        S )Nú
rw  )ÚastÚunparseÚreplace)ró   s    r¿   Ú_ast_unparserß    s"   € ÝŒ;�tÑÔ×$Ò$ T¨2Ñ.Ô.Ð.rÁ   rj  ú	type[Any]c                ó6   — t                                | ¦  «        S rÞ   )r  Ú__repr__©rj  s    r¿   Ú_safe_type_reprrä  !  s   € Ý�=Š=˜ÑÔÐrÁ   rŠ  rW  úGuard | Nonec                ó’  — d}|�½|j         rht          |j         ¦  «        D ]R}|j        t          ¦   «         vr;dt	          |d¬¦  «        › �}t          |¦  «        dk    rdt	          |¦  «        › �} nŒSnN|j        rG|j                             ¦   «         }t          |¦  «        dk    rdt	          |d         ¦  «        › �}nd}| d	›|› �S )
Nrw  z  # T)rÊ   i   r   éÿÿÿÿz  # <unknown>z<60)Ú
user_stackÚreversedÚfilenamerª  rN   r»   ÚstackÚsummary)rŠ  rW  ÚextraÚfsrì  s        r¿   Úget_verbose_code_partrï  %  s÷   € Ø€EØÐØÔð 	(Ý˜uÔ/Ñ0Ô0ð 
ð 
�Ø”;Õ&9Ñ&;Ô&;Ð;Ð;Ø@¥<°¸Ð#>Ñ#>Ô#>Ð@Ð@�EÝ˜5‘z”z DÒ(Ð(ð !:¥|°BÑ'7Ô'7Ð 9Ð 9˜Ø�Eð <øð Œ[ð 	(Ø”k×)Ò)Ñ+Ô+ˆGÝ�7‰|Œ|˜aÒÐØ:�|¨G°B¬KÑ8Ô8Ð:Ð:��à'�ØÐ$Ð$˜UÐ$Ð$Ð$rÁ   râ   ústr | list[str]Úrecompile_hintrd  rX  c                ó¼   ‡‡— t          | t          ¦  «        s| g} ˆfd„| D ¦   «         }‰�!t          ‰j        ¦  «        }|r‰r|› d‰› �n|Š‰rˆfd„|D ¦   «         }|S )Nc                ó0   •— g | ]}t          |‰¦  «        ‘ŒS r\  )rï  )r  rŠ  rW  s     €r¿   r_  z*get_verbose_code_parts.<locals>.<listcomp>E  s1   ø€ ð ð ð Ø4=Õ˜i¨Ñ/Ô/ðð ð rÁ   rf  c                ó    •— g | ]
}|› d ‰› d�‘ŒS ©z (HINT: rg  r\  ©r  r]  rñ  s     €r¿   r_  z*get_verbose_code_parts.<locals>.<listcomp>T  s7   ø€ ð 
ð 
ð 
Ø37ˆtÐ.Ð.˜^Ð.Ð.Ð.ð
ð 
ð 
rÁ   )r  ÚlistÚ_get_closure_var_hintÚoriginating_source)râ   rW  rñ  rã   Úclosure_hints    ``  r¿   Úget_verbose_code_partsrû  =  sÃ   øø€ õ
 �j¥$Ñ'Ô'ð "Ø �\ˆ
ðð ð ð ØAKðñ ô Ðð ÐÝ,¨UÔ-EÑFÔFˆØð 	à7EÐW�<Ð3Ð3 >Ð3Ð3Ð3È<ð ð ð 
ð
ð 
ð 
ð 
Ø;Mð
ñ 
ô 
Ðð ÐrÁ   ri  úSource | Nonec                óî   — | €dS | j         }| }|�et          |t          ¦  «        r0|j        r)|t	          |j         ¦  «        d…         }d|j        › d|› �S t          |t
          ¦  «        r|j        nd}|­edS )z‘
    Walk up the source chain to find a CellContentsSource ancestor.
    Returns a hint like 'guard on "varname".attr' or None if not found.
    Nz
guard on "ú")Únamer  rZ   Úfreevar_namer»   r[   Úbase)ri  Ú	full_nameÚcurrentÚpath_suffixs       r¿   rø  rø  [  s�   € ð
 €~Øˆtà”€IØ#€GØ
Ð
Ý�gÕ1Ñ2Ô2ð 	E°wÔ7Kð 	Eð
 $¥C¨¬Ñ$5Ô$5Ð$7Ð$7Ô8ˆKØD Ô 4ÐDÐD°{ÐDÐDÐDÝ",¨WµmÑ"DÔ"DÐN�'”,�,È$ˆð Ð
ð ˆ4rÁ   Údimú
int | Nonec                óÐ   — | €d S t          | ¦  «        s| S t          | t          j        ¦  «        st	          dt          | ¦  «        › �¦  «        ‚| j                             ¦   «         S )NzExpected torch.SymInt, got )rJ   r  r;  ÚSymIntr  r  ró   Úmaybe_as_int)r  s    r¿   Úconvert_int_to_concrete_valuesr
  q  sg   € Ø
€{ØˆtÝ�sÑÔð 'Øˆ
å˜#�uœ|Ñ,Ô,ð 	LÝ Ð!J½tÀC¹y¼yÐ!JÐ!JÑKÔKÐKØŒx×$Ò$Ñ&Ô&Ð&rÁ   Úsize_or_strideúSequence[Any]úlist[int | None]c                ó   — d„ | D ¦   «         S )Nc                ó,   — g | ]}t          |¦  «        ‘ŒS r\  )r
  )r  r  s     r¿   r_  z.convert_to_concrete_values.<locals>.<listcomp>}  s!   € ÐJÐJÐJ°CÕ*¨3Ñ/Ô/ÐJÐJÐJrÁ   r\  )r  s    r¿   Úconvert_to_concrete_valuesr  |  s   € ØJÐJ¸>ÐJÑJÔJÐJrÁ   Úvaluerÿ  ÚsizesÚstridesÚpytyper  Údispatch_keysr¡   c                óú   — |t           j                             ¦   «         z  t           j                             ¦   «         z
  }| j        }| j        j        }| j        }	d|› d|j        › d|› d|› d|› d|	› d|› d|› d�}
|
S )Nzcheck_tensor(rf  z	, device=z, requires_grad=z, size=z	, stride=rg  )	r;  Ú_CÚ_dispatch_tls_local_include_setÚ_dispatch_tls_local_exclude_setÚdtyperÊ  r¼   Úrequires_gradrÖ   )r  rÿ  r  r  r  r  Údispatch_keyr  Údevice_indexr  Ú	guard_strs              r¿   Úget_tensor_guard_code_partr  €  sÝ   € ð 	�œ×@Ò@ÑBÔBÑBÝŒ×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Á   Údctúdict[Any, Any]Úkeyc                ó`   — t          t          | ¦  «        ¦  «                             |¦  «        S rÞ   )r÷  rŠ   r¼   )r   r"  s     r¿   Úget_key_indexr$  •  s)   € õ
 Õ! #Ñ&Ô&Ñ'Ô'×-Ò-¨cÑ2Ô2Ð2rÁ   r¼   c                ó   — d| › d|› d�S )Núlist(dict.keys(ú))[ú]r\  )ri  r¼   s     r¿   Úget_key_index_sourcer)  �  s   € Ø0˜VÐ0Ð0¨Ð0Ð0Ð0Ð0rÁ   Úobjr
   c                óT   — t          dt          | ¦  «        › d| › d�dz   dz   ¦  «        ‚)NúType ú for object ú cannot be saved ú@into torch.compile() package since it's defined in local scope. ú@Please define the class at global scope (top level of a module).)Ú	TypeErrorr  )r*  s    r¿   Úraise_local_type_errorr2  ¡  sB   € Ý
Ø=•�S‘	”	Ð=Ð= sÐ=Ð=Ð=Ø
Lñ	Mà
Lñ	Mñô ð rÁ   rÌ   c                ó@   — t          | t          j        j        ¦  «        S rÞ   )r  r;  r@  rA  )r  s    r¿   Ú$should_optimize_getattr_on_nn_moduler4  ©  s   € Ý�e�UœXœ_Ñ-Ô-Ð-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 )ÚNNModuleAttrAccessorInfoFrÌ   Úpresent_in_generic_dictNrd  Úl1_keyÚl2_key)rÔ   rÕ   rÖ   r8  r¯   r9  r:  r\  rÁ   r¿   r7  r7  ­  sL   € € € € € € ð %*ÐÐ)Ð)Ð)Ñ)ð €FÐÐÐÑð €FÐÐÐÑÐÐrÁ   r7  ú-DictGetItemSource | DictSubclassGetItemSourceÚbase_guard_managerr   Úbase_example_valueÚexample_valueÚguard_manager_enumÚGuardManagerTyper   c                ó®  — | j         j        }t          | j        t          ¦  «        r| j        j        }nIt          |t
          ¦  «        st          dt          |¦  «        › �¦  «        ‚t          || j        ¦  «        }t          ||¦  «        }t          t          |¦  «        ¦  «        |         }t          |t          t          f¦  «        r	|› d|›d�}	n|› d|› d�}	t          | j        t          ¦  «        sH|                     ||| j        t          j        ¬¦  «                             | j        |› d|›�gd ¦  «         |                     ||	||¬¦  «        S )NúExpected dict, got ú[r(  ©r¼   ri  r>  r?  ú == )r  rÿ  r  r¼   r_   r*  r  r  r$  r)  r÷  rŠ   r·   rµ   Úget_key_managerr@  ÚGUARD_MANAGERÚadd_equals_match_guardÚget_value_manager)
ri  r<  r=  r>  r?  Úbase_source_namer¼   Ú
key_sourceÚkey_example_valueÚvalue_sources
             r¿   Úgetitem_on_dict_managerrN  ¼  s‰  € ð ”{Ô'ÐÝ�&”,Õ 2Ñ3Ô3ð @Ø”Ô"ˆˆåÐ,­dÑ3Ô3ð 	SÝ Ð!QµtÐ<NÑ7OÔ7OÐ!QÐ!QÑRÔRÐRÝÐ0°&´,Ñ?Ô?ˆå%Ð&6¸Ñ>Ô>€Jõ Õ.Ð/AÑBÔBÑCÔCÀEÔJÐÝÐ#¥c­3 ZÑ0Ô0ð ;Ø*ÐCÐCÐ->ÐCÐCÐCˆˆà*Ð:Ð:¨ZÐ:Ð:Ð:ˆÝ�f”lÕ$6Ñ7Ô7ð 

ð 	×*Ò*ØØØ œ,Ý/Ô=ð	 	+ñ 	
ô 	
÷
 !Ò
 ØŒL˜jÐCÐCÐ.?ÐCÐCÐDÀdñ
ô 
ð 
ð ×/Ò/ØØØ#Ø-ð	 0ñ ô ð rÁ   r:   c                ó¾   — | j         }t          |t          ¦  «        rdS |                      ¦   «         rdS |                     ¦   «         ot          |t
          ¦  «         S ©NFT)rù  r  ru   Úis_specialized_nn_moduleÚis_dict_keyrn   )rW  ri  s     r¿   Úmatch_on_id_for_tensorrS  ê  sa   € ØÔ%€Fõ �&Õ+Ñ,Ô,ð Øˆuà×%Ò%Ñ'Ô'ð Øˆtà×ÒÑÔÐF­
°6½:Ñ(FÔ(FÐ$FÐFrÁ   c                  ó$   — e Zd ZU ded<   ded<   dS )ÚGuardCodeListrX  Ú	code_listr:   rW  N©rÔ   rÕ   rÖ   r¯   r\  rÁ   r¿   rU  rU  ù  s%   € € € € € € àÐÐÑØ€L€L�L€L€LrÁ   rU  c                  ó   — e Zd ZdZdZdS )r@  rQ   é   N)rÔ   rÕ   rÖ   rG  ÚDICT_GUARD_MANAGERr\  rÁ   r¿   r@  r@  ÿ  s   € € € € € Ø€MØÐÐÐrÁ   c                óT   — t          t          t          | ¦  «        ¦  «        ¦  «        S rÞ   )r÷  ré  r   )r²   s    r¿   rº   rº     s!   € å•Õ/°Ñ5Ô5Ñ6Ô6Ñ7Ô7Ð7rÁ   c                  ó(   — e Zd ZU dZded<   ded<   dS )ÚGuardCheckSpecu^  Lightweight guard evaluation for subgraph reuse during tracing.

    WHY IS THIS NEEDED?
    Normal guards are collected during tracing, installed via GuardBuilder, and
    evaluated in C++ at runtime. GuardCheckSpec serves a different purpose: we
    want to evaluate a guard *during tracing* to check whether a previously
    traced partial subgraph can be reused. The guard is collected during the
    first trace of subgraph and then evaluated with a new source value before we
    begin tracing the second subgraph.

    Existing C++ guards don't satisfy this need because they're designed for
    runtime evaluation, not mid-trace comparisons with different source values.

    NB - This separate spec table *increases maintenance burden*, but each
    handler is small and the number of guard types is finite, so it's tractable.

    get_metadata_fn: (guard, value) -> metadata  â€” captures the minimum
        information from the guarded value at build time.
    eval_fn: (value, metadata) -> bool  â€” re-evaluates the guard at lookup
        time using a fresh value and the previously saved metadata.
    r   Úget_metadata_fnÚeval_fnN)rÔ   rÕ   rÖ   r‘  r¯   r\  rÁ   r¿   r]  r]  	  s1   € € € € € € ðð ð, ÐÐÑØ€L€L�L€L€LrÁ   r]  útuple[Any, ...]c                ó\   — | j         |                      ¦   «         | j        | j        | j        fS rÞ   )ÚshapeÚstrider  rÊ  r  rã  s    r¿   Úextract_tensor_metadatard  (  s#   € ØŒG�Q—X’X‘Z”Z ¤¨!¬(°A´OÐDÐDrÁ   c                ó˜   — t          |                     ¦   «         d         ¦  «        }t          |¦  «        }t          |d¦  «        }|||fS )NrQ   Ú__metadata_guard__)r   Ú__tensor_flatten__r  ry  )rW  r  ÚmetadataÚclsÚhas_custom_guards        r¿   Úextract_subclass_metadatark  -  sJ   € Ý˜×0Ò0Ñ2Ô2°1Ô5Ñ6Ô6€HÝ
ˆu‰+Œ+€CÝ˜uÐ&:Ñ;Ô;ÐØ�cÐ+Ð,Ð,rÁ   rh  c                óª   — |\  }}}|r.|                      ||                      ¦   «         d         ¦  «        S |                      ¦   «         d         |k    S r¹   ©rf  rg  )r  rh  Úsaved_metadatari  rj  s        r¿   Úcheck_subclass_metadataro  5  s\   € Ø,4Ñ)€N�CÐ)Øð UØ×%Ò% n°e×6NÒ6NÑ6PÔ6PÐQRÔ6SÑTÔTÐTØ×#Ò#Ñ%Ô% aÔ(¨NÒ:Ð:rÁ   c                ó    — t          |¦  «        S rÞ   r   ©rW  r  s     r¿   Úextract_dtensor_specrr  =  s   € Ý�E‰?Œ?ÐrÁ   c                ó0   — |                       |d¬¦  «        S )NT)Úskip_shapes)Ú_check_equals©r  rh  s     r¿   Úcheck_dtensor_specrw  B  s   € Ø×Ò˜x°TÐÑ:Ô:Ð:rÁ   c                ó”   — t          t          |¦  «        ¦  «        }|r|j        sd S t          |                     |¦  «        ¦  «        S rÞ   )rC   r  Úguard_fnr   )rW  r  Úopaque_infos      r¿   Úextract_opaque_objr{  G  sH   € Ý%¥d¨5¡k¤kÑ2Ô2€KØð ˜kÔ2ð ØˆtÝ�K×(Ò(¨Ñ/Ô/Ñ0Ô0Ð0rÁ   c                óŽ   — |€dS t          t          | ¦  «        ¦  «        }|r|j        s|d u S |                     | ¦  «        |k    S ©NT)rC   r  ry  )r  rh  rz  s      r¿   Úcheck_opaque_objr~  O  sV   € ØÐØˆtÝ%¥d¨5¡k¤kÑ2Ô2€KØð  ˜kÔ2ð  Ø˜4ÐÐØ×Ò Ñ&Ô&¨(Ò2Ð2rÁ   c                ó„   — t          |¦  «        t          j        u rt          |d¦  «        r|j        S t          |¦  «        S ©Nr­   ©r  rB  rC  ry  r­   Úidrq  s     r¿   Úextract_closurerƒ  Y  s9   € ÝˆE�{„{•eÔ(Ð(Ð(­W°U¸JÑ-GÔ-GÐ(ØŒ~ÐÝˆe‰9Œ9ÐrÁ   c                ó�   — t          | ¦  «        t          j        u rt          | d¦  «        r	| j        |u S t          | ¦  «        |k    S r€  r�  rv  s     r¿   Úcheck_closurer…  `  sC   € ÝˆE�{„{•eÔ(Ð(Ð(­W°U¸JÑ-GÔ-GÐ(ØŒ~ Ð)Ð)Ýˆe‰9Œ9˜Ò Ð rÁ   c                ó�   — ddl m} |D ]}t          | |¦  «        r || ¦  «        c S Œ t          dt	          | ¦  «        › �¦  «        ‚)zBExtract the base constant value from a constant subclass instance.rQ   ©Ú_CONSTANT_BASE_TYPESzNot a constant subclass: )Úvariables.user_definedrˆ  r  r1  r  )r  rˆ  rj  s      r¿   Ú_constant_subclass_base_valuerŠ  f  sh   € à<Ð<Ð<Ð<Ð<Ð<à!ð ð ˆÝ�e˜QÑÔð 	Ø�1�U‘8”8ˆOˆOˆOð	å
Ð=µ°U±´Ð=Ð=Ñ
>Ô
>Ð>rÁ   c                ó4   ‡— t          | |¬¦  «        Šˆfd„}|S )z<Attach a GuardCheckSpec to a guard method for auto-dispatch.©r^  r_  c                ó   •— ‰| _         | S rÞ   )Úguard_check_spec)ÚfnÚhandlers    €r¿   Ú	decoratorz,register_guard_check_spec.<locals>.decoratorw  s   ø€ Ø%ˆÔØˆ	rÁ   )r]  )r^  r_  r‘  r�  s      @r¿   Úregister_guard_check_specr’  p  s8   ø€ õ
 ¨_ÀgÐNÑNÔN€Gðð ð ð ð ð ÐrÁ   c                ó   — t           | _        | S )z:Mark a guard method as skipped during auto-cache dispatch.)Ú
SKIP_GUARDrŽ  ©r�  s    r¿   Úskip_guard_check_specr–  ~  s   € å$€BÔØ€IrÁ   c                  óF   — e Zd ZdZd
d„Zed„ ¦   «         Zed„ ¦   «         Zd	S )ÚUnsupportedGuardCheckSpecz„Sentinel for guards with no check spec yet.

    Raises NotImplementedError if get_metadata_fn/eval_fn are accidentally called.
    rÿ  rµ   r¶   rÍ   c                ó   — || _         d S rÞ   )Ú_name)rÈ   rÿ  s     r¿   rí   z"UnsupportedGuardCheckSpec.__init__Š  s   € ØˆŒ
ˆ
ˆ
rÁ   c                ó0   — t          d| j        › �¦  «        ‚©Nz%Guard check spec not implemented for ©ÚNotImplementedErrorrš  rÇ   s    r¿   r^  z)UnsupportedGuardCheckSpec.get_metadata_fn�  ó   € å!Ð"VÈ$Ì*Ð"VÐ"VÑWÔWÐWrÁ   c                ó0   — t          d| j        › �¦  «        ‚rœ  r�  rÇ   s    r¿   r_  z!UnsupportedGuardCheckSpec.eval_fn‘  rŸ  rÁ   N)rÿ  rµ   r¶   rÍ   )rÔ   rÕ   rÖ   r‘  rí   Úpropertyr^  r_  r\  rÁ   r¿   r˜  r˜  „  sp   € € € € € ðð ð
ð ð ð ð ðXð Xñ „XðXð ðXð Xñ „XðXð Xð XrÁ   r˜  c                ó8   — t          | j        ¦  «        | _        | S )z;Mark a guard method as unsupported for auto-cache dispatch.)r˜  rÔ   rŽ  r•  s    r¿   Úunsupported_guard_check_specr£  –  s   € å3°B´KÑ@Ô@€BÔØ€IrÁ   c                  ó„  — e Zd Z	 	 	 d¿dÀd„ZdÁd„ZdÂd!„ZedÃd$„¦   «         ZdÄd/„ZdÅd1„Z	dÆd3„Z
dÇd5„ZdÈd6„ZdÉd7„ZdÊd8„Z	 	 dËdÌd?„Z	 dÍdÎdC„ZdÏdE„ZdÐdI„Z edJ„ dK„ ¬L¦  «        dÍdÑdO„¦   «         Z edP„ dQ„ ¬L¦  «        	 dÍdÒdR„¦   «         Z edS„ dT„ ¬L¦  «        dÓdU„¦   «         Z edV„ dW„ ¬L¦  «        dÓdX„¦   «         ZedÓdY„¦   «         Z edZ„ d[„ ¬L¦  «        dÔd]„¦   «         Z ed^„ d_„ ¬L¦  «        dÔd`„¦   «         Z eda„ db„ ¬L¦  «        dÕdc„¦   «         Z edd„ de„ ¬L¦  «        dÕdf„¦   «         Z edg„ dh„ ¬L¦  «        dÓdi„¦   «         Z edj„ dk„ ¬L¦  «        dÓdl„¦   «         Z edm„ dn„ ¬L¦  «        dÍdÖdp„¦   «         Z 	 dÍdÖdq„Z! edr„ ds„ ¬L¦  «        dÍd×dt„¦   «         Z" edu„ dv„ ¬L¦  «        dÓdw„¦   «         Z#e$dÓdx„¦   «         Z%e$dÓdy„¦   «         Z&e$dÓdz„¦   «         Z' ee(e)¬L¦  «        dÓd{„¦   «         Z* ee+e,¬L¦  «        dÓd|„¦   «         Z- ee.e/¬L¦  «        dÓd}„¦   «         Z0 ed~„ d„ ¬L¦  «        dÍdÖd€„¦   «         Z1 ed�„ d‚„ ¬L¦  «        dÓdƒ„¦   «         Z2 ed„„ d…„ ¬L¦  «        dÓd†„¦   «         Z3 ed‡„ dˆ„ ¬L¦  «        dÓd‰„¦   «         Z4 edŠ„ d‹„ ¬L¦  «        dÓdŒ„¦   «         Z5 ed�„ dŽ„ ¬L¦  «        dÓd�„¦   «         Z6 ed�„ d‘„ ¬L¦  «        dÓd’„¦   «         Z7 ee8e9¬L¦  «        dÓd“„¦   «         Z: ed”„ d•„ ¬L¦  «        dÓd–„¦   «         Z; ed—„ d˜„ ¬L¦  «        dÓd™„¦   «         Z< edš„ d›„ ¬L¦  «        dÓdœ„¦   «         Z= ed�„ dž„ ¬L¦  «        dÓdŸ„¦   «         Z> ed „ d¡„ ¬L¦  «        dÓd¢„¦   «         Z?e$dØd¤„¦   «         Z@ ed¥„ d¦„ ¬L¦  «        dÓd§„¦   «         ZA ed¨„ d©„ ¬L¦  «        dÓdª„¦   «         ZB ed«„ d¬„ ¬L¦  «        dÓd­„¦   «         ZC ed®„ d¯„ ¬L¦  «        dÓd°„¦   «         ZDe$dÓd±„¦   «         ZEe$dÓd²„¦   «         ZFe$dÓd³„¦   «         ZGe$dÓd´„¦   «         ZHe$dÓdµ„¦   «         ZIe$dÓd¶„¦   «         ZJe$dÓd·„¦   «         ZK ed¸„ d¹„ ¬L¦  «        dÍd×dº„¦   «         ZL	 	 dÙdÚd¾„ZMdS )ÛÚGuardBuilderFNÚf_coder³   Úid_refúCallable[[object, str], int]Ú
source_refúCallable[[Source], str]Úlookup_weakrefsú.Callable[[object], weakref.ref[object] | None]Úlocal_scoper­  rä   rb  rÚ   Úcheck_fn_managerÚCheckFunctionManagerÚsave_guardsrÌ   Úruntime_global_scoper«  Úguard_filter_fnú=Callable[[Sequence[GuardFilterEntry]], Sequence[bool]] | Noner¶   rÍ   c                ó  — || _         || _        || _        || _        ||dœ| _        i | _        |
p|| _        t          j         	                    ¦   «         | j        d<   t          j        j        j                             ¦   «         D ]]\  }}|                     dd¦  «                             dd¦  «                             dd¦  «        }|| j        d         |<   || j        |<   Œ^|| _        g | _        g | _        g | _        g | _        g | _        || _        i | _        |	| _        || _        t5          ¦   «         | _        | j        j        €t;          d¦  «        ‚| j        j        j        D ]>}|                      |¦  «        }| j                              tC          |¦  «        ¦  «         Œ?i | _"        i | _#        t5          ¦   «         | _$        g | _%        tL          j'        otQ          d	¦  «        | _'        tS          ¦   «         | _*        d S )
N©ÚLÚGÚ__builtins__ú>Ú_ú<ú.Ú_dot_ú.check_fn_manager.output_graph must not be Noneú!pytorch/compiler:guard_nn_modules)+r¦  r§  r©  r«  ÚscopeÚsrc_get_value_cacher±  ÚbuiltinsÚ__dict__Úcopyr;  ÚpackageÚpackage_importerÚ_package_imported_modulesrú   rÞ  rb  Úargnamesr²   Úshape_env_codeÚno_tensor_aliasing_namesÚ!no_tensor_aliasing_guard_managersr®  Úguard_tree_valuesr°  r²  rê   Úkey_order_guarded_dict_idsÚoutput_graphr  Úguard_on_key_orderÚgetrû   r‚  rè   Ú_cached_guard_managersÚ_cached_duplicate_input_guardsÚobject_aliasing_guard_codesrR   Úguard_nn_modulesrF   rM   Úalready_added_code_parts)rÈ   r¦  r§  r©  r«  r­  rä   rb  r®  r°  r±  r²  rÿ  Úpackage_moduleri  Údict_objs                   r¿   rí   zGuardBuilder.__init__�  s  € ð ˆŒØˆŒØ$ˆŒØ.ˆÔØ9DÈ<Ð3XÐ3XˆŒ
Ø9;ˆÔ Ø$8Ð$H¸LˆÔ!Ý%-Ô%6×%;Ò%;Ñ%=Ô%=ˆŒ
�>Ñ"õ Œ]Ô+ÔE×KÒKÑMÔMð	.ð 	.ñ 
ØØà—<’<  SÑ)Ô)×1Ò1°#°sÑ;Ô;×CÒCÀCÈÑQÔQˆDà/=ˆDŒJ�~Ô& tÑ,à-ˆDŒJ�tÑÐØ*ˆÔà#%ˆŒà)+ˆŒ	ð
 46ˆÔð 46ˆÔ%ØEGˆÔ.à6FˆÔà13ˆÔØ&ˆÔØ.ˆÔõ +.©%¬%ˆÔ'ØÔ Ô-Ð5Ý Ð!QÑRÔRÐRØÔ+Ô8ÔKð 	>ð 	>ˆFØ—x’x Ñ'Ô'ˆHØÔ+×/Ò/µ°8±´Ñ=Ô=Ð=Ð=ð
 BDˆÔð @BˆÔ#ÝDGÁEÄEˆÔ+ØBDˆÔ(Ý &Ô 7ð !
½OØ/ñ=
ô =
ˆÔõ :D¹¼ˆÔ%Ð%Ð%rÁ   r>  r!  rW  r:   c                ój  — |                       |¦  «        }t          |t          ¦  «        rt          d|j        › �¦  «        ‚|j        j        }t          |¦  «        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 )r¼   rC  r(  ©r"  ri  r>  r?  )
Úget_guard_managerr  r   rž  rÿ  rù  rŠ   rc   Úget_guard_manager_typeÚdict_getitem_manager)	rÈ   r>  rW  Údict_mgrÚdict_sourcer"  r  rM  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Ô3ð 	ð 	ˆCØ! #Ô&ˆEÝ,¨UÔ-EÈSÐQÑQÔQˆLØ!%×!<Ò!<Ø˜mñ"ô "Ðð ×)Ò)ØØ%Ð0Ð0¨Ð0Ð0Ð0Ø#Ø#5ð	 *ñ ô ð ð ð	ð 	rÁ   r  c                ó°  — |                       |¦  «        }t          |t          ¦  «        st          d|j        › �¦  «        ‚t          |t          ¦  «        st          dt          |¦  «        › �¦  «        ‚t          t          |¦  «        ¦  «        D ]Ã\  }}t          |j        |¦  «        }| 
                    |||t          j        ¬¦  «        }t          |¦  «        rH|                      ||¦  «        }|                     |t!          d|› d|› d�|¦  «        |j        ¦  «         Œ”|                     |t!          |› d|›�|¦  «        |j        ¦  «         ŒÄd S )Nz_Expecting a DictGuardManager. Seems like Dynamo forgot to set the right guard manager enum for zExpected DictGuardManager, got rD  z__check_obj_id(rf  rg  rE  )rÚ  r  r   rž  rÿ  r  r  Ú	enumeraterŠ   r)  rF  r@  rG  r“   r§  Úadd_id_match_guardrû  rè  rH  )	rÈ   r  rW  rÝ  rq  r"  rK  Úkey_managerÚid_vals	            r¿   Úguard_on_dict_keys_and_orderz)GuardBuilder.guard_on_dict_keys_and_order
  s£  € ð ×)Ò)¨%Ñ0Ô0ˆÝ˜(Õ$4Ñ5Ô5ð 	Ý%ðHØ;@¼:ðHð Hñô ð õ ˜(Õ$4Ñ5Ô5ð 	UÝ Ð!SÅ4ÈÁ>Ä>Ð!SÐ!SÑTÔTÐTõ "Õ"3°EÑ":Ô":Ñ;Ô;ð 	ð 	‰HˆC�Ý-¨e¬j¸#Ñ>Ô>ˆJØ"×2Ò2ØØ!Ø!Ý#3Ô#Að	 3ñ ô ˆKõ ˜‰~Œ~ð àŸš S¨*Ñ5Ô5�Ø×.Ò.ØÝ*ØA¨*ÐAÐA¸ÐAÐAÐAÀ5ñô ð Ô$ñô ð ð ð ×2Ò2ØÝ*¨jÐ+EÐ+E¸cÐ+EÐ+EÀuÑMÔMØÔ$ñô ð ð ð)	ð 	rÁ   r   ú
Any | Nonec                ó–   — t           j        r<t          j        dk    r,t          j        dk     rt	          j        dt          ¦  «         d S | S )N)é   é   )rè  ré  rQ   zMGuards may run slower on Python 3.13.0. Consider upgrading to Python 3.13.1+.)rR   Ú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_value4  sR   € õ Ô'ð		åÔ  GÒ+Ð+ÝÔ  :Ò-Ð-åŒMØ_Ýñô ð ð �4ØÐrÁ   ri  rW   r<  r   r=  rJ  rµ   Úsource_namer?  r@  c                óX  — d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t          d¦  «        ‚|j        }|j        }|› d�}dx}}dx}}dx}}|rUt          |j        |¦  «        }|j        }|
|         }|                      ||¦  «        }|}|}|                      ||¦  «        }n|}|}|                      ||¦  «        }|                     ||                      |
¦  «        t(          j        ¬¦  «        } |||||
||¬¦  «        }|r$|�|€t          d¦  «        ‚ |||||||¬¦  «        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__.
        r  r   r"  r   rñ  rµ   r=  r>  r?  r@  r¶   c                ó>  — t          | t          ¦  «        rpt          ||¦  «        }d|› d|›d�}|                      |||t          j        ¬¦  «                             ||› d|›�gd ¦  «         |                      ||||¬¦  «        S |                      ||||¬¦  «        S )Nr&  r'  r(  rD  rE  rÙ  )	r  r   r$  rF  r@  rG  rH  rI  rÜ  )r  r"  rñ  r=  r>  r?  r¼   rK  s           r¿   Úgetitem_on_dict_mgrz>GuardBuilder.getattr_on_nn_module.<locals>.getitem_on_dict_mgra  sé   € õ ˜#Õ/Ñ0Ô0ð õ &Ð&8¸#Ñ>Ô>�ð J¨{ÐIÐI¸uÐIÐIÐI�
Ø×#Ò#ØØ%Ø"%Ý'7Ô'Eð	 $ñ ô ÷
 )Ò(¨°*Ð/IÐ/IÀ#Ð/IÐ/IÐ.JÈDÑQÔQÐQð ×,Ò,ØØ&Ø"/Ø'9ð	 -ñ ô ð ð ×/Ò/ØØ&Ø"/Ø'9ð	 0ñ ô ð rÁ   FNTÚ_parametersÚ_buffersÚ_modules©Úattrri  r>  r?  z&accessor_info.l1_key must not be emptyú	.__dict__©ri  r>  r?  )r  r"  rñ  r=  r>  r?  z9l2_source_name and l2_guard_manager_enum must not be None)r  r   r"  r   rñ  rµ   r=  r   r>  r   r?  r@  r¶   r   )ÚmemberrÃ  rê   rŸ  ÚgetmrorÑ   ÚupdateÚkeysr7  r8  Úgetattr_managerr9  r  r:  rW   r  rÿ  rÛ  Úget_generic_dict_managerrð  r@  rG  )rÈ   ri  r<  r=  r>  rJ  rñ  r?  rô  Ú	attr_nameÚmod_dictÚall_class_attribute_namesr|  Úaccessor_infor9  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_moduleF  s!  € ð6#	ð #	ð #	ð #	ðJ ”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ð F	ð &×5Ò5Ø”]Ø"Ø+Ø#5ð	 6ñ ô ð ð !Ô'ð OÝ$Ð%MÑNÔNÐNØ"Ô)ˆFØ"Ô)ˆFð "2Ð<Ð<Ð<ˆOØ.2Ð2ˆN˜^Ø"&Ð&ˆH�xØ<@Ð@Ð!Ð$9Øð Ý& v¤{°FÑ;Ô;�	Ø!*¤�Ø# 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ð ð Ø!Ð)Ð-BÐ-JÝ(ØSñô ð ð +Ð*ØØØ .Ø'/Ø"*Ø'<ðñ ô ð ð ˆMrÁ   r>   c                óv   — |j         }|dk    rdS t          |                      |¦  «        ¦  «        }|| j        v S )Nrw  F)rÿ  r‚  rÐ  rÍ  )rÈ   ri  rñ  Úobj_ids       r¿   Úrequires_key_order_guardingz(GuardBuilder.requires_key_order_guardingå  s@   € Ø”kˆØ˜"ÒÐØ�5Ý�D—H’H˜VÑ$Ô$Ñ%Ô%ˆØ˜Ô8Ð8Ð8rÁ   úAKeysView[Any] | set[Any] | frozenset[Any] | dict[Any, Any] | Nonec                ó^  — t           j        }|                      |¦  «        r‹t          |t          ¦  «        rt           j        }nit          |t          t          f¦  «        rt           j        }n@t          |t          ¦  «        st          dt          |¦  «        › �¦  «        ‚t           j        }|S )NrB  )r@  rG  r  r  r�   rZ  rê   Ú	frozensetr*  r  r  )rÈ   ri  r>  r?  s       r¿   rÛ  z#GuardBuilder.get_guard_manager_typeì  sª   € õ .Ô;ÐØ×+Ò+¨FÑ3Ô3ð 	Iå˜-­Ñ3Ô3ð 
IÝ%5Ô%HÐ"Ð"Ý˜M­CµÐ+;Ñ<Ô<ð Iõ &6Ô%CÐ"Ð"å! -µÑ6Ô6ð VÝ(Ð)T½tÀMÑ?RÔ?RÐ)TÐ)TÑUÔUÐUÝ%5Ô%HÐ"Ø!Ð!rÁ   Úmgr_enumc                ó"   — |t           j        k    S rÞ   )r@  rZ  )rÈ   r  s     r¿   Úmanager_guards_on_keysz#GuardBuilder.manager_guards_on_keys  s   € ØÕ+Ô>Ò>Ð>rÁ   c                ó|   — | j         j                             | j        d| j        d         t
          j        ¬¦  «        S )Nr·  )Ú	f_globalsri  r>  r?  )rb  rÛ   Úglobals_dict_managerr±  rÀ  r@  rG  rÇ   s    r¿   Úget_global_guard_managerz%GuardBuilder.get_global_guard_manager  s=   € ØÔ!Ô&×;Ò;ØÔ/ØØœ* Sœ/Ý/Ô=ð	 <ñ 
ô 
ð 	
rÁ   c           	     ó  ‡— | j         j        }d }‰j        }|dk    r|| j        v r| j        |         S |dk    r,|                      ‰¦  «        }|| j        t          |¦  «        <   |                      ‰|¦  «        }d }d }d }t          j	        }	t          ‰t          ¦  «        r[‰j        j        }|                      ‰j        ¦  «        }|                      ‰j        ¦  «        }|                      ‰j        |¦  «        }	t          ‰t          ¦  «        r<t!          | j        ‰j        ¦  «        }
|                     ‰j        |
f|||¬¦  «        }�n£t          ‰t(          ¦  «        r2|                      ¦   «                              ‰j        |||¬¦  «        }�n\t          ‰t0          ¦  «        r2|                      ¦   «                              ‰j        |||¬¦  «        }�nt          ‰t4          ¦  «        r|S t          ‰t6          ¦  «        r|S t          ‰t8          ¦  «        r+|st;          d¦  «        ‚|                     |||¬¦  «        }�n§t          ‰t>          ¦  «        r+|st;          d¦  «        ‚|                      |||¬¦  «        }�ngt          ‰tB          ¦  «        r+|st;          d¦  «        ‚| "                    |||¬¦  «        }�n't          ‰tF          tH          tJ          tL          tN          f¦  «        r|st;          d¦  «        ‚|}�
nät          ‰tP          ¦  «        r7tS          j*        ‰j+        ¦  «        }| ,                    |fd„|||¬¦  «        }�
n˜t          ‰tZ          ¦  «        r| ,                    ˆfd„|||¬¦  «        }�
net          ‰t\          ¦  «        r| ,                    ˆfd	„|||¬¦  «        }�
n2t          ‰t^          ¦  «        r+|st;          d¦  «        ‚| 0                    |||¬¦  «        }�	nòt          ‰tb          ¦  «        r1|st;          d¦  «        ‚| 2                    ‰j3        |||¬
¦  «        }�	n¬t          ‰th          tj          tl          f¦  «        r¢|st;          d¦  «        ‚t          ‰th          ¦  «        st;          dto          ‰¦  «        › �¦  «        ‚tq          |¦  «        r.|st;          d¦  «        ‚|  9                    ‰||||||¦  «        }�	n| :                    ‰j3        |||¬
¦  «        }�nèt          ‰tv          tx          f¦  «        �r#|st;          d¦  «        ‚t          |tz          t|          j?        f¦  «        st;          dto          |¦  «        › �¦  «        ‚t          ‰tv          tx          f¦  «        st;          dto          ‰¦  «        › �¦  «        ‚t          |t€          ¦  «        r9|  A                    |	¦  «        st;          d¦  «        ‚t…          ‰||||¦  «        }�nñt          ‰jC        tˆ          ¦  «        rt‹          d¦  «        ‚|                     ‰jC        |||¬¦  «        }�n¨t          ‰tŒ          ¦  «        rD t�          |d‰jH        j         I                    ¦   «         › d�¦  «        ‰jJ        |||¬¦  «        }�nOt          ‰t–          ¦  «        r1|st;          d¦  «        ‚| L                    ‰jJ        |||¬¦  «        }�n	t          ‰tš          ¦  «        r1|st;          d¦  «        ‚| N                    ‰jC        |||¬¦  «        }�nÃt          ‰tž          ¦  «        rö|st;          d¦  «        ‚t          |tz          t|          j?        f¦  «        rt;          d¦  «        ‚t          |t           ¦  «        r'‰jQ        s | N                    ‰jC        |||¬¦  «        }�n1t          |t¤          ¦  «        r'‰jQ        s | S                    ‰jC        |||¬¦  «        }�nõ‰jC        }‰jQ        r‰ T                    ¦   «         }| U                    ||||¬¦  «        }�n¸t          ‰t¬          ¦  «        �r|st;          d¦  «        ‚|st;          d¦  «        ‚t¯          |¦  «        st;          d¦  «        ‚‰jX        sE| Y                    ||jZ        t          j	        ¬¦  «         U                    ‰j[        |||¬¦  «        }�n|j\        }|€t;          d¦  «        ‚|dz   }| ]                    ||t          j	        ¬¦  «        }t          |t€          ¦  «        rt;          d¦  «        ‚|                     ‰j[        |||¬¦  «        }�n“t          ‰t¼          ¦  «        r1|st;          d¦  «        ‚| ,                    t¾          |||¬¦  «        }�nMt          ‰tÀ          ¦  «        r-|st;          d¦  «        ‚| ,                    d„ |||¬¦  «        }�nt          ‰tÂ          ¦  «        r-|st;          d¦  «        ‚| ,                    d„ |||¬¦  «        }�nÉt          ‰tÄ          ¦  «        r-|st;          d¦  «        ‚| ,                    d„ |||¬¦  «        }�n‡t          ‰tÆ          ¦  «        r-|st;          d¦  «        ‚| ,                    d„ |||¬¦  «        }�nEt          ‰tÈ          ¦  «        r-|st;          d¦  «        ‚| ,                    d„ |||¬¦  «        }�nt          ‰tÊ          ¦  «        r-|st;          d¦  «        ‚| ,                    d„ |||¬¦  «        }�nÁt          ‰tÌ          ¦  «        r1|st;          d¦  «        ‚| g                    ‰jC        |||¬¦  «        }�n{t          ‰tˆ          ¦  «        rDt          |t€          ¦  «        st;          d ¦  «        ‚| h                    ‰jC        |||¬¦  «        }�n"t          ‰tÒ          ¦  «        r1|st;          d¦  «        ‚| j                    ‰jC        |||¬¦  «        }�nÜt          ‰tÖ          ¦  «        r+|st;          d¦  «        ‚| l                    |||¬¦  «        }�nœt          ‰tÚ          ¦  «        r+|st;          d¦  «        ‚| n                    |||¬¦  «        }�n\t          ‰tÞ          ¦  «        r-|st;          d¦  «        ‚| ,                    d!„ |||¬¦  «        }�nt          ‰tà          ¦  «        r,|st;          d¦  «        ‚| ,                    d"„ |||¬¦  «        }nÙt          ‰tâ          ¦  «        r*|st;          d¦  «        ‚| r                    |||¬¦  «        }nšt          ‰tæ          ¦  «        r*|st;          d¦  «        ‚| t                    |||¬¦  «        }n[t          ‰tê          ¦  «        r,|st;          d¦  «        ‚| ,                    d#„ |||¬¦  «        }nt;          d$‰› d%‰j        › �¦  «        ‚|| j        ‰j        <   |S )&Nrw  rÙ  )Úglobal_nameri  r>  r?  z#base_guard_manager must not be Nonerû  c                ó   — |S rÞ   r\  )rº  r¡  s     r¿   r¸  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>t  s   € °!€ rÁ   )Úpython_lambdari  r>  r?  c                óF   •— t          ‰                     ¦   «         ¦  «        S rÞ   )r�   Ú
_get_index©rº  ri  s    €r¿   r¸  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>{  s!   ø€ Õ(HØ×%Ò%Ñ'Ô'ñ)ô )€ rÁ   c                ó,   •— t          ‰j        ¦  «        S rÞ   )rŽ   rÊ  r$  s    €r¿   r¸  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>„  s   ø€ Õ(:¸6¼=Ñ(IÔ(I€ rÁ   rø  zExpected AttrSource, got z"base_source_name must not be emptyz"Expected dict or OrderedDict, got z=Expected DictGetItemSource or DictSubclassGetItemSource, got z#DictGuardManager must guard on keyszUExpecting clean index here. Likely Dynamo forgot to mark a dict as guard_on_key_orderÚtensor_property_Ú_manager)rq  ri  r>  r?  zUse DictGetItemSourcez#base_example_value must be callablez!base_source_name must not be Nonez.__kwdefaults__z,Expected non-DictGuardManager for kwdefaultsc                ó6   — |                       ¦   «         d         S rõ   ©rg  rÂ  s    r¿   r¸  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>D  s   € ¨×(<Ò(<Ñ(>Ô(>¸qÔ(A€ rÁ   c                ó*   — |                       ¦   «         S rÞ   )Ú__obj_flatten__rÂ  s    r¿   r¸  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>M  s   € ¨×(9Ò(9Ñ(;Ô(;€ rÁ   c                óN   — |                       ¦   «                              ¦   «         S rÞ   )Ú_typeÚqualified_namerÂ  s    r¿   r¸  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>V  s   € ¨¯ª©	¬	×(@Ò(@Ñ(BÔ(B€ rÁ   c                ó*   — |                       ¦   «         S rÞ   )Úget_baserÂ  s    r¿   r¸  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>_  s   € ¨¯
ª
©¬€ rÁ   c                ó*   — |                       ¦   «         S rÞ   )ÚitemrÂ  s    r¿   r¸  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>h  s   € ¨¯ª©¬€ rÁ   c                ó*   — t          j        | ¦  «        S rÞ   )r;  r×  rÂ  s    r¿   r¸  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>q  s   € ­Ô(AÀ!Ñ(DÔ(D€ rÁ   rD  z4ConstDictKeySource can only work on DictGuardManagerc                ó    — t          | ¦  «        S rÞ   )rŒ   rÂ  s    r¿   r¸  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>§  s   € Õ(8¸Ñ(;Ô(;€ rÁ   c                ó   — | j         S rÞ   rÀ  rÂ  s    r¿   r¸  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>°  s   € ¨¬	€ rÁ   c                ó    — t          | ¦  «        S rÞ   )r·   rÂ  s    r¿   r¸  z<GuardBuilder.get_guard_manager_from_source.<locals>.<lambda>É  s   € ­¨A©¬€ rÁ   zmissing guard manager builder z - )vrb  rÛ   rÿ  rÑ  rÐ  rÌ  r‚  rÛ  r@  rG  r  r[   r  Úget_guard_manager_from_sourcer’   rq   rÀ   r¦  Ú
local_nameÚframelocals_managerrk   r  rÜ  r  rm   Úglobal_weakref_managerrl   rx   r~   r  Útype_managerr|   Útype_dict_managerr}   Útype_mro_managerrv   rs   r€   r   rh   ro   rÓ  rÔ  Úmodule_nameÚlambda_managerrz   r`   rn   Úgrad_managerri   Úgeneric_getattr_managerrü  rW   rZ   r�   r  r4  r  r   rc   rd   r*  rÍ  rÎ  r   r  rN  r¼   r_   ÚRuntimeErrorr4   ÚgetattrÚpropÚlowerrq  r-   Úindexed_managerrp   Úlist_getitem_managerrj   r÷  Úindex_is_slicerJ  Útuple_getitem_managerÚunpack_sliceÚgetitem_managerrb   ÚcallableÚis_kwÚfunc_defaults_managerr«   Úidx_keyr¬   Úfunc_kwdefaults_managerru   rš  ry   rf   rw   rV   rY   rg   r{   Útuple_iterator_getitem_managerrF  rt   Úset_getitem_managerr‚   Úweakref_call_managerrX   Úcall_function_no_args_managerra   rr   r]   Úcode_managerr\   Úclosure_managerre   )rÈ   ri  Úroot_guard_managerr>  rñ  r?  rJ  r=  r<  Úbase_guard_manager_enumr¾   ÚoutÚmoduler¼   Ú
kwdefaultsÚ	kw_sourcerÝ  s    `               r¿   r7  z*GuardBuilder.get_guard_manager_from_source  s5  ø€ Ø!Ô/Ô4ÐàˆØ”kˆà˜"ÒÐ °Ô0KÐ!KÐ!KØÔ.¨{Ô;Ð;à˜"ÒÐØ ŸHšH VÑ,Ô,ˆMØ8EˆDÔ"¥2 mÑ#4Ô#4Ñ5à!×8Ò8¸ÀÑOÔOÐð  ÐØ!ÐØ!ÐÝ"2Ô"@ÐÝ�f�mÑ,Ô,ð 	Ø%œ{Ô/ÐØ!%§¢¨&¬+Ñ!6Ô!6ÐØ!%×!CÒ!CÀFÄKÑ!PÔ!PÐØ&*×&AÒ&AØ”Ð/ñ'ô 'Ð#õ
 �&�+Ñ&Ô&ð d	Ý1°$´+¸vÔ?PÑQÔQˆOØ$×8Ò8ØÔ&¨Ð8Ø"Ø+Ø#5ð	 9ñ ô ˆC‰Cõ �F�LÑ)Ô)ð \	ð ×/Ò/Ñ1Ô1×FÒFØÔ&Ø"Ø+Ø#5ð	 Gñ ô ˆC‰Cõ �FÕ/Ñ0Ô0ð R	Ø×/Ò/Ñ1Ô1×HÒHØ"Ô.Ø"Ø+Ø#5ð	 Iñ ô ˆC‰Cõ �FÕ-Ñ.Ô.ð K	ð &Ð%Ý�F�NÑ+Ô+ð G	Ø%Ð%Ý�F�JÑ'Ô'ð E	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×1Ò1Ø"Ø+Ø#5ð 2ñ ô ˆC‰Cõ
 �F�NÑ+Ô+ð }	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×6Ò6Ø"Ø+Ø#5ð 7ñ ô ˆC‰Cõ
 �F�MÑ*Ô*ð u	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×5Ò5Ø"Ø+Ø#5ð 6ñ ô ˆC‰Cõ
 ØåÝÝ+Ý2Ý"ðñ	
ô 	
ð m	ð &ð LÝ$Ð%JÑKÔKÐKØ$ˆC‰CÝ�F�LÑ)Ô)ð `	ÝÔ,¨VÔ-?Ñ@Ô@ˆFØ$×3Ò3Ø*0Ð3Ð3Ð3Ø"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �FÕ8Ñ9Ô9ð X	Ø$×3Ò3ðð ð ð ð #Ø+Ø#5ð 4ñ ô ˆC‰Cõ �FÕ/Ñ0Ô0ð O	Ø$×3Ò3ØIÐIÐIÐIØ"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �F�JÑ'Ô'ð H	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×1Ò1Ø"Ø+Ø#5ð 2ñ ô ˆC‰Cõ
 �FÕ-Ñ.Ô.ð @	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×<Ò<Ø”]Ø"Ø+Ø#5ð	 =ñ ô ˆC‰Cõ Ø•ZÕ!3Õ5SÐTñ
ô 
ð w	ð &ð LÝ$Ð%JÑKÔKÐKÝ˜f¥jÑ1Ô1ð QÝ$Ð%OÅÀfÁÄÐ%OÐ%OÑPÔPÐPÝ3Ð4FÑGÔGð Ø'ð OÝ(Ð)MÑNÔNÐNØ×/Ò/ØØ&Ø&Ø!Ø$ØØ&ñô �‘ð )×8Ò8ØœØ&Ø"/Ø'9ð	 9ñ ô �‘õ �FÕ.Õ0IÐJÑKÔKñ ]	Ø%ð LÝ$Ð%JÑKÔKÐKÝÐ0µ4½Ô9PÐ2QÑRÔRð Ý$ØS½Ð>PÑ9QÔ9QÐSÐSñô ð õ ˜fÕ'8Õ:SÐ&TÑUÔUð Ý$ØbÕTXÐY_ÑT`ÔT`ÐbÐbñô ð õ Ð,Õ.>Ñ?Ô?ð Ø×2Ò2Ð3JÑKÔKð PÝ(Ð)NÑOÔOÐOÝ-ØØ&Ø&Ø!Ø&ñô �‘õ ˜fœlÕ,>Ñ?Ô?ð Ý&ð8ñô ð ð )×=Ò=ØœØ&Ø"/Ø'9ð	 >ñ ô �‘õ �FÕ0Ñ1Ô1ð |	ð•'Ø"ØE 6¤;Ô#3×#9Ò#9Ñ#;Ô#;ÐEÐEÐEñô ð ”JØ"Ø+Ø#5ðñ ô ˆC‰Cõ �F�MÑ*Ô*ð r	Ø%ð LÝ$Ð%JÑKÔKÐKà$×4Ò4Ø”JØ"Ø+Ø#5ð	 5ñ ô ˆC‰Cõ �FÕ-Ñ.Ô.ð h	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×9Ò9Ø”LØ"Ø+Ø#5ð	 :ñ ô ˆC‰Cõ �F�MÑ*Ô*ð _	Ø%ð LÝ$Ð%JÑKÔKÐKÝÐ,­tµ[Ô5LÐ.MÑNÔNð >Ý$Ð%<Ñ=Ô=Ð=ÝÐ,­dÑ3Ô3ð ¸FÔ<Qð Ø(×=Ò=ØœØ&Ø"/Ø'9ð	 >ñ ô �‘õ Ð.µÑ6Ô6ð ¸vÔ?Tð Ø(×>Ò>ØœØ&Ø"/Ø'9ð	 ?ñ ô �‘ð œ�ØÔ(ð 2Ø"×/Ò/Ñ1Ô1�EØ(×8Ò8ØØ&Ø"/Ø'9ð	 9ñ ô �‘õ �F�NÑ+Ô+ñ B	Ø%ð LÝ$Ð%JÑKÔKÐKØ#ð KÝ$Ð%IÑJÔJÐJÝÐ.Ñ/Ô/ð LÝ$Ð%JÑKÔKÐKØ”<ð  Ø(×>Ò>Ø+Ø"4Ô"AÝ'7Ô'Eð ?ñ ô ÷ "’/ØœØ&Ø"/Ø'9ð	 "ñ ô ð	 ‘ð 0Ô>�
Ø#Ð+Ý(Ð)LÑMÔMÐMØ,Ð/@Ñ@�	ð .×EÒEØ$Ø",Ý'7Ô'Eð Fñ ô �õ
 ˜hÕ(8Ñ9Ô9ð YÝ(Ð)WÑXÔXÐXà×3Ò3ØœØ&Ø"/Ø'9ð	 4ñ ô �‘õ �FÕ-Ñ.Ô.ð Z	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×3Ò3Ý(Ø"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �FÕ2Ñ3Ô3ð Q	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×3Ò3ØAÐAØ"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �FÕ5Ñ6Ô6ð H	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×3Ò3Ø;Ð;Ø"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �FÕ;Ñ<Ô<ð 	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×3Ò3ØBÐBØ"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �F�OÑ,Ô,ð v	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×3Ò3Ø4Ð4Ø"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �FÕ0Ñ1Ô1ð m	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×3Ò3Ø0Ð0Ø"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �FÕ-Ñ.Ô.ð d	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×3Ò3ØDÐDØ"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �FÕ6Ñ7Ô7ð [	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×CÒCØ”lØ"Ø+Ø#5ð	 Dñ ô ˆC‰Cõ ˜Õ 2Ñ3Ô3ð R	ÝÐ0Õ2BÑCÔCð Ý$ØJñô ð ð %×4Ò4Ø”lØ"Ø+Ø#5ð	 5ñ ô ˆC‰Cõ �FÕ;Ñ<Ô<ð G	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×8Ò8Ø”lØ"Ø+Ø#5ð	 9ñ ô ˆC‰Cõ �FÕ-Ñ.Ô.ð >	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×9Ò9Ø"Ø+Ø#5ð :ñ ô ˆC‰Cõ
 �FÕ4Ñ5Ô5ð 6	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×BÒBØ"Ø+Ø#5ð Cñ ô ˆC‰Cõ
 �FÕ1Ñ2Ô2ð .	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×3Ò3Ø;Ð;Ø"Ø+Ø#5ð	 4ñ ô ˆC‰Cõ �FÕ2Ñ3Ô3ð %	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×3Ò3Ø1Ð1Ø"Ø+Ø#5ð	 4ñ ô ˆCˆCõ �F�JÑ'Ô'ð 	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×1Ò1Ø"Ø+Ø#5ð 2ñ ô ˆCˆCõ
 �F�MÑ*Ô*ð 	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×4Ò4Ø"Ø+Ø#5ð 5ñ ô ˆCˆCõ
 �FÕ/Ñ0Ô0ð 	Ø%ð LÝ$Ð%JÑKÔKÐKØ$×3Ò3Ø.Ð.Ø"Ø+Ø#5ð	 4ñ ô ˆCˆCõ !ØI°ÐIÐI¸F¼KÐIÐIñô ð ð 47ˆÔ# F¤KÑ0Øˆ
rÁ   c                ó6   — |                       |j        ¦  «        S rÞ   )r7  rù  ©rÈ   rW  s     r¿   rÚ  zGuardBuilder.get_guard_managerÖ  s   € Ø×1Ò1°%Ô2JÑKÔKÐKrÁ   Trâ   rX  rã   rà   Úis_epiloguec                óÚ  — |€t          ¦   «         }d                     |                     ¦   «         ¦  «        }t          ||¦  «        \  }}i }d| j        d         i}	t
                               d|¦  «         t          ||	|¦  «          |d         |                     ¦   «         Ž }
|r#| j	        j
                             |
|d ¦  «         d S | j	        j
                             |
|d ¦  «         d S )Nrf  r·  zPython shape guard function:
%sÚ___make_guard_fn)rØ  Újoinrÿ  Úbuild_guard_functionrÀ  Ú
guards_logÚdebugÚexecr,  rb  rÛ   Úadd_epilogue_lambda_guardÚadd_lambda_guard)rÈ   râ   rã   rà   r_  Úmake_guard_fn_argsÚ_guard_bodyÚpycoderY  Úglobals_for_guard_fnry  s              r¿   Ú$add_python_lambda_leaf_guard_to_rootz1GuardBuilder.add_python_lambda_leaf_guard_to_rootÙ  s  € ð ÐÝ,Ñ.Ô.ˆLð "ŸYšY |×'8Ò'8Ñ':Ô':Ñ;Ô;ÐÝ2°:Ð?QÑRÔRÑˆ�VØ ˆØ # T¤Z°¤_Ð5ÐÝ×ÒÐ;¸VÑDÔDÐDÝˆVÐ)¨3Ñ/Ô/Ð/Ø*�3Ð)Ô*¨L×,?Ò,?Ñ,AÔ,AÐBˆØð 
	Yð ÔÔ#×=Ò=ØØ"Øñô ð ð ð ð ÔÔ#×4Ò4°XÐ?QÐSWÑXÔXÐXÐXÐXrÁ   Úguard_or_sourceúGuard | Sourceúdict[str, Any] | Nonec                ó¦   — t          |t          ¦  «        r|}n|j        }|€t          ¦   «         }|                     | j        || j        ¦  «        }|S rÞ   )r  r>   rù  rØ  Ú	get_valuerÀ  rÁ  )rÈ   rn  rà   ÚsrcÚrets        r¿   rÐ  zGuardBuilder.getþ  sU   € õ
 �o¥vÑ.Ô.ð 	5Ø!ˆCˆCà!Ô4ˆCØÐÝ,Ñ.Ô.ˆLØ�mŠm˜DœJ¨°dÔ6NÑOÔOˆØˆ
rÁ   ústr | Guardc                ó6  — t          |t          ¦  «        r|}n|j        }t          |¦  «        }|| j        vrat
          j        j                             |¦  «        }|r;|dk    rt           
                    d|¦  «         | j                             |¦  «         |S )NrY  zinvalid var name: %s)r  rµ   rÿ  Ústrip_function_callrÈ  r;  r  r¥  Úis_valid_var_nameÚlogÚwarningrˆ  )rÈ   rW  rÿ  r  Úis_valids        r¿   Úarg_refzGuardBuilder.arg_ref  s•   € å�e�SÑ!Ô!ð 	ØˆDˆDà”:ˆDÝ" 4Ñ(Ô(ˆØ�t”}Ð$Ð$Ý”xÔ'×9Ò9¸$Ñ?Ô?ˆHØð +Ø˜q’=�=Ý—K’KÐ 6¸Ñ>Ô>Ð>Ø”×$Ò$ TÑ*Ô*Ð*àˆrÁ   r  ry  ú(Callable[[GuardBuilderBase, Guard], Any]c                óÊ   — |dk    rt          |j        ¦  «        }nt          |j        |¦  «        }t          |||j        |j        ¬¦  «        }|                     | ¦  «         d S )Nr­   )rë  rè  )r]   rù  rW   r:   rë  rè  Úcreate)rÈ   rW  r  ry  Úattr_sourceÚ	new_guards         r¿   Ú_guard_on_attributez GuardBuilder._guard_on_attribute!  sq   € ð ˜
Ò"Ð"Ý$ UÔ%=Ñ>Ô>ˆKˆKå$ UÔ%=¸yÑIÔIˆKåØ˜¨¬ÀÔAQð
ñ 
ô 
ˆ	ð 	×Ò˜ÑÔÐÐÐrÁ   c                óf   — | j         j        d         t          || j         j        d         ¦  «        fS ©Nrù  )Ú	create_fnÚkeywordsry  rq  s     r¿   r¸  zGuardBuilder.<lambda>4  s-   € ØŒOÔ$ VÔ,Ý�E˜5œ?Ô3°FÔ;Ñ<Ô<ð.
€ rÁ   c                óB   — t          | |d         ¦  «        |d         k    S ©Nr   rQ   )ry  rv  s     r¿   r¸  zGuardBuilder.<lambda>8  s   € ­°°xÀ´{Ñ(CÔ(CÀxÐPQÄ{Ò(R€ rÁ   rŒ  rù  rd  c           	     óx  — |€t          d¦  «        ‚|j        }t          |t          ¦  «        r|j        }|                      |¦  «        }t          |                      |¦  «        |¦  «        }d }|r
d|› d|›d�}n	d|› d|›d�}|| j        v rd S |  	                    ||g|                      |¦  «        ¬¦  «         |  
                    |¦  «        }|r¤t          ||¦  «        }|                      |¦  «        }	|                      |¦  «        }
|                      ||	¦  «        }t          |
¦  «        r&|                      |||
|	|j        |j        |¦  «         nI|                     ||j        |	|¬¦  «         n*|                     |t%          ||¦  «        |j        ¦  «         | j                             |¦  «         d S )Nz'attr must not be None for HASATTR guardúhasattr(rf  rg  znot hasattr()Úprovided_guarded_objectrø  )r  rù  r  rs   r  r|  ry  rÐ  rÕ  Ú_set_guard_export_infor7  rW   rÛ  r4  r  rÿ  r   Úadd_no_hasattr_guardrû  rè  rû   )rÈ   rW  rù  ri  ÚrefÚvalr²   Úbase_managerr€  r>  r=  r?  s               r¿   ÚHASATTRzGuardBuilder.HASATTR3  s  € ð ˆ<Ý Ð!JÑKÔKÐKØÔ)ˆÝ�f�nÑ-Ô-ð 	!Ø”[ˆFà�lŠl˜5Ñ!Ô!ˆÝ�d—h’h˜u‘o”o tÑ,Ô,ˆØˆØð 	3Ø.˜cÐ.Ð. TÐ.Ð.Ð.ˆDˆDà2 #Ð2Ð2¨Ð2Ð2Ð2ˆDà�4Ô0Ð0Ð0ØˆFà×#Ò#Ø�D�6°4·8²8¸E±?´?ð 	$ñ 	
ô 	
ð 	
ð ×9Ò9¸&ÑAÔAˆØð 	õ % V¨TÑ2Ô2ˆKØ ŸHšH [Ñ1Ô1ˆMØ!%§¢¨%¡¤ÐØ!%×!<Ò!<¸[È-Ñ!XÔ!XÐõ 4Ð4FÑGÔGð Ø×)Ò)ØØ Ø&Ø!Ø”KØÔ$Ø&ñô ð ð ð ×,Ò,ØØ œ:Ø"/Ø'9ð	 -ñ ô ð ð ð ×-Ò-ØÕ,¨T°5Ñ9Ô9¸5Ô;Kñô ð ð 	Ô%×)Ò)¨$Ñ/Ô/Ð/Ð/Ð/rÁ   c                ó&   — | j         j        d         S r„  ©r…  r†  rq  s     r¿   r¸  zGuardBuilder.<lambda>s  s   € ¨U¬_Ô-EÀfÔ-M€ rÁ   c                ó   — || j         vS rÞ   )rÃ  rv  s     r¿   r¸  zGuardBuilder.<lambda>t  s   € ¨¸¼Ð(F€ rÁ   c                óà  — |€t          d¦  «        ‚|                      |¦  «        }|                      |¦  «        }|                      |¦  «        }d|›d|› d�}|| j        v rd S |j        › d�}|                     ||                      |j        ¦  «        t          j
        ¬¦  «        }|                     d|t          ||¦  «        |j        ¦  «         | j                             |¦  «         d S )Nz;attr must not be None for NOT_PRESENT_IN_GENERIC_DICT guardúnot ___dict_contains(rf  z
.__dict__)rú  rû  F)r  r|  rÐ  rÚ  rÕ  rÿ  r  rð  rÃ  r@  rG  Úadd_dict_contains_guardrû  rè  rû   )	rÈ   rW  rù  rŽ  r�  r�  r²   r  r  s	            r¿   ÚNOT_PRESENT_IN_GENERIC_DICTz(GuardBuilder.NOT_PRESENT_IN_GENERIC_DICTr  s  € ð ˆ<Ý ØMñô ð ð �lŠl˜5Ñ!Ô!ˆØ�hŠh�u‰oŒoˆà×-Ò-¨eÑ4Ô4ˆà@ tÐ@Ð@°Ð@Ð@Ð@ˆØ�4Ô0Ð0Ð0ØˆFà"œZÐ2Ð2Ð2ˆØ#/×#HÒ#HØ"Ø×FÒFÀsÄ|ÑTÔTÝ/Ô=ð $Iñ $
ô $
Ð ð 	!×8Ò8ØØÝ" 4¨Ñ/Ô/ØÔñ		
ô 	
ð 	
ð 	Ô%×)Ò)¨$Ñ/Ô/Ð/Ð/Ð/rÁ   c                ó    — t          |¦  «        S rÞ   ©r  rq  s     r¿   r¸  zGuardBuilder.<lambda>–  s   € ­T°%©[¬[€ rÁ   c                ó$   — t          | ¦  «        |u S rÞ   rš  rv  s     r¿   r¸  zGuardBuilder.<lambda>—  s   € ­¨U©¬°xÐ(?€ rÁ   c           	     ó,  — |                       |¦  «        }t          |t          j        j        ¦  «        r|j        r|j        }nt          |¦  «        }|j        |j        k    rd|_	        |  
                    |d|j        › d�¦  «        }t          |¦  «        }d|                      |¦  «        › d|› d|› �}|                      ||g¦  «         |                      |¦  «                             |t#          ||d|j        › �¬¦  «        |j        ¦  «         d S )	NTútype(rg  z___check_type_id(rf  ú), type=útype ©rñ  )rÐ  r  r;  Ú_subclassesÚ
FakeTensorr  r  rÖ   rÔ   Ú_unserializabler§  rÿ  rä  r|  rŒ  rÚ  Úadd_type_match_guardrû  rè  ©rÈ   rW  r  rj  r  Ú	type_reprr²   s          r¿   Ú
TYPE_MATCHzGuardBuilder.TYPE_MATCH•  s/  € ð —’˜‘”ˆÝ�e�UÔ.Ô9Ñ:Ô:ð 	¸u¼|ð 	Ø”ˆAˆAå�U‘”ˆAàŒ>˜QœZÒ'Ð'ð %)ˆEÔ!à—’˜QÐ 5¨¬
Ð 5Ð 5Ð 5Ñ6Ô6ˆÝ# AÑ&Ô&ˆ	ØU 4§<¢<°Ñ#6Ô#6ÐUÐU¸&ÐUÐUÈ)ÐUÐUˆØ×#Ò# E¨D¨6Ñ2Ô2Ð2à×Ò˜uÑ%Ô%×:Ò:ØÝ"Ø�eÐ,D°A´NÐ,DÐ,Dðñ ô ð Ôñ	
ô 	
ð 	
ð 	
ð 	
rÁ   c                óX   — t          t          |t          ¦  «        r|j        n|¦  «        S rÞ   ©r  r  rB   Úreal_objrq  s     r¿   r¸  zGuardBuilder.<lambda>´  s)   € ­TÝ(¨Õ0@ÑAÔAÐLˆEŒNˆNÀuñ.
ô .
€ rÁ   c                ó\   — t          t          | t          ¦  «        r| j        n| ¦  «        |u S rÞ   r©  rv  s     r¿   r¸  zGuardBuilder.<lambda>·  s3   € ­Ý(¨Õ0@ÑAÔAÐLˆEŒNˆNÀuñ)
ô )
ð ð)€ rÁ   c           
     ó0  — |                       |¦  «        }t          |t          ¦  «        rt          |j        ¦  «        }nt          |¦  «        }|j        |j        k    rd|_        |                      |d|j	        › d�¦  «        }t          |¦  «        }d|                      |¦  «        › d|› d|› �}|                      ||g¦  «         |                      |¦  «                             t          |t          ||d|j        › �¬¦  «        |j        ¦  «         d S )	NTr�  rg  z___check_fake_script_type(rf  rž  rŸ  r   )rÐ  r  rB   r  rª  rÖ   rÔ   r£  r§  rÿ  rä  r|  rŒ  rÚ  Ú add_fake_script_type_match_guardrû  rè  r¥  s          r¿   ÚFAKE_SCRIPT_TYPE_MATCHz#GuardBuilder.FAKE_SCRIPT_TYPE_MATCH³  s+  € ð —’˜‘”ˆÝ�eÕ-Ñ.Ô.ð 	Ý�U”^Ñ$Ô$ˆAˆAå�U‘”ˆAàŒ>˜QœZÒ'Ð'Ø$(ˆEÔ!à—’˜QÐ 5¨¬
Ð 5Ð 5Ð 5Ñ6Ô6ˆÝ# AÑ&Ô&ˆ	Ø^¨D¯LªL¸Ñ,?Ô,?Ð^Ð^À6Ð^Ð^ÐS\Ð^Ð^ˆØ×#Ò# E¨D¨6Ñ2Ô2Ð2à×Ò˜uÑ%Ô%×FÒFÝØÝ"Ø�eÐ,D°A´NÐ,DÐ,Dðñ ô ð Ôñ	
ô 	
ð 	
ð 	
ð 	
rÁ   c                óV  — |                       |¦  «        }|                      |¦  «        }t          |                      |¦  «        ¦  «        }d|› d|› �}|                      ||g¦  «         |                      |¦  «                             |t          ||¦  «        |j        ¦  «         d S )Nz___dict_version(ú) == )r|  rÐ  r   rŒ  rÚ  Úadd_dict_version_guardrû  rè  )rÈ   rW  rŽ  r�  Úversionr²   s         r¿   ÚDICT_VERSIONzGuardBuilder.DICT_VERSIONÚ  s¯   € ð �lŠl˜5Ñ!Ô!ˆØ�hŠh�u‰oŒoˆÝ˜tŸxšx¨™œÑ/Ô/ˆØ5 #Ð5Ð5¨GÐ5Ð5ˆØ×#Ò# E¨D¨6Ñ2Ô2Ð2ð 	×Ò˜uÑ%Ô%×<Ò<ØÕ'¨¨eÑ4Ô4°eÔ6Fñ	
ô 	
ð 	
ð 	
ð 	
rÁ   c                ó&   — | j         j        d         S ©Nr"  r“  rq  s     r¿   r¸  zGuardBuilder.<lambda>ê  ó   € ¨U¬_Ô-EÀeÔ-L€ rÁ   c                ó
   — || v S rÞ   r\  rv  s     r¿   r¸  zGuardBuilder.<lambda>ë  ó   € ¨°EÐ(9€ rÁ   r"  c                ó6  — |                       |¦  «        }d|›d|› d�}|| j        v rd S |                      ||g¦  «         |                      |¦  «                             d|t          ||¦  «        |j        ¦  «         | j                             |¦  «         d S )Nz___dict_contains(rf  rg  T©r|  rÕ  rŒ  rÚ  r—  rû  rè  rû   ©rÈ   rW  r"  Údict_refr²   s        r¿   ÚDICT_CONTAINSzGuardBuilder.DICT_CONTAINSé  s¶   € ð
 —<’< Ñ&Ô&ˆà7 3Ð7Ð7¨HÐ7Ð7Ð7ˆØ�4Ô0Ð0Ð0ØˆFØ×#Ò# E¨D¨6Ñ2Ô2Ð2à×Ò˜uÑ%Ô%×=Ò=ØØÝ" 4¨Ñ/Ô/ØÔñ		
ô 	
ð 	
ð 	Ô%×)Ò)¨$Ñ/Ô/Ð/Ð/Ð/rÁ   c                ó&   — | j         j        d         S rµ  r“  rq  s     r¿   r¸  zGuardBuilder.<lambda>þ  r¶  rÁ   c                ó
   — || vS rÞ   r\  rv  s     r¿   r¸  zGuardBuilder.<lambda>ÿ  ó   € ¨¸Ð(=€ rÁ   c                ó6  — |                       |¦  «        }d|›d|› d�}|| j        v rd S |                      ||g¦  «         |                      |¦  «                             d|t          ||¦  «        |j        ¦  «         | j                             |¦  «         d S )Nr–  rf  rg  Frº  r»  s        r¿   ÚDICT_NOT_CONTAINSzGuardBuilder.DICT_NOT_CONTAINSý  s¶   € ð
 —<’< Ñ&Ô&ˆà; sÐ;Ð;°Ð;Ð;Ð;ˆØ�4Ô0Ð0Ð0ØˆFØ×#Ò# E¨D¨6Ñ2Ô2Ð2à×Ò˜uÑ%Ô%×=Ò=ØØÝ" 4¨Ñ/Ô/ØÔñ		
ô 	
ð 	
ð 	Ô%×)Ò)¨$Ñ/Ô/Ð/Ð/Ð/rÁ   c                ó&   — | j         j        d         S rµ  r“  rq  s     r¿   r¸  zGuardBuilder.<lambda>	  r¶  rÁ   c                ó
   — || v S rÞ   r\  rv  s     r¿   r¸  zGuardBuilder.<lambda>	  r¸  rÁ   c                ó:  — |                       |¦  «        }|}d|› d|›d�}|| j        v rd S |                      ||g¦  «         |                      |¦  «                             d|t          ||¦  «        |j        ¦  «         | j                             |¦  «         d S )Nzset.__contains__(rf  rg  T©r|  rÕ  rŒ  rÚ  Úadd_set_contains_guardrû  rè  rû   ©rÈ   rW  r"  Úset_refr2  r²   s         r¿   ÚSET_CONTAINSzGuardBuilder.SET_CONTAINS	  s»   € ð
 —,’,˜uÑ%Ô%ˆØˆà7 7Ð7Ð7¨dÐ7Ð7Ð7ˆØ�4Ô0Ð0Ð0ØˆFà×#Ò# E¨D¨6Ñ2Ô2Ð2à×Ò˜uÑ%Ô%×<Ò<ØØÝ" 4¨Ñ/Ô/ØÔñ		
ô 	
ð 	
ð 	Ô%×)Ò)¨$Ñ/Ô/Ð/Ð/Ð/rÁ   c                ó&   — | j         j        d         S rµ  r“  rq  s     r¿   r¸  zGuardBuilder.<lambda>(	  r¶  rÁ   c                ó
   — || vS rÞ   r\  rv  s     r¿   r¸  zGuardBuilder.<lambda>)	  rÀ  rÁ   c                ó:  — |                       |¦  «        }|}d|› d|›d�}|| j        v rd S |                      ||g¦  «         |                      |¦  «                             d|t          ||¦  «        |j        ¦  «         | j                             |¦  «         d S )Nznot set.__contains__(rf  rg  FrÆ  rÈ  s         r¿   ÚSET_NOT_CONTAINSzGuardBuilder.SET_NOT_CONTAINS'	  s»   € ð
 —,’,˜uÑ%Ô%ˆØˆà; wÐ;Ð;°$Ð;Ð;Ð;ˆØ�4Ô0Ð0Ð0ØˆFà×#Ò# E¨D¨6Ñ2Ô2Ð2à×Ò˜uÑ%Ô%×<Ò<ØØÝ" 4¨Ñ/Ô/ØÔñ		
ô 	
ð 	
ð 	Ô%×)Ò)¨$Ñ/Ô/Ð/Ð/Ð/rÁ   c                ó   — |S rÞ   r\  rq  s     r¿   r¸  zGuardBuilder.<lambda>>	  ó   € ¨U€ rÁ   c                ó   — | |k    S rÞ   r\  rv  s     r¿   r¸  zGuardBuilder.<lambda>?	  ó   € ¨°Ò(9€ rÁ   c                óö  — |                       |¦  «        }|                      |¦  «        }t          |t          ¦  «        st	          dt          |¦  «        › �¦  «        ‚|› d|›�g}|                      ||¦  «         |r>|                      |¦  «                             t          ||¦  «        |j
        ¦  «         d S |                      |¦  «                             t          ||¦  «        |j
        ¦  «         d S )NzExpected bool, got rE  )r|  rÐ  r’   rÌ   r  r  rŒ  rÚ  Úadd_true_match_guardrû  rè  Úadd_false_match_guard©rÈ   rW  rŽ  r�  r²   s        r¿   Ú
BOOL_MATCHzGuardBuilder.BOOL_MATCH=	  s  € ð �lŠl˜5Ñ!Ô!ˆØ�hŠh�u‰oŒoˆÝ�c�4Ñ Ô ð 	DÝ Ð!Bµt¸C±y´yÐ!BÐ!BÑCÔCÐCØÐ#Ð#˜CÐ#Ð#Ð$ˆØ×#Ò# E¨4Ñ0Ô0Ð0àð 	Ø×"Ò" 5Ñ)Ô)×>Ò>Ý& t¨UÑ3Ô3°UÔ5Eñô ð ð ð ð ×"Ò" 5Ñ)Ô)×?Ò?Ý& t¨UÑ3Ô3°UÔ5Eñô ð ð ð rÁ   c                ó   — d S rÞ   r\  rq  s     r¿   r¸  zGuardBuilder.<lambda>T	  ó   € ¨T€ rÁ   c                ó
   — | d u S rÞ   r\  rv  s     r¿   r¸  zGuardBuilder.<lambda>U	  s
   € ¨°¨€ rÁ   c                óL  — |                       |¦  «        }|                      |¦  «        }|�t          dt          |¦  «        › �¦  «        ‚|› d�g}|                      ||¦  «         |                      |¦  «                             t          ||¦  «        |j        ¦  «         d S )NzExpected None, got z is None)	r|  rÐ  r  r  rŒ  rÚ  Úadd_none_match_guardrû  rè  rÖ  s        r¿   Ú
NONE_MATCHzGuardBuilder.NONE_MATCHS	  s¯   € ð �lŠl˜5Ñ!Ô!ˆØ�hŠh�u‰oŒoˆØˆ?Ý Ð!Bµt¸C±y´yÐ!BÐ!BÑCÔCÐCØÐ Ð Ð Ð!ˆØ×#Ò# E¨4Ñ0Ô0Ð0à×Ò˜uÑ%Ô%×:Ò:Ý" 4¨Ñ/Ô/°Ô1Añ	
ô 	
ð 	
ð 	
ð 	
rÁ   c                ó   — |S rÞ   r\  rq  s     r¿   r¸  zGuardBuilder.<lambda>e	  rÐ  rÁ   c                ó
   — | |u S rÞ   r\  rv  s     r¿   r¸  zGuardBuilder.<lambda>f	  ó   € ¨°Ð(9€ rÁ   rñ  c                ó.   — |                       ||¦  «        S rÞ   )Úid_match_unchecked)rÈ   rW  rñ  s      r¿   ÚID_MATCHzGuardBuilder.ID_MATCHd	  s   € ð ×&Ò& u¨nÑ=Ô=Ð=rÁ   c                ó2  — t          |j        t          ¦  «        r7|                      t	          |j        j        t          j        ¦  «        ¦  «        S |                      |¦  «        }|                      |¦  «        }|  	                    ||j
        ¦  «        }t          t          j        |¦  «        r|nt          |¦  «        ¦  «        }d|› d|› d|› �}|                      ||gd¬¦  «         |                      |¦  «                             |t%          |||¦  «        |j        ¦  «         t          |j        t(          ¦  «        rNt          |t*          j        j        ¦  «        r1|j        j        }|                      |¦  «        }	|	�|	| j        |<   d S d S d S d S )Nz___check_obj_id(rf  rž  rã  )Úprovided_func_name)r  rù  r~   r§  r:   r  r¥  r|  rÐ  r§  rÿ  rä  rŸ  Úisclassr  rŒ  rÚ  râ  rû  rè  rq   r;  r@  rA  r8  r«  rè   )
rÈ   rW  rñ  rŽ  r�  rä  r¦  r²   r8  Úweak_ids
             r¿   râ  zGuardBuilder.id_match_uncheckedq	  sœ  € õ �eÔ.µ
Ñ;Ô;ð 	à—?’?Ý�eÔ.Ô3µ\Ô5LÑMÔMñô ð ð �lŠl˜5Ñ!Ô!ˆØ�hŠh�u‰oŒoˆØ—’˜S %¤*Ñ-Ô-ˆÝ#­7¬?¸3Ñ+?Ô+?Ð$N C CÅTÈ#ÁYÄYÑOÔOˆ	ØD #ÐDÐD¨ÐDÐD¸ÐDÐDˆØ×#Ò# E¨D¨6ÀjÐ#ÑQÔQÐQØ×Ò˜uÑ%Ô%×8Ò8ØÝ" 4¨°Ñ?Ô?ØÔñ	
ô 	
ð 	
õ �eÔ.µÑ<Ô<ð 	?õ ˜#�uœxœÑ/Ô/ð ?Ø"Ô5Ô@�
Ø×.Ò.¨sÑ3Ô3�ØÐ&Ø7>�DÔ(¨Ñ4Ð4Ð4ð	?ð 	?ð?ð ?ð 'Ð&rÁ   c                ó   — d S rÞ   r\  rq  s     r¿   r¸  zGuardBuilder.<lambda>”	  rÙ  rÁ   c                ó
   — | d uS rÞ   r\  rv  s     r¿   r¸  zGuardBuilder.<lambda>•	  ó   € ¨°TÐ(9€ rÁ   c                ó|  — |                       |¦  «        }|                      |¦  «        }t          |t          j        ¦  «        st          dt          |¦  «        › �¦  «        ‚|› d�}|                      ||g¦  «         |                      |¦  «         	                    t          ||¦  «        |j        ¦  «         d S )NúExpected torch.Tensor, got ú is not None)r|  rÐ  r  r;  r<  r  r  rŒ  rÚ  Úadd_not_none_guardrû  rè  )rÈ   rW  r  rŽ  r�  r²   s         r¿   ÚNOT_NONE_MATCHzGuardBuilder.NOT_NONE_MATCH“	  s¾   € ð
 �lŠl˜5Ñ!Ô!ˆØ�hŠh�u‰oŒoˆÝ˜#�uœ|Ñ,Ô,ð 	LÝ Ð!J½tÀC¹y¼yÐ!JÐ!JÑKÔKÐKØÐ#Ð#Ð#ˆØ×#Ò# E¨D¨6Ñ2Ô2Ð2à×Ò˜uÑ%Ô%×8Ò8Ý" 4¨Ñ/Ô/°Ô1Añ	
ô 	
ð 	
ð 	
ð 	
rÁ   c                ó*   — |                      ¦   «         S rÞ   ©Úraw_reprrq  s     r¿   r¸  zGuardBuilder.<lambda>¤	  s   € ¨U¯^ª^Ñ-=Ô-=€ rÁ   c                ó2   — |                       ¦   «         |k    S rÞ   rñ  rv  s     r¿   r¸  zGuardBuilder.<lambda>¥	  s   € ¨¯ªÑ(8Ô(8¸HÒ(D€ rÁ   c                ó`  — |                       |¦  «        }|                      |¦  «        }t          |t          j        j        ¦  «        st          dt          |¦  «        › �¦  «        ‚|› d|›d�}|                      |¦  «         	                    |t          ||¦  «        |j        ¦  «         d S )NzExpected DispatchKeySet, got z.raw_repr() == z.raw_repr())r|  rÐ  r  r;  r  r¡   r  r  rÚ  Úadd_dispatch_key_set_guardrû  rè  )rÈ   rW  rŽ  r�  râ   s        r¿   ÚDISPATCH_KEY_SET_MATCHz#GuardBuilder.DISPATCH_KEY_SET_MATCH£	  sµ   € ð
 �lŠl˜5Ñ!Ô!ˆØ�hŠh�u‰oŒoˆÝ˜#�uœxÔ6Ñ7Ô7ð 	NÝ Ð!LÅÀcÁÄÐ!LÐ!LÑMÔMÐMØÐ>Ð>¨CÐ>Ð>Ð>ˆ
à×Ò˜uÑ%Ô%×@Ò@ØÝ" :¨uÑ5Ô5ØÔñ	
ô 	
ð 	
ð 	
ð 	
rÁ   c                óþ   — | j         j        €t          d¦  «        ‚| j         j        j        }d|› �g}|                      ||¦  «         | j        j                             |t          ||¦  «        |j	        ¦  «         d S )Nr¾  z,torch.autograd.forward_ad._current_level == )
r®  rÎ  r  Ú
dual_levelrŒ  rb  rÛ   Úadd_dual_level_match_guardrû  rè  )rÈ   rW  rø  r²   s       r¿   Ú
DUAL_LEVELzGuardBuilder.DUAL_LEVELµ	  s‘   € ð Ô Ô-Ð5Ý Ð!QÑRÔRÐRØÔ*Ô7ÔBˆ
ØK¸zÐKÐKÐLˆØ×#Ò# E¨4Ñ0Ô0Ð0ØÔÔ×:Ò:ØÝ" 4¨Ñ/Ô/ØÔñ	
ô 	
ð 	
ð 	
ð 	
rÁ   c                óV  ‡‡— | j         j        €t          d¦  «        ‚| j         j        j        }d„ |D ¦   «         Šd‰› d�g}|                      ||¦  «         t
          j        j        j        Šd
ˆˆfd	„}| j	        j
                             |t          ||¦  «        |j        ¦  «         d S )Nr¾  c                ó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(rg  r|  r   r¶   rÌ   c                ó   •—  ‰‰¦  «        S rÞ   r\  )r|  Ú
compare_fnÚstatess    €€r¿   r�  z.GuardBuilder.FUNCTORCH_STACK_MATCH.<locals>.fnÓ	  s   ø€ Ø�:˜fÑ%Ô%Ð%rÁ   r�  )r®  rÎ  r  Úfunctorch_layersrŒ  r;  Ú
_functorchÚpyfunctorchÚcompare_functorch_staterb  rÛ   rh  rû  rè  )rÈ   rW  Úcisr²   r�  r   r  s        @@r¿   ÚFUNCTORCH_STACK_MATCHz"GuardBuilder.FUNCTORCH_STACK_MATCHÅ	  sÝ   øø€ ð Ô Ô-Ð5Ý Ð!QÑRÔRÐRØÔ#Ô0ÔAˆØ/Ð/¨3Ð/Ñ/Ô/ˆØQÈÐQÐQÐQÐRˆØ×#Ò# E¨4Ñ0Ô0Ð0õ Ô%Ô1ÔIˆ
ð	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	ÔÔ×0Ò0ØÕ& t¨UÑ3Ô3°UÔ5Eñ	
ô 	
ð 	
ð 	
ð 	
rÁ   c                ó\  ‡‡‡‡— t           j        j        j        j        Št           j        j        j        j        Šdˆfd„Š ‰ ‰¦   «         ¦  «        Šd‰› �g}|                      ||¦  «         dˆˆˆfd
„}| j        j         	                    |t          ||¦  «        |j        ¦  «         d S )NÚhooksúCtuple[Callable[[torch.Tensor], Any], Callable[[Any], torch.Tensor]]r¶   útuple[int, ...] | Nonec                ób   •—  ‰| ¦  «        sd S t          t          t          | ¦  «        ¦  «        S rÞ   )rJ  Úmapr‚  )r	  Úare_inline_hookss    €r¿   Úhooks_ids_fnz?GuardBuilder.AUTOGRAD_SAVED_TENSORS_HOOKS.<locals>.hooks_ids_fnâ	  s3   ø€ ð $Ð# EÑ*Ô*ð Ø�tå��R ™œÑ(Ô(Ð(rÁ   zCtorch._functorch.aot_autograd.utils.top_saved_tensors_hooks ids == r|  r   rÌ   c                ó2   •— ‰ ‰ ‰¦   «         ¦  «        k    S rÞ   r\  )r|  Ú	get_hooksÚguard_hooks_idsr  s    €€€r¿   r�  z5GuardBuilder.AUTOGRAD_SAVED_TENSORS_HOOKS.<locals>.fnñ	  s   ø€ Ø" l l°9°9±;´;Ñ&?Ô&?Ò?Ð?rÁ   )r	  r
  r¶   r  r�  )r;  r  Ú_aot_autogradrÕ  Útop_saved_tensors_hooksÚ"saved_tensors_hooks_are_inlineablerŒ  rb  rÛ   rh  rû  rè  )rÈ   rW  r²   r�  r  r  r  r  s       @@@@r¿   ÚAUTOGRAD_SAVED_TENSORS_HOOKSz)GuardBuilder.AUTOGRAD_SAVED_TENSORS_HOOKSÛ	  sý   øøøø€ åÔ$Ô2Ô8ÔPˆ	åÔÔ*Ô0ÔSð 	ð	)ð 	)ð 	)ð 	)ð 	)ð 	)ð '˜, y y¡{¤{Ñ3Ô3ˆð dÐRaÐcÐcð
ˆð 	×#Ò# E¨4Ñ0Ô0Ð0ð	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	ÔÔ×0Ò0ØÕ& t¨UÑ3Ô3°UÔ5Eñ	
ô 	
ð 	
ð 	
ð 	
rÁ   c                ó"  ‡‡‡— |                       |¦  «        } G d„ d¦  «        Š|                     ¦   «         d         }t          t          j        t
          j        ˆfd„|¦  «        ¦  «        Št          |d¦  «        r&t          |¦  «         t          |¦  «        Šdˆˆfd
„}ndˆfd„}dt          |¦  «        › dt          j        ¦   «         › �}|                      |¦  «                             |t          ||¦  «        |j        ¦  «         d S )Nc                  ó   — e Zd Zdd„Zdd„ZdS )	ú@GuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>._AnyCompareÚotherÚobjectr¶   rÌ   c                ó   — dS r}  r\  ©rÈ   r  s     r¿   Ú__eq__zGGuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>._AnyCompare.__eq__
  s   € Ø�trÁ   c                ó   — dS r  r\  r  s     r¿   Ú__ne__zGGuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>._AnyCompare.__ne__
  s   € Ø�urÁ   N)r  r  r¶   rÌ   )rÔ   rÕ   rÖ   r  r   r\  rÁ   r¿   Ú_AnyComparer  
  s<   € € € € € ðð ð ð ðð ð ð ð ð rÁ   r!  rQ   c                ó   •—  ‰¦   «         S rÞ   r\  )rº  r!  s    €r¿   r¸  z=GuardBuilder.TENSOR_SUBCLASS_METADATA_MATCH.<locals>.<lambda>

  s   ø€ ¸¸¹¼€ rÁ   rf  r|  r   r¶   rÌ   c                ó`   •— ‰                      ‰|                      ¦   «         d         ¦  «        S r¹   rm  )r|  ri  Úoriginal_metadatas    €€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_Ú_cr�  )rÐ  rg  r   ÚpytreeÚtree_map_onlyr;  r  ry  rš   r  r‚  r7   Úcurrent_compile_idrÚ  rh  rû  rè  )	rÈ   rW  r  rh  r%  r  r!  ri  r$  s	         @@@r¿   ÚTENSOR_SUBCLASS_METADATA_MATCHz+GuardBuilder.TENSOR_SUBCLASS_METADATA_MATCHø	  so  øøø€ ð
 —’˜‘”ˆð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð ×+Ò+Ñ-Ô-¨aÔ0ˆÝ$ÝÔ ¥¤Ð/FÐ/FÐ/FÐ/FÈÑQÔQñ
ô 
Ðõ �5Ð.Ñ/Ô/ð 	FÝ% eÑ,Ô,Ð,Ý�u‘+”+ˆCðð ð ð ð ð ð ð ðFð Fð Fð Fð Fð Fð i­2Ð.>Ñ+?Ô+?ÐhÐhÅ>ÔCdÑCfÔCfÐhÐhˆØ×Ò˜uÑ%Ô%×6Ò6ØÝ" ;°Ñ6Ô6ØÔñ	
ô 	
ð 	
ð 	
ð 	
rÁ   c                óø   ‡— t          ||                      |¦  «        ¦  «        Šdˆfd„}dt          |¦  «        › �}|                      |¦  «                             |t          ||¦  «        |j        ¦  «         d S )Nr|  r   r¶   rÌ   c                ó$   •— t          | ‰¦  «        S rÞ   )rw  )r|  Úexpecteds    €r¿   ry  z1GuardBuilder.DTENSOR_SPEC_MATCH.<locals>.guard_fn*
  s   ø€ Ý% a¨Ñ2Ô2Ð2rÁ   Ú__dtensor_spec_r�  )rr  rÐ  r‚  rÚ  rh  rû  rè  )rÈ   rW  ry  r²   r/  s       @r¿   ÚDTENSOR_SPEC_MATCHzGuardBuilder.DTENSOR_SPEC_MATCH!
  s–   ø€ õ (¨¨t¯xªx¸©¬Ñ?Ô?ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 0¥ H¡¤Ð/Ð/ˆØ×Ò˜uÑ%Ô%×6Ò6ØÕ,¨T°5Ñ9Ô9¸5Ô;Kñ	
ô 	
ð 	
ð 	
ð 	
rÁ   c                ó,  ‡— |                       |¦  «        }t          ||¦  «        Š‰€dS d	ˆfd„}dt          |¦  «        › dt          j        ¦   «         › �}|                      |¦  «                             |t          ||¦  «        |j        ¦  «         dS )
z=Guard on the values returned by the opaque object's guard_fn.Nr|  r   r¶   rÌ   c                ó$   •— t          | ‰¦  «        S rÞ   )r~  )r|  Úoriginal_valuess    €r¿   Úopaque_guard_checkerzDGuardBuilder.OPAQUE_OBJ_GUARD_FN_MATCH.<locals>.opaque_guard_checker?
  s   ø€ Ý# A Ñ7Ô7Ð7rÁ   Ú___check_opaque_guard_fn_r(  r�  )	rÐ  r{  r‚  r7   r+  rÚ  rh  rû  rè  )rÈ   rW  r  r5  r  r4  s        @r¿   ÚOPAQUE_OBJ_GUARD_FN_MATCHz&GuardBuilder.OPAQUE_OBJ_GUARD_FN_MATCH2
  s¼   ø€ ð —’˜‘”ˆÝ,¨U°EÑ:Ô:ˆàÐ"ØˆFð	8ð 	8ð 	8ð 	8ð 	8ð 	8ð tµ"Ð5IÑ2JÔ2JÐsÐsÍnÔNoÑNqÔNqÐsÐsˆØ×Ò˜uÑ%Ô%×6Ò6Ø Ý" ;°Ñ6Ô6ØÔñ	
ô 	
ð 	
ð 	
ð 	
rÁ   c                ó   — |S rÞ   r\  rq  s     r¿   r¸  zGuardBuilder.<lambda>J
  rÐ  rÁ   c                ó   — | |k    S rÞ   r\  rv  s     r¿   r¸  zGuardBuilder.<lambda>K
  rÒ  rÁ   c                óþ  ‡— |                       |¦  «        }|                      |¦  «        }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,          t.          j        t.          j        t.          j        j        j        h	|£|£z  ¦  «        }t.          j                             ¦   «         rddlm}m }	 ddl!m"}
m#}m$}m%} |||||	|
|fz   }ddl&m'} ||fz   }dd l(m)c m*} tW          ||¦  «        sX |j,        t%          |¦  «        ¦  «        s;t[          t%          |¦  «        ¦  «        st]          dt%          |¦  «        › �¦  «        ‚t_          |t`          ¦  «        rrtc          j2        |¦  «        r^d|› d|› d	�g}|  3                    ||¦  «         |  4                    |¦  «         5                    tm          ||¦  «        |j7        ¦  «         d S t_          |tp          ¦  «        rrt          j2        |¦  «        r^d|› d
|› d	�g}|  3                    ||¦  «         |  4                    |¦  «         9                    tm          ||¦  «        |j7        ¦  «         d S |› d|›�g}t_          ||¦  «        rtu          |¦  «        }tm          ||¦  «        }‰rˆfd„|D ¦   «         }|  4                    |¦  «         ;                    |||j7        ¦  «         |  3                    ||¦  «         d S )Nr\  r   )Ú_MeshLayoutÚ
DeviceMesh)Ú_StridedShardÚPartialÚ	ReplicateÚShard)Ú_IntWrapperzUnexpected type z(type(z) is float and __math_isnan(z))z) is complex and __numpy_isnan(rE  c                ó    •— g | ]
}|› d ‰› d�‘ŒS rõ  r\  rö  s     €r¿   r_  z-GuardBuilder.EQUALS_MATCH.<locals>.<listcomp>´
  s7   ø€ ð "ð "ð "Ø7;�4Ð2Ð2 Ð2Ð2Ð2ð"ð "ð "rÁ   )<r|  rÐ  r–  Úint8Úint16Úint32Úint64Úuint8Úuint16Úuint32Úuint64Úfloat16Úfloat32Úfloat64r÷  rê   rJ  r‹   r  r  ÚsliceÚranger�   r;  ÚSizeÚStreamÚcudaÚstreamsÚdistributedÚis_availableÚtorch.distributed.device_meshr;  r<  Ú(torch.distributed.tensor.placement_typesr=  r>  r?  r@  Útorch.export.dynamic_shapesrA  Útorch.utils._pytreerÕ  rL   r  Úis_constant_classrD   r  r’   rÒ  rÐ  rÑ  rŒ  rÚ  Úadd_float_is_nan_guardrû  rè  ÚcomplexÚadd_complex_is_nan_guardr   rH  )rÈ   rW  rñ  rŽ  r�  Únp_typesÚok_mutable_typesÚok_typesr;  r<  r=  r>  r?  r@  rA  r)  r²   rã   s     `               r¿   ÚEQUALS_MATCHzGuardBuilder.EQUALS_MATCHI
  sú  ø€ ð
 �lŠl˜5Ñ!Ô!ˆØ�hŠh�u‰oŒoˆÝð 	å”Ý”Ý”Ý”Ý”Ý”	Ý”	Ý”	Ý”
Ý”
Ý”
ð/ˆHˆHð ˆHå ¥#˜;ÐåÝ!åÝÝÝÝÝÝ”
Ý”Ý”
Ô"Ô)ðð ðð "ðññ
ô 
ˆõ" Ô×)Ò)Ñ+Ô+ð 	ØMÐMÐMÐMÐMÐMÐMÐMðð ð ð ð ð ð ð ð ð ð ð ð  ØØØØØØð#ñ ˆHð 	<Ð;Ð;Ð;Ð;Ð;à˜{˜nÑ,ˆà,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,õ �s˜HÑ%Ô%ð	Aà'ˆvÔ'­¨S©	¬	Ñ2Ô2ð	Aõ $¥D¨¡I¤IÑ.Ô.ð	Aõ
 !Ð!?µD¸±I´IÐ!?Ð!?Ñ@Ô@Ð@õ �#•uÑÔð 	¥$¤*¨S¡/¤/ð 	ØE˜SÐEÐE¸cÐEÐEÐEÐFˆDØ×'Ò'¨¨tÑ4Ô4Ð4à×"Ò" 5Ñ)Ô)×@Ò@Ý& t¨UÑ3Ô3ØÔ ñô ð ð ˆFõ �#•wÑÔð 	¥B¤H¨S¡M¤Mð 	ØH˜SÐHÐHÀÐHÐHÐHÐIˆDØ×'Ò'¨¨tÑ4Ô4Ð4à×"Ò" 5Ñ)Ô)×BÒBÝ& t¨UÑ3Ô3ØÔ ñô ð ð ˆFð Ð#Ð#˜CÐ#Ð#Ð$ˆÝ�#Ð'Ñ(Ô(ð 	 õ ˜3‘-”-ˆCå3°D¸%Ñ@Ô@ÐØð 	ð"ð "ð "ð "Ø?Qð"ñ "ô "Ðð 	×Ò˜uÑ%Ô%×<Ò<ØÐ# UÔ%5ñ	
ô 	
ð 	
ð 	×#Ò# E¨4Ñ0Ô0Ð0ØˆrÁ   c                ó   — |S rÞ   r\  rq  s     r¿   r¸  zGuardBuilder.<lambda>¿
  rÐ  rÁ   c                ó   — | |k    S rÞ   r\  rv  s     r¿   r¸  zGuardBuilder.<lambda>À
  rÒ  rÁ   c                óF  — |                       |¦  «        }t          |t          ¦  «        r|                      |¦  «         d S |€|                      |¦  «         d S t          |t
          j        ¦  «        r|                      |¦  «         d S |                      |¦  «         d S rÞ   )	rÐ  r’   rÌ   r×  rÝ  rB  ÚCodeTyperã  ra  ©rÈ   rW  r�  s      r¿   ÚCONSTANT_MATCHzGuardBuilder.CONSTANT_MATCH¾
  s    € ð
 �hŠh�u‰oŒoˆÝ�#•tÑÔð 	%Ø�OŠO˜EÑ"Ô"Ð"Ð"Ð"Øˆ[Ø�OŠO˜EÑ"Ô"Ð"Ð"Ð"Ý�C�œÑ(Ô(ð 	%Ø�MŠM˜%Ñ Ô Ð Ð Ð à×Ò˜eÑ$Ô$Ð$Ð$Ð$rÁ   c                ó    — t          |¦  «        S rÞ   ©rŠ  rq  s     r¿   r¸  zGuardBuilder.<lambda>Î
  s   € Õ-JÈ5Ñ-QÔ-Q€ rÁ   c                ó(   — t          | ¦  «        |k    S rÞ   ri  rv  s     r¿   r¸  zGuardBuilder.<lambda>Ï
  s   € Õ(EÀeÑ(LÔ(LØò)€ rÁ   c                ó   ‡‡	— ddl m} |                      |¦  «        }|                      |¦  «        }dŠ|D ]}t	          ||¦  «        r|Š nŒ‰€t          dt          |¦  «        › �¦  «        ‚ ‰|¦  «        Š	‰j        › d|› d‰	›�g}dˆˆ	fd„}|                      |¦  «         	                    |t          ||¦  «        |j        ¦  «         dS )zÎGuard for subclasses of constant types (int, float, str, etc.).

        Extracts the base value using the base type's converter (e.g.,
        int.__int__) to avoid calling user-overridden __eq__.
        rQ   r‡  Nz No constant base type found for ú(r°  r|  r   r¶   rÌ   c                ó"   •—  ‰| ¦  «        ‰k    S rÞ   r\  )r|  Ú	base_typeÚ
base_values    €€r¿   Úcheck_fnz6GuardBuilder.CONSTANT_SUBCLASS_MATCH.<locals>.check_fné
  s   ø€ Ø�9˜Q‘<”< :Ò-Ð-rÁ   r�  )r‰  rˆ  rÐ  r|  r  r  r  rÔ   rÚ  rh  rû  rè  )
rÈ   rW  rˆ  r�  rŽ  rj  r²   rp  rn  ro  s
           @@r¿   ÚCONSTANT_SUBCLASS_MATCHz$GuardBuilder.CONSTANT_SUBCLASS_MATCHÍ
  s.  øø€ ð 	AÐ@Ð@Ð@Ð@Ð@à�hŠh�u‰oŒoˆØ�lŠl˜5Ñ!Ô!ˆð ˆ	Ø%ð 	ð 	ˆAÝ˜#˜qÑ!Ô!ð Ø�	Ø�ðð ÐÝ Ð!OÅDÈÁIÄIÐ!OÐ!OÑPÔPÐPà�Y˜s‘^”^ˆ
ØÔ%Ð@Ð@¨Ð@Ð@°*Ð@Ð@ÐAˆð	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	×Ò˜uÑ%Ô%×6Ò6ØÝ" 4¨Ñ/Ô/ØÔñ	
ô 	
ð 	
ð 	
ð 	
rÁ   c                ó   — |S rÞ   r\  rq  s     r¿   r¸  zGuardBuilder.<lambda>ó
  rÐ  rÁ   c                ó
   — | |u S rÞ   r\  rv  s     r¿   r¸  zGuardBuilder.<lambda>ô
  rà  rÁ   c                ó¤  — |                       |d¦  «         |                      |¦  «        }t          |d¦  «        rjt          |j        t
          ¦  «        s$t          dt          |j        ¦  «        › �¦  «        ‚| j        s#|  	                    |dt          j        ¦  «         d S d S t          j        dddt          |¦  «        › d�dg¬	¦  «         d S )
Nz%[inline-inbuilt-nn-modules-candidate]Útrainingz&Expected val.training to be bool, got z-Attempted to guard on uninitialized nn.Modulerw  zKAttempted to setup an NN_MODULE guard on uninitialized nn.Module subclass `z`.zIEnsure the `nn.Module` subclass instance has called `super().__init__()`.)Úgb_typeÚcontextÚexplanationÚhints)rã  rÐ  ry  r’   ru  rÌ   r  r  rÔ  r‚  r¥  rg  rT   Úunimplementedrf  s      r¿   Ú	NN_MODULEzGuardBuilder.NN_MODULEò
  s  € ð 	�Š�eÐDÑEÔEÐEØ�hŠh�u‰oŒoˆÝ�3˜
Ñ#Ô#ð 	Ý˜#œ,­Ñ-Ô-ð Ý$ØQ½TÀ#Ä,Ñ=OÔ=OÐQÐQñô ð ð Ô(ð Yà×(Ò(¨°
½LÔ<WÑXÔXÐXÐXÐXðYð Yõ ÔØGØð5Ý'+¨C¡y¤yð5ð 5ð 5ð `ððñ ô ð ð ð rÁ   c                ó   — |S rÞ   r\  rq  s     r¿   r¸  zGuardBuilder.<lambda>  rÐ  rÁ   c                ó
   — | |u S rÞ   r\  rv  s     r¿   r¸  zGuardBuilder.<lambda>  rà  rÁ   c                ó,   — |                       |¦  «        S )z0things like torch.add and user defined functions)rã  r^  s     r¿   ÚFUNCTION_MATCHzGuardBuilder.FUNCTION_MATCH  s   € ð �}Š}˜UÑ#Ô#Ð#rÁ   c                ó   — |S rÞ   r\  rq  s     r¿   r¸  zGuardBuilder.<lambda>  rÐ  rÁ   c                ó
   — | |u S rÞ   r\  rv  s     r¿   r¸  zGuardBuilder.<lambda>  rà  rÁ   c                ó°   — |                       |¦  «        }t          j        |¦  «        st          |j        › d�¦  «        ‚|                      |¦  «         dS )zNEquals ID_MATCH on classes - better readability than directly calling ID_MATCHz( is not a class, but CLASS_MATCH is usedN)rÐ  rŸ  ræ  r  rÿ  râ  rf  s      r¿   ÚCLASS_MATCHzGuardBuilder.CLASS_MATCH  sa   € ð �hŠh�u‰oŒoˆÝŒ˜sÑ#Ô#ð 	Ý Ø”:ÐGÐGÐGñô ð ð 	×Ò Ñ&Ô&Ð&Ð&Ð&rÁ   c                ó   — |S rÞ   r\  rq  s     r¿   r¸  zGuardBuilder.<lambda>$  rÐ  rÁ   c                ó
   — | |u S rÞ   r\  rv  s     r¿   r¸  zGuardBuilder.<lambda>%  rà  rÁ   c                ó°   — |                       |¦  «        }t          j        |¦  «        st          |j        › d�¦  «        ‚|                      |¦  «         dS )zNEquals ID_MATCH on modules - better readability than directly calling ID_MATCHz* is not a module, but MODULE_MATCH is usedN)rÐ  rŸ  Úismoduler  rÿ  râ  rf  s      r¿   ÚMODULE_MATCHzGuardBuilder.MODULE_MATCH#  sb   € ð �hŠh�u‰oŒoˆÝÔ Ñ$Ô$ð 	Ý Ø”:ÐIÐIÐIñô ð ð 	×Ò Ñ&Ô&Ð&Ð&Ð&rÁ   c                óö   — |                       |¦  «        }t          |¦  «        t          j        u r3t	          |d¦  «        r#|                      |dt          j        ¦  «         dS |                      |¦  «         dS )z!matches a closure by __code__ id.r­   N)	rÐ  r  rB  rC  ry  r‚  r¥  rg  r  rf  s      r¿   ÚCLOSURE_MATCHzGuardBuilder.CLOSURE_MATCH0  ss   € ð �hŠh�u‰oŒoˆå�‰9Œ9�Ô*Ð*Ð*­w°s¸JÑ/GÔ/GÐ*ð ×$Ò$ U¨J½Ô8SÑTÔTÐTÐTÐTà×Ò Ñ&Ô&Ð&Ð&Ð&rÁ   c                ó   — |S rÞ   r\  rq  s     r¿   r¸  zGuardBuilder.<lambda>A  rÐ  rÁ   c                ó
   — | |u S rÞ   r\  rv  s     r¿   r¸  zGuardBuilder.<lambda>B  rà  rÁ   c                óÀ   — | j         rCt          |j        t          ¦  «        r)| j        j                             |j        j        ¦  «         |                      |¦  «        S rÞ   )	r°  r  rù  rc   r®  Úused_builtin_varsrû   r¼   râ  r^  s     r¿   ÚBUILTIN_MATCHzGuardBuilder.BUILTIN_MATCH@  sb   € ð
 Ôð 	å˜%Ô2Õ4EÑFÔFð ØÔ%Ô7×;Ò;ØÔ,Ô2ñô ð ð ×&Ò& uÑ-Ô-Ð-rÁ   c                ó    — t          |¦  «        S rÞ   ©r»   rq  s     r¿   r¸  zGuardBuilder.<lambda>N  s   € ­S°©Z¬Z€ rÁ   c                ó(   — t          | ¦  «        |k    S rÞ   r‘  rv  s     r¿   r¸  zGuardBuilder.<lambda>O  s   € ­¨E©
¬
°hÒ(>€ rÁ   c                óÜ  — |                       |¦  «        }|                      |¦  «        }t          |t          ¦  «        s|                      |¦  «         g }t          |¦  «        dk    r|                     d|› �¦  «         n(|                     d|› dt          |¦  «        › �¦  «         |                      ||¦  «         t          |t          ¦  «        rL|                      |¦  «         	                    t          |¦  «        t          ||¦  «        |j        ¦  «         d S |                      |¦  «                             t          |¦  «        t          ||¦  «        |j        ¦  «         d S )Nr   znot zlen(r°  )r|  rÐ  r  r*  r§  r»   rˆ  rŒ  rÚ  Úadd_dict_length_check_guardrû  rè  Úadd_length_check_guard©rÈ   rW  rŽ  r  r²   s        r¿   ÚSEQUENCE_LENGTHzGuardBuilder.SEQUENCE_LENGTHM  sb  € ð �lŠl˜5Ñ!Ô!ˆØ—’˜‘”ˆå˜%¥Ñ&Ô&ð 	#à�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‘
”
Ý& t¨UÑ3Ô3ØÔ ñô ð ð ð ð ×"Ò" 5Ñ)Ô)×@Ò@Ý�E‘
”
Ý& t¨UÑ3Ô3ØÔ ñô ð ð ð rÁ   c                ó    — t          |¦  «        S rÞ   ©r™   rq  s     r¿   r¸  zGuardBuilder.<lambda>p  s   € Õ-?ÀÑ-FÔ-F€ rÁ   c                ó(   — t          | ¦  «        |k    S rÞ   r™  rv  s     r¿   r¸  zGuardBuilder.<lambda>q  s   € Õ(:¸5Ñ(AÔ(AÀXÒ(M€ rÁ   c                óê  — |                       |¦  «        }|                      |¦  «        }t          |¦  «        }g }|                     d|› dt	          |¦  «        › �¦  «         |                      ||¦  «         t          |¦  «        }|                      |d|j        › d�¦  «        }|                      |¦  «         	                    t	          |¦  «        |t          ||¦  «        |j        ¦  «         d S )Nz___tuple_iterator_len(r°  r�  rg  )r|  rÐ  r  rˆ  r™   rŒ  r§  rÿ  rÚ  Úadd_tuple_iterator_length_guardrû  rè  )rÈ   rW  rŽ  r  rj  r²   r  s          r¿   ÚTUPLE_ITERATOR_LENzGuardBuilder.TUPLE_ITERATOR_LENo  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Ñ%Ô%ØÝ" 4¨Ñ/Ô/ØÔñ		
ô 	
ð 	
ð 	
ð 	
rÁ   c                ó    — t          |¦  «        S rÞ   ©r–   rq  s     r¿   r¸  zGuardBuilder.<lambda>‡  s   € Õ-AÀ%Ñ-HÔ-H€ rÁ   c                ó(   — t          | ¦  «        |k    S rÞ   rŸ  rv  s     r¿   r¸  zGuardBuilder.<lambda>ˆ  s   € Õ(<¸UÑ(CÔ(CÀxÒ(O€ rÁ   c           
     óä  — |                       |¦  «        }|                      |¦  «        }t          |¦  «        }g }t          |¦  «        }|                     d|› d|› �¦  «         |                      ||¦  «         t          |¦  «        }|                      |d|j        › d�¦  «        }|\  }}	}
|                      |¦  «         	                    ||	|
|t          ||¦  «        |j        ¦  «         d S )Nz___normalize_range_iter(r°  r�  rg  )r|  rÐ  r  r–   rˆ  rŒ  r§  rÿ  rÚ  Úadd_range_iterator_match_guardrû  rè  )rÈ   rW  rŽ  r  rj  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¨Ñ/Ô/ØÔñ	
ô 	
ð 	
ð 	
ð 	
rÁ   c                ó>   — t          |¦  «        t          |¦  «        fS rÞ   ©r  r•   rq  s     r¿   r¸  zGuardBuilder.<lambda>¢  s   € ­d°5©k¬kÕ;OÐPUÑ;VÔ;VÐ-W€ rÁ   c                ób   — t          | ¦  «        |d         u ot          | ¦  «        |d         k    S rˆ  r©  rv  s     r¿   r¸  zGuardBuilder.<lambda>£  s1   € Ý�‰KŒK˜8 Aœ;Ð&ÐUÕ+?ÀÑ+FÔ+FÈ(ÐSTÌ+Ò+Uð rÁ   c                ó`  ‡‡— |                       |¦  «        }|                      |¦  «        }t          |¦  «        Št          |¦  «        Šdˆˆfd„}d|› d‰› �g}|                      ||¦  «         |                      |¦  «                             |t          ||¦  «        |j        ¦  «         d S )	Nr|  r   r¶   rÌ   c                óL   •— t          | ¦  «        ‰u ot          | ¦  «        ‰k    S rÞ   r©  )r|  Ú
count_typeÚnormalized_count_iters    €€r¿   ry  z3GuardBuilder.COUNT_ITERATOR_MATCH.<locals>.guard_fn­  s-   ø€ å�Q‘”˜:Ð%ð EÝ(¨Ñ+Ô+Ð/DÒDðrÁ   z___normalize_count_iter(r°  r�  )	r|  rÐ  r  r•   rŒ  rÚ  rh  rû  rè  )rÈ   rW  rŽ  r  ry  r²   r­  r®  s         @@r¿   ÚCOUNT_ITERATOR_MATCHz!GuardBuilder.COUNT_ITERATOR_MATCH¡  sÙ   øø€ ð �lŠl˜5Ñ!Ô!ˆØ—’˜‘”ˆÝ˜%‘[”[ˆ
Ý 4°UÑ ;Ô ;Ðð	ð 	ð 	ð 	ð 	ð 	ð 	ð M¨3ÐLÐLÐ5JÐLÐLÐMˆØ×#Ò# E¨4Ñ0Ô0Ð0Ø×Ò˜uÑ%Ô%×6Ò6ØÕ,¨T°5Ñ9Ô9¸5Ô;Kñ	
ô 	
ð 	
ð 	
ð 	
rÁ   Úsource_bc                ó¶  — t          |j        ¦  «        st          |¦  «        rd S | j        r`t          |¦  «        x}r| j        j                             |¦  «         t          |¦  «        x}r| j        j                             |¦  «         |  	                    |¦  «        }|  	                    |j
        ¦  «        }t          |j        ¦  «        st          |¦  «        rd S ||f}|| j        v rd S | j                             ||f¦  «         | j                             ||f¦  «         |› d|› �g}|                      ||¦  «         t          j        r<|d         }t!          ||¦  «        d         }	| j                             ||	f¦  «         d S t'          |                      |¦  «        |                      |¦  «        t!          ||¦  «        |j        ¦  «         d S )Nú is r   )r1   rù  r°  r,   r®  Úadditional_used_local_varsrû   r+   Úadditional_used_global_varsr|  rÿ  r0   rÒ  rŒ  rR   Ú#use_lamba_guard_for_object_aliasingrû  rÓ  rˆ  r    rÚ  r7  rè  )
rÈ   rW  r°  rÿ  Úref_aÚref_br"  r²   rŠ  r‰  s
             r¿   ÚDUPLICATE_INPUTzGuardBuilder.DUPLICATE_INPUT¼  s  € å$ØÔ$ñ
ô 
ð 	å& xÑ0Ô0ð	ð ˆFàÔð 	LÝ,¨XÑ6Ô6Ð6ˆtð KØÔ%Ô@×DÒDÀTÑJÔJÐJÝ-¨hÑ7Ô7Ð7ˆtð LØÔ%ÔA×EÒEÀdÑKÔKÐKà—’˜UÑ#Ô#ˆØ—’˜Xœ]Ñ+Ô+ˆå#ØÔ$ñ
ô 
ð 	å% hÑ/Ô/ð	ð ˆFð �eˆnˆØ�$Ô5Ð5Ð5ØˆFàÔ+×/Ò/°¸°Ñ?Ô?Ð?ØÔ+×/Ò/°¸°Ñ?Ô?Ð?àÐ%Ð%˜eÐ%Ð%Ð&ˆØ×#Ò# E¨4Ñ0Ô0Ð0åÔ5ð 	ð ˜QœˆIÝ 6°yÀ%Ñ HÔ HÈÔ KÐØÔ,×3Ò3°YÐ@QÐ4RÑSÔSÐSÐSÐSå)Ø×&Ò& uÑ-Ô-Ø×2Ò2°8Ñ<Ô<Ý& t¨UÑ3Ô3ØÔ ñ	ô ð ð ð rÁ   c                ó   — d S rÞ   r\  rq  s     r¿   r¸  zGuardBuilder.<lambda>ì  rÙ  rÁ   c                ó
   — | d uS rÞ   r\  rv  s     r¿   r¸  zGuardBuilder.<lambda>í  rê  rÁ   c                óÜ   — |                       |¦  «        › d�g}|                      ||¦  «         |                      |¦  «                             t	          ||¦  «        |j        ¦  «         d S )Nrí  )r|  rŒ  rÚ  rî  rû  rè  ©rÈ   rW  r²   s      r¿   ÚWEAKREF_ALIVEzGuardBuilder.WEAKREF_ALIVEë  sy   € ð
 —<’< Ñ&Ô&Ð4Ð4Ð4Ð5ˆà×#Ò# E¨4Ñ0Ô0Ð0Ø×Ò˜uÑ%Ô%×8Ò8Ý" 4¨Ñ/Ô/°Ô1Añ	
ô 	
ð 	
ð 	
ð 	
rÁ   c                óD   — t          |                     ¦   «         ¦  «        S rÞ   ©r÷  rÿ  rq  s     r¿   r¸  zGuardBuilder.<lambda>ø  s   € ­T°%·*²*±,´,Ñ-?Ô-?€ rÁ   c                óL   — t          |                      ¦   «         ¦  «        |k    S rÞ   r¿  rv  s     r¿   r¸  zGuardBuilder.<lambda>ù  s   € ­¨U¯ZªZ©\¬\Ñ(:Ô(:¸hÒ(F€ rÁ   c           	     ó\  — |                       |¦  «        }|                      |¦  «        }g }|                     d|› dt          |                     ¦   «         ¦  «        › �¦  «         |                      ||¦  «         |                      |¦  «                             |||j        ¦  «         dS )z7Guard on the key order of types.MappingProxyType objectzlist(z.keys()) == N)	r|  rÐ  rˆ  r÷  rÿ  rŒ  rÚ  Úadd_mapping_keys_guardrè  r–  s        r¿   ÚMAPPING_KEYS_CHECKzGuardBuilder.MAPPING_KEYS_CHECK÷  s¬   € ð �lŠl˜5Ñ!Ô!ˆØ—’˜‘”ˆàˆØ�ŠÐA˜CÐAÐA­T°%·*²*±,´,Ñ-?Ô-?ÐAÐAÑBÔBÐBØ×#Ò# E¨4Ñ0Ô0Ð0Ø×Ò˜uÑ%Ô%×<Ò<Ø�4˜Ô)ñ	
ô 	
ð 	
ð 	
ð 	
rÁ   c                óP   — t          t                               |¦  «        ¦  «        S rÞ   ©r÷  r*  rÿ  rq  s     r¿   r¸  zGuardBuilder.<lambda>  s   € ­Tµ$·)²)¸EÑ2BÔ2BÑ-CÔ-C€ rÁ   c                óX   — t          t                               | ¦  «        ¦  «        |k    S rÞ   rÅ  rv  s     r¿   r¸  zGuardBuilder.<lambda>	  s   € ­­T¯YªY°uÑ-=Ô-=Ñ(>Ô(>À(Ò(J€ rÁ   c           
     ó  — |                       |¦  «        }|                      |¦  «        }|t          j        j        j        u r|                      |¦  «         dS |                      |¦  «         g }|                     d|› dt          t          |¦  «        ¦  «        ›�¦  «         |                      ||¦  «         |                      |j        ¦  «        r|                      ||¦  «         dS |                      ||¦  «         dS )z6Insert guard to check that the keys of a dict are sameNr&  z)) == )r|  rÐ  r;  rÕ  rL   ÚSUPPORTED_NODESr³  r—  rˆ  r÷  rŠ   rŒ  r  rù  rå  rß  r–  s        r¿   ÚDICT_KEYS_MATCHzGuardBuilder.DICT_KEYS_MATCH  s  € ð �lŠl˜5Ñ!Ô!ˆØ—’˜‘”ˆà•E”KÔ'Ô7Ð7Ð7à×Ò˜eÑ$Ô$Ð$ØˆFà×Ò˜UÑ#Ô#Ð#àˆð
 	�ŠÐS cÐSÐSµÕ6GÈÑ6NÔ6NÑ1OÔ1OÐSÐSÑTÔTÐTØ×#Ò# E¨4Ñ0Ô0Ð0à×+Ò+¨EÔ,DÑEÔEð 	CØ×-Ò-¨e°UÑ;Ô;Ð;Ð;Ð;à×4Ò4°U¸EÑBÔBÐBÐBÐBrÁ   c                ó   — d S rÞ   r\  rq  s     r¿   r¸  zGuardBuilder.<lambda>%  rÙ  rÁ   c                ó(   — t          | ¦  «        dk    S rõ   r‘  rv  s     r¿   r¸  zGuardBuilder.<lambda>&  s   € ­¨E©
¬
°aª€ rÁ   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)rR   Úskip_nnmodule_hook_guardsr—  r^  s     r¿   ÚEMPTY_NN_MODULE_HOOKS_DICTz'GuardBuilder.EMPTY_NN_MODULE_HOOKS_DICT$  s.   € õ Ô+ð 	àˆFØ×Ò˜UÑ#Ô#Ð#Ð#Ð#rÁ   c                ó   — d S rÞ   r\  r^  s     r¿   Ú	GRAD_MODEzGuardBuilder.GRAD_MODE0  ó   € àˆrÁ   c                ó   — d S rÞ   r\  r^  s     r¿   ÚDETERMINISTIC_ALGORITHMSz%GuardBuilder.DETERMINISTIC_ALGORITHMS5  rÑ  rÁ   c                ó   — d S rÞ   r\  r^  s     r¿   ÚFSDP_TRAINING_STATEz GuardBuilder.FSDP_TRAINING_STATE:  rÑ  rÁ   c                óö   — | j         j        }|€t          d¦  «        ‚|j        }|| j         _        d| j         j                             ¦   «         › �g}| j        j                             |||j	        ¦  «         d S )Núoutput_graph must not be Nonez ___check_global_state() against )
r®  rÎ  r  Úglobal_state_guardÚglobal_stateÚ__getstate__rb  rÛ   Úadd_global_state_guardrè  )rÈ   rW  rÎ  rÙ  r²   s        r¿   ÚGLOBAL_STATEzGuardBuilder.GLOBAL_STATE?  s�   € àÔ,Ô9ˆØÐÝ Ð!@ÑAÔAÐAØ#Ô6ˆØ-9ˆÔÔ*ð c¨tÔ/DÔ/Q×/^Ò/^Ñ/`Ô/`ÐbÐbð
ˆð 	ÔÔ×6Ò6Ø˜$ Ô 0ñ	
ô 	
ð 	
ð 	
ð 	
rÁ   c                óä   — | j         j        €t          d¦  «        ‚t          | j         j        ¦  «        | j         _        | j        j                             | j         j        dg|j        ¦  «         d S )Nz*torch_function_mode_stack must not be Nonez$___check_torch_function_mode_stack())	r®  Útorch_function_mode_stackr  Ú$make_torch_function_mode_stack_guardÚ"torch_function_mode_stack_check_fnrb  rÛ   Ú#add_torch_function_mode_stack_guardrè  r^  s     r¿   ÚTORCH_FUNCTION_STATEz!GuardBuilder.TORCH_FUNCTION_STATEP  s}   € àÔ Ô:ÐBÝ Ð!MÑNÔNÐNå0ØÔ%Ô?ñô ð 	ÔÔ@ð
 	ÔÔ×CÒCØÔ!Ô;Ø3Ð4ØÔñ	
ô 	
ð 	
ð 	
ð 	
rÁ   c                ó^  — |j         t          j        urt          d|j         › �¦  «        ‚| j        j        €t          d¦  «        ‚d| j        j        j        ›�g}|                      ||¦  «         |                      |¦  «         	                    t          ||¦  «        |j        ¦  «         dS )z/Guard on CURRENT_DEVICE per torch.utils._devicez!Expected GuardSource.GLOBAL, got Nr¾  zutils_device.CURRENT_DEVICE == )ri  r=   ÚGLOBALr  r®  rÎ  Úcurrent_devicerŒ  rÚ  Úadd_default_device_guardrû  rè  r¼  s      r¿   ÚDEFAULT_DEVICEzGuardBuilder.DEFAULT_DEVICE`  s½   € ð Œ<�{Ô1Ð1Ð1Ý Ð!SÀUÄ\Ð!SÐ!SÑTÔTÐTàÔ Ô-Ð5Ý Ð!QÑRÔRÐRàc¨dÔ.CÔ.PÔ._ÐcÐcð
ˆð 	×#Ò# E¨4Ñ0Ô0Ð0à×Ò˜uÑ%Ô%×>Ò>Ý" 4¨Ñ/Ô/°Ô1Añ	
ô 	
ð 	
ð 	
ð 	
rÁ   c                óì  ‡ ‡#‡$‡%‡&— ddl m} |j        dk    rt          d|j        ›�¦  «        ‚‰ j        j        Š&‰&€t          d¦  «        ‚‰ j        j        �1‰ j        j        }|j        }|j        }|j	        �|j	        }|j
        }�n”t          ‰&|¦  «        st          dt          ‰&¦  «        › �¦  «        ‚‰&j        €t          d¦  «        ‚‰&j        j        pg Š$d„ ‰$D ¦   «         Š%d-ˆ&fd„}‰&j        r­i }	g }
g }i }t!          ¦   «         }‰&j        D ][}|j        ‰&j        v r1t&          j        j                             ||‰&j        |	|
|||¦  «         ŒAt.                               d¦  «         Œ\t3          |
|t5          |                     ¦   «         ¦  «        |d¬¦  «        Š#nd Š#d.ˆ#ˆ$ˆ%ˆ&ˆ fd„}t8          j        r3	  |d¦  «        \  }}}d}n0# t<          $ r d} |d¦  «        \  }}Y nw xY wd} |d¦  «        \  }}‰&j        s‰&j                             ¦   «          ‰ j         rŸtC          ¦   «          "                    d¦  «        }|�4t          |tF          ¦  «        st          dt          |¦  «        › �¦  «        ‚|€g n%t5          |j$         %                    ¦   «         ¦  «        }tM          |||||¬¦  «        ‰ j        _        |j'        D ]}‰  (                    ||g¦  «         ŒtS          j*        ¦   «         x}r|j+         ,                    |j'        ¦  «         g }g }|sÝ|st          d¦  «        ‚|j'        |j$        }}|sd S | -                    ¦   «         D ]¥\  }}t          |t\          ¦  «        rd}Œ‰  "                    |i t^          ¥ta          ¦   «         ¥¬¦  «        }t          |tb          ¦  «        r| 2                    ||f¦  «         Œvt          |tf          ¦  «        r| 2                    ||f¦  «         Œ£d}Œ¦|�s·dd l4}ddl5m6} |st          d¦  «        ‚|j'        |j$        }}to          ||z   ¦  «        }	 ˆ fd„tq          |¦  «        D ¦   «         }d  9                    d!„ tq          |¦  «        D ¦   «         ¦  «        }d  9                    d"„ tq          |¦  «        D ¦   «         ¦  «        }|rd#|› d$�}|rd%|› d$�}tu          j;        d&|› d'|› d(d) 9                    |¦  «        › d*�¦  «        } tx           =                    d+| |j'        ¦  «         | >                    | ¦  «        }!| ?                    |!j@        |jA        ¦  «        jB        }"|"st          d,¦  «        ‚	 t‡          |t‰          |¦  «        t‰          |¦  «        |"|!|j'        |jE        ¦  «         d S # t&          jF        jG        jH        $ r Y nw xY w|j'        r9‰  I                    |j'        |j'        i t^          ¥ta          ¦   «         ¥¬¦  «         d S d S )/Nr   ©r¢   rw  zExpected empty guard name, got r×  ú Expected OutputGraphCommon, got z'output_graph.shape_env must not be Nonec                ó   — g | ]	}|j         ‘Œ
S r\  )Úsymbolic_contextr4  s     r¿   r_  z*GuardBuilder.SHAPE_ENV.<locals>.<listcomp>�  s   € Ð=Ð=Ð=°Q˜aÔ0Ð=Ð=Ð=rÁ   Út_idr·   r  r¶   úlist[Source]c                ó8   •‡— ˆfd„‰j         |          D ¦   «         S )Nc                óF   •— g | ]}t          |t          j        ‰¦  «        ‘ŒS r\  )r4   r3   ÚSIZE)r  ri  r  s     €r¿   r_  z?GuardBuilder.SHAPE_ENV.<locals>.get_sources.<locals>.<listcomp>’  s:   ø€ ð ð ð ð õ )¨µÔ1DÀcÑJÔJðð ð rÁ   )Útracked_fakes_id_to_source)rí  r  rÎ  s    `€r¿   Úget_sourcesz+GuardBuilder.SHAPE_ENV.<locals>.get_sources�  s9   øø€ ðð ð ð ð #/Ô"IÈ$Ô"Oðñ ô ð rÁ   z+Untracked tensor used in export constraintsF)Úsource_pairsÚderived_equalitiesÚphantom_symbolsÚrelaxed_sourcesÚ	warn_onlyÚlangsútuple[str, ...]úlist[_ShapeGuardsHelper]c           	     ó„   •— ‰j                              d„ ‰D ¦   «         d„ ‰D ¦   «         ‰‰‰j        ‰j         | ¬¦  «        S )Nc                ó   — g | ]	}|j         ‘Œ
S r\  )Úfaker4  s     r¿   r_  zCGuardBuilder.SHAPE_ENV.<locals>._get_code_parts.<locals>.<listcomp>¼  s   € Ð(Ð(Ð( �Q”VÐ(Ð(Ð(rÁ   c                ó   — g | ]	}|j         ‘Œ
S r\  )ri  r4  s     r¿   r_  zCGuardBuilder.SHAPE_ENV.<locals>._get_code_parts.<locals>.<listcomp>½  s   € Ð*Ð*Ð* !�Q”XÐ*Ð*Ð*rÁ   )Úinput_contextsÚequalities_inputsr©  Úignore_staticrù  )Ú	shape_envÚproduce_guards_verboser©  Úexport)rù  r  rî  r   rÎ  rÈ   s    €€€€€r¿   Ú_get_code_partsz/GuardBuilder.SHAPE_ENV.<locals>._get_code_parts¹  s_   ø€ à#Ô-×DÒDØ(Ð( RÐ(Ñ(Ô(Ø*Ð* rÐ*Ñ*Ô*Ø#1Ø&7Ø#œð (4Ô':Ð#:Øð Eñ 
ô 
ð 
rÁ   )ÚpythonÚverbose_pythonÚcppT)r  r  Úcpp_code_partsz,Expected None or _CppShapeGuardsHelper, got )Úpython_code_partsrã   r
  Úpython_fallbackÚshape_env_sourcesz9cpp_code_parts must be set when not using python_fallback)rà   )ÚCppCodeCachec                ó\   •— g | ](\  }}‰                      t          ||¦  «        ¦  «        ‘Œ)S r\  )r7  r-   )r  Úiri  rÈ   s      €r¿   r_  z*GuardBuilder.SHAPE_ENV.<locals>.<listcomp>2  sE   ø€ ð "ð "ð "á!˜˜6ð ×6Ò6µ}ÀVÈQÑ7OÔ7OÑPÔPð"ð "ð "rÁ   rf  c              3  ó2   K  — | ]\  }\  }}|› d |› d�V — ŒdS )z = int_values[r(  Nr\  ©r  r  rº  Úsymbols       r¿   r  z)GuardBuilder.SHAPE_ENV.<locals>.<genexpr>7  sO   è è € ð ,ð ,á&˜™;˜A˜vð Ð1Ð1¨QÐ1Ð1Ð1ð,ð ,ð ,ð ,ð ,ð ,rÁ   c              3  ó2   K  — | ]\  }\  }}|› d |› d�V — ŒdS )z = float_values[r(  Nr\  r  s       r¿   r  z)GuardBuilder.SHAPE_ENV.<locals>.<genexpr>;  sO   è è € ð .ð .á&˜™;˜A˜vð Ð3Ð3¨qÐ3Ð3Ð3ð.ð .ð .ð .ð .ð .rÁ   zint64_t ú;zdouble aä  
                #include <algorithm>
                #include <cstdint>
                #include <cmath>
                #include <c10/util/generic_math.h>

                #if defined(_MSC_VER)
                #  define EXTERN_DLL_EXPORT extern "C" __declspec(dllexport)
                #else
                #  define EXTERN_DLL_EXPORT extern "C"
                #endif

                EXTERN_DLL_EXPORT int8_t guard(int64_t *int_values, double *float_values) {
                  z
                  z
                  return (z) && (z%);
                }
                zC++ shape guard function: %s %sz'Failed to load C++ shape guard function)rí  r·   r  r·   r¶   rî  )rù  rú  r¶   rû  )JÚtorch._dynamo.output_graphr¢   rÿ  r  r®  rÎ  Úshape_code_partsr  rã   r
  r  r  r  r  Útracked_fakesÚexport_constraintsrê   rí  rò  r;  r  Údynamic_shapesÚ_process_equalitiesry  rz  rI   r÷  r,  rR   Ú enable_cpp_symbolic_shape_guardsÚOverflowErrorÚfreezer°  ÚlocalsrÐ  rG   Úsource_to_symbolrÿ  ÚShapeCodePartsÚexprsrŒ  r7   Útry_getÚshape_env_guardsr+  rú   r^   rK   rØ  r·   rˆ  rÒ  ÚctypesÚtorch._inductor.codecacher  r*  rá  rb  ÚtextwrapÚdedentrd  re  ÚloadÚcastrW  Úc_void_pr  r"   r»   rè  Ú	_inductorrT   ÚInvalidCxxCompilerrm  )'rÈ   rW  r¢   r  r  rã   r
  r  ró  Únamesrô  rõ  rö  r÷  Ú
constraintr  Úmaybe_cpp_code_partsÚmaybe_shape_env_sourcesr²   Úcompile_contextÚint_source_to_symbolÚfloat_source_to_symbolrâ   r   ri  r  r>  r%  r  Úguard_managersÚint_symbols_strÚfloat_symbols_strÚfunc_strÚclibÚcguardr  rî  r   rÎ  s'   `                                  @@@@r¿   Ú	SHAPE_ENVzGuardBuilder.SHAPE_ENVq  sC  øøøøø€ à@Ð@Ð@Ð@Ð@Ð@àŒ:˜ÒÐÝ Ð!QÀ5Ä:Ð!QÐ!QÑRÔRÐRØÔ,Ô9ˆØÐÝ Ð!@ÑAÔAÐAØÔ Ô1Ð=Ø#Ô4ÔEÐØ 0Ô BÐØ!1Ô!DÐØÔ.Ð:Ø!1Ô!@�Ø.Ô>ˆO‰Oõ ˜lÐ,=Ñ>Ô>ð Ý$ØKµt¸LÑ7IÔ7IÐKÐKñô ð ð Ô%Ð-Ý$Ð%NÑOÔOÐOØÔ'Ô5Ð;¸ˆBØ=Ð=¸"Ð=Ñ=Ô=ˆNðð ð ð ð ð ð Ô.ð )Ø46�Ø<>�ð ð #ð 68�Ý/2©u¬u�Ø".Ô"Að Sð S�JØ!”¨,Ô*QÐQÐQÝœÔ3×GÒGØ&Ø'Ø(Ô2Ø!Ø(Ø.Ø+Ø+ñ	ô 	ð 	ð 	õ ŸšÐ$QÑRÔRÐRÐRÝ$6Ø!-Ø'9Ý$(¨×)?Ò)?Ñ)AÔ)AÑ$BÔ$BØ$3Ø#ð%ñ %ô %Ð!Ð!ð %)Ð!ðð ð ð ð ð ð ð ð ð õ Ô6ð ðð (˜Ð(KÑLÔLñ JÐ%Ð'9¸>ð ',�O�OøÝ$ð ð ð à&*�OØ<K¸OØ4ñ=ô =Ñ9Ð%Ð'9Ð'9Ð'9ðøøøð #'�Ø8G¸Ø0ñ9ô 9Ñ5Ð!Ð#5ð  Ô&ð 0ØÔ&×-Ò-Ñ/Ô/Ð/àÔð 	õ $*¡8¤8§<¢<Ð0@Ñ#AÔ#AÐ Ø#Ð/½
Ø$Õ&;ñ9ô 9Ð/õ %Ø_Å4ÐH\ÑC]ÔC]Ð_Ð_ñô ð ð
 (Ð/ð �åÐ.Ô?×DÒDÑFÔFÑGÔGð $õ
 6DØ"3Ø#5Ø3Ø /Ø"9ð6ñ 6ô 6ˆDÔ!Ô2ð &Ô+ð 	7ð 	7ˆDØ×'Ò'¨°¨vÑ6Ô6Ð6Ð6õ -Ô4Ñ6Ô6Ð6ˆ?ð 	NØÔ,×3Ò3Ð4FÔ4LÑMÔMÐMà!ÐØ!#Ðàð 	/Ø!ð Ý$ØOñô ð ð
 Ô$àÔ/ð	 )ˆJð ð Ø�à"2×"8Ò"8Ñ":Ô":ð /ð /‘�˜Ý˜f¥nÑ5Ô5ð /Ø&*�O�Oà$(§H¢HØØ%L­Ð%LÕ8IÑ8KÔ8KÐ%Lð %-ñ %ô %�Mõ " -µÑ5Ô5ð /Ø,×3Ò3°V¸VÐ4DÑEÔEÐEÐEÝ# Mµ5Ñ9Ô9ð /Ø.×5Ò5°v¸vÐ6FÑGÔGÐGÐGð +/˜˜àñ O	ØˆMˆMˆMà>Ð>Ð>Ð>Ð>Ð>à!ð Ý$ØOñô ð ð
 Ô$àÔ/ð	 )ˆJõ  $Ð$8Ð;QÑ$QÑRÔRÐð>ð"ð "ð "ð "å%.Ð/?Ñ%@Ô%@ð"ñ "ô "�ð
 #'§)¢)ð ,ð ,å*3Ð4HÑ*IÔ*Ið,ñ ,ô ,ñ #ô #�ð %)§I¢Ið .ð .å*3Ð4JÑ*KÔ*Kð.ñ .ô .ñ %ô %Ð!ð
 #ð DØ&C°Ð&CÐ&CÐ&C�OØ$ð GØ(FÐ2CÐ(FÐ(FÐ(FÐ%å#œ?ðð #ðð ð %ðð ð $Ÿ=š=¨Ñ4Ô4ðð ð ñô �õ( × Ò Ø5ØØ&Ô,ñô ð ð
 $×(Ò(¨Ñ2Ô2�ØŸš T¤Z°´ÑAÔAÔG�Øð TÝ(Ð)RÑSÔSÐSðTõ -Ø"ÝÐ,Ñ-Ô-ÝÐ.Ñ/Ô/ØØØ&Ô,ØÔ$ñô ð ð �øõ ”?Ô&Ô9ð ð ð à�ðøøøð$ Ô"ð 	Ø×5Ò5Ø!Ô'Ø"Ô(ØD¥ÐDÕ0AÑ0CÔ0CÐDð 6ñ ô ð ð ð ð	ð 	s%   Æ:G ÇG)Ç(G)Ð9D V ÖV1Ö0V1c                ó    — t          |¦  «        S rÞ   )rd  rq  s     r¿   r¸  zGuardBuilder.<lambda>|  s   € Õ-DÀUÑ-KÔ-K€ rÁ   c                ó\   — t          | t          j        ¦  «        ot          | ¦  «        |k    S rÞ   )r  r;  r<  rd  rv  s     r¿   r¸  zGuardBuilder.<lambda>}  s+   € Ý�u�eœlÑ+Ô+ð ;Ý'¨Ñ.Ô.°(Ò:ð rÁ   c                óŽ  — t           j        r|                     ¦   «         rd S t          |¦  «        r|                      |¦  «         d S t          |t          ¦  «        r
 |¦   «         }|�|n|                      |¦  «        }t          |¦  «        }t          j
                             |¦  «        }t          |t          j        j        ¦  «        r|j        �|j        }|j        �|j        }t          |t          j        ¦  «        st#          dt          |¦  «        › �¦  «        ‚t           j        ršt          |t          j        j        ¦  «        r{t+          ¦   «         }|                     ¦   «         rY|                     d|                     ¦   «         ¦  «         |                     d|j        ¦  «         |                     dd¦  «         |                      |¦  «        }g }| j        j        €t#          d¦  «        ‚| j        j        j        rÐ|                      |¦  «         g d¢}|D ]²}	t?          |j         |	¦  «        }
|	dk    rd	}	tC          |
¦  «        }
|                      |
¦  «        }tE          |t          j#        t          j$        f¦  «        r,| %                    d
|› d|	› dtM          |¦  «        ›�¦  «         Œ•| %                    |› d|	› d|› �¦  «         Œ³�nr|  '                    |¦  «        }t           j(        r3tE          |t          j        j        ¦  «        sbtS          |j         ¦  «        sNt          |j         tT          ¦  «        s4| j+         %                    |¦  «         | j,         %                    |¦  «         | j        j        }|j-        |j                  }t]          |d         ¦  «        }t]          |d         ¦  «        }t_          ta          ||||||¦  «        |¦  «        }|j1        }| 2                    ||||||||¦  «         t          |t          j        j        ¦  «        s$| j3        j4         5                    |j6        ¦  «         |j7        €t#          d¦  «        ‚d}i }g }|D ]Ž}tq          ||¦  «        rIts          ||¦  «        ||<   d|› d|› dts          ||¦  «        ›d|› d|› d�}| %                    |¦  «         Œ[| %                    |¦  «         d|› d|› d�}| %                    |¦  «         Œ�i }d}d}tq          ||¦  «        rD|D ]A}ts          ||d ¦  «        }||f||<   d|› d|› d|›d|› d|› d�}| %                    |¦  «         ŒB|s|s|r?|  '                    |¦  «         :                    |||t_          ||¦  «        |j1        ¦  «         tw          |¦  «        dk    r|  <                    ||¦  «         d S d S )Nrì  Úparam_numelÚparam_bytesÚparam_countrQ   r¾  )r  rÊ  r  Ú
ndimensionrB  zndimension()zstr(r¼  r°  rE  Úsizerc  zguard.source must not be None)Ú_dynamo_dynamic_indicesÚ_dynamo_weak_dynamic_indicesÚ_dynamo_unbacked_indicesÚ_dynamo_strict_unbacked_indicesÚ_dynamo_static_indicesz
((getattr(z, 'z', set()).issubset(z)) if hasattr(z') else True)rŠ  z') == False)Ú_dynamo_shape_idsÚ_dynamo_unbacked_boundsrF  z', None) == z) if hasattr(r   )=rR   Ú_unsafe_skip_fsdp_module_guardsÚis_fsdp_modulerS  rã  r  rP   rÐ  r  r;  r  Ú_dispatch_keysr¡  r¢  r  r  r<  r  Úlog_compilation_metricsr@  Ú	Parameterr6   Úin_progressÚ	incrementÚnumelÚnbytesr|  r®  rÎ  r  r§  rW   rù  rX   r’   rÊ  r  rˆ  rµ   rÚ  Ú,skip_no_tensor_aliasing_guards_on_parametersr2   ru   rÊ  rË  Úinput_source_to_sizes_stridesr  rû  r  rè  Úadd_tensor_match_guardrb  rì   rû   rÿ  ri  ry  rC  Úadd_dimension_marking_guardr»   rŒ  )rÈ   rW  r  r  r  Úmetrics_contextÚtensor_namer²   ÚtermsÚtermÚterm_srcÚ
real_valuerb  rÎ  rh  rC  rc  rã   rè  Údim_marking_attrsÚexpected_attrsÚabsent_attrsr  rŠ  Údependent_attrsÚdep_attr_namesÚ	gate_attrÚ
attr_values                               r¿   ÚTENSOR_MATCHzGuardBuilder.TENSOR_MATCH{  sÛ  € õ Ô1ð 	°e×6JÒ6JÑ6LÔ6Lð 	ØˆFõ " %Ñ(Ô(ð V	9Ø�MŠM˜%Ñ Ô Ð Ð Ð å˜%¥Ñ/Ô/ð  Ø˜™œ�à"Ð.�E�E°D·H²H¸U±O´OˆEå˜%‘[”[ˆFÝ!œH×3Ò3°EÑ:Ô:ˆMÝ˜%¥Ô!2Ô!=Ñ>Ô>ð 8Ø”<Ð+Ø"œ\�FØÔ&Ð2Ø$)Ô$7�Må˜e¥U¤\Ñ2Ô2ð RÝ$Ð%PÅ4ÈÁ;Ä;Ð%PÐ%PÑQÔQÐQåÔ-ð @µ*¸UÅEÄHÔDVÑ2WÔ2Wð @Ý"5Ñ"7Ô"7�Ø"×.Ò.Ñ0Ô0ð @Ø#×-Ò-¨m¸U¿[º[¹]¼]ÑKÔKÐKØ#×-Ò-¨m¸U¼\ÑJÔJÐJØ#×-Ò-¨m¸QÑ?Ô?Ð?àŸ,š, uÑ-Ô-ˆKð, !ˆDØÔ$Ô1Ð9Ý$Ð%UÑVÔVÐVØÔ$Ô1Ô8ð OJØ—’ Ñ&Ô&Ð&ðð ð �ð "ð 
Mð 
M�DÝ)¨%Ô*BÀDÑIÔI�HØ˜|Ò+Ð+Ø-˜Ý#;¸HÑ#EÔ#E˜Ø!%§¢¨(Ñ!3Ô!3�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õ JØ!Ô4ñô ð	Qõ % UÔ%=Õ?PÑQÔQð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�å%;Ý.ØØ#ØØØØ%ñô ð ñ
&ô 
&Ð"ð #Ô-�
Ø×4Ò4ØØØØØ&ØØØ!ñ	ô 	ð 	õ " %­¬Ô);Ñ<Ô<ð JØÔ&Ô9×=Ò=¸e¼jÑIÔIÐIàŒ|Ð#Ý$Ð%DÑEÔEÐEðN!Ðð 35ˆNØ&(ˆLØ.ð +ð +�	Ý˜5 )Ñ,Ô,ð +Ý07¸¸yÑ0IÔ0I�N 9Ñ-ð !o¨[ð  !oð  !o¸Yð  !oð  !oÕ[bÐchÐjsÑ[tÔ[tð  !oð  !oð  GRð  !oð  !oð  W`ð  !oð  !oð  !o�IØ—K’K 	Ñ*Ô*Ð*Ð*à ×'Ò'¨	Ñ2Ô2Ð2Ø Q¨;Ð QÐ Q¸9Ð QÐ QÐ Q�IØ—K’K 	Ñ*Ô*Ð*Ð*ð MOˆOØMˆNØ2ˆIÝ�u˜iÑ(Ô(ð +Ø!/ð +ð +�IÝ!(¨°	¸4Ñ!@Ô!@�JØ2<¸iÐ1H�O IÑ.ð !X¨[ð  !Xð  !X¸Yð  !Xð  !XÐT^ð  !Xð  !XÐozð  !Xð  !Xð  @Ið  !Xð  !Xð  !X�IØ—K’K 	Ñ*Ô*Ð*Ð*ð ð  ð °ð Ø×&Ò& uÑ-Ô-×IÒIØ"Ø Ø#Ý*¨4°Ñ7Ô7ØÔ$ñô ð õ �4‰yŒy˜1Š}ˆ}Ø×+Ò+¨E°4Ñ8Ô8Ð8Ð8Ð8ð ˆ}rÁ   rV  r‹  rå  c                óT  — t          ¦   «         }|€t          d¦  «        ‚|j        }~|€t          d¦  «        ‚|p|j        j        }~|| j        j        vrt          d|› �¦  «        ‚|€!|j        }|sd n|                      |¦  «        }	n|}	|	�!t          j
        t          |	¦  «        ¦  «        nd }
d }t          |	j        dd¦  «        dk    }|r@t          |	t          j        t           t          j        f¦  «        st          j
        |	¦  «        }|                     ||
||¦  «         d S )Nzcurrentframe() returned Nonezcaller frame must not be NonezH_produce_guard_code must be called from inside GuardedCode. Called from Ú__weakrefoffset__r   )r   r  Úf_backr¦  Úco_namerÑ   rÃ  rÿ  rÐ  ÚweakrefrŽ  r  rC  r  ÚenumÚEnumrJ  Ú
ProxyTypesÚset_export_info)rÈ   rW  rV  r‹  rå  Ú	cur_frameÚcallerÚ	func_namerÿ  Úguarded_objectÚguarded_object_typeÚobj_refÚsupports_weakrefs                r¿   rŒ  z#GuardBuilder._set_guard_export_info`  sh  € õ !‘N”Nˆ	ØÐÝ Ð!?Ñ@Ô@Ð@ØÔ!ˆØØˆ>Ý Ð!@ÑAÔAÐAØ&Ð?¨&¬-Ô*?ˆ	Øà˜DœNÔ3Ð3Ð3Ý ØfÐ[dÐfÐfñô ð ð
 #Ð*Ø”:ˆDØ)-ÐB˜T˜T°4·8²8¸E±?´?ˆNˆNà4ˆNð 2@Ð1K�GŒK�˜^Ñ,Ô,Ñ-Ô-Ð-ÐQUð 	ð ˆõ �NÔ,Ð.AÀ1ÑEÔEÈÒJð 	ð ð 	2¥JØ�TœY­­wÔ/AÐBñ%
ô %
ð 	2õ ”k .Ñ1Ô1ˆGà×ÒØØØØñ		
ô 	
ð 	
ð 	
ð 	
rÁ   )FNN)r¦  r³   r§  r¨  r©  rª  r«  r¬  r­  r­  rä   r­  rb  rÚ   r®  r¯  r°  rÌ   r±  r«  r²  r³  r¶   rÍ   )r>  r!  rW  r:   r¶   rÍ   )r  r!  rW  r:   r¶   rÍ   )r>  r   r¶   ræ  )ri  rW   r<  r   r=  r   r>  r   rJ  rµ   rñ  rµ   r?  r@  r¶   r   )ri  r>   r¶   rÌ   )ri  r>   r>  r  r¶   r@  )r  r@  r¶   rÌ   )r¶   r   )ri  r>   r¶   r   )rW  r:   r¶   r   r}  )
râ   rX  rã   rX  rà   r«  r_  rÌ   r¶   rÍ   rÞ   )rn  ro  rà   rp  r¶   r   )rW  ru  r¶   rµ   )rW  r:   r  rµ   ry  r}  r¶   rÍ   )rW  r:   rù  rd  r¶   rÍ   )rW  r:   rù  ræ  r¶   rÍ   )rW  r:   r¶   rÍ   )rW  r:   r"  rµ   r¶   rÍ   )rW  r:   r"  r   r¶   rÍ   )rW  r:   rñ  rd  r¶   rÍ   )rW  r:   r  ræ  r¶   rÍ   )rW  r:   r°  r>   r¶   rÍ   )NN)
rW  r:   rV  rX  r‹  ræ  rå  rd  r¶   rÍ   )NrÔ   rÕ   rÖ   rí   rß  rå  rE  rð  r  r  rÛ  r  r  r7  rÚ  rm  rÐ  r|  r‚  r’  r‘  r˜  r§  r®  r£  r³  r½  rÂ  rÊ  rÎ  r×  rÝ  rã  râ  rï  rö  r–  rú  r  r  rk  ro  r,  rr  rw  r1  r{  r~  r7  ra  rg  rq  r{  r  rƒ  rˆ  rƒ  r…  rŠ  r�  r—  r�  r§  r¯  r¸  r½  rÃ  rÉ  rÎ  rÐ  rÓ  rÕ  rÜ  râ  rç  r;  re  rŒ  r\  rÁ   r¿   r¥  r¥  œ  s@  € € € € € ð "Ø9=àðMFð MFð MFð MFð MFð^ð ð ð ð<(ð (ð (ð (ðT ðð ð ñ „\ðð"]ð ]ð ]ð ]ð~9ð 9ð 9ð 9ð"ð "ð "ð "ð2?ð ?ð ?ð ?ð
ð 
ð 
ð 
ðDð Dð Dð DðLLð Lð Lð Lð 26Ø ðYð Yð Yð Yð YðP /3ðð ð ð ð ð&ð ð ð ð ð ð ð ð$ Ðð
ð 
ð SÐRðñ ô ð60ð 60ð 60ð 60ñô ð60ðp ÐØMÐMØFÐFðñ ô ð
 04ð0ð 0ð 0ð 0ñ	ô ð0ð> ÐØ8Ð8Ø?Ð?ðñ ô ð
ð 
ð 
ñ	ô ð
ð4 Ðð
ð 
ðð ð	ñ ô ð
ð 
ð 
ñô ð
ð< "ð
ð 
ð 
ñ "Ô!ð
ð ÐØLÐLØ9Ð9ðñ ô ð0ð 0ð 0ñ	ô ð0ð  ÐØLÐLØ=Ð=ðñ ô ð0ð 0ð 0ñ	ô ð0ð  ÐØLÐLØ9Ð9ðñ ô ð0ð 0ð 0ñ	ô ð0ð$ ÐØLÐLØ=Ð=ðñ ô ð0ð 0ð 0ñ	ô ð0ð$ ÐØ2Ð2Ø9Ð9ðñ ô ðð ð ñ	ô ðð$ ÐØ1Ð1Ø5Ð5ðñ ô ð
ð 
ð 
ñ	ô ð
ð ÐØ2Ð2Ø9Ð9ðñ ô ð>ð >ð >ð >ñ	ô ð>ð :>ð ?ð  ?ð  ?ð  ?ð  ?ðD ÐØ1Ð1Ø9Ð9ðñ ô ð

ð 

ð 

ð 

ñ	ô ð

ð ÐØ=Ð=ØDÐDðñ ô ð
ð 
ð 
ñ	ô ð
ð ð
ð 
ð 
ñ Ôð
ð ð
ð 
ð 
ñ Ôð
ð* ð
ð 
ð 
ñ Ôð
ð8 ÐØ1Ø'ðñ ô ð#
ð #
ð #
ñ	ô ð#
ðJ ÐØ,Ø"ðñ ô ð
ð 
ð 
ñ	ô ð
ð ÐØ*Ø ðñ ô ð
ð 
ð 
ñ	ô ð
ð& ÐØ2Ð2Ø9Ð9ðñ ô ðoð oð oð oñ	ô ðoðb ÐØ2Ð2Ø9Ð9ðñ ô ð	%ð 	%ð 	%ñ	ô ð	%ð ÐØQÐQðð ðñ ô ð

ð 
ð 
ñô ð

ð@ ÐØ2Ð2Ø9Ð9ðñ ô ðð ð ñ	ô ðð. ÐØ2Ð2Ø9Ð9ðñ ô ð$ð $ð $ñ	ô ð$ð
 ÐØ2Ð2Ø9Ð9ðñ ô ð'ð 'ð 'ñ	ô ð'ð ÐØ2Ð2Ø9Ð9ðñ ô ð'ð 'ð 'ñ	ô ð'ð ÐØ'Øðñ ô ð
'ð 
'ð 
'ñ	ô ð
'ð ÐØ2Ð2Ø9Ð9ðñ ô ð.ð .ð .ñ	ô ð.ð ÐØ7Ð7Ø>Ð>ðñ ô ðð ð ñ	ô ðð< ÐØFÐFØMÐMðñ ô ð
ð 
ð 
ñ	ô ð
ð& ÐØHÐHØOÐOðñ ô ð
ð 
ð 
ñ	ô ð
ð. ÐØWÐWð
ð 
ðñ ô ð
ð 
ð 
ñô ð
ð* ð,ð ,ð ,ñ Ôð,ð\ ÐØ1Ð1Ø9Ð9ðñ ô ð
ð 
ð 
ñ	ô ð
ð ÐØ?Ð?ØFÐFðñ ô ð

ð 

ð 

ñ	ô ð

ð ÐØCÐCØJÐJðñ ô ðCð Cð Cñ	ô ðCð2 ÐØ1Ð1Ø7Ð7ðñ ô ð$ð $ð $ñ	ô ð$ð ðð ð ñ Ôðð ðð ð ñ Ôðð ðð ð ñ Ôðð ð
ð 
ð 
ñ Ôð
ð  ð
ð 
ð 
ñ Ôð
ð ð
ð 
ð 
ñ Ôð
ð  ðGð Gð Gñ ÔðGðR ÐØKÐKð
ð 
ðñ ô ð[9ð [9ð [9ð [9ñô ð[9ðD /3Ø)-ð4
ð 4
ð 4
ð 4
ð 4
ð 4
ð 4
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 )ÚPyExprCSEPassrQ   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_nameNrW  r\  rÁ   r¿   ÚConfigry  °  s*   € € € € € € à"Ð"Ð"Ñ"Ø$Ð$Ð$Ñ$Ð$Ð$rÁ   r|  c                  ó(   ‡ — e Zd Zd	d„Zd
ˆ fd„Zˆ xZS )úPyExprCSEPass.ExprCounterrR   ry  r¶   rÍ   c                ó   — || _         d S rÞ   )Ú_config)rÈ   rR   s     r¿   rí   z"PyExprCSEPass.ExprCounter.__init__¶  s   € Ø!ˆDŒLˆLˆLrÁ   ró   rÙ  c                óÌ   •— t          |t          j        ¦  «        r'| j        j        t          |¦  «        xx         dz  cc<   t          ¦   «                              |¦  «         d S r¹   )r  rw  ÚALLOWED_NODE_TYPESr€  rz  rß  rÏ   r   )rÈ   ró   rÑ   s     €r¿   r   zPyExprCSEPass.ExprCounter.visit¹  s^   ø€ Ý˜$¥Ô @ÑAÔAð AØ”Ô'­°TÑ(:Ô(:Ð;Ð;Ô;¸qÑ@Ð;Ð;Ñ;Ý‰GŒG�MŠM˜$ÑÔÐÐÐrÁ   )rR   ry  r¶   rÍ   )ró   rÙ  r¶   rÍ   ©rÔ   rÕ   rÖ   rí   r   r×   rØ   s   @r¿   ÚExprCounterr~  µ  sQ   ø€ € € € € ð	"ð 	"ð 	"ð 	"ð	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 rÁ   r„  c                  ó,   ‡ — e Zd Zdˆ fd„Zdˆ fd„Zˆ xZS )úPyExprCSEPass.ReplacerrR   ry  Úgen_nameúCallable[[], str]r¶   rÍ   c                ór   •— t          ¦   «                              ¦   «          || _        || _        g | _        d S rÞ   )rÏ   rí   r€  Ú	_gen_nameÚpreface)rÈ   rR   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  rw  r‚  rß  r€  rz  ÚUSE_THRESHOLDr{  rÏ   r   rŠ  r‹  rˆ  rÜ  ÚNameÚLoad)rÈ   ró   ÚexprÚnode_Úexpr_r´   rÑ   s         €r¿   r   zPyExprCSEPass.Replacer.visitÉ  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Á   )rR   ry  r‡  rˆ  r¶   rÍ   )ró   rÙ  r¶   r   rƒ  rØ   s   @r¿   ÚReplacerr†  ¾  s[   ø€ € € € € ð	)ð 	)ð 	)ð 	)ð 	)ð 	)ð	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'rÁ   r“  r¶   rÍ   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Á   )rz  r{  )Ú_counterr|  rÍ  Údefaultdictr€  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É   rÿ  s      r¿   Ú_new_varzPyExprCSEPass._new_varé  s)   € ØÐ)˜$œ-Ð)Ð)ˆØˆŒ˜ÑˆŒØˆrÁ   r"  rX  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„  r€  r   rÜ  ÚparseÚSyntaxErrorry  Ú	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“  r€  rš  r   rÜ  rœ  r‹  rß  )rÈ   r�  ÚreplacerÚnew_nodes       r¿   rÞ  zPyExprCSEPass.replace÷  sH   € Ø—=’= ¤¨t¬}Ñ=Ô=ˆØ—>’>¥#¤)¨D¡/¤/Ñ2Ô2ˆØÔ¥¨hÑ!7Ô!7Ð7Ð7rÁ   Nr�  )r˜  )rÉ   rµ   r¶   rµ   )r"  rX  r¶   rÍ   ©r�  rµ   r¶   r¤  )rÔ   rÕ   rÖ   r�  rÜ  Ú	AttributeÚCallÚ	Subscriptr‚  ÚdataclassesÚ	dataclassr|  ÚNodeVisitorr„  ÚNodeTransformerr“  rí   rš  r£  rÞ  r\  rÁ   r¿   rw  rw  ¨  s  € € € € € ð €Mð œ-¨¬°3´=ÐAÐàÔð%ð %ð %ð %ð %ñ %ô %ñ Ôð%ð ð  ð  ð  ð  �c”oñ  ô  ð  ð#'ð #'ð #'ð #'ð #'�3Ô&ñ #'ô #'ð #'ðJ
ð 
ð 
ð 
ðð ð ð ð ð
ð ð ð ð8ð 8ð 8ð 8ð 8ð 8rÁ   rw  c                ót   — t          | j        t          ¦  «        pt          j        o| j        t          j        u S rÞ   )r  rù  rb   rR   Ú guard_nn_modules_using_dict_tagsr…  r¥  r{  )rW  s    r¿   Úmust_add_nn_module_guardsr²  ý  s8   € õ
 	�5Ô+­^Ñ<Ô<ð 	
õ Ô3ð :Ø”¥<Ô#9Ð9ðrÁ   c                  ó(   ‡ — e Zd Zdˆ fd„Zdd„Zˆ xZS )	ÚDeletedGuardManagerWrapperÚreasonrµ   r¶   rÍ   c                óV   •— t          ¦   «                              ¦   «          || _        d S rÞ   )rÏ   rí   Úinvalidation_reason)rÈ   rµ  rÑ   s     €r¿   rí   z#DeletedGuardManagerWrapper.__init__  s'   ø€ Ý‰Œ×ÒÑÔÐØ#)ˆÔ Ð Ð rÁ   c                ó   — d | _         d S rÞ   )rß   rÇ   s    r¿   r  z6DeletedGuardManagerWrapper.populate_diff_guard_manager  s   € Ø#ˆÔÐÐrÁ   )rµ  rµ   r¶   rÍ   r�  )rÔ   rÕ   rÖ   rí   r  r×   rØ   s   @r¿   r´  r´    sQ   ø€ € € € € ð*ð *ð *ð *ð *ð *ð$ð $ð $ð $ð $ð $ð $ð $rÁ   r´  c                  óB   — e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
S )r!  rH   r  rã   z_CppShapeGuardsHelper | Noner
  rÌ   r  rî  r  NrW  r\  rÁ   r¿   r!  r!    sN   € € € € € € à)Ð)Ð)Ñ)Ø*Ð*Ð*Ñ*Ø0Ð0Ð0Ñ0ØÐÐÑØ#Ð#Ð#Ñ#Ð#Ð#rÁ   r!  c                  ó$   — e Zd ZU ded<   ded<   dS )ÚGuardsStater£   rÎ  úShapeCodeParts | Noner  NrW  r\  rÁ   r¿   r»  r»    s*   € € € € € € à(Ð(Ð(Ñ(Ø+Ð+Ð+Ñ+Ð+Ð+rÁ   r»  c                  ó0   — e Zd Zddd„Zdd„Zdd	„Zdd„ZdS )Ú_MissingNrµ  rd  r¶   rÍ   c                ó   — || _         d S rÞ   ©Ú_reason)rÈ   rµ  s     r¿   rí   z_Missing.__init__$  s   € ØˆŒˆˆrÁ   rµ   c                ó   — d| j         › d�S ©Nz	_Missing(rg  rÀ  rÇ   s    r¿   râ  z_Missing.__repr__'  ó   € Ø*˜4œ<Ð*Ð*Ð*Ð*rÁ   c                ó   — d| j         › d�S rÃ  rÀ  rÇ   s    r¿   r{  z_Missing.__str__*  rÄ  rÁ   rá   r   Úkwargsc                ó   — t          ¦   «         S rÞ   )r¾  )rÈ   rá   rÆ  s      r¿   Ú__call__z_Missing.__call__/  s   € Ý‰zŒzÐrÁ   rÞ   )rµ  rd  r¶   rÍ   rÒ   )rá   r   rÆ  r   r¶   r   )rÔ   rÕ   rÖ   rí   râ  r{  rÈ  r\  rÁ   r¿   r¾  r¾  #  si   € € € € € ðð ð ð ð ð+ð +ð +ð +ð+ð +ð +ð +ð
ð ð ð ð ð rÁ   r¾  útuple[type, ...]c                 ó˜   — t           j        j        t          j        f} 	 | t           j        j        j        fz  } n# t          $ r Y nw xY w| S rÞ   )r;  r  rQ  rj  r   Ú_distributed_c10dÚProcessGroupÚAttributeError)rt  s    r¿   Ú_get_unsupported_typesrÎ  3  sY   € õ 	ŒŒÝÔð€CðØ•”Ô*Ô7Ð9Ñ9ˆˆøÝð ð ð Øˆðøøøà€Js   Ÿ: º
AÁAc                  óð  ‡ — e Zd ZdYˆ fd
„ZedZd„¦   «         Zed[d„¦   «         Zed\d„¦   «         Zed]d„¦   «         Zed^d"„¦   «         Z	ed_d&„¦   «         Z
ed`d*„¦   «         Zedad-„¦   «         Zedbd1„¦   «         Zedcd4„¦   «         Zeddd7„¦   «         Zeded9„¦   «         Zedfd=„¦   «         Zedgd@„¦   «         ZedhdB„¦   «         ZedidD„¦   «         ZedjdH„¦   «         ZedkdL„¦   «         ZedldU„¦   «         ZdmdX„Zˆ xZS )nÚGuardsStatePicklerrÌ  údict[int, Any]Úempty_valuesÚmissing_valuesrá   r   rÆ  r¶   rÍ   c                óú   •—  t          ¦   «         j        |i |¤Ž t          j                             ¦   «         | _        t          j        j                             ¦   «         | _        || _	        || _
        || _        d S rÞ   )rÏ   rí   r;  r¡  ÚFakeTensorModeÚ	fake_modeÚfake_tensorÚFakeTensorConverterÚtensor_converterrÌ  rÒ  rÓ  )rÈ   rÌ  rÒ  rÓ  rá   rÆ  rÑ   s         €r¿   rí   zGuardsStatePickler.__init__B  so   ø€ ð 	�‰ŒÔ˜$Ð) &Ð)Ð)Ð)ÝÔ*×9Ò9Ñ;Ô;ˆŒÝ %Ô 1Ô =× QÒ QÑ SÔ SˆÔØ!2ˆÔØ(ˆÔØ,ˆÔÐÐrÁ   Ústateútorch.nn.Modulec                ól   — t           j                             ¦   «         }|                     |¦  «         |S rÞ   )r;  r@  rA  Ú__setstate__)ri  rÚ  Úmods      r¿   Ú_unpickle_modulez#GuardsStatePickler._unpickle_moduleQ  s,   € åŒh�oŠoÑÔˆØ×Ò˜ÑÔÐØˆ
rÁ   Úmeta_tensorr’  rÊ  útorch.devicer  r  Údispatch_keys_rawr·   Úgradc           	     ó  — t           j                             ¦   «         }t           j        j                             ¦   «         }|                     ||||t           j        j                             |¦  «        ¦  «        }||_	        |S rÞ   )
r;  r¡  rÕ  r×  rØ  Úfrom_meta_and_devicer  r¡   Úfrom_raw_reprrã  )	ri  rà  rÊ  r  râ  rã  rÖ  rÙ  rt  s	            r¿   Ú_unpickle_tensorz#GuardsStatePickler._unpickle_tensorW  sv   € õ Ô%×4Ò4Ñ6Ô6ˆ	Ý Ô,Ô8×LÒLÑNÔNÐØ×3Ò3ØØØØÝŒHÔ#×1Ò1Ð2CÑDÔDñ
ô 
ˆð ˆŒØˆ
rÁ   ÚctxÚ
inner_dataúlist[tuple[str, Any]]c                ó  — t          |¦  «        }|j        |                     ¦   «         }	}t          |¦  «                             ||||	¦  «        }
||
_        t          j        j         	                    |¦  «        |
_
        |
S rÞ   )r*  rb  rc  r  Ú__tensor_unflatten__r  r;  r  r¡   ræ  r  )ri  rà  rÊ  r  râ  rè  ré  Úinner_tensorsÚ
outer_sizeÚouter_striderY  s              r¿   Ú$_unpickle_traceable_wrapper_subclassz7GuardsStatePickler._unpickle_traceable_wrapper_subclassl  sy   € õ ˜ZÑ(Ô(ˆà#.Ô#4°k×6HÒ6HÑ6JÔ6J�Lˆ
Ý�;ÑÔ×4Ò4Ø˜3 
¨Lñ
ô 
ˆð ˆŒ
Ý!œHÔ3×AÒAÐBSÑTÔTˆÔØˆ
rÁ   Úaliasrµ   útypes.ModuleTypec                ó*   — t          j        |¦  «        S rÞ   )rÓ  rÔ  )ri  rñ  s     r¿   Ú_unpickle_python_modulez*GuardsStatePickler._unpickle_python_module€  s   € åÔ& uÑ-Ô-Ð-rÁ   rò  útorch._C.DispatchKeySetc                óJ   — t           j        j                             |¦  «        S rÞ   )r;  r  r¡   ræ  )ri  rò  s     r¿   Ú_unpickle_dispatch_key_setz-GuardsStatePickler._unpickle_dispatch_key_set„  s   € åŒxÔ&×4Ò4°XÑ>Ô>Ð>rÁ   ÚjsonÚbytesú torch._C._functorch.CInterpreterc                óT   — t           j        j        j                             |¦  «        S rÞ   )r;  r  r  ÚCInterpreterÚdeserialize)ri  rø  s     r¿   Ú_unpickle_functorch_interpreterz2GuardsStatePickler._unpickle_functorch_interpreterˆ  s    € õ ŒxÔ"Ô/×;Ò;¸DÑAÔAÐArÁ   Údr!  ú types.MappingProxyType[Any, Any]c                ó*   — t          j        |¦  «        S rÞ   )rB  ÚMappingProxyType)ri  rÿ  s     r¿   Ú_unpickle_mapping_proxyz*GuardsStatePickler._unpickle_mapping_proxyŽ  s   € õ Ô% aÑ(Ô(Ð(rÁ   Úelemsú	list[Any]c                óZ   — t                                |¦  «                             ¦   «         S rÞ   )r*  Úfromkeysrÿ  )ri  r  s     r¿   Ú_unpickle_dict_keysz&GuardsStatePickler._unpickle_dict_keys”  s    € å�}Š}˜UÑ#Ô#×(Ò(Ñ*Ô*Ð*rÁ   r2  r¦  úitertools.count[int]c                ó,   — t          j        ||¦  «        S rÞ   )Ú	itertoolsr£  )ri  r2  r¦  s      r¿   Ú_unpickle_count_iterz'GuardsStatePickler._unpickle_count_iter˜  s   € åŒ˜t TÑ*Ô*Ð*rÁ   Úoriginal_typeútype[torch.nn.Module]c                óh   — t           j        j        j        j                             ¦   «         |         S rÞ   )r;  rT  ÚfsdpÚ_fully_shardÚget_cls_to_fsdp_cls)ri  r  s     r¿   Ú_unpickle_fsdp_module_typez-GuardsStatePickler._unpickle_fsdp_module_typeœ  s,   € õ Ô Ô%Ô2Ô?×SÒSÑUÔUØô
ð 	
rÁ   údict[str, Any]ú)torch.nn.parallel.DistributedDataParallelc                ó¦   — t           j        j        j        }|                     |¦  «        }t           j        j                             ||¦  «         |S rÞ   )r;  r@  ÚparallelÚDistributedDataParallelÚ__new__rA  rÝ  )ri  rÚ  ÚtyÚddps       r¿   Ú_unpickle_ddp_modulez'GuardsStatePickler._unpickle_ddp_module¤  s?   € õ ŒXÔÔ6ˆØ�jŠj˜‰nŒnˆÝŒŒ×$Ò$ S¨%Ñ0Ô0Ð0Øˆ
rÁ   rÿ  c                ó@   — t          t          j        j        |¦  «        S rÞ   )rC  r;  Úopsr  )ri  rÿ  s     r¿   Ú_unpickle_c_opz!GuardsStatePickler._unpickle_c_op­  s   € å•u”y”| TÑ*Ô*Ð*rÁ   Ú	namespaceÚopnameÚoverloadnamec                ón   — t          t          t          t          j        |¦  «        |¦  «        |¦  «        S rÞ   )rC  r;  r  )ri  r   r!  r"  s       r¿   Ú_unpickle_opzGuardsStatePickler._unpickle_op±  s(   € å•w�w¥u¤y°)Ñ<Ô<¸fÑEÔEÀ|ÑTÔTÐTrÁ   Úfuncr  c                ó,   — t          j        ||¦  «        S rÞ   )rB  rD  )ri  r%  r  s      r¿   Ú_unpickle_bound_methodz)GuardsStatePickler._unpickle_bound_methodµ  s   € åÔ  dÑ+Ô+Ð+rÁ   útorch.nn.attention.SDPBackendc                óJ   — t          t          j        j        j        | ¦  «        S rÞ   )rC  r;  r@  Ú	attentionÚ
SDPBackend©rÿ  s    r¿   Ú_unpickle_sdp_backendz(GuardsStatePickler._unpickle_sdp_backend¹  s   € õ •u”xÔ)Ô4°dÑ;Ô;Ð;rÁ   r�  c                óV   ‡— dˆfd„}|j         €t          d¦  «        ‚|j         d         S )Nr¶   r   c                 ó   •— ‰ S rÞ   r\  )r�  s   €r¿   rº  z,GuardsStatePickler._unpickle_cell.<locals>._À  s   ø€ ØˆJrÁ   z-Closure must not be None when unpickling cellr   )r¶   r   )r®   r  )ri  r�  rº  s    ` r¿   Ú_unpickle_cellz!GuardsStatePickler._unpickle_cell¾  sG   ø€ ð	ð 	ð 	ð 	ð 	ð 	ð Œ=Ð Ý Ð!PÑQÔQÐQØŒ}˜QÔÐrÁ   Úfieldsrú  útype[NamedTuple]c                ó,   — t          j        ||¦  «        S rÞ   )rÍ  Ú
namedtuple)ri  rÿ  r1  s      r¿   Ú_unpickle_named_tuple_typez-GuardsStatePickler._unpickle_named_tuple_typeÇ  s   € õ
 Ô% d¨FÑ3Ô3Ð3rÁ   Úserialized_coder¥   r³   c                ó.   — ddl m}  |j        |¦  «        S )Nr   r¤   )Útorch._dynamo.packager¥   Úto_code_object)ri  r6  r¥   s      r¿   Ú_unpickle_codez!GuardsStatePickler._unpickle_codeÎ  s'   € à8Ð8Ð8Ð8Ð8Ð8à,ˆ~Ô,¨_Ñ=Ô=Ð=rÁ   r²   rZ  ÚqualnameÚargdefsútuple[object, ...] | NoneÚclosureú!tuple[types.CellType, ...] | Noneútypes.FunctionTypec                ód   — t          j        |¦  «        j        }t          j        |||||¦  «        S rÞ   )rÓ  rÔ  rÃ  rB  rC  )ri  r²   rZ  r;  r<  r>  r  s          r¿   Ú_unpickle_nested_functionz,GuardsStatePickler._unpickle_nested_functionÔ  s0   € õ Ô+¨FÑ3Ô3Ô<ˆ	ÝÔ! $¨	°8¸WÀgÑNÔNÐNrÁ   r*  ú0tuple[Callable[..., Any], tuple[Any, ...]] | Anyc                óÀ  — dd l }t          |¦  «        | j        v r$t          |¦  «        j        t          |¦  «        ffS t          j        |¦  «        r+ddlm} t          | ¦  «        j	         |j
        |¦  «        ffS t          |¦  «        | j        v r	t          dfS t          |t          j        ¦  «        �rÞ|j        j        dk    �rÍddlm} t          |¦  «        | j        vr	t          dfS  ||¦  «        rçg }|                     ¦   «         \  }}|D ]Z}t+          ||¦  «        }	t          |	t          j        ¦  «        r|	| j        t          |	¦  «        <   |                     ||	f¦  «         Œ[t          | ¦  «        j        t          j        |d¬¦  «        |j        t          |¦  «        t          j                             |¦  «                             ¦   «         ||ffS t          |¦  «        }
t          |t          j        j        ¦  «        r|j        �|j        nt          j        }
t          | ¦  «        j        t          j        |d|j         ¬¦  «        |j        |
t          j                             |¦  «                             ¦   «         |j!        ffS t          |t          j"        j#        ¦  «        �rrt          |¦  «        | j        vr	t          d	fS |j$         %                    ¦   «         D ]l}t          |t          j        t          j"        j#        f¦  «        rŒ.t          |¦  «        | j        v rŒEtM          |¦  «        rŒU|| j        t          |¦  «        <   Œmt          |t          j"        j'        j(        ¦  «        r)t          | ¦  «        j)        | *                    ¦   «         ffS t          |¦  «        j+        t          |¦  «        j,        k    rtZ          S |j.        j*        t          j"        j#        j*        k    r)t          | ¦  «        j/        | *                    ¦   «         ffS �nt          j0        |¦  «        rt          | ¦  «        j1        |j,        ffS t          |t          j        j2        ¦  «        r)t          | ¦  «        j3        |                     ¦   «         ffS t          |t          j        j4        j5        ¦  «        r)t          | ¦  «        j6        | 7                    ¦   «         ffS t          j8        |¦  «        rWts          ||j:        ¦  «        rBtw          |d
¦  «        r2tw          |d¦  «        sty          d|› d�¦  «        ‚|j=        |j>        ffS t          j8        |¦  «        rWts          |t~          ¦  «        rBtw          |d¦  «        r2|j+        |j,        k    r"t          | ¦  «        j@        |j,        |jA        ffS t          |t          jB        ¦  «        rt‡          d|› d|jD        › d�¦  «        ‚t          |tŠ          jF        ¦  «        r)t          | ¦  «        jG        | H                    ¦   «         ffS t          |¦  «        t’          u r>t•          |¦  «        \  }}|tZ          ur!|tZ          urt          | ¦  «        jK        ||ffS �n¦t          |t          jL        jM        jN        ¦  «        r$t          | ¦  «        jO        t¡          |¦  «        ffS t          |t          jQ        jR        ¦  «        r6|jS         T                    d¦  «        rt          | ¦  «        jU        |j,        ffS t          |t          jQ        jV        ¦  «        r(t          | ¦  «        jW        |jX        |jY        |jZ        ffS |j.        j[        dk    r|j.        j,        dk    r	t          dfS t          |t¹          ¦   «         ¦  «        r	t          dfS t          j]        |¦  «        r£d|j+        v r4t          | ¦  «        j^        |j_        |j[        |j+        |j`        |ja        ffS |j[        tÄ          jc        v rRtÄ          jc        |j[                 }|j+         d                    d¦  «        D ]}t+          ||d ¦  «        }Œ||ur	t          dfS n½t          je        |¦  «        r[|jf        }|jg        }t+          ||j,        ¦  «        }t          je        |¦  «        r|jf        }||urt          | ¦  «        jh        ||ffS nNt          |t           d„ d¦  «        ja        d         ¦  «        ¦  «        rt          | ¦  «        ji        |jj        ffS tw          t          jk        d¦  «        rCt          |t          jk        jl        jm        ¦  «        rt          |¦  «        | j        vr	t          dfS t          |t          j"        jn        jo        ¦  «        rt          | ¦  «        jp        |jq        ffS t          |¦  «        j+        t          |¦  «        j,        k    rSt          |t~          ¦  «        s>t          jL        jr         s                    dt          |¦  «        › d|› d�d z   d!z   ¦  «        ‚t          j8        |¦  «        rötw          t          jk        d"¦  «        rÜts          |t          jk        jt        ju        jv        ¦  «        r³|t          jk        jt        ju        jv        ur–|jw        d#         }ts          |t          j"        j#        ¦  «        sty          d$|› �¦  «        ‚|t          jk        jt        ju        ju         x                    ¦   «         vrty          |› d%�¦  «        ‚t          | ¦  «        jy        |ffS tZ          S )&Nr   r¤   )zmissing valuesÚmeta)Úis_traceable_wrapper_subclass)ztensor guard tree)rÊ  )rÊ  r  )zmodule guard treeÚ_torch_handler_nameÚ_torch_unpicklerzsympy Function subclass z% must have _torch_unpickler attributerÁ  zCannot serialize SymInt z (node: rg  z_C::rÂ  Ú	PyCapsule)Úcapsule)Úunsupportedz<locals>r¼  )zfqn mismatchc                ó   ‡ — ˆ fd„S )Nc                 ó   •— ‰ S rÞ   r\  rÂ  s   €r¿   r¸  zGGuardsStatePickler.reducer_override.<locals>.<lambda>.<locals>.<lambda>Œ  s   ø€ °Q€ rÁ   r\  rÂ  s   `r¿   r¸  z5GuardsStatePickler.reducer_override.<locals>.<lambda>Œ  s   ø€ ¨Y¨Y¨Y¨Y€ rÁ   Údistributed_c10d)zdistributed_c10d.Workr,  r-  r.  r/  r0  r  rY  z!Expected nn.Module subclass, got z* not found in FSDP cls-to-fsdp-cls mapping)zÚsympyr‚  rÒ  r  r  rŸ  Úiscoder8  r¥   r:  Úfrom_code_objectrÓ  r¾  r  r;  r<  rÊ  Útorch.utils._python_dispatchrF  rÌ  rg  rC  rˆ  rð  Ú
empty_liker  rM  rò  r¡  r¢  r  rç  r  rã  r@  rA  rÃ  r,  rL  r  r  r  rÚ  rÖ   rÔ   ÚNotImplementedrÑ   rß  r‡  rô  r¡   r÷  r  rü  rþ  Ú	serializeræ  r(  ÚFunctionry  r  rH  rG  rJ  r5  rÁ  r  rB  ró   rB  r  r  rÄ  Ú_COUNT_ITERATOR_TYPEr•   r  r¥  rÕ  r�   r  r÷  Ú_opsÚOpOverloadPacketÚ_qualified_op_nameÚ
startswithr  Ú
OpOverloadr$  r   Ú_opnameÚ_overloadnamerÕ   rÎ  Ú
isfunctionrB  r­   r«   r®   rë  Úmodulesr†  Úismethodr°   Ú__self__r'  r0  r8  rT  rN  ÚWorkr*  r+  r-  rÿ  rT   ÚPackageErrorr  r  Ú
FSDPModuler±   r  r  )rÈ   r*  rO  r¥   rF  ré  Úattrsrè  rù  Úinnerr  r2  r¦  Úfrÿ  r%  Úmethod_selfÚ
inner_funcr  s                      r¿   Úreducer_overridez#GuardsStatePickler.reducer_overrideá  sò
  € ð 	ˆˆˆåˆc‰7Œ7�dÔ'Ð'Ð'Ý˜‘9”9Ô$¥t¨C¡y¤y lÐ2Ð2åŒ>˜#ÑÔð 	VØ<Ð<Ð<Ð<Ð<Ð<å˜‘:”:Ô,Ð/N¨~Ô/NÈsÑ/SÔ/SÐ.UÐUÐUåˆc‰7Œ7�dÔ)Ð)Ð)ÝÐ0Ð0Ð0å�c�5œ<Ñ(Ô(ñ \	C¨S¬Z¬_ÀÒ-FÑ-FØRÐRÐRÐRÐRÐRå�#‰wŒw˜dÔ4Ð4Ð4ÝÐ!7Ð7Ð7à,Ð,¨SÑ1Ô1ð ð  �
Ø ×3Ò3Ñ5Ô5‘
��sà!ð 5ð 5�DÝ# C¨Ñ.Ô.�EÝ! %­¬Ñ6Ô6ð BØ<A˜Ô.­r°%©y¬yÑ9Ø×%Ò% t¨U mÑ4Ô4Ð4Ð4å˜D‘z”zÔFÝÔ$ S°Ð8Ñ8Ô8Ø”JÝ˜‘I”IÝ”H×+Ò+¨CÑ0Ô0×9Ò9Ñ;Ô;ØØðIð ð õ ˜#‘Y”YˆFÝ˜#�uÔ0Ô;Ñ<Ô<ð PØ'*¤zÐ'=˜œ˜Å5Ä<�å˜‘:”:Ô.ÝÔ  ¨VÀ3ÔCTÐUÑUÔUØ”
ØÝ”×'Ò'¨Ñ,Ô,×5Ò5Ñ7Ô7Ø”ð1ð ð õ ˜�UœXœ_Ñ-Ô-ñ q	CÝ�#‰wŒw˜dÔ4Ð4Ð4ÝÐ!7Ð7Ð7àœ×+Ò+Ñ-Ô-ð 5ð 5�Ý˜d¥U¤\µ5´8´?Ð$CÑDÔDð ØÝ�d‘8”8˜tÔ5Ð5Ð5ØÝ˜D‘>”>ð ØØ04�Ô#¥B t¡H¤HÑ-Ð-õ
 ˜#�uœxÔ0ÔHÑIÔIð NÝ˜D‘z”zÔ6¸×9IÒ9IÑ9KÔ9KÐ8MÐMÐMå�C‰yŒyÔ%­¨c©¬Ô);Ò;Ð;Ý%Ð%ØŒ}Ô)­U¬X¬_Ô-IÒIÐIÝ˜D‘z”zÔ2°S×5EÒ5EÑ5GÔ5GÐ4IÐIÐIñ Jõ Ô˜cÑ"Ô"ð Y	CÝ˜‘:”:Ô5¸¼°ÐFÐFå˜�UœXÔ4Ñ5Ô5ð V	CÝ˜‘:”:Ô8¸3¿<º<¹>¼>Ð:KÐKÐKå˜�UœXÔ0Ô=Ñ>Ô>ð S	CÝ˜‘:”:Ô=ÀÇÂÁÄÐ?QÐQÐQõ ŒO˜CÑ Ô ðP	Cå˜3 ¤Ñ/Ô/ðP	Cõ ˜Ð2Ñ3Ô3ðP	Cõ
 ˜3Ð 2Ñ3Ô3ð Ý$ØY¨sÐYÐYÐYñô ð ð Ô'¨#Ô*AÐ)CÐCÐCõ ŒO˜CÑ Ô ðE	Cå˜3¥Ñ&Ô&ðE	Cõ ˜˜YÑ'Ô'ðE	Cð Ô  C¤LÒ0Ð0å˜‘:”:Ô8¸3¼<ÈÌÐ:UÐUÐUå˜�Uœ\Ñ*Ô*ð =	CÝÐR¸#ÐRÐRÀsÄxÐRÐRÐRÑSÔSÐSå˜�UÔ3Ñ4Ô4ð :	CÝ˜‘:”:Ô5¸¿º¹
¼
°}ÐDÐDå�#‰YŒYÕ.Ð.Ð.Ý-¨cÑ2Ô2‰JˆD�$Ø�>Ð)Ð)¨d½.Ð.HÐ.HÝ˜D‘z”zÔ6¸¸t¸ÐDÐDùå˜�Uœ]Ô0Ô:Ñ;Ô;ð 2	CÝ˜‘:”:Ô1µD¸±I´I°<Ð?Ð?åØ•”Ô,ñ
ô 
ð /	CàÔ$×/Ò/°Ñ7Ô7ð/	Cõ ˜‘:”:Ô,¨s¬|¨oÐ=Ð=å˜�UœZÔ2Ñ3Ô3ð *	CÝ˜‘:”:Ô*Ø”Ø”ØÔ!ð-ð ð ð ŒMÔ$¨
Ò2Ð2Ø”Ô&¨+Ò5Ð5õ ˜\Ð)Ð)å˜Õ3Ñ5Ô5Ñ6Ô6ð 	CÝÐ-Ð-Ð-åÔ Ñ$Ô$ð 	CØ˜SÔ-Ð-Ð-Ý˜D‘z”zÔ;Ø”LØ”NØÔ$ØÔ$Ø”Oð>ð ð ð Œ~¥¤Ð,Ð,Ý”K ¤Ô/�ØÔ,×2Ò2°3Ñ7Ô7ð /ð /�DÝ  4¨Ñ.Ô.�A�AØ˜C�<�<Ý#Ð%6Ð6Ð6øÝÔ˜cÑ"Ô"ð 
	CØ”<ˆDØœ,ˆKÝ  ¨d¬mÑ<Ô<ˆJÝÔ 
Ñ+Ô+ð 1Ø'Ô0�
Ø˜:Ð%Ð%Ý˜D‘z”zÔ8¸4ÀÐ:MÐMÐMð &õ ˜�TÐ#6Ð#6Ð#6¸Ñ":Ô":Ô"FÀqÔ"IÑJÔJÑKÔKð 	CÝ˜‘:”:Ô,¨sÔ/@Ð.BÐBÐBå•5Ô$Ð&8Ñ9Ô9ð 	<½jØ•Ô"Ô3Ô8ñ?
ô ?
ð 	<õ �#‰wŒw˜dÔ4Ð4Ð4ÝÐ!;Ð;Ð;å�c�5œ8Ô-Ô8Ñ9Ô9ð 	AÝ˜‘:”:Ô3°c´h°[Ð@Ð@å�‰9Œ9Ô!¥T¨#¡Y¤YÔ%7Ò7Ð7Å
È3ÕPUÑ@VÔ@VÐ7Ý”-Ô#×0Ò0ØE�˜S™	œ	ÐEÐE¨sÐEÐEÐEØTñUàTñUñô ð õ ŒO˜CÑ Ô ð	Oå�Ô)¨6Ñ2Ô2ð	Oõ ˜3¥Ô 1Ô 6Ô CÔ NÑOÔOð	Oð
 �%Ô+Ô0Ô=ÔHÐHÐHØ #¤¨A¤�Ý! -µ´´ÑAÔAð Ý(ØK¸MÐKÐKñô ð ð "Ý Ô,Ô1Ô>ÔK×_Ò_ÑaÔaðbð bõ )Ø(ÐTÐTÐTñô ð õ ˜D‘z”zÔ<¸}Ð>NÐNÐNåÐrÁ   )rÌ  rÑ  rÒ  rÑ  rÓ  rÑ  rá   r   rÆ  r   r¶   rÍ   )rÚ  r   r¶   rÛ  )rà  r’  rÊ  rá  r  r  râ  r·   rã  r’  r¶   r’  )rà  r’  rÊ  rá  r  r  râ  r·   rè  r   ré  rê  r¶   r’  )rñ  rµ   r¶   rò  )rò  r·   r¶   rõ  )rø  rù  r¶   rú  )rÿ  r!  r¶   r   )r  r  r¶   r   )r2  r·   r¦  r·   r¶   r	  )r  r  r¶   r  )rÚ  r  r¶   r  )rÿ  rµ   r¶   r   )r   rµ   r!  rµ   r"  rµ   r¶   r   )r%  r   r  r   r¶   r   )rÿ  rµ   r¶   r(  )r�  r   r¶   r   )rÿ  rµ   r1  rú  r¶   r2  )r6  r¥   r¶   r³   )r²   r³   rZ  rµ   r;  rµ   r<  r=  r>  r?  r¶   r@  )r*  r   r¶   rC  )rÔ   rÕ   rÖ   rí   rF  rß  rç  rð  rô  r÷  rþ  r  r  r  r  r  r  r$  r'  rE  r-  r0  r5  r:  rB  rk  r×   rØ   s   @r¿   rÐ  rÐ  A  sÅ  ø€ € € € € ð-ð -ð -ð -ð -ð -ð ðð ð ñ „[ðð
 ðð ð ñ „[ðð( ðð ð ñ „[ðð& ð.ð .ð .ñ „[ð.ð ð?ð ?ð ?ñ „[ð?ð ðBð Bð Bñ „[ðBð
 ð)ð )ð )ñ „[ð)ð
 ð+ð +ð +ñ „[ð+ð ð+ð +ð +ñ „[ð+ð ð
ð 
ð 
ñ „[ð
ð ðð ð ñ „[ðð ð+ð +ð +ñ „[ð+ð ðUð Uð Uñ „[ðUð ð,ð ,ð ,ñ „[ð,ð ð<ð <ð <ñ „\ð<ð ð ð  ð  ñ „[ð ð ð4ð 4ð 4ñ „[ð4ð ð>ð >ð >ñ „[ð>ð
 ð	Oð 	Oð 	Oñ „[ð	OðRð Rð Rð Rð Rð Rð Rð RrÁ   rÐ  Úbuilderrˆ   c           	     óV  — t          ¦   «         }t          | j        ¦  «        }|dk    rd}|}n$	 |                     | ¦  «        }d}n#  |}d}Y nxY wt	          | j        ¦  «        d u}t          ||||                      ¦   «         | j        rt          | j        ¦  «        nd|| ¬¦  «        S )Nrw  FTr\  )rÿ  Ú	has_valuer  Ú
guard_typeÚderived_guard_typesÚ	is_globalÚ
orig_guard)
r  Ústrip_local_scoperÿ  rÐ  r+   rù  rˆ   Úcreate_fn_nameÚguard_typesrJ  )rW  rl  ÚMISSINGrÿ  rn  r  rq  s          r¿   Úmake_guard_filter_entryrw  ¶  sË   € Ý‰hŒh€GÝ˜UœZÑ(Ô(€DØˆr‚z€zØˆ	Øˆˆð		ð
 —K’K Ñ&Ô&ˆEØˆIˆIøð	ØˆEØˆIˆIˆIøøøÝ& uÔ'?Ñ@Ô@ÈÐL€IÝØØØØ×'Ò'Ñ)Ô)Ø9>Ô9JÐR�U 5Ô#4Ñ5Ô5Ð5ÐPRØØðñ ô ð s   ¯A ÁArÚ  rù  c                ó¨  ‡— t          j        ¦   «         }i }i }‰j        }t          j        | j        j        ¦  «        }|D ]¬}t          j        |¦  «        rst          |d¦  «        rc|j
        }t          |¦  «        |vrJ	 t          |¦  «                             t          |¦  «        ¦  «         ||t          |¦  «        <   Œ�#  Y Œ…xY wŒ‰t          |¦  «        |vr||t          |¦  «        <   Œ­t          ||||¦  «        }	t          t           j                             ˆfd„| j        j        D ¦   «         ¦  «        ¦  «        r$t)          ¦   «         | j        _        i | j        _        	 |	                     | ¦  «         nD# t0          $ r7}
t           j        j                             t9          |
¦  «        ¦  «        |
‚d }
~
ww xY w|                     ¦   «         S )Nrb  c                ó0   •— g | ]}t          |‰¦  «        ‘ŒS r\  ©rw  ©r  rW  rl  s     €r¿   r_  z'pickle_guards_state.<locals>.<listcomp>î  s3   ø€ ð ð ð àõ (¨¨wÑ7Ô7ðð ð rÁ   )ÚioÚBytesIOrÌ  r)  Útree_leavesrÎ  r­  rŸ  ra  ry  rb  r‚  r  r  rÐ  r!  r;  ÚcompilerÚkeep_portable_guards_unsafer§   rê   rÏ  rä   ÚdumprÍ  r¥  rT   rd  rµ   rz  )rÚ  rl  ÚbufrÒ  rÓ  rÌ  ÚleavesÚleafr  Úpicklerr¡  s    `         r¿   Úpickle_guards_stater†  Ó  sã  ø€ õ Œ*‰,Œ,€CØ€LØ€NØÔ1ÐåÔ Ô 2Ô >Ñ?Ô?€FØð ,ð ,ˆÝÔ˜DÑ!Ô!ð 	,¥g¨d°JÑ&?Ô&?ð 	,Ø”=ˆDÝ�$‰xŒxÐ0Ð0Ð0ðÝ˜‘J”J×&Ò&¥t¨D¡z¤zÑ2Ô2Ð2Ø-1�L¥ D¡¤Ñ*Ð*øðØ�Døøøð 1õ �‰XŒXÐ.Ð.Ð.ð (,ˆN�2˜d™8œ8Ñ$øÝ Ð!2°LÀ.ÐRUÑVÔV€Gå
ÝŒ×2Ò2ðð ð ð à"Ô/Ô6ðñ ô ñ	
ô 	
ñô ð 
-õ 14±´ˆÔÔ-Ø*,ˆÔÔ'ð<Ø�Š�UÑÔÐÐøÝð <ð <ð <ÝŒmÔ×,Ò,­S°©V¬VÑ4Ô4¸!Ð;øøøøð<øøøà�<Š<‰>Œ>Ðs%   Á?ACÃCÅ&E< Å<
F=Æ2F8Æ8F=c                  ój   — e Zd ZU 	 	 	 	 	 	 	 d0d1d„ZdZded<   d2d„Z	 d3d4d$„Zd5d&„Zd6d)„Z	d7d-„Z
d8d/„ZdS )9r¯  NFr¦  r³   rÎ  r¢   Úcache_entriesúlist[CacheEntry] | Nonerå   ú"Callable[[GuardFail], None] | Noner²  r³  r  r¼  r±  rp  r°  rÌ   Ústrict_errorr¶   rÍ   c
           	     ól	  ‡ ‡‡‡‡— |r|j         nd }
i ‰ _        t          |pg ¦  «        }|‰ _        ‰ j        €t	          d¦  «        ‚|‰ _        |r|j        nd ‰ _        t          ¦   «         ‰ _        t          ¦   «         ‰ _	        t          ¦   «         ‰ _
        |‰ _        d ‰ _        d ‰ _        t          d¦  «        st                               d¦  «         t"          j        j        j        r|pd„ Šd&ˆfd	„}t+          |
pd
t,          j        ¬¦  «        }t"          j                             ¦   «         5  |rÆ‰                      ||||d¦  «        \  Š} |ˆfd„|D ¦   «         ¦  «        Št7          ‰¦  «        t7          |¦  «        k    r0t	          dt7          ‰¦  «        › dt7          |¦  «        › d�¦  «        ‚t9          d„ ‰D ¦   «         ¦  «        st	          d¦  «        ‚ˆfd„t;          |¦  «        D ¦   «         }‰                      ||||||¬¦  «        \  Š}|‰ _        ‰                      ‰||¦  «         d d d ¦  «         n# 1 swxY w Y   ‰j         ‰ j        _         tB           "                    d‰ j        ¦  «         ‰j         ‰ j        _         dŠ|j#        sç|j$        sà‰ j         %                    |j&        ¦  «        s@tO          ‰ j        |j&        tQ          j)        ¦   «         d ¬¦  «        }t	          d|› �¦  «        ‚tT          �tU          ‰ j        |j&        ‰¦  «         tW          ‰ j        j,        |j&        d¦  «        ŠtB           "                    d‰d›¦  «         t[          j.        dt_          ‰¦  «        ¦  «         d ‰ _0        |rèddl1m2} tg          ‰ j        |¦  «        s$t	          dti          ‰ j        ¦  «        › �¦  «        ‚	 ‰  5                    ‰|‰ j        ¦  «        ‰ _0        n†# tl          j7        $ rt}t"          j        j        j8        s|	r|‚‰ j         9                    d tu          |¦  «        › �tw          j<        ¦   «          =                    d!¦  «        ¬"¦  «         Y d }~nd }~ww xY wt"          j>         ?                    d#ˆˆ fd$„¬%¦  «         ‰ j         @                    ¦   «          d ‰ _        d S )'Nr×  r¿  z9guard_nn_modules is turned off using justknobs killswitchc                ó   — d„ | D ¦   «         S )Nc                ó   — g | ]}d ‘ŒS )Tr\  )r  Úgs     r¿   r_  zCCheckFunctionManager.__init__.<locals>.<lambda>.<locals>.<listcomp>0  s   € Ð>PÐ>PÐ>PÈ¸tÐ>PÐ>PÐ>PrÁ   r\  )Úgss    r¿   r¸  z/CheckFunctionManager.__init__.<locals>.<lambda>0  s   € Ð>PÐ>PÈRÐ>PÑ>PÔ>P€ rÁ   r§   úSequence[GuardFilterEntry]r¶   úSequence[bool]c                ó\  •— g }t           ‰| ¦  «        | ¦  «        D ]Ž\  }}|s|                     d¦  «         Œ|j        dv sd|j        v s	d|j        v rAt                               d|j        |j        j        ¦  «         |                     d¦  «         Œy|                     d¦  «         Œ�|S )NF)rã  rŠ  r½  r³  rã  r³  z7%s guard on %s is dropped with caching_precompile=True.T)r"  rˆ  ro  rp  ry  rz  rr  rÿ  )r§   rt  Úkeepr�  Ú_guard_filter_fns       €r¿   r²  z6CheckFunctionManager.__init__.<locals>.guard_filter_fn2  s×   ø€ Ø�Ý"Ð#3Ð#3°FÑ#;Ô#;¸VÑDÔDð )ð )‘G�D˜!Øð )ØŸ
š
 5Ñ)Ô)Ð)Ð)àœððð ð &¨Ô)>Ð>Ð>Ø)¨QÔ-BÐBÐBåŸšØUØœLØœLÔ-ñô ð ð
 Ÿ
š
 5Ñ)Ô)Ð)Ð)àŸ
š
 4Ñ(Ô(Ð(Ð(Ø�
rÁ   r\  )r"  Fc                ó0   •— g | ]}t          |‰¦  «        ‘ŒS r\  rz  r{  s     €r¿   r_  z1CheckFunctionManager.__init__.<locals>.<listcomp>_  s$   ø€ ÐXÐXÐXÀÕ,¨U°GÑ<Ô<ÐXÐXÐXrÁ   zfilter_results length (z) != sorted_guards length (rg  c              3  óB   K  — | ]}t          |¦  «        t          u V — Œd S rÞ   )r  rÌ   ©r  r|  s     r¿   r  z0CheckFunctionManager.__init__.<locals>.<genexpr>f  s,   è è € ÐCÐC¨q�4 ™7œ7¥d˜?ÐCÐCÐCÐCÐCÐCrÁ   z'All filter_results entries must be boolc                ó*   •— g | ]\  }}‰|         ¯|‘ŒS r\  r\  )r  r  rW  Úfilter_resultss      €r¿   r_  z1CheckFunctionManager.__init__.<locals>.<listcomp>h  s8   ø€ ð !ð !ð !Ù&˜a ÀnÐUVÔFWð!Øð!ð !ð !rÁ   )r²  ú%sg        )ÚbackendziGuard failed on the same frame it was created. This is a bug - please create an issue.Guard fail reason: rQ   zGuard eval latency = %s usú.2fÚguard_latency_usr   ré  rê  zGuard evaluation failed: rÛ  )Ú	tracebackÚdynamo_cpp_guards_strc                 ó    •— ‰j         › d‰ d›d�S )Nz
Guard latency = r�  z us)rb  )ÚlatencyrÈ   s   €€r¿   r¸  z/CheckFunctionManager.__init__.<locals>.<lambda>Ê  s   ø€  $Ô"4ÐXÐXÈÐXÐXÐXÐX€ rÁ   ©Ú
payload_fn)r§   r‘  r¶   r’  )Ar§   Ú	_weakrefsÚ5update_diff_guard_managers_for_existing_cache_entriesrÎ  r  r  rÞ  rM   rŽ  r³  r´  r±  rÙ  rà  rF   ry  rz  r;  r¥  rR   Úcaching_precompilerø   r:   Úsort_keyr  ÚDisableTorchFunctionÚbuild_guardsr»   r!  rá  rb  Úcompile_check_fnrè   rd  re  Úskip_guards_checkr  r~  r­  Úget_guard_fail_reason_helperr7   r+  rœ   r$   rÛ   r5   Úincrement_toplevelr·   Úguards_stater  r¢   r  r  Úserialize_guardsrT   rd  Ústrict_precompileÚbypass_packagerµ   rŸ  Ú
format_excr†  Ú_loggingÚtrace_structuredÚclear)rÈ   r¦  rÎ  rˆ  rå   r²  r  r±  r°  r‹  r§   Úexisting_diff_guard_sourcesÚsorted_guardsrb  Úreasonsr¢   r¡  r•  rl  rš  r¢  s   `                @@@@r¿   rí   zCheckFunctionManager.__init__  s  øøøøø€ ð )5Ð>�Ô$Ð$¸$ˆØ;=ˆŒõ BÀ-ÐBUÐSUÑVÔVð 	$ð 7CˆÔØÔÐ$Ý Ð!@ÑAÔAÐAð !1ˆÔð
 7CÐLˆLÔ2Ð2Èð 	Ô&õ 3=±,´,ˆÔÝ;E¹<¼<ˆÔ'Ý<F¹L¼LˆÔ(Ø$8ˆÔ!ØMQˆÔØMQˆÔ/åÐBÑCÔCð 	UÝ�KŠKÐSÑTÔTÐTõ Œ=ÔÔ2ð 	Ø.ÐQÐ3PÐ3PÐðð ð ð ð ð õ4 ˜v˜|¨µ´Ð@Ñ@Ô@ˆõ ŒX×*Ò*Ñ,Ô,ð %	Ið %	IØð ð *.×):Ò):Ø!Ø/ØØ Øñ*ô *Ñ&�˜ð "1 ØXÐXÐXÐXÈ-ÐXÑXÔXñ"ô "�õ �~Ñ&Ô&­#¨mÑ*<Ô*<Ò<Ð<Ý(ðGµ#°nÑ2EÔ2Eð Gð GÝ14°]Ñ1CÔ1CðGð Gð Gñô ð õ ÐCÐC°NÐCÑCÔCÑCÔCð TÝ(Ð)RÑSÔSÐSð!ð !ð !ð !Ý*3°MÑ*BÔ*Bð!ñ !ô !�ð
 &*×%6Ò%6ØØ+ØØØØ /ð &7ñ &ô &Ñ"ˆG�]ð "/ˆDÔØ×!Ò! '¨=¸-ÑHÔHÐHðK%	Ið %	Ið %	Iñ %	Iô %	Ið %	Ið %	Ið %	Ið %	Ið %	Ið %	Iøøøð %	Ið %	Ið %	Ið %	Ið^ .5Ô-DˆÔÔ*å×Ò˜˜tÔ1Ñ2Ô2Ð2Ø-4Ô-DˆÔÔ*ð ˆàÔ-ð %	T°lÔ6Ið %	TØÔ%×+Ò+¨LÔ,DÑEÔEð 
Ý6ØÔ&Ø Ô,Ý"Ô5Ñ7Ô7Ø ð	ñ ô �õ %ð4Ø*1ð4ð 4ñô ð õ
 -Ð8Ý-ØÔ&¨Ô(@À'ñô ð õ ,ØÔ"Ô'¨Ô)AÀ1ñô ˆGõ ×ÒÐ9¸gÐ;KÐ;KÑLÔLÐLõ Ô1Ð2DÅcÈ'ÁlÄlÑSÔSÐSà*.ˆÔØð 	ØDÐDÐDÐDÐDÐDå˜dÔ/Ð1BÑCÔCð Ý$ØPµt¸DÔ<MÑ7NÔ7NÐPÐPñô ð ð
Ø$(×$9Ò$9Ø˜]¨DÔ,=ñ%ô %�Ô!Ð!øõ Ô#ð ð ð Ý”=Ô'Ô9ð ¸\ð Ø�GØÔ!×0Ò0Ø8µ°A±´Ð8Ð8Ý'Ô2Ñ4Ô4×:Ò:¸4Ñ@Ô@ð 1ñ ô ð ð ð ð ð ð øøøøðøøøõ 	Œ×'Ò'Ø#ØXÐXÐXÐXÐXð 	(ñ 	
ô 	
ð 	
ð 	Œ×ÒÑÔÐØ ˆÔÐÐs,   Ä0DIÉIÉIÏ!O) Ï)Q,Ï8A*Q'Ñ'Q,)r³  r{  rã  r  rƒ  rˆ  rŠ  r½  ztuple[LiteralString, ...]Ú%UNSUPPORTED_SERIALIZATION_GUARD_TYPESrl  r¥  r¸  úlist[Guard]rù  c                óR  ‡ ‡‡‡‡— |D ]Û}|                      ¦   «         }|j        rt          |j        ¦  «        nd}|dv r,|j        r$|                     |¦  «        }t          |¦  «         Œc|t          j        v r't          j	        j
                             |› d�¦  «        ‚t          d„ |D ¦   «         d ¦  «        x}r't          j	        j
                             |› d�¦  «        ‚ŒÜ|j        pdŠt          ¦   «         Št          ¦   «         Šdˆˆˆfd
„}	|                     ¦   «         }
|D ]]}t!          |j        t$          ¦  «        r1‰ j        st)          d¦  «        ‚‰ j        j        D ]} |	|¦  «         ŒŒM |	|j        ¦  «         Œ^|j        D ]} |	|¦  «         Œdd„Šˆ ˆfd„|
j                             ¦   «         D ¦   «         }ˆ fd„|
j        ‰                              ¦   «         D ¦   «         |‰<   t3          j        |
ˆ ˆfd„|
j                             ¦   «         D ¦   «         |t          j                             t=          ˆfd„|D ¦   «         ¦  «        ¦  «        t?          j         tB          |
j"        ¦  «        d¬¦  «        }
tG          |
‰ j        ¬¦  «        }tI          ||¦  «        S )Nr\  )r§  r�  z guard cannot be serialized.c              3  ó6   K  — | ]}|t           j        v ¯|V — Œd S rÞ   )r¯  rº  )r  r  s     r¿   r  z8CheckFunctionManager.serialize_guards.<locals>.<genexpr>ú  s=   è è € ð ð àØÕ0ÔVÐVÐVð àVÐVÐVÐVðð rÁ   rw  ri  r>   r¶   rÍ   c                óˆ  •— t          | ¦  «        x}rSt          |t          ¦  «        st          dt	          |¦  «        › �¦  «        ‚|‰k    r‰                     |¦  «         d S d S t          | ¦  «        x}rKt          |t          ¦  «        st          dt	          |¦  «        › �¦  «        ‚‰                     |¦  «         d S d S )NzExpected str, got )r+   r  rµ   r  r  rû   r,   )ri  rÿ  Úbuiltins_dict_nameÚused_global_varsÚused_local_varss     €€€r¿   Úprune_variablez=CheckFunctionManager.serialize_guards.<locals>.prune_variable
  sá   ø€ Ý-¨fÑ5Ô5Ð5ˆtð *Ý! $­Ñ,Ô,ð LÝ(Ð)J½dÀ4¹j¼jÐ)JÐ)JÑKÔKÐKð Ð-Ò-Ð-Ø$×(Ò(¨Ñ.Ô.Ð.Ð.Ð.ð .Ð-å.¨vÑ6Ô6Ð6�ð *Ý! $­Ñ,Ô,ð LÝ(Ð)J½dÀ4¹j¼jÐ)JÐ)JÑKÔKÐKØ×#Ò# DÑ)Ô)Ð)Ð)Ð)ð*ð *rÁ   z6shape_code_parts must be set for ShapeEnvSource guardsr|  úCallable[..., None]c                ó  ‡— t          | t          j        ¦  «        rcdd„Št          ˆfd„| j        D ¦   «         ¦  «        }ˆfd„| j                             ¦   «         D ¦   «         }t          j        | j        g|¢R i |¤ŽS | S )Nr|  r   r¶   c                ó\   — t          | t          t          j        f¦  «        r
 | ¦   «         S | S rÞ   )r  rP   rj  rŽ  rÂ  s    r¿   Ú_refzPCheckFunctionManager.serialize_guards.<locals>.normalize_create_fn.<locals>._ref+  s+   € Ý! !¥mµW´[Ð%AÑBÔBð #Ø ˜q™sœs˜
Ø�HrÁ   c              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S rÞ   r\  )r  r5  rÆ  s     €r¿   r  zUCheckFunctionManager.serialize_guards.<locals>.normalize_create_fn.<locals>.<genexpr>0  s+   øè è € Ð 9Ð 9¨Q   a¡¤Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9rÁ   c                ó.   •— i | ]\  }}| ‰|¦  «        “ŒS r\  r\  )r  ÚkÚvrÆ  s      €r¿   ú
<dictcomp>zVCheckFunctionManager.serialize_guards.<locals>.normalize_create_fn.<locals>.<dictcomp>1  s'   ø€ ÐJÐJÐJ©t¨q°!  4 4¨¡7¤7ÐJÐJÐJrÁ   )r|  r   r¶   r   )r  Ú	functoolsÚpartialrJ  rá   r†  rú   r%  )r|  Únew_argsÚnew_keywordsrÆ  s      @r¿   Únormalize_create_fnzBCheckFunctionManager.serialize_guards.<locals>.normalize_create_fn(  s¢   ø€ Ý˜!�YÔ.Ñ/Ô/ð 	Lðð ð ð õ
 !Ð 9Ð 9Ð 9Ð 9°!´&Ð 9Ñ 9Ô 9Ñ9Ô9�ØJÐJÐJÐJ°q´z×7GÒ7GÑ7IÔ7IÐJÑJÔJ�Ý Ô(¨¬ÐK°(ÐKÐKÐK¸lÐKÐKÐKàˆHrÁ   c                ó6   •— i | ]\  }}|‰v s	|‰j         v ¯||“ŒS r\  )r´  )r  rÉ  rÊ  rÈ   rÀ  s      €€r¿   rË  z9CheckFunctionManager.serialize_guards.<locals>.<dictcomp>6  sB   ø€ ð 
ð 
ð 
á��1ØÐ$Ð$Ð$¨¨TÔ-MÐ(MÐ(Mð ˆqà(MÐ(MÐ(MrÁ   c                ó.   •— i | ]\  }}|‰j         v ¯||“ŒS r\  )rŽ  )r  rÉ  rÊ  rÈ   s      €r¿   rË  z9CheckFunctionManager.serialize_guards.<locals>.<dictcomp>;  s=   ø€ ð 2
ð 2
ð 2
ñ ��1ð �DÔ*Ð*Ð*ð ˆqð
 +Ð*Ð*rÁ   c                ó6   •— i | ]\  }}|‰v s	|‰j         v ¯||“ŒS r\  )r³  )r  rÉ  rÊ  rÈ   rÁ  s      €€r¿   rË  z9CheckFunctionManager.serialize_guards.<locals>.<dictcomp>E  sA   ø€ ð ð ð á�A�qØ˜Ð'Ð'¨1°Ô0OÐ+OÐ+Oð �1à+OÐ+OÐ+OrÁ   c           	   3  ód   •K  — | ]*}t          j        |d d  ‰|j        ¦  «        ¬¦  «        V — Œ+d S )N)Úobj_weakrefÚguarded_class_weakrefr…  )r¬  rÞ  r…  )r  rW  rÐ  s     €r¿   r  z8CheckFunctionManager.serialize_guards.<locals>.<genexpr>L  sd   øè è € ð ð ð õ  Ô'ØØ$(Ø.2Ø"5Ð"5°e´oÑ"FÔ"Fð	ñ ô ðð ð ð ð ð rÁ   T)r­  rä   Ú_guardsrU  r¬  )rÎ  r  )ri  r>   r¶   rÍ   )r|  rÃ  r¶   rÃ  )%rt  ru  rJ  r£  rÐ  r2  r¯  rº  r;  r¥  rT   rd  ÚnextÚ%name_of_builtins_dict_key_in_fglobalsrê   Údump_guards_stater  rù  rx   r  r  r  rÏ  rä   rú   r¬  rÞ  r­  r×  Ú	GuardsSetrM   r)  Útree_mapr
  rU  r»  r†  )rÈ   rl  r¸  rÎ  rW  ro  rp  r*  ÚfailedrÂ  Úoutput_graph_guards_stateri  Úglobal_scope_stater¯  r¿  rÐ  rÀ  rÁ  s   `             @@@@r¿   r°  z%CheckFunctionManager.serialize_guardsâ  sÁ  øøøøø€ ð #ð 	ð 	ˆEØ×-Ò-Ñ/Ô/ˆJØ>CÔ>OÐ"W¥%¨Ô(9Ñ":Ô":Ð":ÐUWÐð Ð<Ð<Ð<ØÔ(ð 0à!Ÿ+š+ eÑ,Ô,�CÝ*¨3Ñ/Ô/Ð/øàÕ2ÔXÐXÐXå”mÔ'×4Ò4Ø!Ð?Ð?Ð?ñô ð õ  ðð à0ðñ ô ð
 ñô ð �ð õ ”mÔ'×4Ò4ØÐ;Ð;Ð;ñô ð ðð *ÔOÐUÐSUÐÝ™5œ5ÐÝ™%œ%ˆð	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð %1×$BÒ$BÑ$DÔ$DÐ!à"ð 		9ð 		9ˆEÝ˜%Ô2µNÑCÔCð 9ØÔ,ð Ý(ØPñô ð ð #Ô3ÔEð +ð +�FØ"�N 6Ñ*Ô*Ð*Ð*ð+ð �˜uÔ7Ñ8Ô8Ð8Ð8à"Ô5ð 	#ð 	#ˆFØˆN˜6Ñ"Ô"Ð"Ð"ð	ð 	ð 	ð 	ð
ð 
ð 
ð 
ð 
à1Ô>×DÒDÑFÔFð
ñ 
ô 
Ðð
2
ð 2
ð 2
ð 2
ð 2Ô>Ø"ôçŠe‰gŒgð2
ñ 2
ô 2
ÐÐ-Ñ.õ %0Ô$7Ø%ðð ð ð ð à5ÔA×GÒGÑIÔIðñ ô ð
 ,Ý”M×+Ò+Ýð ð ð ð ð "/ðñ ô ñ ô ñ
ô 
õ +1¬/Ý.Ø)ÔGñ+ô +ð #ð/%
ñ %
ô %
Ð!õ2 #Ø2Ø!Ô2ð
ñ 
ô 
ˆõ
 # <°Ñ9Ô9Ð9rÁ   r·  rñ   r£   ú(tuple[GuardBuilder, GuardManagerWrapper]c                óÄ  ‡— t          ¦   «         }||_        d Šdˆfd„}t          || j        || j        |j        |j        || || j        |¬¦  «        }	dd
„}
t          j	        |	|
¦  «        Št          j        ot          d¦  «        }|D ]U}|s<|                     ¦   «         r(d|j        vrd|j        vrt          j        s	d|j        vrŒ@|                     |	¦  «         ŒV|	|fS )Nri  r>   r¶   rµ   c                óÈ   •— | j         }|t          j        u r| j        S ‰st	          d¦  «        ‚ ‰¦   «         }|€t	          d¦  «        ‚|                     | j        ¦  «        S )Nz/w_builder must be set before calling source_refz'GuardBuilder has been garbage collected)Úguard_sourcer=   ÚCONSTANTrÿ  r  r|  )ri  rã  Ú	r_builderÚ	w_builders      €r¿   r©  z5CheckFunctionManager.build_guards.<locals>.source_refr  so   ø€ Ø!Ô.ˆLØ�{Ô3Ð3Ð3à”{Ð"Øð XÝ$Ð%VÑWÔWÐWØ!˜	™œˆIØÐ Ý$Ð%NÑOÔOÐOØ×$Ò$ V¤[Ñ1Ô1Ð1rÁ   )r±  r²  Úweak_búweakref.ref[GuardBuilder]rÍ   c                ó0   —  | ¦   «         }|r	d |_         d S d S rÞ   )rÀ  )rç  r·  s     r¿   Úcleanup_builderz:CheckFunctionManager.build_guards.<locals>.cleanup_builder�  s*   € Ø�‘”ˆAØð Ø�”��ðð rÁ   r¿  r«   r¬   r	  )ri  r>   r¶   rµ   )rç  rè  r¶   rÍ   )rÚ   rì   r¥  r§  r«  r­  rä   r±  rj  rŽ  rR   rÔ  rF   rQ  rÿ  rÍ  r  )rÈ   r¸  r·  r¦  rÎ  r°  r²  rb  r©  rl  rê  Úguard_on_nn_modulesrW  ræ  s                @r¿   rª  z!CheckFunctionManager.build_guardsc  sH  ø€ õ ,Ñ-Ô-ˆØ+FˆÔ(àˆ	ð
	2ð 
	2ð 
	2ð 
	2ð 
	2ð 
	2õ ØØŒKØØÔ ØÔ$ØÔ%ØØØØ!%Ô!:Ø+ð
ñ 
ô 
ˆð	ð 	ð 	ð 	õ ”K ¨Ñ9Ô9ˆ	å$Ô5ð 
½/Ø/ñ;
ô ;
Ðð #ð 	"ð 	"ˆEà'ð	à×2Ò2Ñ4Ô4ð	ð
 #¨%¬*Ð4Ð4Ø$¨E¬JÐ6Ð6ÝÔ5ð 7Ø9@ÈÌ
Ð9RÐ9Ràà�LŠL˜Ñ!Ô!Ð!Ð!Ø˜Ð%Ð%rÁ   Ú
guards_outc                óp  ‡‡‡‡— ‰j         }|dgz  }t                               d¦  «         g Šg Šg Š| j        j                             t          t          j        ¦   «         ¦  «        ¦  «         d | _	        	 d$d%ˆˆˆfd„}t          ¦   «         }‰j        D ]7}|j        D ]-}||vr' |||j        d¦  «         |                     |¦  «         Œ.Œ8‰j        }	d }
d }t!          |	¦  «        dk    r1t#          ‰j        |	dd                     |	¦  «        z   dz   gd ¦  «         t(          j        rA‰j        r:t/          t0          t3          ‰j        Ž ¦  «        \  }}‰                     ||¦  «         | j        r| j        j        ng }|D �]8}t;          |t<          ¦  «        rf|j        }|j         }|j!        › d|j!        › �}tE          ‰ #                    |¦  «        ‰ #                    |¦  «        |gd ¦  «          ||d d¦  «         Œ~t;          |tH          ¦  «        r•ˆfd„|j%        D ¦   «         }ˆfd„|j&        D ¦   «         }dd                     d„ |j%        D ¦   «         ¦  «        › dd                     d„ |j&        D ¦   «         ¦  «        › d�}tO          |||gd ¦  «          ||d d¦  «         �Œ(tQ          d|› �¦  «        ‚‰j)        D ]}|j        D ]} |||j        d¦  «         ŒŒ‰r$tT          j+         ,                    dˆfd„¬¦  «         tZ          j.        €t[          j/        ¦   «         j0        }ntc          | j2        dd ¦  «        }|
||| j3        dœth          ¥tk          ¦   «         ¥}| j         6                    ¦   «          d ‰j7        d          i}t!          ‰¦  «        d!k    r tq          d"t!          ‰¦  «        › d#�¦  «        ‚|| j        _9        || j        _:        | j         ;                    ¦   «          ‰| j        _<        || j        _=        || j        _>        d | j        _?        d | j        _@        |	| j        _A        d S )&Nz**___kwargs_ignoredzGUARDS:FrŠ  rµ   rW  rå  Úlog_onlyrÌ   r¶   rÍ   c                ó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²   rë  rè  )rë  rE   Úfrom_tracebackrì  rè  )rŠ  rW  s   €€r¿   r¸  zNCheckFunctionManager.compile_check_fn.<locals>.add_code_part.<locals>.<lambda>È  sr   ø€ Ø%ð !ð"Ø%*¤[ð"�
Ô1°%´+×2EÒ2EÑ2GÔ2GÑHÔHÐHà!ð !ð"Ø%*Ô%5ð"�
Ô1°%Ô2BÑCÔCÐCà!ðð € rÁ   rw  z
Stack:
z
User stack:
zGuard: %s%s%s)rï  rd  re  rˆ  Úverbose_guards_logÚisEnabledForÚloggingÚDEBUGrë  rb  Úformatrè  )	rŠ  rW  rî  r‰  Úmaybe_stackÚmaybe_user_stackrâ   Ústructured_guard_fnsrã   s	   ``    €€€r¿   Úadd_code_partz<CheckFunctionManager.compile_check_fn.<locals>.add_code_partÁ  s[  øøø€ õ !6°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Á   TrQ   zcheck_no_aliasing(rf  rg  r²  c                ó:   •— g | ]}‰                      |¦  «        ‘ŒS r\  ©r7  ©r  rk  rl  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  — | ]}|j         V — Œd S rÞ   r,  ©r  rk  s     r¿   r  z8CheckFunctionManager.compile_check_fn.<locals>.<genexpr>5  s$   è è € Ð/ZÐ/Z¸1°´Ð/ZÐ/ZÐ/ZÐ/ZÐ/ZÐ/ZrÁ   z], non_overlapping=[c              3  ó$   K  — | ]}|j         V — Œd S rÞ   r,  r   s     r¿   r  z8CheckFunctionManager.compile_check_fn.<locals>.<genexpr>6  s$   è è € Ð3bÐ3b¸q°A´FÐ3bÐ3bÐ3bÐ3bÐ3bÐ3brÁ   z])zUnknown GuardEnvExpr: Údynamo_guardsc                 ó   •— d„ ‰ D ¦   «         S )Nc                ó"   — g | ]} |¦   «         ‘ŒS r\  r\  )r  rh  s     r¿   r_  zKCheckFunctionManager.compile_check_fn.<locals>.<lambda>.<locals>.<listcomp>M  s   € Ð4WÐ4WÐ4W¸Q°Q°Q±S´SÐ4WÐ4WÐ4WrÁ   r\  )rù  s   €r¿   r¸  z7CheckFunctionManager.compile_check_fn.<locals>.<lambda>M  s   ø€ Ð4WÐ4WÐBVÐ4WÑ4WÔ4W€ rÁ   r£  r~  )Ú___check_tensorsÚ___check_tensors_verboseÚ___check_global_stateÚ"___check_torch_function_mode_stackr·  r   z,Expected all code_parts to be consumed, but z remainrÓ   )rŠ  rµ   rW  rå  rî  rÌ   r¶   rÍ   )BrÈ  rd  re  rb  rÛ   Úattach_compile_idrµ   r7   r+  rÞ  rê   r²   rV  rW  rû   rÊ  r»   r   rË  rb  rR   rµ  rÓ  r  r÷  r"  rm  rÎ  Úaotautograd_guardsr  r9   Úinput_source_aÚinput_source_brÿ  r    r7  r?   Úoverlapping_sourcesÚnon_overlapping_sourcesr!   rB  rÉ  r;  r´  rµ  rS   Úinitial_global_stateÚGlobalStateGuardr~  rC  rÙ  rà  rK   rØ  r  rÀ  r  rà   rá   rŽ  rã   rä   rå   ræ   rç   ré   )rÈ   rl  rì  rå   Úlargsrú  ÚseenÚgclr²   rÊ  Úcheck_tensors_fnÚcheck_tensors_verbose_fnÚaliasing_code_partsÚaliasing_verbose_code_partsr
  rW  Úsource_ar°  rŠ  Úoverlapping_guard_managersÚnon_overlapping_guard_managersÚcheck_global_staterà   rl  râ   rù  rã   s    `                      @@@r¿   r«  z%CheckFunctionManager.compile_check_fn¨  s�  øøøø€ ð Ô ˆØÐ'Ð(Ñ(ˆå×Ò˜Ñ#Ô#Ð#ð ˆ
ØÐØCEÐð 	ÔÔ×1Ò1Ý•Ô1Ñ3Ô3Ñ4Ô4ñ	
ô 	
ð 	
ð
 *.ˆÔ&ð CHð)	=ð )	=ð )	=ð )	=ð )	=ð )	=ð )	=ð )	=ð )	=õV ‰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Øñ	ô ð õ" Ô6ð		àÔ3ð		õ @CÝ•c˜7Ô>Ð?ñ@ô @Ñ<ÐÐ!<ð ×8Ò8Ø#Ð%@ñô ð ð
 59Ô4EÐMˆDÔÔ0Ð0È2ð 	ð (ð "	Eñ "	EˆEÝ˜%¥Ñ1Ô1ð !EØ Ô/�Ø Ô/�Ø'œ}ÐAÐA°(´-ÐAÐA�	Ý-Ø×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Ð.ð
iØ&*§i¢iÐ/ZÐ/ZÀÔ@YÐ/ZÑ/ZÔ/ZÑ&ZÔ&Zðið ià*.¯)ª)Ð3bÐ3bÀEÔDaÐ3bÑ3bÔ3bÑ*bÔ*bðið ið ið õ
 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ð ,ñ ô ð õ Ô-Ð5å!.Ô!?Ñ!AÔ!AÔ!GÐÐå!(¨Ô):¸GÀTÑ!JÔ!JÐà 0Ø(@Ø%7Ø26Ô2Yð	
ð 
õ
 ð
õ  Ñ!Ô!ð
ˆð 	Ô×#Ò#Ñ%Ô%Ð%à # W¤]°3Ô%7Ð8Ðõ ˆz‰?Œ?˜aÒÐÝ ØW½sÀ:¹¼ÐWÐWÐWñô ð ð +7ˆÔÔ'Ø"'ˆÔÔØÔ×<Ò<Ñ>Ô>Ð>Ø0BˆÔÔ-à*>ˆÔÔ'Ø+8ˆÔÔ(ð *.ˆÔÔ&Ø)-ˆÔÔ&Ø8PˆÔÔ5Ð5Ð5rÁ   Úobj_strrµ   c                óÖ  — t          | d¦  «        rÒt          | j        t          ¦  «        sº| j        j        x}�®| j        j        x}�¢t          |t          ¦  «        st          dt          |¦  «        › �¦  «        ‚t          |t          ¦  «        st          dt          |¦  «        › �¦  «        ‚d|› d�}t          |¦  «        }| 
                    ||¦  «         || _        d S d S d S d S d S )Nrb  zExpected CacheEntry, got zExpected ExtraState, got zCache line invalidated because z got deallocated)ry  r  rb  r´  ræ   rç   rƒ   r  r  r…   Ú
invalidate)rÈ   r  ræ   rç   rµ  Údeleted_guard_managers         r¿   r  zCheckFunctionManager.invalidateu  s  € õ
 �D˜/Ñ*Ô*ð	7å˜tÔ1Õ3MÑNÔNð	7ð !%Ô 2Ô >Ð>�ÐKØ $Ô 2Ô >Ð>�ÐKå˜k­:Ñ6Ô6ð VÝ$Ð%TÅÀkÑARÔARÐ%TÐ%TÑUÔUÐUå˜k­:Ñ6Ô6ð VÝ$Ð%TÅÀkÑARÔARÐ%TÐ%TÑUÔUÐUØP°wÐPÐPÐPˆFÝ$>¸vÑ$FÔ$FÐ!à×"Ò" ;Ð0EÑFÔFÐFØ!6ˆDÔÐÐð	7ð 	7ð 	7ð 	7ð LÐKØKÐKrÁ   r*  r  r·   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¥  rj  rŽ  r  rÌ  rÍ  r  r1  )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=úweakref.ref[object] | Nonec                ó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Á   )NNNNNFF)r¦  r³   rÎ  r¢   rˆ  r‰  rå   rŠ  r²  r³  r  r¼  r±  rp  r°  rÌ   r‹  rÌ   r¶   rÍ   )rl  r¥  r¸  r»  rÎ  r¢   r¶   rù  rÞ   )r¸  r»  r·  rñ   r¦  r³   rÎ  r£   r°  rÌ   r²  r³  r¶   rà  )rl  r¥  rì  r»  rå   rŠ  r¶   rÍ   )r  rµ   r¶   rÍ   )r*  r  r  rµ   r¶   r·   )r*  r  r¶   r!  )rÔ   rÕ   rÖ   rí   rº  r¯   r°  rª  r«  r  r§  r«  r\  rÁ   r¿   r¯  r¯    sÿ   € € € € € € ð
 26Ø<@àØ26Ø6:Ø!Ø"ðP!ð P!ð P!ð P!ð P!ðd	HÐ)ð 	ð 	ð 	ñ 	ð:ð :ð :ð :ðR ðC&ð C&ð C&ð C&ð C&ðJKQð KQð KQð KQðZ7ð 7ð 7ð 7ð*ð ð ð ðð ð ð ð ð rÁ   r¯  Úclosure_argsútuple[str, str]c                óÒ  ‡	— ddl m} t          ¦   «         Š		 ‰	                     | ¦  «         dˆ	fd„}n# t          $ r dd„}Y nw xY w |¦   «         }| 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Þ   )rÞ  )r�  Úcsepasss    €r¿   rÞ  z%build_guard_function.<locals>.replace§  s   ø€ Ø—?’? 4Ñ(Ô(Ð(rÁ   c                ó
   — g | fS rÞ   r\  )r�  s    r¿   rÞ  z%build_guard_function.<locals>.replace­  s   € Ø�t�8ˆOrÁ   zif not (z):zreturn Falsezdef guard(L):zreturn Truezdef ___make_guard_fn(zreturn guardr¨  )
Útorch._inductor.utilsrA   rw  r£  ÚRecursionErrorru  rÐ   ro  Úsplicerz  )
râ   r#  rA   rÞ  Ú
guard_bodyr�  r‹  rW  Úmake_guard_fnr'  s
            @r¿   rc  rc     sý  ø€ Ø4Ð4Ð4Ð4Ð4Ð4å‰oŒo€Gð
Ø�Š�jÑ!Ô!Ð!ð	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øõ ð ð ð ð	ð 	ð 	ð 	ð 	ð 	ðøøøð  �Ñ!Ô!€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Ñ":Ô":Ð:Ð:sE   —3 ³AÁAÂ%CÃC	ÃC	Ä+D=Ä=EÅEÅ?+F6Æ6F:Æ=F:c                 óT   — t           j        j        j                             d¦  «        S )Nr¨   ©r;  r´  Ú	_internalÚ	log_stateÚis_artifact_enabledr\  rÁ   r¿   Úis_recompiles_enabledr3  Ì  s   € ÝŒ>Ô#Ô-×AÒAÀ,ÑOÔOÐOrÁ   c                 óT   — t           j        j        j                             d¦  «        S )Nr©   r/  r\  rÁ   r¿   Úis_recompiles_verbose_enabledr5  Ð  s   € ÝŒ>Ô#Ô-×AÒAÐBVÑWÔWÐWrÁ   Úinitial_stackú'list[torch.overrides.TorchFunctionMode]úCallable[[], bool]c                ó,   ‡— d„ | D ¦   «         Šdˆfd„}|S )Nc                ó,   — g | ]}t          |¦  «        ‘ŒS r\  rš  r˜  s     r¿   r_  z8make_torch_function_mode_stack_guard.<locals>.<listcomp>Ø  s   € Ð,Ð,Ð,˜�T�!‰WŒWÐ,Ð,Ð,rÁ   r¶   rÌ   c                 ó¼   •— t          ¦   «         } t          | ¦  «        t          ‰¦  «        k    rdS t          ‰| ¦  «        D ]\  }}|t          |¦  «        ur dS ŒdS rP  )r�   r»   r"  r  )Ú	cur_stackr  ÚmoderB  s      €r¿   Úcheck_torch_function_mode_stackzMmake_torch_function_mode_stack_guard.<locals>.check_torch_function_mode_stackÚ  sk   ø€ Ý1Ñ3Ô3ˆ	åˆy‰>Œ>�S ™ZœZÒ'Ð'Ø�5å˜E 9Ñ-Ô-ð 	ð 	‰HˆB�Ø�˜d™œÐ#Ð#Ø�u�uð $ð ˆtrÁ   ©r¶   rÌ   r\  )r6  r>  rB  s     @r¿   rß  rß  Õ  s>   ø€ ð -Ð,˜mÐ,Ñ,Ô,€Eð
ð 
ð 
ð 
ð 
ð 
ð +Ð*rÁ   ÚScoperb  rÀ  c                ól  ‡— | j         €t          d¦  «        ‚t          | j         ¦  «        }t          j        t
          ¦  «        Š| j        D ]@}||d<   t          t          |||¦  «        ¦  «        }‰|          	                    |¦  «         ŒAˆfd„‰D ¦   «         }d 
                    |¦  «        }d|› �gS )Nú+guard_manager.global_scope must not be NoneÚ__compile_source__c                óT   •— g | ]$}t          ‰|         ¦  «        d k    ¯‰|         › ‘Œ%S )rQ   r‘  )r  r"  Úids_to_sources     €r¿   r_  zErecompilation_reason_for_no_tensor_aliasing_guard.<locals>.<listcomp>ø  s@   ø€ ð ð ð Ø$'½CÀÈcÔ@RÑ<SÔ<SÐVWÒ<WÐ<Wˆ=˜ÔÐÐ<WÐ<WÐ<WrÁ   rf  zDuplicate tensors found: )rä   r  r*  rÍ  r—  r÷  ré   r‚  Úevalrˆ  rb  )rb  rÀ  rä   Útensor_sourceÚ	tensor_idÚduplicate_tensorsrµ  rE  s          @r¿   Ú1recompilation_reason_for_no_tensor_aliasing_guardrJ  ì  sÝ   ø€ ð Ô!Ð)ÝÐJÑKÔKÐKÝ˜Ô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Á   rk  c                ó<   — ddl }d}|                     |d| ¦  «        S )z®
    Replace occurrences of L[...] with just the inner content.
    Handles both single and double quotes.

    This is to generate user friendly recompilation messages.
    r   NzL\[\s*['\"](.*?)['\"]\s*\]z\1)ÚreÚsub)rk  rL  Úpatterns      r¿   rs  rs     s(   € ð €I€I€Ià+€GØ�6Š6�'˜5 !Ñ$Ô$Ð$rÁ   rè  útraceback.StackSummary | Nonec           	     óF  — | �t          | ¦  «        dk    rdS g }| D ]q}|j        }|j        }|j        }|j        r|j                             ¦   «         nd}|                     d|› d|› d|› �¦  «         |r|                     d|› �¦  «         Œrd                     |¦  «        S )	zÅ
    Format the user stack trace for display in guard failure messages.

    Returns a formatted string representation of the stack trace,
    or an empty string if no user stack is available.
    Nr   rw  z  File "z", line z, in ú    rÛ  )r»   rê  rŸ  rÿ  rÊ   Ústriprˆ  rb  )rè  ÚlinesÚframerê  rŸ  rÿ  Úsource_lines          r¿   Úformat_user_stack_tracerV    sÈ   € ð Ð�S ™_œ_°Ò1Ð1Øˆrà€EØð /ð /ˆØ”>ˆØ”ˆØŒzˆØ,1¬JÐ>�e”j×&Ò&Ñ(Ô(Ð(¸BˆØ�ŠÐE ÐEÐE°&ÐEÐE¸tÐEÐEÑFÔFÐFØð 	/Ø�LŠLÐ- Ð-Ð-Ñ.Ô.Ð.øØ�9Š9�UÑÔÐrÁ   rœ  úCallable[..., object] | Nonec                ó>  — | €dS ddl m} t          | |¦  «        r=d| j        ›d| j        ›�}| j        r|d| j        ›�z  }d|› d	t          | ¦  «        d
›d�S | }d}t          |t          j        ¦  «        r	d}|j	        }t          |dd¦  «        }t          |dd¦  «        }|r
|r|› d|› �}n1|r|}n,t          |d¦  «        r|j        }nt          |¦  «        j        }t          |dd¦  «        }|�d|j        › d|j        › �nd}	|› |› |	› dt          | ¦  «        d
›d�S )zKReturn a human-readable string describing a backend callable for debugging.NrÍ   r   )Ú_TorchCompileWrapperz	compiler=z
, dynamic=z	, kwargs=z_TorchCompileWrapper(z) (id=z#xrg  rw  zfunctools.partial wrapping rÖ   rÕ   r¼  rÔ   r­   z defined at ú:z (id=)r;  rY  r  Úcompiler_nameÚdynamicrÆ  r‚  rÌ  rÍ  r%  rC  ry  rÔ   r  Úco_filenameÚco_firstlineno)
rœ  rY  ÚdetailsÚactualrÉ   r;  rZ  rÿ  r²   Úlocations
             r¿   Údescribe_backendrb  %  s¤  € à€Øˆvð +Ð*Ð*Ð*Ð*Ð*å�'Ð/Ñ0Ô0ð HØT˜gÔ3ÐTÐTÀÄÐTÐTˆØŒ>ð 	6ØÐ5 7¤>Ð5Ð5Ñ5ˆGØG wÐGÐGµb¸±k´kÐGÐGÐGÐGÐGà€FØ€FÝ�&�)Ô+Ñ,Ô,ð Ø.ˆØ”ˆå�v˜~¨tÑ4Ô4€HÝ�V˜\¨4Ñ0Ô0€Fàð %�Fð %ØÐ%Ð%˜8Ð%Ð%ˆˆØ	ð %ØˆˆÝ	�˜Ñ	$Ô	$ð %ØŒˆˆå�F‰|Œ|Ô$ˆå�6˜: tÑ,Ô,€Dð Ðð 	@�tÔ'Ð?Ð?¨$Ô*=Ð?Ð?Ð?àð ð Ð<�dÐ<˜HÐ<Ð<­2¨g©;¬;Ð<Ð<Ð<Ð<Ð<rÁ   Úf_localsÚ
compile_idúCompileId | NoneúCallable | Nonec                óÜ  — | j         €t          d¦  «        ‚| j        €t          d¦  «        ‚|| j         d         dœ}|                     | j        ¦  «         g }d}| j        r| j        j        }d}g }|                      |¦  «        }	d}
|	j        sG|	j        }t          |¦  «        dk    rd	|d
         v rd}n|}g }|	j
        rt          |	j
        ¦  «        }
nZ||k    r=t          |¦  «        }t          |¦  «        }d|› d|› d�}|                     |¦  «         nd}|                     |¦  «         |rt          | |¦  «        }nÕ|D ]Ò}t          | j         ¦  «        }||d<   t!          ¦   «         5  	 t#          |||¦  «        }n*# t$          $ r t'          ¦   «         rY ddd¦  «         Œb‚ 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ŒÓt          |¦  «        dk    r|› d|d
         › �}n|› d�d                     |¦  «        z   }|
r|d|
› �z  }t1          |¦  «        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.
    NrB  z+guard_manager.closure_vars must not be Noner·  rµ  Frw  rQ   zDuplicate tensor foundr   Tz[BACKEND_MATCH failure: torch.compile detected different backend callables. Cached backend: z. New backend: zÕ. If this is unexpected, wrap your backend in functools.partial (or reuse the same cached backend) to avoid creating a new backend function each time. More details: https://github.com/pytorch/pytorch/issues/168373z»Unexpected recompilation: runtime guards failed even though they passed during recompilation-reason analysis. Please open an issue with a minimal repro: https://github.com/pytorch/pytorchrC  r[  z; z
User stack trace:
)rä   r  rà   rþ  ræ   rœ  r�  Úresultrã   r»   rè  rV  rb  rˆ  rJ  r*  rO   rF  Ú	Exceptionr5  r  rÌ   rµ   rb  rs  )rb  rc  rd  rœ  rÀ  r¹  Úcache_entry_backendÚno_tensor_aliasing_check_failedrã   Úguard_debug_infoÚuser_stack_strÚcached_descÚnew_descrµ  r]  rä   Úfail_reasonÚ
reason_strs                     r¿   r­  r­  P  s‰  € ð Ô!Ð)ÝÐJÑKÔKÐKØÔ!Ð)ÝÐJÑKÔKÐKØ Ô!;¸CÔ!@ÐAÐA€EØ	‡L‚L�Ô+Ñ,Ô,Ð,Ø€GàÐØÔ ð @Ø+Ô7Ô?Ðà&+Ð#à$&ÐØ$×2Ò2°8Ñ<Ô<ÐØ€Nð
 Ô"ð (Ø-Ô@Ðõ Ð!Ñ"Ô" aÒ'Ð'Ø'Ð+=¸aÔ+@Ð@Ð@Ø26Ð/Ð/à,�Ø%'Ð"ð Ô&ð 	RÝ4Ð5EÔ5PÑQÔQˆNøØ	 Ò	'Ð	'å&Ð':Ñ;Ô;ˆÝ# GÑ,Ô,ˆðNØ +ðNð Nà%ðNð Nð Nð 	ð 	�Š�vÑÔÐÐð2ð 	ð 	�Š�vÑÔÐà&ð ÝCØ˜5ñ
ô 
ˆˆð 'ð 	ð 	ˆDÝ Ô :Ñ;Ô;ˆLØ15ˆLÐ-Ñ.Ý/Ñ1Ô1ð ð ðÝ"& t¨\¸5Ñ"AÔ"A�K�KøÝ ð ð ð Ý4Ñ6Ô6ð Ø ðð ð ñ ô ð ð ð ð	øøøð  ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ˜+¥tÑ,Ô,ð #°[ð #Ø"�Ý˜+¥sÑ+Ô+ð Ø—’˜{Ñ+Ô+Ð+Ý4Ñ6Ô6ð Ø�Eøõ ˆ7�|„|�qÒÐØ"Ð2Ð2 g¨a¤jÐ2Ð2ˆ
ˆ
à"Ð&Ð&Ð&¨¯ª°7Ñ);Ô);Ñ;ˆ
Øð ?ØÐ>¨nÐ>Ð>Ñ>ˆ
Ý˜ZÑ(Ô(Ð(s6   Å/F:Å1FÆF:ÆF*ÆF:Æ(F*Æ*F:Æ:F>	ÇF>	Fr8   r›   Úskip_loggingc                ó�  — t          | t          ¦  «        r|› d| j        › �S t          | |||¦  «        }|r|S t          t
          |                                       |¦  «         	 | j        �0|                      t          |pdt
          |         ¦  «        ¦  «         n*# t          $ r t                               d¦  «         Y n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‘   r—   rˆ  rå   r‡   ri  ry  rž  )rb  r²   rc  rd  rœ  rr  rq  s          r¿   Úget_guard_fail_reasonrt  Á  sü   € õ �-Õ!;Ñ<Ô<ð DØÐCÐC Ô AÐCÐCÐCÝ-Ø�x ¨Wñô €Jð ð ØÐÝ•= Ô&Ô'×.Ò.¨zÑ:Ô:Ð:ð
ØÔ&Ð2Ø×'Ò'Ý˜*Ð8Ð(8½-ÈÔ:MÑNÔNñô ð øøõ ð 
ð 
ð 
Ý�ŠØdñ	
ô 	
ð 	
ð 	
ð 	
ð
øøøð
 Ðs   Á$7B Â$CÃCrˆ  úlist[CacheEntry]rT  r„   c                óD  ‡— g Š| D ]A}t          |j        |j        |j        |j        ||¦  «        }|r‰                     |¦  «         ŒB|j        }|r‰S 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        |
¦  «        ‚t.          j                             d
d„ ˆfd„¬¦  «         ‰S )zÔ
    Return the list of guard failure reasons using cache entries.
    Logs the recompilation reason if `recompiles` logging is enabled.
    Raises a RecompileError if `config.error_on_recompile` is enabled.
    z

c              3  óT   K  — | ]#\  }}d |› d�t          j        |d¦  «        z   V — Œ$dS )zguard z failures:
ú- N)r'  ro  )r  r  rµ  s      r¿   r  z:get_and_maybe_log_recompilation_reasons.<locals>.<genexpr>  sV   è è € ð #ð #á�A�vð )˜Ð(Ð(Ð(­8¬?¸6À4Ñ+HÔ+HÑHð#ð #ð #ð #ð #ð #rÁ   rÛ  rx  z-triggered by the following guard failure(s):
zRecompiling function z in rZ  rQ  Úartifactc                 ó   — dddœS )NÚrecompile_reasonsrø  )rÿ  Úencodingr\  r\  rÁ   r¿   r¸  z9get_and_maybe_log_recompilation_reasons.<locals>.<lambda>  s   € Ø'Øð
ð 
€ rÁ   c                 ó>   •— t          ‰ ¦  «        dk    r‰ d         n‰ S )NrQ   r   r‘  )r¹  s   €r¿   r¸  z9get_and_maybe_log_recompilation_reasons.<locals>.<lambda>  s   ø€ ­¨W©¬¸Ò):Ð):˜7 1œ:˜:À€ rÁ   )Úmetadata_fnr¤  )rt  rb  r²   rc  rd  rˆ  r¦  r3  r5  rR   Úerror_on_recompilerb  rá  r'  ro  ri  r]  r^  Úrecompiles_verbose_logre  Úrecompiles_logrT   ÚRecompileErrorr;  r´  rµ  )rˆ  rT  rœ  rr  ræ   rµ  r²   Údo_recompiles_logÚfailuresÚguard_failure_detailsÚmessager¹  s              @r¿   Ú'get_and_maybe_log_recompilation_reasonsr‡  à  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×#Ò#Øð
ð 
ð HÐGÐGÐGð $ñ ô ð ð €NrÁ   rñ   c                óØ   — t          ¦   «         }| D ].}|                     |j                             ¦   «         ¦  «         Œ/| D ]'}||j        _        |j                             ¦   «          Œ(|S rÞ   )rM   rþ  rb  r  rì   r  )rˆ  Úacc_diff_guard_sourcesræ   s      r¿   r¦  r¦  $  sŠ   € õ /9©l¬lÐØ$ð 
ð 
ˆØ×%Ò%ØÔ%×@Ò@ÑBÔBñ	
ô 	
ð 	
ð 	
ð %ð @ð @ˆØ7MˆÔ!Ô4ØÔ!×=Ò=Ñ?Ô?Ð?Ð?ð "Ð!rÁ   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 ú rZ  zlambda rf  z and
  r¶  zMalformed guard:
)
Úprintri  r]  r^  rb  rá   râ   rà   rF  rä   )rb  r²   rc  r¼   rŠ  r­  rW  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ÚseqúSequence[T]úGenerator[T, None, None]c              #  ój   K  — t          ¦   «         }| D ]}||vr|V — |                     |¦  «         Œ d S rÞ   )rê   rû   )r�  r  r|  s      r¿   Úuniquer“  T  sJ   è è € Ý‰5Œ5€DØð ð ˆØ�Dˆ=ˆ=ØˆGˆGˆGØ�HŠH�Q‰KŒKˆKøðð rÁ   Ú
obj_sourcer>   Údupe_sourceúfunctools.partial[Any] | Nonec                ó"  — |rŒ|| k    r†t          |¦  «        }t          | ¦  «        }t          |¦  «        st          | ¦  «        r$t          j        | j        › d|j        › d�¦  «        ‚||k    r t          j        t          j        |¬¦  «        S d S )Nz is aliasing zC. This is not supported. Please do a clone for corresponding input.)r°  )	r/   r.   rT   ÚUnsafeScriptObjectErrorrÿ  rÌ  rÍ  r¥  r¸  )r”  r•  Úser_source_is_localÚsource_is_locals       r¿   Úmake_dupe_guardr›  \  s¾   € ð ð Y�{ jÒ0Ð0Ý2°;Ñ?Ô?ÐÝ.¨zÑ:Ô:ˆÝ/Øñ
ô 
ð 	å1°*Ñ=Ô=ð	õ Ô-Ø”?ð ?ð ?°Ô1Að ?ð ?ð ?ñô ð ð  /Ò1Ð1õ Ô$¥\Ô%AÈKÐXÑXÔXÐXØˆ4rÁ   )Úskiprœ  c                ó¼  — ddl m} |                     ¦   «         j        }|j        rdS t
                               t          j        ¦  «        p#t                               t          j        ¦  «        }|j
        j        }|D ]\}t          |t          ¦  «        st          dt          |¦  «        › �¦  «        ‚t!          |j        ¦  «        rŒK |||| 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   )ÚTracingContextNzExpected Guard, got rQ   )Úcollect_debug_stackrœ  )Útorch._guardsrž  rÐ  Úguards_contextÚskip_installrd  ró  rô  rõ  rò  r  rû   r  r:   r  r  r1   rù  )rœ  r§   rž  r¡  rŸ  rû   rW  s          r¿   Úinstall_guardr£  €  sþ   € ð -Ð,Ð,Ð,Ð,Ð,à#×'Ò'Ñ)Ô)Ô8€NØÔ"ð Øˆå$×1Ò1ÝŒñô ð 8å	×	(Ò	(­¬Ñ	7Ô	7ð ð Ô
&Ô
*€CØð Kð KˆÝ˜%¥Ñ'Ô'ð 	GÝ Ð!E½¸U¹¼Ð!EÐ!EÑFÔFÐFÝ$ UÔ%=Ñ>Ô>ð 	ØØˆˆEÐ':ÀÈÁÐJÑJÔJÐJÐJðKð KrÁ   c                ól   — i | ]1}t          t          t          |¦  «        d d¦  «        xa	 ®)|t          “Œ2S )rŽ  N)rC  r¥  r�  )r  rÿ  s     r¿   rË  rË  �  sQ   € ð <ð <ð <àÝ�7¥<°Ñ6Ô6Ð8JÈDÑQÔQÐQˆØðð 	�'ðð ð rÁ   z"dict[str, GuardCheckSpec | object]ÚGUARD_VALUE_DISPATCHc           	     ó‚  — g | ]¼}|d                                ¦   «         r |                     d¦  «        s‹t          t          t          |d¦  «        xa¦  «        rft          t          t          j	        t
          ¦  «        j
        ¦  «        xa¦  «        dk    r(t          d         dk    ¯¥t          t
          d¦  «        °º|‘Œ½S )r   rº  NrY  rQ   rW  rŽ  )Úisupperr[  rL  rC  r¥  Ú_methodr»   r÷  rŸ  Ú	signatureÚ
parametersÚ_paramsry  )r  rš  s     r¿   r_  r_  §  sÉ   € ð 	ð 	ð 	àØˆQ„x×ÒÑÔð	ð ×Ò˜SÑ!Ô!ð		õ
 	�G¥L°%¸Ñ>Ô>Ð>�Ñ?Ô?ð	õ 	•t�GÔ-­gÑ6Ô6ÔAÑBÔBÐBˆGÑCÔCÀqÒHÐHÝ�Œ
�gÒÐÝ•GÐ/Ñ0Ô0ð 	ð 
ð 	ÐÐrÁ   z9GuardBuilder methods missing guard_check_spec decorator: rf  z[. Use @register_guard_check_spec, @skip_guard_check_spec, or @unsupported_guard_check_spec.)r²   r³   r´   rµ   r¶   r·   )r5  r   r¶   r’  )r¶   r›  )r¶   r­  )ró   rÙ  r¶   rµ   )rj  rà  r¶   rµ   )rŠ  rµ   rW  rå  r¶   rµ   rÞ   )râ   rð  rW  rå  rñ  rd  r¶   rX  )ri  rü  r¶   rd  )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·   )ri  r   r¼   r   r¶   rµ   )r*  r   r¶   r
   )r  r   r¶   rÌ   )ri  r;  r<  r   r=  r   r>  r   r?  r@  r¶   r   )rW  r:   r¶   rÌ   )r²   r³   r¶   rX  )rj  r’  r¶   r`  )rW  r   r  r   r¶   r`  )r  r   rh  r`  r¶   rÌ   )rW  r   r  r   r¶   r   )r  r   rh  r   r¶   rÌ   )r  r   r¶   r   )r¶   rÉ  )rW  r:   rl  r¥  r¶   rˆ   )rÚ  r»  rl  r¥  r¶   rù  )râ   rX  r#  rµ   r¶   r$  r?  )r6  r7  r¶   r8  )rb  rÚ   rÀ  r@  r¶   rX  )rk  rµ   r¶   rµ   )rè  rO  r¶   rµ   )rœ  rW  r¶   rµ   )
rb  rÚ   rc  r­  rd  re  rœ  rf  r¶   rµ   rÓ   )rb  rÚ   r²   r³   rc  r­  rd  r8   rœ  r›   rr  rÌ   r¶   rµ   )
rˆ  ru  rT  r„   rœ  r›   rr  rÌ   r¶   rX  )rˆ  ru  r¶   rñ   )rb  r‰   r²   r³   rc  r­  r¼   r·   rŠ  rÌ   r¶   rÍ   )r�  r�  r¶   r‘  )r”  r>   r•  rü  r¶   r–  )r§   r:   rœ  r·   r¶   rÍ   (;  r‘  Ú
__future__r   rÜ  rÂ  rÍ  r¬  rk  rÌ  rÓ  rŸ  r|  r  rô  rÐ  Úpicklerë  r'  rŸ  rB  rí  rj  Ú
contextlibr   rÄ  r   r   Útypingr   r	   r
   r   Útyping_extensionsr   r   r   r   r;  Útorch.overridesÚtorch.utils._deviceÚtorch._C._dynamo.eval_framer   Útorch._C._dynamo.guardsr   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*   Útorch._dynamo.sourcer+   r,   r-   r.   r/   r0   r1   r2   r3   r4   Útorch._dynamo.utilsr5   r6   r   r7   r8   r9   r:   r;   r<   r=   r>   r?   r)  rA   Ú"torch._library.fake_class_registryrB   Útorch._library.opaque_objectrC   rD   Útorch._loggingrE   Útorch._utils_internalrF   Ú%torch.fx.experimental.symbolic_shapesrG   rH   rI   rJ   rK   Útorch.utilsrL   r)  Útorch.utils._ordered_setrM   Útorch.utils._tracebackrN   rO   Útorch.utils.weakrP   rw  rR   rS   rT   Ú
eval_framerU   ri  rV   rW   rX   rY   rZ   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   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   rˆ   r‰   rÕ  rŠ   r‹   rŒ   r�   rŽ   r�   r�   r‘   r’   r“   r”   r•   r–   r—   r˜   r™   rš   Úcollections.abcr›   rœ   r¯   r  r£  rW  Únumpyr–  ÚModuleNotFoundErrorr�   rž   rŸ   rO  r    Útorch._Cr¡   r  r¢   r£   r8  r¥   r¦   Ú	getLoggerrÔ   ry  r´  ÚgetArtifactLoggerrd  r�  r€  rò  rH  rÀ   rÃ   rÚ   rš  Úcacherª  r¬  rØ  rß  r  r¥  rw  rä  rï  rû  rø  r
  r  r  r$  r)  r2  r4  r­  r7  rN  rS  rU  rl  r@  rº   r]  r  r”  rd  rk  ro  rr  rw  r{  r~  rƒ  r…  rŠ  r’  r–  r˜  r£  r¥  rw  r²  r´  r!  r»  r¾  rÎ  ÚPicklerrÐ  rw  r†  r¯  rc  r3  r5  rß  r*  rµ   r@  rJ  rs  rV  rb  r­  rt  r‡  r¦  rŽ  r“  r›  r£  Údirr¥  ÚMISSING_GUARD_SPECSrB  rb  r\  rÁ   r¿   ú<module>rË     så  ððð ð ð" #Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ !Ð !Ð !Ð !Ð !Ð !à €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø >Ð >Ð >Ð >Ð >Ð >ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð8ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð HÐ GÐ GÐ GÐ GÐ GÐ GÐ Gð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 1Ð 0Ð 0Ð 0Ð 0Ð 0Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ %Ð %Ð %Ð %Ð %Ð %Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1ðð ð ð ð ð ð ð ð ð ð ð ð ð ð *Ð )Ð )Ð )Ð )Ð )Ø /Ð /Ð /Ð /Ð /Ð /Ø OÐ OÐ OÐ OÐ OÐ OÐ OÐ OØ *Ð *Ð *Ð *Ð *Ð *à (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,ð.ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð .ð^ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð* ð )Ø(Ð(Ð(Ð(Ð(Ð(ð HLÐ Ð KÐ KÐ KÑ KØ�t˜O˜IœOÑ-Ô-Ñ.Ô.Ð ðØÐÐÐÐøØð ð ð Ø	€B€B€Bðøøøð ð 5Ø=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=àÐÐÐÐÐà'Ð'Ð'Ð'Ð'Ð'ØTÐTÐTÐTÐTÐTÐTÐTØ4Ð4Ð4Ð4Ð4Ð4à€GˆC�L„L€Ø€gÔ˜Ñ!Ô!€ØŒ^×-Ò-¨h¸ÑAÔA€
Ø”×1Ò1°(¸LÑIÔI€Øœ×9Ò9ØÐ"ñô Ð ð ”^×5Ò5°hÐ@PÑQÔQÐ ð"Ð ðð ð ð ð,ð ,ð ,ð ,ð ,˜~ñ ,ô ,ð ,ðQð Qð Qð Qð Qñ Qô Qð QðhTð Tð Tð Tð „ð.ð .ð .ñ „ð.ð +/€Ð .Ð .Ð .Ñ .ðð ð ð ð@/ð /ð /ð /ð ”hÔ&Ô:Ð ðð ð ð ð%ð %ð %ð %ð6 "&ðð ð ð ð ð<ð ð ð ð,'ð 'ð 'ð 'ðKð Kð Kð Kðð ð ð ð*3ð 3ð 3ð 3ð1ð 1ð 1ð 1ðð ð ð ð.ð .ð .ð .ð €Ô˜dÐ#Ñ#Ô#ðð ð ð ð ñ ô ñ $Ô#ðð+ð +ð +ð +ð\
Gð 
Gð 
Gñ 
Gð Ôðð ð ð ð ñ ô ñ Ôñð
ð ð ð ð �t•yñ ô ñ ð
 „ð8ð 8ð 8ñ „ñ8ðð ð ð ð �Zñ ô ñ ð6 ‰V‰XŒX�
ñEð Eð Eñ Eñ
-ð -ð -ñ -ñ;ð ;ð ;ñ ;ñð ð ñ ñ
;ð ;ð ;ñ ;ñ
1ð 1ð 1ñ 1ñ3ð 3ð 3ñ 3ñð ð ñ ñ!ð !ð !ñ !ñ?ð ?ð ?ñ ?ðð ñ ðð ñ ðXð Xð Xð Xð Xñ Xô Xñ Xð$ð ñ ðx'
ð x'
ð x'
ð x'
ð x'
Ð#ñ x'
ô x'
ñ x'
ðXPR8ð R8ð R8ð R8ð R8ñ R8ô R8ñ R8ðjð ð ñ ð$ð $ð $ð $ð $Ð!4ñ $ô $ñ $ð Ôð$ð $ð $ð $ð $ñ $ô $ñ Ôñ$ð Ôð,ð ,ð ,ð ,ð ,ñ ,ô ,ñ Ôñ,ð
ð ð ð ð ñ ô ñ ð  „ñ
ð 
ð 
ñ „ñ
ðrð rð rð rð r˜�ñ rô rñ rñjð ð ñ ñ:)ð )ð )ñ )ðbY
ð Y
ð Y
ð Y
ð Y
ñ Y
ô Y
ñ Y
ñx);ð );ð );ñ );ñXPð Pð Pñ PñXð Xð Xñ Xñ
+ð +ð +ñ +ð( 	ˆ�g™t¡C© KÔ0Ñ1Ô1�ñ2ð 2ð 2ñ 2ñ(
%ð 
%ð 
%ñ 
%ñð ð ñ ñ0(=ð (=ð (=ñ (=ñVn)ð n)ð n)ñ n)ðp ññ ð ð ñ ðH ñAñ Að Að Añ AñH"ð "ð "ñ "ñ,0ð 0ð 0ñ 0ð. Ð Ñ%Ñ &Ô &Ð &ñð ð ñ ñ!ð !ð !ñ !ðH /0ð Kð Kñ Kð Kð Kñ Kð:<ð <à‘‘LÑ!Ô!ð<ñ <ô <Ñ ð ð ð ñ ð	ð 	à‘‘\Ñ"Ô"ð	ñ 	ô 	Ñ ñ ð Ø
‰,ð	EØ�9‹9Ñ(Ñ)Ô)ð	Eð 	Eð 	Eñô ð ðð s   ÈH ÈH)È(H)