§
    Ÿ²Åjk  ã                   óÒ   — d dl mZ ddlmZ ddlmZ  e¦   «         ZeZ G d„ d¦  «        Zd„ Z	d„ Z
 ee¦  «        d	„ ¦   «         Ze  ee¦  «        d
„ ¦   «         Zed„ ¦   «         ZdS )é    )Úcontextmanageré   )Údispatch)Úhashablec                   ó2   — e Zd ZdZdZd„ Zd„ ZeZd„ Zd„ Z	dS )ÚVarzLogic Variabler   c                 óî   — t          |¦  «        dk    r%dt          j        › �}t          xj        dz  c_        nt          |¦  «        dk    r|d         }t                               | ¦  «        }||_        |S )Nr   Ú_r   )Úlenr   Ú_idÚobjectÚ__new__Útoken)Úclsr   Úobjs      ú[C:\Projects\Historical\venv\Lib\site-packages\torch/fx/experimental/unification/variable.pyr   zVar.__new__   sd   € Ýˆu‰:Œ:˜Š?ˆ?Ø!�œ�M�MˆEÝˆGŒG�q‰LˆGŒGˆGÝ�‰ZŒZ˜1Š_ˆ_Ø˜!”HˆEå�nŠn˜SÑ!Ô!ˆØˆŒ	Øˆ
ó    c                 ó0   — dt          | j        ¦  «        z   S )Nú~)Ústrr   ©Úselfs    r   Ú__str__zVar.__str__   s   € Ø•S˜œ‘_”_Ñ$Ð$r   c                 ób   — t          | ¦  «        t          |¦  «        k    o| j        |j        k    S ©N)Útyper   )r   Úothers     r   Ú__eq__z
Var.__eq__!   s'   € Ý�D‰zŒz�T %™[œ[Ò(ÐF¨T¬Z¸5¼;Ò-FÐFr   c                 óH   — t          t          | ¦  «        | j        f¦  «        S r   )Úhashr   r   r   s    r   Ú__hash__zVar.__hash__$   s   € Ý•T˜$‘Z”Z ¤Ð,Ñ-Ô-Ð-r   N)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   Ú__repr__r   r!   © r   r   r   r      se   € € € € € ØÐà
€Cð	ð 	ð 	ð%ð %ð %ð €HðGð Gð Gð.ð .ð .ð .ð .r   r   c                  ó   — d„ S )Nc                  ó   — t          | Ž S r   )r   )Úargss    r   ú<lambda>zvar.<locals>.<lambda>)   s
   € �˜d˜€ r   r'   r'   r   r   Úvarr,   (   s   € Ø#Ð#Ð#r   c                  ó   — d„ S )Nc                 ó4   — d„ t          | ¦  «        D ¦   «         S )Nc                 ó*   — g | ]}t          ¦   «         ‘ŒS r'   )r,   )Ú.0Úis     r   ú
<listcomp>z*vars.<locals>.<lambda>.<locals>.<listcomp>-   s   € Ð.Ð.Ð. •c‘e”eÐ.Ð.Ð.r   )Úrange)Úns    r   r+   zvars.<locals>.<lambda>-   s   € Ð.Ð.¥U¨1¡X¤XÐ.Ñ.Ô.€ r   r'   r'   r   r   Úvarsr5   ,   s   € Ø.Ð.Ð.r   c                 ó   — dS )NTr'   )Úvs    r   Úisvarr8   0   s   € àˆ4r   c                 óD   — t             ot          | ¦  «        o| t           v S r   )Ú_glvr   )Úos    r   r8   r8   8   s    € åˆxˆ<Ð5�H Q™KœKÐ5¨Aµ¨IÐ5r   c               '   ój  K  — t                                ¦   «         }t                                t          | ¦  «        ¦  «         	 dV — t                                ¦   «          t                                |¦  «         dS # t                                ¦   «          t                                |¦  «         w xY w)a  
    Context manager for logic variables

    Example:
        >>> # xdoctest: +SKIP("undefined vars")
        >>> from __future__ import with_statement
        >>> with variables(1):
        ...     print(isvar(1))
        True
        >>> print(isvar(1))
        False
        >>> # Normal approach
        >>> from unification import unify
        >>> x = var("x")
        >>> unify(x, 1)
        {~x: 1}
        >>> # Context Manager approach
        >>> with variables("x"):
        ...     print(unify("x", 1))
        {'x': 1}
    N)Ú_global_logic_variablesÚcopyÚupdateÚsetÚclear)Ú	variablesÚold_global_logic_variabless     r   rB   rB   =   s    è è € õ. "9×!=Ò!=Ñ!?Ô!?ÐÝ×"Ò"¥3 y¡>¤>Ñ2Ô2Ð2ðCØˆˆˆå×%Ò%Ñ'Ô'Ð'Ý×&Ò&Ð'AÑBÔBÐBÐBÐBøõ 	 ×%Ò%Ñ'Ô'Ð'Ý×&Ò&Ð'AÑBÔBÐBÐBøøøs   ÁA= Á=5B2N)Ú
contextlibr   r   Úutilsr   r@   r=   r:   r   r,   r5   r8   r   rB   r'   r   r   ú<module>rF      s  ðà %Ð %Ð %Ð %Ð %Ð %à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð ˜#™%œ%Ð Ø€ð.ð .ð .ð .ð .ñ .ô .ð .ð8$ð $ð $ð/ð /ð /ð 
€ˆ#�„ðð ñ „ðð €ð 
€ˆ&ÑÔð6ð 6ñ Ôð6ð ðCð Cñ „ðCð Cð Cr   