+
     ÒhjÄ\  ã            
       ó4  € R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t
]P                  P                  ]P                  P                  ]4      4      t]P                  P!                  ]P                  P#                  ]RR4      4      t]]P                  9  d   ]P                  P'                  ^ ]4        ^ RItRRuttRtRtR	tR
t0 R?mt^^.t. R@Ot Rt!Rt"^R^R^R^R^R/t#R t$Rt%Rt&^Èt'RAt(R t)R^R^R^R^/t*]PV                  ! R4      t,]PV                  ! R4      t-RBR lt.]P                  P#                  ];t/RR4      t0]PV                  ! R4      t1R  t2R! t3/ t4. RCNRDNRENRFNRGNRHNRINRJNRKNRLNRMNRNNRONRPNRQNRRNRSNRTNRUNRVNRWNRXNRYNRZNR[NR\NR]NR^NR_NR`NRaNRbNt5R" t6RcR# lt7 ! R$ R%]4      t8R& t9/ t:]PV                  ! R']Pv                  4      t<]PV                  ! R(4      t=]PV                  ! R)]P|                  4      t?R* t@RdR+ ltAR, tBReR- ltC]DR.8X  dØ   ^ RIEtERf FË  tF]EPŠ                  ! 4       tG]C! R/R0^
]F4      w  tHtI]J! ]FR1 R2]EPŠ                  ! 4       ]G,
          R3 R4]K! ]H4       R5]I 24       ]H'       g   K]  ]J! R6R7]H^ ,          R8,          9   4       ]J! R9]H^ ,          R:,          R;,          P™                  R<R24      4       ]J! R=]H^ ,          R:,          P›                  R>4      4       KÍ  	  R# R#   ] d   tRR]! ]4      uttt RtAELNRtAii ; i)guU  ç»„å�·å�°ã€Œå‡ºå�Œç±»é¢˜ã€�çš„ç¬¬ä¸‰æ�¡è…¿ï¼šå­¦ç§‘ç½‘çœŸé¢˜ã€‚

è–„å°�è£…ï¼Œå�ªå�šä¸‰ä»¶äº‹ï¼šè°ƒæŽ¥å�£ã€�æŠŠè¿”å›žå½’ä¸€æˆ�ç»„å�·å�°çš„ item å½¢çŠ¶ã€�æŠŠå…¬å¼�å›¾å†…åµŒæˆ� base64ã€‚
ç­¾å��/å‡­è¯�å…¨äº¤ç»™ `æ�œé¢˜/xkw.py`ï¼ˆå‡­è¯�å�ªä»Ž ~/.secrets/xkw_open_api è¯»ï¼Œä¸�è¿›æ—¥å¿—ï¼‰ã€‚

## ä¸ºä»€ä¹ˆä¸�å…ˆ text-search å®šä½� question_id
äº¤æŽ¥é‡Œå†™ã€Œè¦� 10 é�“å°±å…ˆ text-search æ‹¿ id å†�èµ° v2ã€�â€”â€”**å…¶å®žä¸�å¿…**ã€‚æŸ¥ swaggerï¼ˆsg12ï¼‰ï¼š
    similar-recommend v1    `text`          é¢˜å¹²æ–‡æœ¬ï¼Œä¸Ž question_id äºŒé€‰ä¸€ï¼Œcount é»˜è®¤ 5
    ai-similar-recommend    `question_text` é¢˜å¹²æ–‡æœ¬ / `question_image` é¢˜å¹²å›¾ç‰‡ / question_id
                            ä¼˜å…ˆçº§ è¯•é¢˜ID > é¢˜å¹²å›¾ç‰‡ > é¢˜å¹²æ–‡æœ¬ï¼Œcount â‰¤ 10
ä¸¤æ�¡éƒ½èƒ½ç›´æŽ¥å�ƒé¢˜é�¢æ–‡æœ¬ã€‚å®žæµ‹ v1 0.5 ç§’å‡º 5 é�“ã€�ai 4.6 ç§’å‡º 10 é�“ï¼Œ
çœ�æŽ‰ä¸€æ¬¡è°ƒç”¨ï¼Œä¹Ÿé�¿å¼€äº†ã€Œé¢˜é�¢å®šä½�ä¸�åˆ°å°±æ²¡ç»“æžœã€�é‚£ä¸ªå·²çŸ¥ç›²åŒºã€‚
ï¼ˆv2 æ‰�æ˜¯å�ªè®¤ question_idã€‚ï¼‰

## æŽˆæ�ƒçº¢çº¿ï¼ˆæ�œé¢˜/CLAUDE.mdï¼‰
å­¦ç§‘ç½‘æ˜¯**æŽˆæ�ƒå†…å®¹ä¸�æ˜¯è‡ªæœ‰å†…å®¹**ï¼šå�¯å®žæ—¶è°ƒç”¨ã€�å�¯å±•ç¤ºã€�å�¯ç»™è€�å¸ˆå�‚è€ƒï¼Œ
ä½† **ä¸�è�½åº“ã€�ä¸�åŽ»æ°´å�°ã€�ä¸�å¹¶è¿›é›¶ç­”æ¡ˆé¢˜åº“**ã€‚æ‰€ä»¥ï¼š
- æŠ½å±‰é‡Œ**åŽŸæ ·æ¸²æŸ“è¿”å›žçš„ HTML**ï¼ˆ`<!--ç‰ˆæ�ƒå£°æ˜Ž-->` æ³¨é‡Šå’Œ `data-copyright` æ°´å�°éƒ½åœ¨ï¼Œæ²¡å‰¥ï¼‰ï¼›
- å�ªç¼“å­˜å…¬å¼�å›¾å’Œ question_idï¼Œä¸�ç¼“å­˜é¢˜é�¢æ­£æ–‡ã€‚
âš  å�·é�¢/å±�å¹•ä¸Šçš„**å�¯è§�**ç‰ˆæ�ƒå­—æ ·ï¼Œç”¨æˆ· 2026-07-27 æ˜Žç¡®è¦�æ±‚å…¨éƒ¨åŽ»æŽ‰ï¼Œå·²ç…§åŠž
  ï¼ˆé‚£äº›æ˜¯æˆ‘é¢�å¤–åŠ çš„æ–‡å­—ï¼›çœŸæ°´å�°æ˜¯ HTML å±žæ€§å’Œæ³¨é‡Šï¼Œä¸�æ¸²æŸ“ä¸�æ‰“å�°ï¼Œä¸€ä¸ªå­—èŠ‚æ²¡åŠ¨ï¼‰ã€‚
  **åˆ«å†�è‡ªä½œä¸»å¼ åŠ å›žåŽ»ã€‚**
