
    Yh4                    *   d dl mZ d dlZd dlZd dlZd dlmZ d dlZd dlm	c m
Z d dlZd dlm	Z	 d dlmZmZmZmZmZ d dlmZ d dlmZmZ erd dlmZ g d	Z ej        ej        d
          Z ed          dd            Z ej        ddd          dd            Z  ed          dd            Z! ed           ej        dddd          ddd                        Z" ed           ej        dddddd          ddd                        Z#dd'Z$dd/Z%dd4Z& ed5 ej'        d6d7d89          g:           ed; ej'        d<d=d89          g:           ed> ej'        d?d@d89          g:           edA ej'        dBd7dC9          g:           edD ej'        dEd=dC9          g:           edF ej'        dGd@dC9          g:          ddK                                                                        Z(ddMZ) edN ej'        dOd7          g:           edP ej'        dQd=          g:           edR ej'        dSd@          g:          dT                                     Z* edU ej'        dVd@dW          g:           edX ej'        dYdZdW          g:           ed[ ej'        d\d]dW          g:           ed^ ej'        d_d@d`          g:           eda ej'        dbdZd`          g:           edc ej'        ddd]d`          g:          de                                                                         Z+ edf          ddg            Z,	 dddpZ- edq          ddr            Z. eds           ej        ddt          ddu                        Z/ edv          ddw            Z0 edx           ej        ddddddddd	  	        ddy                        Z1 edz           ej        ddddd          	 	 ddd}                        Z2 ed~          dd            Z3 ed          dd            Z4 ed          dd            Z5 ed          dd            Z6 ed           ej        dddd          dd                        Z7 ed          dd            Z8 ed          dd            Z9 ed          dd            Z: ed          dd            Z; ed          dd            Z< ed          dd            Z= ed          dd            Z> ed          dd            Z? ed          dd            Z@ ed          dd            ZA ed           ej        dddddd          dd                        ZB ed          dd            ZC ed          dd            ZD ed          dd            ZE ed          dd            ZF ed          dd            ZG ed          dd            ZH ed          dd            ZI ed          dd            ZJ ed          dd            ZK ed           ej        dddd          dd                        ZLdS )    )annotationsN)TYPE_CHECKING)_C)
_constants_type_utilserrorssymbolic_helpersymbolic_opset9)GLOBALS)	jit_utilsregistration)Sequence)"
dequantizedivembedding_bagfake_quantize_per_tensor_affineflipfmodisfiniteisinf
nan_to_numquantize_per_tensorquantized_add_reluquantized_addquantized_catquantized_conv1d_reluquantized_conv2d_reluquantized_conv3d_reluquantized_conv1dquantized_conv2dquantized_conv3dquantized_conv_transpose1dquantized_conv_transpose2dquantized_conv_transpose3dquantized_group_normquantized_hardswishquantized_instance_normquantized_layer_normquantized_leaky_reluquantized_linearquantized_linear_reluquantized_mulquantized_sigmoidslicesorttopk
   )opsetz	aten::divgjit_utils.GraphContextc                r    t          |          dk    rt          j        | ||          S t          | ||g|R  S Nr   )lenopset9true_divide_div_rounding_mode)r3   selfotherargss       m/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/torch/onnx/symbolic_opset10.pyr   r   P   s@    
4yyA~~!!T5111!!T5848888    vsc                ^    |dk    rt          | ||          S t          j        | |||          S )Nfloor)_floor_divider8   r:   )r3   r;   r<   rounding_modes       r>   r:   r:   X   s6    Qe,,,(D%GGGr?   zaten::_floor_dividec                >   t          j        |          st          j        |          r,t          j        | ||          }|                     d|          S |                     d||          }|                     dt          j        dt
          j                            }|                     d|                     d||          |                     d||                    }|                     d	||d
          }|                     d||                     d|                     d||                              }|                     dt          j        dt
          j                            }	|                     d||	          }
