§
    »¤Èj
q  ã            	       ó¾  — d Z ddlZddlZddlZddlZddlZddlZddlZddlZdZ	ej
                             e	d¦  «        Zej
                             e	d¦  «        Zej
                             ed¦  «        Zej
                             edd¦  «        Zd	Zd
Zej
                             ed¦  «        Zej
                             ed¦  «        Zej
                             ej
                             d¦  «        dddddd¦  «        ZdZ ej        ed¬¦  «         d„ Zd+d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd,d „Zd-d"„Z d#„ Z!d$„ Z"d%„ Z#d&„ Z$d'„ Z%d(„ Z&d)„ Z'e(d*k    r e'¦   «          dS dS ).u�  HLQT â€” worker: nháº­n ca tá»« app, cháº¡y AGY 2 bÆ°á»›c, vÃ  GHI vÃ o CSDL A (chá»‰ khi chá»§ nhÃ¢n nháº­p pass).

BÆ°á»›c P (Ä‘á»� nghá»‹) : áº£nh báº£n mÃ u + gÃ³i kiáº¿n thá»©c CSDL A  â†’ AGY chá»�n Ä�ÃšNG 1 quy trÃ¬nh kháº£ dÄ©/sÃ¡t nháº¥t.
BÆ°á»›c C (Ä‘á»‘i chiáº¿u): áº£nh + Ä‘á»� nghá»‹ + quy trÃ¬nh THá»°C Táº¾ chá»§ nhÃ¢n nháº­p â†’ AGY phÃ¢n tÃ­ch khÃ¡c biá»‡t vÃ 
                    Ä‘á»� xuáº¥t bá»• sung CSDL A (quy trÃ¬nh má»›i + luáº­t má»›i).
Ghi CSDL A: chá»‰ qua server sau khi kiá»ƒm pass (hÃ m ghi_vao_csdla).
Cháº¡y:  python worker_hlqt.py            (vÃ²ng láº·p, chá»� ca)
       python worker_hlqt.py --mot-lan  (xá»­ lÃ½ 1 ca rá»“i thoÃ¡t)
é    Nz*C:\Claw 2\Nghien cuu\Du-an-A-Quy-trinh-sonzHLQT-appzCSDLA.dbÚviecÚ	kien_thuczCSDLA_GOI_CHO_AGY.mdz,C:\Users\admin\AppData\Local\agy\bin\agy.exezgemini-3.1-pro-highz
_nhip.jsonzemail_bao.txtz%LOCALAPPDATA%ÚhermesÚskillsÚemailzgui-email-kem-fileÚscriptszgui_mail_kem_file.pyz/https://desktop-9gsdkd2.tail0ffe94.ts.net/hlqt/T©Úexist_okc                 óü   — |                       d¦  «        pd                     ¦   «         }|rd|v r|S 	 t          t          d¬¦  «                             ¦   «                              ¦   «         S # t
          $ r Y dS w xY w)uh   Email nháº­n thÃ´ng bÃ¡o: Æ°u tiÃªn email cá»§a ca, khÃ´ng cÃ³ thÃ¬ dÃ¹ng email máº·c Ä‘á»‹nh cá»§a app.r   Ú ú@úutf-8©Úencoding)ÚgetÚstripÚopenÚ	EMAIL_BAOÚreadÚ	Exception)ÚcaÚes     úBC:\Claw 2\Nghien cuu\Du-an-A-Quy-trinh-son\HLQT-app\worker_hlqt.pyÚ
email_nhanr      s‰   € à	�Š�‰ŒÐ	˜B×%Ò%Ñ'Ô'€AØð ˆS�AˆXˆXØˆðÝ•I¨Ð0Ñ0Ô0×5Ò5Ñ7Ô7×=Ò=Ñ?Ô?Ð?øÝð ð ð Øˆrˆrðøøøs   ³9A- Á-
A;Á:A;é
   c                 ób  — g }t          |                      d¦  «        pg d |…         d¦  «        D ]•\  }}|                     d¦  «        p|                     d¦  «        pd                     ¦   «         }|                     d¦  «        pd}|                     d|                     d	¦  «        p|›d
|›d|d d…         ›�¦  «         Œ–t	          |                      d¦  «        pg ¦  «        |k    r.|                     dt	          | d         ¦  «        |z
  z  ¦  «         d                     |¦  «        S )NÚbuocé   Úchi_tietÚbuoc_nguyen_vanr   Úbuoc_chuan_soõ   â€”z  Úthu_tuu   . [bÆ°á»›c chuáº©n ú] é´   u+     â€¦ cÃ²n %d bÆ°á»›c ná»¯a (xem trÃªn web)ú
)Ú	enumerater   r   ÚappendÚlenÚjoin)ÚjÚgioi_hanÚraÚiÚbÚctÚsos          r   Ú_chuoi_buocr2   (   s&  € Ø	€BÝ˜1Ÿ5š5 ™=œ=Ð.¨B°	°°	Ô:¸AÑ>Ô>ð Zð Z‰ˆˆ1Ø�eŠe�JÑÔÐA 1§5¢5Ð):Ñ#;Ô#;ÐA¸r×HÒHÑJÔJˆØ�UŠU�?Ñ#Ô#Ð, uˆØ
�	Š	ˆ	°Q·U²U¸8±_´_Ð5IÈÐ5IÐ5IÈ2È2È2ÈrÐRVÐSVÐRVÌxÈxÐXÑYÔYÐYÐYÝ
ˆ1�5Š5�‰=Œ=Ð˜BÑÔ (Ò*Ð*Ø
�	Š	Ð?Å3ÀqÈÄyÁ>Ä>ÐT\ÑC\Ñ]Ñ^Ô^Ð^Ø�9Š9�R‰=Œ=Ðó    c                 ó²  — |                       d¦  «        pd}t          ›d| d         ›�}|dk    �r]d| d         ›d|›�}d| d         ›d	|›d
|                       d¦  «        pd›d|                       d¦  «        pd›d|                      d¦  «        pd›d|                      d¦  «        pddd…         ›d|                      d¦  «        pd›dt          |                       d¦  «        pd¦  «        ›d|                      d¦  «        pddd…         ›dt          |¦  «        pd›d d!                     d"„ |                      d#¦  «        pg D ¦   «         ¦  «        pd$›d%|›d!�}|                       d&¦  «        r|                       d&¦  «        gng }�n<|d'k    �rP|                      d(¦  «        pg }|                      d)¦  «        pg }	d!                     d*„ |dd+…         D ¦   «         ¦  «        pd,}
d!                     d-„ |	D ¦   «         ¦  «        pd.}d!                     d/„ |                      d0¦  «        pg D ¦   «         ¦  «        pd1}d2| d         |t          |¦  «        t          |	¦  «        fz  }d3| d         |t          |¦  «        t          |	¦  «        |
|||                      d¦  «        pddd…         |f	z  }|                       d4¦  «        r|                       d4¦  «        gng }nåd5| d         ›d|›d6|                       d7¦  «        ›d8|                       d9¦  «        ›d:�	}d;| d         ›d<|›d=|                       d7¦  «        ›d|                       d>¦  «        pd?dd@…         ›dA|                       d9¦  «        ›dB|                       d9¦  «        ›dC|                       dD¦  «        ›dE|›d!�}dF„ |                       d4¦  «        fD ¦   «         }||dG„ |D ¦   «         fS )HuK   Tráº£ (tiÃªu Ä‘á»�, thÃ¢n thÆ°, [tá»‡p Ä‘Ã­nh kÃ¨m]) cho tá»«ng má»‘c bÃ¡o.Úma_mauu   (chÆ°a ghi mÃ£ mÃ u)zca?id=ÚidÚpu0   [HLQT] Ä�Ã£ cÃ³ QUY TRÃŒNH Ä�á»€ NGHá»Š â€” ca #õ    Â· uW   Ä�Ã£ xong bÆ°á»›c Ä�á»€ NGHá»Š QUY TRÃŒNH cho báº£n mÃ u báº¡n náº¡p.

Ca           : #u   
MÃ£ mÃ u       : u    Â· há»‡ sÆ¡n: Úhe_sonr"   u    Â· ná»�n: Úloai_nenu   
Quy trÃ¬nh chá»�n: id Úqt_idu    â€” Úqt_tenr   Néx   u   
Ä�á»™ khá»›p      : Údo_khopu   %
Thá»�i gian    : Úde_nghi_giayr   u    giÃ¢y

TÃ“M Táº®T: Útom_tatiX  u   

CÃ�C BÆ¯á»šC Ä�á»€ NGHá»Š:
u     (khÃ´ng cÃ³)u   

Cáº¦N XÃ�C NHáº¬N:
r&   c              3   ó:   K  — | ]}d t          |¦  «        z   V — ŒdS )ú  - N©Ústr©Ú.0Úxs     r   ú	<genexpr>zsoan_mail.<locals>.<genexpr>A   s-   è è € Ð>vÐ>vÐST¸vÍÈAÉÌ¹Ð>vÐ>vÐ>vÐ>vÐ>vÐ>vr3   Úcan_xac_nhanu     - (khÃ´ng)uN   

>> Má»Ÿ trang ca Ä‘á»ƒ nháº­p QUY TRÃŒNH THá»°C Táº¾ cá»§a báº£n mÃ u nÃ y: Úde_nghi_fileÚcÚ	khac_bietÚluat_moic              3   ó8  K  — | ]•}d |                      dd¦  «        dd…         ›dt          |                      dd¦  «        ¦  «        dd…         ›dt          |                      d	d¦  «        ¦  «        dd…         ›d
|                      dd¦  «        ›d�	V — Œ–dS )rB   Ú	cong_doanr   Né2   z: Úde_nghiéZ   u    â†’ THá»°C Táº¾: Úthuc_tez  (Úloaiú)©r   rD   )rF   r/   s     r   rH   zsoan_mail.<locals>.<genexpr>G   sñ   è è € ð -ð -à ! ð  !Ÿušu [°"Ñ5Ô5°c°r°cÔ:Ð:Ð:½CÀÇÂÀiÐQSÑ@TÔ@TÑ<UÔ<UÐVYÐWYÐVYÔ<ZÐ<ZÐ<ZÕ\_Ð`a×`eÒ`eÐfoÐqsÑ`tÔ`tÑ\uÔ\uÐvyÐwyÐvyÔ\zÐ\zÐ\zÐ|}÷  }Bò  }Bð  CIð  KMñ  }Nô  }Nð  }Nð  }NðOð -ð -ð -ð -ð -ð -r3   é   u     (khÃ´ng cÃ³ khÃ¡c biá»‡t)c           
   3   óð   K  — | ]q}d |                      dd¦  «        dd…         ›dt          |                      dd¦  «        ¦  «        dd…         ›d|                      d	d¦  «        dd
