+
    TV-j·&  ã                   ó\  € ^ RI Ht ^ RIHt ^ RIHtHtHtHtH	t	H
t
 ^ RIHt ^ RIHt ^ RIHt ^RIHtHtHt ^RIHtHt ^RIHt ]! ]P6                  R	R
7      R R l4       t]! ]P6                  R	R
7      R R l4       t]! ]P6                  R	R
7      R R l4       t] ! R R]4      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 R]P@                  4      t&R# )é    )Ú	dataclass)Úpartial)ÚAnyÚDictÚListÚOptionalÚTupleÚUnionN)Úshard_linear)ÚBaseModelArgsÚcreate_attention_maskÚscaled_dot_product_attention)ÚKVCacheÚRotatingKVCache)Úinitialize_ropeT)Ú	shapelessc                ó˜   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\         P                  /# )é   ÚqueryÚweightÚbiasÚreturn©ÚmxÚarray)Úformats   "Ún/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_lm/models/iquestloopcoder.pyÚ__annotate__r      s8   € ÷ #ñ #œŸ™ð #¬2¯8©8ð #¼2¿8¹8ð #ÌÏÉñ #ó    c                 óŠ   € WR,          P                  RR4      ,          pW2R,          ,           p\        P                  ! V4      # )ºNNN)r!   Nr!   éÿÿÿÿéþÿÿÿ).NN)Úswapaxesr   Úsigmoid)r   r   r   Úgate_logitss   &&& r   Ú_compute_gater'      s8   € à Õ,×5Ñ5°b¸"Ó=Õ=€KØ _Õ 5Õ5€KÜ�:Š:�kÓ"Ð"r   c                óx   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  /# )r   ÚgateÚupr   r   )r   s   "r   r   r      s-   € ÷ ñ ”B—H‘Hð ¤"§(¡(ð ¬r¯x©xñ r   c                 ó<   € \         P                  ! V 4      V,          # ©N)ÚnnÚsilu)r)   r*   s   &&r   Ú	_silu_mulr/      s   € ä�7Š7�4‹=˜2ÕÐr   c                ó˜   € V ^8„  d   QhR\         P                  R\         P                  R\         P                  R\         P                  /# )r   r)   Úattn_globalÚ
attn_localr   r   )r   s   "r   r   r      s<   € ÷ 8ñ 8Ü
�(‰(ð8Ü!#§¡ð8Ü79·x±xð8ä‡X�Xñ8r   c                 ó<   € W,          ^V ,
          V,          ,           # )é   © )r)   r1   r2   s   &&&r   Ú_mix_attentionr6      s   € ð Õ  T¥¨ZÕ 7Õ7Ð7r   c                   óL   a € ] tR t^#t o RtRtRtRtRtRt	^t
^@tV 3R ltRtV tR# )Ú	ModelArgsi   Fg    €„ANc                ó"  <€ 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[;R&   S[;R&   S[S[S[ S[S[S[ 3,          3,          ,          ;R&   S[;R&   S[;R&   S[;R&   # )r   Ú
model_typeÚhidden_sizeÚnum_hidden_layersÚintermediate_sizeÚnum_attention_headsÚrms_norm_epsÚ
vocab_sizeÚhead_dimÚnum_key_value_headsÚmax_position_embeddingsÚattention_biasÚmlp_biasÚ
rope_thetaÚrope_scalingÚtie_word_embeddingsÚloop_numÚloop_window_size)ÚstrÚintÚfloatÚboolr   r   r
   )r   Ú__classdict__s   "€r   r   ÚModelArgs.__annotate__#   sõ   ø‡ ‚ á�Oñ ñ Ññ ñ Ññ	 ñ
 Ññ ñ Ññ ñ Ññ ñ �Oñ ñ �Mñ ñ Ññ ñ !Ñ)ñ ñ Ñ ñ ñ Ññ ñ Ñ ñ ñ ™4¡¡U©5±#¨:Õ%6Ð 6Õ7Õ8Ñ?ñ ñ  Ñ%ñ! ñ" Ññ# ñ$ Ñò% r   r5   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rC   rD   rE   rF   rG   rH   rI   rJ   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__)rO   s   @r   r8   r8   #   s9   ø‡ € ð $*ÐØ €NØ€HØ €JØ;?€LØ %ÐØ€HØÐ÷% ƒ r   r8   c                   óP   a a€ ] tR t^8t oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚLoopGateProjectionc                ó&   <€ V ^8„  d   QhRS[ RS[ /# )r   Ú	num_headsrA   )rL   )r   rO   s   "€r   r   ÚLoopGateProjection.__annotate__9   s   ø€ ÷ +ñ +¡#ð +±ñ +r   c                ó¬   <€ \         SV `  4        Wn        W n        \        P
                  ! W34      V n        \        P
                  ! V34      V n        R # r,   )ÚsuperÚ__init__r[   rA   r   Úzerosr   r   )Úselfr[   rA   Ú	__class__s   &&&€r   r_   ÚLoopGateProjection.__init__9   s=   ø€ Ü‰ÑÔØ"ŒØ ŒÜ—h’h 	Ð4Ó5ˆŒÜ—H’H˜i˜\Ó*ˆŽ	r   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   r   r   r   )r   rO   s   "€r   r   r\   @   s#   ø€ ÷ <ñ <™bŸh™hð <©2¯8©8ñ <r   c                óB   € \        WP                  V P                  4      # r,   )r'   r   r   )ra   r   s   &&r   Ú__call__ÚLoopGateProjection.__call__@   s   € Ü˜U§K¡K°·±Ó;Ð;r   )r   rA   r[   r   ©	rQ   rR   rS   rT   r_   rf   rV   rW   Ú__classcell__©rb   rO   s   @@r   rY   rY   8   s   ù‡ € ÷+ó +÷<÷ <ð <r   rY   c                   ój   a a€ ] tR t^Dt oV3R lV 3R lltRV3R lR lltR	V3R lR lltRtVtV ;t	# )