|                     d||
|          S )NFloorDivConstantr   dtypevalue_tXorLessModfmod_iAndNotEqual   SubWhere)r	   _is_fpr8   r9   optorchtensorint64)r3   r;   r<   outr   zeronegativemod
fixup_maskonefixups              r>   rD   rD   `   sb   d## 5'=e'D'D 5 D%00ttGS!!! dd5$&&ttJQek(J(J(JtKK44qttFD$77feT9R9RSS dd5$ad00TT%144qttGS$7O7O+P+PQQ
dd:u|AU['I'I'IdJJUC%%ttGZ444r?   z
aten::sortinonec                4    t          j        | ||||          S )N)	decendingr^   )r	   _sort_helper)r3   r;   dimrh   r^   s        r>   r/   r/   u   s      '4	sSSSSr?   z
aten::topkc           	     8    t          j        | ||||||          S )N)largestsortedr^   )r	   _topk_helper)r3   r;   krj   rl   rm   r^   s          r>   r0   r0   {   s-     '	4CS   r?   r;   _C.Valuekernel_shapeSequence[int]stridespads	dilations	ceil_modeboolunbatched_rankintreturnc                   |                      d|                      d|                    }||k    rK|                      d||                      dt          j        dgt          j                                      }|                      d|d	|||||
          \  }	}
||k    rK|                      d|	|                      dt          j        dgt          j                                      }	|	S )NSizeShape	UnsqueezerI   r   rJ   rL   MaxPool   outputsceil_mode_idilations_ikernel_shape_ipads_i	strides_iSqueezerZ   r[   r\   r]   )r3   r;   rq   rs   rt   ru   rv   rx   	self_rankpool_result_s              r>   _aten_max_pool_onnxr      s     VQTT'40011IN""ttDDU\1#U[%I%I%IDJJ
 
 TT#  	 	NK N""ddDDU\1#U[%I%I%IDJJ
 
 r?   expand_sizekernel_sizeSequence[int] | intstridepaddingdilationAtuple[Sequence[int], Sequence[int], Sequence[int], Sequence[int]]c                   t          |t                    r|g| z  }t          |t                    r|g| z  }n|}t          |t                    r
|g| z  dz  }nPt          |          dk    r	|| z  dz  }n4t          |          dk    r|dz  }nt          |          dk    r|dz  }n|}t          |t                    r|g| z  }n|s|}n|}||||fS ):Adjust attributes of avg_pool to match ONNX specification.r   rV      
isinstancery   r7   )r   r   r   r   r   rq   rt   rs   s           r>   _adjust_attributes_of_max_poolr      s    (C   ,:++s## ##}{2"'3 y;&*	W		$q(	W		{	W		{
 &# ([( '422r?   
n_dims_onen_dims_zeron_dims_axestuple[_C.Value, Sequence[int]]c                   |                      d|                      d|                    }||k    rK|                      d||                      dt          j        dgt          j                                      }|                      d|d	|||||
          \  }}|                      d|d	|||          \  }}|                      dt          j        |                    }|                      dt          j        |	                    }|                      dt          j        |
                    }|                      d||||          }|                      d||          }||k    rn|                      d|t          j        dgt          j                            }|                      d|t          j        dgt          j                            }||fS )Nr|   r}   r~   rI   r   rJ   rL   r   r   r   )r   r   r   r   SlicerW   r   r   )r3   r;   rq   rs   rt   ru   rv   rx   r   r   r   r   r   indicesr   flatten_indicesendsstartsaxesdeltas                       r>    _aten_max_pool_with_indices_onnxr      s    VQTT'40011IN""ttDDU\1#U[%I%I%IDJJ
 
 44#   	 	K !   A 44
EL$<$<4==DTT*el;&?&?T@@F44
EL$=$=4>>DDD/64>>Edd5'5))GN""dd{EL!EK,P,P,P  
 
 $$y'5<5;3W3W3W$XX!!r?   zaten::max_pool1d
max_pool1drV   F)return_indices)decoratezaten::max_pool2d
max_pool2dr   zaten::max_pool3d
max_pool3dr   zaten::max_pool1d_with_indicesmax_pool1d_with_indicesTzaten::max_pool2d_with_indicesmax_pool2d_with_indiceszaten::max_pool3d_with_indicesmax_pool3d_with_indicesnamestrr   c           	         t          j        dddddd          t          j        dddddd          dfd                        }|S )NTFr@   isre   r3   r4   inputrp   r   rr   r   r   int | Sequence[int]r   rv   rw   c                    t          ||||          \  }}}	}
r;t          | ||||	|
|dz   dgz  dgz  d t                    D                       S t          | ||||	|
|dz             S )NrV   r   c                    g | ]}d |z   S )r    ).0re   s     r>   
<listcomp>z2_max_pool.<locals>.symbolic_fn.<locals>.<listcomp>T  s    444A!a%444r?   )r   r   ranger   )r3   r   r   r   r   r   rv   rq   rs   rt   ru   r   r   s              r>   symbolic_fnz_max_pool.<locals>.symbolic_fn9  s     2Pfgx2
 2
.gtY  	3a{"{"44{!3!3444   'a	 	 	r?   )r3   r4   r   rp   r   rr   r   rr   r   r   r   rr   rv   rw   r	   quantized_args
parse_args)r   r   r   r   s    `` r>   	_max_poolr     su    V #D%ueLLT4tSAA% % % % % % BA ML%N r?   2tuple[Sequence[int], Sequence[int], Sequence[int]]c                @   t          |t                    r|g| z  }n|}t          |t                    r
|g| z  dz  }n:t          |          dk    r	|| z  dz  }nt          |          dk    r|| z  }n|dz  }t          |t                    r|g| z  }n|s|}n|}|||fS )r   r   rV   r   )r   r   r   r   rq   rt   rs   s          r>   _adjust_attributes_of_avg_poolr   f  s     +s## ##}{2"'3 y;&*	W		$q(	W		${&# ([( '4((r?   zaten::avg_pool1d
avg_pool1dzaten::avg_pool2d
avg_pool2dzaten::avg_pool3d
avg_pool3dc           
         t          j        ddddddd          t          j        ddddddd          	 ddfd                        }|S )NTFr@   r   re   rf   r   rp   r   rr   r   r   r   rv   ry   count_include_padc           	     l    t          |||          \  }}	}
|                     d|||||
|	          }|S )NAveragePool)r   count_include_pad_ir   r   r   )r   rZ   )r3   r   r   r   r   rv   r   divisor_overriderq   rs   rt   resultr   s               r>   r   z_avg_pool.<locals>.symbolic_fn  s[     'Efg'
 '
#gt ! 1'  
 
 r?   N)r   rp   r   rr   r   rr   r   r   rv   ry   r   ry   r   )r   r   r   s    ` r>   	_avg_poolr     s{     #D%ueUSST4sCHH       IH TS4 r?   zaten::upsample_nearest1dupsample_nearest1dnearestzaten::upsample_nearest2dupsample_nearest2d   zaten::upsample_nearest3dupsample_nearest3d   zaten::upsample_linear1dupsample_linear1dlinearzaten::upsample_bilinear2dupsample_bilinear2dzaten::upsample_trilinear3dupsample_trilinear3dc                R     t          j        ddd           fd            }|S )NTFc                   t          j        | |          \  }}t          j                   t          j        |          }|rt          j        d|          S |t          j        | ||          }|                     d||          S )Nzalign_corners == TrueResizemode_s)r	   _get_interpolate_attributes_interpolate_warning_maybe_get_scalar_unimplemented_interpolate_size_to_scalesrZ   )	r3   r   output_sizer=   scalesalign_cornersrj   interpolate_moder   s	         r>   r   z!_interpolate.<locals>.symbolic_fn  s     / K!
 !
 	,-=>>>'9-HH 	X"1$8OQVWWW>$@5+s F ttHeV4DtEEEr?   )r	   r   )r   rj   r   r   s   ``` r>   _interpolater     sS    2 #D%77F F F F F F 87F r?   zaten::__interpolatec                l    t          j        | |||||          \  }}|                     d|||          S )Nr   r   )r	    _interpolate_get_scales_and_moderZ   )	r3   r   sizescale_factormoder   recompute_scale_factor	antialiasr   s	            r>   __interpolater     sC     #C	5$dM LFD 44%4555r?   r   torch._C.Valuer   $list | torch.Tensor | torch._C.Valuer   r   steps+list | torch.Tensor | torch._C.Value | Nonec                x    d d fd	}d } ||          dk    r, ||          t           j        k    r| ||          dk    r|S  ||          } ||d          } ||t           j                  }|                     d||||          S  ||d          }                     d|||||          S )	Nc                    | dS t          | t          j        j                  oU|                                                                 dk    o+t          |                                 t          j                  S )NTzprim::Constant)r   r[   r   ValuenodekindtypeNoneType)values    r>   is_none_valuez_slice.<locals>.is_none_value  s`    =4uehn-- 6

!!##'7765::<<55	
r?   c                Z    |           r||g} t          | t          t          j        f          r)                    dt          j        |                     S t          j        |           }|dk    rt          j        | dg          S |dk    r| S t          j
        d| |           )NrI   rL   r   rV   zRank must be 0 or 1, not )r   listr[   TensorrZ   r\   r	   _get_tensor_rank_unsqueeze_helperr   SymbolicValueError)list_or_valuedefault_valuerankr3   r   s      r>   to_slice_inputz_slice.<locals>.to_slice_input  s    ='' 	,M,E*OMmdEL%9:: 	I44
