+
    ÆÜ³j¯Q  ã                   ó`  € ^ RI Ht ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RI	t	^ RI
HtHt ^RIHt ^RIHtHt ]P$                  ! ]4      t]	P*                  P,                  P/                  4       R8H  t]	P2                  R)8¼  d   ]'       d   ]! R	R
4      R R l4       t]! ]]4      '       gs   ]! RR
4      R R l4       t]! RR
4      R R l4       t]! RR
4      R R l4       t]! 4       '       d0   Rt ^ RIHt ]! R^R7      P>                  t]! RR
4      R R l4       tR R lt#]	PH                  ! 4       R*R R  ll4       t%]! R!R
4      ! ]%4       ]	PH                  ! 4       R" R# l4       t&R$ R% lt'R*R& R' llt(]! R(R
4      ! ](4       R#   ]  d   t!Rt]PE                  R]!4        Rt!A!LœRt!A!ii ; i)+é    )ÚSequenceN)Úprod)ÚOptional)Úget_ptrÚhas_avx512bf16)Úregister_kernel)Ú ErrorHandlerMockBNBNativeLibraryÚlibÚAVX512z bitsandbytes::int8_linear_matmulÚcpuc                óX   € V ^8„  d   QhR\         P                  R\         P                  /# )é   ÚAÚB)ÚtorchÚTensor)Úformats   "Ú^/home/luca/screen-checking/.venv/lib/python3.14/site-packages/bitsandbytes/backends/cpu/ops.pyÚ__annotate__r      s"   € ÷ -ñ -ŒU�\‰\ð -œeŸl™lñ -ó    c                 óð   € \         P                  ! V P                  RV P                  R,          4      VP	                  4       4      P                  ! . V P                  RR OVP                  ^ ,          N5!  # )é   Néÿÿÿÿ)r   Ú_int_mmÚreshapeÚshapeÚt)r   r   s   &&r   Ú_r      si   € ä�}Š}Ø�I‰I�b˜!Ÿ'™' "�+Ó&Ø�C‰C‹Eó
÷ ‰'ðð -ð —7‘7˜3˜B�<ð-ð "#§¡¨¥ó-ð 	-r   z bitsandbytes::quantize_blockwisec          
      óº   € V ^8„  d   QhR\         P                  R\         P                  R\        R\        \         P                  \         P                  3,          /# )r   r   ÚcodeÚ	blocksizeÚreturn)r   r   ÚintÚtuple)r   s   "r   r   r   '   sE   € ÷ 5ñ 5ŒU�\‰\ð 5¤§¡ð 5¼#ð 5Ä%ÌÏÉÔV[×VbÑVbÐHbÕBcñ 5r   c           
      ó|  € V P                  4       p V P                  4       pW2) ,          ) p\        P                  ! V3V P                  \        P
                  R 7      p\        P                  ! V P                  V P                  \        P                  R 7      pV P                  \        P
                  8X  dk   \        P                  ! \        V4      \        V 4      \        V4      \        V4      \        P                  ! V4      \        P                  ! V4      4       We3# V P                  \        P                  8X  dk   \        P                  ! \        V4      \        V 4      \        V4      \        V4      \        P                  ! V4      \        P                  ! V4      4       We3# V P                  \        P                   8X  dk   \        P"                  ! \        V4      \        V 4      \        V4      \        V4      \        P                  ! V4      \        P                  ! V4      4       We3# V P%                  V4      P'                  4       pW2,          pV^ 8„  p	VRW8,
           p
V
P%                  W2,          V4      p\        P(                  ! V4      P+                  RR7      ^ ,          VRWI,
          % \        P,                  ! V^VRWI,
           P/                  R^4      ,          ,          R^4      pVP%                  R4      pV	'       d€   \        P(                  ! WsV,
          R 4      P+                  4       VR&   \        P,                  ! WsV,
          R ^VR,          ,          ,          R^4      p\        P0                  ! WÍ.^ R7      p\        P(                  ! VP3                  R4      VP5                  VP                  4      ,
          4      p\        P6                  ! VRR7      P5                  \        P                  4      P5                  VP                  4      P%                  V P                  4      pWe3# ))ÚdeviceÚdtypeN)Údimr   )Ú
contiguousÚnumelr   Úemptyr&   Úfloat32r   Úuint8r'   r
   Úcquantize_blockwise_cpu_fp32r   ÚctÚ
c_longlongÚbfloat16Úcquantize_blockwise_cpu_bf16Úfloat16Úcquantize_blockwise_cpu_fp16r   ÚfloatÚabsÚmaxÚclampÚviewÚcatÚ	unsqueezeÚtoÚargmin)r   r    r!   ÚnÚblocksÚabsmaxÚoutÚA_flatÚremÚhas_remÚA_comÚA_com_reshapedÚscaled_AÚscaled_A_remÚdiffs   &&&            r   r   r   &   s  € à�L‰L‹NˆØ�G‰G‹IˆØ˜
•?Ð#ˆä—’˜f˜Y¨q¯x©x¼u¿}¹}ÔMˆÜ�kŠk˜!Ÿ'™'¨!¯(©(¼%¿+¹+ÔFˆà�7‰7”e—m‘mÔ#Ü×,Ò,Ü˜“Ü˜“
Ü˜“Ü˜“Ü—’˜iÓ(Ü—’˜aÓ ôðX ˆ{ÐðI �W‰WœŸ™Ô&Ü×,Ò,Ü˜“Ü˜“
Ü˜“Ü˜“Ü—’˜iÓ(Ü—’˜aÓ ôðF ˆ{Ðð7 �W‰WœŸ™Ô%Ü×,Ò,Ü˜“Ü˜“
Ü˜“Ü˜“Ü—’˜iÓ(Ü—’˜aÓ ôð4 ˆ{Ðð! —Y‘Y˜q“\×'Ñ'Ó)ˆFØ•-ˆCØ˜A‘gˆGØ˜9˜Q�WÐ%ˆEØ"Ÿ]™]¨1­>¸9ÓEˆNÜ).¯ª°>Ó)B×)FÑ)FÈ2Ð)FÓ)NÈqÕ)QˆFÐ%�VÕ%Ð&Ü—{’{ >°Q¸Ð@RÀ&ÕBRÐ9S×9XÑ9XÐY[Ð]^Ó9_Õ5_Õ#`ÐbdÐfgÓhˆHØ×'Ñ'¨Ó+ˆHßÜ"ŸYšY v°#­g¨iÐ'8Ó9×=Ñ=Ó?��r‘
Ü$Ÿ{š{¨6°cµ'°)Ð+<ÀÀFÈ2ÅJÅÕ+OÐQSÐUVÓW�Ü Ÿ9š9 hÐ%=À1ÔE�ä—9’9˜X×/Ñ/°Ó3°d·g±g¸h¿o¹oÓ6NÕNÓOˆDÜ—,’,˜t¨Ô,×/Ñ/´·±Ó<×?Ñ?ÀÇÁÓP×XÑXÐYZ×Y`ÑY`ÓaˆCàˆ{Ðr   z"bitsandbytes::dequantize_blockwisec                óÄ   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\        R\         P                  R\         P                  /# )r   r   r@   r    r!   r'   r"   )r   r   r#   r'   )r   s   "r   r   r   _   sR   € ÷ *ñ *Ü�<‰<ð*Ü!&§¡ð*Ü5:·\±\ð*ÜNQð*ÜZ_×ZeÑZeð*ä	�‰ñ*r   c                 ó®  € V P                  4       p \        P                  ! WR 7      pV\        P                  8X  dx   \        P
                  ! \        V4      \        V 4      \        V4      \        V4      \        P                  ! V4      \        P                  ! V P                  4       4      4       V# V\        P                  8X  dx   \        P                  ! \        V4      \        V 4      \        V4      \        V4      \        P                  ! V4      \        P                  ! V P                  4       4      4       V# V\        P                  8X  dx   \        P                  ! \        V4      \        V 4      \        V4      \        V4      \        P                  ! V4      \        P                  ! V P                  4       4      4       V# W P                  R4      P                  4       ,          pVP                   R,          V,          pVP                   R,          V,          pV^ 8w  d6   \        P"                  P$                  P'                  V^ W7,
          3R^ R7      pVP)                  RV4      VP)                  R^4      ,          P+                  V4      P                  R4      pVRWc,          V,            pVP                  V P                   4      pV# ))r'   Úconstant)ÚmodeÚvalueNr   )r)   r   Ú