Ú	Attentionc                ó    <€ V ^8„  d   QhRS[ /# ©r   Úargs©r8   )r   rO   s   "€r   r   ÚAttention.__annotate__E   s   ø€ ÷ 
ñ 
™Yñ 
r   c                óž  <€ \         SV `  4        VP                  pVP                  ;V n        pVP
                  ;V n        pVP                  ;V n        pVR,          V n        \        P                  ! W#V,          VP                  R7      V n        \        P                  ! W$V,          VP                  R7      V n        \        P                  ! W$V,          VP                  R7      V n        \        P                  ! W5,          W!P                  R7      V n        \!        VVP"                  RVP$                  VP&                  R7      V n        R# )g      à?©r   F)ÚtraditionalÚscaling_configrC   Ng      à¿)r^   r_   r;   r>   Ún_headsrB   Ú
n_kv_headsrA   Úscaler-   ÚLinearrD   Úq_projÚk_projÚv_projÚo_projr   rF   rG   rC   Úrope)ra   ro   Údimrv   rw   rA   rb   s   &&    €r   r_   ÚAttention.__init__E   sõ   ø€ Ü‰ÑÔà×ÑˆØ!%×!9Ñ!9Ð9ˆŒ�wØ'+×'?Ñ'?Ð?ˆŒ˜*Ø#'§=¡=Ð0ˆŒ˜Ø˜t•^ˆŒ
ä—i’i ¨xÕ%7¸d×>QÑ>QÔRˆŒÜ—i’i °(Õ%:À×ATÑATÔUˆŒÜ—i’i °(Õ%:À×ATÑATÔUˆŒÜ—i’i Õ 2°C×>QÑ>QÔRˆŒä#ØØ�O‰OØØ×,Ñ,Ø$(×$@Ñ$@ô
ˆŽ	r   c          	      ó–   <€ V ^8„  d   QhRS[ P                  RS[RS[S[ P                  S[ P                  S[ P                  3,          /# )r   ÚxÚoffsetr   )r   r   rL   r	   )r   rO   s   "€r   r   rq   [   sA   ø€ ÷ %ñ %Ù—‘ð%Ù#&ð%á	‰r�x‰x™Ÿ™¡2§8¡8Ð+Õ	,ñ%r   c                óä  € VP                   w  r4pV P                  V4      P                  W4V P                  R4      P	                  ^ ^^^4      pV P                  V4      P                  W4V P                  R4      P	                  ^ ^^^4      pV P                  V4      P                  W4V P                  R4      P	                  ^ ^^^4      pV P                  WbR7      pV P                  WrR7      pWgV3# )r4   )rƒ   r"   )	Úshaperz   Úreshaperv   Ú	transposer{   rw   r|   r~   )	ra   r‚   rƒ   ÚBÚLÚ_ÚqueriesÚkeysÚvaluess	   &&&      r   Úget_qkvÚAttention.get_qkv[   sÖ   € ð —'‘'‰ˆˆaØ—+‘+˜a“.×(Ñ(¨¨t¯|©|¸RÓ@×JÑJÈ1ÈaÐQRÐTUÓVˆØ�{‰{˜1‹~×%Ñ% a¨D¯O©O¸RÓ@×JÑJÈ1ÈaÐQRÐTUÓVˆØ—‘˜Q“×'Ñ'¨¨d¯o©o¸rÓB×LÑLÈQÐPQÐSTÐVWÓXˆà—)‘)˜G�)Ó3ˆØ�y‰y˜ˆyÓ-ˆà˜fÐ$Ð$r   c                óÂ   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  RS[S[ P                  ,          RS[S[,          RS[ P                  /# )r   r‹   rŒ   r�   ÚmaskÚcacher   )r   r   r   r   )r   rO   s   "€r   r   rq   h   sd   ø€ ÷ 

ñ 

á—‘ð

ñ �h‰hð

ñ —‘ð	

ñ
 ‘r—x‘xÕ ð

ñ ™�}ð

ñ 
�‰ñ

r   c           	     ó4   € \        WW5V P                  VR 7      # ))r’   rx   r‘   )r   rx   )ra   r‹   rŒ   r�   r‘   r’   s   &&&&&&r   Ú	attentionÚAttention.attentionh   s   € ô ,Ø˜6°d·j±jÀtô
ð 	
r   )	rA   r{   rv   rw   r}   rz   r~   rx   r|   )r   )NN)
rQ   rR   rS   rT   r_   rŽ   r”   rV   rW   ri   rj   s   @@r   rl   rl   D   s(   ù‡ € ÷
ó 
÷,%ò %÷

÷ 

ò 

r   rl   c                   óP   a a€ ] tR t^ut oV3R lV 3R lltV3R lR ltRtVtV ;t# )ÚMLPc                ó    <€ V ^8„  d   QhRS[ /# rn   rp   )r   rO   s   "€r   r   ÚMLP.__annotate__v   s   ø€ ÷ Fñ F™Yñ Fr   c                ó>  <€ \         SV `  4        VP                  pVP                  p\        P
                  ! W#VP                  R 7      V n        \        P
                  ! W2VP                  R 7      V n        \        P
                  ! W#VP                  R 7      V n	        R# )rs   N)
r^   r_   r;   r=   r-   ry   rE   Ú	gate_projÚ	down_projÚup_proj)ra   ro   r   Ú
hidden_dimrb   s   &&  €r   r_   ÚMLP.__init__v   sf   ø€ Ü‰ÑÔØ×ÑˆØ×+Ñ+ˆ
ÜŸš 3¸¿¹ÔGˆŒÜŸš :¸¿¹ÔGˆŒÜ—y’y °t·}±}ÔEˆŽr   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )r   r‚   r   r   )r   rO   s   "€r   r   r™   ~   s'   ø€ ÷ Mñ M™"Ÿ(™(ð M¡r§x¡xñ Mr   c                ót   € V P                  \        V P                  V4      V P                  V4      4      4      # r,   )rœ   r/   r›   r�   )ra   r‚   s   &&r   rf   ÚMLP.__call__~   s)   € Ø�~‰~œi¨¯©°qÓ(9¸4¿<¹<È»?ÓKÓLÐLr   )rœ   r›   r�   rh   rj   s   @@r   r—   r—   u   s#   ù‡ € ÷Fó F÷M÷ Mð Mr   r—   c                   ó>   a a€ ] tR t^‚t oV3R lV 3R lltRtVtV ;t# )ÚTransformerBlockc                ó    <€ V ^8„  d   QhRS[ /# rn   rp   )r   rO   s   "€r   r   ÚTransformerBlock.__annotate__ƒ   s   ø€ ÷ 
ñ 
™Yñ 
r   c                ó(  <€ \         SV `  4        \        V4      V n        \	        V4      V n        \        P                  ! VP                  VP                  R 7      V n
        \        P                  ! VP                  VP                  R 7      V n        R# )©ÚepsN)r^   r_   rl   Ú	self_attnr—   Úmlpr-   ÚRMSNormr;   r?   Úinput_layernormÚpost_attention_layernorm©ra   ro   rb   s   &&€r   r_   ÚTransformerBlock.__init__ƒ   se   ø€ Ü‰ÑÔÜ" 4›ˆŒÜ�t“9ˆŒÜ!Ÿzšz¨$×*:Ñ*:À×@QÑ@QÔRˆÔÜ(*¯
ª
Ø×Ñ $×"3Ñ"3ô)
ˆÖ%r   )r­   r«   r®   rª   )rQ   rR   rS   rT   r_   rV   rW   ri   rj   s   @@r   r¤   r¤   ‚   s   ù‡ € ÷
÷ 
ó 
r   r¤   c                   óT   a a€ ] tR t^�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# )ÚIQuestLoopCoderModelc                ó    <€ V ^8„  d   QhRS[ /# rn   rp   )r   rO   s   "€r   r   Ú!IQuestLoopCoderModel.__annotate__Ž   s   ø€ ÷ 6ñ 6™Yñ 6r   c                ó®  <€ \         SV `  4        VP                  ^8X  g   Q RVP                   24       hWn        VP                  V n        \
        P                  ! VP                  VP                  4      V n        \        VP                  4       Uu. uF  p\        VR7      NK  	  upV n        \
        P                  ! VP                  VP                  R7      V n        \        VP                  4       Uu. uF#  p\!        VP"                  VP$                  4      NK%  	  upV n        VP                  V n        VP(                  V n        R# u upi u upi )r   z"Only loop_num=2 is supported, got )ro   r¨   N)r^   r_   rI   ro   r@   r-   Ú	Embeddingr;   Úembed_tokensÚranger<   r¤   Úlayersr¬   r?   ÚnormrY   r>   rA   Úgate_projectionsrJ   )ra   ro   rŠ   rb   s   && €r   r_   ÚIQuestLoopCoderModel.__init__Ž   s  ø€ Ü‰ÑÔØ�}‰} Ô!ÐWÐ%GÈÏÉÀÐ#WÓWÐ!ØŒ	ØŸ/™/ˆŒÜŸLšL¨¯©¸$×:JÑ:JÓKˆÔä16°t×7MÑ7MÔ1Nó
Ù1N¨AÔ $×'Ñ1Nñ
ˆŒô —J’J˜t×/Ñ/°T×5FÑ5FÔGˆŒ	ô ˜4×1Ñ1Ô2ó!
á2�ô ˜t×7Ñ7¸¿¹ÖGÙ2ñ!
ˆÔð Ÿ™ˆŒØ $× 5Ñ 5ˆÖùò
ùò!
s   ÂEÃ8)Ec                óZ   <€ V ^8„  d   QhRS[ P                  RS[S[S[,          ,          /# )r   Úinputsr’   )r   r   r   r   r   )r   rO   s   "€r   r   r´   Ÿ   s,   ø€ ÷ 9ñ 9á—‘ð9ñ ™™S�	Õ"ñ9r   c           	     ó@  € VP                   R ,          w  r4V P                  V4      pVf%   R.^\        V P                  4      ,          ,          p\	        WR^ ,          4      p\	        WR\        V P                  4      ,          V P
                  R7      p. p\        V P                  V4       Fü  w  ršV	P                  V4      pV
e   V
P                  M^ pV	P                  P                  W¼4      w  rÞpV
e   V
P                  Wï4      w  rïVP                  Wï34       V	P                  P                  WÞWöV
R7      pV	P                  P                  VP                  ^ ^^^4      P!                  W4R4      4      pVV,           pV	P#                  V	P%                  V4      4      pVV,           pKþ  	  \        V P                  V P&                  V\        V P                  4      R V4       EF(  w  p	pp
w  rïV	P                  V4      pV
e   V
P                  M^ pV	P                  P                  W¼4      w  pppV! V4      pV	P                  P                  VWïWjR7      pV
e   V
P                  VV4      w  ppV	P                  P                  VVVVV
R7      p\)        VVV4      pV	P                  P                  VP                  ^ ^^^4      P!                  W4R4      4      pVV,           pV	P#                  V	P%                  V4      4      pVV,           pEK+  	  V P+                  V4      # ):Nr   NN)Úwindow_size)r’   r"   )r…   r·   Úlenr¹   r   rJ   Úzipr­   rƒ   rª   rŽ   Úupdate_and_fetchÚappendr”   r}   r‡   r†   r«   r®   r»   r6   rº   )ra   r¾   r’   rˆ   r‰   Úhr‘   Úwindow_maskÚloop1_kvÚlayerÚcÚh_normrƒ   Úq1Úk1Úv1ÚoutÚrr›   Úq2Úk2Úv2r)   r1   r2   Úmixeds   &&&                       r   rf   ÚIQuestLoopCoderModel.__call__Ÿ   sÂ  € ð
 �|‰|˜BÕ‰ˆØ×Ñ˜fÓ%ˆàŠ=Ø�F˜a¤# d§k¡kÓ"2Õ2Õ3ˆEä$ Q¨a­Ó1ˆÜ+Ø”S˜Ÿ™Ó%Õ&°D×4IÑ4Iô
ˆð ˆÜ˜DŸK™K¨Ö/‰HˆEØ×*Ñ*¨1Ó-ˆFØ!"¢�Q—X’X°AˆFØŸ™×0Ñ0°Ó@‰JˆB�BàŠ}Ø×+Ñ+¨BÓ3‘�Ø�O‰O˜R˜HÔ%à—/‘/×+Ñ+¨B°BÀAÐ+ÓFˆCØ—‘×&Ñ& s§}¡}°Q¸¸1¸aÓ'@×'HÑ'HÈÈrÓ'RÓSˆAØ�A•ˆAØ—	‘	˜%×8Ñ8¸Ó;Ó<ˆAØ�A•ŠAñ 0ô .1Ø�K‰K˜×.Ñ.°´c¸$¿+¹+Ó6FÐ6HÐ0IÈ8÷.
Ñ)ˆE�9˜a¡ "ð ×*Ñ*¨1Ó-ˆFØ!"¢�Q—X’X°AˆFØŸ™×0Ñ0°Ó@‰JˆB��BÙ˜R“=ˆDØŸ/™/×3Ñ3°B¸ÀÐ3ÓNˆKàŠ}Ø×+Ñ+¨B°Ó3‘��BØŸ™×2Ñ2ØØØØØð 3ó ˆJô # 4¨°jÓAˆEØ—‘×&Ñ& u§¡°q¸!¸QÀÓ'B×'JÑ'JÈ1ÐQSÓ'TÓUˆAØ�A•ˆAØ—	‘	˜%×8Ñ8¸Ó;Ó<ˆAØ�A•‹Añ/.
ð2 �y‰y˜‹|Ðr   )ro   r·   r»   r¹   rI   rJ   rº   r@   r,   rh   rj   s   @@r   r²   r²   �   s   ù‡ € ÷6ó 6÷"9÷ 9ò 9r   r²   c                   ó€   a a€ ] tR t^Ût oV3R lV 3R lltR
V3R lR lltR
V3R lR llt]R 4       tR t	R	t
VtV ;t# )ÚModelc                ó    <€ V ^8„  d   QhRS[ /# rn   rp   )r   rO   s   "€r   r   ÚModel.__annotate__Ü   s   ø€ ÷ Tñ T™Yñ Tr   c                óþ   <€ \         SV `  4        Wn        VP                  V n        \	        V4      V n        VP                  '       g5   \        P                  ! VP                  VP                  R R7      V n        R# R# )Frs   N)r^   r_   ro   r:   r²   ÚmodelrH   r-   ry   r;   r@   Úlm_headr¯   s   &&€r   r_   ÚModel.__init__Ü   sY   ø€ Ü‰ÑÔØŒ	ØŸ/™/ˆŒÜ)¨$Ó/ˆŒ
Ø×'×'Ð'ÜŸ9š9 T×%5Ñ%5°t·±ÈUÔSˆDŽLñ (r   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   r¾   r   )r   rO   s   "€r   r   rØ   ä   s   ø€ ÷ 
ñ 
á—‘ñ
r   c                óÐ   € V P                  W4      pV P                  P                  '       d(   V P                   P                  P	                  V4      pV# V P                  V4      pV# r,   )rÚ   ro   rH   r·   Ú	as_linearrÛ   )ra   r¾   r’   rÎ   s   &&& r   rf   ÚModel.__call__ä   sX   € ð
 �j‰j˜Ó'ˆØ�9‰9×(×(Ð(Ø—*‘*×)Ñ)×3Ñ3°CÓ8ˆCð ˆ
ð —,‘,˜sÓ#ˆCØˆ
r   c                óX   <€ V ^8„  d   QhRS[ S[P                  P                  ,          /# )r   Úgroup)r   r   ÚdistributedÚGroup)r   rO   s   "€r   r   rØ   ð   s#   ø€ ÷ %1ñ %1™8¡B§N¡N×$8Ñ$8Õ9ñ %1r   c                ó  € T;'       g    \         P                  P                  4       pVP                  4       pVP	                  4       p\        V P                  P                  4       EF  w  rE\        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        \        VP                  P                  RVR7      VP                  n        VP                  ;P                  V,          un        VP                  ;P                  V,          un        \        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        V P                  P(                  V,          pVP*                  V,          pW7,          pW‡,           p	VP,                  W‰1R3,          Vn        VP.                  W‰ Vn        Wvn        EK  	  R# )zall-to-sharded)râ   zsharded-to-allr!   N)r   rã   ÚinitÚsizeÚrankÚ	enumeraterÚ   r¹   r   rª   rz   r{   r|   r}   rv   rw   r«   r›   rœ   r�   r»   r[   r   r   )
ra   râ   ÚNrè   ÚirÈ   r›   Úheads_per_rankÚstartÚends
   &&        r   ÚshardÚModel.shardð   sÞ  € Ø×.Ð.œŸ™×,Ñ,Ó.ˆØ�J‰J‹LˆØ�z‰z‹|ˆä! $§*¡*×"3Ñ"3×4‰HˆAÜ%1Ø—‘×&Ñ&Ð(8Àô&ˆE�O‰OÔ"ô &2Ø—‘×&Ñ&Ð(8Àô&ˆE�O‰OÔ"ô &2Ø—‘×&Ñ&Ð(8Àô&ˆE�O‰OÔ"ô &2Ø—‘×&Ñ&Ð(8Àô&ˆE�O‰OÔ"ð �O‰O×#Ò#¨Õ)Õ#Ø�O‰O×&Ò&¨1Õ,Õ&ä".Ø—	‘	×#Ñ#Ð%5¸Uô#ˆE�I‰IÔô #/Ø—	‘	×#Ñ#Ð%5¸Uô#ˆE�I‰IÔô !-Ø—	‘	×!Ñ!Ð#3¸5ô!ˆE�I‰IÔð Ÿ
™
×3Ñ3°AÕ6ˆIØ&×0Ñ0°AÕ5ˆNØÕ)ˆEØÕ(ˆCØ(×/Ñ/°°	¸1°Õ=ˆIÔØ&Ÿ^™^¨EÐ6ˆIŒNØ"0×óA 5r   c                ó.   € V P                   P                  # r,   )rÚ   r¹   )ra   s   &r   r¹   ÚModel.layers  s   € à�z‰z× Ñ Ð r   c                óÜ   € V P                    Uu. uF  p\        4       NK  	  upV P                    Uu. uF#  p\        V P                  P                  R 7      NK%  	  up,           # u upi u upi ))Úmax_size)r¹   r   r   ro   rJ   )ra   rŠ   s   & r   Ú
make_cacheÚModel.make_cache  sV   € Ø#'§;¢;Ó/¡;˜a”–	¡;Ñ/ØJNÏ+Ê+ó3
ÙJUÀQŒO T§Y¡Y×%?Ñ%?×@É+ñ3
õ 
ð 	
ùÒ/ùò 3
s
   �A$²)A))ro   rÛ   rÚ   r:   r,   )rQ   rR   rS   rT   r_   rf   rï   Úpropertyr¹   rõ   rV   rW   ri   rj   s   @@r   rÖ   rÖ   Û   sD   ù‡ € ÷Tó T÷
ò 
÷%1ò %1ðN ñ!ó ð!÷
ò 
r   rÖ   )'Údataclassesr   Ú	functoolsr   Útypingr   r   r   r   r	   r
   Úmlx.coreÚcorer   Úmlx.nnr-   Úmlx.nn.layers.distributedr   Úbaser   r   r   r’   r   r   Ú
rope_utilsr   Úcompiler'   r/   r6   r8   ÚModulerY   rl   r—   r¤   r²   rÖ   r5   r   r   Ú<module>r     s  ðõ "Ý ß :× :å Ý Ý 2ç TÑ Tß +Ý 'ñ 	ˆ�‰˜tÔ$ô#ó %ð#ñ 	ˆ�‰˜tÔ$ôó %ðñ 	ˆ�‰˜tÔ$ô8ó %ð8ð ô�ó ó ðô(	<˜Ÿ™ô 	<ô.
�—	‘	ô .
ôb
Mˆ"�)‰)ô 
Mô
�r—y‘yô 
ôK˜2Ÿ9™9ô Kô\C
ˆB�I‰Iö C
r   