+
    UV-jzJ  ã                   óâ   € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ 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 ^ RIHt ^ RIHt R	 R
 ltR R ltR R ltR tR t]R8X  d
   ]! 4        R# R# )é    N)ÚPath)ÚOptional)Úload_dataset)ÚImage)Útqdm)Úload)Ú	inferencec                ó0   € V ^8„  d   QhR\         R\        /# )é   ÚsampleÚreturn)ÚdictÚstr)Úformats   "Úi/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/mlx_vlm/evals/math_vista.pyÚ__annotate__r      s   € ÷ 	ñ 	œTð 	¤cñ 	ó    c                ó  € V R,          pV R,          R8X  db   V R,          '       dS   RP                  \        V R,          4       UUu. uF  w  r#R\        ^AV,           4       RV 2NK  	  upp4      pV RV 2pV# u uppi )z9Format the question with choices if it's multiple choice.ÚqueryÚquestion_typeÚmulti_choiceÚchoicesÚ
Ú(z) )ÚjoinÚ	enumerateÚchr)r   ÚquestionÚiÚchoiceÚchoices_texts   &    r   Úprocess_questionr"      s‚   € à�g�€HàˆoÕ .Ô0°V¸I×5FÔ5FØ—y‘yÜ8AÀ&ÈÕBSÔ8TÔUÑ8T©9¨1ˆq”�R˜•T“�˜2˜f˜XÓ&Ñ8TÒUó
ˆð �Z˜r , Ð0ˆØ€Oùó Vs   Á#A;
c                óR   € V ^8„  d   QhR\         R\        R\        \         ,          /# )r   ÚresponseÚproblemr   )r   r   r   )r   s   "r   r   r      s*   € ÷ Uñ Uœsð U¬Tð U´h¼sµmñ Ur   c           
     óš  a€ V P                  4       p V '       g   R# VR,          pVR,          pVP                  R. 4      pVR8X  EdU   \        P                  ! RV 4      pV'       dÀ   VP	                  ^4      p\        P
                  ! RVP                  4       P                  4       4      pV'       dO   VP	                  ^4      p\        V4      \        R4      ,
          p	^ T	u;8:  d   \        V4      8  d    WI,          #  VP                  4       V9   d   VP                  4       # \        P                  ! R	V P                  4       4      p
V
'       g&   \        P                  ! R
V P                  4       4      p
V
'       dO   V
P	                  ^4      p\        V4      \        R4      ,
          p	^ T	u;8:  d   \        V4      8  d    WI,          #  . ROp\        V 4      R8”  d   V RR MT pV F¢  p\        \        P                  ! WÜ\        P                  4      4      pV'       g   K;  VR,          P	                  ^4      P                  4       p\        V4      \        R4      ,
          p	^ T	u;8:  d   \        V4      8  g   K–  M Kš  WI,          u # 	  \        \        P                  ! RV P                  4       4      4      pV'       dh   \        VRR 4       FU  pVP	                  ^4      p\        V4      \        R4      ,
          p	^ T	u;8:  d   \        V4      8  g   KI  M KM  WI,          u # 	  W9   d   V # V3R loV'       dV   V Uu. uF(  pS! V P                  4       VP                  4       4      NK*  	  ppVVP                  \        V4      4      ,          #  V # VR8X  Edö   \        P                  ! RV 4      pV'       d£   VP	                  ^4      pVP!                  RR4      p\        P"                  ! RV4      pV'       d&    \%        \'        \)        V^ ,          4      4      4      # \        P"                  ! RV4      pV'       d    \%        \'        V^ ,          4      4      # \        V 4      R8”  d   V RR MT p. ROpV F�  p\        \        P                  ! WÜ\        P                  4      4      pV'       g   K;   VR,          P	                  ^4      P!                  RR4      p\%        \'        \)        V4      4      4      u # 	  \        P"                  ! RV 4      pV'       d&    \%        \'        \)        VR,          4      4      4      # \        P"                  ! RV 4      pV'       d-    \%        \'        VR,          P!                  RR4      4      4      #  V # VR8X  Edñ   \'        VP                  R^4      4      p\        P                  ! RV 4      pV'       dœ   VP	                  ^4      p\        P"                  ! RV4      pV'       d'    \%        \-        \)        V^ ,          4      V4      4      # \        P"                  ! RV4      pV'       d'    \%        \-        \)        V^ ,          4      V4      4      # \        V 4      R8”  d   V RR MT p. ROpV Fp  p\        \        P                  ! WÜ\        P                  4      4      pV'       g   K;   \%        \-        \)        VR,          P	                  ^4      4      V4      4      u # 	  \        P"                  ! RV 4      pV'       d'    \%        \-        \)        VR,          4      V4      4      # \        P"                  ! RV 4      pV'       d'    \%        \-        \)        VR,          4      V4      4      # V # u upi   \*         d     EL|i ; i  \*         d     ELSi ; i  \*         d     EKI  i ; i  \*         d     EL’i ; i  \*         d     T # i ; i  \*         d     ELÐi ; i  \*         d     EL�i ; i  \*         d     EK“  i ; i  \*         d     Lëi ; i  \*         d     T # i ; i)z5Normalize the model's response to extract the answer.Nr   Úanswer_typer   r   z\\boxed\{([^}]+)\}z^\(?([A-Z])\)?\.?$ÚAu   æ•…é€‰[ï¼š:]\s*([A-Z])u   æ•…é€‰\s*([A-Z])iô  z\(?([A-Z])\)?\.?c           	      óÎ  <€ \        V 4      \        V4      8  d	   S! W4      # \        V4      ^ 8X  d   \        V 4      # \        \        V4      ^,           4      p\        V 4       Fv  w  r4V^,           .p\        V4       FV  w  rgW&^,           ,          ^,           pWV,          ^,           p	W&,          WG8g  ,           p