…         ›d�V — ŒrdS )z  - [Únhomr   Né   r$   Úquy_tacéÜ   u    (pháº¡m vi: Úpham_vié<   rU   rV   )rF   Úls     r   rH   zsoan_mail.<locals>.<genexpr>J   sß   è è € ð -ð -Ø"# !ð @A¿uºuÀVÈRÑ?PÔ?PÐQTÐRTÐQTÔ?UÐ?UÐ?UÕWZÐ[\×[`Ò[`ÐajÐlnÑ[oÔ[oÑWpÔWpÐquÐruÐquÔWvÐWvÐWvÐxy×x}Òx}ð  Hð  JLñ  yMô  yMð  NQð  OQð  NQô  yRð  yRð  yRð  Sð -ð -ð -ð -ð -ð -r3   u     (khÃ´ng cÃ³ luáº­t má»›i)c              3   ó:   K  — | ]}d t          |¦  «        z   V — ŒdS )z  ! NrC   rE   s     r   rH   zsoan_mail.<locals>.<genexpr>L   s,   è è € ÐJÐJ¨1�v¥ A¡¤‘ÐJÐJÐJÐJÐJÐJr3   Úxung_dotu
     (khÃ´ng)ua   [HLQT] Ä�Ã£ PHÃ‚N TÃ�CH & Ä�á»�I CHIáº¾U xong â€” ca #%s Â· %s (%d khÃ¡c biá»‡t, %d luáº­t má»›i)uø  Ä�Ã£ xong bÆ°á»›c Ä�á»�I CHIáº¾U: quy trÃ¬nh thá»±c táº¿ báº¡n nháº­p â†” quy trÃ¬nh agent Ä‘á»� nghá»‹.

Ca       : #%s Â· mÃ£ mÃ u: %s
KhÃ¡c biá»‡t: %d cÃ´ng Ä‘oáº¡n Â· Luáº­t má»›i rÃºt ra: %d

KHÃ�C BIá»†T CHÃ�NH:
%s

LUáº¬T Má»šI Ä�á»€ XUáº¤T GHI VÃ€O CSDL A:
%s

XUNG Ä�á»˜T Vá»šI LUáº¬T CÅ¨:
%s

TÃ“M Táº®T: %s

>> Má»Ÿ trang ca, nháº­p Máº¬T KHáº¨U XÃ�C NHáº¬N Ä‘á»ƒ ghi cÃ¡c ná»™i dung trÃªn vÃ o CSDL A: %s
   (ChÆ°a nháº­p máº­t kháº©u thÃ¬ CSDL A giá»¯ nguyÃªn â€” agent chá»‰ Ä‘á»� xuáº¥t.)
Úphan_tich_fileu$   [HLQT] Ä�Ãƒ GHI VÃ€O CSDL A â€” ca #u    (quy trÃ¬nh id Ú	qt_moi_idú, Úso_luat_themu    luáº­t má»›i)uX   Ä�Ã£ ghi vÃ o CSDL A (sau khi báº¡n nháº­p máº­t kháº©u xÃ¡c nháº­n).

Ca            : #u    Â· mÃ£ mÃ u: u   
Quy trÃ¬nh má»›i : id Úde_nghi_qt_tenu   quy trÃ¬nh thá»±c táº¿éd   u9    (Ä‘Ã£ gá»¡ tÃªn khÃ¡ch, áº©n danh)
Sá»‘ bÆ°á»›c       : u    Â· Luáº­t má»›i thÃªm: u   
Thá»�i Ä‘iá»ƒm ghi : Úngay_bo_sunguv   

CSDL A Ä‘Ã£ tá»± dá»±ng láº¡i gÃ³i kiáº¿n thá»©c â‡’ láº§n Ä‘á»� nghá»‹ sau sáº½ dÃ¹ng luáº­t má»›i.

>> Xem láº¡i: c                 ó   — g | ]}|¯|‘ŒS © rj   )rF   r7   s     r   ú
<listcomp>zsoan_mail.<locals>.<listcomp>_   s   € Ð;Ð;Ð;�Q¸Ð;ˆqÐ;Ð;Ð;r3   c                 óT   — g | ]%}|¯t           j                             |¦  «        ¯#|‘Œ&S rj   )ÚosÚpathÚexists)rF   Úks     r   rk   zsoan_mail.<locals>.<listcomp>`   s0   € Ð>Ð>Ð>˜! aÐ>­B¬G¯NªN¸1Ñ,=Ô,=Ð>�AÐ>Ð>Ð>r3   )r   Ú
URL_PUBLICÚintr2   r*   r)   )r   rT   r+   ÚmaÚlinkÚtdÚttÚkemÚkbÚluatÚdong_kbÚ	dong_luatÚxds                r   Ú	soan_mailr}   3   sÁ  € à	�Š�Ñ	Ô	Ð	3Ð3€BÝ%˜:˜: r¨$¤x xÐ0€DØˆs‚{�{€{ØKMÈdÌ8È8È8ÐUWÐUWÐXˆˆð �D”��˜2˜2˜2˜rŸvšv hÑ/Ô/Ð8°5Ð8Ð8¸"¿&º&ÀÑ:LÔ:LÐ:UÐPUÐ:UÐ:UØ—’�w‘”Ð( 5Ð(Ð(¨1¯5ª5°©?¬?Ð+@¸bÀ$À3À$Ô*GÐ*GÐ*GÈÏÊÈyÑIYÔIYÐIbÐ]bÐIbÐIbÝ�R—V’V˜NÑ+Ô+Ð0¨qÑ1Ô1Ð1Ð1°A·E²E¸)Ñ4DÔ4DÐ4MÈÈtÐPSÈtÔ3TÐ3TÐ3TÝ˜Q‘”Ð3Ð#3Ð3Ð3°T·Y²YÐ>vÐ>vÐYZ×Y^ÒY^Ð_mÑYnÔYnÐYtÐrtÐ>vÑ>vÔ>vÑ5vÔ5vð  6Ið  {Ið  6Ið  6IØ��ð	ˆð +-¯&ª&°Ñ*@Ô*@ÐHˆr�vŠv�nÑ%Ô%Ð&Ð&Àbˆ‰Ø	�Š‰Ø�UŠU�;ÑÔÐ% 2ˆØ�uŠu�ZÑ Ô Ð& BˆØ—)’)ð -ð -à%'¨¨¨¤Vð-ñ -ô -ñ -ô -ð Nà0Mð 	ð —I’Ið -ð -Ø'+ð-ñ -ô -ñ -ô -ð NØ0Mð 	à�YŠYÐJÐJ°·²°zÑ1BÔ1BÐ1HÀbÐJÑJÔJÑJÔJÐZÈlˆØpÐtvÐw{Ôt|ð  Aõ  CFð  GIñ  CJô  CJõ  LOð  PTñ  LUô  LUð  tVñ  Vˆðið
 �D”˜2�s 2™wœw­¨D©	¬	°7¸IÀrÈAÏEÊEÐR[ÑL\ÔL\ÐLeÐ`eÐgkÐhkÐgkÔKlÐnrÐsñtˆð -/¯FªFÐ3CÑ,DÔ,DÐLˆr�vŠvÐ&Ñ'Ô'Ð(Ð(È"ˆˆð! 
ð& ˆtŒHˆHˆH�b�b�b˜"Ÿ&š& Ñ-Ô-Ð-Ð-¨r¯vªv°nÑ/EÔ/EÐ/EÐ/EðGˆˆð ')¨¤h h h°°°°B·F²F¸;Ñ4GÔ4GÐ4GÐ4GØ#%§6¢6Ð*:Ñ#;Ô#;Ð#WÐ?WÐY]ÐZ]ÐY]Ô"^Ð"^Ð"^Ø"$§&¢&¨Ñ"8Ô"8Ð"8Ð"8¸"¿&º&ÀÑ:PÔ:PÐ:PÐ:PÐRT×RXÒRXÐYgÑRhÔRhÐRhÐRhÐjnÐjnÐjnðpˆð <Ð;˜2Ÿ6š6Ð"2Ñ3Ô3Ð5Ð;Ñ;Ô;ˆØˆrÐ>Ð>˜sÐ>Ñ>Ô>Ð>Ð>r3   c                 óš  — t          ¦   «         }|                     ¦   «         }d„ |                     d¦  «        D ¦   «         }|                     d| f¦  «                             ¦   «         }|                     ¦   «          |sdd| z  fS t          t          ||¦  «        ¦  «        }	 |dk    r)t          j        | 	                    d¦  «        pd¦  «        n(t          j        | 	                    d	¦  «        pd¦  «        }n# t          $ r i }Y nw xY wt          |¦  «        }d
dddœ 	                    |d
¦  «        }	|skd}
t          ¦   «         }|                     d|	z  |
| f¦  «         |                     ¦   «          |                     ¦   «          t          d|
z  d¬¦  «         d|
fS t          j                             t"          ¦  «        s_dt"          z  }
t          ¦   «         }|                     d|	z  |
| f¦  «         |                     ¦   «          |                     ¦   «          d|
fS t%          |||¦  «        \  }}}t&          j        t"          d|d|d|g}|r	|dg|z   z  }t+          j        |ddddt.          d¬¦  «        }|j        pd|j        pdz                        ¦   «         }t7          |¦  «        }t9          t          j                             |d|z  ¦  «        dd¬¦  «                             |d d!…         ¦  «         t?          j         d"|¦  «        }|r| !                    d#¦  «        nd}|j"        d$k    o-d%| #                    ¦   «         v pd&| #                    ¦   «         v p|}|r#d'|›d(tI          j%        d)¦  «        ›|rd*|z  nd›�nd+|d,d …         z  }
t          ¦   «         }|                     d|	z  |
| f¦  «         |                     d-tI          j%        d.¦  «        d/| ›d0|›�d1|›d2|
›d3|d d4…         ›�d5f¦  «         |                     ¦   «          |                     ¦   «          t          d6|›d7|
›�d¬¦  «         ||
fS )8uo   Gá»­i email bÃ¡o cho ngÆ°á»�i dÃ¹ng á»Ÿ má»‘c 'p' (Ä‘á»� nghá»‹) / 'c' (phÃ¢n tÃ­ch) / 'ghi' (Ä‘Ã£ ghi CSDL A).c                 ó   — g | ]
}|d          ‘ŒS ©r   rj   rE   s     r   rk   zbao_mail.<locals>.<listcomp>g   ó   € Ð
GÐ
GÐ
G�Aˆ1ˆQŒ4Ð
GÐ
GÐ
Gr3   ú PRAGMA table_info(huan_luyen_ca)ú&SELECT * FROM huan_luyen_ca WHERE id=?Fõ   khÃ´ng tháº¥y ca #%sr7   Úde_nghi_jsonú{}Úde_xuat_jsonÚbao_pÚbao_cÚbao_ghi)r7   rK   Úghiu\   chÆ°a cÃ³ email nháº­n thÃ´ng bÃ¡o (Ä‘iá»�n email á»Ÿ Ã´ táº¡o ca hoáº·c file email_bao.txt)z(UPDATE huan_luyen_ca SET %s=? WHERE id=?u      BÃ�O: %sT©Úflushu   thiáº¿u script gá»­i mail: %sz--toz	--subjectz--body-textz--attachr   Úreplaceé,  )Úcapture_outputÚtextr   ÚerrorsÚcwdÚtimeoutr   z_log_mail_%s.txtÚwr   Nip  z4"?(?:id|messageId)"?\s*[:=]\s*"?([0-9a-zA-Z_-]{12,})r   r   u
   Ä‘Ã£ gá»­iÚsentu   Ä‘Ã£ gá»­i tá»›i u    lÃºc z%H:%M %d/%mz (id %s)u   Lá»–I gá»­i mail: %si8ÿÿÿúDINSERT INTO nhat_ky_hlqt (ngay,viec,chi_tiet,nguon) VALUES (?,?,?,?)ú%Y-%m-%d %H:%Mu    BÃ¡o cho ngÆ°á»�i dÃ¹ng â€” ca #u    má»‘c u   Tá»›i r8   u    Â· tiÃªu Ä‘á»�: é–   zworker HLQTu	      BÃ�O (z): )&Únoi_dbÚcursorÚexecuteÚfetchoneÚcloseÚdictÚzipÚjsonÚloadsr   r   r   ÚcommitÚprintrm   rn   ro   ÚMAIL_SCRIPTr}   ÚsysÚ
executableÚ
subprocessÚrunÚAPPÚstdoutÚstderrr   Ú
thu_muc_car   r*   ÚwriteÚreÚsearchÚgroupÚ
returncodeÚlowerÚtimeÚstrftime)Úca_idrT   ÚconrK   ÚcotÚrr   r+   ÚtoÚcot_baorv   Útieu_deÚthanrw   Úargvr7   r-   ÚdÚmÚid_thuÚoks                        r   Úbao_mailrÃ   c   sª  € å
‰(Œ(€CØ�
Š
‰Œ€AØ
GÐ
G˜ŸšÐ#EÑFÔFÐ
GÑ
GÔ
G€CØ	�	Š	Ð:¸U¸HÑEÔE×NÒNÑPÔP€AØ‡I‚I�K„K€KØð 5ØÐ,¨uÑ4Ð4Ð4Ý	�c�#�q‰kŒkÑ	Ô	€BðØ:>À#º+¸+�DŒJ�r—v’v˜nÑ-Ô-Ð5°Ñ6Ô6Ð6Í4Ì:ÐVX×V\ÒV\Ð]kÑVlÔVlÐVtÐptÑKuÔKuˆˆøÝð ð ð Øˆˆˆðøøøå	�B‰Œ€BØ '°)Ð<Ð<×@Ò@ÀÀwÑOÔO€GØð ØkˆÝ‰hŒhˆ˜ŸšÐ$NÐQXÑ$XÐ[]Ð_dÐZeÑfÔfÐfÐhk×hrÒhrÑhtÔhtÐhtÐvy×vÒvñ  wBô  wBð  wBÝˆm˜bÑ ¨Ð-Ñ-Ô-Ð-Ø�bˆyÐÝŒ7�>Š>�+Ñ&Ô&ð Ø,­{Ñ:ˆÝ‰hŒhˆ˜ŸšÐ$NÐQXÑ$XÐ[]Ð_dÐZeÑfÔfÐfÐhk×hrÒhrÑhtÔhtÐhtÐvy×vÒvñ  wBô  wBð  wBØ�bˆyÐÝ" 2 t¨QÑ/Ô/Ñ€GˆT�3ÝŒN�K¨°°[À'È=ÐZ^Ð_€DØ
ð #Ø��˜sÑ"Ñ"ˆÝŒ�t¨D°tÀgÐV_ÕehÐruÐvÑvÔv€AØŒ8ˆ>�r˜aœh˜n¨"Ñ
-×	4Ò	4Ñ	6Ô	6€BÝ�2‰Œ€AÝ�Œ�Š�aÐ+¨dÑ2Ñ	3Ô	3°SÀ7ÐKÑKÔK×QÒQÐRTÐUZÐVZÐUZÔR[Ñ\Ô\Ð\Ý
Œ	ÐIÈ2ÑNÔN€AØÐ$ˆQ�WŠW�Q‰ZŒZˆZ "€FØ	
Œ˜Ò	Ð	] °·²±
´
Ð :Ð \¸fÈÏÊÉ
Ì
Ð>RÐ \ÐV\€BØ|~ð 
2ð 
2¨R¨R¨Rµ´¸}Ñ1MÔ1MÐ1MÐhnÐOvÐPZÐ]cÑPcÐPcÐtvÐOvÐ
wÐ
wØ$ r¨$¨%¨%¤yÑ0ð å
‰(Œ(€CØ‡K‚KÐ:¸WÑDÀrÈ5ÀkÑRÔRÐRØ‡K‚KÐVÝ”Ð/Ñ0Ô0Ð0ÐchÐchÐchÐjnÐjnÐ2oÐ2oØ8:¸¸¸B¸B¸BÀÈÈÈÄÀÐNÐP]ð_ñ`ô `ð `ð ‡J‚J�L„L€LØ‡I‚I�K„K€KÝ	€E    b bÐ
)°Ð6Ñ6Ô6Ð6Øˆrˆ6€Ms   Â&AC? Ã?DÄDc                 ó˜  — t          ¦   «         }d„ |                     d¦  «        D ¦   «         }|                     d| f¦  «                             ¦   «         }|                     ¦   «          |sdS t	          t          ||¦  «        ¦  «        }|                     d¦  «        rdn|                     d¦  «        rdnd	}t          | |¦  «        S )
uU   Báº¥m 'gá»­i láº¡i thÃ´ng bÃ¡o' trÃªn web: gá»­i láº¡i theo má»‘c xa nháº¥t Ä‘Ã£ cÃ³.c                 ó   — g | ]
}|d          ‘ŒS r€   rj   rE   s     r   rk   zgui_lai_bao.<locals>.<listcomp>—   s   € Ð
IÐ
IÐ
I�Aˆ1ˆQŒ4Ð
IÐ
IÐ
Ir3   r‚   rƒ   )Fu   khÃ´ng tháº¥y caÚ
da_bo_sungr‹   rb   rK   r7   )rš   rœ   r�   rž   rŸ   r    r   rÃ   )r¶   r·   r¸   r¹   r   rT   s         r   Úgui_lai_baorÇ   ”   s¾   € å
‰(Œ(€CØ
IÐ
I˜ŸšÐ%GÑHÔHÐ
IÑ
IÔ
I€CØ�ŠÐ<¸u¸hÑGÔG×PÒPÑRÔR€AØ‡I‚I�K„K€KØð )Ø(Ð(Ý	�c�#�q‰kŒkÑ	Ô	€BØ—F’F˜<Ñ(Ô(ÐXˆ5ˆ5°b·f²fÐ=MÑ6NÔ6NÐ/W¨s¨sÐTW€DÝ�E˜4Ñ Ô Ð r3   c                  óÜ   — t          j        t          ¦  «        } |                      ¦   «         }|                     d¦  «         |                     d¦  «         |                      ¦   «          | S )Na±  CREATE TABLE IF NOT EXISTS huan_luyen_ca (
        id INTEGER PRIMARY KEY AUTOINCREMENT, tao_luc TEXT, nguoi_nhap TEXT,
        ma_mau TEXT, he_son TEXT, loai_nen TEXT, yeu_cau TEXT, ghi_chu TEXT,
        anh_vao TEXT, anh_khac TEXT, trang_thai TEXT DEFAULT 'cho_de_nghi',
        de_nghi_luc TEXT, de_nghi_file TEXT, de_nghi_giay REAL,
        de_nghi_qt_id INTEGER, de_nghi_qt_ten TEXT, de_nghi_tom_tat TEXT, de_nghi_json TEXT,
        thuc_te_text TEXT, thuc_te_luc TEXT, thuc_te_file TEXT,
        phan_tich_luc TEXT, phan_tich_file TEXT, de_xuat_json TEXT,
        da_bo_sung INTEGER DEFAULT 0, ngay_bo_sung TEXT, qt_moi_id INTEGER, so_luat_them INTEGER,
        nguon TEXT, loi TEXT)zˆCREATE TABLE IF NOT EXISTS nhat_ky_hlqt (
        id INTEGER PRIMARY KEY AUTOINCREMENT, ngay TEXT, viec TEXT, chi_tiet TEXT, nguon TEXT))Úsqlite3ÚconnectÚDBr›   rœ   r£   )r·   rK   s     r   rš   rš   ¢   sl   € Ý
