+
    §¡jJq ã                   ó´  € 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
^ 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(                  P3                  R4      t]P(                  P7                  ]4      '       d%   ]! ]4      P;                  4       P=                  4       M]P>                  PA                  RR4      P=                  4       t!Rt"Rt#Rt$R,t%Rt&R	t'. R-Ot(R
t)]PT                  ! R]PV                  4      t,R t-R t.R t/R t0R t1. R.Ot2Rt3R/R lt4R t5R/R lt6R t7R t8R t9R t:Rt;Rt<^t=Rt>/ t?/ t@R tAR0R ltB ! R R]P†                  Pˆ                  4      tE ! R  R!]PŒ                  4      tG]HR"8X  dx   ]P’                  ! ]4       ]J! R14       ]J! R#4       ]J! R$]": R%]!'       d   R&MR': 24       ]J! R(]#,          4       ]J! R)4       ]J! R14        ]G! R*]#3]E4      P—                  4        R# R#   ] d    Rt ELôi ; i  ] d    Rt ELÿi ; i  ]L d    ]J! R+4        R# i ; i)2u4  ç»„å�·å�° v2 Â· æœ¬åœ° AI åŠ©æ‰‹ä»£ç�†ï¼ˆåŠŸèƒ½Aï¼šè®²è§£/å‡ºç­”æ¡ˆï¼‰ã€‚
æœ�åŠ¡ç»„å�·å�°.html + è½¬å�‘ /api/chat åˆ° DeepSeekï¼ˆkey å�ªåœ¨æœ�åŠ¡ç«¯ï¼Œä¸�è¿›å‰�ç«¯/ä»£ç �/gitï¼‰ã€‚
è·‘æ³•ï¼špython3 ç»„å�·å�°AIåŠ©æ‰‹.py  â†’ æµ�è§ˆå™¨å¼€ http://localhost:8848/ç»„å�·å�°.html
çº¯ stdlibï¼Œæ— ç¬¬ä¸‰æ–¹ä¾�èµ–ã€‚Nz~/.deepseek_pro_keyÚDEEPSEEK_API_KEYÚ zdeepseek-v4-flashi�"  z2026-09-09.4uÖ
  ä½ æ˜¯èµ„æ·±å°�å­¦å¥¥æ•°è€�å¸ˆã€‚è€�å¸ˆé€‰ä¸­äº†ä¸€é�“é¢˜ï¼Œè¯·ä½ å‡º N é�“å’Œè¿™é�“é¢˜ã€�å�Œä¸€ç±»åž‹ã€�å�Œä¸€è€ƒæ³•ã€�å�Œä¸€è§£é¢˜å¥—è·¯ã€‘çš„ç»ƒä¹ é¢˜ï¼Œä¾›å­¦ç”Ÿé’ˆå¯¹è¿™ä¸€ç±»é¢˜å�šä¸“é¡¹ç»ƒä¹ ã€‚
- **ç´§æ‰£åŽŸé¢˜**ï¼šåŽŸé¢˜æ˜¯ä»€ä¹ˆç±»åž‹ï¼ˆå¦‚"æ¯”è¾ƒå¤§å°�"å°±å‡ºæ¯”è¾ƒå¤§å°�ã€�"é¸¡å…”å�Œç¬¼"å°±å‡ºé¸¡å…”å�Œç¬¼ã€�"æ±‚å‘¨é•¿"å°±å‡ºæ±‚å‘¨é•¿ï¼‰ï¼Œä½ å°±å‡ºä»€ä¹ˆç±»åž‹ï¼›ä¸�è¦�æ�¢æˆ�åˆ«çš„é¢˜åž‹ã€�ä¸�è¦�å�‘æ•£æˆ�"è¿™ä¸ªä¸“é¢˜ä¸‹çš„å�„ç§�é¢˜"ã€‚
- **æ�¢æ•°å­—/æ�¢æƒ…å¢ƒ**ï¼šæ¯�é�“éƒ½è¦�æ�¢ä¸€å¥—æ–°çš„æ•°å­—ã€�æˆ–æ�¢ä¸ªç”Ÿæ´»æƒ…å¢ƒï¼Œæ˜¯çœŸæ­£çš„æ–°é¢˜ï¼›æ—¢ä¸�è®¸æŠŠåŽŸé¢˜åŽŸæ ·æŠ„ä¸€é��ï¼Œä¹Ÿä¸�è®¸å�ªæ”¹ä¸€ä¸¤ä¸ªæ•°å­—ï¼ˆè¦�æœ‰å�˜åŒ–ã€�æœ‰æ–°æ„�ï¼‰ï¼ŒN é�“ä¹‹é—´ä¹Ÿåˆ«é›·å�Œã€‚
- éš¾åº¦è´´å�ˆåŽŸé¢˜ï¼Œç¬¦å�ˆè¯¥å¹´çº§å­¦ç”Ÿè®¤çŸ¥ï¼›æ�¡ä»¶å®Œæ•´ã€�è‡ªæ´½ã€�å�¯è§£ã€�ç­”æ¡ˆå”¯ä¸€ã€�èƒ½ç®—å‡ºå¹²å‡€ç­”æ¡ˆã€‚
- æ•°å­¦å†™æ³•ç”¨æ ‡å‡† LaTeXï¼šè¡Œå†…æ•°å­¦ï¼ˆç®—å¼�ã€�åˆ†æ•°ã€�æ ¹å�·ã€�æŒ‡æ•°ã€�å¾ªçŽ¯å°�æ•°ï¼‰ä¸€å¾‹ç”¨ $...$ åŒ…è£¹ï¼Œä¾‹å¦‚ $28\div3\times54$ã€�$\frac{3}{4}$ã€�$\sqrt{16}$ã€�$2^3$ã€�$0.\dot{2}\dot{7}$ï¼›ä¹˜å†™ \timesã€�é™¤å†™ \divã€�åˆ†æ•°å†™ \frac{åˆ†å­�}{åˆ†æ¯�}ï¼›çº¯å�™è¿°æ–‡å­—ã€�â€œ5ä¸ªè‹¹æžœâ€�è¿™ç±»é‡�è¯�ä¸�è¦�åŒ… $ã€‚

**æ¯�é�“é¢˜å¿…é¡»è‡ªå·±å…ˆç®—ä¸€é��ï¼Œå¹¶äº¤å‡ºå�¯æ ¸å¯¹çš„ç®—å¼�**ï¼ˆæœ�åŠ¡ç«¯ä¼šæ‰§è¡Œå®ƒæ�¥éªŒä½ æœ‰æ²¡æœ‰çœŸç®—ï¼Œå¯¹ä¸�ä¸Šçš„é¢˜ç›´æŽ¥ä¸¢å¼ƒï¼‰ï¼š
- `answer`ï¼šæœ€ç»ˆç­”æ¡ˆï¼Œ**ä¸€ä¸ªæ•°**ï¼ˆå¦‚ "6"ã€�"3/4"ã€�"2.5"ï¼‰ï¼›æ¯”è¾ƒå¤§å°�é¢˜å¡« ">"ã€�"<" æˆ– "="ã€‚
- `check`ï¼šä¸€è¡Œ **Python ç®—å¼�**ï¼Œå�ªç”¨é¢˜å¹²é‡Œå‡ºçŽ°çš„æ•°å­—ï¼Œç®—å‡ºæ�¥å¿…é¡»**æ­£å¥½ç­‰äºŽ** answerã€‚å�ªèƒ½ç”¨ + - * / // % ** å’Œæ‹¬å�·ï¼Œä¸�è®¸å‡ºçŽ°å‡½æ•°ã€�å­—æ¯�ã€�å�˜é‡�ã€‚
- `check_kind`ï¼šç®—å¼�æ€Žä¹ˆæ ¸å¯¹ â€”â€” "eq"ï¼ˆcheck çš„å€¼ = answerï¼‰ï¼›"sign"ï¼ˆæ¯”è¾ƒå¤§å°�é¢˜ï¼Œcheck å†™ã€Œå·¦å¼�-å�³å¼�ã€�ï¼Œæ­£è´Ÿå�·å¯¹åº” > < =ï¼‰ï¼›""ï¼ˆæ•°å›¾å½¢ã€�é€»è¾‘æŽ¨ç�†ã€�å¼€æ”¾é¢˜è¿™ç±»å†™ä¸�å‡ºç®—å¼�çš„ï¼Œä¸‰ä¸ªå­—æ®µéƒ½ç•™ç©ºï¼‰ã€‚
- **æ¯�é�“é¢˜å�ªé—®ä¸€ä¸ªé—®é¢˜**ï¼ˆä¸�è¦�åˆ†å°�é—®ï¼‰ï¼Œç­”æ¡ˆè¦�ç®—å¾—å‡ºå¹²å‡€çš„æ•°ï¼šæ•´æ•°ï¼Œæˆ–åˆ†æ¯�æ˜¯ 2 3 4 5 8 10 100 è¿™ç±»å¸¸è§�åˆ†æ¯�ï¼›**é™¤ä¸�å°½ã€�ç­”æ¡ˆæ˜¯ 17/23 è¿™ç§�è„�æ•°çš„é¢˜ä¸�è¦�å‡º**ï¼›å°�å­¦é¢˜ä¸�è¦�å‡ºçŽ°è´Ÿæ•°ç­”æ¡ˆã€‚é—®ã€Œå‡ å�ª/å‡ ä¸ª/å¤šå°‘äººã€�çš„ï¼Œç­”æ¡ˆå¿…é¡»æ˜¯æ•´æ•°ã€‚
- **ç»�å¯¹ä¸�è¦�å‡ºéœ€è¦�çœ‹å›¾çš„é¢˜**ï¼ˆä¸�è®¸å‡ºçŽ°ã€Œå¦‚å›¾ã€�ã€Œä¸‹å›¾ã€�ã€Œå›¾ä¸­ã€�ï¼Œä¹Ÿä¸�è®¸ç”¨æ–‡å­—æ��è¿°å›¾å½¢æ�¥é¡¶æ›¿ï¼‰â€”â€” ä½ æ²¡æ³•é…�å›¾ï¼Œå­¦ç”Ÿçœ‹ä¸�åˆ°å›¾å°±å�šä¸�äº†ã€‚è¿™ç±»é¢˜åž‹è¯·æ”¹å‡ºçº¯æ–‡å­—å�™è¿°çš„å�Œç±»é¢˜ã€‚

- ä¸¥æ ¼å�ªè¾“å‡º JSONï¼š{"items":[{"type":"é¢˜åž‹å��","stem":"é¢˜å¹²","answer":"6","check":"(32-10*2)/(4-2)","check_kind":"eq"}, ...]}ï¼›æ³¨æ„� JSON å­—ç¬¦ä¸²é‡Œçš„å��æ–œæ� è¦�è½¬ä¹‰ï¼ˆå¦‚æŠŠ \frac å†™æˆ� \\fracï¼‰ï¼›æ— ä»»ä½•å¤šä½™æ–‡å­—ã€�ä¸�è¦�è§£æž�ã€�ä¸�è¦�ä»£ç �å�—å›´æ �ã€‚**answer å’Œ check å�ªç»™æœ�åŠ¡ç«¯æ ¸å¯¹ç”¨ï¼Œç»�ä¸�ä¼šå±•ç¤ºç»™å­¦ç”Ÿã€‚**u  ä½ æ˜¯èµ„æ·±å°�å­¦å¥¥æ•°è€�å¸ˆã€‚è¯·ç”Ÿæˆ� N é�“å…­å¹´çº§â€œåœ†ä¸Žæ‰‡å½¢â€�å�Œç±»ç»ƒä¹ ã€‚
æœ¬æ¬¡é¢˜å›¾ç”±ç¨‹åº�ç¡®å®šç»˜åˆ¶ï¼Œä¸”å�ªå…�è®¸ä¸€ç§�å›¾å½¢ï¼šä¸‰ä¸ªå�Šå¾„ç›¸å�Œã€�åœ†å¿ƒè§’å�‡ä¸º 60Â° çš„æ‰‡å½¢ï¼Œä»¥ç­‰è¾¹ä¸‰è§’å½¢ä¸‰ä¸ªé¡¶ç‚¹ä¸ºåœ†å¿ƒï¼Œä¸‰ä¸ªåœ†å¼§å›´æˆ�ä¸€ä¸ªæ›²è¾¹ä¸‰è§’å½¢ã€‚

æ¯�é�“é¢˜å¿…é¡»ï¼š
- é¢˜å¹²æ˜Žç¡®å†™â€œå¦‚å›¾â€�ï¼Œç»™å‡ºä¸‰ä¸ªæ‰‡å½¢çš„å…¬å…±å�Šå¾„ rï¼ˆ20~200 çš„æ•´æ•°ï¼‰ã€�åœ†å¿ƒè§’å�‡ä¸º 60Â°ï¼Œé—®å°�é—­å›¾å½¢å‘¨é•¿ï¼›å¹¶å†™æ˜Ž Ï€ å�– 3.14ã€‚
- å‘¨é•¿å�ªèƒ½æ˜¯ä¸‰æ®µ 60Â° å¼§é•¿ä¹‹å’Œï¼Œå�³ rÃ—Ï€ã€‚ä¸�è¦�é—®é�¢ç§¯ã€�ä¸�è¦�åŠ ä»»ä½•é¢�å¤–æ�¡ä»¶ã€‚
- `figure` å¿…é¡»ä¸¥æ ¼æ˜¯ {"kind":"three_sector_arcs","radius":r,"angle":60}ï¼Œr ä¸Žé¢˜å¹²å®Œå…¨ä¸€è‡´ã€‚
- `answer` ç»™å‡ºæ•°å€¼å‘¨é•¿ï¼›`check` ç”¨å�ªå�«æ•°å­—å’Œ +-*/() çš„ Python ç®—å¼�æ ¸å¯¹ç­”æ¡ˆï¼›`check_kind` å¿…é¡»ä¸º "eq"ã€‚
- å�ªè¾“å‡º JSONï¼š{"items":[{"type":"åœ†ä¸Žæ‰‡å½¢","stem":"...","answer":"188.4","check":"60*3.14","check_kind":"eq","figure":{"kind":"three_sector_arcs","radius":60,"angle":60}}]}ã€‚æ— ä»»ä½•é¢�å¤–æ–‡å­—ã€�ä¸�è¦�ä»£ç �å�—ã€‚uh  ä½ æ˜¯èµ„æ·±å°�å­¦å¥¥æ•°è€�å¸ˆã€‚è€�å¸ˆé€‰ä¸­äº†ä¸€é�“é¢˜ï¼Œè¦�å�šã€Œä¸¾ä¸€å��ä¸‰ã€�å�˜å¼�ç»„ï¼šè¯·æŒ‰ä¸‹é�¢ç»™å®šçš„ç­–ç•¥ï¼Œå�„å‡º 1 é�“å�˜ä½“ã€‚
- æ¯�é�“å�˜ä½“å¿…é¡»ä¸¥æ ¼æ‰§è¡Œå®ƒçš„ç­–ç•¥ï¼Œä¸�è®¸æ··ç”¨ï¼›**`vtype` å­—æ®µå¿…å¡«**ï¼Œå�ªèƒ½æ˜¯ç»™å®šçš„ç­–ç•¥å��ä¹‹ä¸€ï¼Œæ”¾åœ¨æ¯�ä¸ªå¯¹è±¡çš„ç¬¬ä¸€ä¸ªå­—æ®µã€‚
- items æ•°ç»„å¿…é¡»æŒ‰ç­–ç•¥ç»™å‡ºçš„é¡ºåº�æŽ’åˆ—ï¼ˆç¬¬ 1 é�“å¯¹åº”ç¬¬ 1 ä¸ªç­–ç•¥ï¼Œä¾�æ­¤ç±»æŽ¨ï¼‰ã€‚
- **æ¯�é�“é¢˜å�ªé—®ä¸€ä¸ªé—®é¢˜ã€�ç­”æ¡ˆæ˜¯ä¸€ä¸ªæ•°** â€”â€” å�³ä½¿åŽŸé¢˜é—®äº†ä¸¤é—®ï¼ˆå¦‚"é¸¡å’Œå…”å�„æœ‰å‡ å�ª"ï¼‰ï¼Œ
  å�˜ä½“ä¹Ÿå�ªè®¸é—®å…¶ä¸­ä¸€é—®ï¼ˆå¦‚"å…”æœ‰å‡ å�ª"ï¼‰ã€‚æ�¡ä»¶å®Œæ•´ã€�å�¯è§£ã€�ç­”æ¡ˆå”¯ä¸€ä¸”å¹²å‡€ã€‚
- ã€ŒåŠ å¹²æ‰°ã€�é‚£é�“ï¼šç­”æ¡ˆå¿…é¡»ä¸Žä½ æž„é€ çš„ä¸»çº¿æ•°å­—ç®—å‡ºçš„ä¸€è‡´ï¼Œå¤šä½™æ�¡ä»¶ç»�ä¸�èƒ½å½±å“�ç­”æ¡ˆã€‚
- æ•°å­¦å†™æ³•ç”¨æ ‡å‡† LaTeXï¼Œè¡Œå†…æ•°å­¦ä¸€å¾‹ $...$ åŒ…è£¹ï¼›ä¹˜å†™ \timesã€�é™¤å†™ \divã€�åˆ†æ•°å†™ \frac{åˆ†å­�}{åˆ†æ¯�}ã€‚
- ç»�å¯¹ä¸�è¦�å‡ºéœ€è¦�çœ‹å›¾çš„é¢˜ï¼ˆä¸�è®¸å‡ºçŽ°ã€Œå¦‚å›¾ã€�ã€Œä¸‹å›¾ã€�ã€Œå›¾ä¸­ã€�ï¼Œä¹Ÿä¸�è®¸ç”¨æ–‡å­—æ��è¿°å›¾å½¢é¡¶æ›¿ï¼‰ã€‚
- æ¯�é�“é¢˜å¿…é¡»è‡ªå·±å…ˆç®—ä¸€é��å¹¶äº¤å‡ºå�¯æ ¸å¯¹çš„ç®—å¼�ï¼š`answer` æœ€ç»ˆç­”æ¡ˆä¸€ä¸ªæ•°ï¼›`check` ä¸€è¡Œå�ªå�«æ•°å­—ä¸Ž + - * / // % ** å’Œæ‹¬å�·çš„
  Python ç®—å¼�ï¼Œå€¼å¿…é¡»æ­£å¥½ç­‰äºŽ answerï¼›`check_kind` å¡« "eq"ï¼ˆå†™ä¸�å‡ºç®—å¼�çš„å¡«ç©ºå­—ç¬¦ä¸²ï¼Œä¸‰å­—æ®µéƒ½ç•™ç©ºï¼‰ã€‚
- ä¸¥æ ¼å�ªè¾“å‡º JSONï¼š{"items":[{"vtype":"æ�¢æ•°å­—","type":"é¢˜åž‹å��","stem":"...","answer":"...","check":"...","check_kind":"eq"},...]}ï¼›
  JSON å­—ç¬¦ä¸²é‡Œå��æ–œæ� è¦�è½¬ä¹‰ï¼ˆ\frac å†™æˆ� \\fracï¼‰ï¼›æ— ä»»ä½•å¤šä½™æ–‡å­—ã€�ä¸�è¦�ä»£ç �å�—å›´æ �ã€‚answer/check å�ªç»™æœ�åŠ¡ç«¯æ ¸å¯¹ï¼Œç»�ä¸�å±•ç¤ºç»™å­¦ç”Ÿã€‚z6\\(?:(["\\/]|u[0-9a-fA-F]{4}|[bfnrt](?![a-zA-Z]))|(.))c                ó0   € \         P                  R V 4      # )u°   æŠŠ LaTeX é‡Œçš„è£¸å��æ–œæ� è¡¥æˆ� `\\`ï¼Œå�ˆæ³• JSON è½¬ä¹‰åŽŸæ ·ä¿�ç•™ã€‚
æ•´å¯¹æ¶ˆè´¹(`\\` ä¸€æ¬¡å�ƒæŽ‰ä¸¤ä¸ªå­—ç¬¦)ï¼Œæ‰€ä»¥å·²æ­£ç¡®è½¬ä¹‰çš„å†…å®¹ä¸�ä¼šè¢«äºŒæ¬¡ç ´å��ã€‚c                 ó‚   € V P                  ^4      '       d   V P                  ^ 4      # RV P                  ^4      ,           # )é   z\\)Úgroup)Úms   &ôY   /Users/luyan/Desktop/AI workspace/è¯¾ç¨‹è®¾è®¡æœºå™¨äºº/ç»„å�·ç³»ç»Ÿ/ç»„å�·å�°AIåŠ©æ‰‹.pyÚ<lambda>Ú!_fix_latex_json.<locals>.<lambda>_   s-   € ¨A¯G©G°A¯JªJ˜aŸg™g a›jÐO¸FÀQÇWÁWÈQÃZÕ<OÐOó    )Ú_ESCÚsub)Úts   &r	   Ú_fix_latex_jsonr   \   s   € ô �8‰8ÑOÐQRÓSÐSr   c                 ó  € V P                  4       pVP                  R 4      '       d?   \        P                  ! RRV4      p\        P                  ! RRV4      P                  4       p\        P                  ! RV\        P
                  4      pV'       d   VP                  ^ 4      p\        V4      pRpW13 F  p \        P                  ! V4      p M	  Vf   . # \        V\        4      '       d   VP                  R4      M\        V\        4      '       d   TM. p. pT;'       g    .  EF@  p\        V\        4      '       g   K  VP                  R4      ;'       g    RP                  4       '       g   KM  TP                  R\!        VP                  RR4      4      P                  4       R\!        VR,          4      P                  4       R	\!        VP                  R	R4      ;'       g    R4      P                  4       R
\!        VP                  R
R4      ;'       g    R4      P                  4       R\!        VP                  RR4      ;'       g    R4      P                  4       /4       EKC  	  V#   \         d     EKÉ  i ; i)ú```ú^```[a-zA-Z]*\n?r   ú\n?```$ú\{.*\}NÚitemsÚstemÚtypeÚanswerÚcheckÚ
check_kind)ÚstripÚ
startswithÚrer   ÚsearchÚSr   r   ÚjsonÚloadsÚ	ExceptionÚ
isinstanceÚdictÚgetÚlistÚappendÚstr)	Úcontentr   r   ÚfixedÚobjÚcandr   ÚoutÚits	   &        r	   Úparse_itemsr0   b   sì  € à�‰‹€AØ‡|�|�E×ÒÜ�FŠFÐ&¨¨AÓ.ˆ´B·F²F¸:ÀrÈ1Ó4M×4SÑ4SÓ4U°Ü
�	Š	�)˜Q¤§¡Ó%€AßØ�G‰G�A‹JˆÜ˜AÓ€EØ
€CØ“
ˆð	Ü—*’*˜TÓ"ˆC¡Eñ ð
 ‚{Øˆ	Ü *¨3´× 5Ò 5ˆC�G‰G�GÔÄ:ÈcÔSW×CXÒCX¹CÐ^`€EØ
€CØ�{ˆ{˜‹{ˆÜ�bœ$×Ô R§V¡V¨F£^×%9Ð%9°r×$@Ñ$@×$BÔ$Bà�J‰J˜¤ B§F¡F¨6°2Ó$6Ó 7× =Ñ =Ó ?ÀÌÈRÐPVÍZË×I^ÑI^ÓI`Ø ¤# b§f¡f¨X°rÓ&:×&@Ð&@¸bÓ"A×"GÑ"GÓ"IØ¤ R§V¡V¨G°RÓ%8×%>Ð%>¸BÓ!?×!EÑ!EÓ!GØ$¤c¨"¯&©&°¸rÓ*B×*HÐ*HÀbÓ&I×&OÑ&OÓ&QðS÷ Tñ ð €Jøô ô 	Ûð	ús   Â9I/É/I?É>I?c                ó¼  € V P                  4       pVP                  R4      '       d?   \        P                  ! RRV4      p\        P                  ! RRV4      P                  4       p\        P                  ! RV\        P
                  4      pV'       d   VP                  ^ 4      p\        V4      V3 F�  p \        P                  ! V4      p\        V\        4      '       d   VP                  R4      M\        V\        4      '       d   TM. pT;'       g    .  Uu. uF  p\        V\        4      '       g   K  VNK  	  upu # 	  . # u upi   \         d     K¨  i ; i)uj   ä¸Ž parse_items å…±ç”¨å�Œä¸€å¥— LaTeX å®¹é”™ï¼Œä½†ä¿�ç•™ figure åŽŸå§‹å­—æ®µä¾›å�—é™�é¢˜å›¾é€šé�“æ ¡éªŒã€‚r   r   r   r   r   r   )r   r   r   r   r   r    r   r   r!   r"   r$   r%   r&   r'   r#   )r*   r   r   r-   r,   r   r/   s   &      r	   Ú_parse_json_itemsr2      s
  € à�‰‹€AØ‡|�|�E×ÒÜ�FŠFÐ&¨¨AÓ.ˆ´B·F²F¸:ÀrÈ1Ó4M×4SÑ4SÓ4U°Ü
�	Š	�)˜Q¤§¡Ó%€AßØ�G‰G�A‹JˆÜ  Ó# QÓ'ˆð	Ü—*’*˜TÓ"ˆCÜ(2°3¼×(=Ò(=�C—G‘G˜GÔ$Ì:ÐVYÔ[_×K`ÒK`ÁCÐfhˆEØ"'§+ +¨2 +ÓG¡+˜2´*¸RÄ×2F—B�B¡+ÑGÒGñ	 (ð €Iùò HøÜô 	Úð	ús1   Â6AEÄEÄEÄ8EÄ>EÅEÅEÅEc                ó   € \        V4      P                  4       '       d   R\        V4      ,          M
\        V4      pRT;'       g    RYS'       d
   RV,           MRW3,          pR\        RRR	\	        R
