+
    "Ý³j‡¢  ã                   ó8  € ^ RI t ^ RIHt ^ RIHt ^ RIHtHtHtH	t	 ^ RI
t
^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHtHt ^ R
IHt ^ RIHtHtHtHt ^ RIHt ^ RIH t  ^ RI!H"t"  ^ RI#H$t$ ]
PL                  PO                  RR4      t(]"! ](4      t)R.t*R t+R t,R t-R t.R t/])R R l4       t0R t1R R lt2R R lt3R t4R  t5R! t6R" t7R# t8R$ t9R% t:R& t;R' t<R( t=R) t>R* t?R+ t@R, tAR- tBR. tCR/ R0 ltD] ! R1 R24      4       tER3 R4 ltFR#    ] PJ                  t$ L­; i)5é    N)Ú	dataclass)Úpartial)ÚAnyÚCallableÚListÚOptional)Ú	out_dtype)Úquantized_decomposed_lib©ÚGraphModule)ÚInternalMatch)ÚReplacedPatternsÚreplace_pattern_with_filters)ÚWrapperModule)Ú"_get_aten_graph_module_for_patternÚ,_replace_literals_with_existing_placeholdersÚ'_replace_literals_with_new_placeholdersÚ"remove_tensor_overload_for_qdq_ops)ÚMappingType)Ú_get_per_token_block_size)Ú_register_custom_op)Ú$_disable_aten_to_metadata_assertionsÚtorchaoÚFRAGMENTÚ reference_representation_rewritec                 óÐ  € \         P                  P                  P                  WW#V\         P                  4      p\         P                  P                  P                  VVVVV	\         P                  4      p\         P                  P
                  P                  P                  VVV
4      p\         P                  P                  P                  VW¼WÞ\         P                  4      pV# ©N)	ÚtorchÚopsÚquantized_decomposedÚdequantize_per_tensorÚint8ÚatenÚlinearÚdefaultÚquantize_per_tensor)Úx_i8Úx_scaleÚx_zero_pointÚx_quant_minÚx_quant_maxÚ	weight_i8Úweight_scaleÚweight_zero_pointÚweight_quant_minÚweight_quant_maxÚ	bias_fp32Ú	out_scaleÚout_zero_pointÚout_quant_minÚout_quant_maxÚx_fp32Úweight_fp32Úout_fp32Úout_i8s   &&&&&&&&&&&&&&&    Ú{/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchao/quantization/pt2e/reference_representation_rewrite.pyÚ_qdq_quantized_linearr;   ,   s¯   € ô" �Y‰Y×+Ñ+×AÑAØ�|°+¼u¿z¹zó€Fô —)‘)×0Ñ0×FÑFØØØØØÜ�
‰
ó€Kô �y‰y�~‰~×$Ñ$×,Ñ,¨V°[À)ÓL€HÜ�Y‰Y×+Ñ+×?Ñ?Ø�)¨]Ì5Ï:É:ó€Fð €Mó    c                 óÎ  € \         P                  P                  P                  WV4      p \         P                  P                  P                  WXV	4      pV P	                  \         P
                  4      pVP	                  \         P
                  4      p\        \         P                  P                  P                  P                  \         P                  Wò,
          VV,
          R 4      pW,          p\        \         P                  P                  P                  P                  \         P                  V
V4      pVV,           p\        \         P                  P                  P                  P                  \         P                  VW,          V,          4      V,           p\         P                  P                  P                  VWÞ4      P	                  \         P                  4      pV# r   )r   r   r#   ÚclampÚtoÚint16r	   r$   r%   Úint32ÚdivÚTensorÚmulr"   )r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   Úx_i16Ú
weight_i16Úacc_i32Ú
bias_scaleÚbias_i32r9   s   &&&&&&&&&&&&&&&      r:   Ú_reference_quantized_linearrJ   O   sJ  € ô( �9‰9�>‰>×Ñ °;Ó?€DÜ—	‘	—‘×$Ñ$ YÐBRÓS€Ià�G‰G”E—K‘KÓ €EØ—‘œeŸk™kÓ*€Jô Ü�	‰	�‰×Ñ×%Ñ%Ü�‰ØÕØÐ&Õ&Øó€Gð Õ'€JÜœŸ™Ÿ™×+Ñ+×2Ñ2´E·K±KÀÈJÓW€HØ˜Õ €Gô 	Ü�I‰I�N‰N×Ñ×%Ñ%Ü�K‰KØØÕ" YÕ.ó		
ð õ	ð ô �Y‰Y�^‰^×!Ñ! '¨=ÓH×KÑKÌEÏJÉJÓW€FØ€Mr<   c
                 óD  € \         P                  P                  P                  WW#\         P                  4      w  r«\         P                  P                  P                  W
W±V\         P                  4      p\         P                  P                  P                  WÊW±V\         P                  4      p \         P                  P                  P                  VVVVV\         P                  4      p\         P                  P                  P                  P                  WV	4      pV# r   )
r   r   r    Úchoose_qparamsr"   r&   r!   r#   r$   r%   )r6   r*   r+   Úx_epsr,   r-   r.   r/   r0   r1   r(   r)   r'   r7   r8   s   &&&&&&&&&&     r:   Ú_qdq_dynamic_quantized_linearrN   „   s×   € ô "ŸI™I×:Ñ:×IÑIØ˜[´·±óÑ€Gô �9‰9×)Ñ)×=Ñ=Ø˜°KÄÇÁó€Dô �Y‰Y×+Ñ+×AÑAØ�|°+¼u¿z¹zó€Fô —)‘)×0Ñ0×FÑFØØØØØÜ�
‰
ó€Kô �y‰y�~‰~×$Ñ$×,Ñ,¨VÀ)ÓL€HØ€Or<   c
                 óÀ  € \         P                  P                  P                  WW#\         P                  4      w  r«W