Œ/�"Ñ
Ô
€CØ�
Š
‰Œ€AØ‡I‚Ið 	!ñ 	"ô 	"ð 	"ð ‡I‚Ið bñ cô cð cà‡J‚J�L„L€LØ€Jr3   c                 ó¶   — t           j                             t          d| d         t	          j        d¦  «        fz  ¦  «        }t          j        |d¬¦  «         |S )NzC%04d_%sr6   z%d%mTr	   )rm   rn   r*   ÚVIECr´   rµ   Úmakedirs)r   r¿   s     r   r­   r­   µ   sI   € Ý
Œ�Š•T˜:¨¨D¬µ4´=ÀÑ3HÔ3HÐ(IÑIÑJÔJ€AÝ„K�˜DÐ!Ñ!Ô!Ð!Ø€Hr3   r   c                 ó°   — 	 t          j        t          j        d¦  «        ||| dœt	          t
          dd¬¦  «        d¬¦  «         d S # t          $ r Y d S w xY w)Nú%Y-%m-%d %H:%M:%S)Úlucr   r   Ú
trang_thair•   r   r   F©Úensure_ascii)r¡   Údumpr´   rµ   r   ÚNHIPr   )rÒ   r¶   r   s      r   Únhipr×   »   s�   € ðÝŒ	�$œ-Ð(;Ñ<Ô<ÀEÐSWÐgqÐrÐrÝ•t˜S¨7Ð3Ñ3Ô3À%ð	Iñ 	Iô 	Ið 	Ið 	Ið 	Iøåð ð ð Øˆˆðøøøs   ‚AA Á
AÁAé`	  c           
      óè   — t           dd| z  dt          dt          dddg
}t          j        ¦   «         }t	          j        |ddd	d
|¬¦  «        }t          t          j        ¦   «         |z
  d¦  «        }||fS )u[   Gá»�i agy headless; prompt truyá»�n qua FILE (ASCII argv) Ä‘á»ƒ giá»¯ dáº¥u tiáº¿ng Viá»‡t.z-pzIRead the instruction file "%s" (UTF-8, Vietnamese) and follow it exactly.z--modelz	--add-dirz--dangerously-skip-permissionsz--output-formatr¡   Tr   rŽ   )r�   r‘   r   r’   r”   r   )ÚAGYÚMODELÚGOCr´   r¨   r©   Úround)Úten_file_yeu_cauÚgiay_toi_dar¾   Út0r¹   Úgiays         r   Úgoi_agyrâ   Ä   sv   € å�ÐbÐeuÑuØ•u˜k­3Ð0PÐRcÐekðm€Då	Œ‰Œ€BÝŒ�t¨D°tÀgÐV_ÐitÐuÑuÔu€AÝ•”‘”˜rÑ! 1Ñ%Ô%€DØˆdˆ7€Nr3   c                 ó|  — t          j        d| t           j        ¦  «        }t          |¦  «        D ](}	 t	          j        |¦  «        c S # t          $ r Y Œ%w xY wt          j        d|                      ¦   «         ¦  «        }|r:	 t	          j        | 	                    d¦  «        ¦  «        S # t          $ r i cY S w xY wi S )u8   Láº¥y khá»‘i ```json ... ``` CUá»�I trong file markdown.z```json\s*(\{.*?\})\s*```z(\{[\s\S]*\})\s*$r   )
r¯   ÚfindallÚSÚreversedr¡   r¢   r   r°   r   r±   )ÚmdÚkhoirp   rÀ   s       r   Úlay_jsonré   Î   sÐ   € åŒ:Ð2°B½¼Ñ=Ô=€DÝ�d‰^Œ^ð ð ˆð	Ý”:˜a‘=”=Ð Ð Ð øÝð 	ð 	ð 	ØˆHð	øøøå
Œ	Ð&¨¯ª©
¬
Ñ3Ô3€AØð ð	Ý”:˜aŸgšg a™jœjÑ)Ô)Ð)øÝð 	ð 	ð 	ØˆIˆIˆIð	øøøà€Is#   ³A	Á	
AÁAÂ&B* Â*B9Â8B9c                 óÆ  — | s| g fS t          j        t          ¦  «        }d„ |                     d¦  «                             ¦   «         D ¦   «         }|d„ |                     d¦  «                             ¦   «         D ¦   «         z  }|                     ¦   «          g }| }t          |¦  «        D ]²}t          |¦  «                             ¦   «         }t          |¦  «        dk     rŒ7t          j        t          j        |¦  «        |t          j        ¦  «        rI|                     |¦  «         t          j        t          j        |¦  «        d|t          j        ¬¦  «        }Œ³||fS )u`   Bá»� tÃªn khÃ¡ch hÃ ng Ä‘Ã£ biáº¿t khá»�i vÄƒn báº£n trÆ°á»›c khi ghi CSDL A (luáº­t áº©n danh).c                 ó   — g | ]
}|d          ‘ŒS ©r   rj   ©rF   r¹   s     r   rk   zan_danh.<locals>.<listcomp>ä   s.   € ð Mð Mð M�Aˆ1ˆQŒ4ð Mð Mð Mr3   z_SELECT DISTINCT khach_hang FROM quy_trinh WHERE khach_hang IS NOT NULL AND length(khach_hang)>3c                 ó   — g | ]
}|d          ‘ŒS rì   rj   rí   s     r   rk   zan_danh.<locals>.<listcomp>æ   s   € Ð~Ð~Ð~�QˆAˆaŒDÐ~Ð~Ð~r3   zISELECT DISTINCT khach_hang FROM danh_muc_mau WHERE khach_hang IS NOT NULLé   u   ã€ŒkhÃ¡ch hÃ ngã€�)Úflags)rÉ   rÊ   rË   rœ   Úfetchallrž   ÚsetrD   r   r)   r¯   r°   ÚescapeÚIr(   Úsub)r‘   r·   ÚtenÚda_boÚoutÚts         r   Úan_danhrú   ß   sF  € àð Ø�RˆxˆÝ
Œ/�"Ñ
Ô
€CðMð M˜Ÿšð &@ñ Aô AßAIÂÁÄðMñ Mô M€CàÐ~Ð~˜#Ÿ+š+Ð&qÑrÔr×{Ò{Ñ}Ô}Ð~Ñ~Ô~Ñ~€CØ‡I‚I�K„K€KØ€EØ
€CÝ�‰XŒXð Nð NˆÝ�‰FŒF�LŠL‰NŒNˆÝˆq‰6Œ6�AŠ:ˆ:ØÝŒ9•R”Y˜q‘\”\ 3­¬Ñ-Ô-ð 	NØ�LŠL˜‰OŒOˆOÝ”&�œ 1™œÐ';¸SÍÌÐMÑMÔMˆCøØ�ˆ:Ðr3   c                 ó®  — t          | ¦  «        }| d         pd}t          j        | d         pd¦  «        }t          j                             |d¦  «        }t          |dd¬¦  «                             d	t          ›d
|›d|rdd                     |¦  «        z   dz   nd›d| d         pd›d| d         pd›d| d         pd›d| d         pd›d| d         pd›dt          j                             |d¦  «        ›d�¦  «         t          d| d         d¦  «         t          |¦  «        \  }}t          t          j                             |d¦  «        dd¬¦  «                             |j        pdd z   |j        pdz   ¦  «         t          j                             |d¦  «        }t          j                             |¦  «        sd!d"|i fS t          |d¬¦  «                             ¦   «         }t          |¦  «        }	t!          ¦   «         }
|
                     d#t%          j        d$¦  «        |||	                     d%¦  «        |	                     d&¦  «        |	                     d'¦  «        pdd d(…         t          j        |	d!¬)¦  «        | d         f¦  «         |
                     ¦   «          |
                     ¦   «          |	rt1          | d         d*¦  «         d+d||	fS ),NÚanh_vaor   Úanh_khacz[]zYEU_CAU_DE_NGHI.txtr•   r   r   uÃ   Báº¡n lÃ  chuyÃªn gia quy trÃ¬nh sÆ¡n gá»— ná»™i tháº¥t cá»§a BTChem.