VP                  \	        W‰V
4      4       KX  	  TpKx  	  VR,          # )r   éÿÿÿÿ)ÚlenÚranger   ÚappendÚmin)Ús1Ús2Úprevious_rowr   Úc1Úcurrent_rowÚjÚc2Ú
insertionsÚ	deletionsÚsubstitutionsÚdistances   &&         €r   r9   Ú"normalize_answer.<locals>.distancei   sÃ   ø€ Ü�2‹wœ˜R›Ô Ù Ó'Ð'Ü�2‹w˜!Œ|Ü˜2“w�ä ¤ R£¨1¥Ó-ˆLÜ" 2ž‘�Ø  1�u˜g�Ü& rž]‘E�AØ!-°!­eÕ!4°qÕ!8�JØ +¥°Õ 2�IØ$0¥O°r±xÕ$@�MØ×&Ñ&¤s¨:À-Ó'PÖQñ	 +ð
  +’ñ 'ð   Õ#Ð#r   ÚintegerÚ,Ú z-?\d+\.?\d*[eE][+-]?\d+z-?\d+z-?[\d,]+ÚfloatÚ	precisionz-?\d+\.?\d*)z&(?:the\s+)?answer\s+is\s+\(?([A-Z])\)?zanswer:\s*\(?([A-Z])\)?zchoose\s+\(?([A-Z])\)?zoption\s+\(?([A-Z])\)?iþÿÿr*   éûÿÿÿ)z>(?:the\s+)?answer\s+is\s+(-?[\d,]+\.?\d*[eE][+-]?\d+|-?[\d,]+)z/answer:\s*(-?[\d,]+\.?\d*[eE][+-]?\d+|-?[\d,]+)zY(?:total|result|left|remaining)(?:\s+is|\s+are|:)\s*(-?[\d,]+\.?\d*[eE][+-]?\d+|-?[\d,]+))z>(?:the\s+)?answer\s+is\s+(-?\d+\.?\d*[eE][+-]?\d+|-?\d+\.?\d*)z/answer:\s*(-?\d+\.?\d*[eE][+-]?\d+|-?\d+\.?\d*)z-d\s*=\s*(-?\d+\.?\d*[eE][+-]?\d+|-?\d+\.?\d*))ÚstripÚgetÚreÚsearchÚgroupÚmatchÚupperÚordr+   ÚlistÚfinditerÚ
