
    `iT                     :   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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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j&                  Z'de(de)fdZ*e j+         G d d                      Z, G d dej-                  Z. G d d          Z/ e	de0          Z1 G d dej2                  Z3 G d d          Z4 G d d          Z5 G d d          Z6 G d d          Z7 G d  d!          Z8 G d" d#          Z9 G d$ d%          Z: G d& d'e:          Z; G d( d)e:          Z< G d* d+e:          Z= G d, d-e:          Z> G d. d/e:          Z? G d0 d1          Z@ G d2 d3          ZAdS )4    N)abstractmethod)AnyCallableNewTypeOptionalTypeVarUnion)overrideSelf)TracingContext)
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    k/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/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<   dS )Options
ops_filterN)
__name__
__module____qualname__r   r!   r   r   strbool__annotations__ r   r   r    r    (   s5          3CJ3%+./BBBB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                                          |           |pt                      | _        t	          t                                | _        t          d          | _        d S )NF)	copy_data)	super__init__r    r,   _UnpickleStateTokenobject_unpickle_stater   _meta_tensor_describer)selfr+   r,   	__class__s      r   r0   zGraphPickler.__init__5   s\    +'))  3688<< ':E&J&J&J###r   obj.c                 8   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          j        j                  rJ t(                              | |          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)r5   r7   reduces      r   reducer_overridezGraphPickler.reducer_overrideC   sU   * c:&& 	"$224===UX122 	")77cBBBej5uz7RSTT 	" ..tS999X&& 	"&44T3???U\** 	"%33D#>>>U]9:: 
	",::4EEE "#ux}55555.<<T3GGGv  "!r   c                     || j         u rdS d S )Nunpickle_state)r3   )r5   r7   s     r   persistent_idzGraphPickler.persistent_idn   s    $&&&##4r   c                     t          j                    5 } | ||          }|                    |           |                                cddd           S # 1 swxY w Y   dS )z#
        Pickle an object.
        N)ioBytesIOdumpgetvalue)clsr7   r,   streampicklers        r   dumpszGraphPickler.dumpsu   s    
 Z\\ 	%Vc&'**GLL??$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   5AAAdata	fake_modec                     t          |          }t          j        |           5 }t          ||          }|                                cddd           S # 1 swxY w Y   dS )z%
        Unpickle an object.
        N)_UnpickleStaterS   rT   _GraphUnpicklerload)r[   r\   staterX   	unpicklers        r   loadszGraphPickler.loads   s    
 y))Z 	$'66I>>##	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   $AAAr9   )r"   r#   r$   __doc__rS   rT   r   r    r0   r
   r2   tupler   r   rN   r%   rQ   classmethodbytesrZ   staticmethodr   rc   __classcell__r6   s   @r   r*   r*   /   sd        
K KRZ K(72C Kt K K K K K K ("("	xS!5c?2	3(" (" (" X("T  HSM    X % % %'): %e % % % [% $E $n $ $ $ $ \$ $ $ $ $r   r*   c                       e Zd ZdeddfdZdS )r^   r\   r   Nc                 :    || _         t                      | _        d S r9   )r\   r   meta_converter)r5   r\   s     r   r0   z_UnpickleState.__init__   s    "9Fr   )r"   r#   r$   r   r0   r(   r   r   r^   r^      s>        I. IT I I I I I Ir   r^   r1   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_   rX   rP   r   Nc                 X    t                                          |           || _        d S r9   )r/   r0   r3   )r5   rX   rP   r6   s      r   r0   z_GraphUnpickler.__init__   s)       -r   pidc                 D    |dk    r| j         S t          j        d          )NrP   zInvalid persistent ID)r3   pickleUnpicklingError)r5   rp   s     r   persistent_loadz_GraphUnpickler.persistent_load   s)    """''()@AAAr   )r"   r#   r$   rS   rT   r^   r0   r
   r2   rt   ri   rj   s   @r   r_   r_      s        .rz .> .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 )rE   r[   rY   r7   r   c                 4    | j          | |          |j        ffS r9   unpickler3   rW   rY   r7   s      r   r<   z!_ShapeEnvPickleData.reduce_helper   s!     |cc#hh(?@@@r   envNc                 t    |j         rJ |j                                        | _        | j        d= | j        d= d S )Ntracked_fakesfake_tensor_cache)_translation_validation_enabled__dict__copyr[   )r5   rz   s     r   r0   z_ShapeEnvPickleData.__init__   sC     6666L%%''	Io&I)***r   rP   c                     |j         sJ |j         j        sJ | j                                        D ] \  }}t	          |j         j        ||           !|j         j        S r9   )r\   	shape_envr[   itemssetattr)r5   rP   kvs       r   rx   z_ShapeEnvPickleData.unpickle   si    '''''1111IOO%% 	> 	>DAqN,61===='11r   )r"   r#   r$   dictr%   r2   r'   rf   r*   r   re   r   r   r^   r1   r<   r0   rx   r(   r   r   rE   rE      s         
sF{
A"A)1A	$'12E$@S:S4TT
A A A [A+H + + + + +2~ 2( 2 2 2 2 2 2r   rE   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 )rG   rY   r7   r   c                      | |j                   |j        f}t          |t          j                  rt
          j        |fS t          dt          |                     )NzUnhandled SymNode type )	noder3   r:   r=   rF   rG   unpickle_sym_intNotImplementedErrortype)rW   rY   r7   argss       r   r<   z _SymNodePickleData.reduce_helper   s[     CHw67c5<(( 	M%6<<%&KS		&K&KLLLr   r   Nc                 f    |j         | _        |j        | _        |j        | _        |j        | _        d S r9   )_exprexprr   pytype_hinthint)r5   r   s     r   r0   z_SymNodePickleData.__init__   s*    J	kJ			r   c                 `    | j         J t          | j        | j         | j        | j                  S r9   )r   r   r   r   r   )r5   s    r   _to_sym_nodez_SymNodePickleData._to_sym_node   s,    ~)))ty$.$+tyIIIr   rP   c                 N    t          j        |                                           S r9   )r=   rF   r   r5   rP   s     r   r   z#_SymNodePickleData.unpickle_sym_int   s    |D--//000r   )r"   r#   r$   rf   r*   r   re   r   r   r^   r1   r<   r   r0   r   r=   rF   r   r(   r   r   rG   rG      s        MM M 
