+
    9i
                     N    ^ RI t ^ RI Ht ^RIHtHt ^RIHt   ! R R]4      tR# )    N)onnx_pb)attribute_to_kwarg	ms_domain)QuantOperatorBasec                   D   a a ] tR t^t oV 3R ltR tV 3R ltRtVtV ;t	# )AttentionQuantc                &   < \         SV `  W4       R # N)super__init__)selfonnx_quantizer	onnx_node	__class__s   &&&j/var/www/html/photoedit/myenv/lib/python3.14/site-packages/onnxruntime/quantization/operators/attention.pyr   AttentionQuant.__init__   s    3    c                L    V P                   P                  V P                  4      # r
   )	quantizershould_quantize_nodenode)r   s   &r   should_quantizeAttentionQuant.should_quantize   s    ~~22499==r   c                  < V P                   pVP                  R8X  g   Q hVP                   F$  pVP                  R8X  g   K  \        SV `  4       u # 	  V P                  P                  V^ .4      w  ppppV P                  P                  V^.RRR7      w  ppp	p
VP                  V4       VP                  V4       VP                  V	4       VP                  V
4       Vf   \        SV `  4       # VP                  '       g   RMVP                  R,           p. pVP                  V4       VP                  VP                  ^,          .4       VP                  V4       TP                  \        VP                  4      ^8  d   VP                  ^,          MR.4       VP                  V4       TP                  \        VP                  4      ^8  d   VP                  ^,          MR.4       / pVP                   F  pVP                  \        V4      4       K  	  \        VR&   \        P                   P"                  ! R	WP$                  V3/ VB pVP'                  V4       V P                  ;P(                  V,          un        R# )
z
parameter node: Attention node.
parameter new_nodes_list: List of new nodes created before processing this node.
return: a list of nodes in topological order that represents quantized Attention node.
	Attentionqkv_hidden_sizesT)reduce_rangeop_level_per_channelN _quantdomain
QAttention)r   op_type	attributenamer   quantizer   quantize_activationquantize_weightextendinputlenupdater   r   onnxhelper	make_nodeoutputappend	new_nodes)r   r   attrquantized_input_nameszero_point_namesscale_namesnodesquantized_input_names_weightzero_point_names_weightscale_names_weightnodes_weightqattention_nameinputskwargsr$   qattention_noder   s   &               r   r&   AttentionQuant.quantize   s    yy||{***
 NNDyy..w')) # NN..taS9	
! NN**4!4^b*c	
(#$$%AB 78-.\" (7#%%$(III"499x3G+,tzz!}o&k"DJJ!(;tzz!}DE&'DJJ!(;tzz!}DEIMM,Y78 ($x++//fkkSbmflm_%  E) r    )
__name__
__module____qualname____firstlineno__r   r   r&   __static_attributes____classdictcell____classcell__)r   __classdict__s   @@r   r   r      s     4>6* 6*r   r   )	r-   r   
onnx_protoquant_utilsr   r   base_operatorr   r   rA   r   r   <module>rM      s#     & 7 ,
=*& =*r   