
    i
[                         d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
mZmZmZ d dlmZm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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jP                  ejR                        Z*de+de,fdZ-e j\                   G d d             Z/ G d dej`                        Z1 G d d      Z2 e
de3      Z4 G d dejj                        Z6 G d d      Z7 G d d      Z8 G d d      Z9 G d  d!      Z: G d" d#      Z; G d$ d%      Z< G d& d'      Z= G d( d)e=      Z> G d* d+e=      Z? G d, d-e=      Z@ G d. d/e=      ZA G d0 d1e=      ZB G d2 d3      ZC G d4 d5      ZDy)6    N)abstractmethod)Callable)AnyNewTypeOptionalTypeVarUnion)overrideSelf)TracingContext)AOTCompiledArtifact)
FakeTensorFakeTensorModeTensor)MetaConverterMetaTensorDescMetaTensorDescriber)SymNode)ShapeEnv)no_dispatch	_SymNodeTnamereturnc                 $    | j                  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    Q/var/www/html/engine/venv/lib/python3.12/site-packages/torch/fx/_graph_pickler.py_ops_filter_safer      s     ??	
     c                   .    e Zd ZU eZeeegef      e	d<   y)Options
ops_filterN)
__name__
__module____qualname__r   r"   r   r   strbool__annotations__ r   r   r!   r!   *   s     3CJ3%+./Br   r!   c            	            e Zd ZdZddej
                  dee   ddf fdZe	de
deedef   eedf   f   fd	       Ze	de
dee   fd
       Zedde
dee   defd       Zededede
fd       Z xZS )GraphPicklerzb
    GraphPickler is a Pickler which helps pickling fx graph - in particular
    GraphModule.
    Nfileoptionsr   c                     t         |   |       |xs
 t               | _        t	        t                     | _        t        d      | _        y )NF)	copy_data)	super__init__r!   r-   _UnpickleStateTokenobject_unpickle_stater   _meta_tensor_describer)selfr,   r-   	__class__s      r   r1   zGraphPickler.__init__7   s>    +')  368< ':E&J#r   obj.c                    t        |t              rt        j                  | |      S t        |t        j
                  j                        rt        j                  | |      S t        |t        j                  j                  t        j                  j                  f      rt        j                  | |      S t        |t              rt        j                  | |      S t        |t        j                        rt        j                  | |      S t        |t        j                   j"                        rt$        j                  | |      S t        |t        j
                  j&                        rJ t(        j                  | |      x}r|S t*        S N)
isinstancer   _TensorPickleDatareduce_helpertorchfxGraphModule_GraphModulePickleData_opsOperatorBaseOpOverloadPacket_OpPickleDatar   _ShapeEnvPickleDataSymInt_SymNodePickleData_guardsr   _TracingContextPickleDataNode_TorchNumpyPickleDataNotImplemented)r6   r8   reduces      r   reducer_overridezGraphPickler.reducer_overrideE   s"   , c:&$224==UXX112)77cBBejj55uzz7R7RST ..tS99X&&44T3??U\\*%33D#>>U]]99:,::4EE "#uxx}}555.<<T3GGvG "!r   c                 "    || j                   u ryy )Nunpickle_state)r4   )r6   r8   s     r   persistent_idzGraphPickler.persistent_idq   s    $&&&#r   c                     t        j                         5 } | ||      }|j                  |       |j                         cddd       S # 1 sw Y   yxY w)z#
        Pickle an object.
        N)ioBytesIOdumpgetvalue)clsr8   r-   streampicklers        r   dumpszGraphPickler.dumpsx   sF    
 ZZ\ 	%V&'*GLL??$	% 	% 	%s   *A		Adata	fake_modec                     t        |      }t        j                  |       5 }t        ||      }|j	                         cddd       S # 1 sw Y   yxY w)z%
        Unpickle an object.
        N)_UnpickleStaterT   rU   _GraphUnpicklerload)r\   r]   staterY   	unpicklers        r   loadszGraphPickler.loads   sG    
 y)ZZ 	$'6I>>#	$ 	$ 	$s   AAr:   )r#   r$   r%   __doc__rT   rU   r   r!   r1   r
   r3   tupler   r   rO   r&   rR   classmethodbytesr[   staticmethodr   rd   __classcell__r7   s   @r   r+   r+   1   s    
KRZZ K(72C Kt K ("("	xS!5c?2	3(" ("T  HSM   % %'): %e % % $E $n $ $ $r   r+   c                       e Zd ZdeddfdZy)r_   r]   r   Nc                 0    || _         t               | _        y r:   )r]   r   meta_converter)r6   r]   s     r   r1   z_UnpickleState.__init__   s    "9Fr   )r#   r$   r%   r   r1   r)   r   r   r_   r_      s    I. IT Ir   r_   r2   c                   Z     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`   rY   rQ   r   Nc                 2    t         |   |       || _        y r:   )r0   r1   r4   )r6   rY   rQ   r7   s      r   r1   z_GraphUnpickler.__init__   s     -r   pidc                 N    |dk(  r| j                   S t        j                  d      )NrQ   zInvalid persistent ID)r4   pickleUnpicklingError)r6   rq   s     r   persistent_loadz_GraphUnpickler.persistent_load   s)    ""'''(()@AAr   )r#   r$   r%   rT   rU   r_   r1   r
   r3   ru   rj   rk   s   @r   r`   r`      sG    .rzz .> .d . B6 Bf 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y)rF   r\   rZ   r8   r   c                 B    | j                    | |      |j                  ffS r:   unpickler4   rX   rZ   r8   s      r   r=   z!_ShapeEnvPickleData.reduce_helper   s"     ||c#h(?(?@@@r   envNc                     |j                   rJ |j                  j                         | _        | j                  d= | j                  d= y )Ntracked_fakesfake_tensor_cache)_translation_validation_enabled__dict__copyr\   )r6   r{   s     r   r1   z_ShapeEnvPickleData.__init__   s@     6666LL%%'	IIo&II)*r   rQ   c                     |j                   sJ |j                   j                  sJ | j                  j                         D ]&  \  }}t	        |j                   j                  ||       ( |j                   j                  S r:   )r]   	shape_envr\   itemssetattr)r6   rQ   kvs       r   ry   z_ShapeEnvPickleData.unpickle   sp    ''''''1111IIOO% 	>DAqN,,661=	> ''111r   )r#   r$   r%   dictr&   r3   r(   rg   r+   r   rf   r   r   r_   r2   r=   r1   ry   r)   r   r   rF   rF      s    
sF{
A"A)1A	$'12E$@S:S4TT
A A+H + +2~ 2( 2r   rF   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y)rH   rZ   r8   r   c                      | |j                         |j                  f}t        |t        j                        rt
        j                  |fS t        dt        |             )NzUnhandled SymNode type )	noder4   r;   r>   rG   rH   unpickle_sym_intNotImplementedErrortype)rX   rZ   r8   argss       r   r=   z _SymNodePickleData.reduce_helper   sR     CHHw667c5<<(%66<<%(?S	{&KLLr   r   Nc                     |j                   | _        |j                  | _        |j                  | _        |j                  | _        y r:   )_exprexprr   pytype_hinthint)r6   r   s     r   r1   z_SymNodePickleData.__init__   s.    JJ	kkJJ	r   c                     | j                   J t        | j                  | j                   | j                  | j                        S r:   )r   r   r   r   r   )r6   s    r   _to_sym_nodez_SymNodePickleData._to_sym_node   s3    ~~)))tyy$..$++tyyIIr   rQ   c                 H    t        j                  | j                               S r:   )r>   rG   r   r6   rQ   s     r   r   z#_SymNodePickleData.unpickle_sym_int   s    ||D--/00r   )r#   r$   r%   rg   r+   r   rf   r   r   r_   r2   r=   r   r1   r   r>   rG   r   r)   r   r   rH   rH      s    MM M 
$'23U4AT;T5UU
	M MW  Jg J1~ 1%,, 1r   rH   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y)r<   metadatarZ   r8   r   c                 X    | j                    | |j                  |      |j                  ffS r:   )ry   r5   r4   rz   s      r   r=   z_TensorPickleData.reduce_helper   s3     ||..4##
 
 	
r   	describertNc           	         |j                  |      }|j                  r:t        |j                  t        j                  j
                  j                        sJ t        j                  |d       | _	        t        j                  D ]>  }|dv rt        | j                  |      J d| dt        | j                  |               y )Nr]   )r]   	view_funcz
not None: z: )describe_tensorr   r;   r>   _subclasses
meta_utils_FakeTensorViewFuncdataclassesreplacer   r   _UNSERIALIZABLEgetattr)r6   r   r   r   r   s        r   r1   z_TensorPickleData.__init__   s    
 ,,Q/ %% 1 1 < < P P*
 	
 
 $++HE  // 	A..4==!,4 QCr'$--";!<=4	r   rQ   c                    t        j                  | j                  j                        }|j                  rN|j
                  Bt        j                  |j
                  j                        }t        j                  ||      }dt        g t        j                  f   dt        t        j                  t        f   dt        ffd}j                  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 Y   y xY wr:   )r   r   r]   )r   r   rQ   s     r   	with_fakez-_TensorPickleData.unpickle.<locals>.with_fake  s8      !",,M	  s   2;)r   r   r   r]   is_viewr   r   r>   r   r	   r   r&   r   rn   meta_tensorr   )r6   rQ   r   new_baser   s    `   r   ry   z_TensorPickleData.unpickle  s    &&MM$..
  9"**(22H #**8(CH		!"ell"23		=B5<<QTCT=U				 ,,88$$..
 	
r   )r#   r$   r%   r   r   r(   rg   r+   rf   r   r   r_   r2   r=   r   r   r1   ry   r)   r   r   r<   r<      s    Z((
"
)3
	$'34eDBU<U6VV

 
"5 & T , 
~  
*  
r   r<   c                       e Zd Zededede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d
ef   fdZededee	   fd       Zy)rL   rZ   r8   r   c                 ^    | j                  |      x}r| j                  ||j                  ffS y r:   )from_objectry   r4   )rX   rZ   r8   r\   s       r   r=   z#_TorchNumpyPickleData.reduce_helper*  s5     ??3''4'LL4)@)@"ABBr   modr   Nc                      || _         || _        y r:   )r   r   )r6   r   r   s      r   r1   z_TorchNumpyPickleData.__init__7  s    	r   rQ   .c                     t        t        j                  | j                        | j                        }t
        j                  j                  j                  j                         |   S r:   )
r   	importlibimport_moduler   r   r>   _dynamo	variablesmiscget_np_to_tnp_map)r6   rQ   nps      r   ry   z_TorchNumpyPickleData.unpickle;  sE    Y,,TXX6		B}}&&++==?CCr   tnpc                 d   t        |      sy t        j                  j                  j                  j                         }	 |j                  |      x}sy 	 t        |dd       x}sd}t        |dd       x}sy |t        t        j                  |      |      k(  sJ  | ||      S # t        $ r Y y w xY w)Nr$   numpyr#   )callabler>   r   r   r   get_tnp_to_np_mapget	TypeErrorr   r   r   )rX   r   	tnp_to_npr   r   r   s         r   r   z!_TorchNumpyPickleData.from_object?  s    }MM++00BBD		#--,,B, -
 r<666CJ555 WY44S94@@@@3~  		s    B# #	B/.B/)r#   r$   r%   rg   r+   r3   r   rf   r   r   r_   r2   r=   r&   r1   ry   r   r)   r   r   rL   rL   )  s    
"
)/
	dN+V34eDBU<U6VV	


 
C s t D~ D(3;:O D f $  r   rL   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y)rA   rZ   r8   r   c                 X    | j                    | ||j                        |j                  ffS r:   )ry   r-   r4   rz   s      r   r=   z$_GraphModulePickleData.reduce_helperX  s1     ||W__%##
 
 	
r   gmr-   Nc                 0   t        |t        j                  j                  j                        r|j                         }n|j                         }|j                  j                         | _	        | j                  d= t        |j                  |      | _        y )N_graph)r;   r>   r?   _lazy_graph_module_LazyGraphModule_real_recompile	recompiler   r   gm_dict_GraphPickleDatar   graph)r6   r   r-   _python_codes       r   r1   z_GraphModulePickleData.__init__d  sg    b%((55FFG--/L<<>L{{'')LL"%bii9
r   rQ   c                     t         j                  j                  j                  t         j                  j                        }| j                  |_        | j                  j                  ||      |_        |S r:   )	r>   r?   r@   __new__r   r   r   ry   r   )r6   rQ   r   s      r   ry   z_GraphModulePickleData.unpicklen  sN    XX!!))%((*>*>?llJJ''N;		r   )r#   r$   r%   rg   r+   r>   r?   r@   rf   r   r   r_   r2   r=   r!   r1   ry   r)   r   r   rA   rA   W  s    	
"	
).)=)=	
	$')=)==>d''(	*
	
 	
:588// :' :d :~ %((:N:N r   rA   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y)
_NodePickleDatar   mappingr-   r   Nc                    t        j                  t        j                  j                  fd|j
                        | _        t        j                  t        j                  j                  fd|j                        | _        |j                  | _        |j                  | _        t        j                  |j                  |      | _        |j                  | _        |j                  | _        y )Nc                     |    S r:   r)   nr   s    r   <lambda>z*_NodePickleData.__init__.<locals>.<lambda>|  s    '!* r   c                     |    S r:   r)   r   s    r   r   z*_NodePickleData.__init__.<locals>.<lambda>~  s    WQZ r   )pytreetree_map_onlyr>   r?   rK   r   kwargsr   oprE   rs   targetr   meta)r6   r   r   r-   s     ` r   r1   z_NodePickleData.__init__v  s     ((8LdiiX	**HHMM/
 II	''#**4;;@ II	 II	r   r   rQ   c                    t        j                  t        fd| j                        }t        j                  t        fd| j                        }| j
                  j                  |      }t        |      st        |t              sJ |j                  | j                  |||| j                  | j                        }| j                  |_        |S )Nc                     |    S r:   r)   r   s    r   r   z*_NodePickleData.unpickle.<locals>.<lambda>  s    wqz r   c                     |    S r:   r)   r   s    r   r   z*_NodePickleData.unpickle.<locals>.<lambda>  s    wqz r   )r   r   r   r   r   r   ry   r   r;   r&   create_noder   r   r   r   )r6   r   r   rQ   r   r   r   r   s     `     r   ry   z_NodePickleData.unpickle  s     ##O5I499U%%14;;
 %%n5:fc#:::  &$		499UII	r   )r#   r$   r%   r>   r?   rK   r   r!   r1   Graphr_   ry   r)   r   r   r   r   u  s    hhmm ehhmm%667 	
 
,xx~~ '67 '	
 
r   r   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ed	   ed
   f   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y)rE   rZ   r   r   c                 l    | j                  ||j                        }|j                  |j                  ffS r:   )rs   r-   ry   r4   )rX   rZ   r   results       r   r=   z_OpPickleData.reduce_helper  s0     B0'"9"9!;<<r   r-   c                    t        |t              rt        |      S t        t        |dd       t              r7t        |d      sJ |j                  }t        |t              sJ t        |      S t        j                  j                  j                  |      }t        |t        j                  j                        r| j                  |t        |      S t        |t        j                  j                         r| j                  |t"        |      S |j%                  t&        j(                        r!|j+                  dd      \  }}t'        ||      S t-        dt/        |       d| d|       )N__wrapped__.   zTARGET:  )r;   r&   _OpStrPickleDatar   r   hasattrr   _OpPrecompiledPickleDatar>   r?   rK   _pretty_print_targetrB   
OpOverload
_pickle_op_OpOverloadPickleDatarD   _OpOverloadPacketPickleDatar   _OpFunctionPickleDataSUPPORTED_ROOTSsplitr   r   )rX   r   r-   artifactr   rootdetails          r   rs   z_OpPickleData.pickle  s    b##B''gb-68KL2}---~~Hh(;<<<+H55xx}}11"5b%**//0>>$(=wGGEJJ778>>$(CWMM__2BBC::c1-LD&(v66 &b
!B4q&GHHr   r   dataclsr   r   c                 `    |j                   x}r ||       sddlm}  |d|         ||       S )Nr   )BypassFxGraphCachez"Unable to pickle non-standard op: )r"   torch._inductor.codecacher  )r   r  r-   r"   r  s        r   r   z_OpPickleData._pickle_op  s<     ",,,J,j6FD$'I$%PQQt}r   rQ   c                      y r:   r)   r   s     r   ry   z_OpPickleData.unpickle  s    r   c                     d|v r4|j                  dd      \  }}t               |   }| j                  ||      S t               |   S )zC
        Like `globals()[name]` but supports dotted names.
        r   r   )r   globals_getattr_by_name)rX   r   r   restr   s        r   _lookup_global_by_namez$_OpPickleData._lookup_global_by_name  sI    
 $;

3*IC9S>D''d339T?"r   r   c                 n    d|v r&|j                  dd      \  }}t        | |      } d|v r&t        | |      S )zG
        Like `getattr(root, name)` but supports dotted names.
        r   r   )r   r   )r   r   r   s      r   r  z_OpPickleData._getattr_by_name  sC    
 Tk

3*IC4%D Tk tT""r   N)r#   r$   r%   rg   r+   r3   rf   r   r_   r2   r=   r!   rs   ri   r&   r	   r   r   r   ry   r
  r  r)   r   r   rE   rE     s5   ="=(.=	x(&0159L3MM	N= = I I I_ I I. ()40M+NN

  
  ~ &   	## 	#& 	# 	# #v #S #V # #r   rE   c                   ,    e Zd ZdeddfdZdedefdZy)r   r   r   Nc                     || _         y r:   r   r6   r   s     r   r1   z_OpStrPickleData.__init__  	    	r   rQ   c                     | j                   S r:   r   r   s     r   ry   z_OpStrPickleData.unpickle  s    yyr   )r#   r$   r%   r&   r1   r_   ry   r)   r   r   r   r     s(    S T ~ # r   r   c                   T    e Zd ZdeddfdZdedej                  j                  fdZ	y)r   r   r   Nc                     || _         y r:   r   r  s     r   r1   z_OpOverloadPickleData.__init__  r  r   rQ   c                     | j                  | j                        }t        |t        j                  j
                        sJ |S r:   )r
  r   r;   r>   rB   r   r6   rQ   r8   s      r   ry   z_OpOverloadPickleData.unpickle  s5    ))$))4#uzz44555
r   )
r#   r$   r%   r&   r1   r_   r>   rB   r   ry   r)   r   r   r   r     s2    S T ~ %**:O:O r   r   c                   T    e Zd ZdeddfdZdedej                  j                  fdZ	y)r   r   r   Nc                     || _         y r:   r   r  s     r   r1   z$_OpOverloadPacketPickleData.__init__  r  r   rQ   c                     | j                  | j                        }t        |t        j                  j
                        sJ |S r:   )r
  r   r;   r>   rB   rD   r  s      r   ry   z$_OpOverloadPacketPickleData.unpickle  s5    ))$))4#uzz::;;;
r   )
r#   r$   r%   r&   r1   r_   r>   rB   rD   ry   r)   r   r   r   r     s2    S T ~ %**:U:U r   r   c                   ,    e Zd ZdeddfdZdedefdZy)r   r   r   Nc                 .    |j                         | _        y r:   )	serializecontents)r6   r   s     r   r1   z!_OpPrecompiledPickleData.__init__  s     **,r   rQ   c                     t        j                  | j                        dd l}|j	                        dt
        dt
        ffd       }|S )Nr   r   r   c                       |  S r:   r)   )r   precompiled_artifacts    r   wrappedz2_OpPrecompiledPickleData.unpickle.<locals>.wrapped
  s    '..r   )r   deserializer  	functoolswrapsr   )r6   rQ   r!  r  r  s       @r   ry   z!_OpPrecompiledPickleData.unpickle  sL    2>>t}}M	-	.	/3 	/3 	/ 
/	/ r   )r#   r$   r%   r   r1   r_   r3   ry   r)   r   r   r   r     s)    -!4 - -~ & r   r   c                   8    e Zd ZdZdZdededdfdZdedefd	Z	y)
r   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                      || _         || _        y r:   )r   r   )r6   r   r   s      r   r1   z_OpFunctionPickleData.__init__  s    		r   rQ   c                    | j                   dk(  rt        j                  | j                        S | j                   dk(  r dd l}| j                  || j                        S | j                   dk(  r | j                  t        | j                        S | j                   dk(  r dd l}| j                  || j                        S | j                   dk(  r dd l}| j                  || j                        S t        )Nbuiltinsmathr   r>   operatoreinops)
r   __builtins__r   r   r'  r  r>   r(  r)  r   )r6   rQ   r'  r(  r)  s        r   ry   z_OpFunctionPickleData.unpickle  s    99
"##DII..YY& ((tyy99YY'!((		::YY*$((499==YY("((;;%%r   )
r#   r$   r%   re   r   r&   r1   r_   r3   ry   r)   r   r   r   r     s<     OOS   &~ && &r   r   c                       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
y)	r   r   r-   r   Nc                     |j                   | _        |j                  | _        i }|j                  D ]  }t        |||      ||<    t        |j                               | _        y r:   )_tracer_cls
tracer_cls_tracer_extrastracer_extrasnodesr   rf   values)r6   r   r-   r1  r   s        r   r1   z_GraphPickleData.__init__5  s[    ++"1168KK 	@D)$w?E$K	@5<<>*
r   r   rQ   c                     t         j                  j                  || j                  | j                        }i }| j
                  D ]  }|j                  |||      ||<    |S r:   )r>   r?   r   r.  r0  r1  ry   )r6   r   rQ   r   r1  nds         r   ry   z_GraphPickleData.unpickleH  s[     r4??D4F4FG68** 	BBE5.AE"I	B r   )r#   r$   r%   r>   r?   r   r!   r1   r@   r_   ry   r)   r   r   r   r   4  sS    +ehhnn +w +4 +&	((&&	8F			r   r   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y)
rJ   rZ   r8   r   c                 B    | j                    | |      |j                  ffS r:   rx   rz   s      r   r=   z'_TracingContextPickleData.reduce_helperU  s*     LLC''
 	
r   contextNc                 6   |j                   | _         |j                  | _        |j                  | _        |j                  | _        |j                  | _        |j
                  | _        |j                  | _        |j                  | _        |j                  | _        y r:   )	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)r6   r7  s     r   r1   z"_TracingContextPickleData.__init__d  s    %44#*#>#> #00%44"..-4-R-R*.5.T.T+%4477 	0r   rQ   c                 b   t        |j                        }| j                  |_        | j                  |_        | j                  |_        | j
                  |_        | j                  |_        | j                  |_        | j                  |_        | j                  |_	        | j                  |_
        |S r:   )r   r]   r9  r:  r;  r<  r=  r>  r?  r@  rA  )r6   rQ   r7  s      r   ry   z"_TracingContextPickleData.unpicklez  s     !9!9:!%!4!4&*&>&>##00!%!4!4"..040R0R-151T1T.!%!4!444 	3 r   )r#   r$   r%   rg   r+   r>   rI   r   rf   r   r   r_   r2   r=   r1   ry   r)   r   r   rJ   rJ   T  s    
"
).)E)E
	$')E)EEFd''(	*

 

 
4 
,~ . r   rJ   )Er   r   rT   rs   abcr   collections.abcr   typingr   r   r   r   r	   typing_extensionsr
   r   r>   torch.utils._pytreeutils_pytreer   torch._guardsr   "torch._inductor.standalone_compiler   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   rG   SymFloatr   r&   r'   r   	dataclassr!   Picklerr+   r_   r3   r2   	Unpicklerr`   rF   rH   r<   rL   rA   r   rE   r   r   r   r   r   r   rJ   r)   r   r   <module>rU     sz     	   $ 9 9 ,  $ $ ( B L L 
 3 : / Ku~~>	3 4  C C CY$6>> Y$xI I 3V< 
Bf&& 
B2 2>1 1<D
 D
N+ +\ <% %PF# F#R} M - }  &M  &F @3 3r   