§
    ŠŠtjŽˆ  ã                   ó"  — 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
mZ d dlmZmZmZ d dlmZmZ d dlmZ  e¦   «         Ze�eZd dlZd dlmc m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$ d dl%m&Z&m'Z'm(Z( d dl)m*Z* d dl+m,Z, d dl-m.Z.  edej/        ej0        ¦  «        Z1de2de3fd„Z4de2de3fd„Z5ej6         G d„ d¦  «        ¦   «         Z7d?d„Z8de9dej:        e9         fd„Z;de
g df         fd„Z<e j=        ded         fd„¦   «         Z> G d„ dej?        ¦  «        Z@ G d„ d¦  «        ZA ed e9¦  «        ZB G d!„ d"ejC        ¦  «        ZD G d#„ d$¦  «        ZE G d%„ d&¦  «        ZF G d'„ d(¦  «        ZG G d)„ d*¦  «        ZH G d+„ d,¦  «        ZI G d-„ d.¦  «        ZJ G d/„ d0¦  «        ZK G d1„ d2eK¦  «        ZL G d3„ d4eK¦  «        ZM G d5„ d6eK¦  «        ZN G d7„ d8eK¦  «        ZO G d9„ d:eK¦  «        ZP G d;„ d<¦  «        ZQ G d=„ d>¦  «        ZRdS )@é    N)Úabstractmethod)ÚCallableÚ	Generator)ÚAnyÚNewTypeÚTypeVar)ÚoverrideÚSelf)Úimport_dill)ÚTracingContext)ÚAOTCompiledArtifact)ÚFakeScriptObject)Ú
FakeTensorÚFakeTensorModeÚTensor)ÚMetaConverterÚMetaTensorDescÚMetaTensorDescriber)ÚSymNode)ÚShapeEnv)Úno_dispatchÚ	_SymNodeTÚnameÚreturnc                 ó,   — |                       d¦  «        S )z£
    An ops filter which allows pickle-safe ops. Pickle-safe ops are built-in
    ones where it will be possible to unpickle on any machine which has PyTorch.
    )ztorch.ops.atenztorch.ops.fbgemm)Ú
startswith©r   s    úU/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/fx/_graph_pickler.pyÚ_ops_filter_safer   '   s   € ð �?Š?ð	
ñô ð ó    Úkeyc                 ó
   — | dvS )z§
    A metadata filter which allows pickle-safe node metadata. These often times contain
    stacks with pointers to unserializable objects, so we clear them out.
    )Úsource_fn_stackÚnn_module_stackÚfwd_source_fn_stack© )r!   s    r   Ú_node_metadata_key_filter_safer'   5   s   € ð
 ÐSÐSÐSr    c                   ój   — e Zd ZU eZeegef         dz  ed<   e	Z
eegef         dz  ed<   dZeed<   dS )ÚOptionsNÚ
ops_filterÚnode_metadata_key_filterFÚignore_raw_node)Ú__name__Ú
__module__Ú__qualname__r   r*   r   ÚstrÚboolÚ__annotations__r'   r+   r,   r&   r    r   r)   r)   =   sp   € € € € € € ð 0@€J�˜#˜ ˜Ô%¨Ñ,Ð?Ð?Ñ?à&ð ˜h¨ u¨d {Ô3°dÑ:ð ð ñ ð
 "€O�TÐ!Ð!Ñ!Ð!Ð!r    r)   c                  ó   — d S ©Nr&   r&   r    r   Ú_unpickle_as_noner5   J   s   € Øˆ4r    Úreferentc                 ó*   — t          j        | ¦  «        S r4   )ÚweakrefÚref)r6   s    r   Ú_unpickle_as_weakrefr:   N   s   € ÝŒ;�xÑ Ô Ð r    c                  ó   — d„ S )Nc                  ó   — d S r4   r&   r&   r    r   ú<lambda>z+_unpickle_as_dead_weakref.<locals>.<lambda>S   s   € �4€ r    r&   r&   r    r   Ú_unpickle_as_dead_weakrefr>   R   s
   € Øˆ<Ðr    c               #   óî   K  — t           t          j        v rd V — d S t          j        t           d„ d„ ¦  «         	 d V — t          j        t           ¦  «         d S # t          j        t           ¦  «         w xY w)Nc                 ó.   — | j         | j        | j        gd fS r4   )ÚstartÚstopÚstep)Úxs    r   r=   z-patch_pytree_map_over_slice.<locals>.<lambda>]   s   € ˜1œ7 A¤F¨A¬FÐ3°TÐ:€ r    c                 ó   — t          | Ž S r4   )Úslice)rD   Úcs     r   r=   z-patch_pytree_map_over_slice.<locals>.<lambda>]   s   € ÍÐPQÈ€ r    )rF   ÚpytreeÚSUPPORTED_NODESÚ_private_register_pytree_nodeÚ_deregister_pytree_noder&   r    r   Úpatch_pytree_map_over_slicerL   V   s‚   è è € å•Ô&Ð&Ð&ØˆˆˆØˆå
Ô(ÝÐ:Ð:Ð<RÐ<Rñô ð ð.ØˆˆˆåÔ&¥uÑ-Ô-Ð-Ð-Ð-ø�Ô&¥uÑ-Ô-Ð-Ð-øøøs   ºA ÁA4c                   ó€  ‡ — e Zd ZdZddej        dedz  ddfˆ fd„Z ee	e
eee ed¦  «        h¦  «        Zededeedef         eedf         f         fd	„¦   «         Zedededz  fd
„¦   «         Zeddededz  defd„¦   «         Zedededefd„¦   «         Ze	 dddddœdeddde	de	dededz  fd„¦   «         Zˆ xZS )ÚGraphPicklerzb
    GraphPickler is a Pickler which helps pickling fx graph - in particular
    GraphModule.
    NÚfileÚoptionsr   c                 ó4  •— t           �$t          ¦   «                              |d¬¦  «         n!t          ¦   «                              |¦  «         |pt          ¦   «         | _        t          t          ¦   «         ¦  «        | _        t          d¬¦  «        | _	        d S )NT)ÚbyrefF)Ú	copy_data)
ÚdillÚsuperÚ__init__r)   rP   Ú_UnpickleStateTokenÚobjectÚ_unpickle_stater   Ú_meta_tensor_describer)ÚselfrO   rP   Ú	__class__s      €r   rV   zGraphPickler.__init__m   s‚   ø€ ÝÐÝ‰GŒG×Ò˜T¨ÐÑ.Ô.Ð.Ð.å‰GŒG×Ò˜TÑ"Ô"Ð"ØÐ+¥'¡)¤)ˆŒõ  3µ6±8´8Ñ<Ô<ˆÔõ ':ÀEÐ&JÑ&JÔ&JˆÔ#Ð#Ð#r    Úobj.c                 óè  — t          |¦  «        | j        v rt          S t          |t          ¦  «        rt
                               | |¦  «        S t          |t          j        j	        ¦  «        rt                               | |¦  «        S t          |t          j        j        t          j        j        f¦  «        rt                               | |¦  «        S t          |t          ¦  «        rt                                | |¦  «        S t          |t          j        ¦  «        rt$                               | |¦  «        S t          |t          j        j        ¦  «        rt*                               | |¦  «        S t          |t,          ¦  «        rKddlm} t2                               |d¦  «        }|� |t          |¦  «        ¦  «        rt          S t6          dfS t          |t8          j        ¦  «        r |¦   «         }|�
t<          |ffS t>          dfS t          |t          j        j         ¦  «        r$| j!        j"        r	t6          dfS tG          d¦  «        ‚tH                               | |¦  «        x}r|S t          S )Nr   )Úis_opaque_value_typeÚreal_objr&   z#Unexpected raw Node during pickling)%ÚtypeÚ_PASSTHROUGH_TYPESÚNotImplementedÚ
isinstancer   Ú_TensorPickleDataÚreduce_helperÚtorchÚfxÚGraphModuleÚ_GraphModulePickleDataÚ_opsÚOperatorBaseÚOpOverloadPacketÚ_OpPickleDatar   Ú_ShapeEnvPickleDataÚSymIntÚ_SymNodePickleDataÚ_guardsr   Ú_TracingContextPickleDatar   Útorch._library.opaque_objectr_   rX   Ú__getattribute__r5   r8   r9   r:   r>   ÚNoderP   r,   ÚAssertionErrorÚ_TorchNumpyPickleData)r[   r]   r_   r`   r6   Úreduces         r   Úreducer_overridezGraphPickler.reducer_override€   s:  € õ, �‰9Œ9˜Ô/Ð/Ð/Ý!Ð!å�c�:Ñ&Ô&ð )	"Ý$×2Ò2°4¸Ñ=Ô=Ð=Ý˜�UœXÔ1Ñ2Ô2ð '	"Ý)×7Ò7¸¸cÑBÔBÐBÝ˜�eœjÔ5µu´zÔ7RÐSÑTÔTð %	"Ý ×.Ò.¨t°SÑ9Ô9Ð9Ý˜�XÑ&Ô&ð #	"Ý&×4Ò4°T¸3Ñ?Ô?Ð?Ý˜�Uœ\Ñ*Ô*ð !	"Ý%×3Ò3°D¸#Ñ>Ô>Ð>Ý˜�Uœ]Ô9Ñ:Ô:ð 	"Ý,×:Ò:¸4ÀÑEÔEÐEÝ˜Õ-Ñ.Ô.ð 	"ØIÐIÐIÐIÐIÐIå×.Ò.¨s°JÑ?Ô?ˆHØÐ#Ð(<Ð(<½TÀ(¹^¼^Ñ(LÔ(LÐ#å%Ð%å% rÐ*Ð*Ý˜�Wœ[Ñ)Ô)ð 	"ð �s‘u”uˆHØÐ#Ý,¨x¨kÐ:Ð:å1°2Ð6Ð6õ ˜#�uœxœ}Ñ-Ô-ð LØ”<Ô/ð 3Ý-¨rÐ2Ð2Ý$Ð%JÑKÔKÐKÝ.×<Ò<¸TÀ3ÑGÔGÐGˆvð Ø�õ "Ð!r    c                 ó   — || j         u rdS d S )NÚunpickle_state)rY   )r[   r]   s     r   Úpersistent_idzGraphPickler.persistent_idÄ   s   € ð �$Ô&Ð&Ð&Ø#Ð#à�4r    c                 ó,  — t          ¦   «         5  t          j        ¦   «         5 } | ||¦  «        }|                     |¦  «         |                     ¦   «         cddd¦  «         cddd¦  «         S # 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )z#
        Pickle an object.
        N)rL   ÚioÚBytesIOÚdumpÚgetvalue)Úclsr]   rP   ÚstreamÚpicklers        r   ÚdumpszGraphPickler.dumpsÌ   s)  € õ
 )Ñ*Ô*ð 	%ð 	%­B¬J©L¬Lð 	%¸FØ�c˜& 'Ñ*Ô*ˆGØ�LŠL˜ÑÔÐØ—?’?Ñ$Ô$ð	%ð 	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s4   �B	£5A1ÁB	Á1A5	Á5B	Á8A5	Á9B	Â	BÂBÚdataÚ	fake_modec                 ó–  — ddl m} t          ¦   «         5   |d¦  «        5  t          |¦  «        }t	          j        | ¦  «        5 }t          ||¦  «        }|                     ¦   «         cddd¦  «         cddd¦  «         cddd¦  «         S # 1 swxY w Y   	 ddd¦  «         n# 1 swxY w Y   ddd¦  «         dS # 1 swxY w Y   dS )z%
        Unpickle an object.
        r   )Údynamo_timedzGraphPickler.loadsN)Útorch._dynamo.utilsrŠ   rL   Ú_UnpickleStater   r€   Ú_GraphUnpicklerÚload)r‡   rˆ   rŠ   Ústater„   Ú	unpicklers         r   ÚloadszGraphPickler.loadsÖ   sÆ  € ð
 	5Ð4Ð4Ð4Ð4Ð4å(Ñ*Ô*ð 	(ð 	(¨L¨LÐ9MÑ,NÔ,Nð 	(ð 	(Ý" 9Ñ-Ô-ˆEÝ”˜DÑ!Ô!ð ( VÝ+¨F°EÑ:Ô:�	Ø —~’~Ñ'Ô'ð(ð (ð (ð (ñ (ô (ð (ð	(ð 	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð(ð (ð (ð (øøøð (ð (ð (ð (ð (ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(s^   •B>¡$B&Á$BÁ)B&Á5B>ÂBÂB&ÂBÂB&ÂB>Â&B*	Â*B>Â-B*	Â.B>Â>CÃCéP   é2   T)Ú	max_depthÚmax_iter_itemsÚverbosezOptions | Noner”   r•   r–   c          	      óN  ‡ ‡‡‡‡‡‡‡	‡
‡— ‰pt          ¦   «         Š ‰ t          j        ¦   «         ‰¦  «        Š	t          ¦   «         Š
dt          ddfˆfd„Šdt
          dt          dz  fˆ ˆfd„Šdt
          dt          dt          dt          dz  fˆˆˆˆˆ	ˆ
ˆfd	„Š ‰|d
d¦  «        }|S )a´  
        Find the first leaf that GraphPickler.dumps cannot serialize and return its path.

        This is GraphPickler-aware and avoids infinite loops by:
          - Traversing builtin containers directly (dict/list/tuple/set) instead of
            exploring their __reduce_ex__ tuples.
          - Only using __reduce_ex__ / __reduce__ for "opaque" objects.
          - Bounding recursion depth and iterator expansion.

        Args:
            obj: The object to attempt to pickle and debug.
            options: Optional Options instance for the GraphPickler.
            max_depth: Maximum recursion depth before stopping traversal.
            max_iter_items: Maximum number of items to materialize from iterators.
            verbose: If True, prints detailed traversal information.

        Returns:
            A string representing the path to the first unpicklable leaf,
            or None if the object is fully picklable.
        Úmsgr   Nc                 ó.   •— ‰rt          | ¦  «         d S d S r4   )Úprint)r˜   r–   s    €r   Úlogz%GraphPickler.debug_dumps.<locals>.log  s$   ø€ Øð Ý�c‘
”
�
�
�
ðð r    Úoc                 óh   •— 	 ‰                      | ‰¦  «         d S # t          $ r}|cY d }~S d }~ww xY wr4   )r†   Ú	Exception)rœ   Úerƒ   rP   s     €€r   Úfail_excz*GraphPickler.debug_dumps.<locals>.fail_exc
  sO   ø€ ðØ—	’	˜!˜WÑ%Ô%Ð%Ø�tøÝð ð ð Ø������øøøøðøøøs   ƒ ›
1¥,¦1¬1ÚpathÚdepthc           	      ó  •— |‰k    r) ‰d|z  › d|› dt          | ¦  «        › d�¦  «         |dz   S t          | ¦  «        }|‰v rd S ‰                     |¦  «         d|z  } ‰|› d|› dt          | ¦  «        › d�¦  «          ‰| ¦  «        }|€ ‰|› d�¦  «         d S  ‰|› dt          | ¦  «        › d	|› �¦  «         t          | t          ¦  «        r8|                      ¦   «         D ]!\  }} ‰||› d
|›d�|dz   ¦  «        }|r|c S Œ"|S t          | t          t          f¦  «        r3t          | ¦  «        D ]!\  }	} ‰||› d
|	› d�|dz   ¦  «        }|r|c S Œ"|S t          | t          t          f¦  «        r3t          | ¦  «        D ]!\  }	} ‰||› d
|	› d�|dz   ¦  «        }|r|c S Œ"|S t          | d¦  «        rÒt          | ¦  «        j                             d¦  «        r«	 t          t          j        t!          | ¦  «        ‰dz   ¦  «        ¦  «        }
n# t"          $ r d }
Y nw xY w|
�ct%          |
¦  «        ‰k    r ‰|› d‰› d‰› �¦  «         |
d ‰…         }
t          |
¦  «        D ]!\  }	} ‰||› d
|	› d�|dz   ¦  «        }|r|c S Œ"|S 	 ‰                     | ¦  «        } ‰|› dt          |¦  «        › �¦  «         n)# t"          $ r} ‰|› d|› �¦  «         |cY d }~S d }~ww xY w|t(          urS|\  }} ‰|› dt%          |¦  «        › �¦  «         t          |¦  «        D ]!\  }	} ‰||› d|	› d�|dz   ¦  «        }|r|c S Œ"t+          j        | ¦  «        rnt+          j        | ¦  «        D ]W}	 t1          | |j        ¦  «        }n# t"          $ r |› d|j        › �cY c S w xY w ‰||› d|j        › �|dz   ¦  «        }|r|c S ŒX|S t1          | dd ¦  «        }t5          |¦  «        rl	  |¦   «         } ‰|› dt          |¦  «        › �¦  «         n,# t"          $ r} ‰|› d|› �¦  «         |dz   cY d }~S d }~ww xY w ‰||dz   |dz   ¦  «        }|r|S t          | d¦  «        rDt7          | ¦  «                             ¦   «         D ] \  }} ‰||› d|› �|dz   ¦  «        }|r|c S Œ!|S t          | d¦  «        rE| j        D ];}t          | |¦  «        r) ‰t1          | |¦  «        |› d|› �|dz   ¦  «        }|r|c S Œ<|S d }	 t          | d¦  «        r=|                      t<          j        ¦  «        } ‰|› dt          |¦  «        › �¦  «         nAt          | d¦  «        r1|                       ¦   «         } ‰|› dt          |¦  «        › �¦  «         n)# t"          $ r} ‰|› d |› �¦  «         |cY d }~S d }~ww xY wt          |t          ¦  «        r4t          |¦  «        D ]$\  }	}|€Œ ‰||› d!|	› d�|dz   ¦  «        }|r|c S Œ%|S )"Nz  zDepth limit at z (ú)z (depth_limit)z	Walking: u   âœ“ Pickles fine alonez[FAIL pickle] z -> ú[ú]é   Ú__iter__Úiteratoru   âš  Iterator has more than z items, only checking first zreducer_override -> u   ðŸ’¥ reducer_override crashed: zUsing custom reduce, args=z.reduce_args[ú.Ú__getstate__z__getstate__ -> u   ðŸ’¥ __getstate__ failed: z.__getstate__()Ú__dict__Ú	__slots__Ú__reduce_ex__z__reduce_ex__ -> Ú
__reduce__z__reduce__ -> u   ðŸ’¥ reduce protocol failed: z.__reduce__[)!ra   ÚidÚaddrd   ÚdictÚitemsÚlistÚtupleÚ	enumerateÚsetÚ	frozensetÚhasattrr-   ÚendswithÚ	itertoolsÚisliceÚiterrž   Úlenrz   rc   ÚdataclassesÚis_dataclassÚfieldsÚgetattrr   ÚcallableÚvarsr­   r®   ÚpickleÚHIGHEST_PROTOCOLr¯   ) rœ   r¡   r¢   r!   ÚindentrŸ   ÚkÚvÚbadÚiÚprefixÚredÚe2Ú_ÚargsÚaÚfÚgetstater�   Úe3r   ÚslotÚreduce_tupleÚe4Úpartr    r›   r”   r•   r…   ÚvisitedÚwalks                             €€€€€€€r   rÚ   z&GraphPickler.debug_dumps.<locals>.walk  s´  ø€ Ø�yÒ Ð Ø��t˜e‘|ÐFÐF°DÐFÐF½DÀ¹G¼GÐFÐFÐFÑGÔGÐGØÐ.Ñ.Ð.å�Q‘%”%ˆCØ�gˆ~ˆ~Ø�tØ�KŠK˜ÑÔÐà˜E‘\ˆFØˆC�6Ð6Ð6 DÐ6Ð6­D°©G¬GÐ6Ð6Ð6Ñ7Ô7Ð7à�˜‘”ˆAØˆyØ��vÐ5Ð5Ð5Ñ6Ô6Ð6Ø�tØˆC�6Ð9Ð9­¨a©¬Ð9Ð9°aÐ9Ð9Ñ:Ô:Ð:õ ˜!�TÑ"Ô"ð ØŸGšG™IœIð #ð #‘D�A�qØ˜$˜q TÐ"2Ð"2¨AÐ"2Ð"2Ð"2°E¸A±IÑ>Ô>�CØð #Ø"˜
˜
˜
ð#à�å˜!�d¥E˜]Ñ+Ô+ð Ý% a™LœLð #ð #‘D�A�qØ˜$˜q T . .¨A . . .°%¸!±)Ñ<Ô<�CØð #Ø"˜
˜
˜
ð#à�å˜!�c¥9Ð-Ñ.Ô.ð Ý% a™LœLð #ð #‘D�A�qØ˜$˜q T . .¨A . . .°%¸!±)Ñ<Ô<�CØð #Ø"˜
˜
˜
ð#à�õ �q˜*Ñ%Ô%ð  ­$¨q©'¬'Ô*:×*CÒ*CÀJÑ*OÔ*Oð  ð"Ý!¥)Ô"2µ4¸±7´7¸NÈQÑ<NÑ"OÔ"OÑPÔP�F�FøÝ ð "ð "ð "Ø!�F�F�Fð"øøøàÐ%Ý˜6‘{”{ ^Ò3Ð3Ø˜Ø%ð Dð DÀ.ð Dð DØ3AðDð Dñô ð ð "(¨¨¨Ô!8˜Ý )¨&Ñ 1Ô 1ð 'ð '™˜˜1Ø"˜d 1¨ n n° n n n°e¸a±iÑ@Ô@˜Øð 'Ø#&˜J˜J˜Jð'à�KðØ×.Ò.¨qÑ1Ô1�Ø��vÐ>Ð>µ4¸±9´9Ð>Ð>Ñ?Ô?Ð?Ð?øÝð ð ð Ø��vÐBÐB¸bÐBÐBÑCÔCÐCØ������øøøøðøøøð �.Ð(Ð(Ø‘��4Ø��vÐDÐD½¸T¹¼ÐDÐDÑEÔEÐEÝ% d™OœOð #ð #‘D�A�qØ˜$˜q TÐ"<Ð"<¸Ð"<Ð"<Ð"<¸eÀa¹iÑHÔH�CØð #Ø"˜
˜
˜
ð#õ Ô'¨Ñ*Ô*ð 	Ý$Ô+¨AÑ.Ô.ð #ð #�Að2Ý# A q¤vÑ.Ô.˜˜øÝ$ð 2ð 2ð 2Ø"&Ð1Ð1¨¬Ð1Ð1Ð1Ð1Ð1Ð1Ð1ð2øøøà˜$˜q TÐ"4Ð"4¨A¬FÐ"4Ð"4°e¸a±iÑ@Ô@�CØð #Ø"˜
˜
˜
ð#à�õ ˜q .°$Ñ7Ô7ˆHÝ˜Ñ!Ô!ð 	ð4Ø$˜H™JœJ�EØ�C˜6Ð@Ð@µ4¸±;´;Ð@Ð@ÑAÔAÐAÐAøÝ ð 4ð 4ð 4Ø�C˜6ÐAÐA¸RÐAÐAÑBÔBÐBØÐ"3Ñ3Ð3Ð3Ð3Ð3Ð3Ð3øøøøð4øøøð �d˜5 $Ð):Ñ":¸EÀA¹IÑFÔF�Øð Ø�Jå�q˜*Ñ%Ô%ð Ý# A™wœwŸ}š}™œð #ð #‘G�D˜!Ø˜$˜q TÐ"2Ð"2¨DÐ"2Ð"2°E¸A±IÑ>Ô>�CØð #Ø"˜
˜
˜
ð#à�å�q˜+Ñ&Ô&ð ØœKð 'ð '�DÝ˜q $Ñ'Ô'ð 'Ø"˜d¥7¨1¨dÑ#3Ô#3¸Ð5EÐ5E¸tÐ5EÐ5EÀuÈqÁyÑQÔQ˜Øð 'Ø#&˜J˜J˜JøØ�ð  ˆLð	Ý˜1˜oÑ.Ô.ð GØ#$§?¢?µ6Ô3JÑ#KÔ#K�LØ�C˜6ÐHÐHµD¸Ñ4FÔ4FÐHÐHÑIÔIÐIÐIÝ˜Q Ñ-Ô-ð GØ#$§<¢<¡>¤>�LØ�C˜6ÐEÐEµ°lÑ1CÔ1CÐEÐEÑFÔFÐFøøÝð ð ð Ø��vÐ@Ð@¸BÐ@Ð@ÑAÔAÐAØ������øøøøðøøøõ ˜,­Ñ.Ô.ð #Ý(¨Ñ6Ô6ð #ð #‘G�A�tØ�|Ø Ø˜$˜t¨Ð%>Ð%>¸!Ð%>Ð%>Ð%>ÀÈÁ	ÑJÔJ�CØð #Ø"˜
˜
˜
ð#ð ˆKs   Ç!2H ÈH#È"H#Ê2J? Ê?
K%Ë	K ËK%Ë K%Í/NÎN ÎN Ï''P Ð
P8ÐP3Ð-P8Ð3P8Ó>BV Ö
V3ÖV.Ö(V3Ö.V3Úrootr   )r)   r   r€   r·   r0   r   ÚBaseExceptionÚint)rƒ   r]   rP   r”   r•   r–   rÊ   r    r›   r…   rÙ   rÚ   s   ` ```` @@@@@r   Údebug_dumpszGraphPickler.debug_dumpsã   s%  øøøøøøøøøø€ ð< Ð&�W™YœYˆØ�#•b”j‘l”l GÑ,Ô,ˆå™EœEˆð	•Sð 	˜Tð 	ð 	ð 	ð 	ð 	ð 	ð	�ð 	¥°Ñ 4ð 	ð 	ð 	ð 	ð 	ð 	ð 	ðI	•Cð I	�sð I	­3ð I	µ3¸±:ð I	ð I	ð I	ð I	ð I	ð I	ð I	ð I	ð I	ð I	ð I	ð I	ðV ˆd�3˜ Ñ"Ô"ˆØˆ
r    r4   )r-   r.   r/   Ú__doc__r   r€   r)   rV   r¸   rÝ   Úfloatr0   Úbytesr1   ra   rb   r	   rX   rµ   r   r   rz   r}   Úclassmethodr†   Ústaticmethodr   r‘   rÞ   Ú__classcell__©r\   s   @r   rN   rN   g   s  ø€ € € € € ðð ð
Kð K˜RœZð K°'¸D±.ð KÈDð Kð Kð Kð Kð Kð Kð" #˜ C¨°°U¸DÀ$À$ÀtÁ*Ä*Ð#MÑNÔNÐàð@"Øð@"à	ˆx˜˜S˜Ô! 5¨¨c¨¤?Ð2Ô	3ð@"ð @"ð @"ñ „Xð@"ðD ð ð ¨C°$©Jð ð ð ñ „Xðð ð%ð %˜ð %¨°4©ð %À5ð %ð %ð %ñ „[ð%ð ð
(�Eð 
( nð 
(¸ð 
(ð 
(ð 
(ñ „\ð
(ð ð %)ðyð
 Ø Øðyð yð yàðyð "ðyð
 ðyð ðyð ðyð 
ˆt‰ðyð yð yñ „[ðyð yð yð yð yr    rN   c                   ó   — e Zd Zdeddfd„ZdS )rŒ   rˆ   r   Nc                 ó:   — || _         t          ¦   «         | _        d S r4   )rˆ   r   Úmeta_converter)r[   rˆ   s     r   rV   z_UnpickleState.__init__¡  s   € Ø"ˆŒÝ9F¹¼ˆÔÐÐr    )r-   r.   r/   r   rV   r&   r    r   rŒ   rŒ      s>   € € € € € ðI .ð I°Tð Ið Ið Ið Ið Ið Ir    rŒ   rW   c                   óV   ‡ — e Zd Zdej        deddfˆ fd„Zededefd„¦   «         Z	ˆ xZ
S )r�   r„   r|   r   Nc                 óX   •— t          ¦   «                              |¦  «         || _        d S r4   )rU   rV   rY   )r[   r„   r|   r\   s      €r   rV   z_GraphUnpickler.__init__­  s)   ø€ Ý‰Œ×Ò˜Ñ Ô Ð Ø-ˆÔÐÐr    Úpidc                 óD   — |dk    r| j         S t          j        d¦  «        ‚)Nr|   zInvalid persistent ID)rY   rÅ   ÚUnpicklingError)r[   rë   s     r   Úpersistent_loadz_GraphUnpickler.persistent_load±  s+   € ð Ð"Ò"Ð"ØÔ'Ð'åÔ(Ð)@ÑAÔAÐAr    )r-   r.   r/   r   r€   rŒ   rV   r	   rX   rî   rä   rå   s   @r   r�   r�   ¬  sŒ   ø€ € € € € ð.˜rœzð .¸>ð .Èdð .ð .ð .ð .ð .ð .ð ðB 6ð B¨fð Bð Bð Bñ „XðBð Bð Bð Bð Br    r�   c                   ó¢   — e Zd ZU eeef         ed<   edede	de
eeege	f         e
eef         f         fd„¦   «         Zde	ddfd„Zd	ede	fd
„ZdS )ro   r‡   r…   r]   r   c                 ó4   — | j          | |¦  «        |j        ffS r4   ©ÚunpicklerY   ©rƒ   r…   r]   s      r   rf   z!_ShapeEnvPickleData.reduce_helper½  s!   € ð Œ|˜c˜c #™hœh¨Ô(?Ð@Ð@Ð@r    ÚenvNc                 óŽ   — |j         rt          d¦  «        ‚|j                             ¦   «         | _        | j        d= | j        d= d S )Nz4Translation validation must be disabled for picklingÚtracked_fakesÚfake_tensor_cache)Ú_translation_validation_enabledrw   r¬   Úcopyr‡   )r[   rô   s     r   rV   z_ShapeEnvPickleData.__init__Å  sO   € ð Ô.ð 	YÝ Ð!WÑXÔXÐXØ”L×%Ò%Ñ'Ô'ˆŒ	ØŒI�oÐ&ØŒIÐ)Ð*Ð*Ð*r    r|   c                 óð   — |j         st          d¦  «        ‚|j         j        st          d¦  «        ‚| j                             ¦   «         D ] \  }}t          |j         j        ||¦  «         Œ!|j         j        S )Nz#unpickle_state.fake_mode is not setz-unpickle_state.fake_mode.shape_env is not set)rˆ   rw   Ú	shape_envr‡   r³   Úsetattr)r[   r|   rÈ   rÉ   s       r   rò   z_ShapeEnvPickleData.unpickleÏ  s�   € àÔ'ð 	HÝ Ð!FÑGÔGÐGØÔ'Ô1ð 	RÝ Ð!PÑQÔQÐQà”I—O’OÑ%Ô%ð 	>ð 	>‰DˆAˆqÝ�NÔ,Ô6¸¸1Ñ=Ô=Ð=Ð=àÔ'Ô1Ð1r    )r-   r.   r/   r²   r0   rX   r2   râ   rN   r   rµ   r   r
   rŒ   rW   rf   rV   rò   r&   r    r   ro   ro   º  sÓ   € € € € € € Ø