Nz..u   æ�œé¢˜TÚ Fz#/xopqbm/questions/similar-recommendz&/xopqbm/questions/ai-similar-recommendz/xopqbm/ai-tag/predict-kpointz/xopqbm/questionsõ   èƒ¡å°�ç¾¤è¯¾ç¨‹õ	   åŠ¨è„‘ç­‹õ   ä¸¾ä¸€å��ä¸‰g      à?gš™™™™™é?u   å®¹æ˜“u   è¾ƒæ˜“u   ä¸€èˆ¬u   è¾ƒéš¾u   å›°éš¾c                ó¢   € V P                  R4      p \        V4      pY!\        9   d	   \
        8*  # \        8*  #   \        \        3 d     R# i ; i)uq  è¿™é�“é¢˜çš„éš¾åº¦å�ˆä¸�å�ˆæ ¼ã€‚**ç¼º difficulty å­—æ®µæŒ‰ä¸�é€šè¿‡å¤„ç�†ï¼Œåˆ«é»˜è®¤æ”¾è¡Œã€‚**

ä¸ºä»€ä¹ˆå¥¥æ•°è¦�å�¡åˆ° 0.50ï¼š19ã€Œä¸€èˆ¬ã€�è¿™æ¡£å¯¹å¥¥æ•°å°±æ˜¯è¯¾å†…æ°´å¹³ â€”â€” å�Œä¸€ä¸ªçŸ¥è¯†ç‚¹
#66485ã€Œé•¿åº¦å’Œè§’åº¦ã€�ï¼Œ19 æ¡£å‡ºçš„æ˜¯ã€Œé‡�é•¿åº¦ç®—å‘¨é•¿ã€�ï¼Œ20/21 æ¡£å‡ºçš„æ˜¯
ã€Œäº”è§’æ˜Ÿè§’åº¦å’Œã€�ï¼ŒèŠ‚ç‚¹å��ä¸€æ¨¡ä¸€æ ·ï¼Œé¢˜å·®ä¸€ä¸ªé‡�çº§ã€‚
Ú
difficultyF)ÚgetÚfloatÚ	TypeErrorÚ
ValueErrorÚOLYMPIAD_TBÚDIFF_MAX_OLYMPIADÚDIFF_MAX_SCHOOL)ÚqÚtbÚds   && ôS   /Users/luyan/Desktop/AI workspace/è¯¾ç¨‹è®¾è®¡æœºå™¨äºº/ç»„å�·ç³»ç»Ÿ/xkw_similar.pyÚ_diff_okr   B   sT   € ð 	
�‰ˆlÓ€AðÜ�!‹Hˆð ¬KÔ&7Ô"ÑMÐM¼_ÑMÐMøô ”zÐ"ô Úðús   “9 ¹AÁAu0   è¯•é¢˜ç”±å­¦ç§‘ç½‘æŽˆæ�ƒæ��ä¾›ï¼Œå�—ç‰ˆæ�ƒä¿�æŠ¤u”   ï¼ˆå¥¥æ•°éš¾åº¦é“¾è·¯ä¸�å�¯ç”¨ï¼Œå·²é€€å›žç›¸ä¼¼é¢˜ï¼›ç»“æžœæŒ‰å¾—åˆ†çŽ‡å�šäº†æœ¬åœ°è¿‡æ»¤ï¼Œ**æœªç»�ç«žèµ›éš¾åº¦å¸¦ç­›é€‰ï¼Œè¯·äººå·¥è¿‡ä¸€é��**ï¼‰c            	     óà  a€ \         P                  P                  \        RR4      p \        P
                  P                  4       P                  4       p^ p \        V RR7      ;_uu_ 4       pV F¯  p \        P                  ! V4      o\        SP                  RR4      4      R,          T8w  d   KC  SP                  R4      '       d   K\  \        ;QJ d#    T3R	 l\         4       F  '       g   K   R
M	  RM! T3R	 l\         4       4      '       g   K¦  T^,          pK±  	  RRR4       V#   \         d     KË  i ; i  + '       g   i     T# ; i  \          d     ^ # \         d     ^ # i ; i)uk   ä»Šå¤©å�–é¢˜ç±»æŽ¥å�£å·²ç»�æ‰“äº†å‡ æ¬¡ã€‚è¯»ä¸�åˆ°è´¦æœ¬å°±å½“ 0ï¼ˆä¸�å› ä¸ºç»Ÿè®¡å¤±è´¥å�¡ä½�å‡ºé¢˜ï¼‰ã€‚Údatazusage.jsonlúutf-8©ÚencodingÚtr   ºNé
   NÚerrc              3   óf   <"  € T F&  pSP                  R R4      P                  V4      x € K(  	  R# 5i)Úpathr   N)r   Úendswith)Ú.0ÚsÚrs   & €r   Ú	<genexpr>Úday_used.<locals>.<genexpr>v   s*   øé € ÐK¹l¸�q—u‘u˜V RÓ(×1Ñ1°!×4Ð4»lùs   ƒ.1TFN)Úosr   ÚjoinÚ_SEARCHÚdatetimeÚdateÚtodayÚ	isoformatÚopenÚjsonÚloadsÚ	ExceptionÚstrr   ÚanyÚ_FETCH_PATHSÚFileNotFoundError)Úpr*   ÚnÚfÚliner"   s        @r   Úday_usedr8   e   s  ø€ ä