,          p \         P
                  ! V 4      p V P                  \         P                  R 7      pWË,           p\         P                  ! WÁV4      pVP                  \         P                  R 7      p\         P                  P                  P                  WGV4      pVP                  \         P                  4      pVP                  \         P                  4      p\        \         P                  P                  P                  P                  \         P                  Wë,
          Wö,
          R4      pW¥,          p\        \         P                  P                  P                  P                  \         P                  V	V4      pVV,           pVW¥,          ,          pV# )©ÚdtypeN)r   r   r    rL   r"   Úroundr?   rA   r>   r#   r@   r	   r$   r%   rB   rC   )r6   r*   r+   rM   r,   r-   r.   r/   r0   r1   r(   r)   Úx_i32r'   rE   rF   rG   rH   rI   r8   s   &&&&&&&&&&          r:   Ú#_reference_dynamic_quantized_linearrT   ¥   sL  € ô "ŸI™I×:Ñ:×IÑIØ˜[´·±óÑ€Gð
 Õ€Fô �[Š[˜Ó €FØ�I‰IœEŸK™KˆIÓ(€EØÕ €Eä�KŠK˜¨KÓ8€EØ�8‰8œ%Ÿ*™*ˆ8Ó%€Dä—	‘	—‘×$Ñ$ YÐBRÓS€Ià�G‰G”E—K‘KÓ €EØ—‘œeŸk™kÓ*€Jô Ü�	‰	�‰×Ñ×%Ñ%Ü�‰ØÕØÕ&Øó€Gð Õ'€JÜœŸ™Ÿ™×+Ñ+×2Ñ2´E·K±KÀÈJÓW€HØ˜Õ €GØ˜'Õ0Õ1€HØ€Or<   c                 ó®  € \         P                  p\        V 4      pRp	^p
\        P                  P
                  P                  V VP                  V\        P                  V	V
V\        P                  \        P                  4	      w  r¼\        P                  P
                  P                  V VVV\        P                  V	V
4      p\        P                  P
                  P                  VVVV\        P                  V	V
\        P                  4      p V^ 8”  g   Q R4       hVP                  ^,          V,          ^ 8X  g   Q R4       hVP                  4       ^8X  g   Q R4       h^V3p\        P                  P
                  P                  VVVV\        P                  R^4      p\        P                  P                  P                   P#                  WV4      pV# )é€   zGroup size must be positivez&Weight must be divisible by group_sizezWeight must be 2D tensoré€ÿÿÿéøÿÿÿ)r   Ú
ASYMMETRICr   r   r   r   Úchoose_qparams_affineÚnamer"   Úfloat32rA   Úquantize_affineÚdequantize_affineÚshapeÚdimr#   r$   r%   )r6   rM   Ú	weight_i4r-   r.   r1   Ú
group_sizeÚx_mapping_typeÚper_token_block_sizer*   r+   r(   r)   r'   Ú
block_sizer7   r8   s   &&&&&&&          r:   Ú,_qdq_dynamic_quantized_linear_4bit_groupwiserf   Ô   s˜  € ô !×+Ñ+€NÜ4°VÓ<ÐØ€KØ€KÜ!ŸI™I×-Ñ-×CÑCØØ×ÑØÜ�
‰
ØØØÜ�‰Ü�‰ó
Ñ€Gô �9‰9×Ñ×,Ñ,ØØØØÜ�
‰
ØØó€Dô �Y‰Y×Ñ×0Ñ0ØØØØÜ�
‰
ØØÜ�‰ó	€Fð ˜Œ>Ð8Ð8Ó8ˆ>Ø�?‰?˜1Õ 
Õ*¨aÔ/ð Ø0óÐ/ð �=‰=‹?˜aÔÐ;Ð!;Ó;ÐØ�Z�€JÜ—)‘)×#Ñ#×5Ñ5ØØØØÜ�
‰
Ø
Ø	ó€Kô �y‰y�~‰~×$Ñ$×,Ñ,¨VÀ)ÓL€HØ€Or<   c                ó  € V ^8„  d   QhR\         P                  R\        R\         P                  R\         P                  R\         P                  R\        \         P                  ,          R\        \
        ,          R\         P                  /# )	é   r6   rM   ra   r-   r.   r1   rb   Úreturn)r   rC   Úfloatr   r   Úint)Úformats   "r:   Ú__annotate__rm     sƒ   € ÷ ~$ñ ~$Ü�L‰Lð~$äð~$ô �|‰|ð~$ô —,‘,ð	~$ô
 —|‘|ð~$ô œŸ™Õ%ð~$ô ”S•	ð~$ô ‡\�\ñ~$r<   c                ó2  € V^,          p\         P                  p\        V 4      pRp	^p
\        P                  P
                  P                  V VP                  V\        P                  V	V
V\        P                  \        P                  4	      w  r¼\        P                  P
                  P                  V VVV\        P                  V	V
