
    [Th7)                        % S SK r S SKrS SKrS SK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,                  \\R.                  \\R0                  \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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     Y/var/www/auris/envauris/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   r0   nodemap_aggregatetracercreate_proxy)argskwargsr4   r3   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_wrapperrB   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      $ )NrH   call_methodsize)hasattrrH   rN   r9   r:   )r   dims     r   rN   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      $ )NrH   rM   rP   )rO   rH   rP   r9   r:   r   s    r   rP   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      $ )NrH   r6   r   )rO   rH   r   r9   r:   builtinsgetattrrS   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      $ )NrH   r6   dtype)rO   rH   r[   r9   r:   rV   rW   rS   s    r   r[   MetaProxy.dtypec   rY   r   c                     [        U S5      $ )Nr	   )MetaDeviceAttributerS   s    r   r	   MetaProxy.devicek   s     #422r   c                 F    US:X  a  U R                  U5      $ [        X5      $ )NrH   )__getattribute__MetaAttribute)r   ks     r   __getattr__MetaProxy.__getattr__q   s(    ((++ T%%r   rG   r   )__name__
__module____qualname____firstlineno__rJ   rN   rP   propertyr   r[   r	   rd   __static_attributes__r   r   r   rD   rD   K   sS    (
K
 
 
 
 
 3 3
&r   rD   c                   8    \ rS rSrS\4S jr\S 5       rS rSr	g)rb   y   attrc                 L    Xl         X l        UR                  U l        S U l        g r   )rootrn   r9   _node)r   rp   rn   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                   $ )Nr6   )rq   r9   r:   rW   rp   rn   r7   rS   s    r   r7   MetaAttribute.node   sN     ::11499dii*@"d J zzr   c                 n    U R                   R                  SU R                  U R                  4U-   U5      $ )NrM   )r9   r:   rn   rp   )r   r;   r<   s      r   __call__MetaAttribute.__call__   s1    {{''499tyylT&96
 	
r   )rq   rn   rp   r9   N)
rf   rg   rh   ri   strrr   rj   r7   rw   rk   r   r   r   rb   rb   y   s'    3   
r   rb   c                       \ rS rSrSrg)r^      r   N)rf   rg   rh   ri   rk   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 rH   z*MetaProxy does not have an associated meta)	r/   r^   r   r0   r1   rD   typerO   rH   )r2   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
   r6   rM   r      call_moduleorig_forwardTFget_attr.r#   z!Dont support composite output yetzCould not compute metadata for z target z: )superr:   	meta_argsrJ   orig_fnsr   r0   r7   r8   r~   r+   getrW   rO   _disable_module_getattrrp   get_submoduler}   r   splitr/   Tensorr$   r1   	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)rW   r   )r   rn   attr_valparameter_proxy_cacher   s       r   rW   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   rf   lowerrO   rp   
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   )rD   )r   r7   s     r   r3   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   )r/   dictr   _TORCH_METHODS_TO_PATCHrB   rW   r   patched_torch_methodssetr   itemssetattraddr   trace_tracer_extras)r   rp   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   )rf   rg   rh   ri   r   bool__annotations__r   r:   rW   r   r   nnModulery   r   r   r3   r   r   r   rk   __classcell__)r   s   @r   r   r      s    (,,M GRJ=uxx 3 %((// c %+T#u||*;%< + +r   r   rp   .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   r/   r   r   r   r   rf   r0   GraphModulerp   )rp   r   r   r9   r   r   gms          r   symbolic_tracer   ,  sh    
 \FLL-8E#-dEHHOO#D#D$-- 	 
		fkk5	7BIr   )F)NN)*rV   r@   r   typingr   r   r   r   r   torch.fxr   r   r   r   r!   r'   r*   r   	Embedding	LayerNormrelu
functionalReLUwhereabsr+   r   r   rB   r0   r1   rD   rb   r^   r~   Tracerr   r   ry   r   r   r   r   r   r   <module>r      s      1 1  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   