EL,G,G4HHH/>>199"4QsKKK199  '...
 
 	
r?   c                    t          | t          t          j        f          rt	          |           dk    r| d         S d S t          j        | d          S )NrV   r   re   )r   r   r[   r   r7   r	   _maybe_get_const)r  s    r>   get_const_valuez_slice.<locals>.get_const_value  sQ    mdEL%9:: 	=!!Q&&$Q''4/sCCCr?   r   rV   )r  r   r   )r   	INT64_MAXrZ   )	r3   r   r   r   r   r   r  r
  r   s	   `       @r>   _slicer    s   
 
 

 
 
 
 
 
 
"D D D 	1$$OD!!Z%999]ooe4499>$D^F!444F>$j.BCCCD}ttGUFD$777N5222E44dE:::r?   zaten::slicec                    t          |          dk    r|\  }}}}n2t          |          dk    r
|\  }}}dg}nt          j        d|          t          j        | |||||          S )Nr   r   r   zUnknown aten::slice signaturer   r   r   r   )r7   r   r  r	   _slice_helper)r3   r;   r=   dimsstartendsteps          r>   r.   r.   (  s    
4yyA~~!%eS$$	TasDs'(GNNN(	   r?   z
aten::flipr   c                    t          j        | ||dgt          |          z  t          j         gt          |          z  dgt          |          z            S )Nr  )r	   r  r7   r   r  )r3   r   r  s      r>   r   r   >  s^     (	tc$ii##$s4yy0dSYY   r?   z
aten::fmodc                4    |                      d||d          S )NrP   rV   rQ   )rZ   )r3   r   r<   s      r>   r   r   K  s    44ueA4...r?   zaten::embedding_bagc
                   |r t           j        rt          j        d          S |	|	dk    rt	          d          t          j        d           t          j        |d          }
|
_|r|
dz
  }|}nI|
}||                     dt          j
        t          j        g                    g} | j        dg|R d	di}g }t          |          D ]}t          j        | t          j        | |t          j
        d          t          j
        |                    dg          }t          j        | t          j        | |t          j
        d          t          j
        |dz                       dg          }|                     dt          j
        dg                    }|                     d
||||          }|                     d||          }t          j        |          sG|                     d
||||          }t          j        | |dg          }|                     d||          }|dk    rt          j        | |dgd          }n;|dk    r|                     d|dgd          }n|                     d|dgd          }t          j        | |dg          }|                    |            | j        dg|R d	di}|d d d fS t          j        d          S )Nz7embedding_bag with scale_grad_by_freq for training moder   zembedding_bag with padding_idxzExport of embedding_bag with dynamic input/offsets shape is not supported in opset 10. Please use opset 11 or higher to export model for dynamic input shape.'rV   rI   rL   Concataxis_ir   GatherMul)axes_i
keepdims_i
ReduceMean	ReduceMaxziembedding_bag with unknown shape of offsets for opset 10 is not supported. please use opset 11 or higher.)r   export_trainingr	   _onnx_unsupportedRuntimeErrorwarningswarn_get_tensor_dim_sizerZ   r[   r\   sysmaxsizer   r  r8   select_is_none_reducesum_helperappend)r3   embedding_matrixr   offsetsscale_grad_by_freqr   sparseper_sample_weightsinclude_last_offsetpadding_idxoffsets_dim_0
offset_lenoffsets_extendedlist_re   start_end_axes_indices_row
embeddingsper_sample_weights_rowoutputs                         r>   r   r   P  sD     
g5 
0E
 
 	
 ;!#3#3;<<<M	R   $8!DDM  		K&*J&&JZs{m)D)DEE   $qtHJ/?JJJJJz"" #	% #	%A$6a!15<??ELQROOTT F
 #4'a%,q1u:M:M   D DDU\1#->->D??E$$wuEEKh(8+FFJ"+,>?? M)*/u* *& *9)J-s* *& TT%5KLL
qyy,>z1#!  

 TT,
A3STTUU

TT+z1#RSTTT
(:1j1#NNJLL$$$$h1111q11 tT4''0-
 
 	
r?   z%aten::fake_quantize_per_tensor_affine   c           	        ||fdk    rt          j        dddd|           ||fdvrt          j        d| d| d	|          t          j        |          }|t          j        dddd
|           |                                j        }|dk    r(|                     d|t          j	        j
                  }n'|                     d|t          j	        j                  }|                     d|                     d|||          ||          S )N)r   r?  r   r1      z=Quantize range (0, 127) not supported, requires opset 13 Clip))r      r>  r?  zLFor (quant_min, quant_max), ONNX allows only (0, 255) and (-128, 127). Got (z, )z Non-constant scale not supportedr   Castto_iDequantizeLinearQuantizeLinear)r	    _onnx_opset_unsupported_detailedr   r  r   floatdatarZ   _C_onnxTensorProtoDataTypeUINT8INT8)r3   inputsscale
zero_point	quant_min	quant_maxs         r>   r   r     sN    	9))8-K	
 	
 	
 	9%<<<'.. .!*. . .
 
 	

 -e44E}8-.	
 	
 	
 KKMMEA~~TT&*73N3TTUU

TT&*73N3STTT
44	vuj99	  r?   zaten::isinfc                x    |                      d|                      d|t          j        j                            S )NIsInfrE  rF  )rZ   rM  rN  DOUBLEr3   r   s     r>   r   r     s.    44fe'2M2TUUVVVr?   zaten::isfinitec                    t          | |          }t          j        | |          }t          j        | t          j        | ||                    S r   )r   r8   isnan__not___or_)r3   r   inf_nodenan_nodes       r>   r   r     s@    QH|Au%%H=FLHh??@@@r?   zaten::quantize_per_tensorc                "   t          j        |dd          }|                     d|t          j        |                                                    }|                     d|t          j        j                  }t          j	        | |||          S )Nre   rK   rE  rF  )
r	   
_get_constrZ   r   JitScalarType	onnx_typerM  rN  FLOATquantize_helper)r3   r   rR  rS  rK   s        r>   r   r     s    &uc7;;E
!:5!A!A!K!K!M!M   J DDW%@%FDGGE*1eUJGGGr?   zaten::dequantizec                8    t          j        | |          d         S r6   r	   dequantize_helperrY  s     r>   r   r     s    ,Q66q99r?   zaten::nan_to_numfc                   t          j        |          s|S t          j                            |                                          }|d}t          j        | |          }|                     d||                     dt          j
        |g|                    |          }t          j        |          }||j        }t          j        | t          | |          t          j        | ||                     dt          j        dg                                        }	|                     d|	|                     dt          j
        |g|                    |          }
||j        }t          j        | t          | |
          t          j        | |
|                     dt          j        dg                                        }|                     d||                     dt          j
        |g|                    |
          S )N        rX   rI   rJ   rL   r   )r	   rY   r   rb  
from_valuerK   r8   r[  rZ   r[   r\   finfomaxlogical_andr   gt
LongTensorminlt)r3   r   nanposinfneginfinput_dtypenan_cond
nan_resultrm  posinf_condnan_posinf_resultneginf_conds               r>   r   r     s   
 !%(( +66u==CCEEK
{|Au%%H	Zse;!G!G!GHH	 J K$$E~$	a	!Zj%:JA3:O:O!P!PQQ K
 	Zvhk!J!J!JKK	  ~$	a"##	 !$$z5;KQC;P;P$"Q"Q	
 	
 K 44	Zvhk!J!J!JKK	  r?   zquantized::linearc                (   t          j        | |          \  }}}}t          j        | |          \  }	}
}}t          j        | |||
          }t          j        | |          \  }}}}t          j        | ||	|          }t          j        | |||          S r   )r	   rh  requantize_bias_helperr8   r   re  r3   q_inputq_weightbiasop_scaleop_zero_pointr   input_scaler   weightweight_scaleq_biasr=  s                r>   r*   r*   *  s      /@GLLE;1!0!B1h!O!OFL!Q3At[,WWF#5a@@MD!Q]1eVT22F*1fhNNNr?   zquantized::linear_reluc                R   t          j        | |          \  }}}}t          j        | |          \  }	}
}}t          j        | |||
          }t          j        | |          \  }}}}t          j        | ||	|          }t          j        | |          }t          j        | |||          S r   )r	   rh  r~  r8   r   relure  r  s                r>   r+   r+   8  s      /@GLLE;1!0!B1h!O!OFL!Q3At[,WWF#5a@@MD!Q]1eVT22F[F##F*1fhNNNr?   zquantized::addc                    t          j        | |          \  }}}}t          j        | |          \  }}}}t          j        | ||          }t          j        | |||          S r   )r	   rh  r8   addre  r3   xyr  r  r   r=  s          r>   r   r   G  `     21a88JAq!Q 21a88JAq!QZ1a  F*1fhNNNr?   zquantized::add_reluc                    t          j        | |          \  }}}}t          j        | |          \  }}}}t          j        | ||          }t          j        | |          }t          j        | |||          S r   )r	   rh  r8   r  r  re  r  s          r>   r   r   Q  sq     21a88JAq!Q 21a88JAq!QZ1a  F[F##F*1fhNNNr?   zquantized::mulc                    t          j        | |          \  }}}}t          j        | |          \  }}}}t          j        | ||          }t          j        | |||          S r   )r	   rh  r8   mulre  r  s          r>   r,   r,   \  r  r?   zquantized::hardswishc                    t          j        | |          \  }}}}t          j        | |          }t          j        | |||          S r   )r	   rh  r8   	hardswishre  r3   r  r  r  r   r=  s         r>   r&   r&   f  sE     21a88JAq!Qa##F*1fhNNNr?   zquantized::sigmoidc                    t          j        | |          \  }}}}t          j        | |          }t          j        | |||          S r   )r	   rh  r8   sigmoidre  r  s         r>   r-   r-   o  sD     21a88JAq!Q^Aq!!F*1fhNNNr?   zquantized::leaky_reluc                    t          j        | |          \  }}}}t          j        | |||          }t          j        | |||          S r   )r	   rh  r8   
leaky_relure  )r3   r  negative_slopeinplacer  r  r   r=  s           r>   r)   r)   x  sK     !21a88JAq!Qq!^W==F*1fhNNNr?   zquantized::layer_normc           	         t          j        | |          \  }}}}t          j        | |||||d          }	t          j        | |	||          S NF)r	   rh  r8   
layer_normre  )
r3   r  normalized_shaper  r  epsr  r  r   r=  s
             r>   r(   r(     sR     !21a88JAq!Qq!%5vtS%PPF*1fhNNNr?   zquantized::group_normc           	         t          j        | |          \  }}}}t          j        | |||||d          }	t          j        | |	||          S r  )r	   rh  r8   