4      pVP                  w  rïWö,          pVP                  \        P                  4      P                  \        P                  4      pVP                  pVP                  R,          pVP                  RV4      pVP                  ^ ,          pVP                  VVV4      pVP                  VVV4      pVP                  \        P                  4      pVP                  \        P                  4      p\        P                   ! VV\        P                  V P"                  R7      p\%        V4      pVVR&   VP&                  ^8X  d   VP)                  ^ 4      p\+        V4       EF%  pVRVR3,          pVRVR3,          pVP-                  RR7      pVRV3,          p\/        \        P                  P0                  P2                  P4                  \        P                  VVR4      pVVP                  \        P                  4      VP                  ^R4      ,          ,           pVP                  \        P                  4      P                  ^R4      VP                  R^4      ,          VP                  ^R4      ,          p VV ,
          pEK(  	  VP                  R^4      p!VV!,          p"Ve
   V"V,           p"V"P                  V4      # )av  
Reference implementation for dynamically quantized linear 4-bit groupwise operation.
This implementation emulates actual numerics of on-device integer compute.

Args:
    x_fp32: Input activation tensor in fp32
    x_eps: Epsilon for quantization parameter computation
    weight_i4: 4-bit quantized weight (stored as int8 with values in [-8, 7])
    weight_scale: Groupwise scales for weight dequantization
    weight_zero_point: Groupwise zero points for weight (unused for symmetric)
    bias_fp32: Optional bias tensor in fp32
    group_size: Size of each group for groupwise quantization

Returns:
    Output tensor in fp32
)rQ   Údevice:NNN)r`   NrW   éÿÿÿÿ)r   rY   r   r   r   r   rZ   r[   r"   r\   rA   r]   r_   r?   Úbfloat16ÚviewÚzerosro   ÚlistÚndimÚ	unsqueezeÚrangeÚsumr	   r#   r$   r%   )#r6   rM   ra   r-   r.   r1   rb   rc   rd   r*   r+   r(   r)   r'   Úout_featuresÚin_featuresÚ
num_groupsÚx_orig_shapeÚk_dimÚ
batch_sizeÚx_i8_groupedÚweight_i4_groupedÚx_i32_groupedÚweight_i32_groupedÚacc_fp32Ú	out_shapeÚ	group_idxÚx_groupÚweight_groupÚweight_group_col_sumÚweight_scale_groupÚ	group_accÚweights_col_sum_adjustedÚx_scale_multiplierr8   s#   &&&&&&&                            r:   Ú_reference_dqlinear_int4r�     s  € ð6 ˜A•€JÜ ×+Ñ+€NÜ4°VÓ<ÐØ€KØ€KÜ!ŸI™I×-Ñ-×CÑCØØ×ÑØÜ�
‰
ØØØÜ�‰Ü�‰ó
Ñ€Gô �9‰9×Ñ×,Ñ,ØØØØÜ�
‰
ØØó€Dð !*§¡Ñ€LØÕ*€Jð  —?‘?¤5§>¡>Ó2×5Ñ5´e·m±mÓD€Lð —:‘:€LØ�J‰J�r�N€EØ�9‰9�R˜Ó€DØ—‘˜A•€JØ—9‘9˜Z¨°ZÓ@€Lð "Ÿ™ |°ZÀÓLÐð !—O‘O¤E§K¡KÓ0€MØ*×-Ñ-¬e¯k©kÓ:Ðô �{Š{Ø�L¬¯©¸f¿m¹mô€Hô �\Ó"€IØ €Iˆb�Mà×Ñ˜AÔØ#×-Ñ-¨aÓ0ˆä˜:×&ˆ	à  9¨a Õ0ˆØ)¨!¨Y¸¨/Õ:ˆØ+×/Ñ/°BÐ/Ó7Ðð *¨!¨Y¨,Õ7Ðô Ü�I‰I�N‰N×!Ñ!×)Ñ)Ü�K‰KØØØó
ˆ	ð ˜iŸl™l¬5¯=©=Ó9Ð<N×<SÑ<SØˆró=
õ 
õ 
ˆð !×#Ñ#¤E§M¡MÓ2×7Ñ7¸¸2Ó>Ø×Ñ  AÓ&õ'à ×%Ñ% a¨Ó,õ-ð 	!ð
 Ð6Õ6‹ñC 'ðD !Ÿ™ b¨!Ó,ÐØÐ,Õ,€HØÒØ˜iÕ'ˆà�=‰=˜Ó#Ð#r<   c           
     ód   € \         P                  P                  P                  V VVVVV^V34      # )z“
Reference implementation for dynamically quantized linear 4-bit groupwise operation.
This function now delegates to the custom op implementation.
)r   r   r   Úreference_dqlinear_int4)r6   rM   ra   r-   r.   r1   rb   s   &&&&&&&r:   Ú2_reference_dynamic_quantized_linear_4bit_groupwiser�   —  s:   € ô �9‰9×Ñ×4Ñ4ØØØØØØØ	
ˆJˆóð r<   c                ó$   € V ^8„  d   QhR\         /# )rh   ri   )Úbool)rl   s   "r:   rm   rm   ¯  s   € ÷ 0ñ 0ô 
ñ	0r<   c                 ó@  € R pR pV P                   P                  4        EFp  p\        V\        P                  P
                  4      '       d‹   VP                  R8X  dz   VP                  \        P                  P                  P                  P                  8X  d=   VP                  p\        V4      ^8¼  d!   V^,          R8H  ;'       d    V^,          ^8H  p\        V\        P                  P
                  4      '       g   Kä  VP                  R8X  g   K÷  VP                  \        P                  P                  P                  P                  8X  g   EK7  VP                  p\        V4      ^8¼  g   EKV  V^,          \        P                  8H  pEKs  	  T;'       d    T# )FÚcall_functionrX   )Ú	nodes_mapÚvaluesÚ
isinstancer   ÚfxÚNodeÚopÚtargetr   r   r^   r%   ÚargsÚlenr]   r"   )ÚmatchÚoriginal_graphÚpattern_graphÚweight_is_int4Úact_quant_is_int8Únoderœ   s   &&&    r:   Ú6_filter_fn_for_dynamic_quantized_linear_4bit_groupwiser¤   ¯  s  € ð
 €NØÐØ—‘×&Ñ&×(ˆä�tœUŸX™XŸ]™]×+Ò+Ø—‘˜?Ô*Ø—‘œuŸy™y×0Ñ0×BÑB×JÑJÔJà—9‘9ˆDÜ�4‹y˜AŒ~Ø!% a¥¨B¡×!?Ð!?°4¸µ7¸a±<�ä�tœUŸX™XŸ]™]×+Ô+Ø—‘˜?Ö*Ø—‘œuŸy™y×0Ñ0×@Ñ@×HÑH×Hà—9‘9ˆDÜ�4‹y˜A�~Ø$(¨¥G¬u¯z©zÑ$9Ó!ñ! )ð" ×/Ð/Ð/Ð/r<   c                ó$   € V ^8„  d   QhR\         /# )rh   Úreplacement_pattern)r   )rl   s   "r:   rm   rm   Ê  s   € ÷ 
ñ 
Ü)ñ
r<   c                óÚ  € ^ RI HpHp RpRpV P                  P	                  4        FF  w  rVVP
                  \        P                  P                  P                  P                  8X  g   KD  Tp M	  \        V P                  4      ^ 8”  d   V P                  R,          pVeJ   VeD   VP                  P                  4       Vn        V! VRVP                  4      .VP                  R&   R# R# R# )z“
Port metadata for dynamically quantized linear 4-bit groupwise operation.
It custom_op node's metadata with corresponding linear node's metadata.
)Ú
NodeSourceÚNodeSourceActionNÚ#ReplaceInt4DynamicQuantWithCustomOpÚ	from_noderp   )Útorch.fx.tracebackr¨   r©   r•   Úitemsr›   r   r   r#   r$   r%   r�   ÚreplacementsÚmetaÚcopyÚREPLACE)r¦   r¨   r©   Úlinear_nodeÚint4_custom_op_nodeÚ_Úg_ns   &      r:   Ú:_port_metadata_for_dynamic_quantized_linear_4bit_groupwiser¶   Ê  sÔ   € ÷ @à€KØÐØ%×/Ñ/×5Ñ5Ö7‰ˆØ�:‰:œŸ™Ÿ™×.Ñ.×6Ñ6Ö6ØˆKÙñ 8ô Ð×+Ñ+Ó,¨qÔ0Ø1×>Ñ>¸rÕBÐØÒÐ#6Ò#BØ#.×#3Ñ#3×#8Ñ#8Ó#:ÐÔ áØØ5Ø ×(Ñ(óð1
Ð× Ñ  Ó-ñ $CÑr<   c                 ó  € ^^.p^ ^ .p^^.pRp^ ^ .p^p\         P                  P                  P                  WW#V\         P                  4      p\         P                  P                  P                  VVVVV	\         P                  4      p\         P                  P
                  P                  P                  VVV
VVVVVV4	      p\         P                  P                  P                  VW¼WÞ\         P                  4      pV# ©é   F)	r   r   r    r!   r"   r#   Úconvolutionr%   r&   )r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   ÚstrideÚpaddingÚdilationÚ
transposedÚoutput_paddingÚgroupsr6   r7   r8   r9   s   &&&&&&&&&&&&&&&          r:   Ú_qdq_quantized_conv2drÁ   æ  sö   € ð" �ˆV€FØ�!ˆf€GØ�1ˆv€HØ€JØ˜�V€NØ€FÜ�Y‰Y×+Ñ+×AÑAØ�|°+¼u¿z¹zó€Fô —)‘)×0Ñ0×FÑFØØØØØÜ�
‰
ó€Kô �y‰y�~‰~×)Ñ)×1Ñ1ØØØØØØØØØó
€Hô �Y‰Y×+Ñ+×?Ñ?Ø�)¨]Ì5Ï:É:ó€Fð €Mr<   c                 óH  € ^^.p^ ^ .p^^.pRp^ ^ .p^p\         P                  P                  P                  WV4      p \         P                  P                  P                  WXV	4      pV P	                  \         P
                  4      pVP	                  \         P
                  4      p\        \         P                  P                  P                  P                  \         P                  VV,
          VV,
          RVVVVVV4      pW,          p\        \         P                  P                  P                  P                  \         P                  V
V4      pVP                  R4      pVP                  R4      pVV,           p\        \         P                  P                  P                  P                  \         P                  VW,          V,          4      V,           p\         P                  P                  P                  VWÞ4      P	                  \         P                  4      pV# )r¹   FNrp   )r   r   r#   r>   r?   r@   r	   rº   r%   rA   rB   rC   rv   rD   r"   )r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r»   r¼   r½   r¾   r¿   rÀ   rE   rF   rG   rH   rI   r9   s   &&&&&&&&&&&&&&&            r:   Ú_reference_quantized_conv2drÃ     s²  € ð" �ˆV€FØ�!ˆf€GØ�1ˆv€HØ€JØ˜�V€NØ€Fô �9‰9�>‰>×Ñ °;Ó?€DÜ—	‘	—‘×$Ñ$ YÐBRÓS€Ià�G‰G”E—K‘KÓ €EØ—‘œeŸk™kÓ*€Jô Ü�	‰	�‰×"Ñ"×*Ñ*Ü�‰Ø�ÕØÐ&Õ&ØØØØØØØó€Gð Õ'€Jô œŸ™Ÿ™×+Ñ+×2Ñ2´E·K±KÀÈJÓW€Hð ×!Ñ! "Ó%€HØ×!Ñ! "Ó%€HØ˜Õ €Gô 	Ü�I‰I�N‰N×Ñ×%Ñ%Ü�K‰KØØÕ" YÕ.ó		
ð õ	ð ô �Y‰Y�^‰^×!Ñ! '¨=ÓH×KÑKÌEÏJÉJÓW€FØ€Mr<   c
                 óÄ  € \         P                  P                  P                  WW(V	\         P                  4      p
\         P                  P                  P                  W4WXV	\         P                  4      pW«,           p\         P                  P
                  P                  V4      p\         P                  P                  P                  WÆWxV	\         P                  4      pV# r   )r   r   r    r!   r"   r#   Úrelur&   ©r'   r(   r)   Úy_i8Úy_scaleÚy_zero_pointr2   r3   Ú	quant_minÚ	quant_maxr6   Úy_fp32r8   r9   s   &&&&&&&&&&    r:   Ú_qdq_quantized_add_relurÍ   k  s£   € ô �Y‰Y×+Ñ+×AÑAØ�|°	¼5¿:¹:ó€Fô �Y‰Y×+Ñ+×AÑAØ�|°	¼5¿:¹:ó€Fð �€HÜ�y‰y�~‰~×"Ñ" 8Ó,€HÜ�Y‰Y×+Ñ+×?Ñ?Ø˜^¸	Ä5Ç:Á:ó€Fð €Mr<   c
                ó~  € V P                  \        P                  4      p
VP                  \        P                  4      p\        \        P                  P
                  P                  P                  \        P                  W¢,
          W,          4      p
\        \        P                  P
                  P                  P                  \        P                  Wµ,
          WF,          4      pW«,           V,           p\        P                  P
                  P                  WÇV	4      P                  \        P                  4      pV# )z�
See comments for `_reference_quantized_add` for more information on
how to derive the formula for out_i8 based on x_i8 and y_i8
)
r?   r   rA   r	   r   r#   rD   rC   r>   r"   ©r'   r(   r)   rÇ   rÈ   rÉ   r2   r3   rÊ   rË   rS   Úy_i32Úout_i32r9   s   &&&&&&&&&&    r:   Ú_reference_quantized_add_relurÒ   …  sÎ   € ð  �G‰G”E—K‘KÓ €EØ�G‰G”E—K‘KÓ €EäÜ�	‰	�‰×Ñ×!Ñ!Ü�‰Ø	Õ	Ø	Õ	ó	€Eô Ü�	‰	�‰×Ñ×!Ñ!Ü�‰Ø	Õ	Ø	Õ	ó	€Eð �m˜nÕ,€Gä�Y‰Y�^‰^×!Ñ! '¸9ÓE×HÑHÌÏÉÓT€FØ€Mr<   c
                 ór  € \         P                  P                  P                  WW(V	\         P                  4      p
\         P                  P                  P                  W4WXV	\         P                  4      pW«,           p\         P                  P                  P                  WÆWxV	\         P                  4      pV# r   )r   r   r    r!   r"   r&   rÆ   s   &&&&&&&&&&    r:   Ú_qdq_quantized_addrÔ   ª  s‹   € ô �Y‰Y×+Ñ+×AÑAØ�|°	¼5¿:¹:ó€Fô �Y‰Y×+Ñ+×AÑAØ�|°	¼5¿:¹:ó€Fð �€HÜ�Y‰Y×+Ñ+×?Ñ?Ø˜^¸	Ä5Ç:Á:ó€Fð €Mr<   c
                óN  € V P                  \        P                  4      p
VP                  \        P                  4      p\        P                  ! W,          W¢,
          ,          4      P                  \        P                  4      p
\        P                  ! WF,          Wµ,
          ,          4      P                  \        P                  4      pW«,           V,           pRp^p	\        P                  P
                  P                  WÈV	4      P                  \        P                  4      pV# )aÍ  
    # How to Derive the formula for out_i8 based on x_i8 and y_i8
    # (since quantized add takes x_i8, y_i8 and their quantization parameters, and produce an out_i8)

    # out_i8 is quantized output, we can write down the formula for it first:
out_i8 = out_f32 / out_scale + out_zero_point           (1)

    # then out_fp32 is computed from x_f32 + y_f32, and the x_fp32 and y_fp32 are the dequantized x_i8 and y_i8
    out_f32 = x_f32 + y_f32           (2)
    x_fp32 = (x_i8 - x_zero_point) * x_scale         (3)
    y_fp32 = (y_i8 - y_zero_point) * y_scale         (4)

    # applying the above fomula to the out_i8 equation we can get the following:
    out_i8 = out_fp32 / out_scale + out_zero_point             # (1)
       = (x_f32 + y_f32) / out_scale + out_zero_point      # applying (2) to substitute out_fp32 with x_fp32 + y_fp32
       = ((x_i8 - x_zero_point) * x_scale + (y_i8 - y_zero_point) * y_scale) / out_scale + out_zero_point  # apply (3) and (4)
rW   )r?   r   rA   rR   r   r#   r>   r"   rÏ   s   &&&&&&&&&&    r:   Ú_reference_quantized_addrÖ   Ã  s¼   € ð: �G‰G”E—K‘KÓ €EØ�G‰G”E—K‘KÓ €Eä�KŠK˜Õ,°Õ1EÕFÓG×JÑJÌ5Ï;É;ÓW€EÜ�KŠK˜Õ,°Õ1EÕFÓG×JÑJÌ5Ï;É;ÓW€EØ�m˜nÕ,€GØ€IØ€IÜ�Y‰Y�^‰^×!Ñ! '°iÓ@×CÑCÄEÇJÁJÓO€FØ€Mr<   c	                 ór  € ^p	^p
^ p^pRp\         P                  P                  P                  WW#V\         P                  4      p\         P                  P
                  P                  P                  WéW«WÍ4      w  pp\         P                  P                  P                  WõWgV\         P                  4      pV# r¸   )	r   r   r    r!   r"   r#   Úmax_pool2d_with_indicesr%   r&   )r'   r(   r)   r*   r+   r2   r3   r4   r5   Úkernel_sizer»   r¼   r½   Ú	ceil_moder6   r8   r´   r9   s   &&&&&&&&&         r:   Ú_qdq_quantized_max_pool2drÛ   ì  sŸ   € ð €KØ€FØ€GØ€HØ€IÜ�Y‰Y×+Ñ+×AÑAØ�|°+¼u¿z¹zó€Fô —)‘)—.‘.×8Ñ8×@Ñ@Ø˜V¨hó�K€Hˆaô �Y‰Y×+Ñ+×?Ñ?Ø˜^¸MÌ5Ï:É:ó€Fð €Mr<   c	                 óœ  € ^p	^p
^ p^pRp\         P                  ! WV4      p V P                  \         P                  4      p\         P                  P
                  P                  P                  Wâ,
          WšW¼V4      w  ppWñV,          ,          V,           p\         P                  ! VWx4      pVP                  \         P                  4      pV# r¸   )	r   r>   r?   rA   r   r#   rØ   r%   r"   )r'   r(   r)   r*   r+   r2   r3   r4   r5   rÙ   r»   r¼   r½   rÚ   rS   rÑ   r´   r8   r9   s   &&&&&&&&&          r:   Ú_reference_quantized_max_pool2drÝ     s¨   € ð €KØ€FØ€GØ€HØ€Iä�;Š;�t¨+Ó6€DØ�G‰G”E—K‘KÓ €EÜ—‘—‘×7Ñ7×?Ñ?ØÕ˜k°7Àió�J€GˆQð  IÕ-Õ.°Õ?€HÜ�{Š{˜8 ]ÓB€HØ�[‰[œŸ™Ó$€FØ€Mr<   c                 óz   € \         P                  P                  P                  WW#V\         P                  4      pV# r   )r   r   r    r&   r"   ©r6   ÚscaleÚ
zero_pointrÊ   rË   Úxs   &&&&& r:   Ú_quantize_per_tensor_int8rã   $  s0   € Ü�	‰	×&Ñ&×:Ñ:Ø�z¨i¼¿¹ó	€Að €Hr<   c                 ó   € W,          p\         P                  ! V4      pVP                  \         P                  R 7      pWR,           p\         P                  ! WSV4      pVP                  \         P
                  R 7      pV# ©rP   )r   rR   r?   rA   r>   r"   rß   s   &&&&& r:   Ú#_reference_quantize_per_tensor_int8ræ   +  s^   € ð 	�€Aô 	�Š�A‹€AØ	�‰”5—;‘;ˆÓ€AØ	�€Aä�Š�A )Ó,€AØ	�‰”5—:‘:ˆÓ€AØ€Hr<   c                 óz   € \         P                  P                  P                  WW#V\         P                  4      pV# r   )r   r   r    r!   r"   )r'   rà   rá   rÊ   rË   r6   s   &&&&& r:   Ú_dequantize_per_tensor_int8rè   ;  s0   € Ü�Y‰Y×+Ñ+×AÑAØ�Z¨I´u·z±zó€Fð €Mr<   c                 óì   € \         P                  P                  P                  WV4      p V P	                  \         P
                  4      V,
          V,          P	                  \         P
                  R 7      # rå   )r   r   r#   r>   r?   r\   )r'   rà   rá   rÊ   rË   s   &&&&&r:   Ú%_reference_dequantize_per_tensor_int8rê   B  sO   € ô �9‰9�>‰>×Ñ °Ó;€Dð �W‰W”U—]‘]Ó# jÕ0°EÕ9×=Ñ=ÄEÇMÁMÐ=ÓRÐRr<   c           	      óz   € \         P                  P                  P                  WW#WE\         P                  4      pV# r   )r   r   r    Úquantize_per_channelr"   )r6   ÚscalesÚzero_pointsÚch_axisrÊ   rË   r9   s   &&&&&& r:   Ú_quantize_per_channel_int8rð   O  s2   € ô �Y‰Y×+Ñ+×@Ñ@Ø˜¨iÄEÇJÁJó€Fð €Mr<   c                 ól  € \         P                  ! WR4      p \         P                  P                  P	                  \         P
                  ! W,          4      P                  \         P                  4      V,           WE4      p\         P                  ! WcR4      pVP                  \         P                  4      # ©r¹   rp   )	r   Ú	transposer   r#   r>   rR   r?   rA   r"   )r6   rí   rî   rï   rÊ   rË   rÑ   s   &&&&&& r:   Ú$_reference_quantize_per_channel_int8rô   X  su   € ô �_Š_˜V¨bÓ1€FÜ�i‰i�n‰n×"Ñ"Ü�Š�F•OÓ$×'Ñ'¬¯©Ó4°{ÕBÀIó€Gô �oŠo˜g°Ó3€GØ�:‰:”e—j‘jÓ!Ð!r<   c           	      óz   € \         P                  P                  P                  WW#WE\         P                  4      pV# r   )r   r   r    Údequantize_per_channelr"   )r'   rí   rî   rï   rÊ   rË   r8   s   &&&&&& r:   Ú_dequantize_per_channel_int8r÷   c  s2   € ô �y‰y×-Ñ-×DÑDØ�k¨IÄ%Ç*Á*ó€Hð €Or<   c                 óL  € \         P                  P                  P                  WV4      p \         P                  ! WR4      p V P                  \         P                  4      pWb,
          P                  \         P                  4      V,          p\         P                  ! WsR4      pV# rò   )r   r   r#   r>   ró   r?   rA   rj   )r'   rí   rî   rï   rÊ   rË   rS   r8   s   &&&&&&  r:   Ú&_reference_dequantize_per_channel_int8rù   m  sq   € ô �9‰9�>‰>×Ñ °Ó;€DÜ�?Š?˜4¨"Ó-€DØ�G‰G”E—K‘KÓ €EØÕ#×'Ñ'¬¯©Ó4°vÕ=€HÜ�Š˜x°"Ó5€HØ€Or<   c                óL   € V ^8„  d   QhR\         P                  P                  /# )rh   Úgm)r   r˜   r   )rl   s   "r:   rm   rm   {  s   € ÷ ñ ´·±×0DÑ0Dñ r<   c           
      ó,   € \        V R.^^R^^^/R7      # )r¹   )Úexclude_literalsÚliteral_to_ph_idxrp   rW   )r   )rû   s   &r:   Ú'_replace_ph_qdq_per_channel_replacementrÿ   {  s%   € Ü7Ø
˜b˜T°a¸¸DÀ!ÀSÈ!Ð5Lôð r<   c                   óD   a € ] tR tRt o RtRtRtRtRtRt	V 3R lt
RtV tR# )Ú_RewriteInfoi�  z°Data needed for rewrite, this includes example inputs, pattern and replacement functions
and post transformation functions for the exported pattern and replacement GraphModule
NFc                ó�  <€ V ^8„  d   Qh/ S[ S[R3,          ;R&   S[;R&   S[;R&   S[S[S[.S[3,          ,          ;R&   S[S[S[.S[3,          ,          ;R&   S[S[S[RS[P                  P                  S[P                  P                  .S[	3,          ,          ,          ;R&   S[	;R	&   S[S[R
.R3,          ,          ;R&   # )rh   .Úexample_inputsÚpatternÚreplacementÚpattern_post_transÚreplacement_post_transr   Ú	filter_fnÚignore_literalsr   NÚport_metadata_fn)
Útupler   r   r   r   rt   r   r˜   ÚGraphr’   )rl   Ú__classdict__s   "€r:   rm   Ú_RewriteInfo.__annotate__�  sÚ   ø‡ ‚ ñ ™#˜s˜(•OÑ#ñ ñ Ññ ñ Ññ ñ !¡©;¨-¹Ð*DÕ!EÕFÑMñ ñ %¡X©{¨m¹[Ð.HÕ%IÕJÑQñ ñ Ù‰X�©¯©¯©¹¿¹¿¹ÐGÉÐMÕNÕOõñ ñ ñ  Ñ!ñ! ñ" ™xÐ);Ð(<¸dÐ(BÕCÕDÑKò# r<   © )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r  r  r  r	  r
  Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)r  s   @r:   r  r  �  s8   ø‡ € ñð JNÐØMQÐð 	ð ð "€OØGKÐ÷# ƒ r<   r  c                ó0   € V ^8„  d   QhR\         R\         /# )rh   Úmodelri   r   )rl   s   "r:   rm   rm   •  s   € ÷ Yñ Y¬Kð Y¼Kñ Yr<   c                 ó^#  € \         P                  ! R^R	\         P                  R7      \         P                  ! ^\         P                  R7      \         P
                  ! ^\         P                  R7      \         P                  ! R.\         P                  R7      \         P                  ! ^.\         P                  R7      \         P                  ! R^R
\         P                  R7      \         P                  ! ^\         P                  R7      \         P
                  ! ^\         P                  R7      \         P                  ! R.\         P                  R7      \         P                  ! ^.\         P                  R7      \         P                  ! ^\         P                  R7      \         P                  ! ^\         P                  R7      \         P
                  ! ^\         P                  R7      \         P                  ! R.\         P                  R7      \         P                  ! ^.\         P                  R7      3p\         P                  ! R	\         P                  R7      R^\         P                  ! \         P                  4      P                  \         P                  ! R^R
\         P                  R7      \         P                  ! ^\         P                  R7      \         P
                  ! ^\         P                  R7      \         P                  ! R.\         P                  R7      \         P                  ! ^.\         P                  R7      \         P                  ! ^\         P                  R7      3
p\         P                  ! R^R\         P                  R7      \         P                  ! ^\         P                  R7      \         P
                  ! ^\         P                  R7      \         P                  ! R.\         P                  R7      \         P                  ! ^.\         P                  R7      \         P                  ! R^R\         P                  R7      \         P                  ! ^\         P                  R7      \         P
                  ! ^\         P                  R7      \         P                  ! R.\         P                  R7      \         P                  ! ^.\         P                  R7      \         P                  ! ^\         P                  R7      \         P                  ! ^\         P                  R7      \         P
                  ! ^\         P                  R7      \         P                  ! R.\         P                  R7      \         P                  ! ^.\         P                  R7      3p\         P                  ! R^R\         P                  R7      \         P                  ! ^\         P                  R7      \         P
                  ! ^\         P                  R7      \         P                  ! R^R\         P                  R7      \         P                  ! ^\         P                  R7      \         P
                  ! ^\         P                  R7      \         P                  ! ^\         P                  R7      \         P
                  ! ^\         P                  R7      \         P                  ! R.\         P                  R7      \         P                  ! ^.\         P                  R7      3
p\         P                  ! R^R\         P                  R7      \         P                  ! ^\         P                  R7      \         P
                  ! ^\         P                  R7      \         P                  ! R.\         P                  R7      \         P                  ! ^.\         P                  R7      \         P                  ! ^\         P                  R7      \         P
                  ! ^\         P                  R7      \         P                  ! R.\         P                  R7      \         P                  ! ^.\         P                  R7      3	p\         P                  ! ^^^^\         P                  R7      \         P                  ! ^\         P                  R7      \         P
                  ! ^\         P                  R7      \         P                  ! R.\         P                  R7      \         P                  ! ^.\         P                  R7      3p\         P                  ! R^R\         P                  R7      \         P                  ! ^\         P                  R7      \         P
                  ! ^\         P                  R7      \         P                  ! R.\         P                  R7      \         P                  ! ^.\         P                  R7      3p\         P                  ! ^^^^\         P                  R7      \         P                  ! ^\         P                  R7      \         P
                  ! ^\         P                  R7      ^R^3p\         P                  ! R^R\         P                  R7      \         P                  ! ^\         P                  R7      \         P
                  ! ^\         P                  R7      ^R^3p	\         P                  ! R\         P                  R7      \         P                  ! \         P                  4      P                  \         P                  ! R^R\         P                  R7      \         P                  ! ^^\         P                  R7      \         P
                  ! ^^\         P                  R7      \         P                  ! ^\         P                  R7      ^3p
\         P                  ! R\         P                  R7      \         P                  ! \         P                  4      P                  \         P                  ! R^R\         P                  R7      \         P                  ! ^^\         P                  R7      \         P
                  ! ^^\         P                  R7      \         P                  ! ^\         P                  R7      ^3p\        V\        \        4      \        \        4      \        \         R^^^\         P                  ! \         P                  4      P                  ^/R7      \        \         R^^^\         P                  ! \         P                  4      P                  ^/R7      4      \        V
\        \"        4      \        \$        4      \        \         \         P                  ! \         P                  4      P                  ^R^/R7      \        \         \         P                  ! \         P                  4      P                  ^R^/R7      \&        .R\(        R7      \        V\        \"        4      \        \$        4      \        \         \         P                  ! \         P                  4      P                  ^R^/R7      \        \         \         P                  ! \         P                  4      P                  ^R^/R7      \&        .R\(        R7      \        V\        \*        4      \        \,        4      \.        \.        4      \        V\        \0        4      \        \2        4      \        \.        R.R7      \        \.        R.R7      4      \        V\        \4        4      \        \6        4      4      \        V\        \8        4      \        \:        4      4      \        V\        \<        4      \        \>        4      \.        \.        4      \        V\        \@        4      \        \B        4      4      \        V\        \D        4      \        \F        4      4      \        V\        \H        4      \        \J        4      \L        \L        4      \        V	\        \N        4      \        \P        4      \L        \L        4      .p\S        V 4       \U        4       ;_uu_ 4        V Fÿ  pVPV                  pVPX                  pVPZ                  pVP\                  pVP^                  p\a        Wþ4      p\S        V4       \a        VV4      p\S        V4       V'       d	   V! V4      pV'       d	   V! V4      pVPc                  4        VPc                  4        \e        V VVVPf                  VPh                  R7      pVPj                  '       g   Kä  V F  pVPk                  V4       K  	  EK  	  RRR4       V #   + '       g   i     T # ; i)rV   rP   )rþ   T)r  r	  r
  )rý   )Úmatch_filtersr	  NrW   )rh   é   )r  r  i�ÿÿÿ)r¹   é   r  r  )r¹   é    rX   )é   r  )r¹   r¹   r  )r¹   r  rp   )6r   Úrandintr"   Úrandnrj   rs   rk   ÚtensorÚfinfor\   Úepsr  r   rN   rT   r   r   rf   r�   r¤   r¶   r;   rJ   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   Ú	recompiler   r  r	  r
  )r  Ú _QUANTIZED_LINEAR_EXAMPLE_INPUTSÚ(_DYNAMIC_QUANTIZED_LINEAR_EXAMPLE_INPUTSÚ _QUANTIZED_CONV2d_EXAMPLE_INPUTSÚ)_QUANTIZED_ADD_OR_ADD_RELU_EXAMPLE_INPUTSÚ$_QUANTIZED_MAX_POOL2D_EXAMPLE_INPUTSÚ(_QUANTIZE_PER_TENSOR_INT8_EXAMPLE_INPUTSÚ*_DEQUANTIZE_PER_TENSOR_INT8_EXAMPLE_INPUTSÚ)_QUANTIZE_PER_CHANNEL_INT8_EXAMPLE_INPUTSÚ+_DEQUANTIZE_PER_CHANNEL_INT8_EXAMPLE_INPUTSÚ9_DYNAMIC_QUANTIZED_LINEAR_4BIT_GROUPWISE_EXAMPLE_INPUTS_1Ú9_DYNAMIC_QUANTIZED_LINEAR_4BIT_GROUPWISE_EXAMPLE_INPUTS_2Ú_REWRITE_INFO_LISTÚrewrite_infor  r  r  r  r  ÚmatchesÚms   &                    r:   r   r   •  s  € ä�Š�d˜C ¬u¯z©zÔ:Ü�Š�AœUŸ[™[Ô)Ü�Š�AœUŸY™YÔ'Ü�Š�d�V¤5§9¡9Ô-Ü�Š�c�U¤%§)¡)Ô,Ü�Š�d˜C ¬u¯z©zÔ:Ü�Š�AœUŸ[™[Ô)Ü�Š�AœUŸY™YÔ'Ü�Š�d�V¤5§9¡9Ô-Ü�Š�c�U¤%§)¡)Ô,Ü�Š�AœUŸ[™[Ô)Ü�Š�AœUŸ[™[Ô)Ü�Š�AœUŸY™YÔ'Ü�Š�d�V¤5§9¡9Ô-Ü�Š�c�U¤%§)¡)Ô,ð(Ð$ô& 	�Š�F¤%§+¡+Ô.ØØÜ�Š”E—M‘MÓ"×&Ñ&Ü�Š�d˜C ¬u¯z©zÔ:Ü�Š�AœUŸ[™[Ô)Ü�Š�AœUŸY™YÔ'Ü�Š�d�V¤5§9¡9Ô-Ü�Š�c�U¤%§)¡)Ô,Ü�Š�AœUŸ[™[Ô)ð0Ð,ô 	�Š�d˜C ´U·Z±ZÔ@Ü�Š�AœUŸ[™[Ô)Ü�Š�AœUŸY™YÔ'Ü�Š�d�V¤5§9¡9Ô-Ü�Š�c�U¤%§)¡)Ô,Ü�Š�d˜C ´U·Z±ZÔ@Ü�Š�AœUŸ[™[Ô)Ü�Š�AœUŸY™YÔ'Ü�Š�d�V¤5§9¡9Ô-Ü�Š�c�U¤%§)¡)Ô,Ü�Š�AœUŸ[™[Ô)Ü�Š�AœUŸ[™[Ô)Ü�Š�AœUŸY™YÔ'Ü�Š�d�V¤5§9¡9Ô-Ü�Š�c�U¤%§)¡)Ô,ð(Ð$ô& 	�Š�d˜C ´U·Z±ZÔ@Ü�Š�AœUŸ[™[Ô)Ü�Š�AœUŸY™YÔ'Ü�Š�d˜C ´U·Z±ZÔ@Ü�Š�AœUŸ[™[Ô)Ü�Š�AœUŸY™YÔ'Ü�Š�AœUŸ[™[Ô)Ü�Š�AœUŸY™YÔ'Ü�Š�d�V¤5§9¡9Ô-Ü�Š�c�U¤%§)¡)Ô,ð1Ð-ô 	�Š�d˜C ´U·Z±ZÔ@Ü�Š�AœUŸ[™[Ô)Ü�Š�AœUŸY™YÔ'Ü�Š�d�V¤5§9¡9Ô-Ü�Š�c�U¤%§)¡)Ô,Ü�Š�AœUŸ[™[Ô)Ü�Š�AœUŸY™YÔ'Ü�Š�d�V¤5§9¡9Ô-Ü�Š�c�U¤%§)¡)Ô,ð
,Ð(ô 	�Š�A�q˜!˜Q¤e§k¡kÔ2Ü�Š�AœUŸ[™[Ô)Ü�Š�AœUŸY™YÔ'Ü�Š�d�V¤5§9¡9Ô-Ü�Š�c�U¤%§)¡)Ô,ð0Ð,ô 	�Š�d˜C ´U·Z±ZÔ@Ü�Š�AœUŸ[™[Ô)Ü�Š�AœUŸY™YÔ'Ü�Š�d�V¤5§9¡9Ô-Ü�Š�c�U¤%§)¡)Ô,ð2Ð.ô 	�Š�A�q˜!˜Q¤e§k¡kÔ2Ü�Š�AœUŸ[™[Ô)Ü�Š�AœUŸY™YÔ'Ø	ØØð1Ð-ô 	�Š�d˜C ´U·Z±ZÔ@Ü�Š�AœUŸ[™[Ô)Ü�Š�AœUŸY™YÔ'Ø	ØØð3Ð/ô 	�Š�G¤5§;¡;Ô/Ü�Š”E—M‘MÓ"×&Ñ&Ü�Š�b˜!˜W¬E¯J©JÔ7Ü�Š�A�q¤§¡Ô,Ü�ŠØˆqœŸ	™	ô	
ô 	�Š�AœUŸ[™[Ô)Ø	ð
AÐ=ô 	�Š�J¤e§k¡kÔ2Ü�Š”E—M‘MÓ"×&Ñ&Ü�Š�b˜!˜W¬E¯J©JÔ7Ü�Š�A�q¤§¡Ô,Ü�ŠØˆqœŸ	™	ô	
ô 	�Š�AœUŸ[™[Ô)Ø	ð
AÐ=ô 	Ø4ÜÔ7Ó8ÜÔ=Ó>ÜÜ<Ø#'¨¨C°´E·K²KÄÇÁÓ4N×4RÑ4RÐTUÐ"Vôô Ü<Ø#'¨¨C°´E·K²KÄÇÁÓ4N×4RÑ4RÐTUÐ"Vôó	
ô 	ØEÜÔFÓGÜÔLÓMÜÜ<ä—K’K¤§¡Ó.×2Ñ2°AØ˜Að#ôô Ü<ä—K’K¤§¡Ó.×2Ñ2°AØ˜Að#ôô NÐNØ ÜWô)	
ô, 	ØEÜÔFÓGÜÔLÓMÜÜ<ä—K’K¤§¡Ó.×2Ñ2°AØ˜Að#ôô Ü<ä—K’K¤§¡Ó.×2Ñ2°AØ˜Að#ôô NÐNØ ÜWô)	
ô, 	Ø,ÜÔ/Ó0ÜÔ5Ó6Ü3Ü3ó	
ô 	Ø,ÜÔ/Ó0ÜÔ5Ó6ÜÔ;ÈrÈdÔSÜÔ;ÈrÈdÔSó	
ô 	Ø5ÜÔ1Ó2ÜÔ7Ó8ó	
ô
 	Ø5ÜÔ,Ó-ÜÔ2Ó3ó	
ô
 	Ø0ÜÔ3Ó4ÜÔ9Ó:Ü3Ü3ó	
ô 	Ø4ÜÔ3Ó4ÜÔ=Ó>ó	
ô
 	Ø6ÜÔ5Ó6ÜÔ?Ó@ó	
ô
 	Ø5ÜÔ4Ó5ÜÔ>Ó?Ü3Ü3ó	
ô 	Ø7ÜÔ6Ó7ÜÔ@ÓAÜ3Ü3ó	
ðUqÐôf ' uÔ-ä	-×	/Õ	/Û.ˆLØ)×8Ñ8ˆNØ"×*Ñ*ˆGØ&×2Ñ2ˆKØ!-×!@Ñ!@ÐØ%1×%HÑ%HÐ"Ü8¸ÓQˆGÜ.¨wÔ7Ü<Ø˜^óˆKô /¨{Ô;ß!Ù,¨WÓ5�ß%Ù4°[ÓA�Ø×ÑÔØ×!Ñ!Ô#Ü2ØØØØ*×4Ñ4Ø ,× <Ñ <ôˆGð ×,×,Ò,Û �AØ ×1Ñ1°!Ö4ô !ñ5 /÷ 
0ð< €L÷= 
0Ö	/ð< €Lús"   ÁBBAFÁDAAFÁE2AFÁFAF,	)GÚ
contextlibÚdataclassesr   Ú	functoolsr   Útypingr   r   r   r   r   Ú!torch._higher_order_ops.out_dtyper	   Ú$torch.ao.quantization.fx._decomposedr
   Útorch.fxr   Ú6torch.fx.passes.utils.matcher_with_name_node_map_utilsr   Útorch.fx.subgraph_rewriterr   r   Ú&torchao.quantization.pt2e.export_utilsr   Útorchao.quantization.pt2e.utilsr   r   r   r   Ú%torchao.quantization.quant_primitivesr   Útorchao.quantization.utilsr   Útorchao.utilsr   Útorch._export.utilsr   ÚnullcontextÚlibraryÚLibraryÚ	quant_libÚregister_custom_opÚ__all__r;   rJ   rN   rT   rf   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>rJ     sN  ðó Ý !Ý ß 0Ó 0ã Ý 7Ý IÝ  Ý Pß Uå @÷ó õ >Ý @Ý -ðBÝHð �M‰M×!Ñ! )¨ZÓ8€	Ù(¨Ó3Ð ð 'ð€ò
 òF2òjòB,ò^>ðB ô~$ó ð~$òBõ00õ6
ò80òfOòdò4"òJò2&òRò8ò8òò ò
Sòò"òòõð ÷Lð Ló ðL÷&YøðiBØ+5×+AÑ+AÒ(ús   Á&D	 Ä	D