IGNORECASEÚreversedÚlowerÚindexr.   ÚreplaceÚfindallr   Úintr>   Ú	ExceptionÚround)r$   r%   r   r'   r   Úboxed_matchÚboxed_contentÚletter_matchÚletterÚidxÚchinese_matchÚanswer_patternsÚend_sectionÚpatternÚmatchesrF   r    Ú	distancesÚsci_numbersÚnumbersÚnum_strr?   r9   s   &&                    @r   Únormalize_answerrb      sê  ø€ à�~‰~Ó€HçÙà˜OÕ,€MØ˜-Õ(€KØ�k‰k˜) RÓ(€Gð ˜Õ&ä—i’iÐ 5°xÓ@ˆßØ'×-Ñ-¨aÓ0ˆMäŸ8š8Ø% }×':Ñ':Ó'<×'BÑ'BÓ'DóˆL÷ Ø%×+Ñ+¨AÓ.�Ü˜&“k¤C¨£HÕ,�Ø˜Ö*œc '›lÕ*Ø"�<Ð'ð +ð ×"Ñ"Ó$¨Ô/Ø$×*Ñ*Ó,Ð,ô Ÿ	š	Ð";¸X¿^¹^Ó=MÓNˆßÜŸIšIÐ&9¸8¿>¹>Ó;KÓLˆMßØ"×(Ñ(¨Ó+ˆFÜ�f“+¤ C£Õ(ˆCØ�CÖ&œ#˜g›,Õ&Ø•|Ð#ð 'ò
ˆô *-¨X«¸Ô)<�h˜t˜u‘oÀ(ˆÛ&ˆGÜœ2Ÿ;š; w¼R¿]¹]ÓKÓLˆGß‰wà  �×*Ñ*¨1Ó-×3Ñ3Ó5�Ü˜&“k¤C¨£HÕ,�Ø˜Ö*œc '›l×*Ò*Ø"�<Ò'ñ 'ô ”r—{’{Ð#6¸¿¹Ó8HÓIÓJˆßä! '¨"¨# ,Ö/�ØŸ™ Q›�Ü˜&“k¤C¨£HÕ,�Ø˜Ö*œc '›l×*Ò*Ø"�<Ò'ñ	 0ð ÔØˆOõ	$÷$ áIPóÙIP¸v‘˜Ÿ™Ó)¨6¯<©<«>Ö:Éð ð ð ˜9Ÿ?™?¬3¨y«>Ó:Õ;Ð;ð	 ðr €Oðe 
˜	Õ	!ä—i’iÐ 5°xÓ@ˆßØ'×-Ñ-¨aÓ0ˆMà)×1Ñ1°#°rÓ:ˆMäŸ*š*Ð%?ÀÓOˆKßðÜœs¤5¨°Q­Ó#8Ó9Ó:Ð:ô —j’j ¨=Ó9ˆGßðÜœs 7¨1¥:›Ó/Ð/ô
 *-¨X«¸Ô)<�h˜t˜u‘oÀ(ˆò
ˆó 'ˆGÜœ2Ÿ;š; w¼R¿]¹]ÓKÓLˆGß‰wðà% b�k×/Ñ/°Ó2×:Ñ:¸3ÀÓC�GÜœs¤5¨£>Ó2Ó3Ò3ñ 'ô —j’jÐ!;¸XÓFˆßðÜœ3œu [°¥_Ó5Ó6Ó7Ð7ô —*’*˜[¨(Ó3ˆßðäœ3˜w r�{×2Ñ2°3¸Ó;Ó<Ó=Ð=ð ð~ €Oðo 
˜Õ	Ü˜Ÿ™ K°Ó3Ó4ˆ	ô —i’iÐ 5°xÓ@ˆßØ'×-Ñ-¨aÓ0ˆMäŸ*š*Ð%?ÀÓOˆKßðÜœu¤U¨;°q­>Ó%:¸IÓFÓGÐGô —j’j °Ó?ˆGßðÜœu¤U¨7°1­:Ó%6¸	ÓBÓCÐCô
 *-¨X«¸Ô)<�h˜t˜u‘oÀ(ˆò
ˆó 'ˆGÜœ2Ÿ;š; w¼R¿]¹]ÓKÓLˆGß‰wðÜœu¤U¨7°2­;×+<Ñ+<¸QÓ+?Ó%@À)ÓLÓMÒMñ	 'ô —j’jÐ!;¸XÓFˆßðÜœ5¤ {°2¥Ó!7¸ÓCÓDÐDô
 —*’*˜^¨XÓ6ˆßðäœ5¤ w¨r¥{Ó!3°YÓ?Ó@Ð@ð €Oùòqøô$ !ô Úðûô !ô Úðûô$ !ô Ûðûô ô Úðûô ô Øðt €Oðwûô  !ô Úðûô !ô Úðûô  !ô Ûðûô ô Ùðûô ô Øà€Oðús»   Í.^Ð#^ Ñ
^* Ò>A^<Ô'#_ Õ+*_! Ø$_3 Ù$` Û3`Ü'$`* Ý,$`; Þ^'Þ&^'Þ*^9Þ8^9Þ<_ß_ß_ß_ß!_0ß/_0ß3`à`à`à`à`'à&`'à*`8à7`8à;a
á	a
c                óR   € V ^8„  d   QhR\         \        ,          R\        R\        /# )r   Ú
predictionÚground_truthr   )r   r   Úbool)r   s   "r   r   r   ÷   s%   € ÷ -ñ -¤¬¥ð -¼Sð -ÄTñ -r   c           	     óü  € V f   R#  \        V 4      P                  4       \        V4      P                  4       8X  d   R# / RRbRRbRRbR	R
bRRbRRbRRbRRbRRbRRbRRbRRbRRbRRbRR bR!R"bR#R$bR%R&R'R(R)R*R+R,/Cp\        V 4      P                  4       P                  4       p\        V4      P                  4       P                  4       pW29   d	   W#,          pWB9   d	   W$,          pW48H  #   \         d     R# i ; i)-z1Check if the prediction matches the ground truth.FTÚzeroÚ0ÚoneÚ1ÚtwoÚ2ÚthreeÚ3ÚfourÚ4ÚfiveÚ5ÚsixÚ6ÚsevenÚ7ÚeightÚ8ÚnineÚ9ÚtenÚ10ÚelevenÚ11ÚtwelveÚ12ÚthirteenÚ13ÚfourteenÚ14ÚfifteenÚ15ÚsixteenÚ16Ú	seventeenÚ17ÚeighteenÚ18ÚnineteenÚ19ÚtwentyÚ20)r   rA   rM   rR   )rd   re   Úword_to_numÚpred_normalizedÚgt_normalizeds   &&   r   Úevaluate_answerr•   ÷   s’  € àÒÙð)äˆz‹?× Ñ Ó"¤c¨,Ó&7×&=Ñ&=Ó&?Ô?Ùð
Ø�Cð
à�3ð
ð �3ð
ð �Sð	
ð
 �Cð
ð �Cð
ð �3ð
ð �Sð
ð �Sð
ð �Cð
ð �4ð
ð �dð
ð �dð
ð ˜ð
ð ˜ð
ð  �tð!
ð" �tð#
ð$ ˜Ø˜Ø˜Ø�dñ+
ˆô0 ˜j›/×/Ñ/Ó1×7Ñ7Ó9ˆÜ˜LÓ)×/Ñ/Ó1×7Ñ7Ó9ˆð Ô)Ø)Õ:ˆOØÔ'Ø'Õ6ˆMàÑ/Ð/øÜô Úðús   ˆ5C, ¿B,C, Ã,C;Ã:C;c                  óf  € \         P                  ! R R7      p V P                  R\        RRR7       V P                  R\        RR7       V P                  R	\        R
RR7       V P                  R\        RRR.RR7       V P                  RRRR7       V P                  R\        RRR7       V P                  R\        RRR7       V P                  R\        RRR7       V P                  R\
        R R!R7       V P                  R"RR#R7       V P                  R$\        ^*R%R7       V P                  4       # )&z&Evaluate models on MathVista benchmark)Údescriptionz--modelTzThe path to the MLX VLM model)ÚtypeÚrequiredÚhelpz--adapter-pathz8Optional path for the trained adapter weights and config)r˜   rš   z	--datasetzAI4Math/MathVistazHugging Face dataset name)r˜   Údefaultrš   z--splitÚtestminiÚtestzDataset split to evaluate on)r˜   r›   r   rš   z--streamingÚ
store_truezUse streaming dataset loading)Úactionrš   z--max-samplesNz5Maximum number of samples to evaluate (for debugging)z--output-dirzresults/mathvistazDirectory to save resultsz--max-tokensi   z$Maximum number of tokens to generatez--temperatureg        zTemperature for generationz	--verbosez#Print detailed output for debuggingz--seedzRandom seed)ÚargparseÚArgumentParserÚadd_argumentr   rQ   r>   Ú
parse_args)Úparsers    r   r£   r£   '  s†  € Ü×$Ò$Ø<ô€Fð ×ÑØÜØØ,ð	 ô ð ×ÑØÜØGð ô ð
 ×ÑØÜØ#Ø(ð	 ô ð ×ÑØÜØØ˜VÐ$Ø+ð ô ð ×ÑØØØ,ð ô ð
 ×ÑØÜØØDð	 ô ð ×ÑØÜØ#Ø(ð	 ô ð ×ÑØÜØØ3ð	 ô ð ×ÑØÜØØ)ð	 ô ð ×ÑØØØ2ð ô ð
 ×Ñ˜¤s°B¸]ÐÔKØ×ÑÓÐr   c                  ó´  € \        4       p \        P                  ! V P                  4       \        P                  ! V P
                  '       d   \        P                  M\        P                  R R7       \        P                  ! RV P                   24       \        V P                  V P                  RR7      w  r\        P                  ! RV P                   RV P                   24       \        V P                  V P                  V P                  R7      pV P                   '       d8   VP#                  \%        \'        V P                   \)        V4      4      4      4      p\+        V P,                  4      pVP/                  RRR7       / p/ p^ p^ p\1        \3        VR	R