�‰�‰”W˜f mÓ4€AÜ�M‰M×ÑÓ!×+Ñ+Ó-€EØ	€AðÜ�!˜g×&Õ&¨!Û�ðÜŸ
š
 4Ó(�Aô �q—u‘u˜S "“~Ó& sÕ+¨uÔ4Ùà—5‘5˜—<’<Ùß“3ÔK½lÓK—3—3’3ÔK½lÓK×KÔKØ˜•F’Añ ÷ 'ð" €Høô !ô Úðú÷	 'Ö&ð" €Hûô	 ô ÚÜô Úðúsx   ÁE Á+D=Á2D+Â?D=ÃD=ÃD=Ã0D=ÄD=Ä!E Ä+D:	Ä6D=Ä9D:	Ä:D=Ä=E	ÅE ÅE ÅE-ÅE-Å(E-Å,E-u   åˆ�ä¸­åŸ¹ä¼˜è®²ä¹‰u1   åˆ�|å…­å¹´çº§|å…­ä¸Š|å…­ä¸‹|[ä¸ƒå…«ä¹�]|\b[789]\bu   é«˜[ä¸€äºŒä¸‰ä¸­]c                ój  € \        T;'       g    R4      P                  4       pV\        9   d   \        V,          # \        T ;'       g    R4      pVR8X  d"   \        P                  ! RV4      '       d   ^# ^# \
        P	                  V4      '       d   ^# \        P	                  V4      '       d   ^# ^# )u]   â†’ å­¦ç§‘ç½‘ course_idã€‚**æ•™æ��ä½“ç³»ä¼˜å…ˆ**ï¼Œå¹´çº§å­—æ ·å�ªåœ¨æ•™æ��æœªçŸ¥æ—¶å…œåº•ã€‚r   u   ä¸€è¯¾ä¸€ç»ƒu   å…­å¹´çº§|[ä¸ƒå…«ä¹�]å¹´çº§)r0   ÚstripÚ	TB_COURSEÚreÚsearchÚ_SENIORÚ_JUNIOR)Úgrader   Úgs   && r   Ú	course_idrB   ‹   s†   € ä	ˆR�XˆX�2‹×	Ñ	Ó	€BØ	ŒY„Ü˜�}ÐÜˆE�KˆK�RÓ€AØ	ˆ^ÔÜ—Y’YÐ=¸q×AÒAˆrÐHÀqÐHÜ‡~�~�a×ÒÙÜ‡~�~�a×ÒÙÙó    u	   çŸ¥è¯†æ ‘u   å°�å­¦æ•°å­¦_ç«žèµ›åˆ†æ”¯.jsonu"   [ï¼ˆ(][^ï¼ˆ()ï¼‰]*[)ï¼‰]|[Â·ãƒ»\s]c                 ót   € \         P                  R \        T ;'       g    R 4      4      P                  RR4      # )r   u   ä¸Žu   å’Œ)Ú_NOISEÚsubr0   Úreplace)Úxs   &r   Ú_norm_kprI   ¤   s*   € Ü�:‰:�bœ#˜aŸg˜g 2›,Ó'×/Ñ/°°uÓ=Ð=rC   c                 óÜ   aa€ R\         9  dA   / o \        P                  ! \        \        RR7      4      p VV3R loS! V 4       S\         R&   \         R,          #   \
         d    . p  L4i ; i)uh   {è§„èŒƒåŒ–èŠ‚ç‚¹å��: kpoint_id} â€”â€” ä¸“é¢˜å��ç›´æŽ¥æŸ¥ç«žèµ›çŸ¥è¯†ç‚¹ï¼Œç¡®å®šæ€§ã€�é›¶ API è°ƒç”¨ã€‚Úcir   r   c                 ó  <€ T ;'       g    .  Fu  p\        VP                  R 4      4      pV'       d0   VP                  R4      '       d   SP                  W!R,          4       S! VP                  R4      ;'       g    . 4       Kw  	  R# )ÚnameÚidÚchildrenN)rI   r   Ú
setdefault)Únsr5   ÚnmÚidxÚwalks   &  €€r   rT   Ú_contest_index.<locals>.walk±   s_   ø€ Ø—X�X˜2’X�Ü˜aŸe™e F›mÓ,�ß˜!Ÿ%™% Ÿ+š+Ø—N‘N 2¨¥wÔ/Ù�Q—U‘U˜:Ó&×,Ð,¨"Ö-ó	 rC   )Ú_CACHEr-   Úloadr,   Ú_CONTEST_FILEr/   )r   rS   rT   s    @@r   Ú_contest_indexrY   ¨   sa   ù€ à”6ÔØˆð	Ü—	’	œ$œ}°wÔ?Ó@ˆAö	.ñ 	ˆQŒØŒˆt‰Ü�$�<Ðøô ô 	ØŠAð	ús   ‘%A ÁA+Á*A+c                óæ  € \        \        P                  ! RRT ;'       g    R4      4      pV'       g   . # \        4       pW9   d
   W!,          .# VP	                  4        UUu. uF'  w  r4W9   g	   W19   g   K  \        V4      ^8¼  g   K%  VNK)  	  pppV'       d
   VR,          # \         F>  w  rg\        V4      V9   g   K  VP                  \        V4      4      pV'       g   K;  V.u # 	  . # u uppi )u�   ä¸“é¢˜å�� â†’ ç«žèµ›çŸ¥è¯†ç‚¹ idã€‚ã€Œå¹´é¾„é—®é¢˜ã€�ã€Œæ¤�æ ‘é—®é¢˜ã€�ã€Œç­‰å·®æ•°åˆ—ã€�è¿™äº›**å°±æ˜¯ç«žèµ›æ ‘çš„èŠ‚ç‚¹å��**ã€‚u    ^(ä¸“é¢˜\d+|ç¬¬\d+[è®²èŠ‚])[Â·]?r   r   )rI   r<   rF   rY   ÚitemsÚlenÚTOPIC_ALIASr   )Útopicr   rS   ÚkÚvÚhitÚkwÚnodes   &       r   Ú	_by_topicrd   Õ   sÁ   € ä”—’Ð;¸RÀÇÀÈ"ÓMÓN€AßØˆ	Ü