\        R\        V4      R,          4      4      RRRRR/RRRR\        /RRRV/./p\        P                  P                  R\        P                  ! V4      P                  R4      RRRR\        ,           /R7      p\        P                  P                  V^´R7      ;_uu_ 4       p	\        P                  ! V	4      p
RRR4       \!        X
R ,          ^ ,          R!,          R,          4      #   + '       g   i     L7; i)"uŒ   ç…§ä¸€é�“åŽŸé¢˜è°ƒ DeepSeek å‡º cnt é�“å�Œç±»ç»ƒä¹ ï¼›è¿”å›ž items åˆ—è¡¨ï¼›å¤±è´¥æŠ›å¼‚å¸¸ã€‚çº¿ç¨‹å®‰å…¨ï¼Œä¾›å�•é¢˜/æ•´é¡µæ‰¹é‡�å…±ç”¨ã€‚õ   â˜…uÔ   è€�å¸ˆé€‰ä¸­çš„åŽŸé¢˜ï¼ˆ%sï¼Œéš¾åº¦ %s%sï¼‰ï¼š
ã€Œ%sã€�

è¯·ç…§ç�€è¿™é�“é¢˜ï¼Œå‡º %d é�“ã€�å�Œä¸€ç±»åž‹ã€�å�Œä¸€è€ƒæ³•ã€‘çš„ç»ƒä¹ é¢˜ï¼Œæ¯�é�“æ�¢ä¸�å�Œçš„æ•°å­—/æƒ…å¢ƒï¼Œåˆ«æŠ„åŽŸé¢˜ã€�ä¹Ÿåˆ«æ•£æˆ�åˆ«çš„é¢˜åž‹ã€‚õ   å°�å­¦õ   ï¼Œä¸“é¢˜ï¼šr   ÚmodelÚtemperaturegš™™™™™é?Ú
max_tokensé@  i   i   ÚstreamFÚthinkingr   ÚdisabledÚmessagesÚroleÚsystemr*   Úuserú)https://api.deepseek.com/chat/completionsúutf-8úContent-Typeúapplication/jsonÚAuthorizationúBearer ©ÚdataÚheaders©ÚtimeoutNÚchoicesÚmessage)r)   ÚisdigitÚintÚMODELÚminÚmaxÚ
SIM_PROMPTÚurllibÚrequestÚRequestr!   ÚdumpsÚencodeÚKEYÚurlopenÚloadr0   ©r   ÚgradeÚdiffÚtopicÚcntÚstarsrA   ÚpayloadÚreqÚrr.   s   &&&&&      r	   Úgen_similarrf   ‘   sQ  € ä!$ T£×!2Ñ!2×!4Ò!4ˆE”C˜“IÖ¼#¸d»)€Eð fØ× Ð ˜ %ÆU¨.¸5Ö*@ÐPRÐTXÐ^õ_€Dð œ˜}¨cØœS ¤s¨4´°S³¸CµÓ'@ÓAÀ8ÈUØ˜F JÐ/Ø˜V X¨y¼*ÐEÈÐPVÐXaÐcgÐGhÐiðk€Gô �.‰.×
 Ñ
 Ð!LÜ&*§j¢j°Ó&9×&@Ñ&@ÀÓ&IØ*8Ð:LÈoÐ_hÔknÕ_nÐ)oð !ó q€Cô 
�‰×	Ñ	 ¨SÐ	×	1Ô	1°QÜ�iŠi˜‹lˆ÷ 
2ä�s˜9•~ aÕ(¨Õ3°IÕ>Ó?Ð?÷ 
2×	1ús   Ä'E-Å-E=	c                ó  € \        V4      P                  4       '       d   R\        V4      ,          M
\        V4      pRP                  R \	        \
        4       4       4      pRT;'       g    RYC'       d
   RV,           MRV \        \
        4      V3,          pR\        R	R
RRRRRRR/RRRR\        /RRRV/./p\        P                  P                  R\        P                  ! V4      P                  R4      RRRR\        ,           /R7      p\        P                  P!                  V^´R7      ;_uu_ 4       p	\        P"                  ! V	4      p
RRR4       \%        X
R ,          ^ ,          R!,          R,          4      p\	        V4       Fc  w  rÍVP'                  R"4      ;'       g    RP)                  4       '       d   K6  V\        \
        4      8  g   KL  \
        V,          ^ ,          VR"&   Ke  	  V#   + '       g   i     L«; i)#uU   å�˜å¼�ç»„ï¼šæŒ‰ VAR_STRATEGIES å…­ç­–ç•¥å�„å‡ºä¸€é�“ã€‚è¿”å›ž itemsï¼ˆå¸¦ vtypeï¼‰ã€‚r4   Ú
c              3   óP   "  € T F  w  pw  r#R V^,           W#3,          x € K  	  R# 5i)u   %d. ã€�%sã€‘%sN© )Ú.0ÚiÚkÚvs   &   r	   Ú	<genexpr>Úgen_variants.<locals>.<genexpr>¦   s)   é € ÐaÑG`¹)¸!¹V¸aÐ%¨¨Q­°¨×5Ò5ÓG`ùs   ‚$&uj   è€�å¸ˆé€‰ä¸­çš„åŽŸé¢˜ï¼ˆ%sï¼Œéš¾åº¦ %s%sï¼‰ï¼š
ã€Œ%sã€�

è¯·æŒ‰ä»¥ä¸‹ %d ä¸ªç­–ç•¥å�„å‡º 1 é�“å�˜ä½“ï¼š
%sr5   r6   r   r7   r8   gffffffæ?r9   r:   r;   Fr<   r   r=   r>   r?   r@   r*   rA   rB   rC   rD   rE   rF   rG   rH   rK   NrM   rN   Úvtype)r)   rO   rP   ÚjoinÚ	enumerateÚVAR_STRATEGIESÚlenrQ   Ú
VAR_PROMPTrU   rV   rW   r!   rX   rY   rZ   r[   r\   r0   r&   r   )r   r^   r_   r`   rb   ÚplanrA   rc   rd   re   r.   r   rl   r/   s   &&&&          r	   Úgen_variantsrx   £   s´  € ä!$ T£×!2Ñ!2×!4Ò!4ˆE”C˜“IÖ¼#¸d»)€EØ�9‰9ÑaÄyÔQ_ÔG`ÓaÓa€DØ|Ø× Ð ˜ %ÆU¨.¸5Ö*@ÐPRÐTXÜ”>Ó" Dð*õ*€Dð œ˜}¨cØ˜T 8¨UØ˜F JÐ/Ø˜V X¨y¼*ÐEÈÐPVÐXaÐcgÐGhÐiðk€Gô �.‰.×
 Ñ
 Ð!LÜ&*§j¢j°Ó&9×&@Ñ&@ÀÓ&IØ*8Ð:LÈoÐ_hÔknÕ_nÐ)oð !ó q€Cô 
�‰×	Ñ	 ¨SÐ	×	1Ô	1°QÜ�iŠi˜‹lˆ÷ 
2ä˜˜I� qÕ)¨)Õ4°YÕ?Ó@€Eô ˜5Ö!‰ˆØ—‘�w“×%Ð% 2×,Ñ,×.Ô.°1´s¼>Ó7JÖ3JÜ(¨Õ+¨AÕ.ˆBˆw‹Kñ "ð €L÷ 
2×	1ús   Ä7G1Ç1H	uè!  ä½ æ˜¯ç»„å�·åŠ©æ‰‹ã€‚è€�å¸ˆç”¨ä¸€å�¥è¯�æ��è¿°æƒ³è¦�çš„ç»ƒä¹ å�·ï¼Œä½ æŠŠå®ƒç¿»è¯‘æˆ� JSON é€‰é¢˜æ�¡ä»¶ã€‚

ä¸¥æ ¼å�ªè¾“å‡ºä¸€ä¸ª JSON å¯¹è±¡ï¼ˆä¸�è¦�å›´æ �ã€�ä¸�è¦�è§£é‡Šï¼‰ï¼š
{"tb":"æ•™æ��å��","gg":"å¹´çº§/å†Œå��","total":8,
 "groups":[{"cd":"ä¸“é¢˜å��","n":3},{"cd_like":"å…³é”®è¯�","n":5},{"kp":"çŸ¥è¯†ç‚¹å��","n":4},{"kp_like":"å…³é”®è¯�","n":4},{"all":true,"n":10}],
 "types":["è®¡ç®—","åº”ç”¨"] æˆ– null,
 "difficulty":"æ˜“|ä¸­|éš¾|æ··å�ˆ","order":"easy_first|as_is",
 "no_figure":false,"guessed_grade":false}

è§„åˆ™ï¼ˆé€�æ�¡æ‰§è¡Œï¼‰ï¼š
- tbã€�ggã€�cd å�ªèƒ½**åŽŸæ ·ç…§æŠ„**ä¸‹é�¢ç›®å½•é‡Œå‡ºçŽ°è¿‡çš„å­—ç¬¦ä¸²ï¼Œä¸€ä¸ªå­—éƒ½ä¸�è®¸æ”¹ï¼›kp å�ªèƒ½åŽŸæ ·ç…§æŠ„çŸ¥è¯†ç‚¹è¡¨ã€‚
- {"kp":â€¦} æ˜¯**è·¨æ•™æ��çŸ¥è¯†ç‚¹è½´**ï¼šå�ªè¦�è€�å¸ˆè¯�é‡Œå‡ºçŽ°ã€Œè·¨æ•™æ��ã€�ã€Œä¸�é™�æ•™æ��ã€�ã€ŒæŒ‰çŸ¥è¯†ç‚¹ã€�ã€Œå�„å¥—ä¹¦ã€�
  ä»»ä¸€è¯´æ³•ï¼Œè¯¥çŸ¥è¯†ç‚¹**å¿…é¡»**ç”¨ {"kp":â€¦}ï¼Œå�³ä½¿æŸ�å¥—æ•™æ��ç›®å½•é‡Œæœ‰å�Œå��ä¸“é¢˜ä¹Ÿä¸�è®¸æ”¹ç”¨ cdã€‚
  ä¾‹ï¼šã€Œè·¨æ•™æ��æ�¥ 8 é�“ç›¸é�‡é—®é¢˜ã€�â†’ {"kp":"ç›¸é�‡é—®é¢˜","n":8}ï¼›
      ã€Œä¸�é™�æ•™æ��å‡º 10 é�“é¸¡å…”å�Œç¬¼ã€�â†’ {"kp":"é¸¡å…”å�Œç¬¼é—®é¢˜","n":10}ã€‚
  è€�å¸ˆæ²¡æ��è¿™äº›è¯´æ³•æ—¶ï¼Œä¸€å¾‹ä¼˜å…ˆ cd/cd_likeï¼ˆæ•™æ��ç›®å½•è½´ï¼‰ã€‚kp ç»„ç…§æ ·è¦�ç»™ nã€‚
- çŸ¥è¯†ç‚¹è¡¨é‡Œå�Œä¸€ä¸»é¢˜å¸¸æ‹†æˆ�å¤šä¸ªç»†åˆ†çŸ¥è¯†ç‚¹ï¼ˆå¦‚ã€Œé¸¡å…”å�Œç¬¼ã€�æœ‰ 5 ä¸ªï¼‰ï¼Œå��å­—å�Žæ‹¬å�·æ˜¯è¯¥çŸ¥è¯†ç‚¹é¢˜ç›®æ‰€åœ¨å¹´çº§ã€‚
  è€�å¸ˆ**ç¬¼ç»Ÿ**è¯´ä¸€ä¸ªä¸»é¢˜ â†’ ç”¨ {"kp_like":"é¸¡å…”å�Œç¬¼"} ä¸€æ¬¡æ‹¿å…¨ï¼ˆæœ�åŠ¡ç«¯æŒ‰å­�ä¸²å±•å¼€ï¼‰ï¼›
  è€�å¸ˆ**ç²¾ç¡®æŒ‡å��**æŸ�ä¸ªç»†åˆ† â†’ ç”¨ {"kp":"å®Œæ•´å��"}ã€‚kp/kp_like çš„å…³é”®è¯�å¿…é¡»çœŸå®žå‡ºçŽ°åœ¨çŸ¥è¯†ç‚¹è¡¨é‡Œã€‚
  å�ªç”¨ kp/kp_like ä¸”è€�å¸ˆæ²¡è¯´å¹´çº§æ—¶ï¼Œgg æŒ‰çŸ¥è¯†ç‚¹è¡¨æ‹¬å�·é‡Œçš„å¹´çº§å¡«ï¼ˆå¦‚ã€Œç‰›å�ƒè�‰é—®é¢˜ï¼ˆ5å¹´çº§ï¼‰ã€�â†’ äº”å¹´çº§ï¼‰ã€‚
- è€�å¸ˆè¯´çš„çŸ¥è¯†ç‚¹ â†’ groupsã€‚å…ˆåœ¨ç›®å½•é‡ŒæŠŠ**æ‰€æœ‰ç›¸å…³**çš„ä¸“é¢˜å��æ‰¾é½�ï¼š
  å�Œä¸€ç³»åˆ—ï¼ˆå¸¦ï¼ˆä¸€ï¼‰ï¼ˆäºŒï¼‰/â‘ â‘¡â‘¢çš„ï¼‰ã€�åŒ…å�«è¯¥è¯�çš„ã€�ä»¥å�Š**å�«æ³•ä¸�å�Œä½†æ„�æ€�ç›¸å�Œ**çš„éƒ½ç®—ç›¸å…³ã€‚
  ç„¶å�Žï¼š
  Â· ç›¸å…³ä¸“é¢˜éƒ½å�«å�Œä¸€ä¸ªè¯� â†’ ç”¨ {"cd_like":"é‚£ä¸ªè¯�"} ä¸€æ¬¡æ‹¿å…¨ï¼ˆå¦‚ã€Œä¸€æ¬¡å‡½æ•°ã€�ã€Œå¤§æ•°çš„è®¤è¯†ã€�ï¼‰ï¼Œ
    ä¸�è®¸å�ªæŒ‘å…¶ä¸­ä¸€ä¸ªï¼›
  Â· ç›®å½•å�«æ³•å’Œè€�å¸ˆè¯´æ³•ä¸�å�Œ â†’ æŒ‰**æ„�æ€�**é€‰ï¼Œç”¨ {"cd":â€¦} é€�ä¸ªåˆ—å‡ºã€‚
    ä¾‹ï¼šè€�å¸ˆè¯´ã€Œåˆ†æ•°åº”ç”¨é¢˜ã€�è€Œèƒ¡å°�ç¾¤å…­å¹´çº§ç›®å½•é‡Œå�«ã€Œé‡�çŽ‡é—®é¢˜ï¼ˆä¸€ï¼‰ã€�ã€Œé‡�çŽ‡é—®é¢˜ï¼ˆäºŒï¼‰ã€�ï¼Œ
    å°±åˆ—è¿™ä¸¤ä¸ªï¼›ä¸�è¦�å› ä¸ºå­—é�¢å�«ã€Œåˆ†æ•°ã€�åŽ»æŠ“ã€Œåˆ†æ•°å·§ç®—ã€�ï¼ˆé‚£æ˜¯è®¡ç®—ä¸�æ˜¯åº”ç”¨é¢˜ï¼‰ï¼›
  Â· è€�å¸ˆæŠŠå‡ ä¸ªçŸ¥è¯†ç‚¹å�ˆç�€è¯´ï¼ˆã€ŒåŠ å‡�å·§ç®—ã€�ã€Œå’Œå·®å€�é—®é¢˜ã€�ï¼‰â†’ å¿…é¡»æ‹†æˆ�å¤šä¸ª group åˆ†åˆ«æ‰¾
    ï¼ˆåŠ å‡�å·§ç®—=åŠ æ³•çš„å·§ç®—+å‡�æ³•çš„å·§ç®—ï¼Œç›®å½•é‡Œå�«ã€ŒåŠ æ³•ç®€ç®—ã€�ã€Œå‡�æ³•ç®€ç®—ã€�å°±ç”¨å®ƒä»¬ï¼‰ï¼›
  Â· cd ä¸Ž cd_like å¡«çš„å­—ç¬¦ä¸²å¿…é¡»åœ¨ç›®å½•é‡ŒçœŸå®žå‡ºçŽ°è¿‡ï¼›æ„�æ€�ç›¸è¿‘çš„éƒ½æ‰¾ä¸�åˆ°æ‰�ä¸�å¡«ï¼Œ
    ç»�ä¸�ç¡¬ç¼–ä¸�å­˜åœ¨çš„ä¸“é¢˜å��ã€‚
- æ•™æ��é€‰æ‹©ï¼ˆè€�å¸ˆæ²¡ç‚¹å��æ•™æ��æ—¶ï¼ŒæŒ‰æ­¤ä¼˜å…ˆçº§ï¼Œç¬¬ä¸€æ�¡å‘½ä¸­å°±å®šï¼Œä¸�çœ‹å�Žé�¢ï¼‰ï¼š
  1. æ��åˆ°å¥¥æ•°/æ€�ç»´/ç«žèµ› â†’ **å¿…é€‰**ã€Œä¸¾ä¸€å��ä¸‰ã€�æˆ–ã€ŒåŠ¨è„‘ç­‹ã€�ï¼Œç»�ä¸�é€‰èƒ¡å°�ç¾¤è¯¾ç¨‹ï¼›
  2. æ��åˆ° AMC/AMC8/ç¾Žå›½æ•°å­¦ç«žèµ› â†’ ã€ŒAMC8çœŸé¢˜ã€�ï¼›
  3. æ��åˆ°ä¸­è€ƒ/ä¸€æ¨¡/äºŒæ¨¡/ä¸‰æ¨¡/çœŸé¢˜ â†’ ã€Œä¸Šæµ·ä¸­è€ƒçœŸé¢˜ã€�ï¼ˆä½†ã€Œä¸­è€ƒåˆ†ç±»æ±‡ç¼–ã€�ã€ŒæœŸæœ«çœŸé¢˜æ±‡ç¼–ã€�è¿™ç±»**æ±‡ç¼–**è¯´æ³•ä¸�ç®—ï¼Œè§�ç¬¬ 6 æ�¡ï¼‰ï¼›
     âš  ä½†å�ªè¦�æ��åˆ°**çœ�å��/å…¨å›½/å¤–çœ�**ï¼ˆæ±Ÿè‹�ã€�å±±ä¸œã€�æµ™æ±Ÿâ€¦ï¼‰â†’ æ”¹é€‰ã€Œå…¨å›½ä¸­è€ƒçœŸé¢˜ã€�ï¼›
  4. æ��åˆ°è¯¾æœ¬/å�Œæ­¥/æ ¡å†… â†’ ã€Œä¸€è¯¾ä¸€ç»ƒã€�ï¼›æ��åˆ°ã€Œæ–°æ€�è·¯ã€�â†’ ã€Œæ–°æ€�è·¯ã€�ï¼ˆã€Šæ–°æ€�è·¯è¾…å¯¼ä¸Žè®­ç»ƒã€‹ç¬¬ä¸‰ç‰ˆï¼Œå…­ä¸Š~å…«ä¸‹ï¼Œ
     gg æ˜¯ã€Œå…­å¹´çº§ä¸ŠÂ·ç¬¬ä¸‰ç‰ˆã€�è¿™ç§�ï¼Œcd æ˜¯è¯¾æ¬¡åŽŸæ–‡å¦‚ã€Œ1.1 æœ‰ç�†æ•°çš„å¼•å…¥ã€�ã€Œé˜¶æ®µè®­ç»ƒ1ã€�ã€Œç¬¬1ç«  æœ¬ç« å¤�ä¹ é¢˜ã€�ã€ŒæœŸä¸­æµ‹è¯•å�· Aå�·ã€�ï¼‰ï¼›
  5. ã€Œä¸Šæµ·æ ¡æœ¬å�·ã€�= å�„æ ¡**æ•´å�·**ï¼ˆæœˆè€ƒ/æœŸä¸­/æœŸæœ«/æ¨¡æ‹Ÿ/æŠ¼é¢˜ï¼Œå…«ä¸Šä¸ºä¸»ï¼Œå…­ä¸Š~ä¹�ä¸Šå°‘é‡�ï¼‰ï¼š
     æ��åˆ°å­¦æ ¡å��ï¼ˆå�—æ´‹æ¨¡èŒƒã€�å¼ æ±Ÿã€�å¸‚è¥¿â€¦ï¼‰/æ•´å�·/æ¨¡æ‹Ÿå�·/æŠ¼é¢˜/æœˆè€ƒ â†’ é€‰ã€Œä¸Šæµ·æ ¡æœ¬å�·ã€�ï¼›
     å…«å¹´çº§å�Œæ—¶æ��åˆ°æœŸä¸­/æœŸæœ«æ—¶ï¼šè¯´åˆ°ä¸“é¢˜/çŸ¥è¯†ç‚¹/å¿…åˆ· â†’ æ±‡ç¼–å†Œï¼›å�ªè¯´ã€Œå…«ä¸ŠæœŸæœ« 10 é�“ã€�æ²¡æ��ä¸“é¢˜ â†’ ã€Œä¸Šæµ·æ ¡æœ¬å�·ã€�ã€‚
  6. å…¶ä½™åˆ�ä¸­å†…å®¹ï¼ˆå…­~ä¹�å¹´çº§/é¢„åˆ�/åˆ�ä¸€~åˆ�ä¸‰ï¼‰â†’ **å¿…é€‰**ã€Œåˆ�ä¸­åŸ¹ä¼˜è®²ä¹‰ã€�ï¼Œ
     å�³ä½¿èƒ¡å°�ç¾¤è¯¾ç¨‹é‡Œä¹Ÿæœ‰åˆ�ä¸­å†Œï¼›
     âš  åŸ¹ä¼˜è®²ä¹‰çš„ä¹�å¹´çº§ä¸Šå†Œæœ‰ä¸¤å†Œï¼šã€Œä¹�ä¸Šã€�æ˜¯æ—§æ•™æ��ã€�ã€Œä¹�ä¸ŠÂ·æ–°æ•™æ��ã€�æ˜¯ 2026 ç§‹èµ·æ²ªæ•™ç‰ˆäº”å››åˆ¶æ–°æ•™æ��ã€‚
       è€�å¸ˆå�ªè¯´ã€Œä¹�ä¸Šã€�â†’ **é»˜è®¤ã€Œä¹�ä¸ŠÂ·æ–°æ•™æ��ã€�**ï¼›è¯´ã€Œæ—§æ•™æ��/è€�æ•™æ��/è€�ç‰ˆ/æ—§ç‰ˆã€�â†’ **å¿…é¡»** gg="ä¹�ä¸Š"ï¼ˆä¸�å¸¦Â·æ–°æ•™æ��ï¼‰ã€‚
       ä¾‹ï¼šã€Œæ—§æ•™æ��ä¹�ä¸ŠäºŒæ¬¡å‡½æ•° 5 é�“ã€�â†’ {"tb":"åˆ�ä¸­åŸ¹ä¼˜è®²ä¹‰","gg":"ä¹�ä¸Š",â€¦}ï¼›ã€Œä¹�ä¸ŠäºŒæ¬¡å‡½æ•° 8 é�“ã€�â†’ gg="ä¹�ä¸ŠÂ·æ–°æ•™æ��"ã€‚
     âš  å…«å¹´çº§å�¦æœ‰ä¸¤å†ŒçœŸé¢˜æ±‡ç¼–ï¼šã€Œå…«ä¸ŠÂ·æœŸæœ«æ±‡ç¼–ã€�ã€Œå…«ä¸‹Â·æœŸä¸­æ±‡ç¼–ã€�ï¼ˆæŒ‰ä¸“é¢˜/é¢˜åž‹é‡�æŽ’çš„æœŸä¸­æœŸæœ«çœŸé¢˜ï¼‰ã€‚
       é€‰æ±‡ç¼–å†Œçš„æ�¡ä»¶æ˜¯è€�å¸ˆæ��åˆ° **æ±‡ç¼–/å¿…åˆ·/åŽ‹è½´/çœŸé¢˜æ±‡ç¼–** æˆ–ã€ŒæœŸä¸­/æœŸæœ« + ä¸“é¢˜å��ã€�ï¼ˆã€Œå…«ä¸ŠæœŸæœ«çœŸé¢˜ äºŒæ¬¡æ ¹å¼�ã€�ï¼‰ï¼›
       å�ªè¯´ã€Œå…«ä¸ŠæœŸæœ« 10 é�“ã€�ã€Œå…«ä¸‹æœŸä¸­å�·ã€�è¿™ç§�**æ²¡æœ‰ä¸“é¢˜å��**çš„æ•´å�·è¯´æ³• â†’ æŒ‰ç¬¬ 5 æ�¡èµ°ã€Œä¸Šæµ·æ ¡æœ¬å�·ã€�ï¼Œä¸�é€‰æ±‡ç¼–å†Œï¼›
       å�ªè¯´è®²ä¹‰å†…å®¹ï¼ˆã€Œå…«ä¸Š ä¸€æ¬¡å‡½æ•° 8 é�“ã€�ï¼‰â†’ ä»�é€‰ã€Œå…«ä¸Šã€�ã€Œå…«ä¸‹ã€�è€�å†Œã€‚
     âš  åŸ¹ä¼˜è®²ä¹‰è¿˜æœ‰ä¸€å†Œã€Œä¸­è€ƒÂ·åˆ†ç±»æ±‡ç¼–ã€�ï¼šè¿‘ 5 å¹´ä¸­è€ƒæ¨¡æ‹ŸçœŸé¢˜**æŒ‰ä¸“é¢˜åˆ†ç±»**ï¼ˆä¸‰æ¨¡/å››æ¨¡/æ ¡çº§æ¨¡æ‹Ÿ/æœŸæœ«ï¼Œ
       ä¸­è€ƒæ­£å�·å’Œä¸€äºŒæ¨¡ä¸�åœ¨è¿™å†Œâ€”â€”å®ƒä»¬æŒ‰æ•´å�·æ”¶åœ¨ã€Œä¸Šæµ·ä¸­è€ƒçœŸé¢˜ã€�ï¼‰ã€‚è€�å¸ˆè¯´ã€Œä¸­è€ƒåˆ†ç±»æ±‡ç¼–/ä¸­è€ƒçœŸé¢˜åˆ†ç±» + ä¸“é¢˜å��ã€�
       ï¼ˆã€Œä¸­è€ƒåˆ†ç±»æ±‡ç¼– äºŒæ¬¡å‡½æ•° 8 é�“ã€�ï¼‰â†’ tb=åˆ�ä¸­åŸ¹ä¼˜è®²ä¹‰ã€�gg=ä¸­è€ƒÂ·åˆ†ç±»æ±‡ç¼–ã€�cd æŒ‰ä¸“é¢˜ï¼›å�ªè¯´ã€Œä¸­è€ƒã€�ä¸�è¯´åˆ†ç±»æ±‡ç¼– â†’ ä»�èµ°ã€Œä¸Šæµ·ä¸­è€ƒçœŸé¢˜ã€�ã€‚
  7. å…¶ä½™å°�å­¦å†…å®¹ â†’ ã€Œèƒ¡å°�ç¾¤è¯¾ç¨‹ã€�ã€‚
- ã€Œä¸Šæµ·æ ¡æœ¬å�·ã€�çš„ gg æ˜¯å¹´çº§å­¦æœŸï¼ˆå…«ä¸Š/ä¸ƒä¸‹â€¦ï¼‰ã€�cd æ˜¯ã€Œ2025å­¦å¹´Â·å�—æ´‹æ¨¡èŒƒä¸­å­¦Â·æœŸä¸­ã€�ï¼ˆå­¦å¹´Â·å­¦æ ¡Â·è€ƒæ¬¡ï¼‰ï¼›
  æŒ‰è€ƒæ¬¡å�–é¢˜ç”¨ cd_likeï¼ˆ"æœŸä¸­"/"æœŸæœ«"/"æœˆè€ƒ"ï¼‰ï¼ŒæŒ‰å­¦æ ¡ç”¨ cd_likeï¼ˆ"å�—æ´‹æ¨¡èŒƒ"ï¼‰ï¼ŒæŒ‰å­¦å¹´ç”¨ cd_likeï¼ˆ"2025å­¦å¹´"ï¼‰ï¼›
  è€�å¸ˆå�ªè¯´å¹´çº§ä¸�è¯´è€ƒæ¬¡å­¦æ ¡ â†’ {"all":true}ã€‚å®ƒæ²¡æœ‰ä¸“é¢˜å��ï¼Œè€�å¸ˆæŒ‰çŸ¥è¯†ç‚¹ç‚¹å��è¿™ä¸ªæ•™æ��ç»™ä¸�äº†ã€‚
- ã€Œä¸Šæµ·ä¸­è€ƒçœŸé¢˜ã€�çš„ gg æ˜¯å¹´ä»½ï¼ˆå¦‚ 2024å¹´ï¼‰ã€�cd æ˜¯æ•´å�·å�·å��ï¼›æŒ‰è€ƒæ¬¡å�–é¢˜ç”¨ cd_likeï¼ˆ"ä¸€æ¨¡"/"äºŒæ¨¡"/"ä¸‰æ¨¡"/"ä¸­è€ƒ"ï¼‰ã€‚
- ã€ŒAMC8çœŸé¢˜ã€�çš„ gg æ˜¯**å¹´ä»½**ï¼ˆ2000å¹´ â€¦ 2025å¹´ï¼Œé€�å¹´ï¼‰ã€�cd æ˜¯ã€Œ2023å¹´ AMC8ã€�ï¼ˆä¸€å¹´ä¸€å�·ä¸€èŠ‚ï¼‰ï¼›
  è€�å¸ˆè¯´ã€ŒAMC8 2023ã€�â†’ gg="2023å¹´"ã€�cd="2023å¹´ AMC8"ï¼›è¯´ã€Œè¿‘ä¸‰å¹´ AMC8ã€�â†’ æ‹†æˆ�ä¸‰ä¸ª gg å�„ä¸€ç»„ã€‚
  å…¨å�·éƒ½æ˜¯é€‰æ‹©é¢˜ï¼›éš¾åº¦å�¯ç”¨ï¼ˆæ˜“/ä¸­/éš¾ï¼ŒæŒ‰é¢˜å�·æŽ¨çš„ï¼š1-8 æ˜“ã€�9-16 ä¸­ã€�17-25 éš¾ï¼‰ã€‚
  âš  ã€ŒåŽ‹è½´é¢˜ã€�ã€Œéš¾é¢˜ã€�ã€Œå�Žå‡ é¢˜ã€�æ˜¯**éš¾åº¦**è¯´æ³• â†’ difficulty="éš¾"ï¼Œç»�ä¸�å½“ä¸“é¢˜å��åŽ» cd_likeï¼ˆAMC8 çš„ cd å�ªæœ‰å¹´ä»½å�·å��ï¼‰ã€‚
    ã€Œè¿‘å‡ å¹´/è¿‘ä¸‰å¹´ã€�â†’ å�–æœ€è¿‘çš„ä¸€ä¸ªå¹´ä»½å½“ ggï¼ˆå¦‚ 2025å¹´ï¼‰ï¼Œåˆ«ç¼–ä¸�å­˜åœ¨çš„å¹´ä»½ã€‚
  âš  AMC8 **ä¸�æ˜¯**ä¸­è€ƒå�·ï¼Œallow_gen ç…§å¸¸ï¼ˆEXAM_TBS ä¸�å�«å®ƒï¼‰ã€‚
- ã€Œå…¨å›½ä¸­è€ƒçœŸé¢˜ã€�çš„ **gg æ˜¯çœ�ä»½**ï¼ˆå¦‚ æ±Ÿè‹�ã€�å±±ä¸œï¼Œ31 ä¸ªçœ�çº§å�•ä½�ï¼Œå…¨éƒ¨æ˜¯ä¸­è€ƒæ­£å�·ï¼‰ã€�
  cd æ˜¯ã€Œå¹´ä»½Â·åŸŽå¸‚ã€�ï¼ˆå¦‚ 2019Â·è‹�å·žï¼‰ï¼›æŒ‰å¹´ä»½å�–é¢˜ç”¨ cd_likeï¼ˆ"2019"ï¼‰ã€�æŒ‰åŸŽå¸‚ç”¨ cd_likeï¼ˆ"è‹�å·ž"ï¼‰ã€‚
  âš  è€�å¸ˆ**è¯´äº†å¹´ä»½**ï¼ˆã€Œå…¨å›½ 2024 å¹´ä¸­è€ƒå�·ã€�ï¼‰â†’ å¿…é¡» cd_like="2024"ï¼Œä¸�è®¸é€€æˆ� all:trueã€‚
  âš  è€�å¸ˆå�ªè¯´çœ�å��ï¼ˆã€Œæ±Ÿè‹�ä¸­è€ƒçœŸé¢˜é€‰ 10 é�“ã€�ï¼‰æ—¶**æ²¡æœ‰ä¸“é¢˜ä¹Ÿæ²¡æœ‰å¹´ä»½å�¯å¡«** â†’ ç”¨ {"all":true,"n":10}
    è¡¨ç¤ºã€Œè¿™ä¸ªçœ�çš„å�·å­�é‡Œéš�ä¾¿æŒ‘ã€�ã€‚åˆ«åŽ»ç¼–ä¸€ä¸ªã€Œä¸­è€ƒã€�å½“ cd_like â€”â€” å…¨å›½æ‰¹çš„ cd é‡Œä¸�å�«ã€Œä¸­è€ƒã€�äºŒå­—ã€‚
  âš  å…¨å›½æ‰¹**æ²¡æœ‰çŸ¥è¯†ç‚¹æ ‡æ³¨**ï¼Œä¹Ÿæ²¡æœ‰ä¸“é¢˜å��ã€‚è€�å¸ˆæŒ‰çŸ¥è¯†ç‚¹/é¢˜åž‹æ¦‚å¿µç‚¹å��ï¼ˆã€ŒäºŒæ¬¡å‡½æ•°ã€�ã€Œåœ†ã€�ï¼‰æ—¶ï¼Œ
    è¿™ä¸ªæ•™æ��ç»™ä¸�äº†ï¼Œåº”æ”¹ç”¨å…¶å®ƒæ•™æ��çš„ kp è½´ï¼Œæˆ–é€€å›ž {"all":true} å†�é� é¢˜åž‹ç­›ã€‚
- è€�å¸ˆæ²¡è¯´å¹´çº§ï¼šæŒ‰çŸ¥è¯†ç‚¹æŽ¨æ–­æœ€å�¯èƒ½çš„ ggï¼Œå¹¶æŠŠ guessed_grade è®¾ä¸º trueã€‚
- total = è€�å¸ˆè¯´çš„é¢˜é‡�ï¼›æ²¡è¯´å°±å¡« 8ã€‚groups çš„ n ä¹‹å’Œåº”ç­‰äºŽ totalã€‚
- types å�ªèƒ½å�–ï¼šé€‰æ‹©ã€�å¡«ç©ºã€�è®¡ç®—ã€�åº”ç”¨ã€�è§£ç­”ã€�ä½œå›¾ã€�åˆ¤æ–­ã€�å…¶ä»–ï¼›è€�å¸ˆæ²¡æ��é¢˜åž‹å°±å¡« nullã€‚
- difficulty å�ªèƒ½å�– æ˜“/ä¸­/éš¾/æ··å�ˆï¼Œæ²¡æ��å¡« æ··å�ˆã€‚
- è€�å¸ˆè¯´ã€Œç”±æ˜“åˆ°éš¾/ä»Žç®€å�•åˆ°éš¾ã€�â†’ order å¡« easy_firstï¼Œå�¦åˆ™ as_isã€‚
- è€�å¸ˆè¯´ã€Œä¸�è¦�å¸¦å›¾çš„é¢˜ã€�â†’ no_figure trueã€‚c                óÊ  € . pVP                  4        FJ  w  rEVP                  4        F1  w  rgVP                  RV: RV: RRP                  V4      : 24       K3  	  KL  	  RP                  V4      R,          pRV : RV: 2p	V'       d'   V	R	R
P                  V4      R,          ,           ,          p	R\        R^ RRRRRRR/RRR/RRRR\        /RRRV	/./p
\
        P                  P                  R\        P                  ! V
4      P                  R4      RRR R!\        ,           /R"7      p\
        P                  P                  V^xR#7      ;_uu_ 4       p\        P                  ! V4      pR$R$R$4       XR%,          ^ ,          R&,          R,          pVP                  R'4      VP                  R(4      pp\        P                   ! WïV^,            4      #   + '       g   i     Lo; i))ui   ä¸€å�¥è¯� + ç›®å½•(+çŸ¥è¯†ç‚¹è¡¨) â†’ LLM çš„åŽŸå§‹ specï¼ˆdictï¼‰ã€‚å¤±è´¥æŠ›å¼‚å¸¸ï¼Œè°ƒç”¨æ–¹å…œåº•ã€‚u   ã€�õ    Â· u   ã€‘u   ï½œrh   :Ni€8 Nu   è€�å¸ˆçš„è¯�ï¼šã€Œu7   ã€�

å�¯é€‰ç›®å½•ï¼ˆtbÂ·gg ä¸Žå…¶ä¸‹çš„ä¸“é¢˜å��ï¼‰ï¼š
uW   

çŸ¥è¯†ç‚¹è¡¨ï¼ˆkp/kp_like è½´å�¯é€‰å€¼ï¼Œè·¨æ•™æ��ï¼›æ‹¬å�·=é¢˜ç›®æ‰€åœ¨å¹´çº§ï¼‰ï¼š
õ   ã€�:Ni@œ  Nr7   r8   r9   i¸  r;   Fr<   r   r=   Úresponse_formatÚjson_objectr>   r?   r@   r*   rA   rB   rC   rD   rE   rF   rG   rH   rK   NrM   rN   Ú{Ú})r   r(   rr   rQ   ÚCOMPOSE_PROMPTrU   rV   rW   r!   rX   rY   rZ   r[   r\   ÚfindÚrfindr"   )ÚtextÚcatalogÚkpsÚlinesÚtbÚgsÚggÚcdsÚcatrA   rc   rd   re   r.   r   rl   Újs   &&&              r	   Ú
nl_to_specr�     s²  € à€EØ—-‘-–/‰ˆØ—x‘x–z‰GˆBØ�LŠL«r³2°u·z±zÀ#µÐGÖHó "ñ "ð �)‰)�EÓ
˜6Õ
"�CÛaeÒgjÐk€Dß
ØÐlÐot×oyÑoyÐz}Óo~ð  @Fõ  pGõ  Gõ  	GˆØœ˜}¨a°¸tÀXÈuØ˜F JÐ/Ø  6¨=Ð"9Ø˜V X¨y¼.ÐIØ# V¨Y¸Ð=ð?ð@€Gô
 �.‰.×
 Ñ
 Ð!LÜ&*§j¢j°Ó&9×&@Ñ&@ÀÓ&IØ*8Ð:LØ*9¸9Äs½?ð*Lð !ó M€Cô 
