+
    œ°³j{{  ã                   óJ  € ^ RI t ^ RIt^ RIHt ^ RIHt ^RIHt ^RIH	t	 ^RI
HtHtHt ^RIHt ^RI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 ^RIH t H!t!H"t" ^RI#H$t$ ^RI%H&t&H't' ^RI(H)t) ]"PT                  ! ]+4      t, ! R R]PZ                  4      t. ! R R]PZ                  4      t/ ! R R]PZ                  4      t0 ! R R]PZ                  4      t1 ! R R]PZ                  4      t2 ! R R]PZ                  4      t3 ! R R]4      t4 ! R  R!]PZ                  4      t5 ! R" R#]PZ                  4      t6 ! R$ R%]PZ                  4      t7 ! R& R']PZ                  4      t8 ! R( R)]PZ                  4      t9 ! R* R+]4      t: ! R, R-]:4      t; ! R. R/]:]4      t<. R0Ot=R# )1é    N)Únn)ÚCrossEntropyLoss)Úinitialization)ÚACT2FN)ÚCacheÚDynamicCacheÚEncoderDecoderCache)ÚGenerationMixin)Úcreate_bidirectional_maskÚcreate_causal_mask)ÚGradientCheckpointingLayer)Ú)BaseModelOutputWithPastAndCrossAttentionsÚ,BaseModelOutputWithPoolingAndCrossAttentionsÚ!CausalLMOutputWithCrossAttentions)ÚPreTrainedModel)ÚUnpack)Úapply_chunking_to_forward)ÚTransformersKwargsÚcan_return_tupleÚlogging)Úmerge_with_config_defaults)ÚOutputRecorderÚcapture_outputs©ÚBlipTextConfigc                   óL   a a€ ] tR t^.t oRtV 3R ltRV3R lR lltRtVtV ;t	# )ÚBlipTextEmbeddingsz;Construct the embeddings from word and position embeddings.c                óH  <€ \         SV `  4        \        P                  ! VP                  VP
                  VP                  R 7      V n        \        P                  ! VP                  VP
                  4      V n	        \        P                  ! VP
                  VP                  R7      V n
        \        P                  ! VP                  4      V n        \        P                  ! \         P"                  ! VP                  4      P%                  R4      RR7      V n        Wn        R# ))Úpadding_idx©ÚepsF)Ú
persistentN©é   éÿÿÿÿ)ÚsuperÚ__init__r   Ú	EmbeddingÚ
vocab_sizeÚhidden_sizeÚpad_token_idÚword_embeddingsÚmax_position_embeddingsÚposition_embeddingsÚ	LayerNormÚlayer_norm_epsÚDropoutÚhidden_dropout_probÚdropoutÚBufferÚtorchÚarangeÚexpandÚposition_idsÚconfig©Úselfr9   Ú	__class__s   &&€Úl/home/luca/screen-checking/.venv/lib/python3.14/site-packages/transformers/models/blip/modeling_blip_text.pyr'   ÚBlipTextEmbeddings.__init__1   sÀ   ø€ Ü‰ÑÔÜ!Ÿ|š|¨F×,=Ñ,=¸v×?QÑ?QÐ_e×_rÑ_rÔsˆÔÜ#%§<¢<°×0NÑ0NÐPV×PbÑPbÓ#cˆÔ äŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z’z &×"<Ñ"<Ó=ˆŒô ŸIšI¤e§l¢l°6×3QÑ3QÓ&R×&YÑ&YÐZaÓ&bÐotÔuˆÔàŽó    c          
      ó²   <€ V ^8„  d   QhRS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[RS[ P                  /# )é   Ú	input_idsNr8   Úinputs_embedsÚpast_key_values_lengthÚreturn)r5   Ú
LongTensorÚFloatTensorÚintÚTensor)ÚformatÚ__classdict__s   "€r=   Ú__annotate__ÚBlipTextEmbeddings.__annotate__>   sb   ø€ ÷ ñ á×#Ñ# dÕ*ðñ ×&Ñ&¨Õ-ðñ ×(Ñ(¨4Õ/ð	ñ
 !$ðñ 
�‰ñr?   c                óN  € Ve   VP                  4       pMVP                  4       R R pV^,          pVf   V P                  RWFV,           13,          pVf   V P                  V4      pTpV P                  V4      pWx,          pV P	                  V4      pV P                  V4      pV# )NºNNNr%   )Úsizer8   r,   r.   r/   r3   )	r;   rB   r8   rC   rD   Úinput_shapeÚ
seq_lengthÚ
embeddingsr.   s	   &&&&&    r=   ÚforwardÚBlipTextEmbeddings.forward>   s¯   € ð Ò Ø#Ÿ.™.Ó*‰Kà'×,Ñ,Ó.¨s°Ð3ˆKà  •^ˆ
àÒØ×,Ñ,¨QÐ0FÐVlÕIlÐ0lÐ-lÕmˆLàÒ Ø ×0Ñ0°Ó;ˆMà"ˆ
à"×6Ñ6°|ÓDÐØÕ)ˆ
à—^‘^ JÓ/ˆ
Ø—\‘\ *Ó-ˆ
ØÐr?   )r/   r9   r3   r.   r8   r,   )NNNr   )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r'   rT   Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r<   rK   s   @@r=   r   r   .   s   ù‡ € ÙEõ÷÷ ò r?   r   c                   ód   a a€ ] tR t^]t oR	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tV ;t# )ÚBlipTextSelfAttentionc                óì  <€ \         SV `  4        Wn        VP                  VP                  ,          ^ 8w  d;   \        VR4      '       g)   \        RVP                  VP                  3,          4      hVP                  V n        \        VP                  VP                  ,          4      V n        V P                  V P                  ,          V n	        W0n
        \        P                  ! VP                  V P                  4      V n        V'       db   \        P                  ! VP                  V P                  4      V n        \        P                  ! VP                  V P                  4      V n        M`\        P                  ! VP                  V P                  4      V n        \        P                  ! VP                  V P                  4      V n        \        P"                  ! VP$                  4      V n        R# )r   Úembedding_sizezLThe hidden size (%d) is not a multiple of the number of attention heads (%d)N)r&   r'   r9   r*   Únum_attention_headsÚhasattrÚ