Ó
€CØ„xØ•ˆxˆØŸ™œÔ
K™‘�¨¬°1±6Œ1¼sÀ1»vÈ¹{�1ˆ1™€CÑ
Kß
Ø�3�xˆß‰ˆô �B‹<˜1ÖØ—‘œ ›Ó'ˆAß‰qØ�s’
ñ  ð €Iùó Ls   Á"C-Á7C-Â	C-c                ó&  € \        V4      pV'       d   V# V'       g   . #  \        P                  ! \        RTRT ;'       g    RR,          /R7      p. pTP                  R4      ;'       g    .  F  p\        TP                  R4      ;'       g    . 4       Uu. uF  qˆP                  RR4      NK  	  p	pR	T	9   g   KN  TP                  R
4      '       g   Kg  TP                  TR
,          4       K�  	  TR,          #   \         d    . u # i ; iu upi )u1  â†’ ç«žèµ›åˆ†æ”¯çŸ¥è¯†ç‚¹ idã€‚**å�ªæŒ‰ä¸“é¢˜å��æŸ¥æ ‘ï¼ˆç¡®å®šæ€§ã€�é›¶ APIï¼‰ã€‚**

`allow_predict=True` æ‰�ä¼šé€€åˆ° `ai-tag/predict-kpoint` â€”â€” å‡ºé¢˜ä¸»é“¾è·¯ä¸€å¾‹ä¸�å¼€ï¼Œ
ç•™ç»™ã€Œè€�å¸ˆæ‰‹è¾“ä¸€é�“é¢˜ã€�é‚£ç§�æˆ‘ä»¬å®Œå…¨ä¸�çŸ¥é�“å®ƒè€ƒä»€ä¹ˆçš„å…¥å�£ã€‚

âš  å�ªé�  `ai-tag/predict-kpoint` å‘½ä¸­çŽ‡å�ªæœ‰ 28%ï¼ˆ52 é�“å…¨å¹´çº§å®¡æŸ¥å®žæµ‹ï¼‰â€”â€”
  å®ƒå¯¹å‡ ä½•é¢˜ä¼šç»™ç«žèµ›èŠ‚ç‚¹ï¼Œä½†ã€Œå¹´é¾„é—®é¢˜/æ¤�æ ‘é—®é¢˜/ç­‰å·®æ•°åˆ—/å®¹æ–¥åŽŸç�†ã€�è¿™äº›
  å…¸åž‹å¥¥æ•°é¢˜åž‹å®ƒå�ªç»™è¯¾æ ‡èŠ‚ç‚¹ã€‚è€Œè¿™äº›å��å­—**åœ¨ç«žèµ›æ ‘é‡Œé€�å­—éƒ½æœ‰**ã€‚
rB   Útextr   ºNiÐ  N©Úbodyr   r   rM   u   æ•°å­¦ç«žèµ›Ú	kpoint_idr   )rd   ÚxkwÚcallÚPREDICTr/   r   ÚreversedÚappend)
rf   Úcidr^   Úallow_predictÚgotr"   ÚidsrH   r4   r   s
   &&&&      r   Ú_competition_kpointsrt   ê   sí   € ô �EÓ
€Cß
Øˆ
ßð ˆ	ðÜ�HŠH”W K°°f¸t¿z¸zÀrÈ5Õ>QÐ#RÔSˆð €CØ�e‰e�F‹m×!Ð!˜rÒ!ˆÜ+3°A·E±E¸&³M×4GÐ4GÀRÔ+HÓIÑ+H a—‘�f˜bÖ!Ñ+HˆÐIØ˜TÖ! a§e¡e¨K×&8Ô&8Ø�J‰J�q˜•~Ö&ñ "ð ˆs�8€Oøô ô ØŠ	ðüò Js   ¡ C; ÁC; ÂDÃ;DÄ
Dc                   ó   € ] tR tRtRtR# )Ú	PushErrori  © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__static_attributes__rw   rC   r   rv   rv     s   † ÛrC   rv   c                ó  € . \        4       Rrep\        ^4       EF!  pV\        V4      ,
          pV^ 8:  d    EMRV RVRVR\        ^
\	        ^V4      4      RRR. R	. R
. /p	V'       d   WiR&    \
        P                  ! \        V	R7      p
T
P                  R4      ;'       g    Tp^ pT
P                  R4      ;'       g    .  Fl  p\        P                  RTP                  R4      ;'       g    R4      R,          pYå9   d   KA  TP                  T4       TP                  T4       T^,          pKn  	  T'       d   EK"   M	  VRV #   \         d>   p\        R\        T4      9   d   R4      hR\        T4      R,          ,          4      hRp?ii ; i)uæ   çŸ¥è¯†ç‚¹æŽ¨é¢˜ + `session_id` è¿žæŽ¨åŽ»é‡� â€”â€” **å”¯ä¸€èƒ½ä¸Šé‡�çš„å…¥å�£**ï¼ˆç›¸ä¼¼é¢˜ä¸€æ¬¡æœ€å¤š 5~10 é�“ï¼‰ã€‚