TÃ€I LIá»†U PHáº¢I Ä�á»ŒC:
1. GÃ³i kiáº¿n thá»©c CSDL A (34 bÆ°á»›c chuáº©n Â· 118 quy trÃ¬nh Â· 29 luáº­t huáº¥n luyá»‡n): u*   
2. áº¢nh Báº¢N MÃ€U cáº§n nháº­n diá»‡n: r&   u   3. áº¢nh phá»¥: z; u4   
THÃ”NG TIN CA (do chá»§ nhÃ¢n nháº­p):
- mÃ£ mÃ u: r5   u   (khÃ´ng ghi)u    | há»‡ sÆ¡n (náº¿u cÃ³): r9   u    | loáº¡i ná»�n/loáº¡i gá»—: r:   u+   
- yÃªu cáº§u cháº¥t lÆ°á»£ng/Ä‘á»™ bÃ³ng: Úyeu_cauu   
- ghi chÃº: Úghi_chuu9  

VIá»†C Cáº¦N LÃ€M (ghi Dáº¦N ra file, Ä‘á»�c tá»›i Ä‘Ã¢u ghi tá»›i Ä‘Ã³):
1. Ä�á»ŒC áº¢NH Báº¢N MÃ€U: tÃ´ng mÃ u (sÃ¡ng/tá»‘i, áº¥m/láº¡nh), Ä‘á»™ trong hay Ä‘á»¥c, vÃ¢n gá»— cÃ²n rÃµ hay bá»‹ láº¥p, hiá»‡u á»©ng
   (giáº£ cá»• / sá»�c glaze / highlight / tá»‘i cáº¡nh / lá»™ má»™c), Ä‘á»™ bÃ³ng (má»� / bÃ¡n bÃ³ng / bÃ³ng), cÃ³ khuyáº¿t táº­t gÃ¬.
   Náº¿u áº£nh khÃ´ng Ä‘á»§ Ä‘á»ƒ káº¿t luáº­n thÃ¬ ghi rÃµ "khÃ´ng xÃ¡c Ä‘á»‹nh Ä‘Æ°á»£c", KHÃ”NG suy diá»…n.