ˆs�Fˆ{Ô
ÐÐÑàðAØ"ðAØ)1ðAà	Ø�$˜Ð'¨Ð1Ô2°E¸$Ð@SÐ:SÔ4TÐTô
ðAð Að Añ „[ðAð+˜Hð +¨ð +ð +ð +ð +ð
2 ~ð 
2¸(ð 
2ð 
2ð 
2ð 
2ð 
2ð 
2r    ro   c                   óœ   — e Zd Zedededeeee	gef         eee
f         f         fd„¦   «         Zdeddfd„Zdefd„Zd	e	dej        fd
„ZdS )rq   r…   r]   r   c                 ó¾   —  | |j         ¦  «        |j        f}t          |t          j        ¦  «        rt
          j        |fS t          dt          |¦  «        › �¦  «        ‚)NzUnhandled SymNode type )	ÚnoderY   rd   rg   rp   rq   Úunpickle_sym_intÚNotImplementedErrorra   )rƒ   r…   r]   rÐ   s       r   rf   z _SymNodePickleData.reduce_helperÝ  s[   € ð ��C”H‘”˜wÔ6Ð7ˆÝ�c�5œ<Ñ(Ô(ð 	Må%Ô6¸Ð<Ð<å%Ð&KÅÀSÁ	Ä	Ð&KÐ&KÑLÔLÐLr    rÿ   Nc                 óf   — |j         | _        |j        | _        |j        | _        |j        | _        d S r4   )Ú_exprÚexprrû   ÚpytypeÚ_hintÚhint)r[   rÿ   s     r   rV   z_SymNodePickleData.__init__ì  s*   € Ø”JˆŒ	ØœˆŒØ”kˆŒØ”JˆŒ	ˆ	ˆ	r    c                 óz   — | j         €t          d¦  «        ‚t          | j        | j         | j        | j        ¦  «        S )Nzshape_env is None)rû   rw   r   r  r  r  )r[   s    r   Ú_to_sym_nodez_SymNodePickleData._to_sym_nodeò  s5   € ØŒ>Ð!Ý Ð!4Ñ5Ô5Ð5Ý�t”y $¤.°$´+¸t¼yÑIÔIÐIr    r|   c                 óN   — t          j        |                      ¦   «         ¦  «        S r4   )rg   rp   r	  ©r[   r|   s     r   r   z#_SymNodePickleData.unpickle_sym_int÷  s   € ÝŒ|˜D×-Ò-Ñ/Ô/Ñ0Ô0Ð0r    )r-   r.   r/   râ   rN   r   rµ   r   r
   rŒ   rW   rf   r   rV   r	  rg   rp   r   r&   r    r   rq   rq   Ü  sâ   € € € € € ØðMàðMð ðMð 
Ø�$˜Ð'¨Ð2Ô3°U¸4ÐATÐ;TÔ5UÐUô
ð	Mð Mð Mñ „[ðMð˜Wð ¨ð ð ð ð ðJ˜gð Jð Jð Jð Jð
1¨~ð 1À%Ä,ð 1ð 1ð 1ð 1ð 1ð 1r    rq   c                   ó¢   — e Zd ZU ee         ed<   edededee	e
egef         ee
ef         f         fd„¦   «         Zdededdfd	„Zd
edefd„ZdS )re   Úmetadatar…   r]   r   c                 ó@   — | j          | |j        |¦  «        |j        ffS r4   )rò   rZ   rY   ró   s      r   rf   z_TensorPickleData.reduce_helperþ  s0   € ð Œ|ØˆC�Ô.°Ñ4Ô4ØÔ#ð
ð 
ð 	
r    Ú	describerÚtNc           
      ó°  — |                      |¦  «        }|j        rMt          |j        t          j        j        j        ¦  «        s$t          dt          |j        ¦  «        › �¦  «        ‚t          j
        |d ¬¦  «        | _        t          j        D ]D}|dv rŒt          | j        |¦  «        �(t          d|› dt          | j        |¦  «        › �¦  «        ‚ŒEd S )Nz3view_func must be None or _FakeTensorViewFunc, got ©rˆ   )rˆ   Ú	view_funcz