7      4       EF)  w  ršV
R,          p RV
9   d¸   V
R,          '       d©   \5        V
R,          \6        4      '       ds   V
R,          p\8        P:                  P=                  V4      '       d'   \>        P@                  ! V4      PC                  R4      pMS\        PD                  ! RV RV 24       Kµ  V
R,          PC                  R4      pM\        PD                  ! RV R24       Kê  \G        V
4      p\I        VVVVV PJ                  V PL                  R7      pVPO                  4       p\Q        VV
4      pV
PS                  RR4      pV P                  R8X  d'   V'       d   \U        VV4      pV'       d
   V^,          pMRpV^,          pRVRV
R,          RV
R,          RV
R,          RV
R,          RV
PS                  R. 4      RV
PS                  RR4      RV
PS                  R^ 4      RVRVR VR!VR"V
PS                  R"/ 4      /W[&   V
PS                  R"/ 4      PS                  R#R$4      pVV9  d
   R!^ R%^ /VV&   VV,          R%;;,          ^,          uu&   V'       d   VV,          R!;;,          ^,          uu&   V P
                  '       d¢   \        P                  ! R&V R'24       \        P                  ! R(V
R,           24       \        P                  ! R)V 24       \        P                  ! R*V 24       \        P                  ! R+V 24       \        P                  ! R,V 24       EK)  EK,  	  V P                  R8X  d   V^ 8”  d	   Wx,          M^ pMRpRpV P                  P                  R/4      RN,          pVV R0V P                   R12,          p. ROOp\A        VR2RR3R47      ;_uu_ 4       p\Z        P\                  ! VVR57      pVP_                  4        VPa                  4        F©  pVPc                  4       p\5        VPS                  R4      \d        4      '       d   R6Pg                  VR,          4      VR&   \5        VPS                  R"4      \h        4      '       d!   \j        Pl                  ! VR",          4      VR"&   VPo                  V4       K«  	  RRR4       R7V P                  R8V P                  R9V P                  R:VR;V/pVe   VVR!&   VVR<&   VV R0V P                   R=2,          p\A        VR24      ;_uu_ 4       p\j        Pp                  ! VV^R>7       RRR4       \s        R?RP 24       \s        R@4       \s        RP 4       \s        RAV P                   24       \s        RBV P                   24       \s        RCV 24       Ve'   \s        R,V 24       \s        RDV^d,          RE RF24       M\s        RG4       \s        RR4       \s        RH4       \s        RQ 4       VPu                  4        FJ  w  pp V R%,          p!V R!,          p"V!^ 8”  d
   V"V!,          M^ p#\s        RIV R.V" R/V! RJV#^d,          RE RK2	4       KL  	  \s        RP 4       \s        RLV RMV 24       R#   \V         d)   p\        PX                  ! R-T R.T 24        Rp?EK…  Rp?ii ; i  + '       g   i     EL; i  + '       g   i     EL’; i)Sz)%(asctime)s - %(levelname)s - %(message)s)Úlevelr   zLoading model from T)Úadapter_pathÚtrust_remote_codezLoading dataset z, split )ÚsplitÚ	streaming)ÚparentsÚexist_okÚ