�‰×	Ñ	 ¨SÐ	×	1Ô	1°QÜ�iŠi˜‹lˆ÷ 
2àˆI��qÕ˜)Õ$ YÕ/€AØ�6‰6�#‹;˜Ÿ™ ›€q€AÜ�:Š:�a˜!˜a�%�jÓ!Ð!÷	 
2×	1ús   ÅGÇG"	c                óL  € W9   d   V # \        T ;'       g    R4      P                  4       pV'       d9   V Uu. uF  q2V9   g	   W29   g   K  VNK  	  ppV'       d   \        V\        R7      # ^ RIpVP                  V\        V4      ^RR7      pV'       d
   V^ ,          # R# u upi )uW   åœ¨ options é‡Œæ‰¾ wantï¼šç²¾ç¡® â†’ äº’ä¸ºå­�ä¸² â†’ difflibã€‚æ‰¾ä¸�åˆ°è¿”å›ž Noneã€‚r   ©ÚkeyNg      à?)ÚnÚcutoff)r)   r   rR   ru   ÚdifflibÚget_close_matchesr'   )ÚwantÚoptionsÚwÚor   r“   r   s   &&     r	   Ú	_pick_keyr™   -  s‹   € à„ØˆÜˆD�JˆJ�B‹×ÑÓ€AßÙ!Ó6™'�Q¨!¤V¨q©v�qˆq™'ˆÐ6ßÜ�s¤Ô$Ð$ÛØ×!Ñ! !¤T¨'£]°aÀÐ!ÓD€Aßˆ1ˆQ�4Ð˜$Ðùò 7s   ¸B!ÁB!c                óH  € . . rC\        V P                  R4      V4      ;'       g    V'       d   \        V4      ^ ,          MRpV'       g   \        R4      hW,          p\	        V P                  R4      4      p\        V P                  R4      V4      pVf   \        V4      ^ ,          RrxWh,          p	. p
V P                  R4      ;'       g    .  EF   p\        V\        4      '       g   K   \        ^ \        VP                  R^ 4      4      4      pR	V9   d—   VP                  R	4      '       d€   \        VR	,          4      P                  4       pV	 Uu. uF  qíV9   g   K  VNK  	  ppV'       d,   V
P                  R
VRVRRV\        V4      3,          /4       KÌ  VP                  V4       Kß  VP                  R4      '       d€   \        VR,          4      P                  4       p\        VV	4      pV'       d8   VV8w  d   VP                  RVRV/4       V
P                  R
V.RVRV/4       EKa  VP                  V4       EKu  VP                  R4      '       d™   \        VR,          4      P                  4       pT;'       g    .  Uu. uF  pV'       g   K  VV9   g   K  VNK  	  ppV'       d/   V
P                  RVR
. RVRRV\        V4      3,          /4       EK  VP                  V4       EK$  VP                  R4      RJ d6   V
P                  R
\        V	4      RVRRV\        V	4      3,          /4       EKn  VP                  R4      '       g   EKˆ  \        VR,          4      P                  4       p\        T\        T;'       g    . 4      4      pV'       dA   VV8w  d   VP                  RVRV/4       V
P                  RV.R
. RVRRV,          /4       EK  VP                  V4       EK#  	   \        ^\        ^<\        V P                  R4      ;'       g    ^ 4      4      4      pV'       g   \        R V
 4       4      ;'       g    ^p\        R V
 4       4      pV
'       dª   VV8w  d£   V^ 8:  d"   V\        V
4      ,          pV
 F  pVVR&   K
  	  M6V
 F0  p\        ^ \!        VR,          V,          V,          4      4      VR&   K2  	  V\        R V
 4       4      ,
          p\        ^ V
R",          R,          V,           4      V
R",          R&   V P                  R4      ;'       g    .  Uu. uF  pV\"        9   g   K  VNK  	  up;'       g    RpV P                  R4      R#9   d   V P                  R4      MRpV P                  R4      R$9   d   V P                  R4      MRpRVRVRVRV
RVRVRVR \	        V P                  R 4      4      R!V\$        9  RV/
pVW43#   \        \        3 d    ^ p ELæi ; iu upi u upi   \        \        3 d    ^ p ELîi ; iu upi )%uñ   LLM çš„ spec â†’ æ ¡éªŒå�Žçš„ specã€‚**è¿™é‡Œè¯´äº†æ‰�ç®—**ï¼ŒLLM è¯´äº†ä¸�ç®—ã€‚

è¿”å›ž (spec, fixes, unresolved)ã€‚spec.groups ç»Ÿä¸€æˆ� {'cds':[çœŸå®žcdâ€¦],'n':int,'label':str}ï¼Œ
å‰�ç«¯æ‹¿åˆ°çš„æ¯�ä¸ª cd éƒ½ä¿�è¯�åœ¨ç›®å½•é‡Œå­˜åœ¨ã€‚
r‡   Nu   ç›®å½•ä¸ºç©ºÚguessed_grader‰   TÚgroupsr‘   Úcd_likerŠ   Úlabelu   å�«ã€Œ%sã€�çš„ %d èŠ‚ÚcdÚaskedÚpickedÚkp_liker…   u+   çŸ¥è¯†ç‚¹Â·å�«ã€Œ%sã€�çš„ %d ä¸ª(è·¨æ•™æ��)Úallu   æ•´ä¸ª %sï¼ˆ%d èŠ‚ï¼‰Úkpu   çŸ¥è¯†ç‚¹Â·%s(è·¨æ•™æ��)Útotalc              3   ó2   "  € T F  qR ,          x € K  	  R# 5i©r‘   Nrj   ©rk   Úxs   & r	   ro   Ú validate_spec.<locals>.<genexpr>‚  s   é € Ð+¡F˜q�c—F’F£Fùó   ‚c              3   ó2   "  € T F  qR ,          x € K  	  R# 5ir§   rj   r¨   s   & r	   ro   rª   ƒ  s   é € Ð&™v˜!��vŠv›vùr«   c              3   ó2   "  € T F  qR ,          x € K  	  R# 5ir§   rj   r¨   s   & r	   ro   rª   Œ  s   é € Ð2©6 a˜SŸ6š6«6ùr«   ÚtypesÚ
difficultyõ   æ··å�ˆÚorderÚas_isÚ	no_figureÚ	allow_genéÿÿÿÿ)u   æ˜“u   ä¸­u   éš¾r°   )Ú
easy_firstr²   Úby_type)r™   r&   r'   Ú
ValueErrorÚboolr$   r%   rS   rP   Ú	TypeErrorr)   r   r(   ru   rR   ÚsumÚroundÚCOMPOSE_TYPESÚEXAM_TBS)Úrawr„   r…   ÚfixesÚ
unresolvedr‡   rˆ   Úguessedr‰   rŠ   rœ   Úgr‘   ÚkwÚcÚhitr    Úgotrm   r¥   ÚssumÚbaser©   r_   r   r®   Údiff_r±   Úspecs   &&&                          r	   Úvalidate_specrÌ   ;  sS  € ð ˜Bˆ:Ü	�3—7‘7˜4“= 'Ó	*×	UÐ	UÇ7¬t°G«}¸QÖ/?ÐPT€BßÜ˜Ó(Ð(Ø	�€BÜ�3—7‘7˜?Ó+Ó,€GÜ	�3—7‘7˜4“= "Ó	%€BØ	‚zÜ˜2“h˜q•k 4ˆGØ
�&€Cà€FØ�g‰g�hÓ×%Ð% 2Ó%ˆÜ˜!œT×"Ò"Ùð	Ü�A”s˜1Ÿ5™5  a›=Ó)Ó*ˆAð ˜Œ>˜aŸe™e I×.Ò.Ü�Q�y•\Ó"×(Ñ(Ó*ˆBÙ!Ó-™c˜¨1¡W—1�1™cˆCÐ-ßØ—‘˜u c¨3°°7Ð<SÐWYÔ[^Ð_bÓ[cÐVdÕ<dÐeÖfà×!Ñ! "Ö%Ø�U‰U�4�[Š[Ü˜˜$�“L×&Ñ&Ó(ˆEÜ˜E 3Ó'ˆCßØ˜%”<Ø—L‘L '¨5°(¸CÐ!@ÔAØ—‘˜u s e¨S°!°W¸cÐB×Cà×!Ñ! %×(Ø�U‰U�9×ÒÜ�Q�y•\Ó"×(Ñ(Ó*ˆBØ"Ÿy˜y b˜yÓ<™y˜¬R”1°B¸!±G—1�1™yˆCÐ<ßØ—‘˜u c¨5°"°c¸1Ø&Ð(UÐY[Ô]`ÐadÓ]eÐXfÕ(fðh÷ ið ×!Ñ! "×%Ø�U‰U�5‹\˜TÓ!ð
 �M‰M˜5¤$ s£)¨S°!°WÐ>UÐY[Ô]`ÐadÓ]eÐXfÕ>fÐg×hØ�U‰U�4�[�[Ü˜˜$�“L×&Ñ&Ó(ˆEÜ˜E¤4¨¯	¨	¨r£?Ó3ˆCßØ˜%”<Ø—L‘L '¨5°(¸CÐ!@ÔAØ—‘˜u s e¨U°B¸¸QØ&Ð(BÀSÕ(HðJ÷ Kð ×!Ñ! %×(ñ] &ð`Ü�A”s˜2œs 3§7¡7¨7Ó#3×#8Ð#8°qÓ9Ó:Ó;ˆ÷ ÜÑ+¡FÓ+Ó+×0Ð0¨qˆÜÑ&™vÓ&Ó&€Dß�$˜%”-Ø�1Œ9ØœC ›KÕ'ˆDÛ�Ø��#“ò ó �Ü˜Q¤ a¨¥f¨u¥n°tÕ&;Ó <Ó=��#“ñ à”sÑ2©6Ó2Ó2Õ2ˆÜ˜a ¨¥¨C¥°4Õ!7Ó8ˆˆr�
�3‰àŸ™ Ó)×/Ð/¨RÐ/ÓGÑ/�1°A¼Ñ4F�QˆQÑ/ÑG×OÐOÈ4€EØ%(§W¡W¨\Ó%:Ð>]Ô%]ˆC�G‰G�LÔ!Ðck€EØ #§¡¨Ó 0Ð4VÔ VˆC�G‰G�GÔÐ\c€EØ�"�d˜B ¨°¸&Ø�U˜L¨%°¸%Øœ˜cŸg™g kÓ2Ó3Ø˜¤8Ñ+Ø˜Wð	&€Dð
 �Ð"Ð"øôK œ:Ð&ô 	Ø‹Að	üò .ùò  =øô2 ”zÐ"ô Ø‹ðüò  HsN   Ã,%W!ÅW;Å W;Ê	
X ÊX Ê!X Ï58X Ô1XÕX×!W8×7W8ØXØXc                ó8  € V R,          : RV R,          : V R,          '       d   RMR: 2.pVP                  RP                  R V R	,           4       4      4       V R
,          '       d/   VP                  RRP                  V R
,          4      ,           4       V R,          R8w  d    VP                  RV R,          ,           4       V R,          R8X  d   VP                  R4       V R,          '       d   VP                  R4       RP                  R V 4       4      # )u®   ã€ŒAI çš„ç�†è§£ã€�è¿™å�¥è¯�ç”±**æ ¡éªŒå�Žçš„ spec** æ‹¼å‡ºæ�¥ â€”â€” è€�å¸ˆçœ‹åˆ°çš„å°±æ˜¯è¦�æ‰§è¡Œçš„ï¼Œ
ç»�ä¸�ç”¨ LLM çš„è‡ªè¿°ï¼ˆè‡ªè¿°å’Œå®žé™…æ‰§è¡Œå�¯ä»¥å¯¹ä¸�ä¸Šï¼‰ã€‚r‡   rz   r‰   r›   u   ï¼ˆå¹´çº§æœªè¯´ï¼ŒæŒ‰æ­¤çŒœï¼‰r   r{   c              3   óT   "  € T F  pR VR,          VR,          3,          x € K   	  R# 5i)u   ã€Œ%sã€�%d é�“rž   r‘   Nrj   )rk   rÃ   s   & r	   ro   Ú%compose_understood.<locals>.<genexpr>Ÿ  s&   é € Ð\É^ÈÐ,°°'µ
¸A¸c½FÐ/C×CÒCË^ùs   ‚&(rœ   r®   u	   é¢˜åž‹ï¼šÚ/r¯   r°   u	   éš¾åº¦ï¼šr±   r¶   u   ç”±æ˜“åˆ°éš¾r³   u	   ä¸�å¸¦å›¾c              3   ó8   "  € T F  q'       g   K  Vx € K  	  R # 5i©Nrj   )rk   Úps   & r	   ro   rÏ   ¨  s   é € Ð-¡%˜Q«1—q’q£%ùs   ‚	�
)r(   rr   )rË   Úpartss   & r	   Úcompose_understoodrÕ   š  sã   € ð " $ŸZ˜Z¨¨d¯Ø@DÀ_×@UÔ@UÑ<Ð[]Ñ]ð_ð `€Eà	‡L�L�—‘Ñ\ÈTÐRZÎ^Ó\Ó\Ô]ØˆG‡}„}Ø�‰�[ 3§8¡8¨D°­MÓ#:Õ:Ô;ØˆLÕ˜XÔ%Ø�‰�[ 4¨Õ#5Õ5Ô6ØˆG…}˜Ô$Ø�‰�^Ô$ØˆK×ÔØ�‰�[Ô!Ø�;‰;Ñ-¡%Ó-Ó-Ð-r   c                ó@  € \        V \        4      '       d   V P                  R4      R8w  d   R#  \        V P                  R4      4      p\        V P                  R4      4      p^Tu;8:  d   ^È8:  d   M R# T^<8w  d   R# RRRTR^</#   \        \
        3 d     R# i ; i)ud   å�ªæ”¾è¡Œå·²å®žçŽ°çš„æ¨¡æ�¿ä¸Žå®‰å…¨æ•°å€¼ï¼Œç»�ä¸�æŠŠæ¨¡åž‹è¿”å›žçš„ GeoGebra å‘½ä»¤ç›´æŽ¥æ‰§è¡Œã€‚ÚkindÚthree_sector_arcsNÚradiusÚangle)r$   r%   r&   rP   rº   r¸   )r¿   rÙ   rÚ   s   &  r	   Ú_normalize_figurerÛ   «  s˜   € ä�cœ4× Ò  C§G¡G¨F£OÐ7JÔ$JÙðÜ�S—W‘W˜XÓ&Ó'ˆÜ�C—G‘G˜GÓ$Ó%ˆð �Ö˜3ÖÙð #(¨2¤+ÙØÐ'¨°6¸7ÀBÐGÐGøô	 ”zÐ"ô Úðús   °4B ÂBÂBc                óò  € \        V4      P                  4       '       d   R\        V4      ,          M
\        V4      pRT;'       g    RYS;'       g    RW3,          pR\        RRR\	        R	\        R
\        V4      R,          4      4      RRRRR/RRRR\        /RRRV/./p\        P                  P                  R\        P                  ! V4      P                  R4      RRRR\        ,           /R7      p\        P                  P                  V^´R7      ;_uu_ 4       p	\        P                  ! V	4      p
RRR4       \!        X
R,          ^ ,          R ,          R,          4      #   + '       g   i     L7; i)!uQ   AI å�ªè´Ÿè´£æ”¹å�Šå¾„å’Œé¢˜å¹²ï¼›é¢˜å›¾å¸ƒå±€ç”± kind çš„ç™½å��å�•æ¨¡æ�¿å†³å®šã€‚r4   um   è€�å¸ˆé€‰ä¸­çš„åŽŸé¢˜ï¼ˆ%sï¼Œéš¾åº¦ %sï¼Œä¸“é¢˜ï¼š%sï¼‰ï¼š
ã€Œ%sã€�

è¯·ç”Ÿæˆ� %d é�“å�Œä¸€è€ƒæ³•çš„æ–°é¢˜ã€‚u	   å…­å¹´çº§õ   åœ†ä¸Žæ‰‡å½¢r7   r8   gffffffÖ?r9   ih  i@  iŠ  r;   Fr<   r   r=   r>   r?   r@   r*   rA   rB   rC   rD   rE   rF   rG   rH   rK   NrM   rN   )r)   rO   rP   rQ   rR   rS   ÚFIGURE_SIM_PROMPTrU   rV   rW   r!   rX   rY   rZ   r[   r\   r2   r]   s   &&&&&      r	   Úgen_figure_similarrß   ¹  sM  € ä!$ T£×!2Ñ!2×!4Ò!4ˆE”C˜“IÖ¼#¸d»)€Eð7Ø:?×:NÐ:NÀ;ÐPU×WnÐWnÐ`nÐptÐ9zõ{€Dàœ˜}¨dØœS ¤s¨4´°S³¸CµÓ'@ÓAÀ8ÈUØ˜F JÐ/Ø˜V X¨yÔ:KÐLÈvÐW]Ð_hÐjnÐNoÐpðr€Gô �.‰.×
 Ñ
 Ð!LÜ&*§j¢j°Ó&9×&@Ñ&@ÀÓ&IØ*8Ð:LÈoÐ_hÔknÕ_nÐ)oð !ó q€Cô 