âš  åŽ»é‡�æŒ‰**é¢˜é�¢æŒ‡çº¹**ä¸�æŒ‰ idï¼ˆæµ·é‡�ç‰ˆ id æ˜¯ä¸€æ¬¡æ€§ tokenï¼Œå�Œé¢˜ä¸¤æ¬¡è¯·æ±‚ id ä¸�å�Œï¼‰ã€‚
NrB   Ú
kpoint_idsÚdifficulty_levelsÚcountÚformula_pic_formatÚpngÚcatalog_idsÚtype_idsÚarea_idsÚ
session_idrh   Ú402uR   å­¦ç§‘ç½‘æŽ¨é¢˜é¢�åº¦å·²ç”¨å°½ï¼ˆ402 èµ„æº�åŒ…ä¸�è¶³ï¼‰ï¼Œè¯·è�”ç³»å­¦ç§‘ç½‘åŠ åŒ…u   æŽ¨é¢˜å¤±è´¥ï¼š%s:Néd   Nr   r   Ústem:NéÈ   N)ÚsetÚranger\   ÚminÚmaxrk   rl   ÚPUSHr/   rv   r0   r   Ú_TAGrF   Úaddro   )rp   ÚkpsÚlevelsÚwantrr   ÚseenÚsidÚ_Úneedri   r"   ÚeÚfreshr   Úfps   &&&&           r   Ú_pushrœ     s‚  € ð
 œ› ˆs€CÜ�1�XˆØ”c˜#“h�ˆØ�1Œ9ÚØ˜S ,°Ð5HÈ&Øœ˜R¤ Q¨£Ó.Ð0DÀeØ˜r :¨r°:¸rðCˆ÷ Ø!$�Ñð	ZÜ—’œ DÔ)ˆAð �e‰e�LÓ!×(Ð( SˆØˆØ—%‘%˜“-×%Ð% 2Ò%ˆAÜ—‘˜"˜aŸe™e F›m×1Ð1¨rÓ2°4Õ8ˆBØŒzÙØ�H‰H�RŒL˜#Ÿ*™* Qœ-¨°!­ªñ	 &÷
 ŠuÙñ1 ð2 ˆu�ˆ:Ðøô ô 	Zô Ø %¬¨Q«¤ð ró Zð ZØ5HÌ3ÈqË6ÐRVÍ<Õ5WóZð Zûð	Zús   Á,EÅFÅ8FÆFz!<img\b[^>]*?\bsrc="([^"]+)"[^>]*>z<[^>]+>z
<!--.*?-->c                 óJ  € V \         9   d   \         V ,          #  \        P                  P                  V ^R7      ;_uu_ 4       pVP	                  4       pRRR4       \        X4      R8”  d   R\         V &   \         V ,          # V P                  4       P                  R4      '       d   RMRpRV: R\        P                  ! V4      P                  4       : 2\         V &    \         V ,          #   + '       g   i     L ; i  \         d    R\         T &    \         T ,          # i ; i)	é   )ÚtimeoutNi€ z.pngz	image/pngzimage/svg+xmlzdata:z;base64,)Ú
_IMG_CACHEÚurllibÚrequestÚurlopenÚreadr\   Úlowerr   Úbase64Ú	b64encodeÚdecoder/   )Úurlr"   ÚrawÚmimes   &   r   Ú
_fetch_imgr¬   5  sß   € Ø
ŒjÔÜ˜#�Ðð	Ü�^‰^×#Ñ# C°Ð#×4Ô4¸Ø—&‘&“(ˆC÷ 5äˆs‹8�gÔØ"ŒJ�s‰Oô �c�?Ðð	 #&§)¡)£+×"6Ñ"6°v×">Ò">‘;ÀO‰DÛ59¼6×;KÒ;KÈCÓ;P×;WÑ;WÕ;YÐZŒJ�sŠOô �c�?Ð÷ 5×4ûô ô ØŒ
�3ŠÜ�c�?Ððús5   š)C? ÁC,Á!C? Â$C? Â'7C? Ã,C<	Ã7C? Ã?D"Ä!D"c                ó€  € \         P                  T ;'       g    R4      pV'       d;   V'       d3   \        VP                  \        \
        P                  V4      4      4       R p\         P                  Y0;'       g    R4      p\        P                  RV4      p\        P                  ! RRV\        P                  R7      p\        P                  RV4      pVP                  RR4      P                  RR	4      P                  R
R4      P                  RR4      p\        P                  ! RRV4      P                  4       # )u3  HTML â†’ å¯¼å‡ºç”¨æ–‡æœ¬ï¼šå…¬å¼�å›¾å†…åµŒæˆ� `![](data:image/png;base64,â€¦)`ï¼Œå…¶ä½™æ ‡ç­¾åŽ»æŽ‰ã€‚

æ³¨ï¼šè¿™ä¸€æ­¥ä¼šä¸¢æŽ‰ `data-copyright` å±žæ€§ï¼ˆæ ‡ç­¾éƒ½åŽ»äº†ï¼‰ã€‚æ›¾åœ¨å�·æœ«è¡¥å�°ç‰ˆæ�ƒå£°æ˜Žï¼Œ
ä½†ç”¨æˆ·æ˜Žç¡®è¦�æ±‚å�·é�¢ä¸�å‡ºçŽ°ä»»ä½•ç‰ˆæ�ƒå­—æ ·ï¼Œå·²åŽ»æŽ‰â€”â€”è§�æ¨¡å�—å¼€å¤´è¯´æ˜Žã€‚
r   c                 ó\   € \        V P                  ^4      4      pV'       d
   RV,          # R# )é   z![](%s)u   [å…¬å¼�å›¾])r¬   Úgroup)Úmr   s   & r   ÚrepÚ_to_export_md.<locals>.repO  s%   € Ü�q—w‘w˜q“zÓ"ˆß !ˆy˜1�}Ð4 }Ð4rC   z</(p|div|br)>Ú
)Úflagsz&nbsp;Ú z&lt;Ú<z&gt;Ú>z&amp;Ú&z\n{3,}z

)Ú_IMGÚfindallÚlistÚmapr¬   ÚdictÚfromkeysrF   Ú_COMMENTr<   ÚIr�   rG   r:   )ÚhtmlÚpoolÚurlsr²   r!   s   &&   r   Ú_to_export_mdrÅ   E  sá   € ô �<‰<˜Ÿ
˜
 Ó#€Dß—ÜˆT�X‰X”j¤$§-¡-°Ó"5Ó6Ô7ò5ô 	�‰�—j�j˜bÓ!€AÜ�‰�R˜Ó€AÜ