not None: z: )Údescribe_tensorr  rd   rg   Ú_subclassesÚ
meta_utilsÚ_FakeTensorViewFuncrw   ra   r¿   Úreplacer  r   Ú_UNSERIALIZABLErÂ   )r[   r  r  r  rÈ   s        r   rV   z_TensorPickleData.__init__	  s  € ð
 ×,Ò,¨QÑ/Ô/ˆð Ôð 	¥jØÔ¥Ô 1Ô <Ô Pñ'
ô '
ð 	õ !ð.Ý˜Ô*Ñ+Ô+ð.ð .ñô ð õ $Ô+¨HÀÐEÑEÔEˆŒõ  Ô/ð 	Tð 	TˆAØÐ.Ð.Ð.ØÝ�t”} aÑ(Ô(Ð4Ý$Ð%R°!Ð%RÐ%Rµw¸t¼}ÈaÑ7PÔ7PÐ%RÐ%RÑSÔSÐSð 5ð	Tð 	Tr    r|   c                 ó�  ‡— t          j        | j        ‰j        ¬¦  «        }|j        r=|j        �6t          j        |j        ‰j        ¬¦  «        }t          j        ||¬¦  «        }dt          g t          j        f         dt          j	        t          z  dt          fˆfd„}‰j                             |‰j        j        |d d ¦  «        S )Nr  )ÚbaseÚmake_meta_tÚdevicer   c                 ó�   •— t          ¦   «         5  t          ‰j         | ¦   «         |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r4   )r   r   rˆ   )r  r  r|   s     €r   Ú	with_fakez-_TensorPickleData.unpickle.<locals>.with_fake1  s’   ø€ õ ‘”ð ð Ý!Ø"Ô,Ø�K‘M”Màñ	ô ðð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð s   �;»?Á?)r¿   r  r  rˆ   Úis_viewr  r   rg   r   r  r0   r   rè   Úmeta_tensorrû   )r[   r|   r  Únew_baser  s    `   r   rò   z_TensorPickleData.unpickle"  sî   ø€ åÔ&ØŒMØ$Ô.ð
ñ 
ô 
ˆð Ôð 	D ¤Ð 9Ý"Ô*Ø”Ø(Ô2ðñ ô ˆHõ #Ô*¨8¸(ÐCÑCÔCˆHð		Ý! "¥e¤lÐ"2Ô3ð		Ý=B¼\ÍCÑ=Oð		åð		ð 		ð 		ð 		ð 		ð 		ð Ô,×8Ò8ØØÔ$Ô.ØØØñ
ô 
ð 	
r    )r-   r.   r/   r   r   r2   râ   rN   rµ   r   r
   rŒ   rW   rf   r   r   rV   rò   r&   r    r   re   re   û  s×   € € € € € € Ø˜ZÔ(Ð(Ð(Ñ(àð
Ø"ð
Ø)3ð
à	Ø�$˜Ð'¨Ð3Ô4°e¸DÐBUÐ<UÔ6VÐVô
ð
ð 
ð 
ñ „[ð
ðTÐ"5ð T¸&ð TÀTð Tð Tð Tð Tð2 
 ~ð  
¸*ð  
ð  
ð  
ð  
ð  
ð  
r    re   c                   óÆ   — e Zd Zedededeeee	gef         eee
f         f         dz  fd„¦   «         Zdededdfd„Zd	e	ded
ef         fd„Zedededz  fd„¦   «         ZdS )rx   r…   r]   r   Nc                 óT   — |                       |¦  «        x}r| j        ||j        ffS d S r4   )Úfrom_objectrò   rY   )rƒ   r…   r]   r‡   s       r   rf   z#_TorchNumpyPickleData.reduce_helperF  s7   € ð —?’? 3Ñ'Ô'Ð'ˆ4ð 	Ø”L 4¨Ô)@Ð"AÐBÐBà�4r    Úmodr   c                 ó"   — || _         || _        d S r4   )r&  r   )r[   r&  r   s      r   rV   z_TorchNumpyPickleData.__init__T  s   € ØˆŒØˆŒ	ˆ	ˆ	r    r|   .c                 ó¶   — t          t          j        | j        ¦  «        | j        ¦  «        }t
          j        j        j         	                    ¦   «         |         S r4   )