ValueErrorrH   Úattention_head_sizeÚall_head_sizeÚ	layer_idxr   ÚLinearÚqueryÚencoder_hidden_sizeÚkeyÚvaluer1   Úattention_probs_dropout_probr3   ©r;   r9   Úis_cross_attentionrh   r<   s   &&&&€r=   r'   ÚBlipTextSelfAttention.__init__^   s_  ø€ Ü‰ÑÔØŒØ×Ñ × :Ñ :Õ:¸aÔ?ÌÐPVÐXh×HiÒHiÜØ^Ø×%Ñ% v×'AÑ'AÐBõCóð ð
 $*×#=Ñ#=ˆÔ Ü#& v×'9Ñ'9¸F×<VÑ<VÕ'VÓ#WˆÔ Ø!×5Ñ5¸×8PÑ8PÕPˆÔØ"Œä—Y’Y˜v×1Ñ1°4×3EÑ3EÓFˆŒ
ßÜ—y’y ×!;Ñ!;¸T×=OÑ=OÓPˆDŒHÜŸš 6×#=Ñ#=¸t×?QÑ?QÓRˆD�Jä—y’y ×!3Ñ!3°T×5GÑ5GÓHˆDŒHÜŸš 6×#5Ñ#5°t×7IÑ7IÓJˆDŒJä—z’z &×"EÑ"EÓFˆŽr?   c                ó   € Wn         R # ©N©Úattn_gradients)r;   ru   s   &&r=   Úsave_attn_gradientsÚ)BlipTextSelfAttention.save_attn_gradientsv   s   € Ø,Ör?   c                ó   € V P                   # rs   rt   ©r;   s   &r=   Úget_attn_gradientsÚ(BlipTextSelfAttention.get_attn_gradientsy   s   € Ø×"Ñ"Ð"r?   c                ó   € Wn         R # rs   ©Úattention_map)r;   r~   s   &&r=   Úsave_attention_mapÚ(BlipTextSelfAttention.save_attention_map|   s   € Ø*Ör?   c                ó   € V P                   # rs   r}   ry   s   &r=   Úget_attention_mapÚ'BlipTextSelfAttention.get_attention_map   s   € Ø×!Ñ!Ð!r?   c                ó  <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[S[,          RS[S[ P                  S[ P                  3,          /# )	rA   Úhidden_statesÚattention_maskNÚencoder_hidden_statesÚencoder_attention_maskÚpast_key_valuesÚkwargsrE   ©r5   rI   rG   r   r   r   Útuple)rJ   rK   s   "€r=   rL   Ú"BlipTextSelfAttention.__annotate__‚   s›   ø€ ÷ D.ñ D.á—|‘|ðD.ñ ×)Ñ)¨DÕ0ðD.ñ  %×0Ñ0°4Õ7ð	D.ñ
 !&× 1Ñ 1°DÕ 8ðD.ñ  �ðD.ñ Ñ+Õ,ðD.ñ 
‰u�|‰|™UŸ\™\Ð)Õ	*ñD.r?   c                óF  € 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R Jp
V
'       d   TMTpRpVe`   \        V\        4      '       dH   VP                  P                  V P                  4      pV
'       d   VP                  pMVP                  pMTpV
'       d   TMTpV
'       d\   VeX   V'       dP   XP                  V P                  ,          P                  pVP                  V P                  ,          P                  pMÙ. VP                   R R 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eV   XP#                  WïV P                  4      w  rïV
'       d0   \        V\        4      '       d   RVP                  V P                  &   \$        P&                  ! WžP	                  RR4      4      pV\(        P*                  ! V P                  4      ,          pVe#   VVP-                  VP.                  4      ,           p\0        P2                  ! RR7      ! V4      pV P5                  V4      p\$        P&                  ! VV4      pVP7                  ^ ^^^4      P9                  4       pVP;                  4       R R V P<                  3,           pVP                  ! V!  pVV3# )NFT)Údimr%   éþÿÿÿ)Úshaperf   rj   ÚviewÚ	transposeÚ
isinstancer	   Ú
is_updatedÚgetrh   Úcross_attention_cacheÚself_attention_cacheÚlayersÚkeysÚvaluesrl   rm   Úupdater5   ÚmatmulÚmathÚsqrtÚtoÚdevicer   ÚSoftmaxr3   ÚpermuteÚ
contiguousrP   rg   )r;   r…   r†   r‡   rˆ   r‰   rŠ   rQ   Úhidden_shapeÚquery_layerrp   r•   Úcurr_past_key_valuesÚcurrent_statesÚ	key_layerÚvalue_layerÚkv_shapeÚattention_scoresÚattention_probsÚattention_probs_droppedÚcontext_layerÚnew_context_layer_shapes   &&&&&&,               r=   rT   ÚBlipTextSelfAttention.forward‚   s¶  € ð $×)Ñ)¨#¨2Ð.ˆØC˜ÐC bÐC¨$×*BÑ*BÑCˆØ—j‘j Ó/×4Ñ4°\ÓB×LÑLÈQÐPQÓRˆð
 3¸$Ð>Ðß3EÑ/È>ˆàˆ