2. CHá»ŒN Ä�ÃšNG **Má»˜T** QUY TRÃŒNH trong 118 quy trÃ¬nh cá»§a CSDL A lÃ  kháº£ dÄ© vÃ  SÃ�T NHáº¤T vá»›i báº£n mÃ u
   (nÃªu rÃµ id + tÃªn quy trÃ¬nh + vÃ¬ sao khá»›p). Náº¿u cáº§n Ä‘iá»�u chá»‰nh thÃ¬ nÃªu rÃµ Ä‘iá»�u chá»‰nh gÃ¬ â€” nhÆ°ng
   káº¿t quáº£ váº«n chá»‰ lÃ  **Má»˜T Ä‘á»� nghá»‹ duy nháº¥t**, gá»“m chuá»—i bÆ°á»›c theo Bá»˜ 34 BÆ¯á»šC CHUáº¨N.
3. Báº¢NG BÆ¯á»šC Ä�á»€ NGHá»Š: thá»© tá»± | bÆ°á»›c chuáº©n (sá»‘ + tÃªn) | chi tiáº¿t Ã¡p dá»¥ng (loáº¡i sÆ¡n/bÃ³ng, tá»‰ lá»‡, thá»�i gian
   khÃ´, Ä‘á»‹nh lÆ°á»£ng, cÃ¡ch thi cÃ´ng). Chá»— nÃ o suy luáº­n thÃ¬ ghi "(suy luáº­n)".
4. Ä�Iá»‚M KHá»šP / CHÆ¯A CHáº®C CHáº®N cáº§n chá»§ nhÃ¢n xÃ¡c nháº­n; cÃ¡c LUáº¬T cá»§a CSDL A Ä‘Ã£ Ã¡p dá»¥ng.

Báº®T BUá»˜C:
- áº¨N DANH: KHÃ”NG ghi tÃªn khÃ¡ch hÃ ng, KHÃ”NG ghi tÃªn ká»¹ thuáº­t viÃªn; chá»‰ dÃ¹ng mÃ£ mÃ u + loáº¡i ná»�n.
- Ghi káº¿t quáº£ ra Ä�ÃšNG file: ú
DE_NGHI.mdun  
- Káº¿t thÃºc file báº±ng khá»‘i ```json``` vá»›i Ä‘Ãºng cÃ¡c khoÃ¡:
  {"qt_id": <sá»‘>, "qt_ten": "...", "do_khop": <%, sá»‘>, "tom_tat": "1-3 cÃ¢u",
   "buoc": [{"thu_tu":1, "buoc_chuan_so":<sá»‘>, "ten_buoc":"...", "chi_tiet":"..."}],
   "ly_do": "...", "can_xac_nhan": ["..."], "luat_ap_dung": ["..."]}
- DÃ²ng cuá»‘i cÃ¹ng cá»§a file in Ä‘Ãºng chá»¯: HOAN TAT
Ú	dang_chayr6   ÚPz_log_agy_de_nghi.txtú
--- STDERR ---
Fu?   AGY khÃ´ng táº¡o Ä‘Æ°á»£c DE_NGHI.md (xem _log_agy_de_nghi.txt)zÍUPDATE huan_luyen_ca SET trang_thai='da_de_nghi', de_nghi_luc=?, de_nghi_file=?, de_nghi_giay=?,
                   de_nghi_qt_id=?, de_nghi_qt_ten=?, de_nghi_tom_tat=?, de_nghi_json=?, loi=NULL WHERE id=?rÐ   r;   r<   r@   iÜ  rÓ   r7   T)r­   r¡   r¢   rm   rn   r*   r   r®   Ú	KIEN_THUCr×   râ   r«   r¬   ro   r   ré   rš   rœ   r´   rµ   r   Údumpsr£   rž   rÃ   )r   r¿   ÚanhÚanh_phurþ   r¹   rá   Úfrç   r+   r·   s              r   Úbuoc_pr	  õ   sæ  € Ý�2‰Œ€AØ