rÂ   Ú	importlibÚimport_moduler&  r   rg   Ú_dynamoÚ	variablesÚmiscÚget_np_to_tnp_map)r[   r|   Únps      r   rò   z_TorchNumpyPickleData.unpickleX  s?   € Ý•YÔ,¨T¬XÑ6Ô6¸¼	ÑBÔBˆÝŒ}Ô&Ô+×=Ò=Ñ?Ô?ÀÔCÐCr    Útnpc                 ó®  — t          |¦  «        sd S t          j        j        j                             ¦   «         }	 |                     |¦  «        x}sd S n# t          $ r Y d S w xY wt          |dd ¦  «        x}sd}t          |dd ¦  «        x}sd S |t          t          j
        |¦  «        |¦  «        k    rt          d|› d|› �¦  «        ‚ | ||¦  «        S )Nr.   Únumpyr-   zNumpy object mismatch for rª   )rÃ   rg   r+  r,  r-  Úget_tnp_to_np_mapÚgetÚ	TypeErrorrÂ   r)  r*  rw   )rƒ   r0  Ú	tnp_to_npr/  r&  r   s         r   r%  z!_TorchNumpyPickleData.from_object\  s  € å˜‰}Œ}ð 	Ø�4å”MÔ+Ô0×BÒBÑDÔDˆ	ð	Ø#Ÿ-š-¨Ñ,Ô,Ð,�Bð Ø�tðøåð 	ð 	ð 	Ø�4�4ð	øøøõ ˜r <°Ñ6Ô6Ð6�ð 	ØˆCå  J°Ñ5Ô5Ð5�ð 	Ø�4ð •�Ô0°Ñ5Ô5°tÑ<Ô<Ò<Ð<Ý Ø9¨SÐ9Ð9°4Ð9Ð9ñô ð ð ˆs�3˜‰~Œ~Ðs   »A Á
A#Á"A#)r-   r.   r/   râ   rN   rX   rµ   r   r
   rŒ   rW   rf   r0   rV   rò   r%  r&   r    r   rx   rx   E  s	  € € € € € ØðØ"ðØ)/ðð 	Ø�d˜NÐ+¨VÐ3Ô4°e¸DÐBUÐ<UÔ6VÐVô	
ð ñ	ðð ð ñ „[ðð˜Cð  sð ¨tð ð ð ð ðD ~ð D¸(À3ÈÀ;Ô:Oð Dð Dð Dð Dð ð˜fð ¨°©ð ð ð ñ „[ðð ð r    rx   c                   óÚ   — e Zd Zededej        j        dee	e
egej        j        f         ee
ef         f         fd„¦   «         Zdej        j        deddfd„Zd	edej        j        fd
„ZdS )rj   r…   r]   r   c                 ó@   — | j          | ||j        ¦  «        |j        ffS r4   )rò   rP   rY   ró   s      r   rf   z$_GraphModulePickleData.reduce_helperx  s/   € ð Œ|ØˆC��W”_Ñ%Ô%ØÔ#ð
ð 
ð 	
r    ÚgmrP   Nc                 ót  — t          |t          j        j        j        ¦  «        r|                     ¦   «         }n|                     ¦   «         }t          |d¦  «        r|                     ¦   «         | _	        n|j
                             ¦   «         | _	        | j	        d= t          |j        |¦  «        | _        d S )Nr«   Ú_graph)rd   rg   rh   Ú_lazy_graph_moduleÚ_LazyGraphModuleÚ_real_recompileÚ	recompiler¹   r«   Úgm_dictr¬   rù   Ú_GraphPickleDatar;  Úgraph)r[   r9  rP   Ú_python_codes       r   rV   z_GraphModulePickleData.__init__„  s—   € å�b�%œ(Ô5ÔFÑGÔGð 	*Ø×-Ò-Ñ/Ô/ˆLˆLàŸ<š<™>œ>ˆLÝ�2�~Ñ&Ô&ð 	.ØŸ?š?Ñ,Ô,ˆDŒLˆLàœ;×+Ò+Ñ-Ô-ˆDŒLØŒL˜Ð"Ý% b¤i°Ñ9Ô9ˆŒ
ˆ
ˆ
r    r|   c                 óÄ   — t           j        j                             t           j        j        ¦  «        }| j        |_        | j                             ||¦  «        |_        |S r4   )	rg   rh   ri   Ú__new__r@  r¬   rB  rò   r;  )r[   r|   r9  s      r   rò   z_GraphModulePickleData.unpickle‘  sF   € ÝŒXÔ!×)Ò)­%¬(Ô*>Ñ?Ô?ˆØ”lˆŒØ”J×'Ò'¨¨NÑ;Ô;ˆŒ	Øˆ	r    )r-   r.   r/   râ   rN   rg   rh   ri   rµ   r   r
   rŒ   rW   rf   r)   rV   rò   r&   r    r   rj   rj   w  sÓ   € € € € € Øð	