�ŠÐ  q´·±Ô5€AÜ�‰��Q‹€AØ	�	‰	�(˜CÓ ×(Ñ(¨°Ó5×=Ñ=¸fÀcÓJ×RÑRÐSZÐ\_Ó`€AÜ�6Š6�)˜V QÓ'×-Ñ-Ó/Ð/rC   c                ón  € V P                  R4      ;'       g    RpRV P                  R4      ;'       g    / P                  R4      ;'       g    RRTR\        W!4      RV P                  R4      ;'       g    RR	V P                  R
4      ;'       g    RRV P                  R4      R\        P                  V P                  R4      R4      RV P                  R4      ;'       g    .  Uu. uF  q3P                  R4      NK  	  upR\        V P                  R4      ;'       g    R4      RRRRR\        /# u upi )uŸ   å­¦ç§‘ç½‘è¿”å›ž â†’ ç»„å�·å�° item å½¢çŠ¶ã€‚

`stem_html` ç»™æŠ½å±‰åŽŸæ ·æ¸²æŸ“ï¼ˆæ°´å�°å®Œæ•´ï¼‰ï¼›`stem` ç»™å¯¼å‡ºï¼ˆå†…åµŒå…¬å¼�å›¾ï¼Œæ— ç‰ˆæ�ƒå­—æ ·ï¼‰ã€‚
r‰   r   ÚtyperM   u   çœŸé¢˜Ú	stem_htmlÚanswer_htmlÚanswerÚexplanation_htmlÚexplanationr   Údifficulty_levelÚdifficulty_nameÚkpointsÚxidrN   Úbyrk   ÚverifiedTÚ	copyright)r   rÅ   Ú	DIFF_NAMEr0   ÚCOPYRIGHT_NOTE)r   rÃ   rÈ   r_   s   &&  r   Ú_normrÖ   [  s  € ð
 —‘�f“×#Ð# €Ià�!—%‘%˜“-×%Ð% 2×*Ñ*¨6Ó2×>Ð>°hØ�YØ”˜iÓ.Ø�q—u‘u˜X“×,Ð,¨"Ø˜AŸE™E -Ó0×6Ð6°BØ�a—e‘eÐ.Ó/ð 	œ9Ÿ=™=¨¯©Ð/AÓ)BÀBÓGØ¨A¯E©E°)Ó,<×,BÐ,BÀÐ,BÓDÑ,B a—E‘E˜&–MÑ,BÑDØŒs�1—5‘5˜“;×$Ð$ "Ó%Øˆe�Z Ø”^ðð ùò Es   Ã'D2"c	                óø  € Vf   / pVP                  ^ ^ R7       \        '       g   . R\        R,          ,          3# \        4       p	V	\        8¼  d   . RV	\        3,          3# \        W4      p
RpV\        9   dó   V'       gë   VR8w  dä   \        P                  R4      '       gÉ   \        W
V4      pV'       dª    \        W¬\        V4      pRpV'       d%   V Uu. uF  p\        Wö4      '       g   K  VNK  	  ppV'       db   \         P"                  P%                  ^R7      ;_uu_ 4       pV Uu. uF  p\'        VV4      NK  	  upR\)        V4      ,          3uuRRR4       # V'       g   RpM,V\        9   d"   \        P                  R4      '       d   \        pV'       g   VR8X  d-   \*        pRV
R\-        ^
V4      RR/pV'       d   VVR&   M`V VR&   MZVR8X  d   \*        RV
RV R\-        ^
V4      RR/ppM8\.        RT
RV R,          R\-        ^V4      RRRT;'       g    \0        R,          /pp \2        P4                  ! VVR7      pTP                  R4      ;'       g    . p\9        T\:        4      '       g5   TP                  R4      ;'       g    TP                  R4      ;'       g    . p\)        T4      pT Uu. uF  p\        Yö4      '       g   K  TNK  	  ppTP                  T\)        T4      R7       \         P"                  P%                  ^R7      ;_uu_ 4       pT Uu. uF  p\'        TT4      NK  	  ppRRR4       X'       g3   . TT'       d    RTT\        9   d   R MR!3,          ,           3# R,           3# R"\)        T4      ,          pT\)        T4      8”  d#   TR#TT\)        T4      ,
          3,          ,          pTTT,           3#   \         d<   pR	\        T4      9   g   R
\        T4      9   d
   R\        R&   . \        r½ Rp?EL@Rp?ii ; iu upi u upi   + '       g   i     ELÎ; i  \6         d   p. \        T4      R,          3u Rp?# Rp?ii ; iu upi u upi   + '       g   i     EL7; i)$u²  â†’ (items, è¯´æ˜Ž)ã€‚mode: fast=v1(0.5ç§’5é�“) / more=ai(4.6ç§’10é�“) / image=aiä¼ å›¾ã€‚
tb = æ•™æ��å��ï¼Œ**å†³å®šèµ°å“ªæ£µè¯¾ç¨‹æ ‘**ï¼ŒåŠ¡å¿…ä¼ ï¼ˆä¸�ä¼ ä¼šé€€å›žæŒ‰å¹´çº§å­—æ ·çŒœï¼Œå…­å¹´çº§ä¼šçŒœé”™ï¼‰ã€‚