ˆYŒ-Ð
˜2€CÝŒj˜˜JœÐ/¨4Ñ0Ô0€GÝŒg�lŠl˜1Ð3Ñ4Ô4€GÝˆ�# Ð(Ñ(Ô(×.Ò.Ð.õ< €y€y�#�#�#È7ÐZÐ*¨T¯YªY°wÑ-?Ô-?Ñ?À$ÑFÐFÐXZÐZÐZØ	ˆ(„|Ð%�~Ð%Ð% r¨(¤|Ð'9°rÐ'9Ð'9¸2¸j¼>Ð;OÈRÐ;OÐ;OÐQSÐT]ÔQ^ÐQdÐbdÐQdÐQdÐfhÐirÔfsÐfyÐwyÐfyÐfyÝ	„w‡|‚|�A�|Ñ$Ô$Ð$Ð$ðA 0&ñ  'ô  'ð  'õD 	ˆ�b˜”h Ñ$Ô$Ð$Ý�gÑÔ�G€A€tÝ�Œ�Š�aÐ/Ñ	0Ô	0°#ÀÐHÑHÔH×NÒNØ	
Œˆ�RÐ/Ñ/°1´8°>¸rÑBñDô Dð Då
Œ�Š�Q˜Ñ%Ô%€AÝŒ7�>Š>˜!ÑÔð bØÐWÐY]Ð_aÐaÐaÝ	ˆa˜'Ð	"Ñ	"Ô	"×	'Ò	'Ñ	)Ô	)€BÝ�‰Œ€AÝ
‰(Œ(€CØ‡K‚Kð på”Ð2Ñ3Ô3°Q¸¸a¿eºeÀG¹n¼nÈaÏeÊeÐT\ÉoÌoØ—%’%˜	Ñ"Ô"Ð( b¨%¨4¨%Ô0µ$´*¸QÈUÐ2SÑ2SÔ2SÐUWÐX\ÔU]ð_ñ`ô `ð `ð ‡J‚J�L„L€LØ‡I‚I�K„K€KØð  Ý��D”˜3ÑÔÐØ��T˜1ÐÐr3   c                 óp  — t          | ¦  «        }t          j                             |d¦  «        }t	          |dd¬¦  «                             | d         pd¦  «         t          j                             |d¦  «        }t	          |dd¬¦  «                             dt          ›d	| d
         pd›dt          j                             |d¦  «        ›d|›d| d         pd›d| d         pd›d| d         pd›d| d         pd›dt          j                             |d¦  «        ›d�¦  «         t          d| d         d¦  «         t          |¦  «        \  }}t	          t          j                             |d¦  «        dd¬¦  «                             |j	        pddz   |j
        pdz   ¦  «         t          j                             |d¦  «        }t          j                             |¦  «        sdd|i fS t	          |d¬¦  «                             ¦   «         }t          |¦  «        }t          ¦   «         }	|	                     d t!          j        d!¦  «        |t%          j        |d¬"¦  «        | d         f¦  «         |	                     ¦   «          |	                     ¦   «          |rt-          | d         d#¦  «         d$d||fS )%NzQUY_TRINH_THUC_TE.txtr•   r   r   Úthuc_te_textr   zYEU_CAU_PHAN_TICH.txtuŠ  Báº¡n lÃ  chuyÃªn gia quy trÃ¬nh sÆ¡n gá»— ná»™i tháº¥t cá»§a BTChem. Báº¡n vá»«a Ä‘á»� nghá»‹ 1 quy trÃ¬nh cho má»™t báº£n mÃ u;
nay chá»§ nhÃ¢n cung cáº¥p QUY TRÃŒNH THá»°C Táº¾ mÃ  báº£n mÃ u Ä‘Ã³ Ä‘Ã£ Ä‘Æ°á»£c lÃ m. Nhiá»‡m vá»¥: Ä�á»�I CHIáº¾U vÃ  Ä�á»€ XUáº¤T Bá»” SUNG CSDL A.

TÃ€I LIá»†U PHáº¢I Ä�á»ŒC:
1. GÃ³i kiáº¿n thá»©c CSDL A (34 bÆ°á»›c chuáº©n Â· 118 quy trÃ¬nh Â· 29 luáº­t): u   
2. áº¢nh Báº¢N MÃ€U: rü   u    
3. Ä�á»� nghá»‹ Ä‘Ã£ Ä‘Æ°a ra: r   uB   
4. QUY TRÃŒNH THá»°C Táº¾ (do chá»§ nhÃ¢n nháº­p, nguyÃªn vÄƒn): u   
5. ThÃ´ng tin ca: mÃ£ mÃ u r5   u    | há»‡ sÆ¡n r9   u    | loáº¡i ná»�n r:   u    | yÃªu cáº§u rþ   uõ  
   (Trong JSON: trÆ°á»�ng "ma_mau" pháº£i lÃ  mÃ£ mÃ u tháº­t cá»§a báº£n mÃ u; náº¿u ca khÃ´ng ghi mÃ£ mÃ u thÃ¬ Ä‘á»ƒ chuá»—i "khÃ´ng ghi" â€”
    TUYá»†T Ä�á»�I khÃ´ng dÃ¹ng tÃªn thÆ° má»¥c hay mÃ£ ca lÃ m mÃ£ mÃ u.)

VIá»†C Cáº¦N LÃ€M (ghi Dáº¦N ra file):
1. Báº¢NG Ä�á»�I CHIáº¾U theo tá»«ng cÃ´ng Ä‘oáº¡n: Ä�á»€ NGHá»Š | THá»°C Táº¾ | loáº¡i khÃ¡c biá»‡t (giá»‘ng / THÃŠM bÆ°á»›c / THIáº¾U bÆ°á»›c /
   khÃ¡c thá»© tá»± / khÃ¡c chi tiáº¿t) | nháº­n xÃ©t vÃ¬ sao khÃ¡c.
2. Ä�á»ŒC Láº I áº¢NH Ä‘á»ƒ xÃ¡c nháº­n thá»±c táº¿ cÃ³ khá»›p vá»›i quy trÃ¬nh thá»±c táº¿ khÃ´ng â€” tÃ¡ch rÃµ "tháº¥y trÃªn áº£nh" vÃ  "suy Ä‘oÃ¡n".
3. BÃ€I Há»ŒC / LUáº¬T Má»šI rÃºt ra Ä‘á»ƒ láº§n sau Ä‘á»� nghá»‹ sÃ¡t hÆ¡n: má»—i luáº­t gá»“m nhÃ³m, quy táº¯c (cÃ¢u Ã¡p dá»¥ng Ä‘Æ°á»£c),
   pháº¡m vi Ã¡p dá»¥ng, vÃ  nguyÃªn vÄƒn (trÃ­ch lá»�i chá»§ nhÃ¢n náº¿u cÃ³).
4. Ä�á»€ XUáº¤T GHI VÃ€O CSDL A:
   (a) Má»˜T quy trÃ¬nh má»›i: tÃªn, há»‡ sÆ¡n, mÃ£ mÃ u, loáº¡i ná»�n, mÃ´ táº£, sá»‘ bÆ°á»›c, nguá»“n;
   (b) danh sÃ¡ch bÆ°á»›c cá»§a quy trÃ¬nh má»›i: thá»© tá»± | ná»™i dung nguyÃªn vÄƒn (rÃºt gá»�n) | sá»‘ bÆ°á»›c chuáº©n (1â€“34) | ghi chÃº;
   (c) danh sÃ¡ch luáº­t má»›i;
   (d) cáº£nh bÃ¡o náº¿u cÃ³ XUNG Ä�á»˜T vá»›i 29 luáº­t hiá»‡n cÃ³ (nÃªu rÃµ luáº­t nÃ o).
   Náº¿u thá»±c táº¿ giá»‘ng há»‡t Ä‘á»� nghá»‹ vÃ  khÃ´ng cÃ³ gÃ¬ má»›i Ä‘á»ƒ há»�c thÃ¬ ghi "KHÃ”NG CÃ“ GÃŒ Má»šI" vÃ  de_nghi_ghi = false.

Báº®T BUá»˜C:
- áº¨N DANH: KHÃ”NG ghi tÃªn khÃ¡ch hÃ ng, KHÃ”NG ghi tÃªn ká»¹ thuáº­t viÃªn.
- Ghi káº¿t quáº£ ra Ä�ÃšNG file: zPHAN_TICH.mduK  
- Káº¿t thÃºc file báº±ng khá»‘i ```json``` vá»›i Ä‘Ãºng cÃ¡c khoÃ¡:
  {"khac_biet": [{"cong_doan":"...", "de_nghi":"...", "thuc_te":"...", "loai":"..."}],
   "quy_trinh_moi": {"ten":"...", "he_son":"...", "ma_mau":"...", "loai_nen":"...", "mo_ta":"...", "so_buoc":<sá»‘>},
   "buoc": [{"thu_tu":1, "buoc_nguyen_van":"...", "buoc_chuan_so":<sá»‘>, "ghi_chu":"..."}],
   "luat_moi": [{"nhom":"...", "quy_tac":"...", "pham_vi":"...", "nguyen_van":"..."}],
   "xung_dot": ["..."], "de_nghi_ghi": true/false, "tom_tat": "1-3 cÃ¢u"}
- DÃ²ng cuá»‘i cÃ¹ng cá»§a file in Ä‘Ãºng chá»¯: HOAN TAT
r  r6   ÚCz_log_agy_phan_tich.txtr  FuC   AGY khÃ´ng táº¡o Ä‘Æ°á»£c PHAN_TICH.md (xem _log_agy_phan_tich.txt)z�UPDATE huan_luyen_ca SET trang_thai='cho_xac_nhan', phan_tich_luc=?, phan_tich_file=?,
                   de_xuat_json=?, loi=NULL WHERE id=?rÐ   rÓ   rK   T)r­   rm   rn   r*   r   r®   r  r×   râ   r«   r¬   ro   r   ré   rš   rœ   r´   rµ   r¡   r  r£   rž   rÃ   )
r   r¿   rv   rþ   r¹   rá   r  rç   r+   r·   s
             r   Úbuoc_cr  2  s°  € Ý�2‰Œ€AÝ	Œ�Š�aÐ0Ñ	1Ô	1€BÝˆˆS˜7Ð#Ñ#Ô#×)Ò)¨"¨^Ô*<Ð*BÀÑCÔCÐCÝŒg�lŠl˜1Ð5Ñ6Ô6€GÝˆ�# Ð(Ñ(Ô(×.Ò.Ð.õF €y€y�"�Y”-Ð% 2Ð%Ð%¥r¤w§|¢|°A°|Ñ'DÔ'DÐ'DÐ'DÀbÀbÀbØ	ˆ(„|Ð�rÐÐ˜2˜hœ<Ð-¨2Ð-Ð-¨r°*¬~Ð/CÀÐ/CÐ/CÀRÈ	Ä]ÐEXÐVXÐEXÐEXÝ	„w‡|‚|�A�~Ñ&Ô&Ð&Ð&ðK%0(ñ %)ô %)ð %)õN 	ˆ�b˜”h Ñ$Ô$Ð$Ý�gÑÔ�G€A€tÝ�Œ�Š�aÐ1Ñ	2Ô	2°CÀ'ÐJÑJÔJ×PÒPØ	
Œˆ�RÐ/Ñ/°1´8°>¸rÑBñDô Dð Då
Œ�Š�Q˜Ñ'Ô'€AÝŒ7�>Š>˜!ÑÔð fØÐ[Ð]aÐceÐeÐeÝ	ˆa˜'Ð	"Ñ	"Ô	"×	'Ò	'Ñ	)Ô	)€BÝ�‰Œ€AÝ
‰(Œ(€CØ‡K‚Kð :å”Ð2Ñ3Ô3°Q½¼
À1ÐSXÐ8YÑ8YÔ8YÐ[]Ð^bÔ[cÐdñfô fð fð ‡J‚J�L„L€LØ‡I‚I�K„K€KØð  Ý��D”˜3ÑÔÐØ��T˜1ÐÐr3   c                 ó  — t          ¦   «         }|                     ¦   «         }|                     d| f¦  «                             ¦   «         }|s|                     ¦   «          ddd d| z  gfS d„ |                     d¦  «        D ¦   «         }t          t          ||¦  «        ¦  «        }|d         r$|                     ¦   «          dd|d         d| z  gfS 	 t          j        |d	         pd
¦  «        }n# t          $ r i }Y nw xY w|s|                     ¦   «          ddd d| z  gfS t          j                             t          d¦  «        }t          j        |d¬¦  «         t          j                             |dt          j        d¦  «        | fz  ¦  «        }|                     ¦   «          |                     ¦   «          t%          j        t(          |¦  «         t          ¦   «         }|                     ¦   «         }|                     d¦  «        pi }	|                     d¦  «        pg }
|                     d¦  «        pg }g }t-          |                     dd¦  «        ¦  «                             ¦   «         dv r/|                     d¦  «         |                     ¦   «          ddd |fS t3          t-          |	                     d¦  «        pd| z  ¦  «        d d…         ¦  «        \  }}t3          t-          |	                     d¦  «        pd¦  «        d d…         ¦  «        \  }}||s|r6dd                     t5          t7          ||z   ¦  «        ¦  «        ¦  «        z   gng z  }t-          |	                     d¦  «        pd¦  «                             ¦   «         }t;          j        d |¦  «        s0|t          j                             tA          |¦  «        ¦  «        k    r|                     d!|z  ¦  «         d}|p|d         pd                     ¦   «         pd"d d#…         }|                     d$|d%d d t-          |	                     d&¦  «        pd¦  «        d d'…         |tC          |
¦  «        p#tE          |	                     d(¦  «        pd¦  «        |d)| z  t          j        d*¦  «        d+|	                     d,¦  «        p	|d,         pd-›d.|d/         pd-›d0|d1         pd-›�f¦  «        }|j#        }d}tI          |
d2¦  «        D ]Õ\  }}t3          t-          |                     d3¦  «        p|                     d4¦  «        pd¦  «        d d5…         ¦  «        \  }}|                     d6|tE          |                     d7¦  «        p|¦  «        ||                     d8¦  «        t-          |                     d9¦  «        pd¦  «        d d…         f¦  «         |d2z  }ŒÖd}|D �]$}t3          t-          |                     d:¦  «        pd¦  «        d d5…         ¦  «        \  }}t-          |                     d;¦  «        pd¦  «        d d…         }t-          |                     d<¦  «        pd¦  «        d d=…         }|sŒš|                     d>t          j        d*¦  «        t-          |                     d?¦  «        pd@¦  «        d d#…         |||dAdB| z  dCt          j                             |dD         pd¦  «        z  f¦  «         |d2z  }�Œ&|                     dEt          j        dF¦  «        ||| f¦  «         |                     dGt          j        dH¦  «        dI| z  dJ|||t          j                             |¦  «        fz  dKf¦  «         |                     ¦   «          |                     ¦   «          	 tK          | dL¦  «         n/# t          $ r"}|                     dM|z  ¦  «         Y d }~nd }~ww xY w	 tM          j'        tP          j)        t          j                             tT          dN¦  «        gdd¬O¦  «         tM          j'        tP          j)        dPgdd¬O¦  «         n/# t          $ r"}|                     dQ|z  ¦  «         Y d }~nd }~ww xY w||||fS )RNrƒ   r   r„   c                 ó   — g | ]
}|d          ‘ŒS r€   rj   rE   s     r   rk   z!ghi_vao_csdla.<locals>.<listcomp>z  r�   r3   r‚   rÆ   rc   u   ca #%s Ä‘Ã£ bá»• sung rá»“ir‡   r†   uC   ca #%s chÆ°a cÃ³ Ä‘á»� xuáº¥t (cháº¡y bÆ°á»›c phÃ¢n tÃ­ch trÆ°á»›c)Ú_backupTr	   z(CSDLA_bak_%s_truoc_bo_sung_HLQT_C%04d.dbz%Y%m%d_%H%MÚquy_trinh_moir   rM   Úde_nghi_ghi)ÚfalseÚ0u   khÃ´ngÚnou/   AGY káº¿t luáº­n KHÃ”NG CÃ“ GÃŒ Má»šI Ä‘á»ƒ ghirö   u   Quy trÃ¬nh tá»« ca HLQT #%dr�   Úmo_tar   i   u,   Ä‘Ã£ bá»� tÃªn khÃ¡ch khá»�i tÃªn/mÃ´ táº£: rd   r5   z^C\d{4}_\d{4}$uW   AGY tráº£ mÃ£ mÃ u lÃ  tÃªn thÆ° má»¥c ca ("%s") â€” Ä‘Ã£ bá»�, dÃ¹ng mÃ£ mÃ u cá»§a cau
   khÃ´ng ghir=   z¤INSERT INTO quy_trinh (ten,loai,khach_hang,nha_may_id,he_son,ma_mau,so_buoc,mo_ta,nguon,ngay_tai_lieu,ghi_chu)
                       VALUES (?,?,?,?,?,?,?,?,?,?,?)u   thá»±c táº¿ (HLQT)r9   r^   Úso_buocuO   HLQT ca #%d â€” áº£nh báº£n mÃ u + quy trÃ¬nh thá»±c táº¿ do chá»§ nhÃ¢n nháº­pz%Y-%m-%du   loáº¡i ná»�n: r:   r"   u    | yÃªu cáº§u: rþ   u%    | Ä‘á»� nghá»‹ trÆ°á»›c Ä‘Ã³: QT id Úde_nghi_qt_idr   r    r   iÐ  z~INSERT INTO buoc_quy_trinh (quy_trinh_id,thu_tu,buoc_nguyen_van,buoc_chuan_so,ghi_chu)
                     VALUES (?,?,?,?,?)r#   r!   rÿ   r[   r]   Ú
nguyen_vaniè  z„INSERT INTO huan_luyen (ngay,nhom,nguyen_van,quy_tac,pham_vi,trang_thai,nguon,ghi_chu)
                     VALUES (?,?,?,?,?,?,?,?)rY   ÚHLQTu   Ä�ANG Ã�P Dá»¤NGuH   HLQT ca #%d â€” Ä‘á»‘i chiáº¿u Ä‘á»� nghá»‹ vá»›i quy trÃ¬nh thá»±c táº¿uY   Bá»• sung tá»± Ä‘á»™ng sau khi chá»§ nhÃ¢n xÃ¡c nháº­n (pass) Â· báº£n Ä‘á»“i chiáº¿u: %srb   z‡UPDATE huan_luyen_ca SET da_bo_sung=1, ngay_bo_sung=?, qt_moi_id=?, so_luat_them=?,
                 trang_thai='da_bo_sung' WHERE id=?rÐ   r—   r˜   u!   Bá»• sung CSDL A tá»« ca HLQT #%duZ   ThÃªm quy_trinh id %s (%d bÆ°á»›c) + %d luáº­t huáº¥n luyá»‡n. Backup trÆ°á»›c khi ghi: %su8   chá»§ nhÃ¢n xÃ¡c nháº­n báº±ng máº­t kháº©u qua app HLQTr‹   u$   chÆ°a gá»­i Ä‘Æ°á»£c thÃ´ng bÃ¡o: %szgoi_kien_thuc_hlqt.py)r�   r”   z4C:\Claw 2\Nghien cuu\Agent-Lab\dung_goi_kien_thuc.pyu2   chÆ°a dá»±ng láº¡i Ä‘Æ°á»£c gÃ³i kiáº¿n thá»©c: %s)+rš   r›   rœ   r�   rž   rŸ   r    r¡   r¢   r   rm   rn   r*   rÜ   rÎ   r´   rµ   r£   ÚshutilÚcopy2rË   r   rD   r³   r(   rú   Úsortedrò   r   r¯   ÚmatchÚbasenamer­   r)   rr   Ú	lastrowidr'   rÃ   r¨   r©   r¦   r§   rª   ) r¶   r·   rK   r¹   r¸   r   ÚdxÚbdirÚbakÚqtr   ry   Úcanh_baorö   Úbor  Úbo2Úma_nhapÚ
ma_mau_ghiÚcurr;   Ún_buocr.   r/   ÚndÚ_Ún_luatr_   ÚqtacÚpviÚnvanr   s                                    r   Úghi_vao_csdlar2  s  s6	  € Ý
‰(Œ(€CØ�
Š
‰Œ€AØ	�	Š	Ð:¸U¸HÑEÔE×NÒNÑPÔP€AØð <Ø�	Š	‰ŒˆØ�!�TÐ2°UÑ:Ð;Ð;Ð;Ø
GÐ
G˜ŸšÐ#EÑFÔFÐ
GÑ
GÔ
G€CÝ	�c�#�q‰kŒkÑ	Ô	€BØ	ˆ,Ôð NØ�	Š	‰ŒˆØ�!�R˜”_Ð'DÀuÑ'LÐ&MÐMÐMðÝŒZ˜˜>Ô*Ð2¨dÑ3Ô3ˆˆøÝð ð ð Øˆˆˆðøøøàð kØ�	Š	‰ŒˆØ�!�TÐaÐdiÑiÐjÐjÐjõ Œ7�<Š<�˜YÑ'Ô'€DÝ„K�˜tÐ$Ñ$Ô$Ð$Ý
Œ'�,Š,�tÐGÍ4Ì=ÐYfÑKgÔKgÐinÐJoÑoÑ
pÔ
p€CØ‡J‚J�L„L€LØ‡I‚I�K„K€KÝ
„L•�SÑÔÐå
‰(Œ(€CØ�
Š
‰Œ€AØ	�Š�Ñ	 Ô	 Ð	& B€BØ�6Š6�&‰>Œ>Ð˜R€DØ�6Š6�*ÑÔÐ# €DØ€HÝ
ˆ2�6Š6�- Ñ&Ô&Ñ'Ô'×-Ò-Ñ/Ô/Ð3QÐQÐQØ�ŠÐIÑJÔJÐJØ�	Š	‰ŒˆØ�!�T˜8Ð#Ð#õ •c˜"Ÿ&š& ™-œ-ÐRÐ,IÈEÑ,QÑSÔSÐTXÐUXÐTXÔYÑZÔZ�G€CˆÝ�˜RŸVšV G™_œ_Ð2°Ñ3Ô3°E°T°EÔ:Ñ;Ô;�J€Eˆ3ØÐhjÐzÐnqÐzÐ?À$Ç)Â)ÍFÕSVÐWYÐ\_ÑW_ÑS`ÔS`ÑLaÔLaÑBbÔBbÑbÐcÐcÐxzÑz€Hå�"—&’&˜Ñ"Ô"Ð( bÑ)Ô)×/Ò/Ñ1Ô1€GÝ	„xÐ! 7Ñ+Ô+ð ¨w½"¼'×:JÒ:JÍ:ÐVXÉ>Ì>Ñ:ZÔ:ZÒ/ZÐ/ZØ�ŠÐqÐt{Ñ{Ñ|Ô|Ð|ØˆØÐI˜b œlÐ0¨b×7Ò7Ñ9Ô9ÐI¸\È4ÈCÈ4ÔP€JØ
�)Š)ð 9àÐ.°°d½CÀÇÂÀxÑ@PÔ@PÐ@VÐTVÑ<WÔ<WÐX[ÐY[ÐX[Ô<\Ð^hÝ˜‘Y”YÐ=¥# b§f¢f¨YÑ&7Ô&7Ð&<¸1Ñ"=Ô"=¸uØfÐinÑnÝ”] :Ñ.Ô.Ð.Øce×ciÒciÐjtÑcuÔcuð  dQÐy{ð  }Gô  zHð  dQð  LQð  dQð  dQØRTÐU^ÔR_ÐRhÐchÐRhÐRhÐjlÐm|Ôj}ð  kGð  BGð  kGðHð	IñJô J€Cð ŒM€EØ€FÝ˜$ Ñ"Ô"ð ð ‰ˆˆ1Ý�˜AŸEšEÐ"3Ñ4Ô4ÐO¸¿º¸jÑ8IÔ8IÐOÈRÑPÔPÐQVÐRVÐQVÔWÑXÔX‰ˆˆAØ	�	Š	ð +à�#˜aŸeše H™oœoÐ2°Ñ3Ô3°R¸¿º¸Ñ9OÔ9OÕQTÐUV×UZÒUZÐ[dÑUeÔUeÐUkÐikÑQlÔQlÐmqÐnqÐmqÔQrÐsñ	uô 	uð 	uð 	�!‰ˆˆð €FØð ñ ˆÝ�#˜aŸeše IÑ.Ô.Ð4°"Ñ5Ô5°e°t°eÔ<Ñ=Ô=‰ˆˆaÝ�!—%’%˜	Ñ"Ô"Ð( bÑ)Ô)¨$¨3¨$Ô/ˆÝ�1—5’5˜Ñ&Ô&Ð,¨"Ñ-Ô-¨e¨t¨eÔ4ˆØð 	ØØ	�	Š	ð 1å”= Ñ,Ô,­c°!·%²%¸±-´-Ð2IÀ6Ñ.JÔ.JÈ4ÈCÈ4Ô.PÐRVÐX\Ð^aØ%Ð'qÐtyÑ'yØnÕqsÔqx÷  rBò  rBð  CEð  FVô  CWð  C]ð  []ñ  r^ô  r^ñ  ^ð_ñ	`ô 	`ð 	`ð
 	�!‰ˆ‰à‡I‚Ið 7åŒ}Ð0Ñ1Ô1°5¸&À%ÐHñJô Jð Jð ‡I‚IÐTÝŒ}Ð-Ñ.Ô.Ð0SÐV[Ñ0[ØkØ˜ ­¬×)9Ò)9¸#Ñ)>Ô)>Ð?ñ@ØA{ð}ñ~ô ~ð ~ð ‡J‚J�L„L€LØ‡I‚I�K„K€KðDÝ�˜ÑÔÐÐøÝð Dð Dð DØ�ŠÐ>ÀÑBÑCÔCÐCÐCÐCÐCÐCÐCøøøøðDøøøðRÝŒ�œ­¬¯ªµSÐ:QÑ(RÔ(RÐSÐdhÐruÐvÑvÔvÐvÝŒ�œÐ(_Ð`Ðquð  @Cð  	Dñ  	Dô  	Dð  	Dð  	DøÝð Rð Rð RØ�ŠÐLÈqÑPÑQÔQÐQÐQÐQÐQÐQÐQøøøøðRøøøà�6˜5 (Ð*Ð*sC   ÃC2 Ã2DÄ DÞ&^7 Þ7