$'23U4AT;T5UU
	M M M [MW     Jg J J J J1~ 1%, 1 1 1 1 1 1r   rG   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 )r;   metadatarY   r7   r   c                 @    | j          | |j        |          |j        ffS r9   )rx   r4   r3   ry   s      r   r<   z_TensorPickleData.reduce_helper   s0     |C.44#
 
 	
r   	describertNc           	      b   |                     |          }|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	        |                       @d S )Nr\   )r\   	view_funcz
not None: z: )describe_tensorr   r:   r=   _subclasses
meta_utils_FakeTensorViewFuncdataclassesreplacer   r   _UNSERIALIZABLEgetattr)r5   r   r   r   r   s        r   r0   z_TensorPickleData.__init__   s    
 ,,Q// % 	
 1 < P*
 *
 	
 	
 
 $+HEEE  / 	 	A...4=!,,44=Q=='$-";";== 5444	 	r   rP   c                    t          j        | j        j                  }dt          g t
          j        f         dt          t
          j        t          f         dt          ffd}j                            |j        j        |d d           S )Nr   make_meta_tdevicer   c                     t                      5  t          j         |             |          cd d d            S # 1 swxY w Y   d S r9   )r   r   r\   )r   r   rP   s     r   	with_fakez-_TensorPickleData.unpickle.<locals>.with_fake	  s       !",KMM                  s   ;??)r   r   r   r\   r   r=   r   r	   r   r%   r   rm   meta_tensorr   )r5   rP   r   r   s    `  r   rx   z_TensorPickleData.unpickle  s    &M$.
 
 

	!"el"23	=B5<QTCT=U		 	 	 	 	 	 ,88$.
 
 	
r   )r"   r#   r$   r   r   r'   rf   r*   re   r   r   r^   r1   r<   r   r   r0   rx   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dS )rK   rY   r7   r   c                 T    |                      |          x}r| j        ||j        ffS d S r9   )from_objectrx   r3   )rW   rY   r7   r[   s       r   r<   z#_TorchNumpyPickleData.reduce_helper  s7     ??3'''4 	L4)@"ABB4r   modr   Nc                 "    || _         || _        d S r9   )r   r   )r5   r   r   s      r   r0   z_TorchNumpyPickleData.__init__*  s    			r   rP   .c                     t          t          j        | j                  | j                  }t
          j        j        j        	                                |         S r9   )