empty_liker,   r
   Úcdequantize_blockwise_cpu_fp32r   r/   r0   r*   r1   Úcdequantize_blockwise_cpu_bf16r3   Úcdequantize_blockwise_cpu_fp16r   r#   r   ÚnnÚ
functionalÚpadr9   r<   )r   r@   r    r!   r'   rA   r?   Úress   &&&&&   r   r   r   ^   s	  € ð �L‰L‹NˆÜ×Ò˜qÔ.ˆØ”E—M‘MÔ!Ü×.Ò.Ü˜“Ü˜“
Ü˜“Ü˜“Ü—’˜iÓ(Ü—’˜aŸg™g›iÓ(ôðH ˆ
ð9 ”e—n‘nÔ$Ü×.Ò.Ü˜“Ü˜“
Ü˜“Ü˜“Ü—’˜iÓ(Ü—’˜aŸg™g›iÓ(ôð6 ˆ
ð' ”e—m‘mÔ#Ü×.Ò.Ü˜“Ü˜“
Ü˜“Ü˜“Ü—’˜iÓ(Ü—’˜aŸg™g›iÓ(ôð$ ˆ
ð —y‘y “}×(Ñ(Ó*Õ+ˆCØ—Y‘Y˜r•] iÕ/ˆFØ—)‘)˜B•- )Õ+ˆCØ�aŒxÜ—h‘h×)Ñ)×-Ñ-¨c°A°yµÐ3GÈjÐ`aÐ-Ób�Ø—8‘8˜B 	Ó*¨V¯[©[¸¸QÓ-?Õ?×CÑCÀEÓJ×RÑRÐSUÓVˆCØÐ0˜Õ*¨SÕ0Ð1ˆCØ—+‘+˜aŸg™gÓ&ˆCàˆ
r   zbitsandbytes::dequantize_4bitc                óÒ   € V ^8„  d   QhR\         P                  R\         P                  R\        R\        R\        \        ,          R\         P
                  R\         P                  /# )r   r   r@   r!   Ú
quant_typer   r'   r"   )r   r   r#   Ústrr   r'   )r   s   "r   r   r   Œ   sk   € ÷ dñ dÜ�<‰<ðdä—‘ðdô ðdô ð	dô
 œ�}ðdô �{‰{ðdô 
�‰ñdr   c           
      ó¤	  € \         ;'       d    VR 8¬  pVR,          ^,          ^ 8g  pV'       g	   V'       dw   ^RIHp ^RIHp	 V P
                  \        P                  8w  d    V P                  \        P                  4      p V	! W0P                  4      p
V! V P                  R4      WW$V4      # V P
                  \        P                  8w  d    V P                  \        P                  4      p VP
                  \        P                  8w  d   VP                  4       p\        V4      ^8X  d   ^V^ ,          3p\        VRR 4      pVR,          pV P                  W¼^,          4      p \        P                  ! WEV P                  R7      pVR8X  Edœ   V\        P                  8X  du   \         P"                  ! \%        V 4      \%        V4      \%        V4      \&        P(                  ! V4      \&        P(                  ! V4      \&        P(                  ! V4      4       V# V\        P*                  8X  du   \         P,                  ! \%        V 4      \%        V4      \%        V4      \&        P(                  ! V4      \&        P(                  ! V4      \&        P(                  ! V4      4       V# V\        P.                  8X  ds   \         P0                  ! \%        V 4      \%        V4      \%        V4      \&        P(                  ! V4      \&        P(                  ! V4      \&        P(                  ! V4      4       V# VR8X  Edœ   V\        P                  8X  du   \         P2                  ! \%        V 4      \%        V4      \%        V4      \&        P(                  ! V4      \&        P(                  ! V4      \&        P(                  ! V4      4       V# V\        P*                  8X  du   \         P4                  ! \%        V 4      \%        V4      \%        V4      \&        P(                  ! V4      \&        P(                  ! V4      \&        P(                  ! V4      4       V# V\        P.                  8X  ds   \         P6                  ! \%        V 4      \%        V4      \%        V4      \&        P(                  ! V4      \&        P(                  ! V4      \&        P(                  ! V4      4       V# \8        h)i   )Ú_dequantize_4bit_compute)Ú_get_4bit_codeN©r'   r&   Úfp4Únf4r   )Ú_has_avx512Údefault.opsr[   Úutilsr\   r'   r   r-   r9   r&   r   r,   r5   Úlenr   r+   r
   Ú"cdequantize_blockwise_cpu_fp4_fp32r   r/   r0   r1   Ú"cdequantize_blockwise_cpu_fp4_bf16r3   Ú"cdequantize_blockwise_cpu_fp4_fp16Ú"cdequantize_blockwise_cpu_nf4_fp32Ú"cdequantize_blockwise_cpu_nf4_bf16Ú"cdequantize_blockwise_cpu_nf4_fp16Ú
ValueError)r   r@   r!   rX   r   r'   Úavx512_fallbackÚshape_fallbackr[   r\   r    Úmr>   rA   s   &&&&&&        r   r   r   ‹   sZ  € ô &×;Ð;¨)°tÑ*;ˆð ˜r� Q�¨!Ñ+ˆçŸnÝ>Ý.à�w‰wœ%Ÿ+™+Ô%Ø—F‘Fœ5Ÿ;™;Ó'�Ù! *¯h©hÓ7ˆDÙ+¨A¯I©I°b«M¸6ÈÐ[`ÓaÐað �7‰7”e—k‘kÔ!Ø—‘”u—{‘{Ó#ˆAð �<‰<œ5Ÿ=™=Ô(Ø—\‘\“^ˆFäˆu‹:˜Œ?Ø˜˜a��MˆEä��s˜�ÓˆØ�"�Iˆà�I‰I�a˜a�Ó ˆÜ�kŠk˜%°Q·X±XÔ>ˆà˜ÕØœŸ™Ô%Ü×6Ò6Ü˜A“JÜ˜F“OÜ˜C“LÜ—M’M )Ó,Ü—M’M !Ó$Ü—M’M !Ó$ôðr ˆ
ðc œ%Ÿ.™.Ô(Ü×6Ò6Ü˜A“JÜ˜F“OÜ˜C“LÜ—M’M )Ó,Ü—M’M !Ó$Ü—M’M !Ó$ôð` ˆ
ðQ œ%Ÿ-™-Ô'Ü×6Ò6Ü˜A“JÜ˜F“OÜ˜C“LÜ—M’M )Ó,Ü—M’M !Ó$Ü—M’M !Ó$ôðN ˆ
ð? ˜5Õ ØœŸ™Ô%Ü×6Ò6Ü˜A“JÜ˜F“OÜ˜C“LÜ—M’M )Ó,Ü—M’M !Ó$Ü—M’M !Ó$ôð: ˆ
ð+ œ%Ÿ.™.Ô(Ü×6Ò6Ü˜A“JÜ˜F“OÜ˜C“LÜ—M’M )Ó,Ü—M’M !Ó$Ü—M’M !Ó$ôð( ˆ
ð œ%Ÿ-™-Ô'Ü×6Ò6Ü˜A“JÜ˜F“OÜ˜C“LÜ—M’M )Ó,Ü—M’M !Ó$Ü—M’M !Ó$ôð ˆ
ô Ðr   )Ú
get_kernelz+kernels-community/quantization-bitsandbytes)Úversionz�Failed to load CPU gemm_4bit_forward from kernels-community: %s. Please make sure you already `pip install kernels` and the kernels >= 0.11.1zbitsandbytes::gemv_4bitc                óæ   € V ^8„  d   QhR\         P                  R\         P                  R\        \        ,          R\         P                  R\         P                  R\        R\         P                  /# )r   r   r   ÚshapeBr@   r    r!   r"   )r   r   r   r#   )r   s   "r   r   r     sf   € ÷ ?	0ñ ?	0Ü�|‰|ð?	0ä�|‰|ð?	0ô œS•Mð?	0ô —L‘Lð	?	0ô
 —,‘,ð?	0ô ð?	0ô �\‰\ñ?	0r   c                 óp  € VP                   \        P                  8w  d.   VP                  4       P	                  \        P                  4      pV P                   pV^,          ^ 8”  d   RMRpV\        P
                  8w  d    V P                  \        P
                  4      p VP                   \        P
                  8w  d    VP                  \        P
                  4      p. V P                  RR OV^ ,          N5pV P                  RV P                  R,          4      p . V P                  RR OV^ ,          N5p	\        eB   VR8X  d   ^M^ p
VP                  V^ ,          R4      P                  4       p\        WW5V
4      pEM\        P                  ! W�P                   V P                  R7      pV P                  ^ ,          pV^ ,          pV P                  ^,          pV P                  ^ 4      pVP                  ^ 4      pVR8X  d½   \        P                  ! \        P                   ! V4      \        P                   ! V4      \        P                   ! V4      \#        V 4      \#        V4      \#        V4      \#        V4      \        P                   ! V4      \        P                   ! V4      \        P                   ! V4      4
       MÂVR8X  d¼   \        P$                  ! \        P                   ! V4      \        P                   ! V4      \        P                   ! V4      \#        V 4      \#        V4      \#        V4      \#        V4      \        P                   ! V4      \        P                   ! V4      \        P                   ! V4      4
       V\        P
                  8w  d   VP                  V4      pVP                  V4      # )r   r^   r_   Nr]   r   )r'   r   r-   r)   r9   r1   r<   r   r   Úgemm_4bit_forward_kernelr+   r&   Ústrider
   Ú gemv_4bit_inference_cpu_fp4_bf16r/   Úc_int64r   Ú gemv_4bit_inference_cpu_nf4_bf16)r   r   rq   r@   r    r!   r'   rX   Úfinal_out_shapeÚ	out_shapeÚquant_type_numÚB_2drA   ÚMÚNÚKÚ	x_strideMÚout_strideMs   &&&&&&            r   r   r     sˆ  € ð �w‰wœ%Ÿ+™+Ô%Ø—L‘L“N×'Ñ'¬¯©Ó4�Ø—G‘GˆEØ"& q¥'¨A¤+™°5ˆJàœŸ™Ô&Ø—D‘DœŸ™Ó(�Ø�|‰|œuŸ~™~Ô-ØŸ™¤5§>¡>Ó2�à8 §¡¨¨ Ð8¨f°Q­iÑ8ˆOØ—	‘	˜"˜aŸg™g b�kÓ*ˆAØ2˜!Ÿ'™' # 2˜,Ð2¨¨q­	Ñ2ˆIÜ'Ò3Ø&0°EÔ&9¡¸q�à—y‘y ¨¥¨BÓ/×:Ñ:Ó<�Ü.¨q¸È>ÓZ’ä—k’k )·7±7À1Ç8Á8ÔL�Ø—G‘G˜A•J�Ø˜1•I�Ø—G‘G˜A•J�ØŸH™H Q›K�	Ø!Ÿj™j¨›m�Ø Ô&Ü×8Ò8ÜŸ
š
 1›ÜŸ
š
 1›ÜŸ
š
 1›Ü ›
Ü ›
Ü ›Ü ›ÜŸ
š
 9Ó-ÜŸ
š
 9Ó-ÜŸ
š
 ;Ó/õð   5Ô(Ü×8Ò8ÜŸ
š
 1›ÜŸ
š
 1›ÜŸ
š
 1›Ü ›
Ü ›
Ü ›Ü ›ÜŸ
š
 9Ó-ÜŸ
š
 9Ó-ÜŸ
š
 ;Ó/ôð œŸ™Ô&Ø—f‘f˜U“m�à—;‘;˜Ó/Ð/r   c          
      ó’   € V ^8„  d   QhR\         P                  R\        \         P                  ,          R\        R\        R\        /# )r   ÚupdateÚ	unorm_vecÚ	max_unormÚ
param_normr"   )r   r   r   r5   )r   s   "r   r   r   G  sG   € ÷ ñ Ü�L‰LðäœŸ™Õ%ðô ðô ð	ô
 ñr   c                óÂ   € VR8:  d   R# \         P                  ! V 4      P                  4       pVe   VP                  V4       WBV,          8”  d   W#,          V,          # R# )zGCompute trust-ratio scaling factor for LAMB/LARS and store update norm.ç        ç      ð?)r   ÚnormÚitemÚfill_)r‚   rƒ   r„   r…   Úunorms   &&&& r   Ú_compute_update_norm_and_scaler�   G  sT   € ð �CÔÙÜ�JŠJ�vÓ×#Ñ#Ó%€EØÒØ�‰˜ÔØ˜:Õ%Ô%ØÕ&¨%Õ/Ð/Ùr   c          &      ó„  € V ^8„  d   QhR\         R\        P                  R\        P                  R\        P                  R\        \        P                  ,          R\        \        P                  ,          R\        R\        R	\        R
\        R\        R\        R\        R\        R\
        R\        R\        R\        RR/# )r   Úoptimizer_nameÚgÚpÚstate1Ústate2rƒ   r„   r…   Úbeta1Úbeta2Úbeta3ÚalphaÚepsÚweight_decayÚstepÚlrÚgnorm_scaleÚ
skip_zerosr"   N©rY   r   r   r   r5   r#   Úbool)r   s   "r   r   r   Y  sù   € ÷ gñ gÜðgä‡|�|ðgô ‡|�|ðgô �L‰Lð	gô
 ”U—\‘\Õ"ðgô œŸ™Õ%ðgô ðgô ðgô ðgô ðgô ðgô ðgô 
ðgô ðgô ðgô  	ð!gô" ð#gô$ ð%gð& 
ñ'gr   c                 ó¤	  € VP                  4       V,          pVP                  P                  4       pV R9   Ed	   VP                  V4      P                  VRV,
          R7       VP                  V	4      P	                  VVRV	,
          R7       RWŽ,          ,
          p\
        P                  ! RWž,          ,
          4      pV) V,          V,          pVR8”  d   VP                  RWý,          ,
          4       W4P                  4       VV,          ,           ,          p\        VWVV4      pVP                  VVV,          R7       EMsV R8X  Ed:   V^ ,          pV^,          pTpVP                  V4      P                  VRV,
          R7       VP                  V
4      P                  VRV
,
          R7       VP                  V	4      P	                  VVRV	,
          R7       RWŽ,          ,
          p\
        P                  ! RWž,          ,
          4      pVR8”  d   VP                  RWý,          ,
          4       VV,          VV,          ,           pVP                  4       V,          V,           pVP                  VV,          V) R7       EM2V R9   d~   VR8”  d   VP                  VVR7      MTpV^8X  d   VP                  V4       M VP                  V4      P                  V4       \        W5Wg4      pVP                  W?) V,          R7       EM®V R8X  dœ   VR8”  d   VP                  RWý,          ,
          4       VP                  V4      P                  VRV,
          R7      pVP                  VP                  4       V) R7       VP                  V	4      P                  VRV	,
          R7       EMV R8X  dŽ   VR8”  d   VP                  VVR7      MTpVP                  V4      P	                  VVRV,
          R7       VVP                  4       V,           ,          p\        VWVV4      pVP                  VV) V,          R7       MxV R8X  dd   VR8”  d   VP                  VVR7      MTpVP	                  VVRR7       VVP                  4       V,           ,          pVP                  VV) R7       M\        R	V  24      hVP                  P                  V4       R
# )Úadamrˆ   ©r—   ©rN   r‡   ÚademamixÚlionÚrmspropÚadagradzUnsupported optimizer for CPU: N©r¡   Úlamb©ÚmomentumÚlars)r5   ÚdataÚmul_Úadd_Úaddcmul_ÚmathÚsqrtr�   ÚaddÚcopy_ÚmulÚsignrj   )r�   r�   r‘   r’   r“   rƒ   r„   r…   r”   r•   r–   r—   r˜   r™   rš   r›   rœ   r�   Úg_floatÚp_floatÚcorrection1Úcorrection2Ú	step_sizer‚   Úupdate_scaleÚm1Úm2ÚnuÚmixed_momentumÚadaptive_termÚg_wds   &&&&&&&&&&&&&&&&&&             r   Ú_optimizer_update_32bit_cpurÃ   X  sæ  € ð* �g‰g‹i˜+Õ%€GØ�f‰f�l‰l‹n€GàÐ)Õ)à�‰�EÓ×Ñ ¨s°U­{ÐÔ;Ø�‰�EÓ×#Ñ# G¨W¸CÀ%½KÐ#ÔHà˜E�KÕ'ˆÜ—i’i  e¥kÕ 1Ó2ˆØ�C˜+Õ%¨Õ3ˆ	à˜#ÔØ�L‰L˜˜rÕ0Õ0Ô1àŸ;™;›=¨3°Õ+<Õ<Õ=ˆä5°f¸iÐT^Ó_ˆØ�‰�V 9¨|Õ#;ˆÖ<à	˜:Õ	%à�A�YˆØ�A�YˆØˆà
�‰�‹×Ñ˜G¨3°­;ÐÔ7Ø
�‰�‹×Ñ˜G¨3°­;ÐÔ7Ø
�‰�‹×Ñ ¨¸¸e½ÐÔDà˜E�KÕ'ˆÜ—i’i  e¥kÕ 1Ó2ˆà˜#ÔØ�L‰L˜˜rÕ0Õ0Ô1à˜{Õ*¨u°r­zÕ:ˆØŸ™› [Õ0°CÕ7ˆØ�‰�^ mÕ3¸B¸3ˆÖ?à	Ð/Ô	/à;GÈ#Ô;Mˆw�{‰{˜7¨,ˆ{Ô7ÐSZˆà�1Œ9Ø�L‰L˜Õà�K‰K˜Ó×#Ñ# DÔ)ä5°fÈÓ_ˆØ�‰�V 3¨Õ#5ˆÖ6à	˜6Ô	!à˜#ÔØ�L‰L˜˜rÕ0Õ0Ô1à—‘˜EÓ"×&Ñ& w°c¸EµkÐ&ÓBˆØ�‰�V—[‘[“]¨2¨#ˆÔ.à�‰�EÓ×Ñ ¨s°U­{ÐÖ;à	˜9Ô	$à;GÈ#Ô;Mˆw�{‰{˜7¨,ˆ{Ô7ÐSZˆØ�‰�EÓ×#Ñ# D¨$°c¸EµkÐ#ÔBà˜Ÿ™›¨Õ,Õ-ˆÜ5°f¸iÐT^Ó_ˆØ�‰�V B 3¨Õ#5ˆÕ6à	˜9Ô	$à;GÈ#Ô;Mˆw�{‰{˜7¨,ˆ{Ô7ÐSZˆØ�‰˜˜d¨#ˆÔ.à˜Ÿ™›¨Õ,Õ-ˆØ�‰�V B 3ˆÕ'ô Ð:¸>Ð:JÐKÓLÐLð ‡F�F‡L�L�Ör   z$bitsandbytes::optimizer_update_32bitc          
      ó¤   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\        R\         P                  /# )r   ÚA_uint8r@   r    r!   r"   ©r   r   r#   )r   s   "r   r   r   Ç  sK   € ÷ hñ hÜ�\‰\ðhÜ#(§<¡<ðhÜ7<·|±|ðhÜPSðhä
‡\�\ñhr   c                 ót   € \         P                  P                  P                  WW#\         P                  4      # ©N)r   ÚopsÚbitsandbytesÚdequantize_blockwiser,   )rÅ   r@   r    r!   s   &&&&r   Ú_dequant_blockwise_fp32_directrÌ   Æ  s*   € ô �9‰9×!Ñ!×6Ñ6°wÈÔY^×YfÑYfÓgÐgr   c                ó¨   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\         P                  R\        RR/# )r   ÚA_fp32r    Ú
absmax_outÚ	out_uint8r!   r"   NrÆ   )r   s   "r   r   r   Í  sN   € ÷ ñ Ü�L‰LðÜ %§¡ðÜ:?¿,¹,ðÜSX×S_ÑS_ðÜloðà	ñr   c                 ó¢   € \         P                  P                  P                  WV4      w  rVVP	                  V4       VP	                  V4       R # rÈ   )r   rÉ   rÊ   Úquantize_blockwiser´   )rÎ   r    rÏ   rÐ   r!   rA   r@   s   &&&&&  r   Ú_quant_blockwise_fp32_directrÓ   Í  s<   € ô —)‘)×(Ñ(×;Ñ;¸FÈ)ÓT�K€CØ‡O�O�CÔØ×Ñ�VÖr   c          (      óâ  € V ^8„  d   QhR\         R\        P                  R\        P                  R\        P                  R\        \        P                  ,          R\        R\        R\        R	\        R
\        R\
        R\        R\        P                  R\        \        P                  ,          R\        P                  R\        \        P                  ,          R\        R\        R\        RR/# )r   r�   r�   r‘   r’   r“   r”   r•   r–   r—   r˜   rš   r›   Úqmap1Úqmap2Úabsmax1Úabsmax2r™   rœ   r�   r"   Nrž   )r   s   "r   r   r   Õ  s+  € ÷ lYñ lYÜðlYä‡|�|ðlYô ‡|�|ðlYô �L‰Lð	lYô
 ”U—\‘\Õ"ðlYô ðlYô ðlYô ðlYô ðlYô 
ðlYô ðlYô 	ðlYô �<‰<ðlYô ”E—L‘LÕ!ðlYô �\‰\ðlYô  ”e—l‘lÕ#ð!lYô" ð#lYô$ ð%lYô& ð'lYð( 
ñ)lYr   c                 óV  € R pV R8X  dc   VP                   ^8X  dR   \        V^ ,          V^ ,          VV4      p\        V^,          V^,          VV4      p\        P                  ! VV.4      pM\        W>VV4      pRpVe   Ve   Ve   \        WOVV4      pVP	                  4       V,          pVP
                  P	                  4       pV R9   dð   VP                  V4      P                  VRV,
          R7       VP                  V4      P                  VVRV,
          R7       RWZ,          ,
          p\        P                  ! RWj,          ,
          4      pVP                  4       V,          P                  V	4      pVR8”  d    VP                  RVV,          ,
          4       VP                  VVV) V,          R7       EMTV R8X  EdQ   V^ ,          V^,          ppTpVP                  V4      P                  VRV,
          R7       VP                  V4      P                  VRV,
          R7       VP                  V4      P                  VVRV,
          R7       RWZ,          ,
          p\        P                  ! RWj,          ,
          4      pVV,          VV,          ,           VP                  4       V,          V	,           ,          p VR8”  d    VP                  RVV,          ,
          4       VP                  V V) R7       \        P                  ! VV.4      pEMüV R9   dc   VP                  VVR7       V
^8X  d   VP                  V4       M VP                  V4      P                  V4       VP                  VV) R7       EM“V R8X  d§   VR8”  d    VP                  RVV,          ,
          4       \        P                  ! VP                  V4      VP                  RV,
          4      ,           4      p!VP                  V!V) R7       VP                  V4      P                  VRV,
          R7       MæV R8X  dq   VP                  VVR7       VP                  V4      P                  VVRV,
          R7       VP                  VVP                  4       P                  V	4      V) R7       MoV R	8X  d[   VP                  VVR7       VP                  VVRR7       VP                  VVP                  4       P                  V	4      V) R7       M\        R
V  24      hVP
                  P                  V4       V R8X  dW   \!        V^ ,          WÎ^ ,          V^ ,          V4       \!        V^,          WÎ^,          V^,          V4       \!        VWßVV4       R# \!        VWÎVV4       Ve   \!        VWßVV4       R# R# )é   r¤   Nrˆ   r¢   r£   r‡   r¥   r¦   r§   z%Unsupported optimizer for CPU 8-bit: r¨   rª   )ÚndimrÌ   r   Ústackr5   r­   r®   r¯   r°   r±   r²   Úaddcdiv_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!   Ús1_1Ús1_2Ústate1_fp32Ústate2_fp32ÚgradÚp_fp32r¹   rº   ÚdenomÚm1_fp32Úm2_fp32Únu_fp32r‚   Ú
update_dirs"   &&&&&&&&&&&&&&&&&&&               r   Ú$_optimizer_update_8bit_blockwise_cpuré   Õ  s²  € ð* €Ið ˜Ô#¨¯©¸Ô(9Ü-¨f°Q­i¸À½ÀUÈIÓVˆÜ-¨f°Q­i¸À½ÀUÈIÓVˆÜ—k’k 4¨ ,Ó/‰ä4°VÀeÈYÓWˆà€KØÒ˜eÒ/°GÒ4GÜ4°VÀeÈYÓWˆà�7‰7‹9�{Õ"€DØ�V‰V�\‰\‹^€FàÐ)Ô)Ø×Ñ˜Ó×$Ñ$ T°°uµÐ$Ô=Ø×Ñ˜Ó×(Ñ(¨¨t¸3À½;Ð(ÔGà˜E�KÕ'ˆÜ—i’i  e¥kÕ 1Ó2ˆà×!Ñ!Ó# kÕ1×7Ñ7¸Ó<ˆØ˜#ÔØ�K‰K˜˜b <Õ/Õ/Ô0Ø�‰˜ U°2°#¸Õ2CˆÖDà	˜:Õ	%Ø& q�>¨;°q­>�ˆØˆà�‰�UÓ× Ñ  ¨S°5­[Ð Ô9Ø�‰�UÓ× Ñ  ¨S°5­[Ð Ô9Ø�‰�UÓ×$Ñ$ T¨4°s¸Uµ{Ð$ÔCà˜E�KÕ'ˆÜ—i’i  e¥kÕ 1Ó2ˆà˜KÕ'¨%°'­/Õ9¸g¿l¹l»nÈ{Õ>ZÐ]`Õ>`ÕaˆØ˜#ÔØ�K‰K˜˜b <Õ/Õ/Ô0Ø�‰�F 2 #ˆÔ&ä—k’k 7¨GÐ"4Ó5Šà	Ð/Ô	/Ø�	‰	�& ˆ	Ô-Ø�1Œ9Ø×Ñ˜dÕ#à×Ñ˜UÓ#×(Ñ(¨Ô.Ø�‰�K¨ sˆÖ+à	˜6Ô	!Ø˜#ÔØ�K‰K˜˜b <Õ/Õ/Ô0ä—Z’Z §¡°Ó 6¸¿¹À#ÈÅ+Ó9NÕ NÓOˆ
Ø�‰�J r cˆÔ*à×Ñ˜Ó×$Ñ$ T°°uµÐ$Õ=à	˜9Ô	$Ø�	‰	�& ˆ	Ô-Ø×Ñ˜Ó×(Ñ(¨¨t¸3À½;Ð(ÔGØ�‰˜˜k×.Ñ.Ó0×5Ñ5°cÓ:À2À#ˆÕFà	˜9Ô	$Ø�	‰	�& ˆ	Ô-Ø×Ñ˜T 4¨sÐÔ3Ø�‰˜˜k×.Ñ.Ó0×5Ñ5°cÓ:À2À#ˆÕFô Ð@ÀÐ@PÐQÓRÐRà‡F�F‡L�L�Ôð ˜Ô#Ü$ [°¥^°UÀA½JÈÈqÍ	ÐS\Ô]Ü$ [°¥^°UÀA½JÈÈqÍ	ÐS\Ô]Ü$ [°%À&È)ÖTä$ [°%À&È)ÔTØÒ"Ü(¨°eÀfÈiÖXñ #r   z-bitsandbytes::optimizer_update_8bit_blockwise)r   é   )F))Úcollections.abcr   Úctypesr/   Úloggingr±   r   Útypingr   r   Úbitsandbytes.functionalr   r   Ú_opsr   Ú
cextensionr	   r
   Ú	getLoggerÚ__name__ÚloggerÚbackendsr   Úget_cpu_capabilityr`   Ú__version__r   Ú
isinstancers   Úkernelsrn   Úgemm_4bit_forwardÚ	ExceptionÚexcÚwarningr�   Úno_gradrÃ   rÌ   rÓ   ré   © r   r   Ú<module>r      sØ  ðÝ $Û Û Û Ý Ý ã ç ;å #ß ?à	×	Ò	˜8Ó	$€à�n‰n× Ñ ×3Ñ3Ó5¸ÑA€ð 	×Ñ˜Ô§;áÐ7¸Ó?ô-ó @ð-ñ �#Ð7×8Ò8áÐ7¸Ó?ô5ó @ð5ñn Ð9¸5ÓAô*ó Bð*ñX Ð4°eÓ<ôdó =ðdñL ×ÒØ#'Ð ð	Ý*á'1Ø=Àqô(çÑð %ñ 
Ð2°EÓ	:ô?	0ó 
;ð?	0õJð" ‡‚ƒögó ðgñT Ð6¸Ô >Ð?ZÔ [ð ‡‚ƒôhó ðhõ÷lYñ^ Ð?ÀÔ GÐHlÖ møðU
 ô 	Ø'+Ð$Ø�N‰Nð `Ø÷ñ ûð	ús   Ã2F ÆF-ÆF(Æ(F-