�‰×	Ñ	 ¨SÐ	×	1Ô	1°QÜ�iŠi˜‹lˆ÷ 
2ä˜S �^¨AÕ.¨yÕ9¸)ÕDÓEÐE÷ 
2×	1ús   Ä E&Å&E6	c                óf  a	€ . . r2T ;'       g    .  EFD  p\        VP                  R4      4      p\        VP                  R4      ;'       g    R4      P                  4       o	V'       g   VP	                  RS	R,          RR/4       Kv  \
        ;QJ d3    V	3R lR\        VR	,          4      R
R3 4       F  '       d   K   RM(	  RM$! V	3R lR\        VR	,          4      R
R3 4       4      '       g   VP	                  RS	R,          RR/4       Kü  \        VP                  R4      ;'       g    R4      R8w  d    VP	                  RS	R,          RR/4       EKD   \        P                  ! \        VP                  R4      ;'       g    R4      4      p\        P                  ! \        VP                  R4      ;'       g    R4      4      p\        P                  ! VR	,          R,          ^d4      pVe   Wg8w  g   Wx8w  d    VP	                  RS	R,          RR/4       EK	  TP	                  R\        VP                  R4      ;'       g    R4      RS	RRRV/4       EKG  	  VRV R\        \        V4      V4      R\        V4      R\        \        V4      V4      RVR,          /3#   \         d    RRrv Léi ; i)uQ   é¢˜å›¾é€šé�“çš„ç¡®å®šæ€§éªŒç®—ï¼šä¸‰æ®µ 60Â° å¼§é•¿ä¹‹å’Œå¿…ä¸º radius Ã— 3.14ã€‚Úfigurer   r   ºNé<   NÚwhyu   é¢˜å›¾ç»“æž„ä¸�åœ¨ç™½å��å�•å†…c              3   ó,   <"  € T F	  qS9   x € K  	  R # 5irÒ   rj   )rk   Útokenr   s   & €r	   ro   Ú&verify_figure_items.<locals>.<genexpr>Ò  s   øé € Ð\Ñ.[ U˜D–=Ó.[ùs   ƒu   å¦‚å›¾rÙ   Ú60z3.14FTu   é¢˜å¹²ç¼ºå°‘é¢˜å›¾å¿…è¦�æ�¡ä»¶r   Úequ   é¢˜å›¾é¢˜ç¼ºå°‘å�¯æ ¸å¯¹ç®—å¼�r   r   Ni:  u!   å‘¨é•¿ä¸Žä¸‰æ®µ 60Â° å¼§é•¿ä¸�ç¬¦r   rÝ   ÚverifiedÚkeptÚdroppedÚreasonsºNé   N)rÛ   r&   r)   r   r(   r£   Ú
verify_genÚcalcÚ	parse_numr#   ÚFractionrR   ru   )
r   r•   ÚkeepÚbadÚitemrË   rÇ   r   Úexpectedr   s
   &&       @r	   Úverify_figure_itemsrø   Ê  sE  ø€ à�Bˆ#Ø—�˜“ˆÜ  §¡¨(Ó!3Ó4ˆÜ�4—8‘8˜FÓ#×)Ð) rÓ*×0Ñ0Ó2ˆßØ�J‰J˜  S¥	¨5Ð2RÐSÔTÑV^ß‹sÔ\¨x¼¸TÀ(½^Ó9LÈdÐTZÑ.[Ó\�s�sŠsÔ\¨x¼¸TÀ(½^Ó9LÈdÐTZÑ.[Ó\×\Ò\Ø�J‰J˜  S¥	¨5Ð2RÐSÔTÑV^Üˆt�x‰x˜Ó%×+Ð+¨Ó,°Ô4Ø�J‰J˜  S¥	¨5Ð2RÐSÔTÒV^ð	%Ü—/’/¤# d§h¡h¨wÓ&7×&=Ð&=¸2Ó">Ó?ˆCÜ×)Ò)¬#¨d¯h©h°xÓ.@×.FÐ.FÀBÓ*GÓHˆFô ×&Ò& t¨H¥~¸Õ';¸SÓAˆØŠ>˜Sœ]¨fÔ.@Ø�J‰J˜  S¥	¨5Ð2UÐVÔWÒYaØ�‰�VœS §¡¨&Ó!1×!CÐ!C°^ÓDÀfÈdØ  x°ð7÷ 	8ñ# ð& ��ˆ;˜¤¤S¨£Y°Ó!5°yÄ#ÀcÃ(Ø#¤S¬¨T«°DÓ%9¸9ÀcÈ"ÅgðOð Oð Oøô ô 	%Ø ’ð	%ús   Å,JÆ7JÆ;JÊJ0Ê/J0ÚaiTu¶   è¿™é�“é¢˜çš„å�Œç±»é¢˜éƒ½è�½åœ¨è¯¾å†…éš¾åº¦ï¼ˆå­¦ç§‘ç½‘çš„ç«žèµ›éš¾åº¦æŽ¥å�£æš‚æ— é¢�åº¦ï¼‰ï¼Œå·²å�œæŽ‰å�Žç»­å°�è¯•ä»¥å…�æµªè´¹é¢�åº¦ã€‚å»ºè®®æ”¹ç”¨ã€Œç”Ÿæˆ�å™¨ã€�æˆ–ã€ŒAIã€�å‡ºé¢˜ã€‚c                ó´   € \         P                  ! T ;'       g    RP                  4       R,          P                  R4      4      P	                  4       R,          # )ua   é¢˜é�¢æŒ‡çº¹ â€”â€” å‰�ç«¯æ²¡ä¼  qid æ—¶ç”¨å®ƒå½“ç§�å­�æ ‡è¯†ï¼ˆå�ªç”¨æ�¥è®¡æ•°ï¼Œä¸�è�½ç›˜ï¼‰ã€‚r   :Ni�  NrC   ºNé   N)ÚhashlibÚmd5r   rY   Ú	hexdigest)Úss   &r	   Ú_fpr    s<   € ä�;Š;˜Ÿ˜˜R—‘Ó(¨Õ.×5Ñ5°gÓ>Ó?×IÑIÓKÈCÕPÐPr   c                ó  € . R^ R^ R^ R. R^ /rv\        V4       F³  pV\        V4      ,
          p	V	^ 8:  d    M™\        ^\        V	^,          V	^,           4      4      p
\	        WW#V
4      p\
        P                  ! W±4      w  rÍWl,          pV^,           VR&   VR;;,          VR,          ,          uu&   VR;;,          VR,          ,          uu&   Kµ  	  VRV p\        V4      VR&   \        R V 4       4      VR&   VR,          R,          VR&   Wg3# )	uÆ   å‡ºé¢˜ â†’ **ç¡®å®šæ€§æ•°å€¼æ ¸éªŒ** â†’ ä¸�å¤Ÿå°±å†�è¡¥ä¸€è½®ã€‚è¿”å›ž (é€šè¿‡çš„é¢˜, ç»Ÿè®¡)ã€‚

å¤šè¦�ä¸€äº›å†�ç­›ï¼ˆæ ¸éªŒä¼šæ¯™æŽ‰ä¸€éƒ¨åˆ†ï¼‰ï¼Œæ¯”"è¦�å‡ é�“å‡ºå‡ é�“"æ›´å®¹æ˜“ä¸€æ¬¡å‡‘å¤Ÿã€‚
rë   rì   rê   rí   ÚroundsNc              3   óV   "  € T F  qP                  R 4      '       g   K  ^x € K!  	  R# 5i)rê   N)r&   r¨   s   & r	   ro   Úgen_verified.<locals>.<genexpr>.  s   é € Ð@¡d ¯e©e°J×.?Ÿ1š1£dùs   ‚)Ÿ
)rî   )Úrangeru   rR   rS   rf   rð   Úfilter_itemsr»   )r   r^   r_   r`   r•   r  rô   Ústatre   ÚneedÚaskr¿   ÚokÚsts   &&&&&&        r	   Úgen_verifiedr    s  € ð
 �f˜a ¨A¨z¸1¸iÈÈXÐWXÐYˆ$Ü�6Ž]ˆØ”c˜$“iÕˆØ�1Œ9Ùô �"”c˜$ �( D¨1¥HÓ-Ó.ˆÜ˜$ t°CÓ8ˆÜ×(Ò(¨Ó4‰ˆØ�
ˆØ˜Q�ˆˆX‰ØˆY�˜2˜i�=Õ(‹ØˆY�˜2˜i�=Õ(�ñ ð ��ˆ;€DÜ�t“9€Dˆ�LÜÑ@¡dÓ@Ó@€DˆÑØ˜9•o bÕ)€Dˆ�OØˆ:Ðr   c                   óV  a a€ ] tR tRt oV 3R ltV 3R ltR.tR tR tR t	R t
R	 tR
 tR tR tR tR tR tRt]P(                  ! R]P*                  4      t]R 4       t]R 4       t]R 4       t]R 4       tR tR tR tR t R t!R t"R t#R t$R t%R t&R t'R#R  lt(R! t)R"t*Vt+V ;t,# )$ÚHandleri3  c                ó  <€ V P                   P                  R 4      ^ ,          pVP                  R4      '       g   VR8X  d   V P                  RR4       M)VP	                  R4      '       d   V P                  RR4       \
        SV `  4        R# )Ú?z.htmlrÐ   úCache-Controlz#no-cache, no-store, must-revalidatez/zj_assets/z#public, max-age=31536000, immutableN)ÚpathÚsplitÚendswithÚsend_headerr   ÚsuperÚend_headers)ÚselfrÓ   Ú	__class__s   & €r	   r  ÚHandler.end_headers4  sm   ø€ ð �I‰I�O‰O˜CÓ  Õ#ˆØ�:‰:�g×Ò ! s¤(Ø×Ñ˜_Ð.SÕTØ�\‰\˜-×(Ò(à×Ñ˜_Ð.SÔTÜ‰ÑÖr   c                ó  <€ V P                   R 8X  d–   T P                  RRR\        RR\        \        4      R\        \
        4      R\        \
        4      R\        \
        4      R	\        \
        4      R
\        \        4      ;'       d    \        /R\        '       d   RMRRR/4      # V P                   P                  R4      '       d   V P                  4       # V P                   P                  R4      '       d   V P                  4       # V P                   P                  R4      '       d   V P                  4       # V P                   P                  R4      '       d   V P                  4       # V P                   P                  R4      '       d   V P                  4       # V P                   P                  R4      '       d   V P                  4       # V P                   P                  R4      '       d   V P                  4       # V P                   P                  R4      '       d   V P!                  4       # V P                   P                  R4      '       d   V P                  4       # ^ RIHp V! V P                   P'                  R4      4      pVP                  R4      '       da   \(        P                   P+                  \(        P                   P-                  \.        V4      4      '       g   V P1                  V4      '       d   R# \2        SV `i  4       # )z/api/versionr  TÚbuildÚsourcesÚgenrù   ÚvariantsÚcomposeÚ	ai_figureÚxkwÚxkw_off_reasonr   u9   å­¦ç§‘ç½‘æŽ¥å�£èµ„æº�åŒ…å·²ç”¨å°½ï¼ˆ402ï¼‰ï¼Œæš‚æ—¶ä¸‹çº¿Úxkw_olympiadz/api/topic/filesz/api/topic/pdfz
/api/topicz	/api/pagez/api/sourcez/api/paper/previewz/api/paper/filesz
/api/paper)ÚunquoterÐ   u
   åŽŸä¹¦é¡µ/N)r  Ú_jsonÚBUILDr¹   Ú