group_normre  )
r3   r  
num_groupsr  r  r  r  r  r   r=  s
             r>   r%   r%     sQ     !21a88JAq!Qq!ZsEJJF*1fhNNNr?   zquantized::instance_normc                    t          j        | |          \  }}}}t          j        | |||d d dd|d
  
        }	t          j        | |	||          S )NFrk  )r	   rh  r8   instance_normre  )
r3   r  r  r  r  r  r  r   r   r=  s
             r>   r'   r'     s^     %6q'BBNE1a!	5&$dE3U F *1fhNNNr?   zquantized::conv1d_reluc
           
     Z   t          j        | |          \  }
}}}t          j        | |          \  }}}}t          j        | |||          }t          j        | |          \  }}}}t          j        | |
||||||          }t          j        | |          }t          j        | |||	          S r   )r	   rh  r~  r8   conv1dr  re  r3   r  r  r  r   r   r   groupsr  r  r   r  r   r  r  r  r=  s                    r>   r   r           /@GLLE;1!0!B1h!O!OFL!Q3At[,WWF#5a@@MD!Q]1eVT67HfUUF[F##F*1fhNNNr?   zquantized::conv2d_reluc
           
     Z   t          j        | |          \  }
}}}t          j        | |          \  }}}}t          j        | |||          }t          j        | |          \  }}}}t          j        | |
||||||          }t          j        | |          }t          j        | |||	          S r   )r	   rh  r~  r8   conv2dr  re  r  s                    r>   r   r     r  r?   zquantized::conv3d_reluc
           
     Z   t          j        | |          \  }
}}}t          j        | |          \  }}}}t          j        | |||          }t          j        | |          \  }}}}t          j        | |
||||||          }t          j        | |          }t          j        | |||	          S r   )r	   rh  r~  r8   conv3dr  re  r  s                    r>   r   r     r  r?   zquantized::conv1dc
           
     0   t          j        | |          \  }
}}}t          j        | |          \  }}}}t          j        | |||          }t          j        | |          \  }}}}t          j        | |
||||||          }t          j        | |||	          S r   )r	   rh  r~  r8   r  re  r  s                    r>   r   r           /@GLLE;1!0!B1h!O!OFL!Q3At[,WWF#5a@@MD!Q]1eVT67HfUUF*1fhNNNr?   zquantized::conv2dc
           
     0   t          j        | |          \  }
}}}t          j        | |          \  }}}}t          j        | |||          }t          j        | |          \  }}}}t          j        | |
||||||          }t          j        | |||	          S r   )r	   rh  r~  r8   r  re  r  s                    r>   r    r      r  r?   zquantized::conv3dc
           
     0   t          j        | |          \  }
}}}t          j        | |          \  }}}}t          j        | |||          }t          j        | |          \  }}}}t          j        | |
||||||          }t          j        | |||	          S r   )r	   rh  r~  r8   r  re  r  s                    r>   r!   r!   1  r  r?   zquantized::conv_transpose1dc                2   t          j        | |          \  }}}}t          j        | |          \  }}}}t          j        | |||          }t          j        | |          \  }}}}t          j        | ||||||||	  	        }t          j        | ||	|
          S r   r	   rh  r~  r8   conv_transpose2dre  r3   r  r  r  r   r   output_paddingr   r  r  r  r   r  r   r  r  r  r=  s                     r>   r"   r"   H        /@GLLE;1!0!B1h!O!OFL!Q3At[,WWF#5a@@MD!Q$	5&$ F *1fhNNNr?   zquantized::conv_transpose2dc                2   t          j        | |          \  }}}}t          j        | |          \  }}}}t          j        | |||          }t          j        | |          \  }}}}t          j        | ||||||||	  	        }t          j        | ||	|
          S r   r  r  s                     r>   r#   r#   b  r  r?   zquantized::conv_transpose3dc                2   t          j        | |          \  }}}}t          j        | |          \  }}}}t          j        | |||          }t          j        | |          \  }}}}t          j        | ||||||||	  	        }t          j        | ||	|
          S r   )r	   rh  r~  r8   conv_transpose3dre  r  s                     r>   r$   r$   |  r  r?   zquantized::catq_inputsrj   r  r  c                     t          j        |          } fd|D             }  j        dg|R d|i}t          j         |||          S )Nc                F    g | ]}t          j        |          d          S )r   rg  )r   r   r3   s     r>   r   z!quantized_cat.<locals>.<listcomp>  s8       ;@)!U33A6  r?   r  r  )r	   _unpack_listrZ   re  )r3   r  rj   r  r  unpacked_inputsdequantizedconcatenateds   `       r>   r   r     sw     &28<<O   DS  K 14;;;;;s;;L*1lHmTTTr?   )r3   r4   r   )r3   r4   r;   rp   rq   rr   rs   rr   rt   rr   ru   rr   rv   rw   rx   ry   rz   rp   )r   ry   r   r   r   r   r   r   r   r   rz   r   )r3   r4   r;   rp   rq   rr   rs   rr   rt   rr   ru   rr   rv   rw   rx   ry   r   rr   r   rr   r   rr   rz   r   )r   r   r   ry   r   rw   )
r   ry   r   r   r   r   r   r   rz   r   )r3   r4   r   r   r   r   r   r   r   r   r   r   rC  )r3   r4   r  rp   rj   ry   r  rp   r  rp   rz   rp   )M
__future__r   	functoolsr&  r#  typingr   r[   torch._C._onnxr   _onnxrM  
torch.onnxr   r   r   r	   r
   r8   torch.onnx._globalsr   torch.onnx._internalr   r   collections.abcr   __all__partialonnx_symbolic_onnx_symbolicr   r   r:   rD   r/   r0   r   r   r   _apply_paramsr   r   r   r   r   r  r.   r   r   r   r   r   r   r   r   r   r*   r+   r   r   r,   r&   r-   r)   r(   r%   r'   r   r   r   r   r    r!   r"   r#   r$   r   r   r?   r>   <module>r     sw   # " " " " "     



                                                        ( ' ' ' ' ' 8 8 8 8 8 8 8 8  )((((((# # #L #"<#=RHHH 9 9 9 9 Cc**H H H +*H %&&5 5 5 '&5( Cc622T T T T 32 T Cc3V<<    =< $ $ $ $P(3 (3 (3 (3V5" 5" 5" 5"p +o+L!ERRRS   +o+L!ERRRS   +o+L!ERRRS   #%%%	
 	
 	
	 	 	 #%%%	
 	
 	
	 	 	 #%%%	
 	
 	
	 	 	* * *	 		 		 		 	 	 T*\) ) ) )@ +o+L!<<=   +o+L!<<=   +o+L!<<=   	 	 	 @ +o+,@!YOOP   +o+,@!YOOP   +o+,@!YOOP   +o+,?HMMN   +o+,A1hOOP    +o+,BAxPPQ   	 	 	 	 	 	 0& %&&6 6 6 '&6, :>7; 7; 7; 7; 7;t    * C&&   '&  / / / / %&&Cc3S#sCHHQ
 Q
 Q
 IH '&Q
h 788Cc344 + + + + 54 98+\ W W W W  !!A A A "!A +,,H H H -,H "##: : : $#: "##Cc3/// / / 0/ $#/l #$$
O 
O 
O %$
O ())O O O *)O  !!O O O "!O %&&O O O '&O  !!O O O "!O &''O O O ('O $%%O O O &%O '((O O O )(O '((O O O )(O" '((O O O )(O" *++Cc3S99O O O :9 ,+O$ ())O O O *)O. ())O O O *)O. ())O O O *)O. #$$O O O %$O, #$$O O O %$O, #$$O O O %$O, -..O O O /.O2 -..O O O /.O2 -..O O O /.O2  !!Cc3//U U U 0/ "!U U Ur?   