`stats` ä¼ ä¸ª dict è¿›æ�¥çš„è¯�ä¼šè¢«å¡«ä¸Š {'got':æŽ¥å�£ç»™äº†å‡ é�“, 'kept':éš¾åº¦è¿‡å…³å‡ é�“}ï¼Œ
è°ƒç”¨æ–¹æ�®æ­¤åŒºåˆ†ã€ŒæŽ¥å�£æ²¡é¢˜ã€�å’Œã€Œé¢˜éƒ½å¤ªæµ…ã€�â€”â€” å�Žè€…è¦�æŒ‰ç§�å­�é™�çº§ï¼Œä¸�æ˜¯æŒ‰æ•™æ��å°�æ�€ã€‚
N)rr   Úkeptu    å­¦ç§‘ç½‘å®¢æˆ·ç«¯ä¸�å�¯ç”¨ï¼š%s:Néx   Nuz   å­¦ç§‘ç½‘ä»Šæ—¥å�–é¢˜å·²è¾¾ä¸Šé™�ï¼ˆ%d/%d æ¬¡ï¼‰ï¼Œæ˜Žå¤©è‡ªåŠ¨æ�¢å¤�ã€‚çŽ°åœ¨è¯·æ”¹ç”¨ã€Œç”Ÿæˆ�å™¨ã€�æˆ–ã€ŒAIã€�å‡ºé¢˜ã€‚r   ÚimageÚ	push_deadr‡   u	   èµ„æº�åŒ…T)Úmax_workersu   ç«žèµ›åˆ†æ”¯ Â· %d é�“u0   ï¼ˆæ²¡æ‰¾åˆ°ç«žèµ›çŸ¥è¯†ç‚¹ï¼Œé€€å›žç›¸ä¼¼é¢˜ï¼‰rB   r€   r�   r‚   Úquestion_imageÚquestion_textÚmorerf   rg   r   :Né   Nrh   :NéÜ   Nr   Ú	questionsr¼   u<   å�–å›ž %d é�“ä½†éš¾åº¦éƒ½ä¸�å�ˆæ ¼ï¼ˆ%sï¼‰ï¼Œå·²å…¨éƒ¨æ»¤æŽ‰u   å¥¥æ•°å�ªç•™è¾ƒéš¾/å›°éš¾u   æ ¡å†…å�ªç•™ä¸€èˆ¬å�Šä»¥ä¸Šu   ç›¸ä¼¼é¢˜ Â· %d é�“u)   ï¼ˆåŽŸ %d é�“ï¼ŒæŒ‰éš¾åº¦æ»¤æŽ‰ %d é�“ï¼‰)ÚupdateÚREADYÚERRr8   ÚDAY_CAPrB   r   rV   r   rt   rœ   ÚLV_OLYMPIADrv   r0   Ú_DEGRADEr   Ú
concurrentÚfuturesÚThreadPoolExecutorrÖ   r\   ÚAIr�   ÚV1Ú	LV_SCHOOLrk   rl   r/   Ú
isinstancer¼   )r‰   r@   r5   ÚmodeÚ	image_b64r“   r   r^   ÚstatsÚusedrp   Únoter’   rª   r™   r   rÃ   r   ri   r"   r   rr   r[   Útails   &&&&&&&&&               r   Úsimilarrö   s  sö  € ð ‚}ØˆØ	‡L�L�Q˜Q€LÔß‹5ØÐ5¼¸D½	ÕAÐAÐAÜ‹:€DØŒw„Øð IØLPÔRYÈ?õ[ð \ð 	\ä
�EÓ
€CØ€Dð
 