gen_routerrZ   Úxkw_similarÚXKW_ENABLEDr   Ú_topic_filesÚ
_topic_pdfÚ_topic_previewÚ_serve_page_pngÚ_serve_unit_sourceÚ_paper_previewÚ_paper_filesÚ_serve_paper_fileÚurllib.parser&  ÚlstripÚosÚexistsrr   ÚHEREÚ_serve_source_pager  Údo_GET)r  r&  Úrelr  s   &  €r	   r:  ÚHandler.do_GET?  sB  ø€ Ø�9‰9˜Ô&Ø—:‘:˜t T¨7´Eà(¨5´$´zÓ2BÀDÌ$ÌsË)ÐU_ÔaeÔfiÓajØ+4´d¼3³iØ+6¼¼S»	Ø+0´$´{Ó2C×2SÐ2SÌð+Uð  0·{³{±Ø1lð
  .¨tð5ó 6ð 6ð �9‰9×ÑÐ 2×3Ò3Ø×$Ñ$Ó&Ð&Ø�9‰9×ÑÐ 0×1Ò1Ø—?‘?Ó$Ð$Ø�9‰9×Ñ ×-Ò-Ø×&Ñ&Ó(Ð(Ø�9‰9×Ñ ×,Ò,Ø×'Ñ'Ó)Ð)Ø�9‰9×Ñ ×.Ò.Ø×*Ñ*Ó,Ð,Ø�9‰9×ÑÐ 4×5Ò5Ø×&Ñ&Ó(Ð(Ø�9‰9×ÑÐ 2×3Ò3Ø×$Ñ$Ó&Ð&Ø�9‰9×Ñ ×-Ò-Ø×)Ñ)Ó+Ð+Ø�9‰9×Ñ ×,Ò,Ø×'Ñ'Ó)Ð)å(Ù�d—i‘i×&Ñ& sÓ+Ó,ˆØ�>‰>˜,×'Ò'´·±·±¼r¿w¹w¿|¹|ÌDÐRUÓ?V×0WÒ0WØ×&Ñ& s×+Ò+ÙÜ‰w‰~ÓÐr   Nc                ó&  € V P                   ^ ,          fÚ   / pR	 FÃ  p\        P                  P                  \        P                  P	                  \
        VRRRR4      4      p\        P                  P                  V4      '       g   Ko   \        P                  ! \        VRR7      4       F.  pYAVP                  R4      ;'       g    RP                  4       &   K0  	   M	  WP                   ^ &   V P                   ^ ,          #   \         d     L2i ; i)
uS   {ä¸“é¢˜æ ‡é¢˜: {key, docx, book}}ï¼Œæ�¥è‡ª æ•°å­¦å­¦ä¹ ç³»ç»Ÿ/data/v2/units.jsonã€‚õ   æ•°å­¦å­¦ä¹ ç³»ç»ŸrI   Úv2ú
units.jsonrC   ©ÚencodingÚtitler   ©ú..z../..Ú.)Ú_units_cacher6  r  Únormpathrr   r8  r7  r!   r\   Úopenr&   r   r#   )r  ÚidxÚuprÓ   Úus   &    r	   Ú_unitsÚHandler._unitsk  sã   € à×Ñ˜QÕÒ'ØˆCÛ*�Ü—G‘G×$Ñ$¤R§W¡W§\¡\Ü˜"Ð2°F¸DÀ,ó&Pó Q�ä—7‘7—>‘> !×$Ô$ðÜ!%§¢¬4°¸GÔ+DÖ!E˜AØBC §¡ w£×!5Ð!5°2× <Ñ <Ó >Ó?ñ "Fñ ñ +ð $'×Ñ˜aÑ Ø× Ñ  Õ#Ð#øô	 %ô Ùðús   Â
<DÃDÄDÄDc           
     óv  aaa€ ^ RI HpHpHpHp V! V! V P
                  4      P                  4      pT! VP                  R4      ;'       g    R.^ ,          4      P                  4       pVP                  R4      ;'       g    R.^ ,          pV P                  4       P                  V4      oS'       d?   \        P
                  P                  SP                  R4      ;'       g    R4      '       g   V P                  RRRR	/R
4      # SR,          pVR8w  dÉ   \        VR4      P                  4       p	V P                  ^È4       V P!                  RR4       V P!                  RRV! \        P
                  P#                  V4      4      ,           4       V P!                  R\%        \'        V	4      4      4       V P)                  4        V P*                  P-                  V	4      # ^ RIp
^ RI Ho RpR  FŽ  p\        P
                  P3                  \        P
                  P5                  \6        TRRR4      4      p\        P
                  P                  \        P
                  P5                  TR4      4      '       g   KŒ  Tp M	  T'       dL   \9        T
P/                  \        P
                  P5                  T;'       g    RRSR,          R4      4      4      M. oS'       g   T P                  RRRR/R
4      # RP5                  TTT3R lS 4       4      pRSR,          SR,          \'        S4      S! T4      T3,          P;                  R4      pT P                  ^È4       T P!                  RR4       T P!                  R\%        \'        T4      4      4       T P)                  4        T P*                  P-                  T4      # )!u›   /api/source?title=<ä¸“é¢˜æ ‡é¢˜>[&fmt=pdf]
fmt çœ�ç•¥ â†’ åŽŸ docxï¼ˆæµ�è§ˆå™¨ç›´æŽ¥ä¸‹è½½ï¼‰ï¼›fmt=pdf â†’ è½¬ PDF å†…è�”é¢„è§ˆï¼ˆè½¬æ�¢ç»“æžœç¼“å­˜ï¼‰ã€‚©ÚurlparseÚparse_qsr&  ÚquoterC  r   ÚfmtÚdocxr  FÚerroru   æœªæ‰¾åˆ°è¯¥ä¸“é¢˜çš„æº�æ–‡ä»¶é”  ÚpdfÚrbrD   úGapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentúContent-Dispositionúattachment; filename*=UTF-8''úContent-LengthN©rS  r>  rI   r?  r@  Úpagesr�   zp*.pngu'   è¯¥ä¸“é¢˜æ²¡æœ‰å·²æ¸²æŸ“çš„åŽŸä¹¦é¡µå›¾c              3   ó"  <"  € T F„  pR S! SR,          4      S! \         P                  P                  V4      4      \         P                  P                  V4      ^R P                  R4      ;'       g    R\	        S4      3,          x € K†  	  R# 5i)z_<figure><img loading="lazy" src="/api/page?u=%s&p=%s"><figcaption>%s / %d</figcaption></figure>r�   Ú0Ú1Néüÿÿÿ)r6  r  Úbasenamer5  ru   )rk   ÚfÚ_qÚpngsrL  s   & €€€r	   ro   Ú-Handler._serve_unit_source.<locals>.<genexpr>ž  s�   øé € ð ñ �ð nÙ�!�E•(‹|™R¤§¡× 0Ñ 0°Ó 3Ó4´b·g±g×6FÑ6FÀqÓ6IÈ!ÈBÐ6O×6VÑ6VÐWZÓ6[×6bÐ6bÐ_bÔdgÐhlÓdmÐn÷oò oãùs   ƒA/BÁ3Bu`  <!doctype html><meta charset="utf-8"><title>%s</title><style>body{margin:0;background:#1a1c1f;color:#c8cdd4;font:14px/1.6 -apple-system,sans-serif}header{position:sticky;top:0;background:#23262b;padding:10px 16px;border-bottom:1px solid #333;z-index:9}header a{color:#8ab4f8;text-decoration:none;margin-left:14px}figure{margin:14px auto;max-width:1000px;text-align:center}img{width:100%%;border-radius:6px;box-shadow:0 2px 12px #0007;background:#fff}figcaption{color:#7b8794;font-size:12px;padding:4px}</style><header><b>%s</b> Â· å…± %d é¡µ<a href="/api/source?title=%s">â¬‡ ä¸‹è½½åŽŸå§‹ docx</a></header>%srC   útext/html; charset=utf-8rD  )r4  rQ  rR  r&  rS  r  Úqueryr&   r   rM  r6  r7  r'  rI  ÚreadÚsend_responser  rd  r)   ru   r  ÚwfileÚwriteÚglobÚdirnamerH  rr   r8  ÚsortedrY   )r  rQ  rR  r&  rS  ÚqsrC  rT  ÚsrcrI   Ú_globÚV2rK  r-   ÚimgsÚhtmlrf  rg  rL  s   &               @@@r	   r0  ÚHandler._serve_unit_source|  sî  ú€ ÷ 	DÓCÙ‘h˜tŸy™yÓ)×/Ñ/Ó0ˆÙ˜Ÿ™ ›×0Ð0¨R¨D°!Õ4Ó5×;Ñ;Ó=ˆØ�v‰v�e‹}×$Ð$   aÕ(ˆØ�K‰K‹M×Ñ˜eÓ$ˆßœŸ™Ÿ™ q§u¡u¨V£}×':Ð':¸×;Ò;Ø—:‘:˜t U¨GÐ5UÐVÐX[Ó\Ð\Ø��iˆØ�%Œ<Ü˜˜T“?×'Ñ'Ó)ˆDØ×Ñ˜sÔ#Ø×Ñ˜^ð .Xô Yà×ÑÐ2Ø<¹uÄRÇWÁW×EUÑEUÐVYÓEZÓ?[Õ[ô]à×ÑÐ-¬s´3°t³9«~Ô>Ø×ÑÔØ—:‘:×#Ñ# DÓ)Ð)ó 	Ý,ØGKˆÛ&ˆBÜ—7‘7×#Ñ#¤B§G¡G§L¡L´°rÐ;OÐQWÐY]Ó$^Ó_ˆDÜ�w‰w�~‰~œbŸg™gŸl™l¨4°Ó>×?Ô?Ø�™5ñ '÷ []Œv�e—j‘j¤§¡§¡¨b¯h¨h°B¸ÀÀ5ÅÈ8Ó!TÓUÔVÐbdˆßØ—:‘:˜t U¨GÐ5^Ð_ÐadÓeÐeØ�w‰wö ñ óó ˆðuð �W•:˜q �z¬3¨t«9±b¸³iÀÐFõG÷ IOÉÈwËð 	ð 	×Ñ˜3ÔØ×Ñ˜Ð)CÔDØ×ÑÐ)¬3¬s°4«y«>Ô:Ø×ÑÔØ�z‰z×Ñ Ó%Ð%r   c                ó  € ^ RI HpHpHp V! V! V P                  4      P
                  4      pT! VP                  R4      ;'       g    R.^ ,          4      T! VP                  R4      ;'       g    R.^ ,          4      T! VP                  R4      ;'       g    R.^ ,          4      T! VP                  R4      ;'       g    R.^ ,          4      P                  R4       Uu. uF  qU'       g   K  VNK  	  upT! VP                  R4      ;'       g    R.^ ,          4      T! VP                  R	4      ;'       g    R.^ ,          4      ;'       g    R
T! VP                  R4      ;'       g    R.^ ,          4      ;'       g    R
3# u upi )é    ©rQ  rR  r&  r‡   r   rÃ   rŸ   ÚpgÚ|rs  r?   Nrž   )r4  rQ  rR  r&  r  rj  r&   r  )r  rQ  rR  r&  Úqr©   s   &     r	   Ú_topic_argsÚHandler._topic_args²  s7  € ß<Ñ<Ù‘X˜dŸi™iÓ(×.Ñ.Ó/ˆÙ˜Ÿ™˜t›×,Ð,¨¨¨aÕ0Ó1±7¸A¿E¹EÀ#»J×<NÐ<NÈ2È$ÐPQÕ;RÓ3SÙ˜Ÿ™˜t›×,Ð,¨¨¨aÕ0Ó1Ù# Q§U¡U¨4£[×%8Ð%8°R°D¸!Õ$<Ó=×CÑCÀCÔHÓNÑH�qËA—�ÑHÑNÙ˜Ÿ™˜u›×-Ð-¨"¨¨qÕ1Ó2Ù˜Ÿ™˜v›×.Ð.¨2¨$°Õ2Ó3×;Ð;°tÙ˜Ÿ™˜w›×/Ð/¨B¨4°Õ3Ó4×<Ð<¸ð>ð 	>ùâNs   Ã	F
Ã-F
c                ó  €  ^ RI pT P                  4       w  r#rErgp. p	TP	                  Y#T4       Fœ  p
T	P                  RT
R,          ;'       g    T
P                  R4      ;'       g    RRT
P                  RR4      R	\        P                  P                  T
R
,          4      ^,          P                  R4      P                  4       /4       Kž  	  T P                  RRRT	/4      #   \         d    T P                  RRR. /4      u # i ; i)u  /api/topic/files?tb=&g=&cd= â†’ è¿™ä¸ªä¸“é¢˜**å®žé™…æœ‰å“ªå‡ ä»½**æº�æ–‡ä»¶ã€‚

âš  å�„æ•™æ��ä»½æ•°å’Œè½´éƒ½ä¸�ä¸€æ ·ï¼Œä¸�èƒ½åœ¨å‰�ç«¯å†™æ­»ä¸¤è¡Œï¼š
    åˆ�ä¸­åŸ¹ä¼˜è®²ä¹‰  å­¦ç”Ÿç‰ˆ / æ•™å¸ˆç‰ˆ          ï¼ˆè§’è‰²è½´ï¼‰
    èƒ¡å°�ç¾¤        è®²ä¹‰ / è¯¾å�Ž / è¯¾å�Žç­”æ¡ˆ    ï¼ˆèµ„æ–™è½´ Ã— è§’è‰²è½´ï¼Œ**3 ä»½**ï¼‰
    ä¸€è¯¾ä¸€ç»ƒ      æœ¬è¯¾ / å…¨å†Œç­”æ¡ˆ
    åŠ¨è„‘ç­‹Â·ä¸¾ä¸€å��ä¸‰ ä¸“é¢˜ / æ•´å†Œç­”æ¡ˆ
è¸©è¿‡ï¼šå…ˆå‰�æŒ‰ã€Œå­¦ç”Ÿç‰ˆ/æ•™å¸ˆç‰ˆã€�å†™æ­»ä¸¤è¡Œï¼Œèƒ¡å°�ç¾¤ 120 ä¸ªä¸“é¢˜çš„**è¯¾å�Žä¹ é¢˜å¤Ÿä¸�ç�€**ã€‚
Nr  FÚfilesrž   r?   u	   æº�æ–‡ä»¶õ	   å­¦ç”Ÿç‰ˆÚextr  rF  T)Útopic_sourcer#   r'  r  Ú
precut_allr(   r&   r6  r  Úsplitextr5  Úlower)r  ÚTSr‡   rÃ   rŸ   ÚpgsÚshr?   rž   r.   Úhs   &          r	   r,  ÚHandler._topic_files¼  sô   € ð	:Û%ð +/×*:Ñ*:Ó*<Ñ'ˆˆr˜ %ØˆØ—‘˜r bÖ)ˆAØ�J‰J˜  7¥×!KÐ!K¨q¯u©u°V«}×!KÐ!KÀØ §¡ f¨kÓ :ØœrŸw™w×/Ñ/°°&µ	Ó:¸1Õ=×DÑDÀSÓI×OÑOÓQðSö Tñ *ð �z‰z˜4  w°Ð4Ó5Ð5øô ô 	:Ø—:‘:˜t U¨G°RÐ8Ó9Ò9ð	:ús   ‚C$ Ã$ DÄDc                óú  aaaaa€ ^ RI Ho  ^ RIpT P                  4       w  oooor#pTP                  SSST4      pRpTP                  SSSY#T4      pT'       d   TP                  TST4      pMÃT'       d!   TP                  R4      '       d
   TR,          pT'       g%   TP                  S4      pT'       d
   TR,          M. pT'       gh   T'       d`   TP                  R	4      '       dI   TR	,          ^ ,          '       d3   TR	,          w  ršpTP                  Yš;'       g    ^T;'       g    ^ 4      pT'       Eg   T'       g    T'       dì   TP                  R	4      '       dÕ   R
S! S4      : RS! S4      : RS! S4      : RS! T4      : RS! RP                  S4      4      : R2pRS: RS: RT: R2P                  R4      pT P                  ^È4       T P                  RR4       T P                  R\!        \#        T4      4      4       T P%                  4        T P&                  P)                  T4      # T P	                  RRRR/R4      # RpTP+                  SSS4      p\#        T4      ^8”  d!   RP                  TTTTT3R lT 4       4      pM’T'       d   TP                  R4      '       g0   S'       g(   T'       d   TP                  R	4      '       g	   T'       dE   R
S! S4      : RS! S4      : RS! S4      : RS! T4      : RS! RP                  S4      4      : R2pRP                  T3R lT 4       4      pR SSS\#        T4      YÏ3,          P                  R4      pT P                  ^È4       T P                  RR4       T P                  R\!        \#        T4      4      4       T P%                  4        T P&                  P)                  T4      #   \         d    T P	                  RRRR/R4      u # i ; i)!uM   /api/topic?tb=&g=&cd=&pg=a|b|c â†’ è¯¥ä¸“é¢˜æ‰€æœ‰é¡µå›¾çš„æ»šåŠ¨é¢„è§ˆé¡µã€‚r^  Nr  FrV  õ   topic_source æœªå°±ç»ªéô  r_  rX  ú<a href="/api/topic/pdf?tb=ú&g=ú&cd=ú&src=ú&pg=r}  u   ">â¬‡ ä¸‹è½½æœ¬ä¸“é¢˜ PDF</a>z,<!doctype html><meta charset="utf-8"><title>zÀ</title><style>body{margin:0;background:#1a1c1f;color:#c8cdd4;font:15px/1.8 -apple-system,PingFang SC,sans-serif;padding:60px 24px;text-align:center}a{color:#8ab4f8;font-size:16px}</style><h2>u\   </h2><p style="color:#7b8794">è¿™ä¸ªä¸“é¢˜çš„æº�æ–‡ä»¶æ˜¯ PDFï¼Œæ²¡æœ‰é¢„æ¸²æŸ“é¡µå›¾</p><p>z</p>rC   rD   ri  r]  u$   è¯¥ä¸“é¢˜æ²¡æœ‰å�¯ç”¨çš„åŽŸä¹¦é¡µå›¾rW  r   c              3   óä   <"  € T Fe  pR S! S4      : RS! S4      : RS! S4      : RS! VR,          4      : RS! RP                  S4      4      : RVR,          ;'       g    R: R	2x € Kg  	  R
# 5i)r‘  r’  r“  r”  rž   r•  r}  u   ">â¬‡ ä¸‹è½½u	   æœ¬ä¸“é¢˜z</a>N)rr   )rk   ÚarŸ   rÃ   rŠ  rS  r‡   s   & €€€€€r	   ro   Ú)Handler._topic_preview.<locals>.<genexpr>  s\   øé € ð \áVZÑQRñ " "žI¡u¨Q¦x±°r¶¹EÀ!ÀGÅ*Ö<MÙ! #§(¡(¨3£-Ö0°!°Gµ*×2KÐ2KÀÒ2KõMãVZùs   ƒAA0Á!A0rU  u   ">â¬‡ ä¸‹è½½æœ¬ä¸“é¢˜</a>c              3   óÄ   <"  € T FU  pR S! \         P                  P                  V\        4      4      : R\         P                  P	                  V4      : R2x € KW  	  R# 5i©z-<figure><img loading="lazy" src="/api/page?f=z"><figcaption>z</figcaption></figure>N©r6  r  Úrelpathr8  rd  ©rk   re  rS  s   & €r	   ro   r˜    óA   øé € ð UáNSÉ‰u”R—W‘W—_‘_ Q¬Ó-Ö.´·±×0@Ñ0@ÀÖ0CõEÛNSùó   ƒAA u<  <!doctype html><meta charset="utf-8"><title>%s</title><style>body{margin:0;background:#1a1c1f;color:#c8cdd4;font:14px/1.6 -apple-system,PingFang SC,sans-serif}header{position:sticky;top:0;background:#23262b;padding:10px 16px;border-bottom:1px solid #333;z-index:9}header a{color:#8ab4f8;text-decoration:none;margin-left:16px}figure{margin:14px auto;max-width:1040px;text-align:center}img{width:100%%;border-radius:6px;box-shadow:0 2px 12px #0007;background:#fff}figcaption{color:#7b8794;font-size:12px;padding:3px}</style><header><b>%s</b> Â· %s Â· å…± %d é¡µ%s</header>%s)r4  rS  r…  r#   r'  r  ÚlocateÚprecutÚprecut_pagesr&   Úlocate_by_questionsÚrender_pdf_pagesrr   rY   rl  r  r)   ru   r  rm  rn  r†  )r  r‰  r‹  r?   rž   Úlocr‚  Úpcre   Úsrc0Úlo0Úhi0Údlrw  ÚaltsÚfigsrŸ   rÃ   rŠ  rS  r‡   s   &               @@@@@r	   r.  ÚHandler._topic_previewÒ  sE  ü€ å&ð	UÛ%ð +/×*:Ñ*:Ó*<Ñ'ˆˆAˆr�3˜ %Ø�i‰i˜˜A˜r 2Ó&ˆØˆà�Y‰Y�r˜1˜b "¨EÓ2ˆßð —O‘O B¨¨SÓ1‰Eç�s—w‘w˜w×'Ò'Ø˜G��ßØ×*Ñ*¨3Ó/�ß&'˜˜'ž
¨R�ßŸS S§W¡W¨U§^¢^¸¸E½
À1¿¼ð "% U¥‘�˜3Ø×+Ñ+¨D·(°(¸¸C¿H¸HÀ1ÓE�ßˆuç—c˜cŸg™g eŸnšnøá˜rž¡E¨!¦H©e°B®i¹¸r¾ÁEÈ#Ï(É(ÐSVË-ÖDXðZ‘ó (*«2«rð3÷
 5;±F¸7³Oð ð ×"Ñ" 3Ô'Ø× Ñ  Ð1KÔLØ× Ñ Ð!1´3´s¸4³y³>ÔBØ× Ñ Ô"Ø—z‘z×'Ñ'¨Ó-Ð-Ø—:‘:˜t U¨GÐ5[Ð\Ð^aÓbÐbØˆØ�}‰}˜R  BÓ'ˆÜˆt‹9�qŒ=à—‘÷ \ð \áVZó\ó \‰B÷ �c—g‘g˜f—o’o¯#·#¸#¿'¹'À%¿.º.ÏTøá˜2–Y¡ a¦©%°®)±U¸2¶YÁÀcÇhÁhÈsÃmÖ@TðVˆBà�w‰wô UáNSóUó Uˆð	Eð �r˜1œc %›j¨"Ð3õ
4÷ 6<±V¸G³_ð 	ð 	×Ñ˜3ÔØ×Ñ˜Ð)CÔDØ×ÑÐ)¬3¬s°4«y«>Ô:Ø×ÑÔØ�z‰z×Ñ Ó%Ð%øôO ô 	UØ—:‘:˜t U¨GÐ5MÐNÐPSÓTÒTð	Uús   �O Ï!O:Ï9O:c                óì  € ^ RI Hp  ^ RIpT P                  4       w  r4rVrxp	TP                  Y4YWY‰4      p
T
'       Ed   \        P                  P                  T
R,          4      ^,          P                  4       pTR	8X  d   R
MRpT
P                  R4      ;'       g    RpRT9   g   RT9   dU   \        P                  ! RRT
P                  R4      ;'       g    R RT 24      P                  R4      R,          T,           pM:\        P                  ! RRT4      R,          T'       d   RT 2MR,           T,           pT P                  T
R,          YÎ4      # TP!                  Y4YW4      pT'       d‚   TP                  R4      '       dk   \        P                  P#                  TR,          4      '       d?   T P                  TR,          R
\        P                  P%                  TR,          4      4      # R;p;ppT'       d%   TP                  R4      '       d   TR,          w  pppT'       g    TP'                  T4      pT'       d   Tw  pppT'       g   T P	                  RRRR/R4      # T'       g1   T P                  TR\        P                  P%                  T4      4      # \        P                  P)                  \*        R4      p\        P,                  ! TRR7       \.        P0                  ! T RT RT 2P3                  4       4      P5                  4       R,          p\        P                  P)                  TTR,           4      p\        P                  P#                  T4      '       g1   TP7                  TTTT4      '       g   T P	                  RRRR/R4      # \        P                  ! RRT4      R,          R,           pT P                  TRT4      #   \         d    T P	                  RRRR/R4      u # i ; i) ug   /api/topic/pdf?... â†’ åˆ�ä¸­ç»™ docxï¼›å…¶ä½™ç”¨ qpdf ä»Žæ•´æœ¬åˆ‡å‡ºè¯¥ä¸“é¢˜é¡µèŒƒå›´ï¼ˆç¼“å­˜ï¼‰ã€‚r^  Nr  FrV  r�  r�  r  ú.docxrZ  úapplication/pdfrž   r   u   å…¨å†Œu   æ•´å†Œz[/\\:*?"<>|]Ú_Úbookô   Â·râ   rU  rX  u%   è¯¥æ•™æ��æš‚æ— å�¯åˆ‡åˆ†çš„æ•´æœ¬ PDFrW  z.cache_topicT)Úexist_okr}  rû   ú.pdfu   PDF åˆ‡åˆ†å¤±è´¥)r4  rS  r…  r#   r'  r  r¡  r6  r  r‡  rˆ  r&   r   r   r   Ú
_send_filer   r7  rd  Úfallback_pdfrr   r8  Úmakedirsrý   rþ   rY   rÿ   Úcut_pdf)r  rS  r‰  r‡   rÃ   rŸ   rŠ  r‹  r?   rž   r¦  r„  ÚctypeÚtagÚnamer¥  rs  ÚloÚhiÚfbÚcacheÚsigr.   s   &                      r	   r-  ÚHandler._topic_pdf   s4  € å&ð	UÛ%ð +/×*:Ñ*:Ó*<Ñ'ˆˆr˜ %à�Y‰Y�r˜b dÓ2ˆßˆ2Ü—'‘'×"Ñ" 2 f¥:Ó.¨qÕ1×7Ñ7Ó9ˆCà˜wœñ _Ø,=ð ð
 —&‘&˜“/×'Ð' RˆCØ˜3Œ (¨c¤/Ü—v’v˜o¨s°r·v±v¸f³~×7KÐ7KÈÐ6LÈBÈsÈeÐ4TÓU×[Ñ[Ð\`ÓaÐbeÕfÐilÕl‘ä—v’v˜o¨s°BÓ7¸Õ<ÏcÀ"ÀSÀEÁ
ÐWYÕZÐ]`Õ`�Ø—?‘? 2 f¥:¨uÓ;Ð;Ø�i‰i˜˜rÓ&ˆß�3—7‘7˜6—?’?¤r§w¡w§~¡~°c¸&µk×'BÒ'BØ—?‘? 3 v¥;ð 1Nä#%§7¡7×#3Ñ#3°C¸µKÓ#@óBð Bð ÐˆÐˆb�2ß�3—7‘7˜5—>’>Ø˜e�*‰KˆC��RßØ—‘ Ó%ˆBßØ ‘��R˜ßØ—:‘:˜t U¨GÐ5\Ð]Ð_bÓcÐcßØ—?‘? 3Ð(9¼2¿7¹7×;KÑ;KÈCÓ;PÓQÐQÜ—‘—‘œT >Ó2ˆÜ
�Š�E DÕ)Ü�kŠk˜S˜E  2 $ a¨ tÐ,×3Ñ3Ó5Ó6×@Ñ@ÓBÀ3ÕGˆÜ�g‰g�l‰l˜5 #¨¥,Ó/ˆÜ�w‰w�~‰~˜c×"Ò"¨2¯:©:°c¸2¸rÀ3×+GÒ+GØ—:‘:˜t U¨GÐ5GÐHÈ#ÓNÐNÜ�vŠv�o s¨BÓ/°Õ4°vÕ=ˆØ�‰˜sÐ$5°tÓ<Ð<øôU ô 	UØ—:‘:˜t U¨GÐ5MÐNÐPSÓTÒTð	Uús   ˆO Ï!O3Ï2O3c                ód  € ^ RI Hp \        VR4      P                  4       pV P	                  ^È4       V P                  RV4       V P                  RRV! V4      ,           4       V P                  R\        \        V4      4      4       V P                  4        V P                  P                  V4      # )rz  r^  rY  rD   r[  r\  r]  )r4  rS  rI  rk  rl  r  r)   ru   r  rm  rn  )r  r  rº  r¼  rS  rI   s   &&&&  r	   r¶  ÚHandler._send_fileQ  s�   € Ý&Ü�D˜$Ó×$Ñ$Ó&ˆØ×Ñ˜3ÔØ×Ñ˜¨Ô/Ø×ÑÐ.Ø8¹5À»;ÕFô	Hà×ÑÐ)¬3¬s°4«y«>Ô:Ø×ÑÔØ�z‰z×Ñ Ó%Ð%r   c           
     óæ  a€ ^ RI HpHpHp V! V! V P                  4      P
                  4      pT! VP                  R4      ;'       g    R.^ ,          4      p\        P                  P                  \        P                  P                  \        V4      4      o\        P                  P                  \        P                  P                  \        R4      4      \        P                  P                  \        P                  P                  \        R4      4      \        P                  P                  \        P                  P                  \        RR4      4      \        P                  P                  \        P                  P                  \        RR4      4      .pSP                  4       P                  R4      '       df   \        ;QJ d    V3R
 lV 4       F  '       g   K   RM	  RM! V3R
 lV 4       4      '       d&   \        P                  P                  S4      '       g   V P                  RRRR/R4      # \!        SR4      P#                  4       pV P%                  ^È4       T P'                  RSP                  R	4      '       d   RMR4       V P'                  RR4       V P'                  R\)        \+        V4      4      4       V P-                  4        V P.                  P1                  V4      # )u�   /api/page?f=<ç›¸å¯¹ ç»„å�·ç³»ç»Ÿ/ çš„é¡µå›¾è·¯å¾„> â€”â€” ä¾›ä¸“é¢˜é¢„è§ˆå†…è�”é¡µå›¾ã€‚
å�ªå…�è®¸æŒ‡å�‘å·²çŸ¥é¡µå›¾ç›®å½•ï¼Œé˜²ç›®å½•ç©¿è¶Šã€‚r{  re  r   u	   åŽŸä¹¦é¡µz.cache_pagesrE  õ   æˆ�æžœr>  ú.pngc              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5irÒ   )r   )rk   re   Úfps   & €r	   ro   Ú*Handler._serve_page_png.<locals>.<genexpr>i  s   øé € Ð;±(¨Q˜Ÿ™ a×(Ð(³(ùs   ƒ!TFr  rV  z	not foundrW  rY  rD   ú	image/pngz
image/jpegr  úmax-age=86400r]  )rÇ  z.jpgz.jpeg)r4  rQ  rR  r&  r  rj  r&   r6  rH  rr   r8  rˆ  r  Úanyr7  r'  rI  rk  rl  r  r)   ru   r  rm  rn  )	r  rQ  rR  r&  r~  r;  Úok_rootsrI   rÉ  s	   &       @r	   r/  ÚHandler._serve_page_png\  sí  ø€ ÷ 	=Ñ<Ù‘X˜dŸi™iÓ(×.Ñ.Ó/ˆÙ�q—u‘u˜S“z×)Ð) b T¨1Õ-Ó.ˆÜ�W‰W×ÑœbŸg™gŸl™l¬4°Ó5Ó6ˆÜ—G‘G×$Ñ$¤R§W¡W§\¡\´$¸Ó%DÓEä—G‘G×$Ñ$¤R§W¡W§\¡\´$¸Ó%GÓHÜ—G‘G×$Ñ$¤R§W¡W§\¡\´$¸¸hÓ%GÓHÜ—G‘G×$Ñ$¤R§W¡W§\¡\´$¸Ð>RÓ%SÓTð	Vˆð
 —‘“
×#Ñ#Ð$=×>Ò>ß“CÔ;±(Ó;—C—C’CÔ;±(Ó;×;Ò;ÄÇÁÇÁÈr×@RÒ@RØ—:‘:˜t U¨G°[ÐAÀ3ÓGÐGÜ�B˜‹~×"Ñ"Ó$ˆØ×Ñ˜3ÔØ×Ñ˜¸¿¹ÀF×8KÒ8K©ÐQ]Ô^Ø×Ñ˜¨/Ô:Ø×ÑÐ)¬3¬s°4«y«>Ô:Ø×ÑÔØ�z‰z×Ñ Ó%Ð%r   c                óB  € \         P                  ! R V4      pV'       d}   RRRRRRRRR	R
RR/p\        P                  P	                  \
        RRRW2P                  ^4      ,          RR\        VP                  ^4      4      ,          4      pV P                  V4      # \         P                  ! RV4      pV'       d¨   / 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/R0bR1R2bR3R4bR5R6/Cp\        P                  P	                  \
        RRR7WeP                  ^4      ,          RR\        VP                  ^4      4      ,          4      pV P                  V4      # \         P                  ! R8V4      pV'       g   R9# R:R;R<R=/pR>R?R@RARBRCRDRERFRGRHRI/p\        P                  P	                  \
        RRWuP                  ^4      ,          W…P                  ^4      ,          RJ,           RR\        VP                  ^4      4      ,          4      pV P                  V4      # )KuB   åŽŸä¹¦é¡µ/xsl/(xsl6a|xsl6b|xsl7a|xsl7b|xsl8a|xsl8b)/p0*(\d+)\.png$Úxsl6au   å…­å¹´çº§ä¸Šç¬¬ä¸‰ç‰ˆÚxsl6bu   å…­å¹´çº§ä¸‹ç¬¬ä¸‰ç‰ˆÚxsl7au   ä¸ƒå¹´çº§ä¸Šç¬¬ä¸‰ç‰ˆÚxsl7bu   ä¸ƒå¹´çº§ä¸‹ç¬¬ä¸‰ç‰ˆÚxsl8au   å…«å¹´çº§ä¸Šç¬¬ä¸‰ç‰ˆÚxsl8bu   å…«å¹´çº§ä¸‹ç¬¬ä¸‰ç‰ˆrE  rÆ  u   æ–°æ€�è·¯é¢˜åº“r_  z	p%03d.pngu\   åŽŸä¹¦é¡µ/ykl/(1sz|1s|2sz|2s|3s|3sz|3x|3xz|4s|4sz|4x|4xz|5s|5sz|5x|5xz|6s|8s)/p0*(\d+)\.png$Ú1su   ä¸€å¹´çº§ä¸Šæ™®é€š2024ç§‹Ú1szu   ä¸€å¹´çº§ä¸Šå¢žå¼º2024ç§‹Ú2su   äºŒå¹´çº§ä¸Šæ™®é€šÚ2szu   äºŒå¹´çº§ä¸Šå¢žå¼ºÚ3su   ä¸‰å¹´çº§ä¸ŠÚ3szu   ä¸‰å¹´çº§ä¸Šå¢žå¼º2022ç§‹Ú3xu   ä¸‰å¹´çº§ä¸‹æ™®é€š2022ç§‹Ú3xzu   ä¸‰å¹´çº§ä¸‹å¢žå¼º2022ç§‹Ú4su   å››å¹´çº§ä¸Šæ™®é€š2026ç§‹Ú4szu   å››å¹´çº§ä¸Šå¢žå¼º2026ç§‹Ú4xu   å››å¹´çº§ä¸‹æ™®é€š2023æ˜¥Ú4xzu   å››å¹´çº§ä¸‹å¢žå¼º2023æ˜¥Ú5su   äº”å¹´çº§ä¸Šæ™®é€š2026ç§‹Ú5szu   äº”å¹´çº§ä¸Šå¢žå¼º2026ç§‹Ú5xu   äº”å¹´çº§ä¸‹æ™®é€š2023æ˜¥Ú5xzu   äº”å¹´çº§ä¸‹å¢žå¼º2023æ˜¥Ú6su   å…­å¹´çº§ä¸Šæ™®é€š2024ç§‹Ú8su   å…«å¹´çº§ä¸Šæ™®é€š2025ç§‹u   ä¸€è¯¾ä¸€ç»ƒé¢˜åº“u*   åŽŸä¹¦é¡µ/(dnj|jyf)/([1-6])/p0*(\d+)\.jpg$FÚdnju   åŠ¨è„‘ç­‹é¢˜åº“Újyfu   ä¸¾ä¸€å��ä¸‰é¢˜åº“rb  u   ä¸€Ú2u   äºŒÚ3u   ä¸‰Ú4u   å››Ú5u   äº”Ú6u   å…­u   å¹´çº§)	r   Úmatchr6  r  rr   r8  r   rP   Ú	_send_png)	r  r;  ÚmxÚXSLDÚpngr   ÚYKLDÚTBMÚGCs	   &&       r	   r9  ÚHandler._serve_source_pages  s  € ô �XŠXÐ[Ð]`ÓaˆßØÐ4°gÐ?VÐX_ÐaxØÐ4°gÐ?VÐX_ÐaxðzˆDä—'‘'—,‘,œt T¨8Ð5FÈÏXÉXÐVWË[ÕHYØ&¨´c¸"¿(¹(À1»+Ó6FÕ(FóHˆCà—>‘> #Ó&Ð&Ü�HŠHÐtÐvyÓzˆßð	7�DÐ5ð 	7°uÐ>Yð 	7ØÐ.ð	7Ø05Ð7Kð	7à˜.ð	7à*/Ð1Lð	7ð Ð5ð	7ð 8=Ð>Yð	7ð Ð5ð		7ð 8=Ð>Yð		7ð
 Ð5ð	7ð
 8=Ð>Yð	7ð Ð5ð	7ð 8=Ð>Yð	7ð Ð5ð	7ð 8=Ð>Yð	7ð Ð5ð	7ð Ð5ñ	7ˆDô —'‘'—,‘,œt T¨8Ð5IÈ4×PWÑPWÐXYÓPZÕK[Ø&¨´c¸!¿'¹'À!»*³oÕ(EóGˆCà—>‘> #Ó&Ð&ä�HŠHÐBÀCÓHˆßÙØÐ'¨Ð0DÐEˆØ�5˜#˜u c¨5°#°u¸cÀ5È#ÈuÐUˆÜ�g‰g�l‰lœ4  x°·W±W¸Q³ZµÀ"ÇWÁWÈQÃZÅ.ÐS[ÕB[Ø" K´#°a·g±g¸a³j³/Õ$AóCˆà�~‰~˜cÓ"Ð"r   c                ó�  € \         P                  P                  V4      '       g   R # \        VR4      P	                  4       pV P                  ^È4       V P                  RR4       V P                  R\        \        V4      4      4       V P                  RR4       V P                  4        V P                  P                  V4       R# )FrY  rD   rË  r]  r  rÌ  T)r6  r  r7  rI  rk  rl  r  r)   ru   r  rm  rn  )r  rô  rI   s   && r	   rñ  ÚHandler._send_png–  s”   € Ü�w‰w�~‰~˜c×"Ò"ÙÜ�C˜‹×#Ñ#Ó%ˆØ×Ñ˜3ÔØ×Ñ˜¨Ô5Ø×ÑÐ)¬3¬s°4«y«>Ô:Ø×Ñ˜¨/Ô:Ø×ÑÔØ�
‰
×Ñ˜ÔÙr   c                óö  € V P                   R 8X  d   V P                  4       # V P                   R8X  d   V P                  4       # V P                   R8X  d   V P                  4       # V P                   R8X  d   V P	                  4       # V P                   R8X  d   V P                  4       # V P                   R8X  d   V P                  4       # V P                   R8X  d   V P                  4       # V P                  R4       R# )	z/api/composez/api/similarz/api/similar_batchz/api/layoutz/api/export_docxz/api/reportz/api/openwordrW  N)	r  Ú_do_composeÚ_do_similarÚ_do_similar_batchÚ
_do_layoutÚ_do_export_docxÚ
_do_reportÚ_do_openwordÚ
send_error)r  s   &r	   Údo_POSTÚHandler.do_POST¢  sÉ   € Ø�9‰9˜Ô&Ø×#Ñ#Ó%Ð%Ø�9‰9˜Ô&Ø×#Ñ#Ó%Ð%Ø�9‰9Ð,Ô,Ø×)Ñ)Ó+Ð+Ø�9‰9˜Ô%Ø—?‘?Ó$Ð$Ø�9‰9Ð*Ô*Ø×'Ñ'Ó)Ð)Ø�9‰9˜Ô%Ø—?‘?Ó$Ð$Ø�9‰9˜Ô'Ø×$Ñ$Ó&Ð&Ø�‰˜Ör   uÎ   ï¼ˆåŽŸå�·ç‰ˆï¼‰|ï¼ˆè§£æž�ç‰ˆï¼‰|ï¼ˆåŽŸå�·ï¼‰|ï¼ˆè§£æž�ï¼‰|è§£æž�ç‰ˆ|åŽŸå�·ç‰ˆ|ï¼ˆè€ƒè¯•ç‰ˆ[^ï¼‰]*ï¼‰|ï¼ˆå…¨è§£å…¨æž�ï¼‰|ï¼ˆå�‚è€ƒç­”æ¡ˆï¼‰|ï¼ˆå­¦ç”Ÿç‰ˆï¼‰|ï¼ˆæ•™å¸ˆç‰ˆï¼‰|\s*-\s*å‰¯æœ¬|\.docx$|\.doc$|\.pdf$c                óž   € V P                   P                  R \        P                  ! RR V4      4      P                  4       P	                  4       # )r   õ   ^ç²¾å“�è§£æž�[ï¼š:]\s*)Ú_VER_REr   r   r   rˆ  )Úclsr¼  s   &&r	   Ú_paper_normÚHandler._paper_norm¼  s7   € à�{‰{�‰˜r¤2§6¢6Ð*CÀRÈÓ#NÓO×UÑUÓW×]Ñ]Ó_Ð_r   c                ó²   € \         P                  ! R RV 4      p\         P                  ! RV4      '       d   R# \         P                  ! RV4      '       d   R# R# )r  r   u   è§£æž�|å…¨è§£|ç­”æ¡ˆ|æ•™å¸ˆç‰ˆu$   åŽŸå�·|è€ƒè¯•ç‰ˆ|è¯•é¢˜ç‰ˆ|å­¦ç”Ÿç‰ˆ)u	   è§£æž�ç‰ˆu	   æ•™å¸ˆç‰ˆ)u	   åŽŸå�·ç‰ˆrƒ  )õ   åŽŸä»¶rƒ  )r   r   r   )r¼  r‘   s   & r	   Ú_paper_roleÚHandler._paper_roleÀ  sK   € ä�FŠFÐ,¨b°$Ó7ˆÜ�9Š9Ð6¸×:Ò:Ø+Ð+Ü�9Š9Ð<¸a×@Ò@Ø+Ð+Ø$Ð$r   c                ó.  a€ V P                   e   V P                   # / p \        P                  P                  \        P                  P	                  \
        RRR4      4      p\        P                  P                  \        P                  P	                  \
        RRRRR4      4      .p\        P                  P                  \        P                  P	                  \
        RRRR4      4      p\        P                  P                  V4      '       dm   T\        \        P                  ! V4      4       Uu. uF;  pVP                  R	4      '       g   K  \        P                  P	                  WE4      NK=  	  up,          p\        P                  P                  \        P                  P	                  \
        RRRR4      4      p\        P                  P                  V4      '       d±   T\        \        P                  ! V4      4       Uu. uF  pVP                  R
4      '       g   K  \        P                  P                  \        P                  P	                  We4      4      '       g   K`  \        P                  P	                  We4      NK�  	  up,          p/ pV EFº  o\        P                  P                  \        P                  P	                  SR4      4      '       g   KI  V3R lpV! R4       U	u/ uF  q™R,          V	bK  	  p
p	V! R4       EF@  pVP                  R4      ;'       g    . pV'       d   V
P                  V^ ,          4      MR p	V	'       g   KK  \        P                  P                  \        P                  P	                  W)R,          4      4      pVP                  V\        P                  ,           4      '       d&   \        P                  P                  V4      '       g   Ká  \        P                  P                  V4      pWç9  d*    \        R \        P                  ! V4       4       4      W~&   V P                  \        P                  P!                  V4      4      p. pW~,           F·  p\        P                  P	                  VV4      pVV8w  d   V P                  V4      V8w  d   KB  V P#                  V4      w  ppVP%                  RVRVRVRVR\        P                  P'                  V4      ^,          P)                  R4      P+                  4       RVV8H  /4       K¹  	  VP-                  R R7       VWR,          &   EKC  	  EK½  	  Wn         V# u upi u upi u up	i   \         d	    . Y~&    ELDi ; i  \.         d     L:i ; i)NrE  u   æº�é¢˜æ–‡ä»¶u   ä¸­è€ƒä¸€æ¨¡äºŒæ¨¡çœŸé¢˜r>  rI   ÚdraftsÚbatch_exams_finalÚapprovedÚ	cn_exams_Úbatch_school_zexam_papers.jsonlc                 ó¬   <€ \        \        P                  P                  SV 4      R R7       Uu. uF  p\        P
                  ! V4      NK  	  up# u upi )rC   rA  )rI  r6  r  rr   r!   r"   )re  r©   rÉ   s   & €r	   r
   Ú&Handler._paper_index.<locals>.<lambda>ä  sD   ø€ Ü#¤B§G¡G§L¡L°°qÓ$9ÀGÕLóNÙLð 23œtŸzšz¨!ž}ÙLòNùò Ns   ¯Azsource_documents.jsonlÚexternal_idÚsource_document_idsÚoriginal_relpathc              3   ó¦   "  € T FG  pVP                  R4      '       d   K  VP                  4       P                  R4      '       g   KC  Vx € KI  	  R# 5i)rF  N)rF  z~$)ú.docr¯  rµ  )r   rˆ  r  )rk   re  s   & r	   ro   Ú'Handler._paper_index.<locals>.<genexpr>ó  s>   é € ð 0_¹>°aØ78·|±|ÀK×7Pô 12à01·±³	×0BÑ0BÐC\×0]÷ 12²»>ùs   ‚A "AÁ
Ar  rž   r?   r¼  r„  rF  Úmainc                 ór   € V R ,          R8g  V R,          R8H  V R,          R8H  V R,          '       * V R,          3# )r?   rƒ  r„  rX  rž   r  r  r¼  rj   )r©   s   &r	   r
   r    s<   € ¨a°­i¸;Ñ.FÈÈ%ÍÐTYÑHYØ./°­j¸HÑ.DÈ!ÈFÍ)ÄmÐUVÐW]ÕU^ñ.`r   r�   )Ú_PAPERSr6  r  Úabspathrr   r8  Úisdirrq  Úlistdirr   r7  r&   Úseprp  ÚOSErrorr
  rd  r  r(   r‡  r5  rˆ  Úsortr#   )r	  rJ  ÚrootÚbasesÚ_apÚdÚ_drÚ_lsdirÚLre   rs  rÓ   ÚsidsrÉ  Údpr�   r‚  re  r~  Úlabr?   rÉ   s   &                    @r	   Ú_paper_indexÚHandler._paper_indexÉ  s9  ø€ à�;‰;Ò"Ø—;‘;ÐØˆð9	Ü—7‘7—?‘?¤2§7¡7§<¡<Ü�d˜NÐ,Fó$Hó IˆDô —W‘W—_‘_¤R§W¡W§\¡\Ü�dÐ0°&¸(ÐDWó&Yó Zð [ˆEä—'‘'—/‘/¤"§'¡'§,¡,Ü�dÐ0°&¸*ó#Fó GˆCä�w‰w�}‰}˜S×!Ò!Ø¼¼r¿zºzÈ#»Ô8Oó 8Ñ8O°1ØŸ\™\¨+×6ô /œ"Ÿ'™'Ÿ,™, sÖ.Ñ8Oñ 8õ 8�ô —'‘'—/‘/¤"§'¡'§,¡,Ü�dÐ0°&¸(ó#Dó EˆCä�w‰w�}‰}˜S×!Ò!Ø¼¼r¿zºzÈ#»Ô8Oó dÑ8O°1ØŸ\™\¨/×:ô /Ü?A¿w¹w¿}¹}ÌRÏWÉWÏ\É\ÐZ]ÓMa×?bô /œ"Ÿ'™'Ÿ,™, sÖ.Ñ8Oñ dõ d�àˆFÜ�Ü—w‘w—~‘~¤b§g¡g§l¡l°4Ð9LÓ&M×NÒNÙôN�á45Ð6NÔ4OÓPÑ4O¨q˜Õ'¨Ò*Ñ4O�ÐPÙÐ.×/�AØŸ5™5Ð!6Ó7×=Ð=¸2�Dß,0˜Ÿ™  Q¥Ô(°d�AßÙ ÜŸ™Ÿ™¬¯©¯©°dÐ>PÕ<QÓ)RÓS�BàŸM™M¨$´·±­-×8Ò8¼R¿W¹W¿^¹^ÈB×=OÒ=OÙ ÜŸ™Ÿ™¨Ó,�BØÔ'ð,Ü)/ñ 0_¼2¿:º:Àb¼>ó 0_ó *_˜F™Jð
 Ÿ/™/¬"¯'©'×*:Ñ*:¸2Ó*>Ó?�CØ�EØ#ŸZ˜Z˜ÜŸG™GŸL™L¨¨QÓ/˜Ø œ7 s§¡°qÓ'9¸SÔ'@Ù$Ø$'§O¡O°AÓ$6™	˜˜TØŸ™ f¨a°¸#¸vÀtØ&,¨a°¼¿¹×8HÑ8HÈÓ8KÈAÕ8N×8UÑ8UÐVYÓ8Z×8`Ñ8`Ó8bØ&,¨a°2©gð&7ö 8ñ (ð —J‘Jñ $`�Jô aà,1�C˜-Õ(Ô)ô= 0ñ ðN ŒØˆ
ùòc8ùòdùò Qøô   'ô ,Ø)+˜FœJð,ûô  ô 	Ùð	úsš   ŸC1V Ä"V Ä3U!Å#U!Å4A1V Ç&"V ÈU&È&?U&É*#U&ÊA&V Ë3U+Ì%V Ì+
V Ì6!V ÍBV Ï.'V Ð(U0Ð>DV Õ!V Õ0VÕ?V ÖVÖV ÖVÖVc                ó
  € V P                  4       P                  V4      ;'       g    . p \        T;'       g    ^ 4      p^ Tu;8:  d   \        V4      8  d   M MW2,          R,          # R#   \        \        3 d    ^ p LAi ; i)rz  r  N)r1  r&   rP   rº   r¸   ru   )r	  Úpidrl   r‚  s   &&& r	   Ú_paper_pickÚHandler._paper_pick  sv   € à× Ñ Ó"×&Ñ& sÓ+×1Ð1¨rˆð	Ü�A—F�F˜“ˆAð $%¨Ö#6¬C°«J×#6ˆu�x˜ÕÐ@¸DÐ@øô œ:Ð&ô 	ØŠAð	ús   «A, ¹A, Á,BÂBc                ór  € ^ RI HpHpHp V! V! V P                  4      P
                  4      pT! VP                  R4      ;'       g    R.^ ,          4      P                  4       pV P                  4       P                  V4      ;'       g    . p. / r‡\        V4       Fº  w  rš\        P                  P                  V
R,          4      ^ ,          P                  4       pVP                  V4      pVf.   RV
R,          RV
R,          RRRR/pWÈV&   VP                  V4       V
R	,          R8X  d   VR,          ^ 8  d   WœR&   K¤  K¦  VR,          ^ 8  g   K¶  WœR&   K¼  	  T P                  R
RR\        V4       U	U
u. uF-  w  ršRV	RV
R,          RV
R,          R	V
R	,          RV
R,          /NK/  	  up
p	RV/4      # u up
p	i )u€   /api/paper/files?pid=<å�·id> â†’ è¿™ä»½å�·å®žé™…æœ‰å“ªå‡ ä»½æº�ä»¶ï¼ˆåŽŸå�·ç‰ˆ/è§£æž�ç‰ˆ/â€¦ï¼‰ï¼Œå‰�ç«¯æœ‰å‡ ä»½æ¸²æŸ“å‡ è¡Œã€‚r{  r4  r   r¼  rž   r?   rU  rX  r„  r  Tr‚  rl   rœ   rµ   )r4  rQ  rR  r&  r  rj  r&   r   r1  rs   r6  r‡  rˆ  r(   r'  )r  rQ  rR  r&  r~  r4  r‚  rœ   Úseenrl   re  r   rÃ   s   &            r	   r2  ÚHandler._paper_files  s’  € ç<Ñ<Ù‘X˜dŸi™iÓ(×.Ñ.Ó/ˆÙ�q—u‘u˜U“|×+Ð+¨ t¨QÕ/Ó0×6Ñ6Ó8ˆØ×!Ñ!Ó#×'Ñ'¨Ó,×2Ð2°ˆð ˜2�Ü˜eÖ$‰DˆAÜ—7‘7×#Ñ# A f¥IÓ.¨qÕ1×7Ñ7Ó9ˆDØ—‘˜“ˆAØŠyØ˜a �j¨&°!°Fµ)¸VÀRÈÐPRÐS�Ø�T‘
 §¡¨aÔ 0Ø��x˜5Ô Ø�U•8˜a”<¨A 5£‘<Ø�6•˜Q–Ø�&“	ñ %ð �z‰z˜4  wä! %Ô(ô1*á(‘�ð �!�W˜a �j¨&°!°Fµ)¸UÀAÀeÅHÈfÐVWÐX^ÕV_Ó`Ù(ò1*à+3°Vð=ó >ð 	>ùó 1*s   Å53F3c           
     ó*  a€ ^ RI HpHpHpHo  ^ RIpT! T! T P                  4      P                  4      pT! TP                  R4      ;'       g    R	.^ ,          4      P                  4       pTP                  R
4      ;'       g    R.^ ,          pT P                  Yg4      pT'       d&   TP                  4       P                  R4      '       g   T P                  RRRR/R4      #  TP                  T^^ 4      p	T	'       g   T P                  RRRR/R4      # \"        P                  P%                  \"        P                  P'                  T4      4      ^ ,          pRS! T4      : RS! \!        T4      4      : R2pR	P)                  T3R lT	 4       4      pRY»\+        T	4      YÍ3,          P-                  R4      pT P/                  ^È4       T P1                  RR4       T P1                  R\!        \+        T4      4      4       T P3                  4        T P4                  P7                  T4      #   \         d    T P                  RRRR/R4      u # i ; i  \         d8   p
T P                  RRRR\!        T
4      R,          ,          /R4      u Rp
?
# Rp
?
ii ; i)uR  /api/paper/preview?pid=&i= â†’ è¯¥ä»½ PDF çš„é€�é¡µé¡µå›¾é¢„è§ˆï¼ˆä¸Žæ•™æ��ç±» /api/topic å�Œä¸€å¥—é¡µé�¢ï¼‰ã€‚
é¡µå›¾ç”¨ poppler pdftoppm çŽ°æ¸²ï¼ˆ0.15 ç§’/é¡µï¼ŒæŒ‰æº�è·¯å¾„+mtime ç¼“å­˜åœ¨ .cache_pages/ï¼‰ï¼Œ**ä¸�ç»� LibreOffice**ï¼š
PDF æœ¬èº«æ˜¯ WPS ä»Ž doc/docx åŽŸä»¶è½¬å‡ºçš„ï¼ˆ2026-09-09 æ‰¹é‡� 4,315 ä»½ï¼‰ï¼Œå…¬å¼�/å›¾ä¿�çœŸã€‚rP  Nr  FrV  r�  r�  r4  r   rl   ra  rµ  u1   è¿™ä»½ä¸�æ˜¯ PDFï¼Œæ— æ³•é¢„è§ˆï¼›è¯·ä¸‹è½½åŽŸä»¶rW  u   é¡µå›¾æ¸²æŸ“å¤±è´¥ï¼š%sºNéx   Nu   é¡µå›¾æ¸²æŸ“ä¸ºç©ºz<a href="/api/paper?pid=z&i=u   ">â¬‡ ä¸‹è½½ PDF</a>c              3   óÄ   <"  € T FU  pR S! \         P                  P                  V\        4      4      : R\         P                  P	                  V4      : R2x € KW  	  R# 5irš  r›  r�  s   & €r	   ro   Ú)Handler._paper_preview.<locals>.<genexpr>B  rž  rŸ  u6  <!doctype html><meta charset="utf-8"><title>%s</title><style>body{margin:0;background:#1a1c1f;color:#c8cdd4;font:14px/1.6 -apple-system,PingFang SC,sans-serif}header{position:sticky;top:0;background:#23262b;padding:10px 16px;border-bottom:1px solid #333;z-index:9}header a{color:#8ab4f8;text-decoration:none;margin-left:16px}figure{margin:14px auto;max-width:1040px;text-align:center}img{width:100%%;border-radius:6px;box-shadow:0 2px 12px #0007;background:#fff}figcaption{color:#7b8794;font-size:12px;padding:3px}</style><header><b>%s</b> Â· å…± %d é¡µ%s</header>%srC   rD   ri  r]  )r4  rQ  rR  r&  rS  r…  r#   r'  r  rj  r&   r   r5  rˆ  r  r¤  r)   r6  r‡  rd  rr   ru   rY   rl  r  r  rm  rn  )r  rQ  rR  r&  r‰  r~  r4  rl   rs  r‚  ÚerC  rª  r¬  rw  rS  s   &              @r	   r1  ÚHandler._paper_preview+  sL  ø€ ÷ 	DÓCð	UÛ%ñ ‘X˜dŸi™iÓ(×.Ñ.Ó/ˆÙ�q—u‘u˜U“|×+Ð+¨ t¨QÕ/Ó0×6Ñ6Ó8ˆØ�U‰U�3‹Z× Ð ˜C˜5 !Õ$ˆØ×Ñ˜sÓ&ˆß˜#Ÿ)™)›+×.Ñ.¨v×6Ò6Ø—:‘:˜t U¨GÐ5hÐiÐknÓoÐoð	eØ×'Ñ'¨¨Q°Ó2ˆE÷ Ø—:‘:˜t U¨GÐ5IÐJÈCÓPÐPÜ—‘× Ñ ¤§¡×!1Ñ!1°#Ó!6Ó7¸Õ:‰ÙFKÈCÆjÑRWÔX[Ð\]ÓX^ÖR_Ð`ˆØ�w‰wô UáNSóUó Uˆð	?ð ¤ U£¨RÐ6õ
7÷ 9?¹¸w»ð 	ð 	×Ñ˜3ÔØ×Ñ˜Ð)CÔDØ×ÑÐ)¬3¬s°4«y«>Ô:Ø×ÑÔØ�z‰z×Ñ Ó%Ð%øôE ô 	UØ—:‘:˜t U¨GÐ5MÐNÐPSÓTÒTð	Uûô ô 	eØ—:‘:˜t U¨GÐ5NÔQTÐUVÓQWÐX\ÕQ]Õ5]Ð^Ð`cÓdÕdûð	eús/   �H) Ã$I È)!IÉIÉJÉ,JÊJÊJc           	     óŒ  € ^ RI HpHpHpHp V! V! V P
                  4      P                  4      pT! VP                  R4      ;'       g    R.^ ,          4      P                  4       pT P                  YeP                  R4      ;'       g    R.^ ,          4      pV'       g   V P                  RRRR	/R
4      # \        VR4      P                  4       p\        P
                  P                  V4      ^,          P                  4       p	V P!                  ^È4       T P#                  RV	R8X  d   RM
V	R8X  d   RMR4       V P#                  RRV! \        P
                  P%                  V4      4      ,           4       V P#                  R\'        \)        V4      4      4       V P+                  4        V P,                  P/                  V4       R# )uÄ  /api/paper?pid=<å�·id> â†’ ä¸‹è½½è¿™ä»½ä¸­è€ƒåŽŸå�·çš„**åŽŸå§‹æ–‡ä»¶**ã€‚

âš  æ•…æ„�**ä¸�å�š PDF é¢„è§ˆ**ã€‚data/work/src_pdf é‡Œé‚£ 608 ä»½æ˜¯å®¡æ ¸æœŸ
  LibreOffice è½¬çš„ï¼ŒMathType/WMF å…¬å¼�åœ¨å®ƒæ‰‹é‡Œä¼šç¼ºç¬”ç”»ç”šè‡³æ•´å�—ä¸¢
  ï¼ˆ269 å�·æº�æ–‡ä»¶è¿˜æ˜¯è€� .docï¼Œæ›´æ‚¬ï¼‰ã€‚è€�å¸ˆçœ‹åˆ°çš„åº”è¯¥æ˜¯åŽŸä»¶ï¼Œ
  ä¸�æ˜¯æˆ‘ä»¬çš„è½¬æ�¢äº§ç‰© â€”â€” æ‰€ä»¥å�ªç»™ã€ŒWPS æ‰“å¼€ã€�å’Œã€Œä¸‹è½½åŽŸä»¶ã€�ä¸¤æ�¡è·¯ï¼Œ
  ä¸¤æ�¡éƒ½ä¸�ç»�ä»»ä½•è½¬æ�¢ã€‚
rP  r4  r   rl   ra  r  FrV  õ$   è¿™é�“é¢˜æ²¡æœ‰å¯¹åº”çš„åŽŸå�·æ–‡ä»¶rW  rY  rD   r  zapplication/mswordrµ  r°  rZ  r[  r\  r]  N)r4  rQ  rR  r&  rS  r  rj  r&   r   r5  r'  rI  rk  r6  r‡  rˆ  rl  r  rd  r)   ru   r  rm  rn  )
r  rQ  rR  r&  rS  r~  r4  rÉ  rI   r„  s
   &         r	   r3  ÚHandler._serve_paper_fileV  sh  € ÷ 	DÓCÙ‘X˜dŸi™iÓ(×.Ñ.Ó/ˆÙ�q—u‘u˜U“|×+Ð+¨ t¨QÕ/Ó0×6Ñ6Ó8ˆØ×Ñ˜c§E¡E¨#£J×$7Ð$7°3°%¸Õ#;Ó<ˆßØ—:‘:˜t U¨GÐ5[Ð\Ð^aÓbÐbÜ�B˜‹~×"Ñ"Ó$ˆÜ�g‰g×Ñ˜rÓ" 1Õ%×+Ñ+Ó-ˆØ×Ñ˜3ÔØ×Ñ˜ÀÈÄÑ)=Ø36¸&´=Ñ/ð:ô	;ð 	×ÑÐ.Ø8¹5ÄÇÁ×AQÑAQÐRTÓAUÓ;VÕVô	Xà×ÑÐ)¬3¬s°4«y«>Ô:Ø×ÑÔØ�
‰
×Ñ˜Ör   c           	     óê  €  V P                  4       pT P                  VP                  R4      ;'       g    RVP                  R4      4      pV'       g   V P                  RRRR/R4      # \        P
                  ! R	V.4       V P                  RR
R\        P                  P                  V4      /4       R#   \         d2   pT P                  RRR\        T4      R,          /R4        Rp?R# Rp?ii ; i)uŒ  ç”¨ç³»ç»Ÿé»˜è®¤ç¨‹åº�ï¼ˆWPS/Wordï¼‰æ‰“å¼€è¿™é�“é¢˜æ‰€åœ¨çš„åŽŸå�·ã€‚

âš  å�ªæŽ¥å�—**å�· id**ï¼Œè·¯å¾„åœ¨æœ�åŠ¡ç«¯è§£æž� â€”â€” å‰�ç«¯ä¼ è·¯å¾„ç­‰äºŽæŠŠ
  ã€Œæ‰“å¼€ä»»æ„�æ–‡ä»¶ã€�çš„èƒ½åŠ›äº¤ç»™é¡µé�¢ã€‚
âš  åŽŸå�·å¾ˆå¤šæ˜¯ã€Œè¯•å�·å�Šç­”æ¡ˆã€�ç‰ˆï¼Œ**å¸¦ç­”æ¡ˆ**ã€‚è¿™æ˜¯æœ¬åœ°è€�å¸ˆå·¥ä½�çš„åŠŸèƒ½ï¼›
  å…¬ç½‘éƒ¨ç½²æ²¡æœ‰è¿™ä¸ªå�Žç«¯ï¼ŒæŒ‰é’®ä¼šæ��ç¤ºã€Œéœ€è¦�æœ¬åœ°åŠ©æ‰‹ã€�ï¼Œä¸�ä¼šæ³„æ¼�ã€‚
r4  r   rl   r  FrV  rB  rW  rI  Tr¼  ºNi,  Nr�  N)Ú
_read_bodyr5  r&   r'  Ú
subprocessÚPopenr6  r  rd  r#   r)   )r  ÚbodyrÉ  r?  s   &   r	   r  ÚHandler._do_openwordr  sÇ   € ð	BØ—?‘?Ó$ˆDØ×!Ñ! $§(¡(¨5£/×"7Ð"7°R¸¿¹À#»ÓGˆBßØ—z‘z 4¨°Ð9_Ð"`ÐbeÓfÐfÜ×Ò˜f b˜\Ô*Ø�J‰J˜˜d F¬B¯G©G×,<Ñ,<¸RÓ,@ÐAÖBøÜô 	BØ�J‰J˜˜e W¬c°!«f°T­lÐ;¸S×AÒAûð	Bús)   ‚2B6 µB6 ÁB6 Á*A
B6 Â6C2Ã&C-Ã-C2c           	     óŒ  €  ^ RI pV P                  4       pVP                  R4      '       g   V P                  RRRR/R4      # VP                   P	                  4       P                  RR	7      VR
&   \        \        P                  P                  \        R4      RRR7      ;_uu_ 4       pVP                  \        P                  ! VRR7      R,           4       RRR4       V P                  RR/4       R#   + '       g   i     L%; i  \         d2   pT P                  RRR\        T4      R,          /R4        Rp?R# Rp?ii ; i)rz  NÚidr  FrV  u   ç¼º idé�  Úseconds)ÚtimespecÚtsu   é—®é¢˜æŠ¥å‘Š.jsonlr—  rC   rA  ©Úensure_asciirh   TrE  r�  )ÚdatetimerF  r&   r'  ÚnowÚ	isoformatrI  r6  r  rr   r8  rn  r!   rX   r#   r)   )r  rS  rI  re  r?  s   &    r	   r  ÚHandler._do_report„  s÷   € ð
	BÛØ—?‘?Ó$ˆDØ—8‘8˜D—>’>Ø—z‘z 4¨°¸Ð"BÀCÓHÐHØ!×*Ñ*×.Ñ.Ó0×:Ñ:ÀIÐ:ÓNˆD�‰JÜ”b—g‘g—l‘l¤4Ð)=Ó>ÀÈg×VÕVÐZ[Ø—‘œŸ