Evaluating)ÚdescÚpidÚdecoded_imageÚRGBzImage not found: z, skipping sample zNo image for sample z
, skipping)ÚimageÚ
max_tokensÚtemperatureÚanswerr=   rœ   Nr   r   r   r'   r   Úunitr?   re   r$   rd   ÚcorrectÚmetadataÚcategoryÚunknownÚtotalz
Sample Ú:z
Question: z
Response: zPrediction: zGround Truth: z	Correct: zError processing sample z: Ú/Ú_MathVista_z.csvÚwzutf-8)ÚnewlineÚencoding)Ú
fieldnamesz; ÚmodelÚdatasetr©   Útotal_samplesÚcategory_scoresÚaccuracyz.json)Úindentr   zMathVista Evaluation ResultszModel: zSplit: zTotal Samples: z
Accuracy: z.2fÚ%z=Accuracy not computed for this split (no ground truth labels)zSubcategory Scores:z  z (z%)z
Results saved to z and r*   )r¯   r   r   r   r'   r   r¶   r?   re   r$   rd   r·   r¸   zP================================================================================zP--------------------------------------------------------------------------------zQ
--------------------------------------------------------------------------------);r£   ÚrandomÚseedÚloggingÚbasicConfigÚverboseÚINFOÚWARNINGÚinforÃ   r   r§   rÄ   r©   r   rª   Úmax_samplesÚselectr,   r.   r+   r   Ú
output_dirÚmkdirr   r   Ú
isinstancer   ÚosÚpathÚexistsr   ÚopenÚconvertÚwarningr"   r	   r³   r´   rA   rb   rB   r•   rR   ÚerrorÚcsvÚ
DictWriterÚwriteheaderÚvaluesÚcopyrI   r   r   ÚjsonÚdumpsÚwriterowÚdumpÚprintÚitems)$ÚargsrÃ   Ú	processorrÄ   rÔ   ÚresultsrÆ   r·   r»   rX   r   r¯   Ú
image_pathr²   ÚpromptÚoutputr$   rd   re   Ú
is_correctr¹   ÚerÇ   Ú
model_nameÚresults_filerÂ   ÚfÚwriterÚresultÚrowÚsummaryÚsummary_fileÚscoresÚ	cat_totalÚcat_correctÚcat_accuracys$                                       r   Úmainrý   i  s%  € Ü‹<€Dä
‡K‚K�—	‘	Ôô ×ÒØ"ŸlŸl˜lŒg�lŠl´·±Ø:õô
 ‡L‚LÐ& t§z¡z lÐ3Ô4ÜØ�
‰
 ×!2Ñ!2ÀdôÑ€Eô
 ‡L‚LÐ# D§L¡L >°¸$¿*¹*¸ÐFÔGÜ˜4Ÿ<™<¨t¯z©zÀTÇ^Á^ÔT€Gà××ÐØ—.‘.¤¤s¨4×+;Ñ+;¼SÀ»\Ó'JÓ!KÓLˆô �d—o‘oÓ&€JØ×Ñ˜T¨DÐÔ1à€GØ€OØ€GØ€Eô !¤ g°LÔ!A×B‰ˆØ�U�mˆðS	à &Ô(¨V°O×-DÔ-DÜ˜f _Õ5´s×;Ò;Ø!'¨Õ!8�JÜ—w‘w—~‘~ j×1Ò1Ü %§
¢
¨:Ó 6× >Ñ >¸uÓ E™äŸšØ/°
¨|Ð;MÈcÈUÐSôñ !ð # ?Õ3×;Ñ;¸EÓB‘Eä—’Ð"6°s°e¸:Ð FÔGÙô & fÓ-ˆFô ØØØØØŸ?™?Ø ×,Ñ,ôˆFð —|‘|“~ˆHô *¨(°FÓ;ˆJð "Ÿ:™: h°Ó3ˆLØ�z‰z˜ZÔ'¯LÜ,¨Z¸ÓF�
ßØ˜q•L�Gøà!�
à�Q�JˆEð �sØ˜F :Õ.Ø˜ �Ø ¨Õ!8Ø˜v mÕ4Ø˜6Ÿ:™: i°Ó4Ø˜Ÿ
™
 6¨2Ó.Ø˜VŸZ™Z¨°QÓ7Ø Ø˜HØ˜jØ˜:Ø˜FŸJ™J z°2Ó6ðˆG‰Lð  —z‘z *¨bÓ1×5Ñ5°jÀ)ÓLˆHØ˜Ô.Ø-6¸¸7ÀAÐ,F� Ñ)à˜HÕ% g×.°!Õ3Ó.ßØ Õ)¨)×4¸Õ9Ó4à�|�|ˆ|Ü—’˜y¨¨¨QÐ/Ô0Ü—’˜z¨&°Õ*<Ð)=Ð>Ô?Ü—’˜z¨(¨Ð4Ô5Ü—’˜|¨J¨<Ð8Ô9Ü—’˜~¨l¨^Ð<Ô=Ü—’˜y¨¨Ð5×6ò ñY Cðr ‡z�z�ZÔØ&+¨a¤i�7–?°Q‰àˆØˆð —‘×!Ñ! #Ó& rÕ*€JØ : ,¨k¸$¿*¹*¸ÀTÐ JÕJ€Lò€Jô  
ˆl˜C¨°g×	>Õ	>À!Ü—’ ¨jÔ9ˆØ×ÑÔà—n‘nÖ&ˆFà—+‘+“-ˆCÜ˜#Ÿ'™' )Ó,¬d×3Ò3Ø!%§¡¨3¨y­>Ó!:��I‘Ü˜#Ÿ'™' *Ó-¬t×4Ò4Ü"&§*¢*¨S°­_Ó"=��J‘Ø�O‰O˜CÖ ñ '÷	 
?ð 	�—‘Ø�4—<‘<Ø�—‘Ø˜Ø˜?ð€Gð ÒØ$ˆ�	ÑØ&ˆ�
Ñà : ,¨k¸$¿*¹*¸ÀUÐ KÕK€LÜ	ˆl˜C×	 Ô	  AÜ�	Š	�'˜1 QÕ'÷ 
!ô 
ˆBˆvˆhˆ-ÔÜ	Ð
(Ô)Ü	ˆVˆHÔÜ	ˆG�D—J‘J�<Ð
 Ô!Ü	ˆG�D—J‘J�<Ð
 Ô!Ü	ˆO˜E˜7Ð
#Ô$ØÒÜ�	˜'˜Ð#Ô$Ü�
˜8 C�<¨Ð,¨AÐ.Õ/äÐMÔNä	ˆ/ÔÜ	ÐÔ!Ü	ˆVˆHÔØ+×1Ñ1Ö3Ñˆ�&Ø˜7•Oˆ	Ø˜YÕ'ˆØ2;¸a´-�{ YÖ.ÀQˆÜ��8�*˜B˜{˜m¨1¨Y¨K°r¸,ÀsÕ:JÈ3Ð9OÈrÐRÖSñ	 4ô
 
ˆVˆHÔÜ	Ð ˜~¨U°<°.Ð
AÖBøôg ô 	Ü�MŠMÐ4°S°E¸¸A¸3Ð?Ô@Þûð	ú÷@ 
?×	>Ð	>ú÷6 
!×	 Ð	 ús`   Æ5_<ÇA
_<ÈA_<É3_<ÊA6_<ÌC8_<Ï?-_<Ð-B_<ÕC&`2Ú#aß<`/à`*à*`/à2a	áa	Ú__main__)r    rÞ   rã   rÌ   r×   rÊ   rC   Úpathlibr   Útypingr   Údatasetsr   ÚPILr   r   Úmlx_vlmr   Úmlx_vlm.evals.utilsr	   r"   rb   r•   r£   rý   Ú__name__© r   r   Ú<module>r     sc   ðÛ Û 
Û Û Û 	Û Û 	Ý Ý å !Ý Ý å Ý )õ	õUõp-ò`?òDHCðV ˆzÔÙ†Fñ r   