+
    TV-jF^  ã                   óB  € ^ RI t ^ RIHt ^ RIHtHtHt ^ RIHt	 ^ RI
Ht ^ RIHtHtHt ^RIHt ^RIHtHtHt ^RIHtHt ^RIHt ^R	IHt ^R
IHt ] ! R R]4      4       t ! R R]P@                  4      t! ! R R]P@                  4      t" ! R R]P@                  4      t#]	PH                  R 4       t% ! R R]P@                  4      t& ! R R]P@                  4      t' ! R R]P@                  4      t( ! R R]P@                  4      t) ! R R]P@                  4      t*R# )é    N)Ú	dataclass)ÚAnyÚDictÚOptional)Úshard_inplaceÚshard_linearÚsum_gradients)Úswiglu)ÚBaseModelArgsÚcreate_attention_maskÚscaled_dot_product_attention)Ú	CacheListÚKVCache)ÚMultiLinear)Úinitialize_rope)Ú	SwitchGLUc                   ó¬   a € ] tR t^t o RtRtRt^€t^@tRt	Rt
Rt^t^ t^ tRtRtRtR	tR
t^@t^€t^€tRtRtRt^t^t^t^t^ tRtRt Rt!Rt"Rt#V 3R lt$Rt%V t&R# )Ú	ModelArgsÚdeepseek_v32i � i   i   i +  i  Nç      ð?i   i   Únoaux_tcÚsigmoidTç�íµ ÷Æ°>g     ˆÃ@Fc                óº  <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R	&   S[;R
&   S[;R&   S[S[,          ;R&   S[S[,          ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[ ;R&   S[ ;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R&   S[;R &   # )!é   Ú
model_typeÚ
vocab_sizeÚhidden_sizeÚindex_head_dimÚindex_n_headsÚ
index_topkÚintermediate_sizeÚmoe_intermediate_sizeÚnum_hidden_layersÚnum_attention_headsÚnum_key_value_headsÚn_shared_expertsÚn_routed_expertsÚrouted_scaling_factorÚkv_lora_rankÚq_lora_rankÚqk_rope_head_dimÚ
v_head_dimÚqk_nope_head_dimÚtopk_methodÚscoring_funcÚnorm_topk_probÚn_groupÚ
topk_groupÚnum_experts_per_tokÚmoe_layer_freqÚfirst_k_dense_replaceÚmax_position_embeddingsÚrms_norm_epsÚ
rope_thetaÚrope_scalingÚattention_bias)ÚstrÚintr   ÚfloatÚboolr   )ÚformatÚ__classdict__s   "€Úk/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/deepseek_v32.pyÚ__annotate__ÚModelArgs.__annotate__   s¯  ø‡ ‚ áÑ$ñ ñ Ññ ñ Ññ	 ñ
 Ññ ñ Ññ ñ Ññ ñ Ñ"ñ ñ Ñ%ñ ñ Ññ ñ Ñ!ñ ñ Ñ!ñ ñ ™s•mÑ*ñ ñ ™s•mÑ*ñ ñ !Ñ&ñ ñ  Ññ! ñ" Ññ# ñ$ Ññ% ñ& Ññ' ñ( Ññ) ñ* Ñ!ñ+ ñ, Ñ!ñ- ñ. Ññ/ ñ0 Ññ1 ñ2 Ññ3 ñ4 Ñ ñ5 ñ6 Ññ7 ñ8 Ñ"ñ9 ñ: !Ñ'ñ; ñ< Ññ= ñ> Ññ? ñ@ ÑñA ñB Ñ òC ó    © )'Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)rA   s   @rB   r   r      sº   ø‡ € à$€JØ€JØ€KØ€NØ€MØ€JØ"ÐØ!%ÐØÐØ!ÐØ!ÐØ&*ÐØ&*ÐØ#&ÐØ€LØ€KØÐØ€JØÐØ!€KØ!€LØ€NØ€GØ€JØ ÐØ€NØ!"ÐØ#'ÐØ€LØ€JØ€LØ €N÷C ƒ rE   r   c                   óT   a a€ ] tR t^7t oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚIndexerc                ó    <€ V ^8„  d   QhRS[ /# )r   Úargs©r   )r@   rA   s   "€rB   rC   ÚIndexer.__annotate__8   s   ø€ ÷ 
ñ 
™Yñ 
rE   c                ó2  <€ \         SV `  4        VP                  V n        VP                  V n        VP                  V n        VP                  V n	        VP                  V n
        VP                  V n        \        P                  ! V P                  V P
                  V P                  ,          R R7      V n        \        P                  ! V P                  V P                  R R7      V n        \        P                   ! V P                  4      V n        \        P                  ! V P                  V P
                  R R7      V n        V P                  R,          V n        \)        VP                  VP*                  RVP,                  VP.                  R7      V n        R# )F©ÚbiasT©ÚdimsÚbaseÚtraditionalr7   Úscaling_configNç      à¿)ÚsuperÚ__init__r   Údimr    Ún_headsr   Úhead_dimr,   Úrope_head_dimr!   r+   ÚnnÚLinearÚwq_bÚwkÚ	LayerNormÚk_normÚweights_projÚsoftmax_scaler   r9   r7   r:   Úrope)ÚselfrQ   Ú	__class__s   &&€rB   r^   ÚIndexer.__init__8   s  ø€ Ü‰ÑÔØ×#Ñ#ˆŒØ×)Ñ)ˆŒØ×+Ñ+ˆŒØ!×2Ñ2ˆÔØŸ/™/ˆŒØ×+Ñ+ˆÔÜ—I’IØ×Ñ˜dŸl™l¨T¯]©]Õ:Àô
ˆŒ	ô —)’)˜DŸH™H d§m¡m¸%Ô@ˆŒÜ—l’l 4§=¡=Ó1ˆŒÜŸIšI d§h¡h°·±À5ÔIˆÔØ!Ÿ]™]¨DÕ0ˆÔÜ#Ø×&Ñ&Ø—‘ØØ$(×$@Ñ$@Ø×,Ñ,ô
ˆŽ	rE   c          	      óŽ   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[S[ P                  ,          RS[S[,          /# )r   ÚxÚqrÚmaskÚcache©ÚmxÚarrayr   r   )r@   rA   s   "€rB   rC   rS   O   sH   ø€ ÷ "
ñ "
á�8‰8ð"
ñ �H‰Hð"
ñ ‘r—x‘xÕ ð	"
ñ
 ™�}ñ"
rE   c           	     óD  € VP                   w  rVpV P                  V4      pVP                  WVV P                  V P                  4      P                  ^^4      pV P                  V4      p	V P                  V	4      p	\        P                  ! W•^W`P                  34      p	Ve   VP                  M^ p
V P                  WŠR7      pV P                  WšR7      p	Ve-   VP                  V	\        P                  ! V^V^ .4      4      w  r—V	P                   ^,          V P                  8:  d   R# W‰P                  RR	4      ,          p\        P                  ! V^ 4      pV P                  V4      V P                  R
,          V P                   ,          ,          pVP                  RR	4      R,          pW¼,          pVP#                  ^RR7      pVe"   \        P$                  ! W;\'        R4      ) 4      p\        P(                  ! W°P                  ) RR7      RV P                  ) R13,          # )é   N)Úoffset.T©ÚaxisÚkeepdimsÚinf©Úkthr{   éÿÿÿÿéþÿÿÿr\   ©.N)Úshapere   Úreshaper`   ra   Úswapaxesrf   rh   ru   ry   rk   Úupdate_and_fetchÚzerosr!   Úmaximumri   rj   ÚsumÚwherer>   Úargpartition)rl   rp   rq   rr   rs   ÚbÚsÚ_ÚqÚkry   ÚscoresÚweightss   &&&&&        rB   Ú__call__ÚIndexer.__call__O   s´  € ð —'‘'‰ˆˆaØ�I‰I�b‹MˆØ�I‰I�a˜DŸL™L¨$¯-©-Ó8×AÑAÀ!ÀQÓGˆØ�G‰G�A‹JˆØ�K‰K˜‹NˆÜ�JŠJ�q˜a §M¡MÐ2Ó3ˆà!&Ò!2�—’¸ˆà�I‰I�aˆIÓ'ˆØ�I‰I�aˆIÓ'ˆàÒØ×)Ñ)¨!¬R¯XªX°q¸!¸QÀ°lÓ-CÓD‰DˆAØ�7‰7�1�:˜Ÿ™Ô(ÙØ—Z‘Z  BÓ'Õ'ˆÜ—’˜F AÓ&ˆØ×#Ñ# AÓ&¨$¯,©,¸Õ*<¸t×?QÑ?QÕ*QÕRˆØ×"Ñ" 2 rÓ*¨9Õ5ˆØÕ!ˆØ—‘ ¨T�Ó2ˆØÒÜ—X’X˜d¬U°5«\¨MÓ:ˆFÜ�Š˜v¯O©OÐ+;À"ÔEØ�$—/‘/Ð!Ñ#Ð#õ
ð 	
rE   )r_   ra   r!   rh   r`   r+   rk   rb   rj   ri   rf   re   ©N©	rG   rH   rI   rJ   r^   r“   rL   rM   Ú__classcell__©rm   rA   s   @@rB   rO   rO   7   s   ù‡ € ÷
ó 
÷."
÷ "
ò "
rE   rO   c                   óT   a a€ ] tR t^tt oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚDeepseekV32Attentionc                ó    <€ V ^8„  d   QhRS[ /# ©r   ÚconfigrR   )r@   rA   s   "€rB   rC   Ú!DeepseekV32Attention.__annotate__u   s   ø€ ÷ :
ñ :
™yñ :
rE   c                óz  <€ \         SV `  4        Wn        VP                  V n        VP                  V n        VP                  V n        VP                  V n        VP                  V n        VP                  V n	        VP                  V n
        VP                  V n        VP                  V n        VP                  VP                  ,           V n        V P                  R,          V n        \        P                   ! V P                  V P                  VP"                  R7      V n        \        P&                  ! V P                  RR7      V n        \        P                   ! V P                  V P
                  V P                  ,          RR7      V n        \        P                   ! V P                  V P                  V P                  ,           VP"                  R7      V n        \        P&                  ! V P                  RR7      V n        \1        V P                  V P                  V P
                  4      V n        \1        V P                  V P                  V P
                  4      V n        \        P                   ! V P
                  V P                  ,          V P                  VP"                  R7      V n        V P                  P8                  e�   V P                  P8                  P;                  R^ 4      pV'       do   V P                  P8                  R,          pV^8”  dK   RV,          \<        P>                  ! V4      ,          R	,           pV P                  V,          V,          V n        \A        V4      V n!        \E        V P                  V P                  R
V P                  V P                  P8                  R7      V n#        R# )g      à?rU   r   ©ÚepsFNÚmscale_all_dimÚfactorgš™™™™™¹?r   TrW   r\   )$r]   r^   r�   r   r%   Ú	num_headsr7   r9   r+   r,   r*   r-   r.   Ú
q_head_dimÚscalerc   rd   r;   Úq_a_projÚRMSNormÚq_a_layernormÚq_b_projÚkv_a_proj_with_mqaÚkv_a_layernormr   Úembed_qÚunembed_outÚo_projr:   ÚgetÚmathÚlogrO   Úindexerr   rk   )rl   r�   r¢   Úscaling_factorr�   rm   s   &&   €rB   r^   ÚDeepseekV32Attention.__init__u   s²  ø€ Ü‰ÑÔØŒØ!×-Ñ-ˆÔØ×3Ñ3ˆŒØ'-×'EÑ'EˆÔ$Ø ×+Ñ+ˆŒØ!×-Ñ-ˆÔØ &× 7Ñ 7ˆÔØ"×/Ñ/ˆÔØ ×+Ñ+ˆŒØ &× 7Ñ 7ˆÔØ ×1Ñ1°F×4KÑ4KÕKˆŒà—_‘_ dÕ*ˆŒ
äŸ	š	Ø×Ñ˜d×.Ñ.°V×5JÑ5Jô
ˆŒô  ŸZšZ¨×(8Ñ(8¸dÔCˆÔÜŸ	š	Ø×Ñ˜dŸn™n¨t¯©Õ>ÀUô
ˆŒô #%§)¢)Ø×ÑØ×Ñ × 5Ñ 5Õ5Ø×&Ñ&ô#
ˆÔô
 !Ÿjšj¨×):Ñ):ÀÔEˆÔÜ"Ø×!Ñ! 4×#4Ñ#4°d·n±nó
ˆŒô 'Ø×Ñ˜tŸ™°·±ó
ˆÔô —i’iØ�N‰N˜TŸ_™_Õ,Ø×ÑØ×&Ñ&ô
ˆŒð �;‰;×#Ñ#Ò/Ø!Ÿ[™[×5Ñ5×9Ñ9Ð:JÈAÓNˆNßØ!%§¡×!9Ñ!9¸(Õ!C�Ø! AÔ%Ø˜nÕ,¬t¯xªx¸Ó/GÕGÈ#ÕM�AØ!%§¡¨a¥°!Õ!3�D”Jä˜v“ˆŒÜ#Ø×&Ñ&Ø—‘ØØ$(×$@Ñ$@ØŸ;™;×3Ñ3ô
ˆŽ	rE   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# ©r   rp   rr   rs   Úreturnrt   )r@   rA   s   "€rB   rC   rž   ±   sN   ø€ ÷ R#ñ R#á�8‰8ðR#ñ ‘r—x‘xÕ ðR#ñ ™�}ð	R#ñ
 
�‰ñR#rE   c           	     ó\	  € VP                   w  rEpV P                  V P                  V4      4      pV P                  V4      pVP	                  WEV P
                  V P                  4      P                  ^ ^^^4      p\        P                  ! W€P                  .R	R7      w  ršV P                  V4      p\        P                  ! W°P                  .R	R7      w  r¼VP	                  WE^V P                  4      P                  ^ ^^^4      pV P                  V4      pVe   V^ ,          P                  M^ pV P!                  W®4      p
V P!                  WÎ4      p\        P"                  ! V^R7      pVe   V^ ,          P%                  WÜ4      w  rÜM
R.^,          pV P'                  WW#^,          R7      pVEed   V^8X  dÏ   VR
,          p\        P(                  ! V\        P*                  ! VVP                   RR	 VP                   R	,          3,           4      ^R7      p\        P(                  ! V\        P*                  ! VVP                   RR	 VP                   R	,          3,           4      ^R7      pVe   \        P(                  ! W/R	R7      pMŽ\-        VP                   4      pVP                   ^,          VR	&   \        P.                  ! V\        P0                  R7      p\        P2                  ! VV\        P4                  ! R4      R	R7      pVe
   VV,          pTpVed   V^ ,          eY   \        P6                  ! V^ ,          P8                  V^,          P8                  V^,          P:                  34      V^ ,          n        W P<                  ,          VP?                  R	R4      ,          pVe`   \        P@                  ! VV\        P4                  ! \        PB                  ! VPD                  4      PF                  VPD                  4      4      pV^8X  d   V PI                  V	4      p	T;ppM$V PI                  VRR7      pV PK                  V4      p\M        V	VVW0P<                  VR7      pV^8X  d   V PK                  V4      pVP                  ^ ^^^4      P	                  WER	4      pV PO                  V4      # )r   ©r{   N)rs   ©ÚdtypeTF)Ú	transpose)rs   r¦   rr   r€   )ºNNNr¾   r   r¾   Nr�   )(rƒ   r©   r§   rª   r„   r¤   r¥   r½   ru   Úsplitr.   r«   r*   r,   r¬   ry   rk   Úexpand_dimsr†   r³   Útake_along_axisÚbroadcast_toÚlistr‡   Úbool_Úput_along_axisrv   ÚdependsÚkeysÚvaluesr¦   r…   rŠ   Úfinfor¼   Úminr­   r®   r   r¯   )rl   rp   rr   rs   ÚBÚLÚDrq   r�   Úq_nopeÚq_peÚcompressed_kvÚk_peÚ	kv_latentry   Útopk_indicesÚidxrƒ   Úsparse_maskÚ	pe_scoresr�   ÚvÚoutputs   &&&&                   rB   r“   ÚDeepseekV32Attention.__call__±   sÊ  € ð —'‘'‰ˆˆaà×Ñ §¡¨aÓ 0Ó1ˆØ�M‰M˜"Óˆà�I‰I�a˜DŸN™N¨D¯O©OÓ<×FÑFÀqÈ!ÈQÐPQÓRˆÜ—x’x ×$9Ñ$9Ð#:ÀÔD‰ˆØ×/Ñ/°Ó2ˆÜ Ÿhšh }×7HÑ7HÐ6IÐPRÔSÑˆØ�|‰|˜A ! T×%:Ñ%:Ó;×EÑEÀaÈÈAÈqÓQˆØ×'Ñ'¨Ó6ˆ	à$)Ò$5��q•—’¸1ˆØ�y‰y˜Ó&ˆØ�y‰y˜Ó&ˆä—N’N 9°1Ô5ˆ	àÒØ# A�h×7Ñ7¸	ÓH‰OˆI�tà�F˜Q•JˆEà—|‘| A¨4¸Qµx�|Ó@ˆØÓ#Ø�AŒvØ"Ð#3Õ4�Ü×.Ò.ØÜ—O’O C¨¯©°3°B¨¸9¿?¹?È2Õ;NÐ:PÕ)PÓQØô�	ô
 ×)Ò)ØÜ—O’O C¨¯©°3°B¨¸4¿:¹:Àb½>Ð:KÕ)KÓLØô�ð
 Ò#Ü×-Ò-¨dÀrÔJ�Døä˜\×/Ñ/Ó0�Ø%ŸO™O¨AÕ.��b‘	Ü Ÿhšh u´B·H±HÔ=�Ü ×/Ò/Ø ¬r¯xªx¸«~ÀBô�ð Ò#Ø"-°Õ"4�KØ"�ð Ò  q¥Ò!5ÜŸJšJ u¨Q¥x§}¡}°u¸Qµx·}±}ÀeÈAÅhÇoÁoÐ6VÓWˆE�!�HŒMàŸJ™JÕ&¨$¯-©-¸¸BÓ*?Õ?ˆ	ØÒÜŸšØØÜ—’œŸš )§/¡/Ó2×6Ñ6¸	¿¹ÓHóˆIð �Œ6Ø—\‘\ &Ó)ˆFØÐˆA‘à—‘˜Y°%�Ó8ˆAØ× Ñ  Ó+ˆAä-Ø�A�q ¯Z©Z¸iô
ˆð �Œ6Ø×%Ñ% fÓ-ˆFà×!Ñ! ! Q¨¨1Ó-×5Ñ5°a¸BÓ?ˆØ�{‰{˜6Ó"Ð"rE   )r�   r­   r   r³   r¬   r«   r*   r7   r¤   r¯   r©   r§   rª   r¥   r+   r.   r,   rk   r9   r¦   r®   r-   ©NNr–   r˜   s   @@rB   rš   rš   t   s"   ù‡ € ÷:
ó :
÷xR#÷ R#ò R#rE   rš   c                   óH   a a€ ] tR tRt oRV3R lV 3R llltR tRtVtV ;t# )ÚDeepseekV32MLPi  c                ó,   <€ V ^8„  d   QhRS[ RS[RS[/# )r   r�   r   r"   ©r   r=   )r@   rA   s   "€rB   rC   ÚDeepseekV32MLP.__annotate__  s*   ø€ ÷ Yñ YÙðYÙ.1ðYÙMPñYrE   c                ó¸  <€ \         SV `  4        Wn        Vf   VP                  MTV n        Vf   VP                  MTV n        \
        P                  ! V P                  V P                  RR7      V n        \
        P                  ! V P                  V P                  RR7      V n        \
        P                  ! V P                  V P                  RR7      V n	        R # )NFrU   )
r]   r^   r�   r   r"   rc   rd   Ú	gate_projÚup_projÚ	down_proj)rl   r�   r   r"   rm   s   &&&&€rB   r^   ÚDeepseekV32MLP.__init__  s¨   ø€ ô 	‰ÑÔØŒØ1<Ò1D˜6×-Ò-È+ˆÔà(9Ò(AˆF×$Ò$ÐGXð 	Ôô Ÿš 4×#3Ñ#3°T×5KÑ5KÐRWÔXˆŒÜ—y’y ×!1Ñ!1°4×3IÑ3IÐPUÔVˆŒÜŸš 4×#9Ñ#9¸4×;KÑ;KÐRWÔXˆŽrE   c                óx   € V P                  \        V P                  V4      V P                  V4      4      4      pV# r•   )rã   r
   rá   râ   )rl   rp   rã   s   && rB   r“   ÚDeepseekV32MLP.__call__  s.   € Ø—N‘N¤6¨$¯.©.¸Ó*;¸T¿\¹\È!»_Ó#MÓNˆ	ØÐrE   )r�   rã   rá   r   r"   râ   rÚ   r–   r˜   s   @@rB   rÜ   rÜ     s   ù‡ € ÷Yõ Y÷ò rE   rÜ   c                 ó$  € \         P                  ! V P                  \         P                  4      4      pTpWq,           pV^8”  dÓ   \         P                  ! VR
VR
3R7      p\         P
                  ! V^R
R7      P                  R
RR7      p	W4,
          p
\         P                  ! Wš^,
          RR7      RRV
1R3,          p\         P                  ! V\         P                  ! V4      \         P                  ! R	4      RR7      p\         P                  ! VRR
4      pTp
\         P                  ! V) V
^,
          R
R7      RRV
13,          p\         P                  ! WŒR
R7      pV^8”  d$   V'       d   VP                  R
RR7      pW},          pWu,          pWÇ3# )rx   )r{   rƒ   rº   Trz   r~   .Nr¾   g        r€   r�   )ru   r   ÚastypeÚfloat32Ú	unflattenÚtopkr‰   r‹   rÅ   Ústop_gradientrv   ÚflattenrÁ   )ÚgatesÚe_score_correction_biasÚtop_kr2   r3   r)   r1   r‘   Úorig_scoresÚgroup_scoresr�   Ú	group_idxÚindsÚdenominators   &&&&&&&       rB   Úgroup_expert_selectrö     sE  € ô �ZŠZ˜Ÿ™¤R§Z¡ZÓ0Ó1€FØ€KØÕ-€FØ�„{Ü—’˜f¨2°g¸r°]ÔCˆÜ—w’w˜v q¨rÔ2×6Ñ6¸BÈÐ6ÓNˆØÕ ˆÜ—O’O L¸!µeÀ"ÔEÀcÈ2ÈAÈ2ÈqÀjÕQˆ	Ü×"Ò"Ø”B×$Ò$ YÓ/´·²¸#³ÀRô
ˆô —’˜F B¨Ó+ˆà€AÜ�?Š?˜F˜7¨¨A­°BÔ7¸¸R¸a¸R¸Õ@€DÜ×Ò ¸Ô;€FØˆq„y—^Ø—j‘j b°4�jÓ8ˆØÕ%ˆØÕ+€Fàˆ<ÐrE   c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚMoEGatei=  c                ó    <€ V ^8„  d   QhRS[ /# rœ   rR   )r@   rA   s   "€rB   rC   ÚMoEGate.__annotate__>  s   ø€ ÷ Lñ L™yñ LrE   c                óÚ  <€ \         SV `  4        Wn        VP                  V n        VP
                  V n        VP                  V n        VP                  V n        VP                  V n        VP                  V n	        \        P                  ! V P                  VP                  34      V n        \        P                  ! V P                  34      V n        VP                  R 8X  g   Q R4       hR# )r   zUnsupported topk method.N)r]   r^   r�   r4   rð   r1   r(   r)   r2   r3   ru   r‡   r   Úweightrï   r/   ©rl   r�   rm   s   &&€rB   r^   ÚMoEGate.__init__>  s·   ø€ Ü‰ÑÔØŒØ×/Ñ/ˆŒ
Ø$×3Ñ3ˆÔØ &× 7Ñ 7ˆÔØ%+×%AÑ%AˆÔ"Ø—~‘~ˆŒØ ×+Ñ+ˆŒÜ—h’h × 5Ñ 5°v×7IÑ7IÐJÓKˆŒÜ')§x¢x°×1FÑ1FÐ0HÓ'IˆÔ$Ø×!Ñ! ZÔ/ÐKÐ1KÓKÒ/rE   c           	     óÐ   € \        WP                  P                  ,          V P                  V P                  V P
                  V P                  V P                  V P                  4      # r•   )	rö   rü   ÚTrï   rð   r2   r3   r)   r1   )rl   rp   s   &&rB   r“   ÚMoEGate.__call__K  sM   € Ü"Ø—‘—‘ÕØ×(Ñ(Ø�J‰JØ�L‰LØ�O‰OØ×&Ñ&Ø×Ñó
ð 	
rE   )	r�   rï   r2   r(   r1   r)   rð   r3   rü   r–   r˜   s   @@rB   rø   rø   =  s   ù‡ € ÷Ló L÷	
ò 	
rE   rø   c                   óD   a a€ ] tR tRt oV3R lV 3R lltR tRtVtV ;t# )ÚDeepseekV32MoEiW  c                ó    <€ V ^8„  d   QhRS[ /# rœ   rR   )r@   rA   s   "€rB   rC   ÚDeepseekV32MoE.__annotate__X  s   ø€ ÷ #ñ #™yñ #rE   c                óX  <€ \         SV `  4        Wn        VP                  V n        \	        VP
                  VP                  VP                  4      V n        \        V4      V n
        VP                  e/   VP                  VP                  ,          p\        WR7      V n        R V n        R # )N)r�   r"   )r]   r^   r�   r4   r   r   r#   r(   Ú
switch_mlprø   Úgater'   rÜ   Úshared_expertsÚsharding_group)rl   r�   r"   rm   s   && €rB   r^   ÚDeepseekV32MoE.__init__X  s’   ø€ Ü‰ÑÔØŒØ#)×#=Ñ#=ˆÔ Ü#Ø×ÑØ×(Ñ(Ø×#Ñ#ó
ˆŒô ˜F“OˆŒ	Ø×"Ñ"Ò.Ø &× <Ñ <¸v×?VÑ?VÕ VÐÜ"0Øô#ˆDÔð #ˆÖrE   c                óÞ  € V P                   e   \        V P                   4      ! V4      pV P                  V4      w  r#V P                  W4      pWCR,          ,          P	                  RR7      P                  VP                  4      pV P                  P                  e   W@P                  V4      ,           pV P                   e+   \        P                  P                  W@P                   R7      pV# )Nrº   ©Úgroupr‚   r�   )r
  r	   r  r  r‰   rè   r¼   r�   r'   r	  ru   ÚdistributedÚall_sum)rl   rp   rô   r‘   Úys   &&   rB   r“   ÚDeepseekV32MoE.__call__k  s»   € Ø×ÑÒ*Ü˜d×1Ñ1Ô2°1Ó5ˆAà—y‘y “|‰ˆØ�O‰O˜AÓ$ˆØ˜	Õ"Õ"×'Ñ'¨RÐ'Ó0×7Ñ7¸¿¹Ó@ˆØ�;‰;×'Ñ'Ò3Ø×'Ñ'¨Ó*Õ*ˆAà×ÑÒ*Ü—‘×&Ñ& q×0CÑ0CÐ&ÓDˆAàˆrE   )r�   r  r4   r
  r	  r  r–   r˜   s   @@rB   r  r  W  s   ù‡ € ÷#ó #÷&ò rE   r  c                   óT   a a€ ] tR tRt oV3R lV 3R lltRV3R lR lltRtVtV ;t# )ÚDeepseekV32DecoderLayeri{  c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   r�   Ú	layer_idxrÞ   )r@   rA   s   "€rB   rC   Ú$DeepseekV32DecoderLayer.__annotate__|  s   ø€ ÷ 
ñ 
™yð 
±Sñ 
rE   c                ó¨  <€ \         SV `  4        \        V4      V n        VP                  e3   W!P
                  8¼  d#   W!P                  ,          ^ 8X  d   \        V4      M
\        V4      V n	        \        P                  ! VP                  VP                  R7      V n        \        P                  ! VP                  VP                  R7      V n        R # )Nr    )r]   r^   rš   Ú	self_attnr(   r6   r5   r  rÜ   Úmlprc   r¨   r   r8   Úinput_layernormÚpost_attention_layernorm)rl   r�   r  rm   s   &&&€rB   r^   Ú DeepseekV32DecoderLayer.__init__|  s£   ø€ Ü‰ÑÔÜ-¨fÓ5ˆŒð ×'Ñ'Ò3Ø×!=Ñ!=Ô=Ø× 5Ñ 5Õ5¸Ô:ô	 ˜6Ô"ô   Ó'ð 	Œô  "Ÿzšz¨&×*<Ñ*<À&×BUÑBUÔVˆÔÜ(*¯
ª
Ø×Ñ F×$7Ñ$7ô)
ˆÖ%rE   c                óŽ   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# r·   rt   )r@   rA   s   "€rB   rC   r  �  sH   ø€ ÷ 	ñ 	á�8‰8ð	ñ ‘r—x‘xÕ ð	ñ ™�}ð		ñ
 
�‰ñ	rE   c                ó¤   € V P                  V P                  V4      W#4      pW,           pV P                  V P                  V4      4      pWT,           # r•   )r  r  r  r  )rl   rp   rr   rs   ÚrÚhs   &&&&  rB   r“   Ú DeepseekV32DecoderLayer.__call__�  sF   € ð �N‰N˜4×/Ñ/°Ó2°DÓ@ˆØ�EˆØ�H‰H�T×2Ñ2°1Ó5Ó6ˆØ�uˆrE   )r  r  r  r  rÚ   r–   r˜   s   @@rB   r  r  {  s   ù‡ € ÷
ó 
÷"	÷ 	ò 	rE   r  c                   óZ   a a€ ] tR tRt oV3R lV 3R lltR tRV3R lR lltRtVtV ;t	# )	ÚDeepseekV32Modeli™  c                ó    <€ V ^8„  d   QhRS[ /# rœ   rR   )r@   rA   s   "€rB   rC   ÚDeepseekV32Model.__annotate__š  s   ø€ ÷ ñ ™yñ rE   c                óø  <€ \         SV `  4        VP                  V n        \        P                  ! VP                  VP
                  4      V n        \        VP                  4       Uu. uF  p\        W4      NK  	  upV n
        ^ V n        \        V P                  4      V n        V P                  V n        \        P                  ! VP
                  VP                   R7      V n        ^ V n        ^V n        R# u upi )r   r    N)r]   r^   r   rc   Ú	Embeddingr   Úembed_tokensÚranger$   r  ÚlayersÚ	start_idxÚlenÚend_idxÚ
num_layersr¨   r8   ÚnormÚpipeline_rankÚpipeline_size)rl   r�   rÔ   rm   s   && €rB   r^   ÚDeepseekV32Model.__init__š  sÂ   ø€ Ü‰ÑÔØ ×+Ñ+ˆŒÜŸLšL¨×):Ñ):¸F×<NÑ<NÓOˆÔô ˜V×5Ñ5Ô6ó
á6�ô $ FÖ0Ù6ñ
ˆŒð ˆŒÜ˜4Ÿ;™;Ó'ˆŒØŸ,™,ˆŒä—J’J˜v×1Ñ1°v×7JÑ7JÔKˆŒ	ØˆÔØˆÖùò
s   Á(C7c                óª  € VP                  4       V n        VP                  4       V n        \	        V P
                  4      V P                  ,          p\	        V P
                  4      W P                  ,          ,
          pV P                  V8  d
   V^,          pV P                  V P                  ,
          ^,
          V,          V n        V P                  V,           V n        V P
                  RV P                   V n        R.V P                  ,          V P
                  RV P                  % \	        V P
                  4      V P                  ,
          V n        R# )rx   N)	Úrankr1  Úsizer2  r-  r+  r,  r.  r/  )rl   r  Úlayers_per_rankÚextras   &&  rB   ÚpipelineÚDeepseekV32Model.pipelineª  sî   € ð #ŸZ™Z›\ˆÔØ"ŸZ™Z›\ˆÔÜ˜dŸk™kÓ*¨d×.@Ñ.@Õ@ˆÜ�D—K‘KÓ  ?×5GÑ5GÕ#GÕGˆØ×Ñ Ô%Ø˜qÕ ˆOØ×,Ñ,¨t×/AÑ/AÕAÀAÕEÈÕXˆŒØ—~‘~¨Õ7ˆŒØ—k‘k . D§L¡LÐ1ˆŒØ)-¨°·±Õ(?ˆ�‰Ð$�d—n‘nÐ%Ü˜dŸk™kÓ*¨T¯^©^Õ;ˆŽrE   c                ód   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[ P                  /# )r   rp   rs   r¸   rt   )r@   rA   s   "€rB   rC   r&  ¹  s5   ø€ ÷ "ñ "á�8‰8ð"ñ ™�}ð"ñ 
�‰ñ	"rE   c                ót  € V P                  V4      pV P                  pV P                  pVf   R .V P                  ,          p\	        Y2^ ,          '       d   V^ ,          ^ ,          MR RR7      pWE^,
          8  d'   \
        P                  P                  W4^,           4      p\        V P                  4       F4  pV P                  V P                  V,           ,          ! W6W',          4      pK6  	  V^ 8w  d{   \
        P                  P                  W4^,
          V,          4      pVR,          eC   \
        P                  ! VR,          ^ ,          P                  V4      VR,          ^ ,          n        V^8”  d4   \
        P                  P                  V4      R VP                  ^ ,           pV P!                  V4      # )NT)Úreturn_arrayr€   )r)  r1  r2  r/  r   ru   r  Ú	recv_liker*  r+  r,  ÚsendrÆ   rÇ   Ú
all_gatherrƒ   r0  )rl   rp   rs   r!  r1  r2  rr   Úis   &&&     rB   r“   ÚDeepseekV32Model.__call__¹  sO  € ð
 ×Ñ˜aÓ ˆà×*Ñ*ˆØ×*Ñ*ˆàŠ=Ø�F˜TŸ_™_Õ,ˆEÜ$Ø AŸhœhˆu�Q�x˜Ž{¨D¸tô
ˆð ¨1Õ,Ô,Ü—‘×(Ñ(¨¸QÕ->Ó@ˆAä�t—‘Ö'ˆAØ—‘˜DŸN™N¨QÕ.Ö/°¸½ÓBŠAñ (ð ˜AÔÜ—‘×#Ñ# A¸Õ(9¸]Õ'JÓKˆAØ�R�yÒ$Ü$&§J¢J¨u°R­y¸­|×/@Ñ/@À!Ó$D��b•	˜!•Ô!ð ˜1ÔÜ—‘×)Ñ)¨!Ó,¨\¨q¯w©w°q­zÐ:ˆAà�y‰y˜‹|ÐrE   )	r)  r.  r+  r0  r/  r1  r2  r,  r   r•   )
rG   rH   rI   rJ   r^   r9  r“   rL   rM   r—   r˜   s   @@rB   r$  r$  ™  s#   ù‡ € ÷ó ò <÷"÷ "ò "rE   r$  c                   ó–   a a€ ] tR tRt oV3R lV 3R lltRV3R lR lltR tRV3R lR llt]R	 4       t	]R
 4       t