š
 4°eÔ<¸tÕCÔD÷ Wà�J‰J˜˜d�|Ö$÷ W×Vûô ô 	BØ�J‰J˜˜e W¬c°!«f°T­lÐ;¸S×AÒAûð	Bús;   ‚*D ­D ÁA%D Â(/C4ÃD Ã4D	Ã?D ÄEÄ&D>Ä>Ec                ón  €  ^ RI pV P                  4       pVP                  R4      ;'       g    . pVP                  R^4      pVP                  R4      p\        VP                  R4      4      p. pVP	                  W5V4       F­  w  r‰r«\        V	4       F˜  w  rÍVP                  V4      w  rïTP                  RTRV\        V	4      ^,
          8X  d   T
MRR	VR	8H  R
VP                  P                  WáP                  4      R\        V4      ;'       d    V\        V	4      ^,
          8H  /4       Kš  	  K¯  	  T P                  RRRVP                  RV'       d   \        VP                  V4      ^4      M^ RV/4      #   \         d1   pT P                  RRR\!        T4      R,          /R4      u Rp?# Rp?ii ; i)u“  ç‰ˆå¼�å†³ç­–æŽ¥å�£ï¼šå‰�ç«¯æŠŠè¯•å�·ç¯®å�‘è¿‡æ�¥ï¼Œå�Žç«¯å›žæ¯�é�“é¢˜è¯¥æ€Žä¹ˆæŽ’ã€‚

ä¸ºä»€ä¹ˆè¦�æœ‰è¿™ä¸ªæŽ¥å�£ï¼šå‰�ç«¯åŽŸæœ¬è‡ªå·±æœ‰ä¸€å¥—æŽ’ç‰ˆé€»è¾‘ï¼ˆLAY è¡¨ + isShortCalcï¼‰ï¼Œ
æ³¨é‡Šå†™ç�€ã€Œä¸Žå�Žç«¯ export_lib.LAYOUT ä¸€è‡´ã€�ï¼Œä½†å�Žç«¯æ”¹æˆ�ä¸ƒç±»é¢˜åž‹ä¹‹å�Žå°±æ¼‚äº†â€”â€”
**é¢„è§ˆæ˜¾ç¤ºçš„æ˜¯æ—§ç‰ˆå¼�ã€�ä¸‹è½½çš„æ˜¯æ–°ç‰ˆå¼�ï¼Œè€�å¸ˆçœ‹åˆ°çš„å’Œæ‹¿åˆ°çš„ä¸�æ˜¯ä¸€å›žäº‹**ã€‚

ä¸Žå…¶åœ¨ JS é‡ŒæŠŠä¸ƒç±»é€»è¾‘å†�å®žçŽ°ä¸€é��ï¼ˆé‚£æ³¨å®šä¼šå†�æ¬¡æ¼‚ç§»ï¼Œè¿™æ¬¡å°±æ˜¯è¿™ä¹ˆæ¼‚çš„ï¼‰ï¼Œ
ä¸�å¦‚è®©**å�Žç«¯ç®—ã€�å‰�ç«¯ç”»**ï¼šç‰ˆå¼�å†³ç­–å�ªæœ‰ä¸€å¤„å®žçŽ°ï¼Œå‰�ç«¯é€€åŒ–æˆ�æ‰§è¡Œè€…ã€‚

å…¥å�‚å�Œ export_docxï¼ˆitems + space + colsï¼‰ï¼Œå‡ºå�‚æ¯�é¢˜ä¸€æ�¡ï¼š
    kind      é¢˜åž‹ï¼ˆchoice/fill/calc/vform/solve/sub/draw/draw_onï¼‰
    blank_cm  è¿™é¢˜å�Žé�¢ç•™å¤šé«˜çš„ä¹¦å†™ç©ºç™½
    pair      æ˜¯å�¦ä¸Žä¸‹ä¸€é¢˜å¹¶æŽ’æˆ�ä¸€è¡Œ
    fig_cm    è¿™é¢˜çš„å›¾é™�å®½
å�¦é™„ gap_cmï¼ˆæ�’å®šé¢˜é—´è·�ï¼‰ã€‚
Nr   ÚspaceÚbandsÚcolsr×   Úblank_cmg        ÚpairÚfig_cmÚpage_break_afterr  TÚgap_cmÚband_cmFrV  rE  r�  )Ú
export_librF  r&   r¹   Ú
plan_bandsrs   Úclassifyr(   ru   ÚFIG_CM_BY_TYPEÚFIG_CMr'  ÚGAP_CMr¼   Úband_heightr#   r)   )r  ÚErI  r   rX  rY  rZ  r.   r×   Úgrpr[  ÚbrkrŒ   r/   r   Úhas_figr?  s   &                r	   rÿ  ÚHandler._do_layout’  s…  € ð"	IÛ"Ø—?‘?Ó$ˆDØ—H‘H˜WÓ%×+Ð+¨ˆEØ—H‘H˜W aÓ(ˆEØ—H‘H˜WÓ%ˆEÜ˜Ÿ™ Ó(Ó)ˆDð ˆCØ,-¯L©L¸ÀuÖ,MÑ(�˜8Ü& sž^‘E�AØ!"§¡¨B£‘J�AØ—J‘JØ Ø"°´S¸³XÀµ\Ô0A¡HÀsØ ¨¡Ø  !×"2Ñ"2×"6Ñ"6°q¿(¹(Ó"CØ*¬D°«I×,KÐ,K¸!¼sÀ3»xÈ!½|Ñ:Kð ö ó ,ñ -Nð —:‘:˜t T¨8°Q·X±XØ(ÏE¬%°·±¸eÓ0DÀaÔ*HÐWXØ&¨ð-ó .ð .øô ô 	IØ—:‘:˜t U¨G´S¸³V¸Dµ\ÐBÀCÓHÕHûð	Iús0   ‚+E9 ®C!E9 ÄAE9 Å#E9 Å9F4Æ%F/Æ)F4Æ/F4c           	     ó¾  €  ^ RI p^ RIpV P                  4       pVP                  R4      '       g   V P	                  RRRR/R4      # VP                  V4      pVP                  R4      ;'       g    R	R
,           pV P                  ^È4       V P                  RR4       V P                  RRVP                  P                  V4      ,           4       V P                  R\        \        V4      4      4       V P                  4        V P                  P                  V4       R#   \         d2   pT P	                  RRR\        T4      R,          /R4        Rp?R# Rp?ii ; i)rz  Nr   r  FrV  u   è¯•å�·ç¯®ä¸ºç©ºrM  rC  u   ä¸“é¢˜u   ä¸“é¢˜ç»ƒä¹ .docxrD   rZ  r[  r\  r]  rE  r�  )ra  r4  rF  r&   r'  Úbuild_paper_docxrl  r  ÚparserS  r)   ru   r  rm  rn  r#   )r  ra  rU   rI  rI   Úfnr?  s   &      r	   r   ÚHandler._do_export_docx½  s!  € ð	Bß+Ø—?‘?Ó$ˆDØ—H‘H˜W×%Ò%Ø—z‘z 4¨°Ð9JÐ"KÈSÓQÐQØ×.Ñ.¨tÓ4ˆDØ—8‘8˜GÓ$×0Ð0¨Ð4GÕGˆBØ×Ñ˜sÔ#Ø×Ñ˜^Ð-vÔwØ×ÑÐ2Ð4SÐV\×VbÑVb×VhÑVhÐikÓVlÕ4lÔmØ×ÑÐ-¬s´3°t³9«~Ô>Ø×ÑÔØ�J‰J×Ñ˜TÖ"øÜô 	BØ�J‰J˜˜e W¬c°!«f°T­lÐ;¸S×AÒAûð	Bús)   ‚.D  ±D  Á(D  Á0B.D  Ä EÄ+&EÅEc                ó¾   € \        V P                  P                  R ^ 4      4      p\        P                  ! V P
                  P                  V4      ;'       g    R4      # )r]  s   {})rP   rJ   r&   r!   r"   Úrfilerk  )r  r‘   s   & r	   rF  ÚHandler._read_bodyÏ  sB   € Ü�—‘× Ñ Ð!1°1Ó5Ó6ˆÜ�zŠz˜$Ÿ*™*Ÿ/™/¨!Ó,×5Ð5°Ó6Ð6r   c                óØ  €  V P                  4       pVP                  R4      ;'       g    RP                  4       pVP                  R4      ;'       g    / pV'       g   V P                  RRRR/R4      # \	        V\
        4      '       d	   V'       g   V P                  RRRR	/R4      # \        '       g   V P                  RRRR
/R4      # . . rTVP                  R4      ;'       g    . R,           FÚ  p\	        V\        4      '       d%   VP                  V4       VP                  V4       K=  \	        V\
        4      '       g   KU  \	        VP                  R4      \        4      '       g   K|  VP                  VR,          4       TP                  VR,          VP                  R4      '       d   RVR,          ,          MR,           4       KÜ  	   \        W#V4      p\        YsT4      w  ršpT	R,          '       gN   T P                  RRRTRRT'       d    RRP                  TR,          4      ,          MR,           R,           /R4      # T P                  RRRT	R\        T	4      R T
RT/4      #   \         d8   pT P                  RRRR\        T4      R,          ,          /R4      u Rp?# Rp?ii ; i  \         d1   pT P                  RRR\        T4      R!,          /R"4      u Rp?# Rp?ii ; i)#u  AI ç»„å�·ï¼š{text, catalog} â†’ {spec, understood, fixes, unresolved}ã€‚

catalog ç”±å‰�ç«¯ä»Ž COURSE åŽ‹å‡ºï¼ˆå�ªå¸¦å€™é€‰èŒƒå›´ï¼Œè¯†åˆ«ä¸�å‡ºæ‰�å…¨é‡� ~37KBï¼‰ã€‚
è¿™é‡Œå�ªç¿»è¯‘ä¸�é€‰é¢˜ â€”â€” é€‰é¢˜åœ¨å‰�ç«¯çš„ DATA ä¸Šå�šï¼Œæœ�åŠ¡ç«¯æ²¡æœ‰ä¹Ÿä¸�è¯¥æœ‰é¢˜åº“ã€‚
rƒ   r   r„   r  FrV  u   æ²¡æœ‰å�¬åˆ°è¦�æ±‚rM  u-   ç¼ºå°‘ä¸“é¢˜ç›®å½•ï¼ˆå‰�ç«¯ç‰ˆæœ¬è¿‡æ—§ï¼Ÿï¼‰u   DeepSeek key æœªé…�ç½®é÷  r…   :Ni¸  Nr‘   rÃ   u   ï¼ˆ%sï¼‰u   AI è§£æž�å¤±è´¥ï¼š%sr;  éö  Nrœ   rÁ   u   æ²¡åŒ¹é…�åˆ°ä»»ä½•ä¸“é¢˜u   ï¼ˆæ‰¾ä¸�åˆ°ï¼š%sï¼‰r{   :Né   Nu   ï¼Œæ�¢ä¸ªè¯´æ³•è¯•è¯•ï¼Ÿi¦  TrË   Ú
understoodrÀ   :NéÈ   Nr�  )rF  r&   r   r'  r$   r%   rZ   r)   r(   r�   r#   rÌ   rr   rÕ   )r  rI  rƒ   r„   r…   Úkp_showr©   r¿   r?  rË   rÀ   rÁ   s   &           r	   rü  ÚHandler._do_composeÓ  s   € ð!	IØ—?‘?Ó$ˆDØ—H‘H˜VÓ$×*Ð*¨×1Ñ1Ó3ˆDØ—h‘h˜yÓ)×/Ð/¨RˆGßØ—z‘z 4¨°Ð9MÐ"NÐPSÓTÐTÜ˜g¤t×,Ò,·GØ—z‘z 4¨°Ð9hÐ"iÐknÓoÐoß“3Ø—z‘z 4¨°Ð9QÐ"RÐTWÓXÐXØ˜r�Ø—h‘h˜u“o×+Ð+¨¨U×3Ð3�Ü˜a¤×%Ò%Ø—J‘J˜q”M 7§>¡>°!Ö#4Ü ¤4×(Ô(¬Z¸¿¹¸c»
ÄC×-HÔ-HØ—J‘J˜q �vÔ&Ø—N‘N 1 S¥6ÀAÇEÁEÈ#ÇJÂJ¨Z¸!¸C½&Ö-@ÐTVÕ#WÖXñ 4ðYÜ  °Ó8�ô '4°CÀ#Ó&FÑ#ˆD˜Ø˜—>”>Ø—z‘z 4¨°¸jØ#*Ð,Fç0:ð .DÀeÇjÁjÐQ[Ð\^ÕQ_ÓF`Ö-`Ø@Bõ-Dð -Gõ-Gð#Hð JMó	Nð Nð
 —:‘:˜t T¨6°4Ø+Ô-?ÀÓ-EØ&¨¨|¸ZðIó Jð Jøô ô YØ—z‘z 4¨Ø#*Ð,BÄSÈÃVÈDÅ\Õ,Qð#SØTWóYõ YûðYûô ô 	IØ—:‘:˜t U¨G´S¸³V¸Dµ\ÐBÀCÓHÕHûð	Iúsœ   ‚'J. ª(J. Á
J. ÁJ. Á4J. ÂJ. Â(J. Â4J. Ã
A5J. Å"J. Å+AJ. Æ- J. ÇI) Ç6J. È3J. É#J. É)J+É4,J&Ê J+Ê!J. Ê&J+Ê+J. Ê.K)Ê9%K$ËK)Ë$K)c                óê  €  V P                  4       pVP                  R 4      ;'       g    RP                  4       pV'       g   V P                  RRRR/R4      # \	        ^\        ^\        VP                  R^
4      4      4      4      pVP                  R4      ;'       g    \        P                  4       pVR	8X  Edü   . R
^ R. /re\        4       p\        ^4       EF>  p \        Y!P                  RR4      VP                  RR4      VP                  R4      ;'       g    RP                  4       4      p	\        P                  ! Y‘P                  RR4      4      w  r¼TR
;;,          TR
,          ,          uu&   TR;;,          TR,          ,          uu&   T F`  pTP                  R4      ;'       g    RP                  4       ;'       g    RpYç9  g   K>  TP                  T4       TP!                  T4       Kb  	  \#        T4      \#        \$        4      8¼  g   EK?   M	  V'       d{   V F:  pVP                  R4      ;'       g    VP                  R4      ;'       g    RVR&   K<  	  V P                  RRRVRR	RR\#        V4      \#        \$        4      3,          RV/4      # V P                  RRRR	RRRV/R4      # VR8X  dö   R\        VP                  R4      ;'       g    R4      9  d   V P                  RRRRRR/R4      # \'        Y!P                  RR4      VP                  RR4      VP                  R4      ;'       g    RP                  4       \        V^4      4      p	\)        V	\        V^4      4      w  rüV'       d   V P                  RRRVRRRRRV/4      # V P                  RRRRRR RV/R4      # VR!8X  dã   \*        '       g   V P                  RRRR"/R#4      # \*        P,                  ! VP                  R4      ;'       g    RP                  4       VP                  RR4      VVP                  RR4      VP                  R$4      R%7      pV'       d0   V P                  RRRVRR!R$V^ ,          P                  R$4      /4      # V P                  RRRR!RR&/R'4      # VR(8X  Edã   \.        '       g   V P                  RRRR(RR)/R#4      # \0        '       g   V P                  RRRR*/R#4      # VP                  R+4      ;'       g    RP                  4       pVP3                  R,4      '       d   VP5                  R-^4      RG,          pV'       d   R.MVP                  R/4      ;'       g    R0pVP                  R14      ;'       g    \7        V4      p\8        P                  V^ 4      pV\:        8¼  d   V P                  RRRR(R2RRR3/R44      # VVV3p/ pV\<        9   d   \<        V,          w  ppMÓV^,           \8        V&   \0        P>                  ! Y!P                  RR4      TTT;'       g    RVP                  R5R4      VP                  R4      ;'       g    RP                  4       VR67      w  ppV'       dK   VV3\<        V&   \#        \<        4      R78”  d,   \<        PA                  \C        \E        \<        4      4      4       V'       d4   T P                  RRRTRR(RT;'       g    RR8\0        PF                  /4      # VP                  R94      '       dO   VP                  R:4      '       g8   \:        \8        V&   T P                  RRRR(R2RR\H        RT;'       g    R/R44      # T P                  RRRR(RT;'       g    RR;,           /R4      # \K        Y!P                  RR4      VP                  RR4      VP                  R4      ;'       g    RP                  4       V4      w  rüV'       d   V P                  RRRVRR<RV/4       R# VP                  R
4      '       dO   V P                  RRRR=R>PM                  R? VP                  R. 4      R@,           4       4      ,          RV/R4       R# V P                  RRRRA/R4       R#   \         d<   p
T P                  RRRR	RR\        T
4      R,          ,          /R4      u Rp
?
u # Rp
?
ii ; i  \N        PP                  PR                   dZ   p
T P                  RRRRBT
PT                  T
PW                  4       PY                  RCRD4      RE,          3,          /R4        Rp
?
R# Rp
?
i\         d+   p
T P                  RRR\        T
4      /RF4        Rp
?
R# Rp
?
ii ; i)Hr   r   r  FrV  u   ç¼ºå°‘åŽŸé¢˜rM  r‘   Úbyr   rì   rí   r^   r¯   r`   u   DeepSeek è°ƒç”¨å¤±è´¥: %sr;  rw  Nrq   u   å�˜å¼�r   Tr   Únoteu   æŒ‰ %d/%d ä¸ªç­–ç•¥ç”Ÿæˆ�r  u   å�˜å¼�æ²¡é€šè¿‡æ•°å€¼æ ¸éªŒr"  rÝ   u6   AI é…�å›¾å®žéªŒå½“å‰�å�ªæ”¯æŒ�ã€Œåœ†ä¸Žæ‰‡å½¢ã€�ä¸“é¢˜u<   é¢˜å›¾ç»“æž„å·²æ ¸å¯¹ï¼›æ‰“å¼€å‡ ä½•ç”»æ�¿å�Žå�¯ç»§ç»­ç¼–è¾‘u0   ç”Ÿæˆ�çš„é¢˜å›¾é¢˜æœªé€šè¿‡ç»“æž„æˆ–æ•°å€¼æ ¸éªŒr  u   ç”Ÿæˆ�å™¨ä¸�å�¯ç”¨rv  Úseed)r€  u]   ç”Ÿæˆ�å™¨æ²¡æœ‰è¿™ä¸ªé¢˜åž‹ï¼ˆå�ªè¦†ç›– 58 ä¸ªé¢˜åž‹ï¼‰ï¼Œæ�¢ã€ŒAIã€�æˆ–ã€Œå­¦ç§‘ç½‘ã€�è¯•è¯•rW  r#  u‘   å­¦ç§‘ç½‘å‡ºå�Œç±»é¢˜å·²æš‚æ—¶ä¸‹çº¿ï¼šæŽ¥å�£èµ„æº�åŒ…ç”¨å°½ï¼ˆ402ï¼‰ã€‚åŠ åŒ…å�Žç”±ç®¡ç�†å‘˜æŠŠæœ�åŠ¡ç«¯ XKW_ENABLED æ”¹å›ž True å�³å�¯æ�¢å¤�ã€‚u   å­¦ç§‘ç½‘å®¢æˆ·ç«¯æœªå°±ç»ªÚfigzdata:Ú,ÚimageÚmodeÚfastÚqidÚ	exhaustedu‚   è¿™é�“é¢˜çš„å�Œç±»é¢˜å·²å�–å®Œï¼ˆå­¦ç§‘ç½‘å�•é¢˜ä¸Šé™�çº¦ 20 é�“ï¼‰ã€‚æ�¢ä¸€é�“ç§�å­�ï¼Œæˆ–æ”¹ç”¨ã€Œç”Ÿæˆ�å™¨ã€�/ã€ŒAIã€�å‡ºé¢˜ã€‚i­  r‡   )r„  Ú	image_b64r‡   r`   Ústatsi,  Ú	copyrightrÇ   rë   u   å­¦ç§‘ç½‘æ²¡æ‰¾åˆ°å�Œç±»é¢˜Údeepseeku,   ç”Ÿæˆ�çš„é¢˜éƒ½æ²¡é€šè¿‡æ•°å€¼æ ¸éªŒï¼ˆ%sï¼‰u   ï¼›c              3   ó2   "  € T F  qR ,          x € K  	  R# 5i)rä   Nrj   ©rk   re   s   & r	   ro   Ú&Handler._do_similar.<locals>.<genexpr>v  s   é € Ð(UÑ;T°a¨5¯ªÓ;Tùr«   :Né   Nu   è§£æž�ç”Ÿæˆ�ç»“æžœå¤±è´¥zDeepSeek HTTP %d: %srC   ÚignorerE  r�  rµ   )-rF  r&   r   r'  rS   rR   rP   Ú
DEFAULT_BYÚsetr  rx   r#   r)   rð   r  Úaddr(   ru   rt   rß   rø   r)  Úrouter+  r*  r   r  r  Ú	_XKW_SEEDÚXKW_PER_SEEDÚ
_XKW_CACHEÚsimilarÚpopÚnextÚiterÚCOPYRIGHT_NOTEÚXKW_NO_HARDr  rr   rU   rV  Ú	HTTPErrorÚcoderk  Údecode)r  rI  r   ra   r~  rô   r  Úseen_vtr±  r¿   r?  Úok_itemsr  r/   Úvtr   rÆ   Úimgr„  r€  ÚusedÚckÚerrs   &                      r	   rý  ÚHandler._do_similarü  sÜ  € ð	<Ø—?‘?Ó$ˆDØ—H‘H˜VÓ$×*Ð*¨×1Ñ1Ó3ˆDßØ—z‘z 4¨°¸Ð"HÈ#ÓNÐNÜ�aœ˜R¤ T§X¡X¨c°2Ó%6Ó!7Ó8Ó9ˆCØ—(‘(˜4“.×.Ð.¤J×5Ñ5Ó7ˆBà�ZÕð   )¨Q°	¸2Ð!>�dÜ›%�Ü˜qŸ�AðfÜ*¨4·±¸'À2Ó1FÈÏÉÐQ]Ð_aÓHbØ,0¯H©H°WÓ,=×,CÐ,CÀ×+JÑ+JÓ+LóN˜ô
 $.×#:Ò#:¸3ÇÁÈÐRTÓ@UÓ#V‘L�HØ˜—O r¨)¥}Õ4“O°d¸9·oÈÈIÍÕ6V³oÛ&˜Ø Ÿf™f W›o×3Ð3°×:Ñ:Ó<×HÐHÀ˜ØÖ,Ø#ŸK™K¨œO¨T¯[©[¸®_ñ 'ô ˜4“y¤C¬Ó$7×7Ùñ "÷ ã"˜Ø%'§V¡V¨G£_×%RÐ%R¸¿¹¸v»×%RÐ%RÈ(˜˜6›
ñ #àŸ:™: t¨T°7¸DÀ$È
Ø'-Ð/JÌcÐRVËiÔY\Ô]kÓYlÐMmÕ/mØ'-¨tð'5ó 6ð 6ð —z‘z 4¨°°jØ#*Ð,IÈ6ÐSWð#YØZ]ó_ð _ð �[Ô à!¬¨T¯X©X°gÓ->×-DÐ-DÀ"Ó)EÔEØŸ:™: t¨U°D¸+Ø'.Ð0hð'jØknópð pä(¨¯x©x¸ÀÓ/DÀdÇhÁhÈ|Ð]_ÓF`Ø+/¯8©8°GÓ+<×+BÐ+BÀ×*IÑ*IÓ*KÌSÐQTÐVWË[óZ�ä/°´S¸¸a³[ÓA‘	�ßØŸ:™: t¨T°7¸EÀ4ÈØ'-Ð/mÐouÐwyð'{ó |ð |à—z‘z 4¨°°kØ#*Ð,^Ð`fÐhjð#lØmpórð rð �UŒ{ß!“zØŸ:™: t¨U°GÐ=QÐ&RÐTWÓXÐXÜ ×&Ò&¨¯©°Ó(9×(?Ð(?¸R×'FÑ'FÓ'HØ'+§x¡x°¸bÓ'AÀ3Ø'+§x¡x°¸Ó'<Ø,0¯H©H°VÓ,<ô>�÷ ØŸ:™: t¨T°7¸CÀÀuØ'-¨s°1­v¯z©z¸&Ó/Að'Có Dð Dð —z‘z 4¨°°eØ#*ð  -Lð#Mð ORóSð Sð �U�{ß"“{ØŸ:™: t¨U°D¸%Ø'.ð 1|ð'}ð BóCð C÷ #“{ØŸ:™: t¨U°GÐ=ZÐ&[Ð]`ÓaÐaØ—x‘x “×,Ð,¨"×3Ñ3Ó5�Ø—>‘> '×*Ò*ØŸ)™) C¨Ó+¨BÕ/�Cß"%‘w¨D¯H©H°VÓ,<×,FÐ,FÀ�à—x‘x “×3Ð3¬#¨d«)�Ü —}‘} T¨1Ó-�Øœ<Ô'ØŸ:™: t¨U°D¸%ÀÈdØ'.ð 1oð'pàqtóvð vð ˜D $Ð'�Ø�ØœÔ#Ü!+¨B¥‘J�E™3à&*¨Q¥h”I˜d‘OÜ!,×!4Ò!4°T¿8¹8ÀGÈRÓ;PÐRUØ:>È#Ï+È+ÐQUØ8<¿¹ÀÀrÓ8JØ<@¿H¹HÀWÓ<M×<SÐ<SÐQS×;ZÑ;ZÓ;\Ø;=ô	"?‘J�E˜3÷
 Ø*/°¨œ
 2™Üœz›?¨SÔ0Ü&ŸN™N¬4´´ZÓ0@Ó+AÔBßð  Ÿ:™: t¨T°7¸EÀ4ÈØ'-¨s¯y¨y°b¸+Ä{×GaÑGað'có dð dð —6‘6˜%—=’=¨¯©°¯ªÜ&2”I˜d‘OØŸ:™: t¨U°D¸%ÀÈdØ'.´¸VÀSÇYÀYÈBð'PØQTóVð Và—z‘z 4¨°°eØ#*¨S¯Y¨Y°BÐ:WÕ,Wð#YØZ]ó_ð _ô % T¯8©8°G¸RÓ+@À$Ç(Á(È<ÐY[ÓB\Ø&*§h¡h¨wÓ&7×&=Ð&=¸2×%DÑ%DÓ%FÈóM‰IˆEçØ—
‘
˜D $¨°¸¸jÈ&ÐRTÐUÖVØ—‘˜	×"Ò"à—
‘
˜D %¨Ð2`Ø#Ÿj™jÑ(U¸2¿6¹6À)ÈRÓ;PÐQSÖ;TÓ(UÓUõ3VØW]Ð_aðcØdgöið —
‘
˜D %¨Ð2LÐMÈsÖSøôU %ô fØ#Ÿz™z¨4°¸¸jØ+2Ð4OÔRUÐVWÓRXÐY]ÕR^Õ4^ð+`Øadó f÷ fûðfûôV �|‰|×%Ñ%ô 	AØ�J‰J˜˜e WÐ.DÈÏÉÐPQ×PVÑPVÓPX×P_ÑP_Ð`gÐiqÓPrÐswÕPxÐGyÕ.yÐzÐ|÷  Aò  AûÜô 	<Ø�J‰J˜˜e W¬c°!«fÐ5°s×;Ò;ûð	<úsŠ  ‚'c ªc Ác ÁBc ÃAa>Ä2A<c Æ/c Çc ÇA c Èc È$c Éc ÉAc Êc Ê8$c Ë"c Ì >c Ì?Ac Îc Î4c Ïc Ï'c ÐAc Ñ.c Òc Òc Ò1c Ó	c Óc Ó+c Ô'c Ô+ c Õc Õ&c ÖAc ×Ac Ø'*c Ù!c Ù4Ac Ûc Û!c Û9c Üc Ü'-c Ýc Ýc Ý7c Þ>c ß9c àc àAc á&c á>câ	.b?â7câ8c â?cãc ãe2ã&Ad:ä:e2åe2åe-å-e2c                óÜ  aa€  V P                  4       oSP                  R 4      ;'       g    . p\        V\        4      '       d	   V'       g   V P	                  RRRR/R4      # VR,          p\        ^\        ^\        SP                  R^4      4      4      4      oVV3R lp\        P                  P                  ^
R	7      ;_uu_ 4       p\        VP                  W!4      4      pR
R
R
4       \        R X 4       4      pV P	                  RRRVRVR\        V4      /4       R
#   + '       g   i     LF; i  \         d+   pT P	                  RRR\        T4      /R4        R
p?R
# R
p?ii ; i)r   r  FrV  u   ç¼ºå°‘é¢˜ç›®åˆ—è¡¨rM  :Né(   Nr‘   c           	      óä  <€ V P                  R 4      ;'       g    RP                  4       pRV P                  RR4      R V/pV'       g   \        VRR. R7      # V P                  R4      ;'       g     SP                  R4      ;'       g    \        P                  4       pVR8X  dŸ   \        '       d“   \        P
                  ! V P                  R4      ;'       g    RP                  4       V P                  R	R4      S	V P                  R
R4      4      p\        T\        V4      T;'       g    . RV'       d   RR7      # RR7      # VR8X  d¬   \        '       d   RMRpVR8X  d•   \        P
                  ! V P                  R4      ;'       g    RP                  4       V P                  R	R4      S	V P                  R
R4      4      p\        T\        V4      T;'       g    . RV'       d	   RRR7      # RRR7      #  \        YP                  R
R4      V P                  R	R4      V P                  R4      ;'       g    RP                  4       S	4      w  rV\        T\        V4      YVV'       d   RR7      # RR7      #   \        P                  P                   d+   p\        TRRTP                  ,          . R7      u Rp?# Rp?i\         d*   p\        TR\        T4      R,          . R7      u Rp?# Rp?ii ; i)r   r   rL  Fu   ç©ºé¢˜)r  rV  r   r~  r  r`   r¯   r^   u   ç”Ÿæˆ�å™¨æ²¡æœ‰è¿™ä¸ªé¢˜åž‹)r  r   r~  rV  r#  rù   u?   æ•´é¡µæ‰¹é‡�ä¸�èµ°å­¦ç§‘ç½‘ï¼ˆçœ�é¢�åº¦ï¼‰ï¼Œå·²æ”¹ç”¨ç”Ÿæˆ�å™¨)r  r   r~  rV  r  u   æ²¡é€šè¿‡æ•°å€¼æ ¸éªŒ)r  r   r  rV  zHTTP %dNr;  )r&   r   r%   r‘  r)  r”  r¹   r  rU   rV  rž  rŸ  r#   r)   )
r/   r   Úrecr~  rÆ   r   r  r?  rI  ra   s
   &       €€r	   ÚworkÚ'Handler._do_similar_batch.<locals>.workˆ  s{  ø€ ØŸ™˜v›×,Ð,¨"×3Ñ3Ó5�Ø˜RŸV™V D¨"Ó-¨v°tÐ<�ßÜ ¨°XÀRÔHÐHØ—f‘f˜T“l×BÐB d§h¡h¨t£n×BÐB¼
