+
    œ°³j×  ã                   ó~  € ^ RI t ^ RIHt ^ RIHt ^ RI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 ^RIHtHtHt ^R	IHt ^R
IHt ^RIHtHtHtHtH t H!t!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.H/t/ ^RI0H1t1 ^RI2H3t3H4t4 ^RI5H6t6 ^RI7H8t8H9t9 ^RI:H;t;H<t<H=t=H>t>H?t?H@t@HAtAHBtBHCtCHDtDHEtE ^RIFHGtG ^RIHHItIHJtJHKtK ].P˜                  ! ]M4      tN],! RR7      ]	 ! R R]9]4      4       4       tO],! RR7      ]	 ! R R]84      4       4       tP],! RR7      ]	 ! R R]9]4      4       4       tQ],! RR7      ]	 ! R R ]4      4       4       tR ! R! R"]?4      tS ! R# R$]<4      tT ! R% R&]@4      tU ! R' R(];4      tV ! R) R*];4      tWRIR+ R, lltX ! R- R.]J4      tY ! R/ R0]J4      tZ ! R1 R2]K4      t[ ! R3 R4]I4      t\ ! R5 R6]=4      t] ! R7 R8]A4      t^], ! R9 R:]>4      4       t_ ! R; R<]_4      t` ! R= R>]_4      ta ! R? R@]_4      tb], ! RA RB]_4      4       tc ! RC RD]_]4      td], ! RE RF]_4      4       te], ! RG RH]_4      4       tf. RJOtgR# )Ké    N)ÚCallable)ÚAny)Ústrict)Úinitialization)ÚDynamicCacheÚEncoderDecoderCacheÚStaticCache)ÚPreTrainedConfig)ÚGenerationConfigÚGenerationMixinÚGenerationMode)Úcreate_bidirectional_mask)ÚFlashAttentionKwargs)ÚBaseModelOutputÚ)BaseModelOutputWithPastAndCrossAttentionsÚBaseModelOutputWithPoolingÚSeq2SeqLMOutputÚSeq2SeqModelOutputÚSequenceClassifierOutputÚTokenClassifierOutput)ÚROPE_INIT_FUNCTIONS)ÚALL_ATTENTION_FUNCTIONSÚPreTrainedModel)ÚUnpack)ÚTransformersKwargsÚauto_docstringÚcan_return_tupleÚloggingÚtorch_compilable_check)Úmerge_with_config_defaults)ÚOutputRecorderÚcapture_outputs)Ú	AutoModel)ÚGemma3ConfigÚGemma3TextConfig)ÚGemma3AttentionÚ	Gemma3MLPÚGemma3MultiModalProjectorÚGemma3PreTrainedModelÚGemma3RMSNormÚGemma3RotaryEmbeddingÚGemma3TextScaledWordEmbeddingÚapply_rotary_pos_embÚcreate_causal_maskÚ!create_sliding_window_causal_maskÚeager_attention_forward)ÚSiglipVisionConfig)ÚT5GemmaClassificationHeadÚT5GemmaEncoderLayerÚT5GemmaLMHeadzgoogle/t5gemma-2-270m-270m)Ú
checkpointc                   ó<   a € ] tR t^Lt o RtRt]! 4       tR tRt	V t
R# )ÚT5Gemma2TextConfigáX  
query_pre_attn_scalar (`float`, *optional*, defaults to 256):
    Scaling factor used on the attention scores
final_logit_softcapping (`float`, *optional*):
    Scaling factor when applying tanh softcapping on the logits.
attn_logit_softcapping (`float`, *optional*):
    Scaling factor when applying tanh softcapping on the attention scores.
Út5gemma2_textc                ó  € VP                  R ^4      pV P                  fL   \        V P                  4       Uu. uF&  p\	        V^,           V,          4      '       d   RMRNK(  	  upV n        \
        P                  ! R/ VB  R# u upi ©Úsliding_window_patternNÚsliding_attentionÚfull_attention© ©ÚpopÚlayer_typesÚrangeÚnum_hidden_layersÚboolr
   Ú__post_init__©ÚselfÚkwargsÚ_sliding_window_patternÚis   &,  Ún/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/t5gemma2/modular_t5gemma2.pyrF   Ú T5Gemma2TextConfig.__post_init__[   ó€   € à"(§*¡*Ð-EÀqÓ"IÐØ×ÑÒ#ô ˜t×5Ñ5Ô6ó á6�Aô (,¨Q°­UÐ6MÕ,M×'NÒ'NÑ#ÐTdÒdÙ6ñ ˆDÔô
 	×&Ò&Ñ0¨Ô0ùò ó   ¸,B©rB   N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú
model_typeÚAttributeErrorÚuse_bidirectional_attentionrF   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @rL   r7   r7   L   s$   ø‡ € ñð !€JÙ"0Ó"2Ð÷	1ð 	1ó    r7   c                   ó&   € ] tR t^gtRtR]R]/tRtR# )ÚT5Gemma2EncoderConfigÚt5gemma2_encoderÚtext_configÚvision_configr?   N)	rR   rS   rT   rU   rW   r7   r1   Úsub_configsrZ   r?   r^   rL   r`   r`   g   s   † ð $€Jð 	Ð)ØÐ+ð„Kr^   r`   c                   ó<   a € ] tR t^rt o RtRt]! 4       tR tRt	V t
R# )ÚT5Gemma2DecoderConfigr8   Út5gemma2_decoderc                ó  € VP                  R ^4      pV P                  fL   \        V P                  4       Uu. uF&  p\	        V^,           V,          4      '       d   RMRNK(  	  upV n        \
        P                  ! R/ VB  R# u upi r;   r@   rG   s   &,  rL   rF   Ú#T5Gemma2DecoderConfig.__post_init__�   rN   rO   rP   NrQ   r\   s   @rL   rf   rf   r   s$   ø‡ € ñð $€JÙ"0Ó"2Ð÷	1ð 	1r^   rf   c                   ó’   a a€ ] tR t^�t oRtRtR.tR]R]/t	RRRR	/t
R
tR
tRtRtRtRtRtRtR
tRtV 3R ltR tV3R ltRtVtV ;t# )ÚT5Gemma2Configa,  
encoder (`Union[T5Gemma2EncoderConfig, dict]`, optional, *optional*):
    Configuration for the encoder.
decoder (`Union[T5Gemma2DecoderConfig, dict]`, optional, *optional*):
    Configuration for the decoder.
eoi_token_index (`int`, *optional*):
    The end-of-image token index to wrap the image prompt. Will be same as
    `self.encoder.eoi_token_index`

```python
>>> from transformers import T5Gemma2Config, T5Gemma2Model
>>> t5gemma2_config = T5Gemma2Config.from_pretrained("google/t5gemma-270m-270m")
>>> model = T5Gemma2Model(t5gemma2_config)
```
Út5gemma2Úpast_key_valuesÚencoderÚdecoderÚimage_token_idÚimage_token_indexÚeoi_token_idÚeoi_token_indexNTç        g{®Gáz”?iè c                óä  <€ \        V P                  \        4      '       d   \        R/ V P                  B V n        M2V P                  f%   \        4       V n        \        P                  R4       \        V P                  \        4      '       d   \        R/ V P                  B V n        M2V P                  f%   \        4       V n        \        P                  R4       V P                  V P                  P                  n        V P                  V P                  P                  n
        V P                  V P                  P                  n
        V P                  V P                  n        V P                  V P                  n        V P                  V P                  n
        V P                  P                  V n        R F#  pW!9  g   K  \        V P                  V4      W&   K%  	  \        SV `@  ! R/ VB  R # )NzDencoder is None, using default T5Gemma2EncoderConfig encoder config.zDdecoder is None, using default T5Gemma2DecoderConfig decoder config.r?   )Úbos_token_idÚpad_token_idÚeos_token_idÚ
vocab_size)Ú
isinstancern   Údictr`   ÚloggerÚinforo   rf   Údropout_raterb   Úattention_dropoutrc   rq   rs   ÚgetattrÚsuperrF   )rH   rI   Úspecial_token_keyÚ	__class__s   &, €rL   rF   ÚT5Gemma2Config.__post_init__¸   sU  ø€ Ü�d—l‘l¤D×)Ò)Ü0Ñ@°4·<±<Ñ@ˆD�LØ�\‰\Ò!Ü0Ó2ˆDŒLÜ�K‰KÐ^Ô_ä�d—l‘l¤D×)Ò)Ü0Ñ@°4·<±<Ñ@ˆD�LØ�\‰\Ò!Ü0Ó2ˆDŒLÜ�K‰KÐ^Ô_à04×0AÑ0Aˆ�‰× Ñ Ô-Ø59×5KÑ5Kˆ�‰× Ñ Ô2Ø7;×7MÑ7Mˆ�‰×"Ñ"Ô4Ø)-×)?Ñ)?ˆ�‰Ô&à$(×$5Ñ$5ˆ�‰Ô!Ø)-×)?Ñ)?ˆ�‰Ô&Ø#Ÿ|™|×;Ñ;ˆÔã!_ÐØ Ö.Ü,3°D·L±LÐBSÓ,T�Ó)ñ "`ô 	‰ÒÑ' Ô'r^   c                ó4  € V P                   P                  P                  V P                  P                  8w  dE   \	        RV P                   P                  P                   RV P                  P                   R24      hV P
                  '       g   \	        R4      hV P                   P                  P                  V P                  P                  8w  dE   \	        RV P                   P                  P                   RV P                  P                   R24      hR# )zOPart of `@strict`-powered validation. Validates the architecture of the config.zBImbalanced encoder-decoder is not supported in T5Gemma2: encoder (z) vs decoder (z).z4T5Gemma2Model only support encoder-decoder modeling.zRImbalanced encoder-decoder vocabulary size is not supported in T5Gemma2: encoder (N)rn   rb   Úhidden_sizero   Ú
ValueErrorÚis_encoder_decoderry   ©rH   s   &rL   Úvalidate_architectureÚ$T5Gemma2Config.validate_architectureÔ   sí   € à�<‰<×#Ñ#×/Ñ/°4·<±<×3KÑ3KÔKÜðØ ŸL™L×4Ñ4×@Ñ@ÐAÀÐPT×P\ÑP\×PhÑPhÐOiÐikðmóð ð
 ×&×&Ð&ÜÐSÓTÐTà�<‰<×#Ñ#×.Ñ.°$·,±,×2IÑ2IÔIÜðØ ŸL™L×4Ñ4×?Ñ?Ð@ÀÈtÏ|É|×OfÑOfÐNgÐgiðkóð ñ Jr^   c                ó8  <€ V ^8„  d   Qh/ S[ S[S[S[3,          ,          R,          ;R&   S[S[S[S[3,          ,          R,          ;R&   S[;R&   S[S[,          ;R&   S[S[,          ;R&   S[S[,          ;R&   S[;R&   S[;R	&   S[R,          ;R