Ø"ð	
Ø).¬Ô)=ð	
à	Ø�$˜Ð'¨¬Ô)=Ð=Ô>ØˆdÐ'Ð'Ô(ð	*ô
ð	
ð 	
ð 	
ñ „[ð	
ð:˜5œ8Ô/ð :¸'ð :Àdð :ð :ð :ð :ð ~ð ¸%¼(Ô:Nð ð ð ð ð ð r    rj   c                   óÂ   — e Zd Zdej        j        deej        j        d f         deddfd„Zdej        j	        ded ej        j        f         de
dej        j        fd	„ZdS )
Ú_NodePickleDatarÿ   ÚmappingrP   r   Nc                 ó¸  ‡‡— t          j        t          j        j        ˆfd„|j        ¦  «        | _        t          j        t          j        j        ˆfd„|j        ¦  «        | _        |j        | _        |j        | _        t           
                    |j        ‰¦  «        | _        |j        | _        ˆfd„|j                             ¦   «         D ¦   «         | _        d S )Nc                 ó   •— ‰|          S r4   r&   ©ÚnrH  s    €r   r=   z*_NodePickleData.__init__.<locals>.<lambda>Ÿ  s   ø€ À'È!Ä*€ r    c                 ó   •— ‰|          S r4   r&   rK  s    €r   r=   z*_NodePickleData.__init__.<locals>.<lambda>¡  s   ø€  W¨Q¤Z€ r    c                 óT   •— i | ]$\  }}‰j         r‰                      |¦  «        ¯!||“Œ%S r&   )r+   )Ú.0rÈ   rÉ   rP   s      €r   ú
<dictcomp>z,_NodePickleData.__init__.<locals>.<dictcomp>­  sP   ø€ ð 
ð 
ð 
á��1àÔ4ð	
ð
 ×3Ò3°AÑ6Ô6ð