×IÑIÓK�Ø˜”;§:£:Ü$×*Ò*¨B¯F©F°7«O×,AÐ,A¸r×+HÑ+HÓ+JØ+-¯6©6°,ÀÓ+CÀSØ+-¯6©6°'¸2Ó+>ó@�Cô   ¬¨S«	¸¿¸ÀÀuß,/ bôTð TØ5RôTð Tð ˜”;ß",£*™°$�BØ˜U”{Ü(×.Ò.°·±°w³×0EÐ0EÀ2×/LÑ/LÓ/NØ/1¯v©v°lÀBÓ/GÈÈbÏfÉfÐU\Ð^`ÓNaóc˜ä# C¬D°«I¸S¿Y¸YÀBÈ5ß03¨"Ø)jô lð lØ9VØ)jô lð lðMÜ ,¨T·6±6¸'À2Ó3FÈÏÉÈ|Ð]_ÓH`Ø.0¯f©f°W«o×.CÐ.CÀ×-JÑ-JÓ-LÈcó!S‘I�Eä ¬¨U«¸5ß,1 bôPð PØ7NôPð Pøä—|‘|×-Ñ-ô SÜ ¨°YÀÇÁÕ5GÈrÔRÕRûÜ ô MÜ ¨´S¸³V¸Dµ\ÈÔLÕLûðMúsB   Ç6>I4 È57I4 É-I4 É4K/ÊJ8Ê2K/Ê8K/ËK/ËK*Ë$K/Ë*K/)Úmax_workersNc              3   óF   "  € T F  qR ,          '       g   K  ^x € K  	  R# 5i)r  Nrj   r�  s   & r	   ro   Ú,Handler._do_similar_batch.<locals>.<genexpr>­  s   é € Ð5¡'˜Q¨t¯W©W—q’q£'ùs   ‚!—
!TÚresultsÚok_nr¥   r�  )rF  r&   r$   r'   r'  rS   rR   rP   Ú
concurrentÚfuturesÚThreadPoolExecutorÚmapr»   ru   r#   r)   )	r  Úreqsr­  Úexr²  r³  r?  rI  ra   s	   &      @@r	   rþ  ÚHandler._do_similar_batch~  s*  ù€ ð0	<Ø—?‘?Ó$ˆDØ—8‘8˜GÓ$×*Ð*¨ˆDÜ˜d¤D×)Ò)·Ø—z‘z 4¨°Ð9MÐ"NÐPSÓTÐTØ˜•9ˆDÜ�aœ˜Q¤ D§H¡H¨S°!Ó$4Ó 5Ó6Ó7ˆCö!MôF ×#Ñ#×6Ñ6À2Ð6×FÔFÈ"Ü˜rŸv™v dÓ1Ó2�÷ GäÑ5¡'Ó5Ó5ˆDØ�J‰J˜˜d I¨w¸ÀÀgÌsÐSZË|Ð\Ö]÷ G×Fûô ô 	<Ø�J‰J˜˜e W¬c°!«fÐ5°s×;Ò;ûð	<úsA   „'D6 ¬ D6 ÁD6 Á#A'D6 Ã
D#Ã%<D6 Ä#D3	Ä.D6 Ä6E+ÅE&Å&E+c                ó8  € \         P                  ! VR R7      P                  R4      pV P                  V4       V P	                  RR4       V P	                  R\        \        V4      4      4       V P                  4        V P                  P                  V4       R# )FrQ  rC   rD   zapplication/json; charset=utf-8r]  N)
r!   rX   rY   rl  r  r)   ru   r  rm  rn  )r  r,   rŸ  Úbs   &&& r	   r'  ÚHandler._json²  ss   € Ü�JŠJ�s¨Ô/×6Ñ6°wÓ?ˆØ×Ñ˜4Ô Ø×Ñ˜Ð)JÔKØ×ÑÐ)¬3¬s°1«v«;Ô7Ø×ÑÔØ�
‰
×Ñ˜Ör   c                ó   € R # rÒ   rj   )r  r—  s   &*r	   Úlog_messageÚHandler.log_messageº  s   € Ùr   rj   )rz  )-Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r  r:  rG  rM  r0  r  r,  r.  r-  r¶  r/  r9  rñ  r  r   r   ÚcompileÚIr  Úclassmethodr
  Ústaticmethodr  r1  r5  r2  r1  r3  r  r  rÿ  r   rF  rü  rý  rþ  r'  r¿  Ú__static_attributes__Ú__classdictcell__Ú__classcell__©r  Ú__classdict__s   @@r	   r  r  3  s   ù‡ € õ	õ' ðT �6€Lò$ò"3&òl>ò6ò,L&ò\/=òb	&ò&ò.!#òF
òð, €GØ�jŠjð sØtv×txÑtxóz€Gð ñ`ó ð`ð ñ%ó ð%ð ñ?ó ð?ðB ñAó ðAò>ò.)&òVò8Bò$Bò)IòVBò$7ò'IòR@<òD2<ôh÷ò r   r  c                   ó:   a a€ ] tR tRt oRtRtV 3R ltRtVtV ;t	# )ÚServeri¾  Tc                ó˜   <€ ^ RI pVP                  4       ^,          p\        V\        \        34      '       d   R# \
        SV `  W4       R# )rz  N)ÚsysÚexc_infor$   ÚBrokenPipeErrorÚConnectionResetErrorr  Úhandle_error)r  rV   Úclient_addressrÑ  Úexcr  s   &&&  €r	   rÕ  ÚServer.handle_errorÂ  s9   ø€ ãØ�l‰l‹n˜QÕˆÜ�cœOÔ-AÐB×CÒCÙÜ‰Ñ˜WÖ5r   rj   )