&   S[;R&   # )é   Nrn   ro   rˆ   r~   r   Úclassifier_dropout_rateÚinitializer_rangerq   rs   Útie_word_embeddings)r`   r{   Ústrr   rf   rE   ÚfloatÚint)Úformatr]   s   "€rL   Ú__annotate__ÚT5Gemma2Config.__annotate__�   sÏ   ø‡ ‚ ñ@ #¡T©#©s¨(¥^Õ3°dÕ:ÑAñA ñB #¡T©#©s¨(¥^Õ3°dÕ:ÑAñC ñD Ñ#ñE ñF ™#•+Ñ#ñG ñH ™s•{Ñ(ñI ñJ #¡S�[Ñ.ñK ñL Ñ#ñM ñN Ñ$ñO ñP ˜4•ZÑ&ñQ ñR Ñ$òS r^   )ro   rn   rs   )rR   rS   rT   rU   rV   rW   Úkeys_to_ignore_at_inferencer`   rf   rd   Úattribute_maprn   ro   rˆ   r~   r   rŽ   r�   rq   rs   r�   rF   rŠ   Ú__annotate_func__rZ   r[   Ú__classcell__©rƒ   r]   s   @@rL   rk   rk   �   s‘   ù‡ € ñð  €JØ#4Ð"5Ðð 	Ð(ØÐ(ð€Kð 	Ð-ØÐ)ð€Mð
 >B€GØ=A€GØ#ÐØ #€LØ%(ÐØ+.ÐØ#ÐØ$ÐØ"&€OØ $Ðõ(ò8÷O … r^   rk   c                   ó   € ] tR t^ætRtR# )ÚT5Gemma2RMSNormr?   N©rR   rS   rT   rU   rZ   r?   r^   rL   r�   r�   æ   ó   † Ûr^   r�   c                   óD   a a€ ] tR t^êt oV3R lV 3R lltR tRtVtV ;t# )ÚT5Gemma2MLPc                ó    <€ V ^8„  d   QhRS[ /# ©r�   Úconfig©r7   )r”   r]   s   "€rL   r•   ÚT5Gemma2MLP.__annotate__ë   s   ø€ ÷ 7ñ 7Ñ1ñ 7r^   c                óp   <€ \         SV `  V4       \        P                  ! VP                  4      V n        R # ©N)r�   Ú__init__ÚnnÚDropoutr~   Údropout©rH   r¤   rƒ   s   &&€rL   r©   ÚT5Gemma2MLP.__init__ë   s&   ø€ Ü‰Ñ˜Ô Ü—z’z &×"5Ñ"5Ó6ˆŽr^   c                ó¶   € V P                  V P                  V4      4      V P                  V4      ,          pV P                  V4      pV P	                  V4      pV# r¨   )Úact_fnÚ	gate_projÚup_projr¬   Ú	down_proj)rH   ÚxÚhidden_statesr³   s   &&  rL   ÚforwardÚT5Gemma2MLP.forwardï   sH   € ØŸ™ D§N¡N°1Ó$5Ó6¸¿¹Àa»ÕHˆØŸ™ ]Ó3ˆØ—N‘N =Ó1ˆ	ØÐr^   )r¬   )	rR   rS   rT   rU   r©   r¶   rZ   r[   rš   r›   s   @@rL   r¡   r¡   ê   s   ù‡ € ÷7ó 7÷ò r^   r¡   c                   ó   € ] tR t^ötRtR# )ÚT5Gemma2RotaryEmbeddingr?   Nrž   r?   r^   rL   r¹   r¹   ö   rŸ   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# )ÚT5Gemma2SelfAttentionc                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r�   r¤   Ú	layer_idx©r7   r“   )r”   r]   s   "€rL   r•   Ú"T5Gemma2SelfAttention.__annotate__û   ó   ø€ ÷ ñ Ñ1ð ¹cñ r^   c                ó4   <€ \         SV `  W4       R V n        R# ©FN©r�   r©   Ú	is_causal©rH   r¤   r¾   rƒ   s   &&&€rL   r©   ÚT5Gemma2SelfAttention.__init__û   ó   ø€ Ü‰Ñ˜Ô+ØˆŽr^   ©rÅ   ©rR   rS   rT   rU   r©   rZ   r[   rš   r›   s   @@rL   r»   r»   ú   s   ù‡ € ÷÷ ó r^   r»   c                   óX   a a€ ] tR tRt oRt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	# )	ÚT5Gemma2MergedAttentioné   z6Merged self-attention and cross-attention for decoder.c                ó&   <€ V ^8„  d   QhRS[ RS[/# r½   r¿   )r”   r]   s   "€rL   r•   Ú$T5Gemma2MergedAttention.__annotate__  rÁ   r^   c                ó4   <€ \         SV `  W4       R V n        R# rÃ   rÄ   rÆ   s   &&&€rL   r©   Ú T5Gemma2MergedAttention.__init__  rÈ   r^   c                ól  <€ V ^8„  d   QhRS[ P                  RS[S[ P                  S[ P                  3,          RS[ P                  R,          RS[ P                  RS[R,          RS[S[,          RS[S[ P                  S[ P                  R,          S[S[ P                  ,          R,          3,          /# )	r�   rµ   Úposition_embeddingsÚmerged_attention_maskNÚencoder_hidden_statesrm   rI   Úreturn)ÚtorchÚTensorÚtupler   r   r   )r”   r]   s   "€rL   r•   rÏ     sº   ø€ ÷ TBñ TBñ —|‘|ðTBñ #¡5§<¡<±·±Ð#=Õ>ð	TBñ
  %Ÿ|™|¨dÕ2ðTBñ  %Ÿ|™|ðTBñ -¨tÕ3ðTBñ Ñ-Õ.ðTBñ 
‰u�|‰|™UŸ\™\¨DÕ0±%¹¿¹Õ2EÈÕ2LÐLÕ	MñTBr^   c                óò  € VP                   R R p. VORNV P                  N5pVP                   R R p	. V	ORNV P                  N5p
V P                  V4      P                  V4      P	                  ^^4      pV P                  V4      P                  V4      P	                  ^^4      pV P                  V4      P                  V4      P	                  ^^4      pV P                  V4      pV P                  V4      pVw  rï\        W¼Wï4      w  r¼Ve\   VP                  pVP                  WÍV P                  4      w  rÍVP                  P                  V P                  4      pVP                  pVe	   X'       g°   V P                  V4      P                  V
4      P	                  ^^4      pV P                  V4      P                  V
4      P	                  ^^4      pV P                  V4      pVe:   XP                  VVV P                  4      w  ppRVP                  V P                  &   MNXP                   V P                  ,          P"                  pVP                   V P                  ,          P$                  pTpV	^,          p\&        P(                  ! VV.^R7      p\&        P(                  ! VV.^R7      p\*        P,                  ! V P.                  P0                  \2        4      pT! V VVVV3RV P4                  '       d   V P6                  MRRV P8                  /VB w  ppVP:                  ! . VORN5!  P=                  4       pV P?                  V4      pVe   VRR V) 13,          pVRV) R 13,          pMR R ppVVV3# )NT©Údimr¬   rt   Úscaling.éÿÿÿÿ) ÚshapeÚhead_dimÚq_projÚviewÚ	transposeÚk_projÚv_projÚq_normÚk_normr-   Úself_attention_cacheÚupdater¾   Ú
is_updatedÚgetÚcross_attention_cacheÚlayersÚkeysÚvaluesr×   Úcatr   Úget_interfacer¤   Ú_attn_implementationr0   Útrainingr   rÝ   ÚreshapeÚ
contiguousÚo_proj)rH   rµ   rÓ   rÔ   rÕ   rm   rI   Úinput_shapeÚhidden_shapeÚcross_input_shapeÚcross_hidden_shapeÚquery_statesÚ
key_statesÚvalue_statesÚcosÚsinrè   rê   rì   Úcross_key_statesÚcross_value_statesÚcross_key_sizeÚattention_interfaceÚattn_outputÚattn_weightsÚself_attn_weightsÚcross_attn_weightss   &&&&&&,                    rL   r¶   ÚT5Gemma2MergedAttention.forward  sp  € ð $×)Ñ)¨#¨2Ð.ˆØ8˜Ð8 bÐ8¨$¯-©-Ñ8ˆØ1×7Ñ7¸¸Ð<ÐØDÐ0ÐD°"ÐD°d·m±mÑDÐð —{‘{ =Ó1×6Ñ6°|ÓD×NÑNÈqÐRSÓTˆØ—[‘[ Ó/×4Ñ4°\ÓB×LÑLÈQÐPQÓRˆ
Ø—{‘{ =Ó1×6Ñ6°|ÓD×NÑNÈqÐRSÓTˆà—{‘{ <Ó0ˆØ—[‘[ Ó,ˆ
à&‰ˆÜ#7¸ÐRUÓ#[Ñ ˆàÒ&à#2×#GÑ#GÐ Ø';×'BÑ'BÀ:Ð]a×]kÑ]kÓ'lÑ$ˆJð )×3Ñ3×7Ñ7¸¿¹ÓGˆJØ$3×$IÑ$IÐ!àÒ"¯*Ø#Ÿ{™{Ð+@ÓA×FÑFÐGYÓZ×dÑdÐefÐhiÓjÐØ!%§¡Ð-BÓ!C×!HÑ!HÐI[Ó!\×!fÑ!fÐghÐjkÓ!lÐà#Ÿ{™{Ð+;Ó<ÐàÒ*Ø7L×7SÑ7SØ$Ð&8¸$¿.¹.ó8Ñ4Ð Ð"4ð >B�×*Ñ*¨4¯>©>Ñ:øà4×;Ñ;¸D¿N¹NÕK×PÑPÐØ!6×!=Ñ!=¸d¿n¹nÕ!M×!TÑ!TÐð $ˆØ*¨1Õ-ˆÜ—Y’Y 
Ð,<Ð=À1ÔEˆ
Ü—y’y ,Ð0BÐ!CÈÔKˆä(?×(MÒ(MØ�K‰K×,Ñ,Ô.Eó)
Ðñ %8ØØØØØ!ñ	%
ð /3¯m¯m¨m�D×*Ò*Àð	%
ð —L‘Lð	%
ð ñ	%
Ñ!ˆ�\ð "×)Ò)Ð;¨;Ð;¸Ó;×FÑFÓHˆØ—k‘k +Ó.ˆð Ò#Ø ,¨SÐ2B°N°?Ð2BÐ-BÕ CÐØ!-¨c°N°?Ñ3CÐ.CÕ!DÑà48¸$Ð1ÐØÐ-Ð/AÐAÐAr^   rÉ   r¨   ©
rR   rS   rT   rU   rV   r©   r¶   rZ   r[   rš   r›   s   @@rL   rÌ   rÌ      s'   ù‡ € Ù@÷ó ÷TB÷ TBò TBr^   rÌ   c                ó0   € V ^8„  d   QhR\         R\        /# )r�   Úsliding_windowrÖ   )r“   r   )r”   s   "rL   r•   r•   ^  s   € ÷ ñ ´ð Ìñ r^   c                ó   a a€ R VV 3R llpV# )zD
This creates uni/bidirectional attention mask with sliding window.
c          
      óT   € V ^8„  d   QhR\         R\         R\         R\         R\        /# )r�   Ú	batch_idxÚhead_idxÚq_idxÚkv_idxrÖ   )r“   rE   )r”   s   "rL   r•   Ú2sliding_window_mask_function.<locals>.__annotate__c  s/   € ÷ 	&ñ 	&œcð 	&¬Sð 	&¼ð 	&Äcð 	&Ìdñ 	&r^   c                 ó¶   <€ S	'       d   S
^ rTMS
^,           ^,          S
^,          ^,           rTW#,
          pV^ 8¬  Wd8  ,          pV^ 8  V) V8  ,          pWx,          # )r   r?   )r  r  r  r  Úleft_window_sizeÚright_window_sizeÚdistÚ	left_maskÚ
right_maskrÅ   r  s   &&&&     €€rL   Ú
inner_maskÚ0sliding_window_mask_function.<locals>.inner_maskc  sc   ø€ ßØ2@À!Ñ/à4BÀQÕ4FÈ1Õ3LÈ~ÐbcÕNcÐfgÕNgÐ/à�~ˆØ˜Q‘Y 4Ñ#:Õ;ˆ	Ø˜Q‘h D 5Ð+<Ñ#<Õ=ˆ
ØÕ%Ð%r^   r?   )r  rÅ   r  s   ff rL   Úsliding_window_mask_functionr  ^  s   ù€ ÷
	&ñ 	&ð Ðr^   c                   ó   € ] tR tRtRtR# )ÚT5Gemma2EncoderLayeriq  r?   Nrž   r?   r^   rL   r  r  q  rŸ   r^   r  c                   óX   a a€ ] tR tRt oRt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	# )	ÚT5Gemma2DecoderLayeriu  zFDecoder sub-layer: merged attention instead of vanilla self-attention.c                ó    <€ V ^8„  d   QhRS[ /# )r�   r¾   )r“   )r”   r]   s   "€rL   r•   Ú!T5Gemma2DecoderLayer.__annotate__x  s   ø€ ÷ 
ñ 
©#ñ 
r^   c                óJ   <€ \         SV `  W4       \        VVR 7      V n        R# ))r¤   r¾   N)r�   r©   rÌ   Ú	self_attnrÆ   s   &&&€rL   r©   ÚT5Gemma2DecoderLayer.__init__x  s$   ø€ Ü‰Ñ˜Ô+ô 1ØØô
ˆŽr^   c                ó2  <€ V ^8„  d   QhRS[ P                  RS[S[ P                  S[ P                  3,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[R,          RS[ P                  R,          R	S[ P                  /# )
r�   rµ   rÓ   rÔ   NÚposition_idsrm   Ú	use_cacherÕ   rÖ   )r×   rØ   rÙ   Ú
LongTensorr   rE   ÚFloatTensor)r”   r]   s   "€rL   r•   r!  �  s�   ø€ ÷  ñ  á—|‘|ð ñ #¡5§<¡<±·±Ð#=Õ>ð ñ  %Ÿ|™|¨dÕ2ð	 ñ
 ×&Ñ&¨Õ-ð ñ -¨tÕ3ð ñ ˜$•;ð ñ  %Ÿ|™|¨dÕ2ð ñ 
×	Ñ	ñ r^   c                ó\  € Tp	V P                  V4      pV P                  ! RR VRVRVRVRVRVRV/VB w  p p
V P                  V4      pW�P                  V4      ,           pTp	V P	                  V4      pV P                  V4      pV P                  V4      pW�P                  V4      ,           pV# )rµ   rÓ   rÔ   r&  rm   r'  rÕ   r?   )Úpre_self_attn_layernormr#  Úpost_self_attn_layernormr¬   Úpre_feedforward_layernormÚmlpÚpost_feedforward_layernorm)rH   rµ   rÓ   rÔ   r&  rm   r'  rÕ   rI   ÚresidualÚ_s   &&&&&&&&,  rL   r¶   ÚT5Gemma2DecoderLayer.forward�  sç   € ð !ˆØ×4Ñ4°]ÓCˆà"Ÿnšnñ 	
Ø'ð	
à 3ð	
ð #8ð	
ð &ð		
ð
 ,ð	
ð  ð	
ð #8ð	
ð ñ	
Ñˆ�q˜!ð ×5Ñ5°mÓDˆØ §<¡<°Ó#>Õ>ˆà ˆØ×6Ñ6°}ÓEˆØŸ™ Ó/ˆØ×7Ñ7¸ÓFˆØ §<¡<°Ó#>Õ>ˆØÐr^   )r#  )NNNFNr	  r›   s   @@rL   r  r  u  s!   ù‡ € ÙP÷
ó 
÷ ÷  ò  r^   r  c                   ó   € ] tR tRtRtR# )ÚT5Gemma2LMHeadi¤  r?   Nrž   r?   r^   rL   r4  r4  ¤  rŸ   r^   r4  c                   ó   € ] tR tRtRtR# )ÚT5Gemma2ClassificationHeadi¨  r?   Nrž   r?   r^   rL   r6  r6  ¨  rŸ   r^   r6  c                   ó>   a a€ ] tR tRt oV3R lV 3R lltRtVtV ;t# )ÚT5Gemma2MultiModalProjectori¬  c                ó    <€ V ^8„  d   QhRS[ /# r£   ©r`   )r”   r]   s   "€rL   r•   Ú(T5Gemma2MultiModalProjector.__annotate__­  s   ø€ ÷ !ñ !Ñ4ñ !r^   c                ó&   <€ \         SV `  V4       R # r¨   )r�   r©   r­   s   &&€rL   r©   Ú$T5Gemma2MultiModalProjector.__init__­  s   ø€ Ü‰Ñ˜Ö r^   r?   rÊ   r›   s   @@rL   r8  r8  ¬  s   ù‡ € ÷!÷ !ó !r^   r8  c                   ó^   a a€ ] tR tRt oRtRV3R lV 3R llltV3R lV 3R lltRtVtV ;t	# )	ÚT5Gemma2TextScaledWordEmbeddingi±  zCT5Gemma2 Embedding: override to add eoi token embedding separately.c          
      ó8   <€ V ^8„  d   QhRS[ RS[ RS[ RS[RS[ /# )r�   Únum_embeddingsÚembedding_dimÚpadding_idxÚembed_scalers   )r“   r’   )r”   r]   s   "€rL   r•   Ú,T5Gemma2TextScaledWordEmbedding.__annotate__´  sD   ø€ ÷ 
Kñ 
Káð
Kñ ð
Kñ ð	
Kñ
 ð
Kñ ñ
Kr^   c                ó¦   <€ \         SV `  WW44       WPn        \        P                  ! \
        P                  ! V P                  4      4      V n        R # r¨   )	r�   r©   rs   rª   Ú	Parameterr×   ÚzerosrB  Úeoi_embedding)rH   rA  rB  rC  rD  rs   rƒ   s   &&&&&&€rL   r©   Ú(T5Gemma2TextScaledWordEmbedding.__init__´  s:   ø€ ô 	‰Ñ˜¸ÔQØ.ÔÜŸ\š\¬%¯+ª+°d×6HÑ6HÓ*IÓJˆÖr^   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r�   Ú	input_ids©r×   rØ   )r”   r]   s   "€rL   r•   rE  À  s   ø€ ÷  ñ  ¡§¡ñ  r^   c                óö   <€ \         SV `  V4      V P                  P                  V P                  P
                  4      ,          pV P                  P                  VP
                  4      W!V P                  8H  &   V# r¨   )r�   r¶   rD  ÚtoÚweightÚdtyperI  rs   )rH   rL  Úinput_embeddingsrƒ   s   && €rL   r¶   Ú'T5Gemma2TextScaledWordEmbedding.forwardÀ  sd   ø€ Ü ™7™?¨9Ó5¸×8HÑ8H×8KÑ8KÈDÏKÉK×L]ÑL]Ó8^Õ^ÐØ>B×>PÑ>P×>SÑ>SÐTd×TjÑTjÓ>kÐ d×&:Ñ&:Ñ:Ñ;ØÐr^   )rI  rs   )g      ð?é è r	  r›   s   @@rL   r?  r?  ±  s#   ù‡ € ÙM÷
Kõ 
K÷ ÷  ó  r^   r?  c                   ó`   a € ] tR tRt o RtRtRtRtRR.tRt	R t
V 3R	 lR
 ltV 3R ltRtV tR# )ÚT5Gemma2PreTrainedModeliÆ  ÚmodelTFr  r  Nc                óT  € \         P                  ! W4       \        V\        4      '       d#   \        P
                  ! VP                  4       R# \        V\        4      '       dN   \        P
                  ! VP                  4       \        P                  ! VP                  VP                  4       R# \        V\        4      '       dÛ   VP                  P                  P                  ^ ,          R
,          p\        P                   ! VP                  P                  RV P"                  P$                  V,          R7       \'        VP                  R4      '       dG   VP                  P(                  e-   \        P
                  ! VP                  P(                  4       R# R# R# RVP*                  P,                  9   d#   \        P
                  ! VP                  4       R# \        V\.        4      '       d´   VP0                   F¡  pVP2                  pVP4                  V,          R8w  d   \6        VP4                  V,          ,          pV! VP"                  VR7      w  rV\        P8                  ! \;        W R24      V4       \        P8                  ! \;        W R	24      V4       K£  	  R# R# )r   rt   )ÚmeanÚstdÚbiasNÚRMSNormÚdefault)Ú
layer_typeÚ	_inv_freqÚ_original_inv_freqg      à¿)r   Ú_init_weightsrz   r8  ÚinitÚzeros_Úmm_input_projection_weightr?  rI  Ú	constant_rD  Úscalar_embed_scaler6  Úout_projrP  rß   Únormal_r¤   r�   Úhasattrr[  rƒ   rR   r¹   rB   Úcompute_default_rope_parametersÚ	rope_typer   Úcopy_r€   )rH   ÚmoduleÚscaler^  Úrope_init_fnÚcurr_inv_freqr1  s   &&     rL   ra  Ú%T5Gemma2PreTrainedModel._init_weightsÙ  sÄ  € Ü×%Ò% dÔ3Ü�fÔ9×:Ò:Ü�KŠK˜×9Ñ9Ö:Ü˜Ô ?×@Ò@Ü�KŠK˜×,Ñ,Ô-Ü�NŠN˜6×-Ñ-¨v×/HÑ/HÖIÜ˜Ô :×;Ò;Ø—O‘O×*Ñ*×0Ñ0°Õ3°tÕ;ˆEÜ�LŠL˜Ÿ™×/Ñ/°c¸t¿{¹{×?\Ñ?\Ð_dÕ?dÕeÜ�v—‘¨×/Ò/°F·O±O×4HÑ4HÒ4TÜ—’˜FŸO™O×0Ñ0Ö1ñ 5UÑ/ð ˜&×*Ñ*×3Ñ3Ô3Ü�KŠK˜Ÿ™Ö&Ü˜Ô 7×8Ò8Ø$×0Ô0�
Ø%×EÑE�Ø×#Ñ# JÕ/°9Ô<Ü#6°v×7GÑ7GÈ
Õ7SÕ#T�LÙ#/°·±È*Ô#UÑ �Ü—
’
œ7 6¨\¸Ð+CÓDÀmÔTÜ—
’
œ7 6¨\Ð9KÐ+LÓMÈ}Ö]ó 1ñ 9r^   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r�   ÚlabelsrM  )r”   r]   s   "€rL   r•   Ú$T5Gemma2PreTrainedModel.__annotate__ñ  s   ø€ ÷ !ñ !¹E¿L¹Lñ !r^   c                óB  € V P                   P                  pVP                  pVP                  pVf   \	        R4      hVP                  VP                  4      pVRRR13,          P                  4       VR&   W5R&   Vf   \	        R4      hVP                  VR8H  V4       V# )	zÚ
Shifts input_ids to the right, prepends the decoder_start_token_id, and handles
pad_token_id replacement for labels that were -100.
This is a common preparation step for decoder inputs in sequence-to-sequence models.
Nz:self.model.config.decoder.bos_token_id has to be defined. .z9self.model.config.decoder.pad_token_id has to be defined.rÞ   ).:é   NN).r   iœÿÿÿ)	r¤   ro   rv   rw   r‡   Ú	new_zerosrß   ÚcloneÚmasked_fill_)rH   rs  Údecoder_configÚdecoder_start_token_idrw   Úshifted_input_idss   &&    rL   Ú%prepare_decoder_input_ids_from_labelsÚ=T5Gemma2PreTrainedModel.prepare_decoder_input_ids_from_labelsñ  s¬   € ð Ÿ™×,Ñ,ˆØ!/×!<Ñ!<ÐØ%×2Ñ2ˆà!Ò)ÜÐYÓZÐZð #×,Ñ,¨V¯\©\Ó:ÐØ%+¨C°°"°¨HÕ%5×%;Ñ%;Ó%=Ð˜'Ñ"Ø$:˜&Ñ!àÒÜÐXÓYÐYð 	×&Ñ&Ð'8¸DÑ'@À,ÔOà Ð r^   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r£   ©rk   )r”   r]   s   "€rL   r•   rt  Æ  s   ø‡ ‚ áÑò r^   r?   )rR   rS   rT   rU   Úbase_model_prefixÚsupports_gradient_checkpointingÚ_supports_flash_attnÚ_supports_flex_attnÚ_no_split_modulesÚ_can_record_outputsra  r}  r™   rZ   r[   r\   s   @rL   rV  rV  Æ  sQ   ø‡ € ð  ÐØ&*Ð#ð !ÐàÐð 	ØðÐð
 Ðò^÷0!ð !÷W ƒ r^   rV  c                   óŽ   a a€ ] tR tRt oR]R]/tR
V3R lV 3R lllt]]	]
RV3R lR ll4       4       4       tV3R ltR	tVtV ;t# )ÚT5Gemma2TextEncoderi  Ú
attentionsrµ   c                ó&   <€ V ^8„  d   QhRS[ RS[/# ©r�   r¤   rs   r¿   )r”   r]   s   "€rL   r•   Ú T5Gemma2TextEncoder.__annotate__  s   ø€ ÷ ñ á"ðñ ñr^   c           	     ón  <€ \         SV `  V4       VP                  V n        VP                  V n        \        VP                  VP                  V P                  VP                  R ,          VR7      V n        \        VP                  VP                  R7      V n
        RV n        \        P                  ! \        VP                  4       Uu. uF  p\!        W4      NK  	  up4      V n        \        P$                  ! VP&                  4      V n        \+        V4      V n        V P/                  4        R# u upi ©g      à?)rD  rs   )ÚepsFN)r�   r©   rw   rC  ry   r?  r†   Úembed_tokensr�   Úrms_norm_epsÚnormÚgradient_checkpointingrª   Ú
ModuleListrC   rD   r  rí   r«   r~   r¬   r¹   Ú
rotary_embÚ	post_init©rH   r¤   rs   r¾   rƒ   s   &&& €rL   r©   ÚT5Gemma2TextEncoder.__init__  sõ   ø€ ô
 	‰Ñ˜Ô Ø!×.Ñ.ˆÔØ ×+Ñ+ˆŒä;Ø×ÑØ×ÑØ×ÑØ×*Ñ*¨CÕ/Ø+ô
ˆÔô $ F×$6Ñ$6¸F×<OÑ<OÔPˆŒ	Ø&+ˆÔ#ä—m’mÜFKÈF×LdÑLdÔFeÓfÑFe¸Ô! &Ö4ÑFeÑfó
ˆŒô —z’z &×"5Ñ"5Ó6ˆŒÜ1°&Ó9ˆŒð 	�‰Öùò gó   ÃD2c                óþ   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[/# )	r�   rL  NÚattention_maskr&  Úinputs_embedsÚtoken_type_idsrI   rÖ   ©r×   r(  rØ   r)  r   r   r   )r”   r]   s   "€rL   r•   rŒ  3  sŠ   ø€ ÷ <
ñ <
á×#Ñ# dÕ*ð<
ñ Ÿ™ tÕ+ð<
ñ ×&Ñ&¨Õ-ð	<
ñ
 ×(Ñ(¨4Õ/ð<
ñ Ÿ™ tÕ+ð<
ñ Ñ+Õ,ð<
ñ 
ñ<
r^   c                óä  € VR J VR J,          '       d   \        R4      hVP                  RR 4       Vf   V P                  V4      pVfD   \        P                  ! ^ VP
                  ^,          VP                  R7      P                  ^ 4      p\        T;p\        4      '       gN   RV P                  RVRV/pR\        R/ VB R\        R/ VBR	\        V P                  P                  R
R7      /B /pTp	/ p
\        V P                  P                  4       F  pV P!                  W“V4      W«&   K  	  V P#                  V	4      p	\%        V P&                  R V P                  P(                   4       FS  w  rÍV! V	W P                  P                  V,          ,          WpP                  P                  V,          ,          V3/ VB p	KU  	  V P+                  V	4      p	V P#                  V	4      p	\-        V	R7      # )Nú:You must specify exactly one of input_ids or inputs_embedsrm   ©Údevicer¤   rœ  r›  r>   r=   Úand_mask_functionFrÉ   )Úlast_hidden_stater?   )r‡   rA   r�  r×   Úarangerß   r¢  Ú	unsqueezerz   r{   r¤   r   r  r  ÚsetrB   r•  r¬   Ú	enumeraterí   rD   r’  r   )rH   rL  r›  r&  rœ  r�  rI   Úself_attn_mask_mappingÚmask_kwargsrµ   rÓ   r^  rK   Úlayer_modules   &&&&&&,       rL   r¶   ÚT5Gemma2TextEncoder.forward0  sÚ  € ð ˜Ð -°tÐ";×<Ô<ÜÐYÓZÐZð 	�
‰
Ð$ dÔ+àÒ Ø ×-Ñ-¨iÓ8ˆMàÒÜ Ÿ<š<¨¨=×+>Ñ+>¸qÕ+AÈ-×J^ÑJ^Ô_×iÑiÐjkÓlˆLä°NÐBÐ0ÄD×IÒIà˜$Ÿ+™+Ø Ø  .ðˆKð !Ô";Ñ"J¸kÑ"JØ#Ô%>ñ &Ø!ñ&ä&BÀ4Ç;Á;×C]ÑC]ÐinÔ&oò&ð&Ð"ð &ˆð !ÐÜ˜dŸk™k×5Ñ5Ö6ˆJØ.2¯o©o¸mÐ[eÓ.fÐÓ+ñ 7ð Ÿ™ ]Ó3ˆä(¨¯©Ð5T°t·{±{×7TÑ7TÐ)UÖV‰OˆAÙ(ØØ#§K¡K×$;Ñ$;¸AÕ$>Õ?Ø&§{¡{×'>Ñ'>¸qÕ'AÕBØñ	ð
 ñŠMñ  Wð Ÿ	™	 -Ó0ˆØŸ™ ]Ó3ˆÜØ+ô
ð 	
r^   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r£   r¥   )r”   r]   s   "€rL   r•   rŒ    s   ø‡ ‚ ÙÑò r^   ©r¬   r�  r“  rí   r’  rC  r•  ry   ©rT  )NNNNN)rR   rS   rT   rU   r»   r  r†  r©   r    r"   r   r¶   r™   rZ   r[   rš   r›   s   @@rL   rˆ  rˆ    sV   ù‡ € ð 	Ð+ØÐ-ðÐ÷
õ ð8  ØØ÷<
ñ <
ó ó ó  ð<
÷M … r^   rˆ  c                   ó²   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3R lR l4       4       t	V3R lR	 lt
]RV3R
 lR ll4       tV3R ltRtVtV ;t# )ÚT5Gemma2Encoderir  c                ó&   <€ V ^8„  d   QhRS[ RS[/# r‹  )r`   r“   )r”   r]   s   "€rL   r•   ÚT5Gemma2Encoder.__annotate__u  s   ø€ ÷ ñ á%ðñ ñr^   c                óþ   <€ \         SV `  V4       \        P                  VP                  VR 7      V n        \        P                  ! VP                  R7      V n	        \        V4      V n        V P                  4        R# ))rs   ©r¤   N)r�   r©   rˆ  Ú_from_configrb   Ú
text_modelr#   Úfrom_configrc   Úvision_towerr8  Úmulti_modal_projectorr–  )rH   r¤   rs   rƒ   s   &&&€rL   r©   ÚT5Gemma2Encoder.__init__u  sb   ø€ ô
 	‰Ñ˜Ô ä-×:Ñ:¸6×;MÑ;MÐ_nÐ:ÓoˆŒÜ%×1Ò1¸×9MÑ9MÔNˆÔÜ%@ÀÓ%HˆÔ"ð 	�‰Ör^   c                ó6   € V P                   P                  4       # r¨   )r·  Úget_input_embeddingsr‰   s   &rL   r½  Ú$T5Gemma2Encoder.get_input_embeddingsƒ  s   € Ø�‰×3Ñ3Ó5Ð5r^   c                ó8   € V P                   P                  V4      # r¨   )r·  Úset_input_embeddings©rH   Únew_embeddingss   &&rL   rÀ  Ú$T5Gemma2Encoder.set_input_embeddings†  s   € Ø�‰×3Ñ3°NÓCÐCr^   c                ó`   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[S[,          /# ©r�   Úpixel_valuesrI   rÖ   ©r×   rØ   r   r   rÙ   r   )r”   r]   s   "€rL   r•   r³  ‹  s5   ø€ ÷ 
ñ 
Ù!ŸL™Lð
Ù4:Ñ;MÕ4Nð
á	Ñ+Õ	+ñ
r^   c                óx   € V P                   ! RR VRR/VB pVP                  pV P                  V4      pWSn        V# )rÆ  Úreturn_dictTr?   )r¹  r¤  rº  Úpooler_output)rH   rÆ  rI   Úvision_outputsr¤  Úimage_featuress   &&,   rL   Úget_image_featuresÚ"T5Gemma2Encoder.get_image_features‰  sL   € ð ×*Ò*Ña¸ÐaÐRVÐaÐZ`ÑaˆØ*×<Ñ<ÐØ×3Ñ3Ð4EÓFˆØ'5Ô$àÐr^   c                ó„   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  /# )r�   rL  Nrœ  rÌ  )r×   r(  r)  )r”   r]   s   "€rL   r•   r³  —  sE   ø€ ÷ "ñ "á×#Ñ# dÕ*ð"ñ ×(Ñ(¨4Õ/ð"ñ ×)Ñ)ñ	"r^   c           
     óR  € V P                   P                  pVfj   Vf   \        R4      hW P                  4       ! \        P
                  ! RV\        P                  VP                  R7      4      8H  pVP                  R4      pMW8H  pVP                  4       pVP                  R4      P                  VP                  4      pVP                  ^ ,          VP                  ^,          ,          p\        WbP                  R,          ,          VP                  4       8H  RV RV 24       V# )z×
Obtains multimodal placeholder mask from `input_ids` or `inputs_embeds`, and checks that the placeholder token count is
equal to the length of multimodal features. If the lengths are different, an error is raised.
z9Either `input_ids` or `inputs_embeds` has to be provided.)rQ  r¢  z6Image features and image tokens do not match: tokens: z, features r?   rÞ   )r¤   rp   r‡   r½  r×   ÚfullÚlongr¢  ÚallÚsumr¦  rO  rß   r   Únumel)rH   rL  rœ  rÌ  rp   Úspecial_image_maskÚn_image_tokensÚn_image_featuress   &&&&    rL   Úget_image_placeholder_maskÚ*T5Gemma2Encoder.get_image_placeholder_mask—  s  € ð Ÿ™×3Ñ3ˆØÒØÒ$Ü Ð!\Ó]Ð]Ø!.×2KÑ2KÔ2MÜ—
’
˜2˜~´U·Z±ZÈ×H\ÑH\Ô]ó3ñ "Ðð "4×!7Ñ!7¸Ó!;Ñà!*Ñ!<Ðà+×/Ñ/Ó1ˆØ/×9Ñ9¸"Ó=×@Ñ@À×AUÑAUÓVÐØ)×/Ñ/°Õ2°^×5IÑ5IÈ!Õ5LÕLÐÜØ×0Ñ0°Õ4Õ4¸×8LÑ8LÓ8NÑNØDÀ^ÐDTÐT_Ð`pÐ_qÐrô	
ð "Ð!r^   c                ó&  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          R	S[/# )
r�   rL  Nr›  r&  rœ  rÆ  r�  rI   rÖ   rž  )r”   r]   s   "€rL   r•   r³  ¶  sŸ   ø€ ÷ !ñ !á×#Ñ# dÕ*ð!ñ Ÿ™ tÕ+ð!ñ ×&Ñ&¨Õ-ð	!ñ
 ×(Ñ(¨4Õ/ð!ñ ×'Ñ'¨$Õ.ð!ñ Ÿ™ tÕ+ð!ñ Ñ+Õ,ð!ñ 
ñ!r^   c           	     ó†  € VR J VR J,          '       d   \        R4      hVf   V P                  P                  V4      pVeh   V P                  VRR7      P                  pVP                  VP                  VP                  4      pV P                  WVR7      p	VP                  W˜4      pV P                  ! RRVRVRV/VB p
V
# )	Nr   T)rÉ  )rœ  rÌ  rœ  r›  r&  r?   )
r‡   r·  r�  rÍ  rÊ  rO  r¢  rQ  rÙ  Úmasked_scatter)rH   rL  r›  r&  rœ  rÆ  r�  rI   rÌ  Ú
image_maskÚoutputss   &&&&&&&,   rL   r¶   ÚT5Gemma2Encoder.forwardµ  sã   € ð ˜Ð -°tÐ";×<Ô<ÜÐYÓZÐZàÒ Ø ŸO™O×8Ñ8¸ÓCˆMàÒ#Ø!×4Ñ4°\ÈtÐ4ÓT×bÑbˆNØ+×.Ñ.¨}×/CÑ/CÀ]×EXÑEXÓYˆNà×8Ñ8ØÀ~ð 9ó ˆJð *×8Ñ8¸ÓTˆMà—/’/ñ 
Ø'ð
à)ð
ð &ð
ð ñ	
ˆð ˆr^   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r£   r:  )r”   r]   s   "€rL   r•   r³  r  ó   ø‡ ‚ Ù!Ñ!ò r^   )rº  r·  r¹  r¯  )NNNNNN)rR   rS   rT   rU   r©   r½  rÀ  r   r   rÍ  rÙ  r¶   r™   rZ   r[   rš   r›   s   @@rL   r±  r±  r  sa   ù‡ € ÷õ ò6òDð Ø÷
ó ó ð
÷"ð "ð< ÷!ñ !ó ð!÷I … r^   r±  c                   ó²   a a€ ] tR tRt oR]! ]^R7      R]! ]^R7      R]/tRV3R lV 3R lllt]	]
]RV3R lR	 ll4       4       4       tV3R
 ltRtVtV ;t# )ÚT5Gemma2DecoderiÚ  r‰  )ÚindexÚcross_attentionsrµ   c                ó&   <€ V ^8„  d   QhRS[ RS[/# r‹  )rf   r“   )r”   r]   s   "€rL   r•   ÚT5Gemma2Decoder.__annotate__â  s   ø€ ÷ ñ Ñ4ð Ásñ r^   c           	     ón  <€ \         SV `  V4       VP                  V n        VP                  V n        \        VP                  VP                  VP                  VP                  R ,          VR7      V n        \        VP                  VP                  R7      V n
        RV n        \        P                  ! \        VP                  4       Uu. uF  p\!        W4      NK  	  up4      V n        \        P$                  ! VP&                  4      V n        \+        V4      V n        V P/                  4        R# u upi rŽ  )r�   r©   rw   rC  ry   r?  r†   r�  r�   r‘  r’  r“  rª   r”  rC   rD   r  rí   r«   r~   r¬   r¹   r•  r–  r—  s   &&& €rL   r©   ÚT5Gemma2Decoder.__init__â  sñ   ø€ Ü‰Ñ˜Ô Ø!×.Ñ.ˆÔØ ×+Ñ+ˆŒä;Ø×ÑØ×ÑØ×ÑØ×*Ñ*¨CÕ/Ø+ô