Øˆqð
ð 
ð 
r    )rH   Útree_map_onlyrg   rh   rv   rÐ   Úkwargsr   Úoprn   rÅ   Útargetra   Úmetar³   )r[   rÿ   rH  rP   s     ``r   rV   z_NodePickleData.__init__™  sÉ   øø€ õ Ô(­¬¬Ð8LÐ8LÐ8LÐ8LÈdÌiÑXÔXˆŒ	ÝÔ*ÝŒHŒMÐ/Ð/Ð/Ð/°´ñ
ô 
ˆŒð ”IˆŒ	Ø”'ˆŒÝ#×*Ò*¨4¬;¸Ñ@Ô@ˆŒð ”IˆŒ	ð
ð 
ð 
ð 
àœ	ŸšÑ)Ô)ð
ñ 
ô 
ˆŒ	ˆ	ˆ	r    rB  r|   c                 ó¸  ‡— t          j        t          ˆfd„| j        ¦  «        }t          j        t          ˆfd„| j        ¦  «        }| j                             |¦  «        }t          |¦  «        s4t          |t          ¦  «        st          dt          |¦  «        › �¦  «        ‚|                     | j        |||| j        | j        ¦  «        }| j        |_        |S )Nc                 ó   •— ‰|          S r4   r&   rK  s    €r   r=   z*_NodePickleData.unpickle.<locals>.<lambda>¼  s   ø€ ¸wÀq¼z€ r    c                 ó   •— ‰|          S r4   r&   rK  s    €r   r=   z*_NodePickleData.unpickle.<locals>.<lambda>¾  s   ø€  w¨q¤z€ r    z$target must be callable or str, got )rH   rQ  rG  rÐ   rR  rT  rò   rÃ   rd   r0   rw   ra   Úcreate_noderS  r   rU  )r[   rB  rH  r|   rÐ   rR  rT  rÿ   s     `     r   rò   z_NodePickleData.unpickle¶  sÒ   ø€ õ Ô#¥OÐ5IÐ5IÐ5IÐ5IÈ4Ì9ÑUÔUˆÝÔ%ÝÐ1Ð1Ð1Ð1°4´;ñ
ô 
ˆð ”×%Ò% nÑ5Ô5ˆÝ˜Ñ Ô ð 	X¥J¨vµsÑ$;Ô$;ð 	XÝ Ð!VÍÈVÉÌÐ!VÐ!VÑWÔWÐWØ× Ò  ¤¨&°$¸ÀÄ	È4Ì9ÑUÔUˆØ”IˆŒ	Øˆr    )r-   r.   r/   rg   rh   rv   r²   r)   rV   ÚGraphrŒ   rò   r&   r    r   rG  rG  ˜  s²   € € € € € ð
àŒhŒmð
ð �e”h”mÐ%6Ð6Ô7ð
ð ð	
ð
 
ð
ð 
ð 
ð 
ð:àŒxŒ~ðð Ð'¨¬¬Ð6Ô7ðð 'ð	ð
 
ŒŒðð ð ð ð ð r    rG  c            
       ó.  — e Zd Zedededeeegef         ee	         f         fd„¦   «         Z
edededd fd„¦   «         Zededed	         ed
         z  dedd fd„¦   «         Zededefd„¦   «         Zededefd„¦   «         Zedededefd„¦   «         ZdS )rn   r…   rS  r   c                 óV   — |                       ||j        ¦  «        }|j        |j        ffS r4   )rÅ   rP   rò   rY   )rƒ   r…   rS  Úresults       r   rf   z_OpPickleData.reduce_helperÉ  s,   € ð —’˜B ¤Ñ0Ô0ˆØ” 'Ô"9Ð!;Ð<Ð<r    rP   c                 ór  — t          |t          ¦  «        rt          |¦  «        S t          t          |dd ¦  «        t          ¦  «        rit          |d¦  «        st          d¦  «        ‚|j        }t          |t          ¦  «        st          dt          |¦  «        › �¦  «        ‚t          |¦  «        S t          j        j                             |¦  «        }t          |t          j        j        ¦  «        r|                      |t"          |¦  «        S t          |t          j        j        ¦  «        r|                      |t&          |¦  «        S |                     t*          j        ¦  «        r)|                     dd¦  «        \  }}t+          ||¦  «        S t1          dt          |¦  «        › d|› d|› �¦  «        ‚)NÚ__wrapped__z op missing __wrapped__ attributez"Expected AOTCompiledArtifact, got rª   r§   zTARGET: ú )rd   r0   Ú_OpStrPickleDatarÂ   r   r¹   rw   r_  ra   Ú_OpPrecompiledPickleDatarg   rh   rv   Ú_pretty_print_targetrk   Ú
OpOverloadÚ
_pickle_opÚ_OpOverloadPickleDatarm   Ú_OpOverloadPacketPickleDatar   Ú_OpFunctionPickleDataÚSUPPORTED_ROOTSÚsplitr  )rƒ   rS  rP   Úartifactr   rÛ   Údetails          r   rÅ   z_OpPickleData.pickleÐ  s”  € å�b�#ÑÔð 	(Ý# BÑ'Ô'Ð'å•g˜b -°Ñ6Ô6Õ8KÑLÔLð 	6Ý˜2˜}Ñ-Ô-ð IÝ$Ð%GÑHÔHÐHØ”~ˆHÝ˜hÕ(;Ñ<Ô<ð Ý$ØI½¸h¹¼ÐIÐIñô ð õ ,¨HÑ5Ô5Ð5åŒxŒ}×1Ò1°"Ñ5Ô5ˆå�b�%œ*Ô/Ñ0Ô0ð 		IØ—>’> $Õ(=¸wÑGÔGÐGÝ˜�EœJÔ7Ñ8Ô8ð 	IØ—>’> $Õ(CÀWÑMÔMÐMØ�_Š_Õ2ÔBÑCÔCð 	IØŸ:š: c¨1Ñ-Ô-‰LˆD�&Ý(¨¨vÑ6Ô6Ð6õ &Ð&Gµ°b±´Ð&GÐ&G¸BÐ&GÐ&GÀÐ&GÐ&GÑHÔHÐHr    r   Údataclsrf  rg  c                 ó|   — |j         x}r) || ¦  «        sddlm} |                     d| › �¦  «          || ¦  «        S )Nr   )ÚCacheabilityValidatorz"Unable to pickle non-standard op: )r*   Útorch._inductor.codecachero  Úbypass)r   rm  rP   r*   ro  s        r   re  z_OpPickleData._pickle_opì  sd   € ð "Ô,Ð,ˆJð 	V°j°jÀÑ6FÔ6Fð 	VØGÐGÐGÐGÐGÐGà!×(Ò(Ð)TÈdÐ)TÐ)TÑUÔUÐUØˆw�t‰}Œ}Ðr    r|   c                 ó   — d S r4   r&   r  s     r   rò   z_OpPickleData.unpickleø  s   € àˆr    c                 ó¸   — d|v rC|                      dd¦  «        \  }}t          ¦   «         |         }|                      ||¦  «        S t          ¦   «         |         S )zC
        Like `globals()[name]` but supports dotted names.
        rª   r§   )rj  ÚglobalsÚ_getattr_by_name)rƒ   r   r&  ÚrestrÛ   s        r   Ú_lookup_global_by_namez$_OpPickleData._lookup_global_by_nameü  sU   € ð
 �$ˆ;ˆ;ØŸ
š
 3¨Ñ*Ô*‰IˆC�Ý‘9”9˜S”>ˆDØ×'Ò'¨¨dÑ3Ô3Ð3å‘9”9˜T”?Ð"r    rÛ   c                 ó„   — d|v r-|                      dd¦  «        \  }}t          | |¦  «        } d|v °-t          | |¦  «        S )zG
        Like `getattr(root, name)` but supports dotted names.
        rª   r§   )rj  rÂ   )rÛ   r   r&  s      r   ru  z_OpPickleData._getattr_by_name  sP   € ð
 �TˆkˆkØŸ
š
 3¨Ñ*Ô*‰IˆC�Ý˜4 Ñ%Ô%ˆDð �Tˆkˆkõ �t˜TÑ"Ô"Ð"r    N)r-   r.   r/   râ   rN   rX   rµ   r   rŒ   rW   rf   r)   rÅ   rã   r0   ra   re  r   rò   rw  ru  r&   r    r   rn   rn   È  s‰  € € € € € Øð=Ø"ð=Ø(.ð=à	ˆx˜Ð(¨&Ð0Ô1°5Ð9LÔ3MÐMÔ	Nð=ð =ð =ñ „[ð=ð ðI˜ð I¨ð I°_ð Ið Ið Iñ „[ðIð6 ð	Øð	àÐ-Ô.°Ð6SÔ1TÑTð	ð ð	ð 
ð		ð 	ð 	ñ „\ð	ð ð ~ð ¸&ð ð ð ñ „^ðð ð	#¨#ð 	#°&ð 	#ð 	#ð 	#ñ „[ð	#ð ð#˜vð #¨Sð #°Vð #ð #ð #ñ „\ð#ð #ð #r    rn   c                   ó.   — e Zd Zdeddfd„Zdedefd„ZdS )ra  r   r   Nc                 ó   — || _         d S r4   r   ©r[   r   s     r   rV   z_OpStrPickleData.__init__  ó   € ØˆŒ	ˆ	ˆ	r    r|   c                 ó   — | j         S r4   r   r  s     r   rò   z_OpStrPickleData.unpickle  s
   € ØŒyÐr    )r-   r.   r/   r0   rV   rŒ   rò   r&   r    r   ra  ra    sX   € € € € € ð˜Sð  Tð ð ð ð ð ~ð ¸#ð ð ð ð ð ð r    ra  c                   óB   — e Zd Zdeddfd„Zdedej        j        fd„Z	dS )rf  r   r   Nc                 ó   — || _         d S r4   r   r{  s     r   rV   z_OpOverloadPickleData.__init__  r|  r    r|   c                 ó¶   — |                       | j        ¦  «        }t          |t          j        j        ¦  «        st          dt          |¦  «        › �¦  «        ‚|S )NzExpected OpOverload, got )rw  r   rd   rg   rk   rd  rw   ra   ©r[   r|   r]   s      r   rò   z_OpOverloadPickleData.unpickle  sQ   € Ø×)Ò)¨$¬)Ñ4Ô4ˆÝ˜#�uœzÔ4Ñ5Ô5ð 	JÝ Ð!H½TÀ#¹Y¼YÐ!HÐ!HÑIÔIÐIØˆ
r    )
r-   r.   r/   r0   rV   rŒ   rg   rk   rd  rò   r&   r    r   rf  rf    s]   € € € € € ð˜Sð  Tð ð ð ð ð ~ð ¸%¼*Ô:Oð ð ð ð ð ð r    rf  c                   óB   — e Zd Zdeddfd„Zdedej        j        fd„Z	dS )rg  r   r   Nc                 ó   — || _         d S r4   r   r{  s     r   rV   z$_OpOverloadPacketPickleData.__init__'  r|  r    r|   c                 ó¶   — |                       | j        ¦  «        }t          |t          j        j        ¦  «        st          dt          |¦  «        › �¦  «        ‚|S )NzExpected OpOverloadPacket, got )rw  r   rd   rg   rk   rm   rw   ra   r�  s      r   rò   z$_OpOverloadPacketPickleData.unpickle*  sQ   € Ø×)Ò)¨$¬)Ñ4Ô4ˆÝ˜#�uœzÔ:Ñ;Ô;ð 	PÝ Ð!NÅ4ÈÁ9Ä9Ð!NÐ!NÑOÔOÐOØˆ
r    )
r-   r.   r/   r0   rV   rŒ   rg   rk   rm   rò   r&   r    r   rg  rg  &  s]   € € € € € ð˜Sð  Tð ð ð ð ð ~ð ¸%¼*Ô:Uð ð ð ð ð ð r    rg  c                   ó.   — e Zd Zdeddfd„Zdedefd„ZdS )rb  rk  r   Nc                 ó8   — |                      ¦   «         | _        d S r4   )Ú	serializeÚcontents)r[   rk  s     r   rV   z!_OpPrecompiledPickleData.__init__2  s   € Ø ×*Ò*Ñ,Ô,ˆŒˆˆr    r|   c                 ó    ‡— t          j        | j        ¦  «        Šdd l}|                     ‰¦  «        dt
          dt
          fˆfd„¦   «         }|S )Nr   rÐ   r   c                  ó   •—  ‰| Ž S r4   r&   )rÐ   Úprecompiled_artifacts    €r   Úwrappedz2_OpPrecompiledPickleData.unpickle.<locals>.wrapped9  s   ø€ à'Ð'¨Ð.Ð.r    )r   Údeserializerˆ  Ú	functoolsÚwrapsr   )r[   r|   rŽ  rŒ  r‹  s       @r   rò   z!_OpPrecompiledPickleData.unpickle5  sm   ø€ Ý2Ô>¸t¼}ÑMÔMÐØÐÐÐà	�ŠÐ-Ñ	.Ô	.ð	/�3ð 	/¥3ð 	/ð 	/ð 	/ð 	/ð 	/ñ 
/Ô	.ð	/ð ˆr    )r-   r.   r/   r   rV   rŒ   rX   rò   r&   r    r   rb  rb  1  sY   € € € € € ð-Ð!4ð -¸ð -ð -ð -ð -ð ~ð ¸&ð ð ð ð ð ð r    rb  c                   ó:   — e Zd ZdZdZdededdfd„Zdedefd	„Z	dS )
rh  zÕ
    Supports pickling a set of standard/common functions
    These must be prefixed with the full namespace in order to properly
    be pickled (i.e `einops.rearrange` and not `from einops import rearrange`)
    )z	builtins.zmath.ztorch.z	operator.zeinops.rÛ   r   r   Nc                 ó"   — || _         || _        d S r4   )rÛ   r   )r[   rÛ   r   s      r   rV   z_OpFunctionPickleData.__init__J  s   € ØˆŒ	ØˆŒ	ˆ	ˆ	r    r|   c                 ó¶  — | j         dk    rt                               | j        ¦  «        S | j         dk    rdd l}|                      || j        ¦  «        S | j         dk    r |                      t          | j        ¦  «        S | j         dk    rdd l}|                      || j        ¦  «        S | j         dk    rdd l}|                      || j        ¦  «        S t          ‚)NÚbuiltinsÚmathr   rg   ÚoperatorÚeinops)
rÛ   Ú__builtins__r4  r   r”  ru  rg   r•  r–  r  )r[   r|   r”  r•  r–  s        r   rò   z_OpFunctionPickleData.unpickleN  sÚ   € ØŒ9˜
Ò"Ð"Ý×#Ò# D¤IÑ.Ô.Ð.ØŒY˜&Ò Ð ØˆKˆKˆKà×(Ò(¨¨t¬yÑ9Ô9Ð9ØŒY˜'Ò!Ð!Ø×(Ò(­°´	Ñ:Ô:Ð:ØŒY˜*Ò$Ð$ØˆOˆOˆOà×(Ò(¨°4´9Ñ=Ô=Ð=ØŒY˜(Ò"Ð"ØˆMˆMˆMà×(Ò(¨°´Ñ;Ô;Ð;å%Ð%r    )
r-   r.   r/   rß   ri  r0   rV   rŒ   rX   rò   r&   r    r   rh  rh  @  sq   € € € € € ðð ð O€Oð˜Sð ¨ð °ð ð ð ð ð& ~ð &¸&ð &ð &ð &ð &ð &ð &r    rh  c                   ór   — e Zd Zdej        j        deddfd„Zdej        j        de	dej        j        fd„Z
dS )	rA  rB  rP   r   Nc                 óÚ   — |j         | _        |j        | _        i }|j        D ]}t          |||¦  «        ||<   Œt          |                     ¦   «         ¦  «        | _        |j        | _        d S r4   )	Ú_tracer_clsÚ
tracer_clsÚ_tracer_extrasÚtracer_extrasÚnodesrG  rµ   ÚvaluesÚ_codegen)r[   rB  rP   rž  rÿ   s        r   rV   z_GraphPickleData.__init__d  sj   € ØÔ+ˆŒØ"Ô1ˆÔà68ˆØ”Kð 	@ð 	@ˆDÝ)¨$°°wÑ?Ô?ˆE�$‰KˆKÝ˜5Ÿ<š<™>œ>Ñ*Ô*ˆŒ
ØœˆŒˆˆr    r9  r|   c                 óà   — t           j                             || j        | j        ¦  «        }i }| j        D ]}|                     |||¦  «        ||<   Œt          | d¦  «        r| j        |_        |S )Nr   )	rg   rh   rZ  r›  r�  rž  rò   r¹   r   )r[   r9  r|   rB  rž  Únds         r   rò   z_GraphPickleData.unpicklew  ss   € õ ”—’˜r 4¤?°DÔ4FÑGÔGˆà68ˆØ”*ð 	Bð 	BˆBØŸš E¨5°.ÑAÔAˆE�"‰IˆIÝ�4˜Ñ$Ô$ð 	+Ø!œ]ˆEŒNàˆr    )r-   r.   r/   rg   rh   rZ  r)   rV   ri   rŒ   rò   r&   r    r   rA  rA  c  sv   € € € € € ð'˜eœhœnð '°wð 'À4ð 'ð 'ð 'ð 'ð&Ø”(Ô&ðØ8Fðà	ŒŒðð ð ð ð ð r    rA  c                   ó®   — e Zd Zededej        j        dee	e
egej        j        f         ee
ef         f         fd„¦   «         Zdeddfd„Zdedefd	„ZdS )
rs   r…   r]   r   c                 ó4   — | j          | |¦  «        |j        ffS r4   rñ   ró   s      r   rf   z'_TracingContextPickleData.reduce_helper†  s)   € ð ŒLà��C‘”ØÔ'ðð
ð 	
r    ÚcontextNc                 óÞ   — |j         | _         |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        d S r4   )	Úmodule_contextÚframe_summary_stackÚloc_in_frameÚaot_graph_nameÚparams_flatÚparams_flat_unwrap_subclassesÚparams_unwrapped_to_flat_indexÚoutput_stridesÚ#force_unspec_int_unbacked_size_like)r[   r¥  s     r   rV   z"_TracingContextPickleData.__init__•  sn   € à%Ô4ˆÔØ#*Ô#>ˆÔ Ø#Ô0ˆÔØ%Ô4ˆÔØ"Ô.ˆÔØ-4Ô-RˆÔ*Ø.5Ô.TˆÔ+Ø%Ô4ˆÔàÔ7ð 	Ô0Ð0Ð0r    r|   c                 ó  — t          |j        ¦  «        }| j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j	        |_	        | j
        |_
        |S r4   )r   rˆ   r§  r¨  r©  rª  r«  r¬  r­  r®  r¯  )r[   r|   r¥  s      r   rò   z"_TracingContextPickleData.unpickle«  s   € Ý  Ô!9Ñ:Ô:ˆØ!%Ô!4ˆÔØ&*Ô&>ˆÔ#Ø#Ô0ˆÔØ!%Ô!4ˆÔØ"Ô.ˆÔØ04Ô0RˆÔ-Ø15Ô1TˆÔ.Ø!%Ô!4ˆÔàÔ4ð 	Ô3ð ˆr    )r-   r.   r/   râ   rN   rg   rr   r   rµ   r   r
   rŒ   rW   rf   rV   rò   r&   r    r   rs   rs   …  sÂ   € € € € € Øð
Ø"ð
Ø).¬Ô)Eð
à	Ø�$˜Ð'¨¬Ô)EÐEÔFØˆdÐ'Ð'Ô(ð	*ô
ð
ð 
ð 
ñ „[ð
ð
 ð 
°4ð 
ð 
ð 
ð 
ð, ~ð ¸.ð ð ð ð ð ð r    rs   )r   N)SÚ
contextlibr¿   r)  r   r»   rÅ   r8   Úabcr   Úcollections.abcr   r   Útypingr   r   r   Útyping_extensionsr	   r
   Útorch.utils._import_utilsr   rT   rg   Útorch.utils._pytreeÚutilsÚ_pytreerH   Útorch._guardsr   Ú"torch._inductor.standalone_compiler   Ú"torch._library.fake_class_registryr   Útorch._subclasses.fake_tensorr   r   r   Útorch._subclasses.meta_utilsr   r   r   Útorch.fx.experimental.sym_noder   Ú%torch.fx.experimental.symbolic_shapesr   Útorch.utils._mode_utilsr   rp   ÚSymFloatr   r0   r1   r   r'   Ú	dataclassr)   r5   rX   r9   r:   r>   ÚcontextmanagerrL   ÚPicklerrN   rŒ   rW   Ú	Unpicklerr�   ro   rq   re   rx   rj   rG  rn   ra  rf  rg  rb  rh  rA  rs   r&   r    r   ú<module>rÇ     sò  ðØ Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø 	€	€	€	Ø Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à 1Ð 1Ð 1Ð 1Ð 1Ð 1ð €{�}„}€ØÐØ€Fà €€€Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø (Ð (Ð (Ð (Ð (Ð (Ø BÐ BÐ BÐ BÐ BÐ BØ ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ Lðð ð ð ð ð ð ð ð ð ð
 3Ð 2Ð 2Ð 2Ð 2Ð 2Ø :Ð :Ð :Ð :Ð :Ð :Ø /Ð /Ð /Ð /Ð /Ð /ð ˆG�K ¤¨u¬~Ñ>Ô>€	ð˜3ð  4ð ð ð ð ðT¨ð T°ð Tð Tð Tð Tð Ôð	"ð 	"ð 	"ð 	"ð 	"ñ 	"ô 	"ñ Ôð	"ðð ð ð ð! 6ð !¨g¬k¸&Ô.Að !ð !ð !ð !ð 8¨B°¨HÔ#5ð ð ð ð ð Ôð. Y¨t¤_ð .ð .ð .ñ Ôð.ð vð vð vð vð v�6”>ñ vô vð vðr	Ið Ið Ið Ið Iñ Iô Ið Ið �gÐ3°VÑ<Ô<Ð ðBð Bð Bð Bð B�fÔ&ñ Bô Bð Bð2ð 2ð 2ð 2ð 2ñ 2ô 2ð 2ðD1ð 1ð 1ð 1ð 1ñ 1ô 1ð 1ð>G
ð G
ð G
ð G
ð G
ñ G
ô G
ð G
ðT/ð /ð /ð /ð /ñ /ô /ð /ðdð ð ð ð ñ ô ð ðB-ð -ð -ð -ð -ñ -ô -ð -ð`H#ð H#ð H#ð H#ð H#ñ H#ô H#ð H#ðVð ð ð ð �}ñ ô ð ðð ð ð ð ˜Mñ ô ð ðð ð ð ð  -ñ ô ð ðð ð ð ð ˜}ñ ô ð ð &ð  &ð  &ð  &ð  &˜Mñ  &ô  &ð  &ðFð ð ð ð ñ ô ð ðD3ð 3ð 3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3r    