rÁ  rÂ  rÃ  rÄ  Úallow_reuse_addressÚdaemon_threadsrÕ  rÉ  rÊ  rË  rÌ  s   @@r	   rÏ  rÏ  ¾  s   ù‡ € ØÐØ€N÷6õ 6r   rÏ  Ú__main__uE    ç»„å�·å�° AI åŠ©æ‰‹ï¼ˆå‡ºç±»ä¼¼é¢˜ Â· åŸºäºŽé€‰ä¸­é¢˜ç”Ÿæˆ�ç»ƒä¹ ï¼‰u
    æ¨¡åž‹ï¼šu	    | keyï¼šu	   å·²è½½å…¥u*   âš  ç¼ºå¤±ï¼Œè¯·æ£€æŸ¥ ~/.deepseek_pro_keyu<    æ‰“å¼€æµ�è§ˆå™¨è®¿é—®ï¼š http://localhost:%d/ç»„å�·å�°.htmlu    å�œæ­¢ï¼šæŒ‰ Ctrl+Cz	127.0.0.1u   
å·²å�œæ­¢ã€‚)u   ä¸Šæµ·ä¸­è€ƒçœŸé¢˜u   å…¨å›½ä¸­è€ƒçœŸé¢˜u   ä¸Šæµ·æ ¡æœ¬å�·))u	   æ�¢æ•°å­—uZ   å�ªæŠŠé¢˜ä¸­çš„æ•°å­—æ�¢æˆ�å�¦ä¸€ç»„ï¼ˆä»�éœ€é…�å¹³ã€�ç­”æ¡ˆå¹²å‡€ï¼‰ï¼Œæƒ…èŠ‚ä¸€å­—ä¸�åŠ¨)u	   æ‰©æ•°ä½�u]   æŠŠæ•°å­—æ”¾å¤§ä¸€ä¸ªé‡�çº§ï¼ˆä¸¤ä½�æ•°å�˜ä¸‰å››ä½�æ•°ï¼‰ï¼Œè€ƒéªŒè®¡ç®—åŠŸåº•ï¼Œå…¶ä½™ä¸�åŠ¨)u   é€†å�‘æ±‚è§£uN   æŠŠåŽŸé¢˜çš„ç­”æ¡ˆå½“æˆ�å·²çŸ¥æ�¡ä»¶ï¼Œå��è¿‡æ�¥æ±‚åŽŸé¢˜ä¸­çš„æŸ�ä¸ªå·²çŸ¥é‡�)u	   åŠ å¹²æ‰°us   åŠ å…¥ 1 ä¸ªä¸Žè§£é¢˜æ— å…³çš„å¤šä½™æ•°å­—æ�¡ä»¶ï¼ˆå¦‚æ— å…³çš„å¹´é¾„/ä»·æ ¼ï¼‰ï¼Œç­”æ¡ˆä¸�å�˜ï¼Œä¸“æ²»ä¹±æŠ“æ•°å­—)u	   æ�¢æƒ…å¢ƒuE   æ•°é‡�å…³ç³»å®Œå…¨ä¸�å�˜ï¼ŒæŠŠæ•…äº‹èƒŒæ™¯æ�¢æˆ�å�¦ä¸€ä¸ªç”Ÿæ´»åœºæ™¯)u	   åŠ ä¸€æ­¥u^   åœ¨åŽŸé¢˜åŸºç¡€ä¸Šå¤šåŠ ä¸€æ­¥è¿�ç®—ï¼ˆå¦‚æ±‚å®Œå�„è‡ªå†�æ±‚ç›¸å·®/æ€»å…±ï¼‰ï¼Œéš¾åº¦æ��ä¸€æ¡£)u   é€‰æ‹©u   å¡«ç©ºu   è®¡ç®—u   åº”ç”¨u   è§£ç­”u   ä½œå›¾u   åˆ¤æ–­u   å…¶ä»–rÒ   )r�  z8========================================================)MÚ__doc__Úhttp.serverÚhttpÚsocketserverr!   r6  r   Úurllib.requestrU   Úurllib.errorrý   ÚtempfilerG  ÚshutilÚconcurrent.futuresr´  rð   r)  r#   r*  r  rp  r!  Ú__file__r8  Ú
expanduserÚKEYFILEr7  rI  rk  r   Úenvironr&   rZ   rQ   ÚPORTr(  r¾   rT   rÞ   rt   rv   rÅ  r    r   r   r0   r2   rf   rx   r½   r€   r�   r™   rÌ   rÕ   rÛ   rß   rø   r‘  r+  r–  r�  r•  r—  r  r  ÚserverÚSimpleHTTPRequestHandlerr  ÚThreadingTCPServerrÏ  rÁ  ÚchdirÚprintÚserve_foreverÚKeyboardInterruptrj   r   r	   Ú<module>rñ     su  ðñ&÷ M× L× LÓ Lß ,× ,Û Û ðÛðÛð 
‡w�w‡��r—w‘w—‘ xÓ0Ó1€Ø
�'‰'×
Ñ
Ð2Ó
3€Ø')§w¡w§~¡~°g×'>Ò'>�tˆGƒ}×ÑÓ×!Ñ!Ô#ÀBÇJÁJÇNÁNÐSeÐgiÓDj×qÑqÓs€Ø€Ø€Ø€ð K€ðh€
ð"fÐ ò€ðr€
ð& 
‡z‚zÐKÈRÏTÉTÓR€òTòò:ò$@ò$ò> a€ðM<€ô`"ò4ô\#ò~.ò"HòFò"Oð> €
ð €ð €ð k€ð €	Ø€
òQô
ô4Hˆd�k‰k×2Ñ2ô HôV
6ˆ\×,Ñ,ô 
6ð ˆzÔØ‡H‚HˆT„NÙ	ˆ(„OÙ	Ð
QÔRÚ	£u¿S©kÐFrÑ.rÐ
sÔtÙ	Ð
HÈ4Õ
OÔPÙ	Ð
 Ô!Ù	ˆ(„Oð Ù�˜TÐ" GÓ,×:Ñ:Ö<ñ øð}- ô ØƒJðûð ô ØƒKðûðH. ô  ÙÐ×ð ús4   ¸H$ ½H4 ÈI È$	H1È0H1È4	IÉ IÉIÉI