_#ß_ß_#ß'A)a á
a=áa8á8a=c                  óÀ  — t          ¦   «         } |                      ¦   «         }d„ |                     d¦  «        D ¦   «         }|                     d¦  «                             ¦   «         }|�rt	          t          ||¦  «        ¦  «        }|                      ¦   «          t          d|d         ›d|d         pd›d	�d
¬¦  «         t          |¦  «        \  }}}}t          d|rdnd|| 	                    d¦  «        p|fz  d
¬¦  «         |sTt          ¦   «         } |                      d||d         f¦  «         |  
                    ¦   «          |                      ¦   «          t          d¦  «         d
S |                     d¦  «                             ¦   «         }|�r2t	          t          ||¦  «        ¦  «        }|                      ¦   «          t          d|d         ›d|d         pd›d�d
¬¦  «         t          |¦  «        \  }}}}t          d|rdnd|t          | 	                    d¦  «        pg ¦  «        t          | 	                    d¦  «        pg ¦  «        fz  d
¬¦  «         |sTt          ¦   «         } |                      d||d         f¦  «         |  
                    ¦   «          |                      ¦   «          t          d¦  «         d
S |                      ¦   «          dS )Nc                 ó   — g | ]
}|d          ‘ŒS r€   rj   rE   s     r   rk   zmot_lan.<locals>.<listcomp>á  r�   r3   r‚   z‹SELECT * FROM huan_luyen_ca WHERE trang_thai='cho_de_nghi' AND COALESCE(anh_vao,'')<>'' AND COALESCE(de_nghi_luc,'')='' ORDER BY id LIMIT 1u   â†’ ca #r6   z | r5   r"   u&    | BÆ¯á»šC P (Ä‘á»� nghá»‹ quy trÃ¬nh)TrŒ   z   %s (%.0fs) %sÚxongu   Lá»–Ir<   z;UPDATE huan_luyen_ca SET trang_thai='loi', loi=? WHERE id=?ÚranhzrSELECT * FROM huan_luyen_ca WHERE trang_thai='cho_phan_tich' AND COALESCE(thuc_te_text,'')<>'' ORDER BY id LIMIT 1u6    | BÆ¯á»šC C (Ä‘á»‘i chiáº¿u & Ä‘á»� xuáº¥t bá»• sung)u3      %s (%.0fs) Â· khÃ¡c biá»‡t %s Â· luáº­t má»›i %srL   rM   F)rš   r›   rœ   r�   rŸ   r    rž   r¤   r	  r   r£   r×   r  r)   )	r·   rK   r¸   r¹   r   rÂ   Úloirá   r+   s	            r   Úmot_lanr8  Þ  sg  € Ý
‰(Œ(€CØ�
Š
‰Œ€AØ
GÐ
G˜ŸšÐ#EÑFÔFÐ
GÑ
GÔ
G€CØ	�	Š	ð Hñ 	Iô 	IßIQÊÉÌð àñ 	Ý•#�c˜1‘+”+ÑÔˆØ�	Š	‰ŒˆÝˆÈÈDÌÈÈÐSUÐV^ÔS_ÐShÐchÐShÐShÐiÐquÐvÑvÔvÐvÝ! "™:œ:ÑˆˆC��qÝÐ ¨bÐ$= F F°g¸tÀQÇUÂUÈ8Á_Ä_ÐE[ÐX[Ð#\Ñ\ÐdhÐiÑiÔiÐiØð 	SÝ‘(”(ˆC˜CŸKšKÐ(eÐhkÐmoÐptÔmuÐgvÑwÔwÐwÐy|÷  zDò  zDñ  zFô  zFð  zFð  HK÷  HQò  HQñ  HSô  HSð  HSÝˆV‰ŒˆØˆtØ	�	Š	ð (ñ 	)ô 	)ß)1ª©¬ð àñ 
Ý•#�c˜1‘+”+ÑÔˆØ�	Š	‰ŒˆÝˆÐY[Ð\`ÔYaÐYaÐYaÐceÐfnÔcoÐcxÐsxÐcxÐcxÐyð  BFð  	Gñ  	Gô  	Gð  	GÝ! "™:œ:ÑˆˆC��qÝÐCÐQSÐG`ÀvÀvÐY`ÐbfÝ�1—5’5˜Ñ%Ô%Ð+¨Ñ-Ô-­s°A·E²E¸*Ñ4EÔ4EÐ4KÈÑ/MÔ/MðGQñ QØX\ð	^ñ 	^ô 	^ð 	^àð 	SÝ‘(”(ˆC˜CŸKšKÐ(eÐhkÐmoÐptÔmuÐgvÑwÔwÐwÐy|÷  zDò  zDñ  zFô  zFð  zFð  HK÷  HQò  HQñ  HSô  HSð  HSÝˆV‰ŒˆØˆtØ‡I‚I�K„K€KØˆ5r3   c                  ó†  — dt           j        v } t          dt          j        d¦  «        ›dt
          ›| rdnd›�d¬¦  «         t          d	¦  «         | r[t          ¦   «         }|                     d
¦  «         | 	                    ¦   «          | 
                    ¦   «          t          ¦   «          d S 	 	 t          ¦   «         s#t          d	¦  «         t          j        d¦  «         n_# t          $ rR}t          dt          |¦  «        j        |d¬¦  «         t          d¦  «         t          j        d¦  «         Y d }~nd }~ww xY wŒ“)Nz	--mot-lanu   WORKER HLQT báº¯t Ä‘áº§u z%H:%M:%Sz	 | model u    (1 lÆ°á»£t)r   TrŒ   r6  zsUPDATE huan_luyen_ca SET trang_thai='cho_phan_tich' WHERE trang_thai='da_de_nghi' AND COALESCE(thuc_te_text,'')<>''é   u      lá»—i vÃ²ng láº·p:r7  r   )r¦   r¾   r¤   r´   rµ   rÛ   r×   rš   rœ   r£   rž   r8  Úsleepr   ÚtypeÚ__name__)Úmotr·   r   s      r   Úmainr?  ÿ  sW  € Ø
�œÐ
!€CÝ	€E½¼ÀjÑ8QÔ8QÐ8QÐ8QÕSXÐSXÐloÐZwÐZhÐZhÐuwÐZwÐ
xð  AEð  Fñ  Fô  Fð  FÝˆ�L„L€LØ
ð Ý‰hŒhˆØ�Šð  Jñ  	Kô  	Kð  	KØ�
Š
‰Œˆ�c—i’i‘k”k�kÝ‰	Œ	ˆ	Øˆðð	Ý‘9”9ð Ý�V‘”�Ý”
˜1‘”�øøÝð 	ð 	ð 	ÝÐ)­4°©7¬7Ô+;¸QÀdÐKÑKÔKÐKÝ�‰KŒKˆKÝŒJ�r‰NŒNˆNˆNˆNˆNˆNˆNøøøøð	øøøðs   Â11C# Ã#
D?Ã-AD:Ä:D?Ú__main__)r   )Nr   )rØ   ))Ú__doc__r¡   rm   r¯   r  rÉ   r¨   r¦   r´   rÜ   rn   r*   rª   rË   rÍ   r  rÚ   rÛ   rÖ   r   Ú
expandvarsr¥   rq   rÎ   r   r2   r}   rÃ   rÇ   rš   r­   r×   râ   ré   rú   r	  r  r2  r8  r?  r=  rj   r3   r   ú<module>rC     s‚  ððð ð <Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;à3€Ø„g‡l‚l�3˜
Ñ#Ô#€Ø„W‡\‚\�#�zÑ"Ô"€Ø	„w‡|‚|�C˜Ñ Ô €ØŒG�LŠL˜˜kÐ+AÑBÔB€	Ø5€Ø€Ø	„w‡|‚|�C˜Ñ&Ô&€ØŒG�LŠL˜˜oÑ.Ô.€	ØŒg�lŠl˜2œ7×-Ò-Ð.?Ñ@Ô@À(ÈHÐV]Ø/°Ð<RñTô T€à>€
Ø €„ˆD˜4Ð  Ñ  Ô  Ð  ðð ð ðð ð ð ð-?ð -?ð -?ð`.ð .ð .ðb
!ð 
!ð 
!ðð ð ð&ð ð ðð ð ð ðð ð ð ðð ð ð"ð ð ð,9ð 9ð 9ðz=ð =ð =ðBg+ð g+ð g+ðVð ð ðBð ð ð* ˆzÒÐØ€D�F„F€F€F€Fð Ðr3   