Œ[Ô§¨t°w¬ÄvÇzÁzÐR]×G^ÒG^Ü" 4¨eÓ4ˆßð	Ü˜C¤k°1Ó5�ð �ßÙ"%Ó9¡#˜Q¬°!¯—q�q¡#�Ð9ßÜ×'Ñ'×:Ñ:ÀqÐ:×IÔIÈTÙ47Ó8±C¨qœE ! TžN±CÑ8Ð:RÔUXÐY\ÓU]Õ:]Ð]÷ JÒIçØEˆDøØ	Œ{Ô	œvŸz™z¨+×6Ò6Üˆç�D˜G”OÜˆØ˜S '¬3¨r°1«:Ð7KÈUÐSˆßØ%.ˆDÐ!Ò"à$(ˆD�Ò!Ø	�ŒÜ˜+ s¨O¸TØ!¤3 r¨1£:Ð/CÀUðLˆdˆˆdô
 ˜+ s¨F°D¸µKØ!¤3 q¨!£9Ð.BÀEØ-°×0CÐ0C¼)ÀRÕ/HðJˆdˆð Ü�HŠH�T Ô%ˆð �5‰5�‹=×Ð˜B€DÜ�dœD×!Ò!Ø�x‰x˜Ó$×>Ð>¨¯©°Ó(8×>Ð>¸BˆÜ
ˆd‹)€Cñ Ó/‘t�!œx¨Ÿ�AˆA‘t€DÐ/Ø	‡L�L�Sœs 4›y€LÔ)Ü	×	Ñ	×	.Ñ	.¸1Ð	.×	=Ô	=ÀÙ)-Ó.© A”�q˜$–©ˆÐ.÷ 
>çØ�4ç!ð ZØ!À"ÌÔBSÑ#>ÐYvÐwõxõ +ð +ð 	+à')õ+ð +ð 	+ð !¤3 u£:Õ-€DØ
ŒS�‹ZÔØÐ;¸sÀCÌ#ÈeË*ÕDTÐ>UÕUÕUˆØ�$˜•+ÐÐøôq ô )ð œC ›F”? k´S¸³VÔ&;Ø*.”F˜;Ñ'Ø¤–Tûð)üò :ùò 9÷ J×IÐIûô2 ô  Ø”3�q“6˜$•<ÐÕûð üò 0ùò /÷ 
>×	=Ð	=úsŠ   Â9O ÃPÃ0PÄ(PÄ-PÅPÈ.P2 Ê:QËQÌQ(Ì#Q#Ì8Q(ÏPÏ0PÐPÐPÐP/	Ð2QÐ=QÑQÑQÑ#Q(Ñ(Q9	Ú__main__uF   é¸¡å…”å�Œç¬¼ï¼Œå…±æœ‰10ä¸ªå¤´ï¼Œ32æ�¡è…¿ï¼Œé—®é¸¡å’Œå…”å�„æœ‰å‡ å�ªï¼Ÿu	   å››å¹´çº§z<6r¶   z4.1fzs  u    é�“  u      å±•ç¤ºHTMLå�«æ°´å�°:zdata-copyrightrÈ   u      å¯¼å‡ºæ–‡æœ¬:r‰   :NéF   Nr´   u      å†…åµŒå…¬å¼�å›¾:z	![](data:>   r   r   r   )é   é   é   )z/questions/similar-recommendz/questions/v2/similar-recommendz/questions/ai-similar-recommendz/questions/text-searchz/questions/tiku-search)r   )u   åŠ å‡�æ³•å·§ç®—õ   åŠ å‡�æ³•çš„é€Ÿç®—ä¸Žå·§ç®—)u   åŠ å‡�å·§ç®—rü   )u   ä¹˜æ³•æ€§è´¨õ   ä¹˜é™¤æ³•çš„é€Ÿç®—ä¸Žå·§ç®—)u   ä¹˜é™¤å·§ç®—rý   )u   ä¹˜æ³•å·§ç®—rý   )u   æ•´æ•°ä¹˜é™¤æ³•å·§ç®—rý   )u   å°�æ•°ä¹˜æ³•çš„å·§ç®—õ   å°�æ•°çš„é€Ÿç®—ä¸Žå·§ç®—)u   å°�æ•°å·§ç®—rþ   )u   åˆ†æ•°å·§ç®—u   åˆ†æ•°çš„é€Ÿç®—ä¸Žå·§ç®—)u   è®¡ç®—ç»¼å�ˆu$   å››åˆ™æ··å�ˆè¿�ç®—çš„é€Ÿç®—ä¸Žå·§ç®—)u   å¥‡æ•°ä¸Žå�¶æ•°õ   æ•°çš„å¥‡å�¶æ€§)u   å¥‡å�¶rÿ   )u   ç»„å�ˆå›¾å½¢õ   å·§æ±‚é�¢ç§¯)u   ç›´çº¿åž‹è®¡ç®—r   )u   é˜´å½±r   )u   è®¡ç®—åœ†çš„é�¢ç§¯õ   åœ†å’Œæ‰‡å½¢)u   åœ†çš„é�¢ç§¯r  )u   æ‰‡å½¢r  )u   æ¶ˆåŽ»é—®é¢˜õ   ç­‰é‡�ä»£æ�¢)u   æ¶ˆå…ƒr  )u   ç®€å�•åˆ¤æ–­õ   ç®€å�•æŽ¨ç�†)u   é€»è¾‘åˆ¤æ–­r  )u   æ™ºåŠ›è¶£é¢˜õ   è¶£é¢˜å·§è§£)u   è¶£é¢˜r  )u   å�¤å…¸æ¦‚åž‹õ   ç»Ÿè®¡ä¸Žæ¦‚çŽ‡)u	   å�¯èƒ½æ€§r  )u   æ¦‚çŽ‡r  )u	   æ•°çº¿æ®µõ   å¹³é�¢å›¾å½¢è®¡æ•°)u	   æ•°å›¾å½¢r  )u   å›¾å½¢è®¡æ•°r  )u   è£‚é¡¹u   åˆ†æ•°è£‚é¡¹)u   å‘¨é•¿u   å·§æ±‚å‘¨é•¿)r   F)N)r   rà   ÚfastNNr   r   N)r  rß   )NÚ__doc__r%   r<   Úsysr-   r¦   r(   Úurllib.requestr¡   Úconcurrent.futuresré   r   ÚdirnameÚabspathÚ__file__ÚHEREÚnormpathr&   r'   Úinsertrk   rä   rå   r/   r™   r0   rí   rì   rm   r�   r   rç   rî   r   r   rÔ   r   rÕ   rè   ræ   r2   r8   r;   Úcompiler?   r>   rB   ÚROOT_SEARCHrX   rE   rI   rY   rV   r]   rd   rt   rv   rœ   r    rÁ   rº   r�   ÚSrÀ   r¬   rÅ   rÖ   rö   rx   Útimer±   r   Úitr   Úprintr\   rG   r€   rw   rC   r   Ú<module>r     sF  ðñ÷. O× N× N× Nà	‡w�w‡��r—w‘w—‘ xÓ0Ó1€Ø
�'‰'×
Ñ
˜2Ÿ7™7Ÿ<™<¨¨d°HÓ=Ó
>€Ø
�#—(‘(ÔØ‡H�H‡O�O�A�wÔð*ÛØ�r€J€Eˆ3ð +€Ø-€Ø
)€Ø€ò ?€ð �2ˆh€Ú€	ð Ð Ø€ð �˜2˜x¨¨X°r¸8ÀRÈÐR€	òNð D€ðF€ð €ð*€ò
ðB   ;°°>À1ÐFZÐ\^Ð_€	Ø
�*Š*ÐIÓ
J€Ø
�*Š*Ð)Ó
*€ôð$ —‘—‘¨GÐ3˜[°[ÐBbÓc€ð 
�ŠÐ9Ó	:€ò>òð( 
€ðØ6ðØ8gðà3ðà5dðð 4ðð 6nðð :ð	ð <hð	ð
 1ðð
 3kðð +ðð -Jðð %ðð 'Jðð Lfðð +ðð -Mðð Oiðð %ðð 'Aðð %ðð 'Gðð %ðð 'Aðð (ðð *Jðð Liðð (ðð *Mðð Ouðð ðð !;ð€ò$ô*ô<	�	ô 	òðF €
Ø	‡z‚zÐ6¸¿¹Ó=€Ø	‡z‚z�*Ó€Ø�:Š:�m R§T¡TÓ*€òô 0ò,ô0Tðn ˆzÔÛÛˆØ�IŠI‹KˆÙÐbÐdoÐqsÐuvÓw‰ˆˆCÙ��2��a˜Ÿ	š	› A� dÐ+¨3©s°2«w¨i°v¸c¸UÐCÔDß‰2ÙÐ+Ð-=ÀÀAÅÀ{ÕASÑ-SÔTÙÐ$ b¨¥e¨F¥m°CÕ&8×&@Ñ&@ÀÀsÓ&KÔLÙÐ'¨¨A­¨v­×)<Ñ)<¸[Ó)IÖJó ñ øðM ô *Ø˜E¡3 q£6€O€Cˆ–ûð*ús   Â;	K8 Ë8LË?LÌL