ØÒ&Ü˜/Ô+>×?Ò?Ø,×7Ñ7×;Ñ;¸D¿N¹NÓK�
ß%à+:×+PÑ+PÑ(à+:×+OÑ+OÑ(à'6Ð$ç2DÑ.È-ˆß /Ò"=Ç*à,×3Ñ3°D·N±NÕC×HÑHˆIØ.×5Ñ5°d·n±nÕE×LÑL‰KàQ˜×-Ñ-¨c¨rÐ2ÐQ°BÐQ¸×8PÑ8PÑQˆHØŸ™ Ó0×5Ñ5°hÓ?×IÑIÈ!ÈQÓOˆIØŸ*™* ^Ó4×9Ñ9¸(ÓC×MÑMÈaÐQRÓSˆKàÒ*Ø)=×)DÑ)DÀYÐ]a×]kÑ]kÓ)lÑ&�	ç%¬*°_ÔFY×*ZÒ*ZØAE�O×.Ñ.¨t¯~©~Ñ>ô !Ÿ<š<¨×5HÑ5HÈÈRÓ5PÓQÐà+¬d¯iªi¸×8PÑ8PÓ.QÕQÐØÒ%à/°.×2CÑ2CÐDT×D[ÑD[Ó2\Õ\Ðô Ÿ*š*¨Õ,Ð-=Ó>ˆð #'§,¡,¨Ó"?ÐäŸšÐ%<¸kÓJˆà%×-Ñ-¨a°°A°qÓ9×DÑDÓFˆØ"/×"4Ñ"4Ó"6°s¸Ð";¸t×?QÑ?QÐ>SÕ"SÐØ%×*Ò*Ð,CÑDˆà˜oÐ-Ð-r?   )rg   rf   r~   ru   r9   r3   rl   rh   rc   rj   rm   rs   ©NNNN)rV   rW   rX   rY   r'   rv   rz   r   r‚   rT   r[   r\   r]   r^   s   @@r=   r`   r`   ]   s1   ù‡ € ÷Gò0-ò#ò+ò"÷D.÷ D.ò D.r?   r`   c                   óD   a a€ ] tR t^Êt oV 3R ltV3R lR ltRtVtV ;t# )ÚBlipTextSelfOutputc                ó0  <€ \         SV `  4        \        P                  ! VP                  VP                  4      V n        \        P                  ! VP                  VP                  R 7      V n        \        P                  ! VP                  4      V n
        R# ©r    N)r&   r'   r   ri   r*   Údenser/   r0   r1   r2   r3   r:   s   &&€r=   r'   ÚBlipTextSelfOutput.__init__Ë   s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
ÜŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z’z &×"<Ñ"<Ó=ˆŽr?   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# ©rA   r…   Úinput_tensorrE   ©r5   rI   )rJ   rK   s   "€r=   rL   ÚBlipTextSelfOutput.__annotate__Ñ   ó1   ø€ ÷ ñ ¡U§\¡\ð ÁÇÁð ÑRW×R^ÑR^ñ r?   c                óx   € V P                  V4      pV P                  V4      pV P                  W,           4      pV# rs   ©r·   r3   r/   ©r;   r…   r»   s   &&&r=   rT   ÚBlipTextSelfOutput.forwardÑ   ó5   € ØŸ
™
 =Ó1ˆØŸ™ ]Ó3ˆØŸ™ }Õ'CÓDˆØÐr?   ©r/   r·   r3   ©	rV   rW   rX   rY   r'   rT   r[   r\   r]   r^   s   @@r=   r´   r´   Ê   ó   ù‡ € õ>÷÷ ð r?   r´   c                   óL   a a€ ] tR t^Ùt oRV 3R lltRV3R lR lltRtVtV ;t# )ÚBlipTextAttentionc                óh   <€ \         SV `  4        \        WVR 7      V n        \	        V4      V n        R# )©rh   N)r&   r'   r`   r;   r´   Úoutputro   s   &&&&€r=   r'   ÚBlipTextAttention.__init__Ú   s)   ø€ Ü‰ÑÔÜ)¨&ÐPYÔZˆŒ	Ü(¨Ó0ˆŽr?   c                óò   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[R,          RS[S[,          RS[S[ P                  S[ P                  3,          /# )rA   r…   r†   Nr‡   r‰   rŠ   rE   r‹   )rJ   rK   s   "€r=   rL   ÚBlipTextAttention.__annotate__ß   s}   ø€ ÷ 1ñ 1á—|‘|ð1ñ ×)Ñ)¨DÕ0ð1ñ  %×0Ñ0°4Õ7ð	1ñ
  �ð1ñ Ñ+Õ,ð1ñ 
‰u�|‰|™UŸ\™\Ð)Õ	*ñ1r?   c                óX   € V P                  VVVVR 7      w  rgV P                  Wa4      pW‡3# )©r†   r‡   r‰   )r;   rË   )	r;   r…   r†   r‡   r‰   rŠ   r¯   r­   Úattention_outputs	   &&&&&,   r=   rT   ÚBlipTextAttention.forwardß   s@   € ð *.¯©ØØ)Ø"7Ø+ð	 *3ó *
Ñ&ˆð  Ÿ;™; }ÓDÐØÐ0Ð0r?   )rË   r;   ©FN)NNNrÅ   r^   s   @@r=   rÈ   rÈ   Ù   s   ù‡ € ÷1÷
1÷ 1ò 1r?   rÈ   c                   óD   a a€ ] tR t^òt oV 3R ltV3R lR ltRtVtV ;t# )ÚBlipTextIntermediatec                ó"  <€ \         SV `  4        \        P                  ! VP                  VP
                  4      V n        \        VP                  \        4      '       d   \        VP                  ,          V n        R # VP                  V n        R # rs   )r&   r'   r   ri   r*   Úintermediate_sizer·   r”   Ú
hidden_actÚstrr   Úintermediate_act_fnr:   s   &&€r=   r'   ÚBlipTextIntermediate.__init__ó   s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3KÑ3KÓLˆŒ
Ü�f×'Ñ'¬×-Ò-Ü'-¨f×.?Ñ.?Õ'@ˆDÖ$à'-×'8Ñ'8ˆDÖ$r?   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# ©rA   r…   rE   r¼   )rJ   rK   s   "€r=   rL   Ú!BlipTextIntermediate.__annotate__û   s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r?   c                óJ   € V P                  V4      pV P                  V4      pV# rs   ©r·   rÚ   ©r;   r…   s   &&r=   rT   ÚBlipTextIntermediate.forwardû   s&   € ØŸ
™
 =Ó1ˆØ×0Ñ0°Ó?ˆØÐr?   rà   rÅ   r^   s   @@r=   rÕ   rÕ   ò   s   ù‡ € õ9÷÷ ð r?   rÕ   c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚBlipTextOutputi  c                ó0  <€ \         SV `  4        \        P                  ! VP                  VP
                  4      V n        \        P                  ! VP
                  VP                  R 7      V n        \        P                  ! VP                  4      V n        R# r¶   )r&   r'   r   ri   r×   r*   r·   r/   r0   r1   r2   r3   r:   s   &&€r=   r'   ÚBlipTextOutput.__init__  s`   ø€ Ü‰ÑÔÜ—Y’Y˜v×7Ñ7¸×9KÑ9KÓLˆŒ
ÜŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŒÜ—z’z &×"<Ñ"<Ó=ˆŽr?   c                óh   <€ V ^8„  d   QhRS[ P                  RS[ P                  RS[ P                  /# rº   r¼   )rJ   rK   s   "€r=   rL   ÚBlipTextOutput.__annotate__	  r¾   r?   c                óx   € V P                  V4      pV P                  V4      pV P                  W,           4      pV# rs   rÀ   rÁ   s   &&&r=   rT   ÚBlipTextOutput.forward	  rÃ   r?   rÄ   rÅ   r^   s   @@r=   rä   rä     rÆ   r?   rä   c                   óN   a a€ ] tR tRt oV 3R ltRV3R lR lltR tRtVtV ;t	# )ÚBlipTextLayeri  c                óR  <€ \         SV `  4        Wn        VP                  V n        ^V n        \        WR7      V n        W n        V P                  P                  '       d'   \        WP                  P                  VR7      V n	        \        V4      V n        \        V4      V n        R# )r$   rÊ   )rp   rh   N)r&   r'   r9   Úchunk_size_feed_forwardÚseq_len_dimrÈ   Ú	attentionÚ	layer_numÚ
is_decoderÚcrossattentionrÕ   Úintermediaterä   rË   )r;   r9   rñ   r<   s   &&&€r=   r'   ÚBlipTextLayer.__init__  s�   ø€ Ü‰ÑÔØŒØ'-×'EÑ'EˆÔ$ØˆÔÜ*¨6ÔGˆŒØ"ŒØ�;‰;×!×!Ð!Ü"3Ø¯;©;×+AÑ+AÈYô#ˆDÔô 1°Ó8ˆÔÜ$ VÓ,ˆŽr?   c                óð   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[S[,          RS[ P                  /# )	rA   r…   r‡   Nr†   rˆ   r‰   rŠ   rE   )r5   rI   rG   r   r   r   )rJ   rK   s   "€r=   rL   ÚBlipTextLayer.__annotate__  s„   ø€ ÷ ñ á—|‘|ðñ  %×0Ñ0°4Õ7ðñ ×)Ñ)¨DÕ0ð	ñ
 !&× 1Ñ 1°DÕ 8ðñ  �ðñ Ñ+Õ,ðñ 
�‰ñr?   c                óÀ   € V P                  VVVR 7      w  rxVe   V P                  VVVVR7      w  rx\        V P                  V P                  V P
                  V4      p	V	# ))r†   r‰   rÐ   )rð   ró   r   Úfeed_forward_chunkrî   rï   )
r;   r…   r‡   r†   rˆ   r‰   rŠ   rÑ   Ú_Úlayer_outputs
   &&&&&&,   r=   rT   ÚBlipTextLayer.forward  s�   € ð #Ÿn™nØØ)Ø+ð -ó 
ÑÐð !Ò,Ø"&×"5Ñ"5Ø Ø5Ø&;Ø /ð	 #6ó #ÑÐô 1Ø×#Ñ# T×%AÑ%AÀ4×CSÑCSÐUeó
ˆð Ðr?   c                óJ   € V P                  V4      pV P                  W!4      pV# rs   )rô   rË   )r;   rÑ   Úintermediate_outputrû   s   &&  r=   rù   Ú BlipTextLayer.feed_forward_chunk:  s)   € Ø"×/Ñ/Ð0@ÓAÐØ—{‘{Ð#6ÓIˆØÐr?   )rð   rî   r9   ró   rô   rñ   rË   rï   r²   )
rV   rW   rX   rY   r'   rT   rù   r[   r\   r]   r^   s   @@r=   rì   rì     s   ù‡ € õ-÷ò ÷6ò r?   rì   c                   óH   a a€ ] tR tRt oV 3R ltRV3R lR lltRtVtV ;t# )ÚBlipTextEncoderiA  c           	     óÖ   <€ \         SV `  4        Wn        \        P                  ! \        VP                  4       Uu. uF  p\        W4      NK  	  up4      V n        R V n	        R# u upi rÓ   )
r&   r'   r9   r   Ú
ModuleListÚrangeÚnum_hidden_layersrì   ÚlayerÚgradient_checkpointing)r;   r9   Úir<   s   && €r=   r'   ÚBlipTextEncoder.__init__B  sR   ø€ Ü‰ÑÔØŒÜ—]’]ÄeÈF×LdÑLdÔFeÓ#fÑFeÀ¤M°&Ö$<ÑFeÑ#fÓgˆŒ
Ø&+ˆÖ#ùò $gs   ½A&c                óð   <€ V ^8„  d   QhRS[ P                  RS[ P                  R,          RS[ P                  R,          RS[ P                  R,          RS[R,          RS[R,          RS[S[,          R	S[/# )
rA   r…   r†   Nr‡   rˆ   r‰   Ú	use_cacherŠ   rE   )r5   rI   rG   r   Úboolr   r   r   )rJ   rK   s   "€r=   rL   ÚBlipTextEncoder.__annotate__H  sŽ   ø€ ÷ (
ñ (
á—|‘|ð(
ñ ×)Ñ)¨DÕ0ð(
ñ  %×0Ñ0°4Õ7ð	(
ñ
 !&× 1Ñ 1°DÕ 8ð(
ñ  �ð(
ñ ˜$•;ð(
ñ Ñ+Õ,ð(
ñ 
3ñ(
r?   c           
     óÖ  € V P                   '       d2   V P                  '       d    V'       d   \        P                  R 4       RpV'       dp   \	        V\
        4      '       d"   \        V\        V P                  R7      4      pM8Vf5   \        \        V P                  R7      \        V P                  R7      4      pV P                   F  pV! VV3RVRVRV/VB pK  	  \        VVR7      # )zZ`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`...F)r9   r†   rˆ   r‰   )Úlast_hidden_stater‰   )
r  ÚtrainingÚloggerÚwarningr”   r   r	   r9   r  r   )	r;   r…   r†   r‡   rˆ   r‰   r  rŠ   Úlayer_modules	   &&&&&&&, r=   rT   ÚBlipTextEncoder.forwardH  sß   € ð ×&×&Ð&¨4¯=¯=¨=ßÜ—‘Øpôð "�	çô ˜/¬<×8Ò8Ü"5°oÄ|Ð[_×[fÑ[fÔGgÓ"h‘Ø Ò(Ü"5Ü ¨¯©Ô4´lÈ$Ï+É+Ô6Vó#�ð !ŸJœJˆLÙ(ØØ%ñð  .ðð (>ð	ð
 !0ðð ñŠMñ 'ô 9Ø+Ø+ô
ð 	
r?   )r9   r  r  )NNNNNrÅ   r^   s   @@r=   r  r  A  s   ù‡ € õ,÷(
÷ (
ò (
r?   r  c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚBlipTextPoolerit  c                ó¸   <€ \         SV `  4        \        P                  ! VP                  VP                  4      V n        \        P                  ! 4       V n        R # rs   )r&   r'   r   ri   r*   r·   ÚTanhÚ
activationr:   s   &&€r=   r'   ÚBlipTextPooler.__init__u  s9   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
ÜŸ'š'›)ˆŽr?   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rÝ   r¼   )rJ   rK   s   "€r=   rL   ÚBlipTextPooler.__annotate__z  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r?   c                ó\   € VR,          pV P                  V4      pV P                  V4      pV# )rO   )rO   r   )r·   r  )r;   r…   Úfirst_token_tensorÚpooled_outputs   &&  r=   rT   ÚBlipTextPooler.forwardz  s2   € ð +¨4Õ0ÐØŸ
™
Ð#5Ó6ˆØŸ™¨Ó6ˆØÐr?   )r  r·   rÅ   r^   s   @@r=   r  r  t  s   ù‡ € õ$÷
÷ ð r?   r  c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚBlipTextPredictionHeadTransformi„  c                ó‚  <€ \         SV `  4        \        P                  ! VP                  VP                  4      V n        \        VP                  \        4      '       d   \        VP                  ,          V n
        MVP                  V n
        \        P                  ! VP                  VP                  R 7      V n        R# r¶   )r&   r'   r   ri   r*   r·   r”   rØ   rÙ   r   Útransform_act_fnr/   r0   r:   s   &&€r=   r'   Ú(BlipTextPredictionHeadTransform.__init__…  s~   ø€ Ü‰ÑÔÜ—Y’Y˜v×1Ñ1°6×3EÑ3EÓFˆŒ
Ü�f×'Ñ'¬×-Ò-Ü$*¨6×+<Ñ+<Õ$=ˆDÕ!à$*×$5Ñ$5ˆDÔ!ÜŸš f×&8Ñ&8¸f×>SÑ>SÔTˆŽr?   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# rÝ   r¼   )rJ   rK   s   "€r=   rL   Ú,BlipTextPredictionHeadTransform.__annotate__Ž  s#   ø€ ÷ ñ ¡U§\¡\ð ±e·l±lñ r?   c                ól   € V P                  V4      pV P                  V4      pV P                  V4      pV# rs   )r·   r$  r/   rá   s   &&r=   rT   Ú'BlipTextPredictionHeadTransform.forwardŽ  s4   € ØŸ
™
 =Ó1ˆØ×-Ñ-¨mÓ<ˆØŸ™ }Ó5ˆØÐr?   )r/   r·   r$  rÅ   r^   s   @@r=   r"  r"  „  s   ù‡ € õU÷÷ ð r?   r"  c                   ó8   a a€ ] tR tRt oV 3R ltR tRtVtV ;t# )ÚBlipTextLMPredictionHeadi–  c                ó  <€ \         SV `  4        \        V4      V n        \        P
                  ! VP                  VP                  R R7      V n        \        P                  ! \        P                  ! VP                  4      4      V n        R# )T)ÚbiasN)r&   r'   r"  Ú	transformr   ri   r*   r)   ÚdecoderÚ	Parameterr5   Úzerosr-  r:   s   &&€r=   r'   Ú!BlipTextLMPredictionHead.__init__—  s[   ø€ Ü‰ÑÔÜ8¸Ó@ˆŒô —y’y ×!3Ñ!3°V×5FÑ5FÈTÔRˆŒÜ—L’L¤§¢¨V×->Ñ->Ó!?Ó@ˆŽ	r?   c                óJ   € V P                  V4      pV P                  V4      pV# rs   )r.  r/  rá   s   &&r=   rT   Ú BlipTextLMPredictionHead.forward   s$   € ØŸ™ }Ó5ˆØŸ™ ]Ó3ˆØÐr?   )r-  r/  r.  rÅ   r^   s   @@r=   r+  r+  –  s   ù‡ € õA÷ò r?   r+  c                   óD   a a€ ] tR tRt oV 3R ltV3R lR ltRtVtV ;t# )ÚBlipTextOnlyMLMHeadi§  c                óD   <€ \         SV `  4        \        V4      V n        R # rs   )r&   r'   r+  Úpredictionsr:   s   &&€r=   r'   ÚBlipTextOnlyMLMHead.__init__¨  s   ø€ Ü‰ÑÔÜ3°FÓ;ˆÖr?   c                óN   <€ V ^8„  d   QhRS[ P                  RS[ P                  /# )rA   Úsequence_outputrE   r¼   )rJ   rK   s   "€r=   rL   Ú BlipTextOnlyMLMHead.__annotate__¬  s#   ø€ ÷ !ñ !¡u§|¡|ð !¹¿¹ñ !r?   c                ó(   € V P                  V4      pV# rs   ©r8  )r;   r;  Úprediction_scoress   && r=   rT   ÚBlipTextOnlyMLMHead.forward¬  s   € Ø ×,Ñ,¨_Ó=ÐØ Ð r?   r>  rÅ   r^   s   @@r=   r6  r6  §  s   ù‡ € õ<÷!÷ !ð !r?   r6  c                   ó‚   a a€ ] tR tRt oRtRt. tR]R]! ]	^RR7      .R]! ]	^R	R7      ./t
V 3R
 ltV3R ltRtVtV ;t# )ÚBlipTextPreTrainedModeli²  zz
An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained
models.
Úbertr…   Ú
attentionsz.attention.)ÚindexÚ
layer_nameÚcross_attentionsz.crossattention.c                ó  <€ \         SV `  V4       \        V\        4      '       db   \        P
                  ! VP                  \        P                  ! VP                  P                  R,          4      P                  R4      4       R# R# )r$   Nr%   r#   )r&   Ú_init_weightsr”   r   ÚinitÚcopy_r8   r5   r6   r‘   r7   )r;   Úmoduler<   s   &&€r=   rI  Ú%BlipTextPreTrainedModel._init_weightsÅ  s^   ø€ Ü‰Ñ˜fÔ%Ü�fÔ0×1Ò1Ü�JŠJ�v×*Ñ*¬E¯LªL¸×9LÑ9L×9RÑ9RÐSUÕ9VÓ,W×,^Ñ,^Ð_fÓ,gÖhñ 2r?   c                ó&   <€ V ^8„  d   Qh/ S[ ;R&   # )rA   r9   r   )rJ   rK   s   "€r=   rL   Ú$BlipTextPreTrainedModel.__annotate__²  s   ø‡ ‚ ñ Ñò r?   © )rV   rW   rX   rY   rZ   Úbase_model_prefixÚ_no_split_modulesrì   r   r`   Ú_can_record_outputsrI  Ú__annotate_func__r[   r\   r]   r^   s   @@r=   rB  rB  ²  s_   ù‡ € ñð ÐØÐà˜ØÙÐ0¸ÀmÔTð
ð 	ÙÐ0¸ÐFXÔYð
ðÐõi÷' … r?   rB  c                   óp   a a€ ] tR tRt oRtR	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# )ÚBlipTextModeliÌ  a  
The model can behave as an encoder (with only self-attention) as well as a decoder, in which case a layer of
cross-attention is added between the self-attention layers, following the architecture described in [Attention is
all you need](https://huggingface.co/papers/1706.03762) by Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit,
Llion Jones, Aidan N. Gomez, Lukasz Kaiser and Illia Polosukhin. argument and `is_decoder` set to `True`; an
`encoder_hidden_states` is then expected as an input to the forward pass.
c                óÆ   <€ \         SV `  V4       Wn        \        V4      V n        \        V4      V n        V'       d   \        V4      MR V n        V P                  4        R # rs   )
r&   r'   r9   r   rS   r  Úencoderr  ÚpoolerÚ	post_init)r;   r9   Úadd_pooling_layerr<   s   &&&€r=   r'   ÚBlipTextModel.__init__Õ  sG   ø€ Ü‰Ñ˜Ô ØŒä,¨VÓ4ˆŒÜ& vÓ.ˆŒß0A”n VÔ,ÀtˆŒà�‰Ör?   c                ó.   € V P                   P                  # rs   ©rS   r,   ry   s   &r=   Úget_input_embeddingsÚ"BlipTextModel.get_input_embeddingsß  s   € Ø�‰×.Ñ.Ð.r?   c                ó&   € WP                   n        R # rs   r^  )r;   rm   s   &&r=   Úset_input_embeddingsÚ"BlipTextModel.set_input_embeddingsâ  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[R,          RS[S[,          RS[/# )rA   rB   Nr†   r8   rC   Úencoder_embedsr‡   rˆ   r‰   r  rò   rŠ   rE   )r5   rI   r   r  r   r   r   )rJ   rK   s   "€r=   rL   ÚBlipTextModel.__annotate__ç  sâ   ø€ ÷ [
ñ [
á—<‘< $Õ&ð[
ñ Ÿ™ tÕ+ð[
ñ —l‘l TÕ)ð	[
ñ
 —|‘| dÕ*ð[
ñ Ÿ™ tÕ+ð[
ñ  %Ÿ|™|¨dÕ2ð[
ñ !&§¡¨tÕ 3ð[
ñ  �ð[
ñ ˜$•;ð[
ñ ˜4•Kð[
ñ Ñ+Õ,ð[
ñ 
6ñ[
r?   c                óT  € V
'       g   Rp	Ve   Ve   \        R4      hVe   VP                  4       M^ pVf   V P                  VVVVR7      pMTpV
'       d   \        V P                  VVVR7      pM\        V P                  VVR7      pVe   \        V P                  VVVR7      pV P                  ! V3RVR	VR
VRVRV	/VB pVP                  pV P                  e   V P                  V4      MRp\        VVVP                  VP                  VP                  VP                  R7      # )aŒ  
encoder_hidden_states  (`torch.FloatTensor`, *optional*):
    Sequence of hidden-states at the output of the last layer of the encoder. Used in the cross-attention if
    the model is configured as a decoder.
encoder_attention_mask (`torch.FloatTensor`, *optional*):
    Mask to avoid performing attention on the padding token indices of the encoder input. This mask is used in
    the cross-attention if the model is configured as a decoder. Mask values selected in `[0, 1]`:
    - 1 for tokens that are **not masked**,
    - 0 for tokens that are **masked**.
past_key_values (`Cache`, *optional*):
    Contains precomputed key and value hidden states of the attention blocks. Can be used to speed up decoding.
    If `past_key_values` are used, the user can optionally input only the last `decoder_input_ids` (those that
    don't have their past key value states given to this model) of shape `(batch_size, 1)` instead of all
    `decoder_input_ids` of shape `(batch_size, sequence_length)`.
use_cache (`bool`, *optional*):
    If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding (see
    `past_key_values`).
FNzDYou cannot specify both input_ids and inputs_embeds at the same time)rB   r8   rC   rD   )r9   rC   r†   r‰   )r9   rC   r†   )r9   rC   r†   r‡   r†   r‡   rˆ   r‰   r  )r  Úpooler_outputr‰   r…   rD  rG  )re   Úget_seq_lengthrS   r   r9   r   rX  r  rY  r   r‰   r…   rD  rG  )r;   rB   r†   r8   rC   re  r‡   rˆ   r‰   r  rò   rŠ   rD   Úembedding_outputÚencoder_outputsr;  r  s   &&&&&&&&&&&,     r=   rT   ÚBlipTextModel.forwardå  sv  € ÷D ØˆIàÒ  ]Ò%>ÜÐcÓdÐdàETÒE` ×!?Ñ!?Ô!AÐfgÐàÒ!Ø#Ÿ™Ø#Ø)Ø+Ø'=ð	  /ó  Ñð  .ÐçÜ/Ø—{‘{Ø.Ø-Ø /ô	‰Nô 7Ø—{‘{Ø.Ø-ôˆNð "Ò-Ü%>Ø—{‘{Ø.Ø5Ø&;ô	&Ð"ð FJÇ\Â\ØñF
à)ðF
ð #8ðF
ð $:ð	F
ð
 ,ðF
ð  ðF
ð ñF
ˆð *×;Ñ;ˆØ8<¿¹Ò8O˜Ÿ™ OÔ4ÐUYˆä;Ø-Ø'Ø+×;Ñ;Ø)×7Ñ7Ø&×1Ñ1Ø,×=Ñ=ô
ð 	
r?   )r9   rS   rX  rY  )T)
NNNNNNNNNF)rV   rW   rX   rY   rZ   r'   r_  rb  r   r   rT   r[   r\   r]   r^   s   @@r=   rV  rV  Ì  sC   ù‡ € ñ÷ò/ò0ð  Ø÷[
ñ [
ó ó  ÷[
ð [
r?   rV  c                   ó†   a a€ ] tR tRt oRRRR/tV 3R ltR tR tR	 tR
 t	]
RV3R lR ll4       tRV 3R lltRtVtV ;t# )ÚBlipTextLMHeadModeliF  zcls.predictions.decoder.biaszcls.predictions.biaszcls.predictions.decoder.weightz&bert.embeddings.word_embeddings.weightc                ó¬   <€ \         SV `  V4       \        VR R7      V n        \	        V4      V n        VP                  V n        V P                  4        R# )F)r[  N)r&   r'   rV  rC  r6  ÚclsÚlabel_smoothingrZ  r:   s   &&€r=   r'   ÚBlipTextLMHeadModel.__init__L  sB   ø€ Ü‰Ñ˜Ô ä! &¸EÔBˆŒ	Ü& vÓ.ˆŒØ%×5Ñ5ˆÔà�‰Ör?   c                ó6   € V P                   P                  4       # rs   )rC  r_  ry   s   &r=   r_  Ú(BlipTextLMHeadModel.get_input_embeddingsU  s   € Ø�y‰y×-Ñ-Ó/Ð/r?   c                ó<   € V P                   P                  V4       R # rs   )rC  rb  ©r;   Únew_embeddingss   &&r=   rb  Ú(BlipTextLMHeadModel.set_input_embeddingsX  s   € Ø�	‰	×&Ñ& ~Ö6r?   c                óB   € V P                   P                  P                  # rs   )rp  r8  r/  ry   s   &r=   Úget_output_embeddingsÚ)BlipTextLMHeadModel.get_output_embeddings[  s   € Ø�x‰x×#Ñ#×+Ñ+Ð+r?   c                ó„   € WP                   P                  n        VP                  V P                   P                  n        R # rs   )rp  r8  r/  r-  rv  s   &&r=   Úset_output_embeddingsÚ)BlipTextLMHeadModel.set_output_embeddings^  s*   € Ø'5�‰×ÑÔ$Ø$2×$7Ñ$7ˆ�‰×ÑÖ!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[R,          RS[R,          RS[R,          RS[S[ P                  ,          RS[S[,          RS[/# )rA   rB   Nr†   r8   rC   r‡   rˆ   Úlabelsr‰   r  Úreturn_logitsrò   Ú	reductionÚlogits_to_keeprŠ   rE   )	r5   rI   r   r  rÙ   rH   r   r   r   )rJ   rK   s   "€r=   rL   Ú BlipTextLMHeadModel.__annotate__c  s  ø€ ÷ W
ñ W
á—<‘< $Õ&ðW
ñ Ÿ™ tÕ+ðW
ñ —l‘l TÕ)ð	W
ñ
 —|‘| dÕ*ðW
ñ  %Ÿ|™|¨dÕ2ðW
ñ !&§¡¨tÕ 3ðW
ñ —‘˜tÕ#ðW
ñ  �ðW
ñ ˜$•;ðW
ñ ˜d•{ðW
ñ ˜4•KðW
ñ ˜•:ðW
ñ ™eŸl™lÕ*ðW
ñ Ñ+Õ,ðW
ñ  
+ñ!W
r?   c                ó®  € VP                  RR4      pVe   Rp	V P                  ! V3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
'       d   VRRR1R3,          P                  4       # RpVeí   Vf5   VRRR1R3,          P                  4       pVR,          P                  4       pMVP                  4       pVP                  VP                  4      p\        WÀP                  R7      pV! VP                  RV P                  P                  4      VP                  R4      4      pVR8X  d1   VP                  VP                  ^ 4      R4      P!                  ^4      p\#        VVVP$                  VP&                  VP(                  VP*                  R7      # )aù  
encoder_hidden_states (`torch.FloatTensor`, *optional*): Sequence of
    hidden-states at the output of the last layer of the encoder. Used in the cross-attention if the model is
    configured as a decoder.
encoder_attention_mask (`torch.FloatTensor`, *optional*):
    Mask to avoid performing attention on the padding token indices of the encoder input. This mask is used in
    the cross-attention if the model is configured as a decoder. Mask values selected in `[0, 1]`:
    - 1 for tokens that are **not masked**,
    - 0 for tokens that are **masked**.
labels (`torch.LongTensor`, *optional*):
    Labels for computing the left-to-right language modeling loss (next word prediction). Indices should be in
    `[-100, 0, ..., config.vocab_size]` (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]`
past_key_values (`Cache`, *optional*):
    Contains precomputed key and value hidden states of the attention blocks. Can be used to speed up decoding.
    If `past_key_values` are used, the user can optionally input only the last `decoder_input_ids` (those that
    don't have their past key value states given to this model) of shape `(batch_size, 1)` instead of all
    `decoder_input_ids` of shape `(batch_size, sequence_length)`.
use_cache (`bool`, *optional*):
    If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding (see
    `past_key_values`).
Úshift_labelsNFr†   r8   rC   r‡   rˆ   r‰   r  rò   rO   )r‚  rq  Únone)ÚlossÚlogitsr‰   r…   rD  rG  r%   )rO   :r$   NN)ÚpoprC  r  r”   rH   Úslicerp  r¤   r    r¡   r   rq  r’   r9   r)   rP   Úsumr   r‰   r…   rD  rG  )r;   rB   r†   r8   rC   r‡   rˆ   r€  r‰   r  r�  rò   r‚  rƒ  rŠ   r†  Úoutputsr…   Úslice_indicesr?  Úlm_lossÚshifted_prediction_scoresÚloss_fcts   &&&&&&&&&&&&&&,        r=   rT   ÚBlipTextLMHeadModel.forwardb  s  € ðT —z‘z .°$Ó7ˆØÒØˆIà@DÇ	Â	ØñA
à)ðA
ð &ðA
ð (ð	A
ð
 #8ðA
ð $:ðA
ð ,ðA
ð  ðA
ð "ðA
ð ñA
ˆð  ×1Ñ1ˆä8BÀ>ÔSV×8WÒ8Wœ˜~˜o¨tÔ4Ð]kˆØ ŸH™H ]°1°mÀQÐ3FÕ%GÓHÐçØ$ Q¨¨¨¨Q YÕ/×:Ñ:Ó<Ð<àˆØÒØÒ#à,=¸aÀÀ"ÀÀa¸iÕ,H×,SÑ,SÓ,UÐ)Ø% e�}×7Ñ7Ó9‘à,=×,HÑ,HÓ,JÐ)Ø'Ÿ?™?Ð+D×+KÑ+KÓLˆLÜ'°)×MaÑMaÔbˆHÙÐ8×=Ñ=¸bÀ$Ç+Á+×BXÑBXÓYÐ[g×[lÑ[lÐmoÓ[pÓqˆGØ˜FÔ"Ø!Ÿ,™,Ð'8×'=Ñ'=¸aÓ'@À"ÓE×IÑIÈ!ÓL�ä0ØØ$Ø#×3Ñ3Ø!×/Ñ/Ø×)Ñ)Ø$×5Ñ5ô
ð 	
r?   c                ó<   <€ \         SV `  ! V3R VRV/VB pRVR&   V# )r‰   r†   Trò   )r&   Úprepare_inputs_for_generation)r;   rB   r‰   r†   Úmodel_kwargsÚmodel_inputsr<   s   &&&&, €r=   r”  Ú1BlipTextLMHeadModel.prepare_inputs_for_generation¼  sE   ø€ ô ‘wÒ<Øñ
à+ð
ð *ð
ð ñ	
ˆð &*ˆ�\Ñ"àÐr?   )rC  rp  rq  )NNNNNNNNNFTÚmeanr   )NN)rV   rW   rX   rY   Ú_tied_weights_keysr'   r_  rb  rz  r}  r   rT   r”  r[   r\   r]   r^   s   @@r=   rn  rn  F  sY   ù‡ € à&Ð(>Ø(Ð*RðÐõ
ò0ò7ò,ò8ð ÷W
ñ W
ó ðW
÷r÷ r?   rn  )rV  rn  rB  )>rž   r5   r   Útorch.nnr   Ú r   rJ  Úactivationsr   Úcache_utilsr   r   r	   Ú
generationr
   Úmasking_utilsr   r   Úmodeling_layersr   Úmodeling_outputsr   r   r   Úmodeling_utilsr   Úprocessing_utilsr   Úpytorch_utilsr   Úutilsr   r   r   Úutils.genericr   Úutils.output_capturingr   r   Úconfiguration_blipr   Ú
get_loggerrV   r  ÚModuler   r`   r´   rÈ   rÕ   rä   rì   r  r  r"  r+  r6  rB  rV  rn  Ú__all__rP  r?   r=   Ú<module>r¬     sY  ðó  ã Ý Ý %å &Ý !ß CÑ CÝ )ß JÝ 9÷ñ õ
 .Ý &Ý 6ß BÑ BÝ 7ß EÝ .ð 
×	Ò	˜HÓ	%€ô+˜Ÿ™ô +ô^i.˜BŸI™Iô i.ôZ˜Ÿ™ô ô1˜Ÿ	™	ô 1ô2˜2Ÿ9™9ô ô �R—Y‘Yô ô-Ð.ô -ôb/
�b—i‘iô /
ôf�R—Y‘Yô ô  b§i¡iô ô$˜rŸy™yô ô"!˜"Ÿ)™)ô !ôi˜oô iô4v
Ð+ô v
ôtAÐ1°?ô AòH N‚r?   