
    IЦi=)                        % S SK r S SKrS SKrS SKJrJrJrJrJr  S SK	r	S SK
r	S rS rS rS rSS jrS rSS	.S
 jr\	R$                  R&                  \\	R$                  R(                  \\	R*                  \\	R$                  R,                  R*                  \\	R$                  R.                  \\	R0                  \\	R2                  \0r\\\4   \S'   S r " S S\	R:                  R<                  5      r " S S\5      r  " S S\ 5      r!S r" " S S\	R:                  RF                  5      r$  SS\\	R$                  RJ                  \S\4   4   S\\\&\	RN                  4      S\\\&\4      S\	R:                  RP                  4S jjr)g)    N)AnyCallableDictOptionalUnionc                 z    [         R                  " / UR                  QU R                  R                  S   P7SS06$ )Ndevicemeta)torchemptyshapeweightselfinputs     `/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/torch/fx/experimental/meta_tracer.pyembedding_overrider      s1    ;;JJT[[%6%6r%:J6JJ    c                     U$ N r   s     r   nn_layernorm_overrider      s    Lr   c                     U $ r   r   )xs    r   torch_relu_overrider          Hr   c                     U$ r   r   )r   r   s     r   torch_nn_relu_overrider      r   r   c                 "    U(       a   S5       eU $ )Nz<dont support inplace functional.relu for metatensor analysisr   )r   inplaces     r   functional_relu_overrider"      s    VVV;Hr   c                 `    U R                  SS9UR                  SS9-   UR                  SS9-   $ )Nr   r
   )to)	conditionr   ys      r   torch_where_overrider(       s5     <<v<&V)<<qtt6t?RRRr   )outc                    Ub   S5       eU $ )Nz1Dont support in-place abs for MetaTensor analysisr   )r   r)   s     r   torch_abs_overrider+   &   s    ;KKK;Lr   manual_meta_overridesc                 J   ^  [         R                  " T 5      U 4S j5       nUT 4$ )Nc                  
  >^ S mU4S jn[         R                  R                  R                  X5        [         R                  R                  R                  X5        Tb  TR                  R                  STX5      $ T" U 0 UD6$ )Nc                 ^   > [        U [        R                  R                  5      (       a  U mg g r   )
isinstancer   fxProxy)vproxys    r   check_has_proxyAgen_constructor_wrapper.<locals>.wrapper.<locals>.check_has_proxy;   s"    !UXX^^,, -r   call_function)r   r1   nodemap_aggregatetracercreate_proxy)argskwargsr5   r4   targets      @r   wrapper(gen_constructor_wrapper.<locals>.wrapper7   sj    	
 	##D:##F<<<,,_fdSS4*6**r   )	functoolswraps)r>   r?   s   ` r   gen_constructor_wrapperrC   6   s*    __V+ +  F?r   c                   `    \ rS rSrS rSS jrS r\S 5       r\S 5       r	\S 5       r
S	 rS
rg)	MetaProxyK   c                     Xl         g r   _tensor_meta)r   tensor_metas     r   install_tensor_metaMetaProxy.install_tensor_metaL   s    'r   Nc                     [        U S5      (       a1  U R                  b$  U R                  R                  " U(       a  U/6 $ / 6 $ U R                  R	                  SSU(       a  X40 5      $ U 40 5      $ )NrI   call_methodsize)hasattrrI   rO   r:   r;   )r   dims     r   rO   MetaProxy.sizeO   sr    4((T->->-J$$))CC5@@R@@{{''6#D;B
 	
<@7B
 	