ˆÔô $ F×$6Ñ$6¸F×<OÑ<OÔPˆŒ	Ø&+ˆÔ#ä—m’mÜFKÈF×LdÑLdÔFeÓfÑFe¸Ô! &Ö4ÑFeÑfó
ˆŒô —z’z &×"5Ñ"5Ó6ˆŒÜ1°&Ó9ˆŒØ�‰Öùò	 gr™  c                óN  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[ P                  R,          RS[R,          RS[ P                  R,          R	S[ P                  R,          R
S[S[,          RS[/
# )r�   rL  Nr›  r&  rm   rœ  r'  rÕ   Úencoder_attention_maskrI   rÖ   )	r×   r(  rØ   r   r)  rE   r   r   r   )r”   r]   s   "€rL   r•   rè  û  sÆ   ø€ ÷ \
ñ \
á×#Ñ# dÕ*ð\
ñ Ÿ™ tÕ+ð\
ñ ×&Ñ&¨Õ-ð	\
ñ
 -¨tÕ3ð\
ñ ×(Ñ(¨4Õ/ð\
ñ ˜$•;ð\
ñ  %Ÿ|™|¨dÕ2ð\
ñ !&§¡¨tÕ 3ð\
ñ Ñ+Õ,ð\
ñ 
3ñ\
r^   c	                ó¦  € VR J VR J,          '       d   \        R4      hVf   \        R4      hVf   V P                  V4      pV P                  '       g5   V'       d-   Vf)   \        \	        V P
                  R7      \	        4       4      pVfb   Ve   VP                  4       M^ p
\        P                  ! VP                  ^,          VP                  R7      V
,           pVP                  ^ 4      p\        T;p\        4      '       gA   RV P
                  RTRTRVe   VP                  MR R	VR
R/pR\        R/ VB R\!        R/ VB /p\        T;p\        4      '       g   R\#        V P
                  VVVRR7      /pR\        P$                  ! VR,          VR,          .RR7      R\        P$                  ! VR,          VR,          .RR7      /pTp/ p\'        V P
                  P(                  4       F  pV P+                  WóV4      VV&   K  	  V P-                  V4      p\/        V P0                  R V P
                  P2                   4       FX  w  ppV! VVV P
                  P(                  V,          ,          WàP
                  P(                  V,          ,          VVVV3/ V	B pKZ  	  V P5                  V4      pV P-                  V4      p\7        VVR7      # )Nr   z0`encoder_hidden_states` must be given in decoderrµ  r¡  r¤   rœ  r›  rm   r&  Úallow_is_causal_skipFr>   r=   )r¤   rœ  r›  rÕ   Úallow_is_bidirectional_skiprÛ   )r¤  rm   r?   rÞ   )r‡   r�  ró   r   r   r¤   Úget_seq_lengthr×   r¥  rß   r¢  r¦  rz   r{   rè   r.   r/   r   rð   r§  rB   r•  r¬   r¨  rí   rD   r’  r   )rH   rL  r›  r&  rm   rœ  r'  rÕ   rì  rI   Úpast_seen_tokensr©  rª  Úcross_attn_mask_mappingÚmerged_attn_mask_mappingrµ   rÓ   r^  rK   r«  s   &&&&&&&&&,          rL   r¶   ÚT5Gemma2Decoder.forwardø  sÉ  € ð ˜Ð -°tÐ";×<Ô<ÜÐYÓZÐZØ Ò(ÜÐOÓPÐPàÒ Ø ×-Ñ-¨iÓ8ˆMà�}�}ˆ}§¨Ò/FÜ1´,ÀdÇkÁkÔ2RÔT`ÓTbÓcˆOàÒØCRÒC^˜×=Ñ=Ô?ÐdeÐÜ Ÿ<š<¨×(;Ñ(;¸AÕ(>À}×G[ÑG[Ô\Ð_oÕoˆLØ'×1Ñ1°!Ó4ˆLä°NÐBÐ0ÄD×IÒIð ˜$Ÿ+™+Ø Ø  .Ø!È?ÒKf ?×#GÒ#GÐlpØ Ø&¨ðˆKð !Ô"4Ñ"C°{Ñ"CØ#Ô%FÑ%UÈÑ%Uð&Ð"ô
 Ð5KÐKÐ1ÌT×RÒRà Ô";ØŸ;™;Ø"/Ø#9Ø*?Ø05ô#ð'Ð#ð œeŸišiØ'Ð(8Õ9Ð;RÐScÕ;dÐeÐkmôð  ¤§¢Ø'Ð(;Õ<Ð>UÐVfÕ>gÐhÐnpô"ð	$
Ð ð &ˆð !ÐÜ˜dŸk™k×5Ñ5Ö6ˆJØ.2¯o©o¸mÐ[eÓ.fÐ 
Ó+ñ 7ð Ÿ™ ]Ó3ˆä(¨¯©Ð5T°t·{±{×7TÑ7TÐ)UÖV‰OˆAˆ|Ù(ØØ# D§K¡K×$;Ñ$;¸AÕ$>Õ?Ø(¯©×)@Ñ)@ÀÕ)CÕDØØØØ%ñ	ð ñ	ŠMñ  Wð Ÿ	™	 -Ó0ˆØŸ™ ]Ó3ˆÜ8Ø+Ø+ô
ð 	
r^   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # r£   )rf   )r”   r]   s   "€rL   r•   rè  Ú  râ  r^   r®  r¯  )NNNNNNNN)rR   rS   rT   rU   r!   rÌ   r  r†  r©   r    r"   r   r¶   r™   rZ   r[   rš   r›   s   @@rL   rä  rä  Ú  sm   ù‡ € ð 	‘nÐ%<ÀAÔFØ™NÐ+BÈ!ÔLØÐ-ðÐ÷õ ð,  ØØ÷\
ñ \
ó ó ó  ð\
÷C … r^   rä  c                   óœ   a a€ ] tR tRt oRRRR/tV3R lV 3R lltRV3R lR	 lltR
 tR tR t	]
]RV3R lR ll4       4       tRtVtV ;t# )ÚT5Gemma2ModeliZ  zdecoder.embed_tokens.weightz&encoder.text_model.embed_tokens.weightz"decoder.embed_tokens.eoi_embeddingz-encoder.text_model.embed_tokens.eoi_embeddingc                ó    <€ V ^8„  d   QhRS[ /# r£   r€  )r”   r]   s   "€rL   r•   ÚT5Gemma2Model.__annotate__a  s   ø€ ÷ ñ ™~ñ r^   c                óÚ   <€ \         SV `  V4       \        VP                  VP                  4      V n        \        VP                  VP                  4      V n        V P                  4        R # r¨   )r�   r©   r±  rn   rs   rä  ro   r–  r­   s   &&€rL   r©   ÚT5Gemma2Model.__init__a  sL   ø€ Ü‰Ñ˜Ô ô ' v§~¡~°v×7MÑ7MÓNˆŒÜ& v§~¡~°v×7MÑ7MÓNˆŒà�‰Ör^   c                ó.   <€ V ^8„  d   QhRS[ R,          /# ©r�   ÚmodalityN©r‘   )r”   r]   s   "€rL   r•   rù  j  s   ø€ ÷ ñ ¡C¨$¥Jñ r^   c                ó   € V P                   # r¨   )rn   ©rH   rþ  s   &&rL   Úget_encoderÚT5Gemma2Model.get_encoderj  ó   € Ø�|‰|Ðr^   c                ó   € V P                   # r¨   ©ro   r‰   s   &rL   Úget_decoderÚT5Gemma2Model.get_decoderm  r  r^   c                ó6   € V P                   P                  4       # r¨   )rn   r½  r‰   s   &rL   r½  Ú"T5Gemma2Model.get_input_embeddingsp  s   € Ø�|‰|×0Ñ0Ó2Ð2r^   c                ó8   € V P                   P                  V4      # r¨   )rn   rÀ  rÁ  s   &&rL   rÀ  Ú"T5Gemma2Model.set_input_embeddingss  s   € Ø�|‰|×0Ñ0°Ó@Ð@r^   c                óÚ  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          R	S[R,          R
S[R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[S[	,          RS[
/# )r�   rL  NrÆ  r›  r&  Údecoder_input_idsÚdecoder_attention_maskÚdecoder_position_idsÚencoder_outputsrm   rœ  Údecoder_inputs_embedsr'  rI   rÖ   )r×   r(  r)  Ú
BoolTensorr   r   rØ   rE   r   r   r   )r”   r]   s   "€rL   r•   rù  x  s  ø€ ÷ =
ñ =
ñ ×#Ñ# dÕ*ð=
ñ ×'Ñ'¨$Õ.ð	=
ñ
 ×)Ñ)¨DÕ0ð=
ñ ×&Ñ&¨Õ-ð=
ñ !×+Ñ+¨dÕ2ð=
ñ !&× 0Ñ 0°4Õ 7ð=
ñ $×.Ñ.°Õ5ð=
ñ )¨4Õ/ð=
ñ -¨tÕ3ð=
ñ —|‘| dÕ*ð=
ñ  %Ÿ|™|¨dÕ2ð=
ñ  ˜$•;ð!=
ñ" Ñ+Õ,ð#=
ñ$ 
ñ%=
r^   c                ól  € Vf   V P                   ! RRVRVRVRV
RVRR/VB pVP                  pV P                  ! RRVRVRVRVRV	R	VR
VRVRR/	VB p\        VP                  VP                  VP
                  VP                  VP                  VP                  VP
                  VP                  R7      # )a8  
decoder_position_ids (`torch.LongTensor` of shape `(batch_size, decoder_sequence_length)`, *optional*):
    Indices of positions of each decoder input sequence tokens in the position embeddings. Selected in the range `[0,
    config.decoder.n_positions - 1]`. [What are position IDs?](../glossary#position-ids)
rL  r›  r&  rœ  rÆ  rÉ  Trm   rÕ   rì  r'  )r¤  rm   Údecoder_hidden_statesÚdecoder_attentionsræ  Úencoder_last_hidden_staterÕ   Úencoder_attentionsr?   )rn   r¤  ro   r   rm   rµ   r‰  ræ  )rH   rL  rÆ  r›  r&  r  r  r  r  rm   rœ  r  r'  rI   rÕ   Údecoder_outputss   &&&&&&&&&&&&&,  rL   r¶   ÚT5Gemma2Model.forwardv  s/  € ð6 Ò"Ø"Ÿlšlñ Ø#ðà-ðð *ðð ,ð	ð
 *ðð !ðð ñˆOð !0× AÑ AÐð Ÿ,š,ñ 
Ø'ð
à1ð
ð .ð
ð 0ð	
ð
 ,ð
ð #8ð
ð $2ð
ð  ð
ð ð
ð ñ
ˆô "Ø-×?Ñ?Ø+×;Ñ;Ø"1×"?Ñ"?Ø.×9Ñ9Ø,×=Ñ=Ø&5×&GÑ&GØ"1×"?Ñ"?Ø.×9Ñ9ô	
ð 		
r^   )ro   rn   r¨   )NNNNNNNNNNNN)rR   rS   rT   rU   Ú_tied_weights_keysr©   r  r  r½  rÀ  r   r   r¶   rZ   r[   rš   r›   s   @@rL   r÷  r÷  Z  se   ù‡ € ð 	&Ð'OØ,Ð.]ðÐ÷
ó ÷ò òò3òAð Ø÷=
ñ =
ó ó ÷=
ð =
r^   r÷  c                   ó
  a a€ ] tR tRt oRR/tRR/tRR.R.3/tV3R lV 3R	 lltR
 tR t	R t
R tRV3R lR lltR t]]V3R lR l4       4       t]R 4       t]]RV3R lR ll4       4       tV3R lV 3R lltRtVtV ;t# )Ú T5Gemma2ForConditionalGenerationi¸  zlm_head.out_proj.weightz,model.encoder.text_model.embed_tokens.weightzlm_head.out_projÚcolwise_gather_outputrµ   Úlogitsc                ó    <€ V ^8„  d   QhRS[ /# r£   r€  )r”   r]   s   "€rL   r•   Ú-T5Gemma2ForConditionalGeneration.__annotate__¿  s   ø€ ÷ ñ ™~ñ r^   c                ó  <€ \         SV `  V4       \        V4      V n        VP                  P
                  V n        \        VP                  P                  V P
                  4      V n        R V n	        V P                  4        R# )ÚForMaskedLMN)r�   r©   r÷  rW  ro   ry   r4  r†   Úlm_headÚ	loss_typer–  r­   s   &&€rL   r©   Ú)T5Gemma2ForConditionalGeneration.__init__¿  sZ   ø€ Ü‰Ñ˜Ô ä" 6Ó*ˆŒ
Ø Ÿ.™.×3Ñ3ˆŒÜ% f§n¡n×&@Ñ&@À$Ç/Á/ÓRˆŒØ&ˆŒà�‰Ör^   c                ó&   € WP                   n        R # r¨   ©r$  rg  rÁ  s   &&rL   Úset_output_embeddingsÚ6T5Gemma2ForConditionalGeneration.set_output_embeddingsÉ  s   € Ø .�‰Ör^   c                ó.   € V P                   P                  # r¨   r(  r‰   s   &rL   Úget_output_embeddingsÚ6T5Gemma2ForConditionalGeneration.get_output_embeddingsÌ  s   € Ø�|‰|×$Ñ$Ð$r^   c                ó6   € V P                   P                  4       # r¨   ©rW  r½  r‰   s   &rL   r½  Ú5T5Gemma2ForConditionalGeneration.get_input_embeddingsÏ  ó   € Ø�z‰z×.Ñ.Ó0Ð0r^   c                ó<   € V P                   P                  V4       R # r¨   ©rW  rÀ  ©rH   Úvalues   &&rL   rÀ  Ú5T5Gemma2ForConditionalGeneration.set_input_embeddingsÒ  ó   € Ø�
‰
×'Ñ'¨Ö.r^   c                ó.   <€ V ^8„  d   QhRS[ R,          /# rý  rÿ  )r”   r]   s   "€rL   r•   r!  Õ  s   ø€ ÷ 9ñ 9¡C¨$¥Jñ 9r^   c                ó:   € V P                   P                  VR 7      # ))rþ  )rW  r  r  s   &&rL   r  Ú,T5Gemma2ForConditionalGeneration.get_encoderÕ  s   € Ø�z‰z×%Ñ%¨xÐ%Ó8Ð8r^   c                ó6   € V P                   P                  4       # r¨   )rW  r  r‰   s   &rL   r  Ú,T5Gemma2ForConditionalGeneration.get_decoderØ  s   € Ø�z‰z×%Ñ%Ó'Ð'r^   c                ó`   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[S[,          /# rÅ  rÇ  )r”   r]   s   "€rL   r•   r!  Ý  s:   ø€ ÷ Mñ MÙ!ŸL™LðMÙ4:Ñ;MÕ4NðMá	Ñ+Õ	+ñMr^   c                óD   € V P                  4       P                  ! V3/ VB # r¨   )r  rÍ  )rH   rÆ  rI   s   &&,rL   rÍ  Ú3T5Gemma2ForConditionalGeneration.get_image_featuresÛ  s#   € ð
 ×ÑÓ!×4Ò4°\ÑLÀVÑLÐLr^   c                ó6   € V P                  4       P                  # r¨   )r  r¹  r‰   s   &rL   r¹  Ú-T5Gemma2ForConditionalGeneration.vision_towerâ  s   € à×ÑÓ!×.Ñ.Ð.r^   c          !      ó`  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          R	S[R,          R
S[R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[S[ P                  ,          RS[	S[
,          RS[S[ P                  ,          S[,          /# )r�   rL  NrÆ  r›  r&  r  r  r  r  rm   rœ  r  rs  r'  Úlogits_to_keeprI   rÖ   )r×   r(  r)  r  r   r   rE   r“   rØ   r   r   rÙ   r   )r”   r]   s   "€rL   r•   r!  è  sZ  ø€ ÷ M
ñ M
ñ ×#Ñ# dÕ*ðM
ñ ×'Ñ'¨$Õ.ð	M
ñ
 ×)Ñ)¨DÕ0ðM
ñ ×&Ñ&¨Õ-ðM
ñ !×+Ñ+¨dÕ2ðM
ñ !&× 0Ñ 0°4Õ 7ðM
ñ $×.Ñ.°Õ5ðM
ñ )¨4Õ/ðM
ñ -¨tÕ3ðM
ñ ×(Ñ(¨4Õ/ðM
ñ  %×0Ñ0°4Õ7ðM
ñ  × Ñ  4Õ'ð!M
ñ" ˜$•;ð#M
ñ$ ™eŸl™lÕ*ð%M
ñ& Ñ+Õ,ð'M
ñ( 
‰u× Ñ Õ	!¡OÕ	3ñ)M
r^   c                óä  € Ve   Vf   Vf   V P                  V4      pV P                  ! RRVRVRVRVRVRVRVR	VR
V	RV
RVRV/VB pVP                  p\        V\        4      '       d   \        V) R4      MTpV P                  VRVR3,          4      pV P                  P                  pVP                  e=   VVP                  ,          p\        P                  ! V4      pVVP                  ,          pRpVe   V P                  ! VWÀP                  3/ VB p\        VVVP                  VP                   VP"                  VP$                  VP&                  VP(                  VP*                  R7	      # )a¼  
decoder_position_ids (`torch.LongTensor` of shape `(batch_size, decoder_sequence_length)`, *optional*):
    Indices of positions of each decoder input sequence tokens in the position embeddings. Selected in the range `[0,
    config.decoder.n_positions - 1]`. [What are position IDs?](../glossary#position-ids)
labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
    Labels for computing the masked language modeling loss. Indices should either be in `[0, ...,
    config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored
    (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`.
NrL  rÆ  r›  r&  r  r  r  r  rm   rœ  r  r'  :NNN)	Úlossr  rm   r  r  ræ  r  rÕ   r  r?   )r}  rW  r¤  rz   r“   Úslicer$  r¤   ro   Úfinal_logit_softcappingr×   ÚtanhÚloss_functionry   r   rm   r  r  ræ  r  rÕ   r  )rH   rL  rÆ  r›  r&  r  r  r  r  rm   rœ  r  rs  r'  rC  rI   r  rµ   Úslice_indicesr  rz  rE  s   &&&&&&&&&&&&&&&,      rL   r¶   Ú(T5Gemma2ForConditionalGeneration.forwardæ  sº  € ðB ÒÐ"3Ò";Ð@UÒ@]à $× JÑ JÈ6Ó RÐà.2¯jªjñ /
Øð/
à%ð/
ð *ð/
ð &ð	/
ð
 0ð/
ð $:ð/
ð "6ð/
ð ,ð/
ð ,ð/
ð (ð/
ð #8ð/
ð  ð/
ð ñ/
ˆð  (×9Ñ9ˆä8BÀ>ÔSV×8WÒ8Wœ˜~˜o¨tÔ4Ð]kˆØ—‘˜m¨A¨}¸aÐ,?Õ@ÓAˆàŸ™×,Ñ,ˆØ×1Ñ1Ò=Ø˜n×DÑDÕDˆFÜ—Z’Z Ó'ˆFØ˜n×DÑDÕDˆFàˆØÒà×%Ò% f¨f·o±oÑPÈÑPˆDäØØØ+×;Ñ;Ø"1×"GÑ"GØ.×AÑAØ,×=Ñ=Ø&5×&OÑ&OØ"1×"GÑ"GØ.×AÑAô

ð 
	
r^   c                ó>   <€ V ^8„  d   QhRS[ RS[RS[RS[RS[RS[/# )r�   Úgeneration_configÚmodel_kwargsÚgeneration_modeÚ
batch_sizeÚmax_cache_lengthrÖ   )r   r{   r   r“   rE   )r”   r]   s   "€rL   r•   r!  7  sO   ø€ ÷ I:ñ I:á+ðI:ñ ðI:ñ (ð	I:ñ
 ðI:ñ ðI:ñ 
ñI:r^   c                ó  <€ \         SV `  VVVVV4       VP                  RJ d   R# VP                  pVf   RpMRVP                  9   p\        P
                  ! V P                  P                  RR7      4      pRVn        R.VP                  ,          Vn
        RVRV/p	VP                  R	4      p
V
e±   \        V
\        4      '       g   \        R
4      h\        V
P                   4      ^ 8”  d$   V
P                   P                  ^ 4      '       d   R# \#        V
P$                  4      pV\&        8X  d%   VR,          ^ ,          P(                  ^,          V	R&   V! R/ V	B V
n        M>\        \+        R/ RV P                  P                  RR7      RV/B \+        4       4      VR	&   \-        V R4      '       dL   V P.                  e<   \        V P.                  \        4      '       g   \        R4      hVR	,          V n        R# R# R# )zMOverride cache preparation to support T5Gemma2-specific EncoderDecoder Cache.FNÚ	offloadedTr  r>   r¤   Ú
offloadingrm   zaThe `past_key_values` in `model_kwargs` must be of type `EncoderDecoderCache` for T5Gemma2 model.r  Úmax_cache_lenÚ_cachezLThe internal cache must be of type `EncoderDecoderCache` for T5Gemma2 model.r?   )r�   Ú_prepare_cache_for_generationr'  Úcache_implementationÚcopyÚdeepcopyr¤   Úget_text_configr  rD   rB   rë   rz   r   r‡   Úlenrê   Útyperì   r	   rß   r   ri  rV  )rH   rM  rN  rO  rP  rQ  rX  Úoffload_cacheÚcross_attn_configÚcross_attn_cache_kwargsrm   Úcross_attn_clsrƒ   s   &&&&&&      €rL   rW  Ú>T5Gemma2ForConditionalGeneration._prepare_cache_for_generation7  sü  ø€ ô 	‰Ñ-ØØØØØô	
ð ×&Ñ&¨%Ó/Ùà0×EÑEÐØÒ'Ø!‰Mà'Ð+<×+QÑ+QÑQˆMô !ŸMšM¨$¯+©+×*EÑ*EÈdÐ*EÓ*SÓTÐð ,0ÐÔ(Ø)9Ð(:Ð=N×=`Ñ=`Õ(`ÐÔ%ð Ð'Ø˜-ð#
Ðð
 '×*Ñ*Ð+<Ó=ˆØÒ&Ü˜oÔ/B×CÒCÜ Øwóð ô
 �?×-Ñ-Ó.°Ô2°×7QÑ7Q×7UÑ7UÐVW×7XÒ7XÙä! /×"GÑ"GÓHˆNØ¤Ô,Ø;GÐHYÕ;ZÐ[\Õ;]×;cÑ;cÐdeÕ;fÐ'¨Ñ8á4BÑ4]ÐE\Ñ4]ˆOÕ1ô /BÜñ à  $§+¡+×"=Ñ"=ÀdÐ"=Ó"KØ$ mðñô “ó/ˆLÐ*Ñ+ô �4˜×"Ò" t§{¡{Ò'>Ü˜dŸk™kÔ+>×?Ò?Ü Ð!oÓpÐpà&Ð'8Õ9ˆDŽKñ	 (?Ñ"r^   )rV  r$  r%  rW  ry   r¨   )NNNNNNNNNNNNNr   )rR   rS   rT   rU   r  Ú_tp_planÚ_pp_planr©   r)  r,  r½  rÀ  r  r  r   r   rÍ  Úpropertyr¹  r¶   rW  rZ   r[   rš   r›   s   @@rL   r  r  ¸  sÊ   ù‡ € à!Ð#QðÐð #Ð$;Ð<€HØ" oÐ%6¸¸
Ð$CÐD€H÷ó ò/ò%ò1ò/÷9ò 9ò(ð Ø÷Mó ó ðMð
 ñ/ó ð/ð Ø÷M
ñ M
ó ó ðM
÷^I:÷ I:ó I:r^   r  c                   ót   a a€ ] tR tRt oV3R lV 3R lltR tR t]]R	V3R lR ll4       4       t	Rt
VtV ;t# )
Ú!T5Gemma2ForSequenceClassificationiƒ  c                ó    <€ V ^8„  d   QhRS[ /# r£   r€  )r”   r]   s   "€rL   r•   Ú.T5Gemma2ForSequenceClassification.__annotate__…  s   ø€ ÷ 	ñ 	™~ñ 	r^   c                ó$  <€ \         SV `  V4       VP                  V n        VP                  P                  V n        \        V4      V n        \        VR R4      p\        V P                  V P                  V4      V n	        V P                  4        R# ©rŽ   gš™™™™™¹?N©r�   r©   Ú
num_labelsro   r†   r÷  rW  r€   r6  Úscorer–  ©rH   r¤   Úclassifier_dropoutrƒ   s   && €rL   r©   Ú*T5Gemma2ForSequenceClassification.__init__…  sp   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒØ!Ÿ>™>×5Ñ5ˆÔä" 6Ó*ˆŒ
ä$ VÐ-FÈÓLÐÜ/°×0@Ñ0@À$Ç/Á/ÐSeÓfˆŒ
Ø�‰Ör^   c                ó6   € V P                   P                  4       # r¨   r/  r‰   s   &rL   r½  Ú6T5Gemma2ForSequenceClassification.get_input_embeddings�  r1  r^   c                ó<   € V P                   P                  V4       R # r¨   r3  r4  s   &&rL   rÀ  Ú6T5Gemma2ForSequenceClassification.set_input_embeddings“  r7  r^   c                óÚ  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          R	S[R,          R
S[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[/# ©r�   rL  NrÆ  r›  r&  r  r  r  r  rœ  r  rs  rI   rÖ   )r×   r(  r)  rØ   r   r   r   r   )r”   r]   s   "€rL   r•   ri  ˜  s  ø€ ÷ J
ñ J
á×#Ñ# dÕ*ðJ
ñ ×'Ñ'¨$Õ.ðJ
ñ Ÿ™ tÕ+ð	J
ñ
 ×&Ñ&¨Õ-ðJ
ñ !×+Ñ+¨dÕ2ðJ
ñ !&§¡¨tÕ 3ðJ
ñ $×.Ñ.°Õ5ðJ
ñ )¨4Õ/ðJ
ñ ×(Ñ(¨4Õ/ðJ
ñ  %×0Ñ0°4Õ7ðJ
ñ × Ñ  4Õ'ðJ
ñ Ñ+Õ,ðJ
ñ 
"ñJ
r^   c                óÐ  € V	f   V
e$   \        RV P                  P                   R24      hVf   \        R4      hVf   V P	                  V4      pV P
                  ! V3RVRVRVRVR	VR
VRVRV	RV
RR/
VB pVP                  pVP                  pVP                  pV P                  V4      pVP                  ^ ,          pWPP                  P                  8g  P                  VP                  \        P                   4      p\        P"                  ! VP                  R,          VP                  \        P                   R7      pVV,          P%                  R4      p\        P&                  ! VVP                  R,          ^,
          R7      pV\        P"                  ! VVP                  R7      V3,          pRpVe    V P)                  VVVV P                  R7      p\+        VVVVR7      # )áœ  
decoder_position_ids (`torch.LongTensor` of shape `(batch_size, decoder_sequence_length)`, *optional*):
    Indices of positions of each decoder input sequence tokens in the position embeddings. Selected in the range `[0,
    config.decoder.n_positions - 1]`. [What are position IDs?](../glossary#position-ids)
labels (`torch.LongTensor` of shape `(batch_size,)`, *optional*):
    Labels for computing the sequence classification/regression loss. Indices should be in `[0, ...,
    config.num_labels - 1]`. If `config.num_labels == 1` a regression loss is computed (Mean-Square loss), If
    `config.num_labels > 1` a classification loss is computed (Cross-Entropy).
Nú8Passing input embeddings is currently not supported for Ú.úYou have to specify input_idsrÆ  r›  r&  r  r  r  r  rœ  r  r'  F)r¢  rQ  )Úmaxr¡  )r  rs  Úpooled_logitsr¤   ©rE  r  rµ   r‰  rÞ   )ÚNotImplementedErrorrƒ   rR   r‡   r}  rW  r¤  r  r  rn  rß   r¤   rw   rO  r¢  r×   Úint32r¥  ÚargmaxÚclamprI  r   )rH   rL  rÆ  r›  r&  r  r  r  r  rœ  r  rs  rI   rß  r¤  rµ   r‰  r  rP  Únon_pad_maskÚtoken_indicesÚlast_non_pad_tokenr~  rE  s   &&&&&&&&&&&&,           rL   r¶   Ú)T5Gemma2ForSequenceClassification.forward–  s  € ð4 Ò$Ð(=Ò(IÜ%ØJÈ4Ï>É>×KbÑKbÐJcÐcdÐeóð ð ÒÜÐ<Ó=Ð=àÒ$Ø $× JÑ JÈ9Ó UÐà&*§j¢jØñ'
à%ð'
ð *ð'
ð &ð	'
ð
 0ð'
ð $:ð'
ð "6ð'
ð ,ð'
ð (ð'
ð #8ð'
ð ð'
ð ñ'
ˆð $×5Ñ5ÐØ×5Ñ5ˆØ×/Ñ/ˆ
à—‘Ð-Ó.ˆà—_‘_ QÕ'ˆ
à)¯[©[×-EÑ-EÑE×IÑIÈ&Ï-É-ÔY^×YdÑYdÓeˆÜŸšÐ%6×%<Ñ%<¸RÕ%@ÈÏÉÔ^c×^iÑ^iÔjˆØ+¨lÕ:×BÑBÀ2ÓFÐÜ"Ÿ[š[Ð);ÐAR×AXÑAXÐY[ÕA\Ð_`ÕA`ÔaÐàœuŸ|š|¨J¸v¿}¹}ÔMÐOaÐaÕbˆàˆØÒØ×%Ñ%¨V¸FÐR_Ðhl×hsÑhsÐ%ÓtˆDä'ØØ Ø'Ø!ô	
ð 	
r^   ©r†   rW  rm  rn  ©NNNNNNNNNNN©rR   rS   rT   rU   r©   r½  rÀ  r   r   r¶   rZ   r[   rš   r›   s   @@rL   rg  rg  ƒ  sC   ù‡ € ÷	ó 	ò1ò/ð Ø÷J
ñ J
ó ó ÷J
ð J
r^   rg  c                   ót   a a€ ] tR tRt oV3R lV 3R lltR tR t]]R	V3R lR ll4       4       t	Rt
VtV ;t# )
ÚT5Gemma2ForTokenClassificationiå  c                ó    <€ V ^8„  d   QhRS[ /# r£   r€  )r”   r]   s   "€rL   r•   Ú+T5Gemma2ForTokenClassification.__annotate__ç  s   ø€ ÷ 
ñ 
™~ñ 
r^   c                ó$  <€ \         SV `  V4       VP                  V n        VP                  P                  V n        \        V4      V n        \        VR R4      p\        V P                  V P                  V4      V n	        V P                  4        R# rk  rl  ro  s   && €rL   r©   Ú'T5Gemma2ForTokenClassification.__init__ç  sp   ø€ Ü‰Ñ˜Ô Ø ×+Ñ+ˆŒØ!Ÿ>™>×5Ñ5ˆÔä" 6Ó*ˆŒ
ä$ VÐ-FÈÓLÐÜ/°×0@Ñ0@À$Ç/Á/ÐSeÓfˆŒ
à�‰Ör^   c                ó6   € V P                   P                  4       # r¨   r/  r‰   s   &rL   r½  Ú3T5Gemma2ForTokenClassification.get_input_embeddingsó  r1  r^   c                ó<   € V P                   P                  V4       R # r¨   r3  r4  s   &&rL   rÀ  Ú3T5Gemma2ForTokenClassification.set_input_embeddingsö  r7  r^   c                óÚ  <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          R	S[R,          R
S[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[S[,          RS[/# rw  )r×   r(  r)  rØ   r   r   r   r   )r”   r]   s   "€rL   r•   rŽ  û  s  ø€ ÷ @
ñ @
á×#Ñ# dÕ*ð@
ñ ×'Ñ'¨$Õ.ð@
ñ Ÿ™ tÕ+ð	@
ñ
 ×&Ñ&¨Õ-ð@
ñ !×+Ñ+¨dÕ2ð@
ñ !&§¡¨tÕ 3ð@
ñ $×.Ñ.°Õ5ð@
ñ )¨4Õ/ð@
ñ ×(Ñ(¨4Õ/ð@
ñ  %×0Ñ0°4Õ7ð@
ñ × Ñ  4Õ'ð@
ñ Ñ+Õ,ð@
ñ 
ñ@
r^   c                óº  € V	f   V
e$   \        RV P                  P                   R24      hVf   \        R4      hVf   V P	                  V4      pV P
                  ! V3RVRVRVRVR	VR
VRVRV	RV
RR/
VB pVP                  pVP                  pVP                  pV P                  V4      pRpVe   V P                  VW°P                  4      p\        VVVVR7      # )ry  Nrz  r{  r|  rÆ  r›  r&  r  r  r  r  rœ  r  r'  Fr  )r€  rƒ   rR   r‡   r}  rW  r¤  r  r  rn  rI  r¤   r   )rH   rL  rÆ  r›  r&  r  r  r  r  rœ  r  rs  rI   rß  r¤  rµ   r‰  r  rE  s   &&&&&&&&&&&&,      rL   r¶   Ú&T5Gemma2ForTokenClassification.forwardù  sJ  € ð4 Ò$Ð(=Ò(IÜ%ØJÈ4Ï>É>×KbÑKbÐJcÐcdÐeóð ð ÒÜÐ<Ó=Ð=àÒ$Ø $× JÑ JÈ9Ó UÐà&*§j¢jØñ'
à%ð'
ð *ð'
ð &ð	'
ð
 0ð'
ð $:ð'
ð "6ð'
ð ,ð'
ð (ð'
ð #8ð'
ð ð'
ð ñ'
ˆð $×5Ñ5ÐØ×5Ñ5ˆØ×/Ñ/ˆ
à—‘Ð-Ó.ˆàˆØÒØ×%Ñ% f¨f·k±kÓBˆDä$ØØØ'Ø!ô	
ð 	
r^   rˆ  r‰  rŠ  r›   s   @@rL   rŒ  rŒ  å  sC   ù‡ € ÷
ó 
ò1ò/ð Ø÷@
ñ @
ó ó ÷@
ð @
r^   rŒ  )T)
rk   r7   r`   rf   r  r÷  r±  rV  rg  rŒ  )hrY  Úcollections.abcr   Útypingr   r×   Útorch.nnrª   Úhuggingface_hub.dataclassesr   Ú r   rb  Úcache_utilsr   r   r	   Úconfiguration_utilsr
   Ú
generationr   r   r   Úmasking_utilsr   Úmodeling_flash_attention_utilsr   Úmodeling_outputsr   r   r   r   r   r   r   Úmodeling_rope_utilsr   Úmodeling_utilsr   r   Úprocessing_utilsr   Úutilsr   r   r   r   r   Úutils.genericr    Úutils.output_capturingr!   r"   Úautor#   Úgemma3.configuration_gemma3r$   r%   Úgemma3.modeling_gemma3r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   Úsiglipr1   Út5gemma.modeling_t5gemmar2   r3   r4   Ú
get_loggerrR   r|   r7   r`   rf   rk   r�   r¡   r¹   r»   rÌ   r  r  r  r4  r6  r8  r?  rV  rˆ  r±  rä  r÷  r  rg  rŒ  Ú__all__r?   r^   rL   Ú<module>r°     s§  ðó Ý $Ý ã Ý Ý .å &ß IÑ IÝ 3ß KÑ KÝ 6Ý B÷÷ ñ õ 7ß FÝ &÷õ õ 8ß EÝ ß H÷÷ ÷ ñ õ (÷ñ ð 
×	Ò	˜HÓ	%€ñ Ð7Ô8Øô1Ð)Ð+;ó 1ó ó 9ð1ñ2 Ð7Ô8Øô˜Ló ó ó 9ðñ Ð7Ô8Øô1Ð,Ð.>ó 1ó ó 9ð1ñ2 Ð7Ô8ØôTÐ%ó Tó ó 9ðTôn	�mô 	ô	�)ô 	ô	Ð3ô 	ô˜Oô ô[B˜oô [B÷|ô&	Ð.ô 	ô,Ð.ô ,ô^	�]ô 	ô	Ð!:ô 	ô!Ð";ô !ô
 Ð&Cô  ð* ôC!Ð3ó C!ó ðC!ôLb
Ð1ô b
ôJeÐ-ô eôP}
Ð-ô }
ð@ ôZ
Ð+ó Z
ó ðZ
ôzH:Ð'>Àô H:ðV ô^
Ð(?ó ^
ó ð^
ðB ôU
Ð%<ó U
ó ðU
òp‚r^   