R tRtVtV ;t# )ÚModeliÞ  c                ó    <€ V ^8„  d   QhRS[ /# rœ   rR   )r@   rA   s   "€rB   rC   ÚModel.__annotate__ß  s   ø€ ÷ Tñ T™yñ TrE   c                óÖ   <€ \         SV `  4        Wn        VP                  V n        \	        V4      V n        \        P                  ! VP                  VP                  R R7      V n
        R# )FrU   N)r]   r^   rQ   r   r$  Úmodelrc   rd   r   r   Úlm_headrý   s   &&€rB   r^   ÚModel.__init__ß  sL   ø€ Ü‰ÑÔØŒ	Ø ×+Ñ+ˆŒÜ% fÓ-ˆŒ
Ü—y’y ×!3Ñ!3°V×5FÑ5FÈUÔSˆŽrE   c                óJ   <€ V ^8„  d   QhRS[ P                  RS[S[,          /# )r   Úinputsrs   rt   )r@   rA   s   "€rB   rC   rF  æ  s'   ø€ ÷ !ñ !á—‘ð!ñ ™�}ñ!rE   c                óF   € V P                  W4      pV P                  V4      # r•   )rH  rI  )rl   rL  rs   Úouts   &&& rB   r“   ÚModel.__call__æ  s!   € ð
 �j‰j˜Ó'ˆØ�|‰|˜CÓ Ð rE   c                ó¶  € V P                   P                  p/ pVP                  4        FQ  w  rEVP                  R 4      p\	        V4      ^8¼  d(   V^,          R8X  d   \        V^,          4      V8¼  d   KM  WSV&   KS  	  TpR p/ pVP                  4        FB  w  rERV9   d+   TpVP                  RR4      p	W,          p
V! W¨4      p
W£V	&   K6  WC9  g   K>  WSV&   KD  	  Tp\        V P                   P                  4       EFÓ  pRV 2pR F‡  w  rÞR F|  pV RV R V 2V9   g   K  \        V P                   P                  4       Uu. uF  pVP                  V RV R V R V 24      NK!  	  pp\        P                  ! V4      W R	V R V 2&   K~  	  K‰  	  RV R
2pV R2V9   g   K¨  V P                  P                  V,          P                  P                  pV R2V9   pVP                  V R24      pV P                   P                   V P                   P"                  ,           pV'       d•   V P                   P$                  pVP                  V R24      pVP                  V R24      pVP&                  R,          ^ ,          V,          pVVP&                  R,          ,          p\        P(                  ! VVVVVR7      pV P                   P*                  pVP-                  VVR4      p\        P.                  ! VRRV P                   P                   1R3,          P1                  RR4      4      p	\        P.                  ! VRV P                   P                   R1R3,          4      pV'       dW   \        P2                  ! V	XXR7      w  p	pp\        P2                  ! VVVR7      w  pppVW R2&   VW R2&   VW R2&   VW R2&   W‘V R2&   VW R2&   EKÖ  	  V# u upi )Ú.r+  c                 óà  € \         P                  p\         P                  ! V \         P                  R 7      p ^€pV P                  w  rEV) V,          pV) V,          p\         P                  ! V ^ V3^ V334      p V P                  WF,           V,          W5V,           V,          V34      p WR,          ,          P                  WF,           WW,           4      p V RV1RV13,          P                  V4      # )r»   N)r¾   Nr¾   N)ru   Úbfloat16Úfrom_fp8rƒ   Úpadr„   rè   )rü   Ú	scale_invr¼   ÚbsÚmÚnÚ
pad_bottomÚpad_sides   &&      rB   ÚdequantÚModel.sanitize.<locals>.dequantù  sÑ   € Ü—K‘KˆEÜ—[’[ ¬r¯{©{Ô;ˆFØˆBØ—<‘<‰DˆAØ˜" �ˆJØ˜˜b•yˆHÜ—V’V˜F a¨ _°q¸(°mÐ$DÓEˆFØ—^‘^Ø•. RÕ'¨°(­l¸rÕ-AÀ2ÐFóˆFð Ð)9Õ:Õ:×CÑCØ• ¥óˆFð ˜"˜1˜"˜b˜q˜b˜&•>×(Ñ(¨Ó/Ð/rE   Úweight_scale_invÚ
_scale_invÚ zmodel.layers.z.mlp.experts.0.z.mlp.experts.z.mlp.switch_mlp.z
.self_attnz.kv_b_proj.weightz.kv_b_proj.scalesz.kv_b_proj.biases)ÚbitsÚ
group_sizer¾   Nz.embed_q.scalesz.unembed_out.scalesz.embed_q.biasesz.unembed_out.biasesz.embed_q.weightz.unembed_out.weight))Úw1rá   )Úw2rã   )Úw3râ   )rü   ÚscalesÚbiasesr€   r�   )rQ   r$   Úitemsr¿   r-  r=   Úreplacer*  r(   Úpopru   ÚstackrH  r+  r  r­   r.   r-   r*   rƒ   Ú
dequantizer%   r„   Ú
contiguousr…   Úquantize)rl   r’   Ú	mpt_layerÚnew_weightsr�   r×   Úpartsr\  rV  rf   rü   ÚlÚprefixrY  rX  ÚeÚto_joinÚlayerÚ	quantizedra   rX   rf  rg  ra  rb  r¤   ÚwvÚ	wk_scalesÚ	wk_biasesÚ	wv_scalesÚ	wv_biasess   &&                             rB   ÚsanitizeÚModel.sanitizeî  sÚ  € à—I‘I×/Ñ/ˆ	ØˆØ—M‘M–O‰DˆAØ—G‘G˜C“LˆEÜ�5‹z˜QŒ 5¨¥8¨xÔ#7¼CÀÀaÅ»MÈYÔ<VÙØ˜‹Nñ	 $ð
 ˆò	0ð" ˆØ—M‘M–O‰DˆAØ! QÔ&Ø�	Ø—Y‘Y˜|¨RÓ0�Ø ��Ù  Ó3�Ø"(˜B“ØÖ%Ø!"˜A“ñ $ð ˆô �t—y‘y×2Ñ2×3ˆAØ$ Q CÐ(ˆFÛU‘�Û7�AØ ˜ °°°1°Q°CÐ8¸GÖCô &+¨4¯9©9×+EÑ+EÔ%Fó#á%F ð $ŸK™K¨6¨(°-À¸sÀ!ÀAÀ3ÀaÈÀsÐ(KÖLÙ%Fð  ð #ô GIÇhÂhÈwÓFW˜ (Ð*:¸1¸#¸Q¸q¸cÐ BÓCó 8ñ Vð % Q C zÐ2ˆFØ�Ð*Ð+¨wÖ6ØŸ
™
×)Ñ)¨!Õ,×6Ñ6×>Ñ>�Ø%˜hÐ&7Ð8¸GÑC�	Ø—K‘K 6 (Ð*;Ð <Ó=�ØŸ9™9×5Ñ5¸¿	¹	×8LÑ8LÕL�çØŸ9™9×1Ñ1�DØ$Ÿ[™[¨F¨8Ð3DÐ)EÓF�FØ$Ÿ[™[¨F¨8Ð3DÐ)EÓF�FàŸG™G B�K¨"Õ,°Õ5�DØ!%¨¯©°bÕ)9Õ!9�JÜŸšØ˜6 6°Àô�Að !ŸI™I×9Ñ9�	Ø—I‘I˜i¨°2Ó6�Ü—]’]Ø�aÐ5˜4Ÿ9™9×5Ñ5Ð5°qÐ8Õ9×BÑBÀ2ÀrÓJó�ô —]’] 1 Q¨¯	©	×(BÑ(BÑ(DÀaÐ%GÕ#HÓI�ßÜ/1¯{ª{Ø °*ô0Ñ,�B˜	 9ô 02¯{ª{Ø °*ô0Ñ,�B˜	 9ð ;D�G˜h oÐ6Ñ7Ø>G�G˜hÐ&9Ð:Ñ;Ø:C�G˜h oÐ6Ñ7Ø>G�G˜hÐ&9Ð:Ñ;Ø68˜6˜( /Ð2Ñ3Ø:<�˜(Ð"5Ð6Ô7ñ[ 4ð^ ˆùòU#s   Å%O
c                óX   <€ V ^8„  d   QhRS[ S[P                  P                  ,          /# )r   r  )r   ru   r  ÚGroup)r@   rA   s   "€rB   rC   rF  H  s#   ø€ ÷ 8ñ 8™8¡B§N¡N×$8Ñ$8Õ9ñ 8rE   c                ót  aa€ T;'       g    \         P                  P                  4       pVP                  4       pVP	                  4       pV P
                  P                   EFÒ  p\        VP                  P                  R VR7      VP                  n	        \        VP                  P                  RVR7      VP                  n
        VP                  ;P                  V,          un        VP                  P                  pW5,          oSV,           oVV3R lpVP                  P                  P                  V4       VP                  P                  P                  V4       \        VP                   \"        4      '       d—   \        VP                   P$                  R VR7      VP                   n        \        VP                   P&                  RVR7      VP                   n        \        VP                   P(                  R VR7      VP                   n        EK·  T;VP                   n        p\-        VP                   P.                  P$                  R VR7       \-        VP                   P.                  P&                  RVR7       \-        VP                   P.                  P(                  R VR7       \-        VP                   P0                  P$                  R VR7       \-        VP                   P0                  P&                  RVR7       \-        VP                   P0                  P(                  R VR7       EKÕ  	  R# )zall-to-shardedr  zsharded-to-allc                 ó   <€ V SS # r•   rF   )ÚwÚehÚshs   &€€rB   Úshard_headsÚ Model.shard.<locals>.shard_headsY  s   ø€ Ø˜˜B�x�rE   N)ru   r  Úinitr6  r5  rH  r+  r   r  rª   r¯   r¤   r­   Úapplyr®   Ú
isinstancer  rÜ   rá   rã   râ   r
  r   r	  r  )	rl   r  ÚNr5  rv  r¤   r†  r„  r…  s	   &&     @@rB   ÚshardÚModel.shardH  sb  ù€ Ø×.Ð.œŸ™×,Ñ,Ó.ˆØ�J‰J‹LˆØ�z‰z‹|ˆØ—Z‘Z×&Õ&ˆEÜ'3Ø—‘×(Ñ(Ð*:À%ô(ˆE�O‰OÔ$ô &2Ø—‘×&Ñ&Ð(8Àô&ˆE�O‰OÔ"ð �O‰O×%Ò%¨!Õ+Õ%ØŸ™×1Ñ1ˆIØÕ!ˆBØ�i•ˆBö ð �O‰O×#Ñ#×)Ñ)¨+Ô6Ø�O‰O×'Ñ'×-Ñ-¨kÔ:ô ˜%Ÿ)™)¤^×4Ò4Ü&2Ø—I‘I×'Ñ'Ð)9Àô'�—	‘	Ô#ô '3Ø—I‘I×'Ñ'Ð)9Àô'�—	‘	Ô#ô %1Ø—I‘I×%Ñ%Ð'7¸uô%�—	‘	×!ð 49Ð8�—	‘	Ô(¨5ÜØ—I‘I×,Ñ,×6Ñ6Ð8HÐPUõô Ø—I‘I×,Ñ,×6Ñ6Ð8HÐPUõô Ø—I‘I×,Ñ,×4Ñ4Ð6FÈeõô Ø—I‘I×(Ñ(×2Ñ2Ð4DÈEõô Ø—I‘I×(Ñ(×2Ñ2Ð4DÈEõô Ø—I‘I×(Ñ(×0Ñ0Ð2BÈ%÷ð óe 'rE   c                ó„   € V P                   P                  V P                   P                  V P                   P                   # r•   )rH  r+  r,  r.  )rl   s   &rB   r+  ÚModel.layers‚  s-   € à�z‰z× Ñ  §¡×!5Ñ!5¸¿
¹
×8JÑ8JÐKÐKrE   c                ó   € R  pV# )c                 ó   € R V 9  # )rï   rF   )r�   s   &rB   Ú	predicateÚ'Model.cast_predicate.<locals>.predicateˆ  s   € Ø,°AÑ5Ð5rE   rF   )rl   r’  s   & rB   Úcast_predicateÚModel.cast_predicate†  s   € ò	6ð ÐrE   c                óx   € V P                    Uu. uF  p\        \        4       \        4       4      NK!  	  up# u upi r•   )r+  r   r   )rl   rŽ   s   & rB   Ú
make_cacheÚModel.make_cache�  s)   € Ø9=¿ºÓE¹°A”	œ'›)¤W£YÖ/¹ÑEÐEùÒEs   �%7)rQ   rI  rH  r   r•   )rG   rH   rI   rJ   r^   r“   r}  rŒ  Úpropertyr+  r”  r—  rL   rM   r—   r˜   s   @@rB   rD  rD  Þ  sc   ù‡ € ÷Tó T÷!ò !òX÷t8ò 8ðt ñLó ðLð ñó ð÷Fò FrE   rD  )+r±   Údataclassesr   Útypingr   r   r   Úmlx.coreÚcoreru   Úmlx.nnrc   Úmlx.nn.layers.distributedr   r   r	   Úactivationsr
   rY   r   r   r   rs   r   r   Úmlar   Ú
rope_utilsr   Úswitch_layersr   r   ÚModulerO   rš   rÜ   Úcompilerö   rø   r  r  r$  rD  rF   rE   rB   Ú<module>r¦     sõ   ðó Ý !ß &Ñ &å Ý ß PÑ På ß TÑ Tß %Ý Ý 'Ý $ð ô !�ó  !ó ð !ôF:
ˆb�i‰iô :
ôzO#˜2Ÿ9™9ô O#ôd�R—Y‘Yô ð( ‡�ñó ðôD
ˆb�i‰iô 
ô4!�R—Y‘Yô !ôH˜bŸi™iô ô<B�r—y‘yô BôJpFˆB�I‰Iö pFrE   