r   c                     [        U S5      (       a'  U R                  b  U R                  R                  5       $ U R                  R	                  SSU 40 5      $ )NrI   rN   rQ   )rP   rI   rQ   r:   r;   r   s    r   rQ   MetaProxy.dimV   sL    4((T->->-J$$((**{{''utgrJJr   c                     [        U S5      (       a#  U R                  b  U R                  R                  $ U R                  R	                  S[
        R                  U S40 5      $ )NrI   r7   r   )rP   rI   r   r:   r;   builtinsgetattrrT   s    r   r   MetaProxy.shape[   V    4((T->->-J$$***{{''X--g
 	
r   c                     [        U S5      (       a#  U R                  b  U R                  R                  $ U R                  R	                  S[
        R                  U S40 5      $ )NrI   r7   dtype)rP   rI   r\   r:   r;   rW   rX   rT   s    r   r\   MetaProxy.dtypec   rZ   r   c                     [        U S5      $ )Nr
   )MetaDeviceAttributerT   s    r   r
   MetaProxy.devicek   s     #422r   c                 F    US:X  a  U R                  U5      $ [        X5      $ )NrI   )__getattribute__MetaAttribute)r   ks     r   __getattr__MetaProxy.__getattr__q   s(    ((++ T%%r   rH   r   )__name__
__module____qualname____firstlineno__rK   rO   rQ   propertyr   r\   r
   re   __static_attributes__r   r   r   rE   rE   K   sS    (
K
 
 
 
 
 3 3
&r   rE   c                   8    \ rS rSrS\4S jr\S 5       rS rSr	g)rc   y   attrc                 L    Xl         X l        UR                  U l        S U l        g r   )rootro   r:   _node)r   rq   ro   s      r   __init__MetaAttribute.__init__z   s    		kk
r   c                     U R                   cG  U R                  R                  S[        U R                  U R
                  40 5      R                  U l         U R                   $ )Nr7   )rr   r:   r;   rX   rq   ro   r8   rT   s    r   r8   MetaAttribute.node   sN     ::11499dii*@"d J zzr   c                 n    U R                   R                  SU R                  U R                  4U-   U5      $ )NrN   )r:   r;   ro   rq   )r   r<   r=   s      r   __call__MetaAttribute.__call__   s1    {{''499tyylT&96
 	
r   )rr   ro   rq   r:   N)
rg   rh   ri   rj   strrs   rk   r8   rx   rl   r   r   r   rc   rc   y   s'    3   
r   rc   c                       \ rS rSrSrg)r_      r   N)rg   rh   ri   rj   rl   r   r   r   r_   r_      s    r   r_   c                    [        U [        5      (       a  g[        U [        R                  R                  5      (       aL  [        U [
        5      (       d   S[        U 5       35       e[        U S5      (       d   S5       eU R                  $ U $ )Nr   zExpected MetaProxy but got rI   z*MetaProxy does not have an associated meta)	r0   r_   r   r1   r2   rE   typerP   rI   )r3   s    r   proxys_to_metasr      st    !())!UXX^^$$!Y''P+FtAwi)PP'q.))W+WW)~~Hr   c                     ^  \ rS rSr% Sr\\S'   / SQr   SU 4S jjrU 4S jr	U 4S jr
S\R                  R                  S	\4S
 jrS\R                  R                  S	\4U 4S jjrS rSS\\\R&                  4   4U 4S jjjrSrU =r$ )
MetaTracer   Tallow_insert_stateless_mods)arangezerosones	full_likeeyec           	      "  > [         TU ]  XX4XVU5      nUS:X  a/  X R                  ;   a   UR                  U R                  U   5        U$ X R                  ;   a  SU;   a  SUS'    [
        R                  R                  R                  U[        5      n	[
        R                  R                  R                  U[        5      n
US:X  a  [        R                  X"5      nU" U	0 U
D6nGOUS:X  a  [        U	S   U5      nU" U	SS  0 U
D6nOUS:X  ay  [        U S	5      (       d   eS
U l         U R                  R!                  U5      n[#        U5      nU[        ;   a  [        U   " U/U	Q70 U
D6nOU R$                  " U	0 U
D6nSU l        OzUS:X  ar  S
U l         U R                  nUR'                  S5      nU H  n[        UU5      nM     [)        U[
        R*                  5      (       d   eUR-                  SS9nSU l        OU$ [)        U[
        R                  R.                  5      (       d   S5       eUR                  U5        U$ ! SU l        f = f! SU l        f = f! [0         a*  n[2        R4                  " SU SU SU 35         S nAU$ S nAff = f)Nplaceholderr
   r   r7   rN   r      call_moduleorig_forwardTFget_attr.r$   z!Dont support composite output yetzCould not compute metadata for z target z: )superr;   	meta_argsrK   orig_fnsr   r1   r8   r9   r   r,   getrX   rP   _disable_module_getattrrq   get_submoduler~   r   splitr0   Tensorr%   r2   	Exceptionwarningswarn)r   kindr>   r<   r=   name	type_exprproxy_factory_fnrv
args_metaskwargs_metasmeta_targetmeta_outmodmod_typeattr_itratomsatome	__class__s                      r   r;   MetaTracer.create_proxy   s    W!$9I
 = V~~%=""4>>&#9:I]]" 6!#)x *	Y44T?KJ 88==66vOL&377G&
ClC&%jmV<&
12G,G&t^4444/3,
9))11&9C#CyH#88#8#B$",$0<$ $(#4#4j#QL#Q38D0#/3,9#yyH"LL-E %#*8T#: !&%h===='{{&{9H38D0	 b%((..11V3VV1""8, 	+ 49D0 49D0  	YMM;D6&QSTUSVWXX		YsR   $CI 'AI =I A"I 5	I ?AI 	II 	II 
J$J		Jc                 L   > [        U SS5      (       a  U$ [        TU ]  XU5      $ )Nr   F)rX   r   )r   ro   attr_valparameter_proxy_cacher   s       r   rX   MetaTracer.getattr   s*    42E::O7?43HIIr   c                 0   > X l         [        TU ]	  XX45      $ r   )r   r   r   )r   mforwardr<   r=   r   s        r   r   MetaTracer.call_module   s    #w"1t<<r   r   returnc                    SnUR                   R                  R                  5       nU SU 3n[        U R                  U5      (       a)  U SU 3nUS-  n[        U R                  U5      (       a  M)  U R                  R                  XA5        U$ )zR
Helper method which tries to insert a module that was not declared as submodule.
r   _r   )r   rg   lowerrP   rq   
add_module)r   r   idxmod_namepaths        r   _insert_module_as_submodule&MetaTracer._insert_module_as_submodule   s     ==))//11SE"dii&&Zq&D1HC dii&& 			T'r   c                 2  >  [         TU ]  U5      $ ! [         az    U R                  (       ag  [	        [        UR                  5       5      5      S:X  aA  [	        [        UR                  5       5      5      S:X  a  U R                  U5      nX l	        Us $ e f = f)Nr   )
r   path_of_module	NameErrorr   lenlist
parametersbuffersr   prev_module)r   r   r   r   s      r   r   MetaTracer.path_of_module  s    	7)#.. 		00S^^-./14S[[]+,177<#' 		s    B BBc                     [        X5      $ r   )rE   )r   r8   s     r   r4   MetaTracer.proxy  s    $$r   r   c           
        > [        U[        5      (       d   eX l        U R                   Vs0 s H  nU[	        [        [        U5      5      _M     snU l        [        5       U l	        U R                  R                  5        H3  u  nu  pg[        [        XV5        U R                  R                  U5        M5      [        T
U ]9  X5      nSU0Ul        UU R                  R                  5        H  u  nu  p[        [        XW5        M     $ s  snf ! U R                  R                  5        H  u  nu  p[        [        XW5        M     f = f)Nr   )r0   dictr   _TORCH_METHODS_TO_PATCHrC   rX   r   patched_torch_methodssetr   itemssetattraddr   trace_tracer_extras)r   rq   r   concrete_argsr>   r   r?   origgraphr   r   s             r   r   MetaTracer.trace  s   )T****" 66&
6 +GE6,BCC6&
" %)%?%?%E%E%G!D/7E4)MMd# &H	+GM$6E$/#;E #'#=#=#C#C#Eiqt* $F&
 $(#=#=#C#C#Eiqt* $Fs   $D
:D 8E)r   r   r   r   r   r   )NNNr   )rg   rh   ri   rj   r   bool__annotations__r   r;   rX   r   r   nnModulerz   r   r   r4   r   r   r   rl   __classcell__)r   s   @r   r   r      s    (,,M GRJ=uxx 3 %((// c %+T#u||*;%< + +r   r   rq   .r   r   r   c                 (   [        5       nUR                  XU5      n[        U [        R                  R
                  5      (       a  U R                  R                  OU R                  n[        R                  R                  UR                  XE5      nU$ r   )r   r   r0   r   r   r   r   rg   r1   GraphModulerq   )rq   r   r   r:   r   r   gms          r   symbolic_tracer   ,  sh    
 \FLL-8E#-dEHHOO#D#D$-- 	 
		fkk5	7BIr   )F)NN)*rW   rA   r   typingr   r   r   r   r   r   torch.fxr   r   r   r   r"   r(   r+   r   	Embedding	LayerNormrelu
functionalReLUwhereabsr,   r   rC   r1   r2   rE   rc   r_   r   Tracerr   r   rz   r   r   r   r   r   r   <module>r      s      7 7  K
S &*  
HH*	HH-	JJ#	HH6	HHMM)	KK%	II!3 tHh./ *+& +&\
I 
.	- 	K+ K+` 48.2
#s(!33
4S%,,./0 DcN+ XX	r   