r   	importlibimport_moduler   r   r=   _dynamo	variablesmiscget_np_to_tnp_map)r5   rP   nps      r   rx   z_TorchNumpyPickleData.unpickle.  s?    Y,TX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    sJ  | ||          S )Nr#   numpyr"   )callabler=   r   r   r   get_tnp_to_np_mapget	TypeErrorr   r   r   )rW   r   	tnp_to_npr   r   r   s         r   r   z!_TorchNumpyPickleData.from_object2  s    }} 	4M+0BBDD		#--,,,B t 	 	 	44	 r<666 	CJ555 	4WY4S994@@@@@@s3~~s   A 
A#"A#)r"   r#   r$   rf   r*   r2   r   re   r   r   r^   r1   r<   r%   r0   rx   r   r(   r   r   rK   rK     s       
"
)/
	dN+V34eDBU<U6VV	


 
 
 [
C s t    D~ D(3;:O D D D D f $    [  r   rK   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 )r@   rY   r7   r   c                 @    | j          | ||j                  |j        ffS r9   )rx   r,   r3   ry   s      r   r<   z$_GraphModulePickleData.reduce_helperI  s/     |CW_%%#
 
 	
r   gmr,   Nc                     t          |t          j        j        j                  r|                                }n|                                }|j                                        | _	        | j	        d= t          |j        |          | _        d S )N_graph)r:   r=   r>   _lazy_graph_module_LazyGraphModule_real_recompile	recompiler   r   gm_dict_GraphPickleDatar   graph)r5   r   r,   _python_codes       r   r0   z_GraphModulePickleData.__init__U  sr    b%(5FGG 	*--//LL<<>>L{''))L"%bi99


r   rP   c                     t           j        j                            t           j        j                  }| j        |_        | j                            ||          |_        |S r9   )	r=   r>   r?   __new__r   r   r   rx   r   )r5   rP   r   s      r   rx   z_GraphModulePickleData.unpickle_  sF    X!))%(*>??lJ''N;;		r   )r"   r#   r$   rf   r*   r=   r>   r?   re   r   r   r^   r1   r<   r    r0   rx   r(   r   r   r@   r@   H  s        	
"	
).)=	
	$')==>d''(	*
	
 	
 	
 [	
:58/ :' :d : : : :~ %(:N      r   r@   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   mappingr,   r   Nc                 z   t          j        t          j        j        fd|j                  | _        t          j        t          j        j        fd|j                  | _        |j        | _        |j        | _        t          
                    |j        |          | _        |j        | _        |j        | _        d S )Nc                     |          S r9   r(   nr   s    r   <lambda>z*_NodePickleData.__init__.<locals>.<lambda>m  s    '!* r   c                     |          S r9   r(   r   s    r   r   z*_NodePickleData.__init__.<locals>.<lambda>o  s    WQZ r   )pytreetree_map_onlyr=   r>   rJ   r   kwargsr   oprD   rr   targetr   meta)r5   r   r   r,   s     ` r   r0   z_NodePickleData.__init__g  s     (8L8L8L8LdiXX	*HM////
 
 I	'#**4;@@ I	 I			r   r   rP   c                 ~   t          j        t          fd| j                  }t          j        t          fd| j                  }| j                            |          }t          |          st          |t                    sJ |
                    | j        |||| j        | j                  }| j        |_        |S )Nc                     |          S r9   r(   r   s    r   r   z*_NodePickleData.unpickle.<locals>.<lambda>  s    wqz r   c                     |          S r9   r(   r   s    r   r   z*_NodePickleData.unpickle.<locals>.<lambda>  s    wqz r   )r   r   r   r   r   r   rx   r   r:   r%   create_noder   r   r   r   )r5   r   r   rP   r   r   r   r   s     `     r   rx   z_NodePickleData.unpickle}  s     #O5I5I5I5I49UU%11114;
 
 %%n55::fc#:#::::  &$	49UUI	r   )r"   r#   r$   r=   r>   rJ   r   r    r0   Graphr^   rx   r(   r   r   r   r   f  s        hm ehm%667 	
 
   ,x~ '67 '	
 
     r   r   c            
       8   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dS )rD   rY   r   r   c                 V    |                      ||j                  }|j        |j        ffS r9   )rr   r,   rx   r3   )rW   rY   r   results       r   r<   z_OpPickleData.reduce_helper  s,     B00'"9!;<<r   r,   c                    t          |t                    rt          |          S t          j        j                            |          }t          |t          j        j                  r| 	                    |t          |          S t          |t          j        j                  r| 	                    |t          |          S |                    d          r)|                    dd          \  }}t          ||          S |                    d          r(|                    dd          \  }}t!          |          S t#          dt%          |           d| d|           )N)z	builtins.zmath.ztorch..   z	operator.zTARGET:  )r:   r%   _OpStrPickleDatar=   r>   rJ   _pretty_print_targetrA   
OpOverload
_pickle_op_OpOverloadPickleDatarC   _OpOverloadPacketPickleDatar   split_OpBuiltinPickleData_OpOperatorPickleDatar   r   )rW   r   r,   r   rootdetail_s          r   rr   z_OpPickleData.pickle  s=   b# 	(#B'''x}11"55b%*/00 	I>>$(=wGGGEJ788 
	I>>$(CWMMM__=>> 	I::c1--LD&'f555__[)) 	I

3**IAv(000 &&Gb&G&GB&G&G&G&GHHHr   r   dataclsr   r   c                 h    |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  sa     ",,J 	Rjj6F6F 	RDDDDDD$$%P$%P%PQQQwt}}r   rP   c                     d S r9   r(   r   s     r   rx   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   )r   globals_getattr_by_name)rW   r   r   restr   s        r   _lookup_global_by_namez$_OpPickleData._lookup_global_by_name  sU    
 $;;

3**IC99S>D''d33399T?"r   r   c                     d|v r-|                     dd          \  }}t          | |          } d|v -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  sP    
 Tkk

3**IC4%%D Tkk tT"""r   N)r"   r#   r$   rf   r*   r2   re   r   r^   r1   r<   r    rr   rh   r%   r	   r   r   r   rx   r  r  r(   r   r   rD   rD     s       ="=(.=	x(&0159L3MM	N= = = [= I I I_ I I I [I& ()40M+NN

  
   \ ~ &    ^ 	## 	#& 	# 	# 	# [	# #v #S #V # # # \# # #r   rD   c                   .    e Zd ZdeddfdZdedefdZdS )r   r   r   Nc                     || _         d S r9   r   r5   r   s     r   r0   z_OpStrPickleData.__init__      			r   rP   c                     | j         S r9   r   r   s     r   rx   z_OpStrPickleData.unpickle  s
    yr   )r"   r#   r$   r%   r0   r^   rx   r(   r   r   r   r     sX        S T    ~ #      r   r   c                   B    e Zd ZdeddfdZdedej        j        fdZ	dS )r   r   r   Nc                     || _         d S r9   r   r  s     r   r0   z_OpOverloadPickleData.__init__  r  r   rP   c                 |    |                      | j                  }t          |t          j        j                  sJ |S r9   )r  r   r:   r=   rA   r   r5   rP   r7   s      r   rx   z_OpOverloadPickleData.unpickle  s7    ))$)44#uz455555
r   )
r"   r#   r$   r%   r0   r^   r=   rA   r   rx   r(   r   r   r   r     s]        S T    ~ %*:O      r   r   c                   B    e Zd ZdeddfdZdedej        j        fdZ	dS )r   r   r   Nc                     || _         d S r9   r   r  s     r   r0   z$_OpOverloadPacketPickleData.__init__  r  r   rP   c                 |    |                      | j                  }t          |t          j        j                  sJ |S r9   )r  r   r:   r=   rA   rC   r  s      r   rx   z$_OpOverloadPacketPickleData.unpickle  s7    ))$)44#uz:;;;;;
r   )
r"   r#   r$   r%   r0   r^   r=   rA   rC   rx   r(   r   r   r   r     s]        S T    ~ %*:U      r   r   c                   2    e Zd ZdededdfdZdedefdZdS )r   r   r   r   Nc                 "    || _         || _        d S r9   )r   r   )r5   r   r   s      r   r0   z_OpBuiltinPickleData.__init__  s    				r   rP   c                    | j         dk    rt                              | j                  S | j         dk    rdd l}|                     || j                  S | j         dk    r |                     t          | j                  S t          )Nbuiltinsmathr   r=   )r   __builtins__r   r   r  r  r=   r   )r5   rP   r  s      r   rx   z_OpBuiltinPickleData.unpickle  s~    9
""##DI...Y&  KKK((ty999Y'!!((	:::%%r   r"   r#   r$   r%   r0   r^   r2   rx   r(   r   r   r   r     s_        S      
&~ 
&& 
& 
& 
& 
& 
& 
&r   r   c                   .    e Zd ZdeddfdZdedefdZdS )r   r   r   Nc                     || _         d S r9   r   r  s     r   r0   z_OpOperatorPickleData.__init__  r  r   rP   c                 @    dd l }|                     || j                  S )Nr   )operatorr  r   )r5   rP   r  s      r   rx   z_OpOperatorPickleData.unpickle  s#    $$Xty999r   r  r(   r   r   r   r     sX        S T    :~ :& : : : : : :r   r   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 )	r   r   r,   r   Nc                     |j         | _        |j        | _        i }|j        D ]}t          |||          ||<   t          |                                          | _        d S r9   )_tracer_cls
tracer_cls_tracer_extrastracer_extrasnodesr   re   values)r5   r   r,   r"  r   s        r   r0   z_GraphPickleData.__init__  sa    +"168K 	@ 	@D)$w??E$KK5<<>>**


r   r   rP   c                     t           j                            || j        | j                  }i }| j        D ]}|                    |||          ||<   |S r9   )r=   r>   r   r  r!  r"  rx   )r5   r   rP   r   r"  nds         r   rx   z_GraphPickleData.unpickle  sX     r4?D4FGG68* 	B 	BBE5.AAE"IIr   )r"   r#   r$   r=   r>   r   r    r0   r?   r^   rx   r(   r   r   r   r     sv        +ehn +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dS )
rI   rY   r7   r   c                 4    | j          | |          |j        ffS r9   rw   ry   s      r   r<   z'_TracingContextPickleData.reduce_helper,  s)     LC'
 	
r   contextNc                     |j         | _         |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        |j        | _        d S r9   )	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)r5   r(  s     r   r0   z"_TracingContextPickleData.__init__;  sn    %4#*#> #0%4".-4-R*.5.T+%47 	000r   rP   c                    t          |j                  }| j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j        |_        | j	        |_	        | j
        |_
        |S r9   )r   r\   r*  r+  r,  r-  r.  r/  r0  r1  r2  )r5   rP   r(  s      r   rx   z"_TracingContextPickleData.unpickleQ  s     !9::!%!4&*&>##0!%!4".040R-151T.!%!44 	3 r   )r"   r#   r$   rf   r*   r=   rH   r   re   r   r   r^   r1   r<   r0   rx   r(   r   r   rI   rI   +  s        
"
).)E
	$')EEFd''(	*

 
 
 [

 
4 
 
 
 
,~ .      r   rI   )Br   r   rS   rr   abcr   typingr   r   r   r   r   r	   typing_extensionsr
   r   r=   torch.utils._pytreeutils_pytreer   torch._guardsr   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   rF   SymFloatr   r%   r&   r   	dataclassr    Picklerr*   r^   r2   r1   	Unpicklerr_   rE   rG   r;   rK   r@   r   rD   r   r   r   r   r   r   rI   r(   r   r   <module>rD     s           				        C C C C C C C C C C C C C C C C , , , , , , , ,  $ $ $ $ $ $ $ $ $ ( ( ( ( ( ( L L L L L L L L L L         
 3 2 2 2 2 2 : : : : : : / / / / / / GKu~>>	3 4     C C C C C C C CX$ X$ X$ X$ X$6> X$ X$ X$vI I I I I I I I g3V<< 
B 
B 
B 
B 
Bf& 
B 
B 
B2 2 2 2 2 2 2 2>1 1 1 1 1 1 1 1:;
 ;
 ;
 ;
 ;
 ;
 ;
 ;
|) ) ) ) ) ) ) )X       <% % % % % % % %PB# B# B# B# B# B# B# B#J    }       M       -   & & & & &= & & &$: : : : :M : : :       @3 3 3 3 3 3 3 3 3 3r   