icoa-cli 2.19.157 → 2.19.159
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/ai4ctf.js +1 -1
- package/dist/commands/exam.js +1 -1
- package/dist/commands/learn.js +1 -1
- package/dist/repl.js +1 -1
- package/package.json +1 -1
package/dist/commands/ai4ctf.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(b,j){const a7=a0j,k=b();while(!![]){try{const q=-parseInt(a7(0x16c))/(-0x8a3+0x1*0x1a81+-0x11dd)+parseInt(a7(0x17c))/(0x31*0x47+0xf28+-0x1*0x1cbd)+parseInt(a7(0x1ca))/(0x21db+0x1e0a+-0x3fe2)+parseInt(a7(0x206))/(-0x1a2c+-0x76+0x1aa6)+parseInt(a7(0x104))/(-0xa4e*0x2+0x21fb+-0xd5a)*(-parseInt(a7(0x192))/(0x56a*0x6+0x117f*-0x1+-0x4fd*0x3))+parseInt(a7(0x18a))/(-0x589+0x2*0x697+0x4b*-0x1a)+-parseInt(a7(0x14f))/(-0x18f5*0x1+-0x116c+0x2a69)*(parseInt(a7(0x18d))/(0x18d3*-0x1+0x8de+0xffe));if(q===j)break;else k['push'](k['shift']());}catch(v){k['push'](k['shift']());}}}(a0b,-0xb5b68+0xcdc5f*-0x1+0x23797a));import a0q from'chalk';import{createChatSession as a0v}from'../lib/gemini.js';function a0b(){const aj=['C3vIBwL0ia','Dg9vChbLCKnHC2u','mJy2mti0meHIv29uAq','icaI','Bg9N','ywK0y3rMtg9JA2vKvgHLBG','icaGigHPBNqGysaVigiGlYbJica','iwvJAg8GyvDoDI4UlIb8igjHC2u2ncaTza','zxHPDa','icbHAtrJDgyGAxmGyxzHAwXHyMXLig9UifeZmEkaKZm4icHbstrdveyGC2vJDgLVBIKU','rMXHzYbMB3jTyxq6igLJB2f7lI4UFq','z2vTAw5Ptw9KzwW','icdILRGGsgLUDca','C3rHCNrZv2L0Aa','C3vIBwL0ieLdt0f7lI4UFq','icaGihn1yM1PDca8zMXHzZ4Gica','mtmXota0nw9UzKX6Cq','ywK0y3rMuMv2zwfSu2vLrMXHzW','ihjLy29YzgvKoIa','mti1ntiZreTqrMHl','jsbVzIbZzwn0Aw9Uiefjigj1zgDLDcb1C2vKiokaLcbVBMX5ih4','icdILiZILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','ihrVignVBNrPBNvL','lI4VBgLIl2v4yw0TC3rHDguUANm','nJeWmK5btLDOtG','Cu51Bq','cGPzt1vsifjvtevtoGOTifLVDsbnqvKGzxHWBgfPBIbJB25Jzxb0CYWGzgvZy3jPyMuGyxbWCM9Hy2HLCYWGyw5KigHLBhaGDgHLignVBNrLC3rHBNqGCMvHC29UihrOCM91z2GGDgHLihbYB2jSzw0UcI0Gww91ie1bwsbKAxnJDxnZihrOzsb0zwnOBM9SB2D5igLUDM9SDMvKicHbrvmSihb3BNrVB2XZlcbqExrOB24GC3rYDwn0lcbivfrqlcbLDgmUks4klsbzB3uGtufzigHLBhaGzgvIDwCGuhL0Ag9UignVzguGDgHLignVBNrLC3rHBNqGD3jPDgvZlGOTifLVDsbnvvnuie5pvcbYzxzLywWGDgHLigzSywCGzgLYzwn0BhKUcI0Gww91ie1vu1qGtK9uig91Dhb1DcbHBNKGC3rYAw5Nig1HDgnOAw5NieLdt0f7lI4UFsbVCIbPy29HEY4UlN0UcI0Gww91ie1vu1qGtK9uihrLBgWGDgHLignVBNrLC3rHBNqGDgHLigv4ywn0igfUC3DLCIb0BYb0AgLZihf1zxn0Aw9UlGOTifLVDsbnqvKGC3vNz2vZDcb3AgLJAcb0B29Sic8GBgLICMfYEsaVihrLy2HUAxf1zsb0BYb1C2uUcI0Gv2HLBIbZDwDNzxn0Aw5NihnOzwXSic8GChL0Ag9UihnUAxbWzxrZihrOyxqGBMvLzcb0AguGyxr0ywnOzwqGzgf0ysWGCMvMzxiGDg8GDgHLigzPBguGCgf0AcbJAgfSBgvUz2vZl3e','D2HPDgu','ywK0y3rMt3jdAgf0','AgLUDhm','ywK0y3rMsgLUDencB2r5','ywK0y3rMv3jHCeXPBMuXsgvHza','ywK0y3rMvgHPBMTPBMC','DMLHigfPngn0zIbJAgf0','icaGicaGigHPBNqGysaGia','q3j5ChrVz3jHCgH5','icaGicaGicaGia','y29UDgLUDwu','icaGicaGicaGicaGifjLDhvYBIb0BYbTywLUig1LBNuGkhDVCMTZigfUExDOzxjLkq','icbozxH0oIa','icaGicaODhLWzsbPDcbYAwDODcbOzxjLigLUihrOAxmGy2HHDcdIGjqGBM90igfZigeGC2HLBgWGy29TBwfUzcK','C2L6zq','C3vIBwL0ieLdt0f7Ew91CL9MBgfNFq','ywK0y3rMrxHPDe5LEhrtDwi','lZuWmda','lIbuCNKGywDHAw4GAw5ZAwrLihrOAxmGy2HHDc4','CMvK','ywK0y3rMvg9Rzw5Z','Dg9ju09tDhjPBMC','ywK0y3rMrxHPDenTzejHy2S','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','ixnOzwXS','igfUC3DLCIb1CgrHDgvKoIa','ywK0y3rMsgLUDejcB2r5','ywK0y3rMsgLUDe5LEhrd','yM9Sza','lNr4DcaOAw5ZAwrLihrOzsbZyw5KyM94ksbYyxrOzxiGDgHHBIbHC2TPBMCGDgHLignVBNrLC3rHBNqGDg8GCgfZDguGDgHLihDOB2XLigjSB2iGyMfJAY4klsblzwvWihjLC3bVBNnLCYbJB25JAxnLigfUzcbWCMfJDgLJywWUifrOAxmGy29UDgvZDgfUDcbOyxmGBgLTAxrLzcb0Aw1LlG','icbbstrdveyGC2vJDgLVBIbJB21WBgv0zsdIGjqG','ywK0y3rMq21Ku2HLBgXmAw5L','icaGia','y2XLyxi','icdINjmGqw5ZD2vYigzVCIbr','iokaLca','icaGifjLywXSEsbZDhvJAZ8Gvhj5oIa','icdIMQaGodaLig9MihnLy3rPB24GquKGyNvKz2v0ihvZzwqU','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','ywK0y3rMsgLUDefcB2r5','icaKia','yw5ZD2vYx2nOyw5Nzwq','Aw50zxjHy3rPB25Z','icaGicaGicaGicbbigDLBNrSzsbUDwrNzsaOChjLlxDYAxr0zw4P','ywn0Aw9U','ywK0y3rMv3jVBMDgBgfN','icaGice8C2HLBgWGy21KpIaGica','ifn1yM1PDcb5B3vYigzSywCGzM9YihrOAxmGCxvLC3rPB24','C2vUze1LC3nHz2u','yw5ZD2vYCW','C29Tzq','icaGicaGicbPy29HE3CZBgmWBwvFmL9HAtrJDgz9','ywK0y3rMrgvJB2rLza','ndiZntKWnhnRAMfQDa','vg9Rzw5Z','z3jLzw4','CgfKrw5K','y2f0zwDVCNK','ywK0y3rM','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','CxvLC3rPB24','BM93','icaGicaGigHPBNqGyYaGia','BNvKz2vtAg93BG','icdILzdILzdILzaGquK0q1rgiokaLcbr','zxHHBsbXidmX','oIbhB29NBguGr2vTBweGncaO','D3jPDgu','y3rMngfP','q29TBwfUzcbMywLSzwq','zgvZy3jPChrPB24','AgLUDf91C2vK','AgfZ','icdILRGG','ywK0y3rMuMv2zwfSqM9KEq','ywK0y3rMsgLUDfrLy2HUAxf1zq','ywK0y3rMv3jHCff1B3rHqq','ihrVA2vUCYbSzwz0lG','ywK0y3rMv3jHCff1B3rHqW','C2XPy2u','CM91BMq','Cg9PBNrZ','icdIMQaG','icbB','icdcTYaGuMuTzw50zxi6ia','icbezxrLy3rLzcbMBgfNiokaLcb0CMvHDgLUzYbHCZOG','ywK0y3rMvgL0Bgu','AgLUDcbH','icaGifn0DwnRpYbuCNK6ia','ywK0y3rMuMv2zwfStg9JA05VDgu','icaGicaGicaGicaGica','icaGihn1yM1PDcbjq09bEY4UlN0','AgLUDcbI','icaGigv4Axq','ywK0y3rMrxHPDa','icaG4OAsia','zw5JB2rPBMC','y29TBwfUza','quKGzxjYB3i6ia','x2XHC3rr','cIaG','DxrMltG','icaGicaGicaGicbuzwnOBMLXDwuGAgLUDcaOChjLlxDYAxr0zw4P','icaGidiUia','icbnB2rLBdOGr29Vz2XLieDLBw1HidqGka','ywK0y3rMv3jHCff1B3rHC1rPDgXL','ywK0y3rMv3jHCff1B3rHquHPBNq','ChvZAa','ywK0y3rMrM91BMrgBgfN','icaGifbYzxzPB3vZoIa','icaGicaGia','BMfTzq','ywK0y3rMq29YCMvJDezSywC','ndm3mJK1nNrZDNnPtq','icaOC3vIBwL0igfNywLUihrVignOyw5NzsK','ywK0y3rMu3vIBwL0q21K','ywK0y3rMtg9JA2vKvxnL','z3jHEq','icaGicaGicaGicfLy2HVigfxtNzzwhqZttj4AK1hmwXyEKPMwvDRmfKZuM1Mut09ihWGyMfZzty0ic1K','icaGicfWExrOB24Zic4UlG','icaGig1LBNu','yvDoDLLyDdnnmNHQtuCXBfH6sMzzv2SWwtnsBwzrpt0','y3LHBG','zxHHBsbXia','icbszxn1Bwu6ia','ywK0y3rMoIa','icaGigHPBNqGyq','DgHPBMTPBMC','mtq5mhvyqM5lEq','CMvWBgfJzq','icaGicbsDw4GuhL0Ag9UigLUihnOzwXS','ig5VDcbMB3vUzcbPBIbZDgf0zs4','ue9tva','icaGicaGicaHzwnOBYbHv052wvH0m00YEgPnrZfSwhPkzLLxAZbzm1jTzLe9psb8igjHC2u2ncaTza','g1SXqrTBmKS','ywLvC2fNzq','ywK0y3rMsgLUDenvC2vZ','icbtDgLSBcbHDMfPBgfIBgu6ia','icbzB3uGy2fUihn0AwXSihn1yM1PDcbHigzSywCGzgLYzwn0BhK6ia','ww91igfYzsbHBIbbssb0zwfTBwf0zsbOzwXWAw5NigeGy29UDgvZDgfUDcbZB2X2zsbHBIbjq09bidiWmJyGy3LIzxjZzwn1CML0EsbLEgfTihf1zxn0Aw9UlGOkq1vsuKvovcbrvuvtveLptIaOuq','ywK0y3rMsgLUDe51zgDL','ywK0y3rMsgLUDefvC2vZ','ywK0y3rMv3jHCe5LEhruAxrSzq','ywK0y3rMrxHPDe5LEhrcB2r5','ywK0y3rMsgLUDei','yxr0ywnOzwreyxrH','xsaGWRCG','y2f0y2G','sunpqxT5B3vYx2zSywD9','icbiB3CGDg8GD29YAYb0AgLZihf1zxn0Aw9U','ywK0y3rMq21KsgLUDeXPBMu','Dg9mB3DLCKnHC2u','ywK0y3rMrxHPDe5LEhruAxrSzq','ywK0y3rMv3jHCe5LEhrcB2r5','ywK0y3rMv2vSy29Tzu5VuMv2zwfS','C3bSAxq','ywK0y3rMuMv2zwfSvgHLBLn1yM1PDa','ihDPBgWGB3bLBIbr','icaGicaGicaGicblzxKGyNjLywT0AhjVDwDOicHWCMuTD3jPDhrLBIK','BM9KztPJAgLSzf9WCM9JzxnZ','AgLUDcbJ','C3rKB3v0','CxvLC3rPB25Z','EwvSBg93','ywK0y3rMuMvWB3j0','ywK0y3rMu2fTCgXL','iokvKokvKokvKa','yxbWBgLJyxrPB24VANnVBG','icdILii','ywK0y3rMsgLUDem','iIbSB29RCYbSAwTLigfUie1dusbSzxr0zxiSig5VDcbHigzSywCU','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDs9HCgKVAwnVys9Kzw1Vlxn0yxrZ','oIbhB29NBguGr2vTBweGncaOz2vTBweTnc0ZmwiTAxqP','zxHHBsbHBNn3zxiG','icdILiiG','icbbzNrLCIbLEgL0oIbbstrdveyGC2vJDgLVBIbJB21WBgv0zs4GtMv4DdOG','icbbzNrLCIbLEgL0oIa','CxvPDa','icbuAgLUA2LUzY4UlG','icdIMQaGquK0q1rgihrVA2vUigj1zgDLDcbLEgHHDxn0zwqGkdi1ldaWmcb1C2vKks4','ywK0y3rMsgLUDfbYAw5JAxbSzq','lI4U','CMvWzwf0','BwvUDq','C3vIBwL0qxr0zw1WDgvK','C3vIBwL0idXMBgfNpG','icaGigHPBNqGyW','cGPbvfrbq0HfrcbeqvrbicHHBhnVihnHDMvKihrVignOywXSzw5NzxmVCq','ywK0y3rMsgLUDee','ywK0y3rMv3jHCff1B3rHqG','ywK0y3rMrxHPDenTze5LEhq','AgLUDhnvC2vK','icdWN5kHie9Uy2uGEw91igHHDMuGsunpqxSUlI59lcbZDwjTAxqGAxqGD2L0AdOG','iNDOyxqGzw5JB2rPBMCGAxmGDgHPCZ8I','q29UDgvUDc1uExbL','icbfCNjVCJOG','sgLKzgvUie1LC3nHz2u','Dg9Rzw5ZvxnLza','BgvUz3rO','ywK0y3rMsgLUDe5LEhrc','igfNywLUihrVignOyw5NzsWGB3iG','C3rYAw5NAwz5','Dgv4Da','mtq2ng5luurMBG','ywK0y3rMv3jHCe5VuhjVzW','BNvTyMvY','icaGiokgKIa','ieLdt0f7lI4UFq','ywK0y3rMv2vSy29Tzun0yq','imk3ia','iokaLcb0ExbLia','ywK0y3rMv3jHCff1B3rHq0HPBNq','icbgBgfNigzVCM1HDdOG','iwvJAg8GyvDoDLLyDdnnmNHQtuCXBfH6sMzzv2SWwtnsBwzrpt0GFcbIyxnLnJqGlwq','icaGicaGicbZDwjTAxqGAwnVyxT3m2XJmg1LxZjFywK0y3rMFq','ihrVig1VDMuGB24','ywK0y3rMv3jHCe5LEhrtDwi','DgvZDa','AM9PBG','icaGicHhCMfKAw5NigHHChbLBNmGyxqGzxHHBsbZDwjTAxqG4OcuihLVDsbJyw5UB3qGChjLDMLLDYbJB3jYzwn0BMvZCYbKDxjPBMCGDgHLigv4yw0Ukq','icaGicaGicaGicaGicaGicaGicbLlMCUia','BwvZC2fNzq','lIbkDw1WihrOzxjLigzPCNn0oG','DhjPBq','ywK0y3rMv3jHCfrPDgXL','icdILjtILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','ywK0y3rMv3jHCfr5CgvdDgy0ywK','icbzB3uGyxjLig9Uife','icaGigHPBNqGyG','yMfJAW','icaGideUia','DgLTzw91Da','ndmXmtGWC2zuAKnT','rMXHzYbMB3jTyxq6icaGieLdt0f7lI4UFq','Bwf0y2G','C3vIBwL0igLJB2f7DZnSyZbTzv8Yx2fPngn0zN0','zMLUza','z2vTBweTnc0ZmwiTAxq','igzVCIbrmZK','ywK0y3rMv3jHCeXPBMuXqM9KEq','Dg9Rzw5mAw1PDa','E25VuhjVz30','ywrK','ywK0y3rMv3jHCff1B3rHrM9VDgvY','icaGicaGicaGicaGieXLyxzLignOyxqSihjLDhvYBIb0BYbLEgfT','ywK0y3rMrgvJB2rL'];a0b=function(){return aj;};return a0b();}import{addTokenUsage as a0x}from'../lib/budget.js';import{getConfig as a0z}from'../lib/config.js';import{logCommand as a0A}from'../lib/logger.js';function a0j(a,b){a=a-(0x371+0x43a+0x1d*-0x3b);const c=a0b();let d=c[a];if(a0j['REhWXX']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=-0xf6e*-0x2+0x5a9+-0x2485*0x1,o,p,q=0x1d2e+0x56d+-0xb89*0x3;p=i['charAt'](q++);~p&&(o=n%(0x27*0x39+-0x878*-0x1+0x1123*-0x1)?o*(-0x5b1+0x12c+0x25*0x21)+p:p,n++%(0x1c3b+0x1f0f*0x1+0x9e1*-0x6))?l+=String['fromCharCode'](-0x1d03+-0x18a*-0x4+-0x1*-0x17da&o>>(-(-0x7*-0x1+-0x1fda+0x1fd5)*n&-0x1889*0x1+0x25b7+-0xd28)):-0x1097+0xad*0x5+0xd36){p=j['indexOf'](p);}for(let r=0x6*-0x608+0x11b9+0x1277,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](-0x17a7+-0x1493+0x2*0x1625))['slice'](-(-0x5*-0x91+0x2bd*0x9+-0x3*0x928));}return decodeURIComponent(m);};a0j['bpyCdu']=e,a0j['OIFTHS']={},a0j['REhWXX']=!![];}const f=c[0x18e8+-0xb26+-0xdc2],g=a+f,h=a0j['OIFTHS'][g];return!h?(d=a0j['bpyCdu'](d),a0j['OIFTHS'][g]=d):d=h,d;}import{printMarkdown as a0B,printError as a0C}from'../lib/ui.js';import{t as a0D}from'../lib/i18n.js';import{getExamState as a0E,saveExamState as a0F}from'../lib/exam-state.js';const g=b=>new Promise(j=>setTimeout(j,b));let r=!(0x10f0+-0xbf2*0x3+0x1*0x12e7),y=null,h=-0x6f*0x21+0x1*-0x1a6b+0x1a*0x191,u=!(0x694*0x1+-0x26a0+-0x669*-0x5);const d=0x293*-0x47+-0x84bf*-0x1+0x49d7*0x2;let f=null;export function isChatActive(){return r;}function m(){const a8=a0j,b=f?d:0x1ff2+-0x1e49*-0x1+-0x283*0x11,j=h,k=Math['min'](Math[a8(0x1e5)](j/b*(-0x369*-0x3+-0x3b*0xd+-0x6d8)),0x6f*-0x3f+-0x1889+0x343e),q=Math[a8(0x1e5)](k/(-0x334*0xb+0x89*-0x1f+0x3437)*(0x6*-0x608+0x11b9+0x128b)),v=-0x17a7+-0x1493+0x35*0xd6-q,x=k>-0x5*-0x91+0x2bd*0x9+-0x3*0x90e?a0q[a8(0x1a8)]:k>0x18e8+-0xb26+-0xd90?a0q['yellow']:a0q[a8(0x1cc)],z=f?'AI4CTF\x20section':a8(0x1cb);console[a8(0x17e)](a0q[a8(0x20a)]('\x20\x20'+z+':\x20')+x('█'[a8(0x13a)](q))+a0q[a8(0x20a)]('░'[a8(0x13a)](v))+a0q[a8(0x20a)]('\x20'+j+'/'+b+'\x20('+k+'%)'));}export async function handleChatMessage(q){const a9=a0j;if(!y)return a9(0x182);if(a0A(a9(0x101)+q),f)return p(q);const v=q[a9(0x163)]()['toLowerCase']()[a9(0x16e)](/^hint\s+([abc])$/);if(v)return function(B){const aa=a9,C=a0D('a'===B?aa(0x140):'b'===B?aa(0x114):aa(0x12d)),D=a0D('a'===B?aa(0x1bc):'b'===B?aa(0x1af):aa(0x198)),E='Hint\x20'+B[aa(0x17b)](),F='a'===B?a0q[aa(0x1cc)]:'b'===B?a0q['yellow']:a0q[aa(0x1a8)];console['log'](),console[aa(0x17e)](F['bold'](aa(0x1de)+E+'\x20\x20')+a0q['gray'](C)),console[aa(0x17e)]();for(const G of D[aa(0x11f)]('\x0a'))''===G?console['log']():console[aa(0x17e)](a0q[aa(0x195)](aa(0x1b5)+G));console['log'](),'a'===B?(console[aa(0x17e)](a0q[aa(0x20a)](aa(0x1b5)+a0D('ai4ctfHintNextA')+'\x20')+a0q['cyan'](aa(0x1f1))),console['log']()):'b'===B&&(console[aa(0x17e)](a0q[aa(0x20a)](aa(0x1b5)+a0D(aa(0x14b))+'\x20')+a0q[aa(0xfe)]('hint\x20c')),console[aa(0x17e)]());}(v[0x17d*-0x7+-0x124+0x2e4*0x4]),a9(0x19f);const x=q[a9(0x16e)](/^submit\s+(.+)/i);if(x){let B=x[0x1d7*0x9+-0x97d+-0x711][a9(0x163)]();if(/^submit\s+/i[a9(0x15d)](B)&&(B=B[a9(0x105)](/^submit\s+/i,'')[a9(0x163)]()),B=B[a9(0x105)](/^["'`]+|["'`]+$/g,'')[a9(0x163)](),'icoa{w3lc0me_2_ai4ctf}'===B){console['log'](),console[a9(0x17e)](a0q['green'][a9(0x1b1)](a9(0x1bb))),console[a9(0x17e)](a0q[a9(0x1cc)][a9(0x1b1)]('\x20\x20'+a0D(a9(0x205)))),console[a9(0x17e)](a0q[a9(0x1cc)][a9(0x1b1)](a9(0x1bb))),console[a9(0x17e)](),console[a9(0x17e)](a0q[a9(0x195)]('\x20\x20'+a0D(a9(0x1c9)))),console[a9(0x17e)](a0q[a9(0x20a)]('\x20\x20'+a0D('ai4ctfWouldEarn'))),console[a9(0x17e)](),m(),r=!(0x1b73*0x1+-0x15c5+-0x5ad),y=null,fetch(a9(0x12f),{'method':'POST','headers':{'Content-Type':a9(0x12b)},'body':JSON['stringify']({'type':a9(0x1cf),'solved':!(-0x6a*-0x47+-0x1755+-0x1*0x611),'tokensUsed':h,'timestamp':new Date()[a9(0x1aa)]()}),'signal':AbortSignal[a9(0x16b)](-0x1c07+-0x2603+0x5592)})[a9(0x117)](()=>{}),await g(-0x2*-0xd76+-0x654+-0xebc),console['log'](),console[a9(0x17e)](a0q[a9(0xfe)]('\x20\x20─────────────────────────────────────────────')),console[a9(0x17e)](a0q[a9(0x1b1)][a9(0x195)]('\x20\x20'+a0D(a9(0x164)))),console[a9(0x17e)](a0q[a9(0xfe)](a9(0x1d0))),console[a9(0x17e)]();const C=a0D(a9(0x199)),D=a0D(a9(0x173));console[a9(0x17e)](a0q[a9(0x195)](a9(0x16a)+C+'\x20')+a0q[a9(0x20a)](D[a9(0x11f)]('\x0a')[-0x609*-0x4+-0x182a+0x1*0x6]||''));for(const H of D['split']('\x0a')[a9(0x1e4)](0xd6+0x1493*-0x1+0xe*0x169))H[a9(0x163)]()&&console[a9(0x17e)](a0q['gray'](a9(0x203)+H[a9(0x105)](/\{thinking\}/g,a9(0x103))));console[a9(0x17e)](),console[a9(0x17e)](a0q['white'](a9(0x1fc)+a0D('ai4ctfWrapLine2Head')+'\x20')+a0q[a9(0x20a)](a0D('ai4ctfWrapLine2Body'))),console[a9(0x17e)](),console[a9(0x17e)](a0q[a9(0xfe)](a9(0x20b))),console[a9(0x17e)](),await g(0x5*0x13d+-0x6*-0x1ab+0x863*-0x1),console['log'](a0q[a9(0xfe)](a9(0x1d0))),console[a9(0x17e)](a0q['bold']['white']('\x20\x20'+a0D(a9(0x1fe)))),console[a9(0x17e)](a0q[a9(0xfe)](a9(0x1d0))),console['log'](),console['log'](a0q['yellow'](a9(0x19c))+a0q[a9(0x195)](a0D(a9(0x1e1))[a9(0x1cd)](0xf78*0x1+0x1881*0x1+0xad*-0x3b))+a0q[a9(0x20a)](a0D(a9(0x1ff)))),console[a9(0x17e)](a0q[a9(0x127)]('\x20\x20\x20\x20\x20\x20\x20hint\x20b\x20\x20\x20')+a0q[a9(0x195)](a0D(a9(0x141))[a9(0x1cd)](0x26ff+-0x38*-0x11+-0x2a9d))+a0q[a9(0x20a)](a0D('ai4ctfWrapQuotaBHint'))),console['log'](a0q[a9(0x127)](a9(0x1d3))+a0q[a9(0x195)](a0D(a9(0x1e3))['padEnd'](0x1f58+0x142d*-0x1+-0xb11))+a0q['gray'](a0D(a9(0x157)))),console[a9(0x17e)]();for(const I of a0D(a9(0x177))[a9(0x11f)]('\x0a'))console['log'](a0q[a9(0x20a)](a9(0x1b5)+I));console[a9(0x17e)](),await g(-0x25*0x2a+-0x1238+0x201a),console[a9(0x17e)](a0q[a9(0xfe)](a9(0x1d0))),console['log'](a0q[a9(0x1b1)][a9(0x195)]('\x20\x20'+a0D(a9(0x112))+'\x20')+a0q[a9(0x1a8)][a9(0x1b1)](a9(0x1d9))+a0q[a9(0x195)](a9(0x1b8)+a0D(a9(0x15c)))),console[a9(0x17e)](a0q['cyan'](a9(0x1d0))),console['log']();const E=a0D(a9(0x11d)),F=a0D(a9(0x150)),G=E[a9(0x11f)]('\x0a');if(G[-0x3dc*0x7+-0xdea+0x28ee]){const [J,K]=G[0x2127+0x57*0x6+-0x3f*0x8f]['split'](a9(0x175));console[a9(0x17e)](a0q[a9(0x195)]('\x20\x20\x20\x20'+(J||''))+a0q[a9(0x1b1)][a9(0x195)](F)+a0q['white'](K||''));}for(const L of G[a9(0x1e4)](0xa5f+-0x2*0x2d5+0x1c*-0x2b))L['trim']()&&console[a9(0x17e)](a0q['white'](a9(0x1b5)+L));return console[a9(0x17e)](),console[a9(0x17e)](a0q[a9(0x20a)]('\x20\x20\x20\x20'+a0D(a9(0x166))+'\x20')+a0q[a9(0x1b1)]['red'](a9(0x1d9))),console[a9(0x17e)](),a9(0x182);}return console[a9(0x17e)](),console[a9(0x17e)](a0q[a9(0x1a8)]('\x20\x20'+a0D(a9(0x1c2)))),console[a9(0x17e)](a0q[a9(0x20a)]('\x20\x20'+a0D('ai4ctfFlagHint'))),console[a9(0x17e)](),a9(0x19f);}if(q[a9(0x187)]('!')){const M=q[a9(0x1e4)](0xbf2*0x1+0x1*0x431+-0x1022)[a9(0x163)]();if(!M)return a9(0x19f);try{const N={};N[a9(0x1f5)]='utf-8',N[a9(0x16b)]=0x2710;const {execSync:O}=await import(a9(0x123)),P=O(M,N)[a9(0x163)]();console[a9(0x17e)](),console[a9(0x17e)](a0q['gray'](a9(0x1bd))+a0q[a9(0x195)](M)),console[a9(0x17e)](a0q[a9(0x195)]('\x20\x20'+P['split']('\x0a')[a9(0x15e)](a9(0x1f9)))),console['log'](),console[a9(0x17e)](a0q[a9(0x20a)]('\x20\x20'+a0D(a9(0x201)))),console[a9(0x17e)]();}catch(Q){console['log'](),console[a9(0x17e)](a0q[a9(0x1a8)](a9(0x147)+(Q[a9(0x161)]?.['split']('\x0a')[-0x1a09+0x6d*-0x2b+0x2c58]||'Command\x20failed'))),console['log']();}return'continue';}const z={};z[a9(0x146)]=a9(0x12b);if(a9(0x182)===q||a9(0x169)===q||a9(0x135)===q||a9(0x13b)===q)return r=!(0x10cc+0x1*-0xfc3+-0x108),y=null,fetch('https://practice.icoa2026.au/api/icoa/demo-stats',{'method':a9(0x108),'headers':z,'body':JSON[a9(0x14d)]({'type':a9(0x1cf),'tokensUsed':h,'timestamp':new Date()[a9(0x1aa)]()}),'signal':AbortSignal[a9(0x16b)](0xe23+0x78+-0x4ed*-0x1)})[a9(0x117)](()=>{}),console[a9(0x17e)](),console['log'](a0q['gray'](a9(0x1ac))),console[a9(0x17e)](a0q['white']('\x20\x20'+a0D(a9(0x128)))),console['log'](a0q[a9(0x20a)]('\x20\x20'+a0D(a9(0x1a9))+':\x20'+h+a9(0x1a6))),console[a9(0x17e)](a0q['gray']('\x20\x20'+a0D('ai4ctfModel')+a9(0x130))),console[a9(0x17e)](a0q[a9(0x20a)](a9(0x1ac))),console[a9(0x17e)](),console['log'](a0q[a9(0xfe)](a9(0x1d0))),console[a9(0x17e)](a0q[a9(0x195)]('\x20\x20'+a0D(a9(0x11c))+'\x20')+a0q['bold'][a9(0x1a8)](a9(0x1d9))+a0q[a9(0x195)](a9(0x1b8)+a0D(a9(0x1a5)))),console[a9(0x17e)](a0q['gray']('\x20\x20'+a0D(a9(0x113)))),console[a9(0x17e)](a0q['cyan'](a9(0x1d0))),console['log'](),console[a9(0x17e)](a0q[a9(0x1b1)][a9(0x1a8)]('\x20\x20\x20\x20\x20ctf4ai')+a0q[a9(0x20a)](a9(0x19e)+a0D(a9(0x142)))),console['log'](a0q[a9(0x195)]('\x20\x20\x20\x20\x20back')+a0q['gray']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0D(a9(0x1ab)))),console['log'](),a9(0x182);const A={};A[a9(0x146)]='application/json';if(!u&&h>=0xb21+0x1*0x391+0x4d6)return u=!(-0x1*0x1875+-0x2439+0x3cae),fetch(a9(0x12f),{'method':a9(0x108),'headers':A,'body':JSON[a9(0x14d)]({'type':'ai4ctf','solved':!(-0x31*-0x17+0x17fe+0x2*-0xe32),'tokensUsed':h,'timestamp':new Date()['toISOString']()}),'signal':AbortSignal['timeout'](-0x1*0xb73+0x19*0x7f+0x3a*0x52)})[a9(0x117)](()=>{}),console[a9(0x17e)](),console[a9(0x17e)](a0q['yellow']('\x20\x20'+a0D(a9(0x174)))),m(),(function(){const ab=a9;console['log'](),console['log'](a0q[ab(0x127)]('\x20\x20─────────────────────────────────────────────')),console['log'](a0q[ab(0x1b1)][ab(0x127)]('\x20\x20'+a0D('ai4ctfRevealTitle'))),console[ab(0x17e)](a0q[ab(0x127)](ab(0x1d0))),console[ab(0x17e)]();for(const R of a0D(ab(0x1df))[ab(0x11f)]('\x0a'))''===R?console[ab(0x17e)]():console[ab(0x17e)](a0q[ab(0x195)]('\x20\x20\x20\x20'+R));console['log'](),console[ab(0x17e)](a0q[ab(0xfe)](ab(0x109))),console[ab(0x17e)](),console[ab(0x17e)](a0q[ab(0x195)](ab(0x1b5)+a0D(ab(0x18b)))),console['log'](),console['log'](a0q[ab(0x1cc)](ab(0x1c8))),console[ab(0x17e)](),console[ab(0x17e)](a0q[ab(0x195)](ab(0x1b5)+a0D(ab(0x120)))),console[ab(0x17e)](),console[ab(0x17e)](a0q[ab(0xfe)](ab(0x15a))),console[ab(0x17e)](),console[ab(0x17e)](a0q['gray']('\x20\x20\x20\x20'+a0D(ab(0x1ee)))),console[ab(0x17e)]();}()),'continue';if(u)return console['log'](),console[a9(0x17e)](a0q[a9(0x127)]('\x20\x20'+a0D('ai4ctfLockedTitle'))),console[a9(0x17e)](a0q[a9(0x20a)]('\x20\x20'+a0D(a9(0x209))+'\x20')+a0q[a9(0xfe)](a9(0x159))),console[a9(0x17e)](a0q['gray']('\x20\x20'+a0D(a9(0x17f))+'\x20')+a0q['cyan'](a9(0x16f))),console[a9(0x17e)](),a9(0x19f);console[a9(0x17e)](a0q[a9(0x20a)]('\x20\x20'+a0D(a9(0x19a))));try{const R=await y['sendMessage'](q);process[a9(0x125)][a9(0x1d8)](a9(0x10a)),h+=R[a9(0x149)],a0x(R['tokensUsed']),console[a9(0x17e)](),a0B(R['text']),m(),console[a9(0x17e)]();}catch(S){process[a9(0x125)]['write']('\x1b[1A\x1b[2K'),a0C(a9(0x1f7)+S[a9(0x161)]),console['log']();}return a9(0x19f);}const w=new Set();async function p(q){const ac=a0j;if(!f||!y)return ac(0x182);const v=q[ac(0x163)](),x=v[ac(0x11b)](),z=(Date[ac(0x1d2)]()-f['enteredAt'])/(0x1*0x4a9+0xe320+-0x27*-0x11);if(!f[ac(0x1d4)]&&!f[ac(0x13c)]&&f[ac(0x143)][ac(0x1a3)]>=0x6*0x4da+0x6e1*0x3+-0x31bd&&z>=0x76+0x167a+0x16eb*-0x1&&(f['nudgeShown']=!(0x912*-0x1+-0x1c1*0x2+0xe6*0xe),console[ac(0x17e)](),console['log'](a0q['yellow'](ac(0x144))+a0q[ac(0x1b1)]['yellow'](ac(0x1a4))),console['log'](a0q['gray'](ac(0x1a2))),console[ac(0x17e)]()),/^ICOA\{[^}]+\}$/i[ac(0x15d)](v))return console[ac(0x17e)](),console[ac(0x17e)](a0q['gray'](ac(0x1ea))+a0q['white'](ac(0x17a)+v)),p(ac(0x17a)+v);const A=x[ac(0x16e)](/^hint\s+([abc])$/);if(A){const C=A[-0x1986+-0x8e6+-0x226d*-0x1]['toUpperCase']();f[ac(0x143)][ac(0x176)](C);const D=a0E();D&&(D[ac(0x1bf)]||(D[ac(0x1bf)]=[]),D['interactions'][ac(0x200)]({'ts':new Date()[ac(0x1aa)](),'q':f[ac(0x193)],'type':ac(0x1dc),'input':C}),a0F(D));const E=f[ac(0x1d1)][ac(0x197)],F=E?.[C],G='A'===C?a0q[ac(0x1cc)]:'B'===C?a0q[ac(0x127)]:a0q[ac(0x1a8)];if(console[ac(0x17e)](),console[ac(0x17e)](G[ac(0x1b1)](ac(0x186)+C)),console['log'](),F){for(const H of String(F)[ac(0x11f)]('\x0a'))console['log'](a0q[ac(0x195)](ac(0x1b5)+H));}else console[ac(0x17e)](a0q[ac(0x20a)]('\x20\x20\x20\x20No\x20pre-written\x20hint\x20at\x20this\x20tier\x20for\x20this\x20question.'));return console[ac(0x17e)](),'A'===C?console['log'](a0q['gray'](ac(0x1ed))+a0q[ac(0xfe)](ac(0x1f1))):'B'===C?console[ac(0x17e)](a0q[ac(0x20a)](ac(0x1b9))+a0q[ac(0xfe)](ac(0x124))):'C'===C&&console[ac(0x17e)](a0q[ac(0x20a)](ac(0x1b5)+a0D(ac(0x1b0))+'\x20')+a0q[ac(0x1b1)][ac(0x1cc)](ac(0x1a4))),console[ac(0x17e)](),'continue';}const B=v[ac(0x16e)](/^submit\s+(.+)/i);if(B){let I=B[0xd44+0xcad+-0x1*0x19f0]['trim']();if(/^submit\s+/i[ac(0x15d)](I)&&(I=I['replace'](/^submit\s+/i,'')[ac(0x163)]()),I=I[ac(0x105)](/^["'`]+|["'`]+$/g,'')[ac(0x163)](),/^[A-Da-d]$/[ac(0x15d)](I))return console[ac(0x17e)](),console[ac(0x17e)](a0q[ac(0x127)](ac(0x17d)+I+ac(0x12e))),console['log'](a0q['gray'](ac(0x158))+a0q[ac(0x1cc)](ac(0x118))+a0q['gray'](ac(0x1a7))),console[ac(0x17e)](),'continue';const {getExamState:J,saveExamState:K}=await import(ac(0x191)),L=J();if(!L)return ac(0x182);if(!L[ac(0x126)][ac(0x170)](O=>O['number']===f[ac(0x193)]))return console[ac(0x17e)](a0q[ac(0x1a8)]('\x20\x20Q'+f[ac(0x193)]+ac(0x107))),ac(0x19f);const M=L[ac(0x1c6)][f[ac(0x193)]];L[ac(0x1bf)]||(L[ac(0x1bf)]=[]),L[ac(0x1bf)][ac(0x200)]({'ts':new Date()['toISOString'](),'q':f[ac(0x193)],'type':M?ac(0x1be):'answer_submitted','input':I,'result':ac(0x19b)}),L[ac(0x1c6)][f[ac(0x193)]]=I;const N=f[ac(0x193)]+(0x17f1+-0x5c0*-0x2+-0x1f8*0x12);return L['_lastQ']=N<=-0xe6*0x1f+0x15*-0x86+-0x137f*-0x2?N:f[ac(0x193)],K(L),console[ac(0x17e)](),M?(console[ac(0x17e)](a0q[ac(0x1cc)]('\x20\x20✓\x20Q'+f['qNum']+ac(0x1ae))+a0q[ac(0x127)](I)),console[ac(0x17e)](a0q[ac(0x20a)](ac(0x202)+M))):console[ac(0x17e)](a0q[ac(0x1cc)]['bold'](ac(0x1b7)+f[ac(0x193)]+ac(0x18c)+I)),console[ac(0x17e)](a0q['gray'](ac(0x15f))),console[ac(0x17e)](),console['log'](a0q[ac(0x20a)]('\x20\x20')+a0q[ac(0x195)](ac(0x188))+a0q[ac(0x20a)](ac(0x14c))+a0q['white']('exit')+a0q[ac(0x20a)](ac(0x15b))),N<=0x6*-0x434+-0x665+0x2f*0xad?console['log'](a0q[ac(0x20a)](ac(0x134))+a0q[ac(0xfe)](ac(0x1cf))+a0q['gray'](ac(0x121)+N)):console[ac(0x17e)](a0q['gray'](ac(0x133))+a0q[ac(0x1a8)](ac(0x1d9))+a0q['gray']('\x20on\x20Q39')),console[ac(0x17e)](),ac(0x19f);}if(q[ac(0x187)]('!')){const O=q[ac(0x1e4)](-0x11f+-0x541+0x661)[ac(0x163)]();if(!O)return ac(0x19f);try{const P={};P[ac(0x1f5)]=ac(0x1fa),P[ac(0x16b)]=0x2710;const {execSync:Q}=await import(ac(0x123)),R=Q(O,P)[ac(0x163)]();console['log'](),console['log'](a0q[ac(0x20a)](ac(0x1bd))+a0q['white'](O)),console[ac(0x17e)](a0q[ac(0x195)]('\x20\x20'+R[ac(0x11f)]('\x0a')['join'](ac(0x1f9)))),console[ac(0x17e)]();}catch(S){console[ac(0x17e)](),console[ac(0x17e)](a0q[ac(0x1a8)](ac(0x147)+(S['message']?.[ac(0x11f)]('\x0a')[0x212d+-0x2530+0x403*0x1]||ac(0x1da)))),console['log']();}return ac(0x19f);}if('exit'===x||ac(0x169)===x||ac(0x135)===x){const T=f[ac(0x193)],{getExamState:U}=await import(ac(0x191)),V=U(),W=V&&null!=V[ac(0x1c6)][T],X=V?.[ac(0x1f8)]||T;return r=!(-0x1431+0x13df*-0x1+-0x107*-0x27),y=null,f=null,w[ac(0x1b6)](),console[ac(0x17e)](),console['log'](a0q[ac(0x20a)]('\x20\x20AI4CTF\x20chat\x20ended\x20for\x20Q'+T+'.')),W&&X>T&&X<=0xea*-0x1b+-0x7*0x57e+0x1fa3*0x2?console[ac(0x17e)](a0q['white'](ac(0x1a1))+a0q['bold'][ac(0x1cc)]('Q'+X)+a0q['gray'](ac(0x156))+a0q['cyan'](ac(0x1cf))+a0q[ac(0x20a)](ac(0x190))):W&&T>=0x191f+0x2ab*-0x6+0x11*-0x87?console[ac(0x17e)](a0q[ac(0x195)](ac(0x1b3))+a0q[ac(0x1b1)][ac(0x1a8)](ac(0x1d9))+a0q['gray'](ac(0x172))):console[ac(0x17e)](a0q[ac(0x20a)](ac(0x100))+a0q[ac(0x195)](ac(0xff)+T)+a0q[ac(0x20a)](ac(0x1e9))+a0q[ac(0x195)](ac(0x1cf))),console['log'](),ac(0x182);}if(u)return console['log'](),console[ac(0x17e)](a0q[ac(0x127)]('\x20\x20AI\x20budget\x20exhausted\x20for\x20AI4CTF\x20section.')),console[ac(0x17e)](a0q['gray'](ac(0x10d))+a0q['white'](ac(0x13d))+a0q[ac(0x20a)](ac(0x155))+a0q[ac(0x195)](ac(0x1ad))+a0q['gray'](ac(0x155))+a0q[ac(0x195)]('exit')),console[ac(0x17e)](),'continue';if(h>=d)return u=!(-0x4a8+-0x1656+-0x2b3*-0xa),console[ac(0x17e)](),console[ac(0x17e)](a0q[ac(0x1a8)]['bold'](ac(0x137))),console[ac(0x17e)](a0q[ac(0x20a)]('\x20\x20You\x20can\x20still:\x20')+a0q[ac(0x195)](ac(0x13d))+a0q['gray'](ac(0x155))+a0q['white'](ac(0x1ad))+a0q[ac(0x20a)](ac(0x155))+a0q[ac(0x195)](ac(0x182))),console[ac(0x17e)](),ac(0x19f);console[ac(0x17e)](a0q['gray'](ac(0x136)));try{const Y=await y[ac(0x1c5)](q);process[ac(0x125)][ac(0x1d8)]('\x1b[1A\x1b[2K'),h+=Y[ac(0x149)];const {getRealExamState:Z,saveExamState:a0}=await import(ac(0x191)),a1=Z(),a2={};a2['ai4ctf']=0x0,a2[ac(0x1d9)]=0x0,(a1&&(a1['aiUsage']||(a1[ac(0x10b)]=a2),a1[ac(0x10b)][ac(0x1cf)]=h,a0(a1)),console[ac(0x17e)](),a0B(Y['text']),m(),function(a3,a4,a5){const ad=ac,a6=a3/a4*(-0x2147*-0x1+-0x1*0x261d+-0xdf*-0x6);a6>=-0x13a8+0x24cc+-0x10c5&&!a5[ad(0x1dd)]('95')?(console[ad(0x17e)](a0q[ad(0x1a8)]['bold'](ad(0x1e7)+Math[ad(0x1e5)](a6)+ad(0x18e)+(a4-a3)+ad(0x1e2))),a5['add']('95')):a6>=-0x1f75*-0x1+0x8c+-0x13*0x1ab&&!a5[ad(0x1dd)]('80')?(console['log'](a0q[ad(0x127)](ad(0x1ba))),a5[ad(0x176)]('80')):a6>=-0x1bf5+0x2351+-0x72a&&!a5['has']('50')&&(console[ad(0x17e)](a0q['gray']('\x20\x20Note:\x2050%\x20of\x20section\x20AI\x20budget\x20used.')),a5[ad(0x176)]('50'));}(h,d,w),console['log']());}catch(a3){process[ac(0x125)]['write']('\x1b[1A\x1b[2K'),a0C(ac(0x1f7)+a3[ac(0x161)]),console[ac(0x17e)]();}return ac(0x19f);}export function registerAi4ctfCommand(b){const ae=a0j;b[ae(0x1f6)](ae(0x1cf))[ae(0x1db)]('Chat\x20with\x20your\x20AI\x20teammate')[ae(0x1c1)](async()=>{const af=ae;a0A('ai4ctf');const {getRealExamState:j}=await import(af(0x191)),k=j(),q=k?.['questions'][af(0x1c7)](A=>A['number']>=0x698+0x1111+-0x178a&&A[af(0x151)]<=-0x22e7*0x1+-0x1281+0x358e);if(k&&q){const A=k[af(0x1f8)]||-0x1bd0+-0x1fd7+0x2*0x1dd4;if(A<0x1025+-0x7*0x491+0xff1||A>0x70b*-0x2+0x12a8+-0x46c)return console[af(0x17e)](),console['log'](a0q[af(0x127)](af(0x183))),console[af(0x17e)](a0q[af(0x20a)](af(0x167)+A+af(0x162))),console['log'](a0q[af(0x20a)](af(0x152))+a0q[af(0x1b1)][af(0xfe)](af(0x1d6))),void console[af(0x17e)]();const B=k[af(0x126)][af(0x170)](C=>C[af(0x151)]===A);return B?void await async function(C,D){const ag=af,{getRealExamState:E,refetchQuestionDataIfStale:F,materializeAttachedData:G}=await import(ag(0x191));await F();const H=E();if(!H)return!(-0x1848+0x448*0x2+0x23*0x73);const I=H[ag(0x126)][ag(0x170)](L=>L[ag(0x151)]===C);I&&(D=I),G(C,D?.['attachedData']);const J=H['aiUsage']?.[ag(0x1cf)]??0x2651*0x1+-0x18a8+-0xda9;if(J>=d)return console['log'](),console[ag(0x17e)](a0q['yellow']('\x20\x20⚠\x20Your\x20AI4CTF\x20token\x20budget\x20is\x20exhausted.')),console['log'](a0q['gray'](ag(0x10e))+a0q['white'](ag(0x131)+C+ag(0x153))),console[ag(0x17e)](),!(0x25c+-0x26*0xb3+0x1*0x1837);try{y=await a0v(void(-0x856+-0xf40+0x1796*0x1),function(L,M){const ah=ag,N=L[ah(0x1db)]||L[ah(0x14e)]||'',O=L[ah(0x115)]?ah(0x13f)+M+'.txt\x20inside\x20the\x20contestant\x27s\x20sandbox\x20—\x20path\x20is\x20relative\x20to\x20the\x20sandbox\x27s\x20/home/competitor\x20working\x20directory,\x20reachable\x20from\x20any\x20!shell\x20/\x20!python3\x20invocation):\x0a'+L['attachedData']:'';return ah(0x10f)+M+',\x20'+L[ah(0x1ce)]+',\x20'+(L['points']||-0xcd*0x9+-0xc15+-0x9a8*-0x2)+'\x20points):\x0a'+N+O+ah(0x194)+M+ah(0x1b2);}(D,C));}catch(L){return a0C(L[ag(0x161)]),!(-0xd55+0x2*-0x12cb+0x32ec);}r=!(-0xe*-0xb1+-0x14*0x199+-0x1646*-0x1),h=J,u=!(0x5cb+-0x208a+-0x4*-0x6b0),f={'qNum':C,'question':D,'usageField':ag(0x1cf),'enteredAt':Date[ag(0x1d2)](),'hintsUsed':new Set(),'submitAttempted':!(0x1c01+-0x21cd+0x5cd),'nudgeShown':!(-0x1aeb*-0x1+-0xa1b*-0x2+-0x2f20)};const K=H[ag(0x1c6)]?.[C];return function(M,N,O){const ai=ag,P=a0z()[ai(0x185)]||ai(0x171),Q=h>0x1956+0x1f+-0x1975;console['log'](),console[ai(0x17e)](a0q[ai(0x1cc)][ai(0x1b1)](ai(0x1d5)+N+':\x20'+M[ai(0x1ce)]+ai(0x12a))),Q&&console[ai(0x17e)](a0q[ai(0x20a)]('\x20\x20(resuming\x20—\x20prior\x20chat\x20is\x20not\x20remembered,\x20but\x20tokens\x20already\x20used\x20stay\x20deducted)')),O&&console[ai(0x17e)](a0q[ai(0x20a)]('\x20\x20Current\x20answer:\x20')+a0q[ai(0x127)](O)+a0q[ai(0x20a)](ai(0x207))),console[ai(0x17e)](),console['log'](a0q['cyan'](ai(0x18f))),console[ai(0x17e)](a0q['cyan'](ai(0x132))+a0q[ai(0x1b1)][ai(0x195)]('Q'+N+ai(0x1e8)+M[ai(0x1ce)]+ai(0x116)+(M[ai(0x1e6)]||-0x1636+0x10de*-0x1+-0x46*-0x8f)+'\x20pts')),console[ai(0x17e)](a0q[ai(0xfe)](ai(0x12c)));for(const R of String(M[ai(0x14e)])['split']('\x0a')){const S=R[ai(0x14a)]>-0x1ee1+-0x1f2f+0x3e4c?R['slice'](0x996+0x10dc+-0x1a72,0x2*0x57b+0x1b3c+-0x25f9)+ai(0x139):R;console[ai(0x17e)](a0q[ai(0xfe)](ai(0x132))+a0q[ai(0x195)](S));}console[ai(0x17e)](a0q[ai(0xfe)]('\x20\x20│')),console[ai(0x17e)](a0q['cyan'](ai(0x132))+a0q[ai(0x20a)]('Full\x20question:\x20\x20')+a0q[ai(0x195)]('exam\x20q\x20'+N)),console[ai(0x17e)](a0q[ai(0xfe)](ai(0x132))+a0q[ai(0x20a)](ai(0x16d))),console[ai(0x17e)](a0q[ai(0xfe)]('\x20\x20└─────────────────────────────────────────────')),console['log'](),console[ai(0x17e)](a0q[ai(0x1b1)][ai(0x195)](ai(0x119))),console[ai(0x17e)](),console[ai(0x17e)](a0q[ai(0x127)](ai(0x102))+a0q[ai(0x20a)](ai(0x1c0))),console[ai(0x17e)](a0q[ai(0x127)](ai(0x168))+a0q[ai(0x20a)](ai(0x1fb))),console[ai(0x17e)](a0q[ai(0x127)](ai(0x13e))+a0q['gray'](ai(0x122))),console[ai(0x17e)](a0q[ai(0x1b1)][ai(0x1cc)](ai(0x1f0))+a0q[ai(0x20a)](ai(0x1c4))),console[ai(0x17e)](a0q[ai(0x195)](ai(0x20c))+a0q[ai(0x20a)](ai(0x106))),console['log'](a0q['gray']('\x20\x20\x20\x20Just\x20type\x20freely\x20to\x20chat\x20with\x20the\x20AI\x20teammate.')),console[ai(0x17e)](a0q[ai(0x20a)](ai(0x160))+a0q[ai(0x195)]('\x22how\x20do\x20I\x20decrypt\x20AES-CBC\x20in\x20Python?\x22')),console[ai(0x17e)](),console[ai(0x17e)](a0q[ai(0x20a)](ai(0x1f2))+a0q[ai(0x20a)](ai(0x178))),console[ai(0x17e)](a0q[ai(0x20a)](ai(0xfc))+a0q['gray'](ai(0x1a0))),console[ai(0x17e)](),m(),console[ai(0x17e)](a0q['gray'](ai(0x1fd)+P+')')),console['log']();}(D,C,K),!(-0x1c9*0x8+0x18a9+-0x1*0xa61);}(A,B):void a0C('Q'+A+'\x20not\x20found\x20in\x20state.\x20Try:\x20exam\x20q\x20'+A);}const v={};v[af(0x204)]=af(0x148),v[af(0x1ce)]=af(0x19d);const x=a0z()[af(0x185)]||af(0x171),z=v;try{y=await a0v(z);}catch(C){return void a0C(C[af(0x161)]);}r=!(-0x11a1+-0x948+0x1ae9*0x1),h=0x22e4+-0x42a+-0x72*0x45,u=!(0x2*0xf6f+0x3e*0x22+-0x2719),console[af(0x17e)](),console[af(0x17e)](a0q[af(0x1cc)][af(0x1b1)]('\x20\x20═══\x20'+a0D(af(0x1eb))+af(0x12a))),console[af(0x17e)](),console[af(0x17e)](a0q[af(0x195)]('\x20\x20'+a0D(af(0x129)))),console[af(0x17e)](),console[af(0x17e)](a0q[af(0xfe)](af(0x18f))),console[af(0x17e)](a0q[af(0xfe)](af(0x132))+a0q[af(0x1b1)]['white'](a0D('ai4ctfChallenge'))),console[af(0x17e)](a0q['cyan'](af(0x12c))),console[af(0x17e)](a0q[af(0xfe)](af(0x132))+a0q[af(0x195)](a0D('ai4ctfIntercepted'))),console[af(0x17e)](a0q['cyan'](af(0x132))+a0q['green'](af(0xfd))),console[af(0x17e)](a0q[af(0xfe)](af(0x12c))),console[af(0x17e)](a0q[af(0xfe)](af(0x132))+a0q[af(0x195)](a0D(af(0x179)))),console[af(0x17e)](a0q[af(0xfe)](af(0x132))+a0q[af(0x20a)](af(0x184))),console[af(0x17e)](a0q['cyan'](af(0x165))),console[af(0x17e)](),console[af(0x17e)](a0q[af(0x195)]('\x20\x20'+a0D('ai4ctfLevels'))),console[af(0x17e)](),console[af(0x17e)](a0q['yellow'](af(0x102))+a0q[af(0x20a)](af(0x1b5)+a0D(af(0x140)))),console[af(0x17e)](a0q[af(0x20a)](af(0x1ef)+a0D(af(0x111)))),console[af(0x17e)](a0q[af(0x127)](af(0x168))+a0q[af(0x20a)]('\x20\x20\x20\x20'+a0D('ai4ctfHintB'))),console[af(0x17e)](a0q['gray'](af(0x1ef)+a0D('ai4ctfHintBUses'))),console[af(0x17e)](a0q[af(0x127)](af(0x13e))+a0q[af(0x20a)](af(0x1b5)+a0D(af(0x12d)))),console[af(0x17e)](a0q[af(0x20a)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0D(af(0x10c)))),console[af(0x17e)](),console[af(0x17e)](a0q[af(0x20a)](af(0x1ac))),console[af(0x17e)](a0q['bold'][af(0x195)]('\x20\x20'+a0D(af(0x154)))),console['log'](af(0x1b5)+a0q[af(0xfe)](af(0x1ec))+a0q[af(0x20a)](af(0x1f4)+a0D(af(0x110)))),console[af(0x17e)](af(0x1b5)+a0q[af(0xfe)](af(0x1f1))+a0q[af(0x20a)](af(0x1f4)+a0D(af(0x1e0)))),console[af(0x17e)](af(0x1b5)+a0q[af(0xfe)](af(0x124))+a0q['gray'](af(0x1f4)+a0D(af(0x138)))),console[af(0x17e)](a0q[af(0x20a)](af(0x1b5)+a0D(af(0x11e)))),console[af(0x17e)](),console[af(0x17e)](a0q['white']('\x20\x20'+a0D(af(0x196)))),console[af(0x17e)](a0q['gray']('\x20\x20'+a0D('ai4ctfOrChatExample')+'\x20')+a0q[af(0x195)](af(0x145))),console[af(0x17e)](),console[af(0x17e)](a0q['yellow']('\x20\x20'+a0D('ai4ctfCommands'))),console[af(0x17e)](a0q[af(0x195)](af(0x180))+a0q['gray'](a0D(af(0x11a)))),console[af(0x17e)](a0q[af(0x195)](af(0x189))+a0q[af(0x20a)](a0D(af(0x208)))),console[af(0x17e)](a0q[af(0x195)](af(0x1c3))+a0q[af(0x20a)](a0D(af(0x1b4)))),console[af(0x17e)](a0q['gray']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.g.\x20')+a0q[af(0x195)](af(0x181))),console['log'](a0q[af(0x20a)]('\x20\x20\x20\x20exit\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0D('ai4ctfEndSession'))),console['log'](),m(),console['log'](a0q[af(0x20a)]('\x20\x20'+a0D('ai4ctfModel')+af(0x1d7)+x+')')),console[af(0x17e)](a0q[af(0x20a)]('\x20\x20'+a0D(af(0x1f3)))),console[af(0x17e)]();});}
|
|
1
|
+
(function(b,j){const a7=a0j,k=b();while(!![]){try{const q=parseInt(a7(0x23e))/(-0xbd7*0x3+-0x1c09+0x3f8f)*(-parseInt(a7(0x204))/(0x22b6+-0xdd*0xd+-0x177b*0x1))+parseInt(a7(0x232))/(-0x2000+0x5*-0x560+0x4b*0xc9)*(parseInt(a7(0x2c3))/(-0x51*0x13+-0x1102+0x1709))+parseInt(a7(0x2a9))/(-0x18*0x11c+-0xb74+0x2619)*(parseInt(a7(0x287))/(-0x2b1*-0xd+-0x1d76+-0x1*0x581))+-parseInt(a7(0x2a6))/(-0x175*0x2+-0x241*0x7+0x12b8)*(-parseInt(a7(0x2c5))/(0x35*-0x36+0x1c21+-0x10eb))+parseInt(a7(0x2cd))/(0x132d*-0x1+0x2*-0xa94+-0x142f*-0x2)+-parseInt(a7(0x1ff))/(-0x1*0x23e3+0x476*0x1+-0xf*-0x219)*(-parseInt(a7(0x247))/(-0xc38+0x22*-0xbf+0x25a1))+-parseInt(a7(0x205))/(-0x1*-0x18f3+-0x4a*-0x25+-0x1*0x2399);if(q===j)break;else k['push'](k['shift']());}catch(v){k['push'](k['shift']());}}}(a0b,0x73f47*0x1+-0x1bc4*0x25+0x1a74*0x25));import a0q from'chalk';import{createChatSession as a0v}from'../lib/gemini.js';import{addTokenUsage as a0x}from'../lib/budget.js';import{getConfig as a0z}from'../lib/config.js';import{logCommand as a0A}from'../lib/logger.js';import{printMarkdown as a0B,printError as a0C}from'../lib/ui.js';import{t as a0D}from'../lib/i18n.js';import{getExamState as a0E,saveExamState as a0F}from'../lib/exam-state.js';function a0b(){const aj=['DgvZDa','icaGicbsDw4GuhL0Ag9UigLUihnOzwXS','yxr0ywnOzwreyxrH','ywK0y3rMrxHPDenTze5LEhq','BgvUz3rO','Dg9mB3DLCKnHC2u','iokaLcb0ExbLia','ywK0y3rMv291BgrfyxjU','C3vIBwL0ieLdt0f7lI4UFq','CxvLC3rPB25Z','icdILRGG','ywK0y3rMv3jHCff1B3rHqq','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','icaGicfWExrOB24Zic4UlG','Dg9ju09tDhjPBMC','icbHAtrJDgyGAxmGyxzHAwXHyMXLig9UifeZmEkaKZm4icHbstrdveyGC2vJDgLVBIKU','icbbssbIDwrNzxqGzxHOyxvZDgvKigzVCIbbstrdveyGC2vJDgLVBI4','ywK0y3rMsgLUDencB2r5','rNvSBcbXDwvZDgLVBJOGia','z3jHEq','icaGigHPBNqGyq','icaGideUia','ywK0y3rMrxHPDa','ihb0CW','Dgv4Da','ywK0y3rMsgLUDfrLy2HUAxf1zq','ywK0y3rMvgL0Bgu','C3rYAw5NAwz5','nZGZmdy5DK1kt3HP','icbszxn1Bwu6ia','AwnVyxT3m2XJmg1LxZjFywK0y3rMFq','CMvWBgfJzq','AgfZ','lZuWmda','yw5ZD2vYx3n1yM1PDhrLza','q29UDgvUDc1uExbL','icbbstrdveyGy2HHDcbLBMrLzcbMB3iGuq','C3vIBwL0ieLdt0f7Ew91CL9MBgfNFq','ywK0y3rMv3jHCe5LEhrcB2r5','AgLUDcbJ','mZK3mdjNEvbICfO','icdIMQaGodaLig9MihnLy3rPB24GquKGyNvKz2v0ihvZzwqU','icaGicaODhLWzsbPDcbYAwDODcbOzxjLigLUihrOAxmGy2HHDcdIGjqGBM90igfZigeGC2HLBgWGy29TBwfUzcK','ywK0y3rMrM91BMrgBgfN','sgLUDca','ig5VDcbMB3vUzcbPBIbZDgf0zs4Gvhj5oIbLEgfTiheG','icdILii','icdIMQaGquK0q1rgihrVA2vUigj1zgDLDcbLEgHHDxn0zwqGkdi1ldaWmcb1C2vKks4','yw5ZD2vYx2nOyw5Nzwq','odu4otm2mw12DhPjDG','ywK0y3rMv3jHCff1B3rHC1rPDgXL','ywK0y3rMv3jHCe5LEhruAxrSzq','icbB','ywK0y3rMsgLUDei','igfUC3DLCIb1CgrHDgvKoIa','icbr','zw5JB2rPBMC','lNr4DcaOAw5ZAwrLihrOzsbZyw5KyM94ksbYyxrOzxiGDgHHBIbHC2TPBMCGDgHLignVBNrLC3rHBNqGDg8GCgfZDguGDgHLihDOB2XLigjSB2iGyMfJAY4klsblzwvWihjLC3bVBNnLCYbJB25JAxnLigfUzcbWCMfJDgLJywWUifrOAxmGy29UDgvZDgfUDcbOyxmGBgLTAxrLzcb0Aw1LlG','zgvZy3jPChrPB24','zw50zxjLzef0','Cu51Bq','icdILiZILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','ywK0y3rMv3jHCff1B3rHqG','ywK0y3rMrxHPDe5LEhruAxrSzq','ywrK','ywK0y3rMtw9KzwW','zMLUza','ihjLy29YzgvKoIa','ywK0y3rMsgLUDefvC2vZ','icaGicaGicaGicblzxKGyNjLywT0AhjVDwDOicHWCMuTD3jPDhrLBIK','q2HHDcb3AxrOihLVDxiGquKGDgvHBw1HDgu','ywK0y3rMv3jHCeXPBMuYqM9KEq','icaGia','ywK0y3rMsgLUDe51zgDL','ywK0y3rMuMvWB3j0','CMvK','Dg9vChbLCKnHC2u','C3rHCNrZv2L0Aa','C3vIBwL0ia','ywK0y3rMv3jHCeXPBMuYsgvHza','C2XPy2u','icdILjtILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','DMLHigfPngn0zIbJAgf0','BM9KztPJAgLSzf9WCM9JzxnZ','ywK0y3rMv3jHCe5VuhjVzW','C3bSAxq','ywK0y3rMtg9JA2vKvgHLBG','ywK0y3rMq2HHBgXLBMDL','cGPzt1vsifjvtevtoGOTifLVDsbnqvKGzxHWBgfPBIbJB25Jzxb0CYWGzgvZy3jPyMuGyxbWCM9Hy2HLCYWGyw5KigHLBhaGDgHLignVBNrLC3rHBNqGCMvHC29UihrOCM91z2GGDgHLihbYB2jSzw0UcI0Gww91ie1bwsbKAxnJDxnZihrOzsb0zwnOBM9SB2D5igLUDM9SDMvKicHbrvmSihb3BNrVB2XZlcbqExrOB24GC3rYDwn0lcbivfrqlcbLDgmUks4klsbzB3uGtufzigHLBhaGzgvIDwCGuhL0Ag9UignVzguGDgHLignVBNrLC3rHBNqGD3jPDgvZlGOTifLVDsbnvvnuie5pvcbYzxzLywWGDgHLigzSywCGzgLYzwn0BhKUcI0Gww91ie1vu1qGtK9uig91Dhb1DcbHBNKGC3rYAw5Nig1HDgnOAw5NieLdt0f7lI4UFsbVCIbPy29HEY4UlN0UcI0Gww91ie1vu1qGtK9uihrLBgWGDgHLignVBNrLC3rHBNqGDgHLigv4ywn0igfUC3DLCIb0BYb0AgLZihf1zxn0Aw9UlGOTifLVDsbnqvKGC3vNz2vZDcb3AgLJAcb0B29Sic8GBgLICMfYEsaVihrLy2HUAxf1zsb0BYb1C2uUcI0Gv2HLBIbZDwDNzxn0Aw5NihnOzwXSic8GChL0Ag9UihnUAxbWzxrZihrOyxqGBMvLzcb0AguGyxr0ywnOzwqGzgf0ysWGCMvMzxiGDg8GDgHLigzPBguGCgf0AcbJAgfSBgvUz2vZl3e','BwLU','ixnOzwXS','C3vIBwL0idXMBgfNpG','icaGicaGia','Dg9Rzw5mAw1PDa','icaGicaGicaGicaGica','D3jPDgu','zxHPDa','oIbhB29NBguGr2vTBweGncaO','iwvJAg8GyvDoDLLyDdnnmNHQtuCXBfH6sMzzv2SWwtnsBwzrpt0GFcbIyxnLnJqGlwq','AgLUDf91C2vK','icaGicbJDgy0ywK','DhjPBq','icaGifbYzxzPB3vZoIa','icaGicaGicaGicaGifjLDhvYBIb0BYbTywLUig1LBNuGkhDVCMTZigfUExDOzxjLkq','z3jLzw4','C3rKB3v0','icaGicaGicaGicbbigDLBNrSzsbUDwrNzsaOChjLlxDYAxr0zw4P','ywK0y3rMv3jHCff1B3rHrM9VDgvY','rMXHzYbMB3jTyxq6igLJB2f7lI4UFq','icbuAgLUA2LUzY4UlG','iNDOyxqGzw5JB2rPBMCGAxmGDgHPCZ8I','icaGicaGicaGicaG','CxvPDa','otzVyNfsEfC','ywK0y3rMoIa','ywK0y3rMt3jdAgf0rxHHBxbSzq','lIbuCNKGywDHAw4GAw5ZAwrLihrOAxmGy2HHDc4','igzVCIbrmZK','g1SXqrTBmKS','DgLTzw91Da','ihrVig1VDMuGB24','lNr4DcbPBNnPzguGDgHLignVBNrLC3rHBNqNCYbZyw5KyM94iokaLcbWyxrOigLZihjLBgf0AxzLihrVihrOzsbZyw5KyM94j3mGl2HVBwuVy29TCgv0AxrVCIb3B3jRAw5NigrPCMvJDg9YEsWGCMvHy2HHyMXLigzYB20Gyw55icfZAgvSBcaVicfWExrOB24ZigLUDM9JyxrPB24PoGO','ywK0y3rMuMv2zwfStg9JA05VDgu','icaGice8C2HLBgWGy21KpIaGica','icdILiiG','ywK0y3rMrw5Ku2vZC2LVBG','EwvSBg93','ywK0y3rMv3jHCe5LEhrtDwi','DxrMltG','Aw50zxjHy3rPB25Z','ywK0y3rM','ywK0y3rMtg9JA2vKvgL0Bgu','ywK0y3rMu2fTCgXL','BNvKz2vtAg93BG','CMvWzwf0','ywK0y3rMsgLUDee','ywK0y3rMsgLUDe5LEhrd','icaGiokgKIa','icdcTYaGuMuTzw50zxi6ia','ywK0y3rMv3jHCfrPDgXL','ue9tva','y3LHBG','icbtDgLSBcbHDMfPBgfIBgu6ia','icbnB2rLBdOGr29Vz2XLieDLBw1HidqGka','otG3vKnMDwTK','icaGigHPBNqGyG','CgfKrw5K','mJm2mJKWuvjuy2rc','ywK0y3rMsgLUDe5LEhrc','AgLUDcbH','y2f0zwDVCNK','icaKia','icaGicaGicaGicfLy2HVigfxtNzzwhqZttj4AK1hmwXyEKPMwvDRmfKZuM1Mut09ihWGyMfZzty0ic1K','ywK0y3rMsgLUDenvC2vZ','icbbzNrLCIbLEgL0oIbbstrdveyGC2vJDgLVBIbJB21WBgv0zs4GtMv4DdOG','icaGicaGigHPBNqGyIaGia','zxHHBsbXidmX','icbzB3uGy2fUihn0AwXSihn1yM1PDcbHigzSywCGzgLYzwn0BhK6ia','icaGihn1yM1PDcbjq09bEY4UlN0','ywK0y3rMq29YCMvJDezSywC','BMfTzq','icaGicaGigHPBNqGysaGia','ihrVignVBNrPBNvL','BM93','C2vUze1LC3nHz2u','ywK0y3rMq21KsgLUDeXPBMu','yM9Sza','C3vIBwL0qxr0zw1WDgvK','cIaG','ihDPBgWGB3bLBIbr','ihrVA2vUCYbSzwz0lG','vg9Rzw5Z','icaGicHhCMfKAw5NigHHChbLBNmGyxqGzxHHBsbZDwjTAxqG4OcuihLVDsbJyw5UB3qGChjLDMLLDYbJB3jYzwn0BMvZCYbKDxjPBMCGDgHLigv4yw0Ukq','mtj6yxHJCeO','ywK0y3rMv3jHCff1B3rHqKHPBNq','mZiWohLvy2fbwq','y2f0y2G','Bg9N','DgHPBMTPBMC','C3vIBwL0igLJB2f7DZnSyZbTzv8Yx2fPngn0zN0','ywK0y3rMu3vIBwL0q21K','jsbVzIbZzwn0Aw9Uiefjigj1zgDLDcb1C2vKiokaLcbVBMX5ih4','icaGicaGicaGia','mtGWmdi4ohz3sgrrAa','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','ywK0y3rMq21Ku2HLBgXmAw5L','icaGifn0DwnRpYbuCNK6ia','icbgBgfNigzVCM1HDdOG','Bwf0y2G','icbzB3uGyxjLig9Uife','lI4VBgLIl2v4yw0TC3rHDguUANm','ywK0y3rMrxHPDenTzejHy2S','y3rMngfP','iwvJAg8GyvDoDI4UlIb8igjHC2u2ncaTza','imk3ia','icaGigHPBNqGyW','icaI','icaGicaGicbPy29HE3CZBgmWBwvFmL9HAtrJDgz9','ieLdt0f7lI4UFq','AgLUDcbI','z2vTBweTnc0ZmwiTAxq','ywK0y3rMv3jHCeXPBMuXqM9KEq','Dg9Rzw5ZvxnLza','lI4U','icaGicbIywnR','ywn0Aw9U','ywK0y3rMv3jVBMDgBgfN','zxHHBsbXia','y29UDgLUDwu','ywLvC2fNzq','ywK0y3rMsgLUDem','icaGifjLywXSEsbZDhvJAZ8Gvhj5oIa','x2XHC3rr','sunpqxT5B3vYx2zSywD9','ywK0y3rMt3jdAgf0','icaGicaGicaHzwnOBYbHv052wvH0m00YEgPnrZfSwhPkzLLxAZbzm1jTzLe9psb8igjHC2u2ncaTza','ywK0y3rMv2vSy29Tzu5VuMv2zwfS','D2HPDgu','icbfCNjVCJOG','cGPbvfrbq0HfrcbeqvrbicHHBhnVihnHDMvKihrVignOywXSzw5NzxmVCq','oIbhB29NBguGr2vTBweGncaOz2vTBweTnc0ZmwiTAxqP','CxvLC3rPB24','y29TBwfUza','quKGzxjYB3i6ia','ywK0y3rMsgLUDfbYAw5JAxbSzq','icdILRGGsgLUDca','yw5ZD2vYCW','y2XLyxi','ywK0y3rMrxHPDe5LEhrtDwi','BNvTyMvY','icaG4OAsia','icaGigHPBNqGysaVigiGlYbJica','icbezxrLy3rLzcbMBgfNiokaLcb0CMvHDgLUzYbHCZOG','icaGigv4Axq','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','yxbWBgLJyxrPB24VANnVBG','icaGicaGicaGicbuzwnOBMLXDwuGAgLUDcaOChjLlxDYAxr0zw4P','ywK0y3rMtg9JA2vKvxnL','BwvZC2fNzq','E25VuhjVz30','icaGicaGicaGicaGieXLyxzLignOyxqSihjLDhvYBIb0BYbLEgfT','mtbfteXiywS','icbozxH0oIa','ywK0y3rMrxHPDe5LEhrcB2r5','AM9PBG','ywK0y3rMsw50zxjJzxb0zwq','nKXHEujrvW','mJm5mZK5ntjwBNbgu2q','ywK0y3rMv3jHCff1B3rHqW','CM91BMq','quK0q1rgihnLy3rPB24','ywK0y3rMrgvJB2rL','Cg9PBNrZ','yMfJAW','ywK0y3rMv2vSy29Tzun0yq','icbdDxjYzw50igfUC3DLCJOG','ywK0y3rMq29TBwfUzhm','icdINjmGuq','AgLUDhnvC2vK','q29TBwfUzcbMywLSzwq','icaGig1LBNu','C29Tzq','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDs9HCgKVAwnVys9Kzw1Vlxn0yxrZ','icdINjmGqw5ZD2vYigzVCIbr'];a0b=function(){return aj;};return a0b();}const g=b=>new Promise(j=>setTimeout(j,b));function a0j(a,b){a=a-(0x12d4+-0x17d0+0x6ee);const c=a0b();let d=c[a];if(a0j['mOqyXq']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=0x1*0x1741+-0x1112+-0x62f,o,p,q=0x1*-0x150b+0x11c5*0x2+-0xe7f;p=i['charAt'](q++);~p&&(o=n%(-0x3d*0x2d+-0x447*0x3+-0x35e*-0x7)?o*(-0xbea+-0xc95*0x3+0x31e9)+p:p,n++%(0x161+-0x1bf0+0x1a93))?l+=String['fromCharCode'](-0xf47+-0x1a28+0x1537*0x2&o>>(-(0x1dd+-0x1c01+0x1a26)*n&0x1*-0x903+0xb32*0x1+-0x229*0x1)):-0x1333+0x1f*0x9a+0x8d){p=j['indexOf'](p);}for(let r=-0x59*0x5+0x2612+-0x1*0x2455,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](-0x23cf+-0x1061+0xb*0x4c0))['slice'](-(0x47*-0x39+0x1f36+0x1*-0xf65));}return decodeURIComponent(m);};a0j['YGRLTO']=e,a0j['yvxVWw']={},a0j['mOqyXq']=!![];}const f=c[0x1a*-0x117+0x1*0x1b41+0x1*0x115],g=a+f,h=a0j['yvxVWw'][g];return!h?(d=a0j['YGRLTO'](d),a0j['yvxVWw'][g]=d):d=h,d;}let r=!(0x51b+-0x1a83+0x261*0x9),y=null,h=-0x1*-0x230+0x499+-0x6c9,u=!(-0x1757*-0x1+-0x9f*0x22+-0x238);const d=-0x44a*0x2c+-0xc084+-0xef72*-0x2;let f=null;export function isChatActive(){return r;}function m(){const a8=a0j,b=f?d:-0x18ee+-0x20ac+0x4d22,j=h,k=Math[a8(0x26f)](Math['round'](j/b*(0x63*-0x23+-0x38f*0x7+0x26d6)),-0x19c4+0xdc9*-0x1+0x19*0x199),q=Math[a8(0x207)](k/(0x23c3+0xe7c+-0x31db*0x1)*(0x2484+0x1020+0x2*-0x1a48)),v=-0x1*0x1d42+-0x233+0x1f89-q,x=k>0x1*-0x1e93+-0x1594+0x25*0x16b?a0q[a8(0x261)]:k>0x2*0xac8+-0x4e5+0x1*-0x1079?a0q['yellow']:a0q[a8(0x27e)],z=f?a8(0x208):a8(0x2c1);console[a8(0x2c7)](a0q[a8(0x229)]('\x20\x20'+z+':\x20')+x('█'[a8(0x29c)](q))+a0q[a8(0x229)]('░'[a8(0x29c)](v))+a0q[a8(0x229)]('\x20'+j+'/'+b+'\x20('+k+'%)'));}export async function handleChatMessage(q){const a9=a0j;if(!y)return a9(0x276);if(a0A(a9(0x288)+q),f)return p(q);const v=q[a9(0x27b)]()[a9(0x21b)]()['match'](/^hint\s+([abc])$/);if(v)return function(B){const aa=a9,C=a0D('a'===B?aa(0x29d):'b'===B?aa(0x24b):aa(0x2e8)),D=a0D('a'===B?'ai4ctfHintABody':'b'===B?'ai4ctfHintBBody':aa(0x227)),E=aa(0x242)+B[aa(0x262)](),F='a'===B?a0q[aa(0x27e)]:'b'===B?a0q[aa(0x294)]:a0q[aa(0x261)];console[aa(0x2c7)](),console[aa(0x2c7)](F[aa(0x2bc)](aa(0x220)+E+'\x20\x20')+a0q['gray'](C)),console[aa(0x2c7)]();for(const G of D[aa(0x26b)]('\x0a'))''===G?console[aa(0x2c7)]():console['log'](a0q['white']('\x20\x20\x20\x20'+G));console[aa(0x2c7)](),'a'===B?(console['log'](a0q[aa(0x229)](aa(0x25e)+a0D('ai4ctfHintNextA')+'\x20')+a0q['cyan'](aa(0x2dd))),console['log']()):'b'===B&&(console['log'](a0q[aa(0x229)](aa(0x25e)+a0D(aa(0x2aa))+'\x20')+a0q['cyan']('hint\x20c')),console[aa(0x2c7)]());}(v[0x3*0x3fe+0x1*0x303+0x1*-0xefc]),a9(0x2e6);const x=q[a9(0x2d2)](/^submit\s+(.+)/i);if(x){let B=x[-0xa9b+0x1*-0xfb5+0x1a51][a9(0x27b)]();if(/^submit\s+/i[a9(0x216)](B)&&(B=B[a9(0x235)](/^submit\s+/i,'')['trim']()),B=B['replace'](/^["'`]+|["'`]+$/g,'')[a9(0x27b)](),a9(0x234)===B){console[a9(0x2c7)](),console['log'](a0q['green']['bold']('\x20\x20════════════════════════════════════')),console['log'](a0q[a9(0x27e)][a9(0x2bc)]('\x20\x20'+a0D(a9(0x2b5)))),console['log'](a0q['green'][a9(0x2bc)](a9(0x222))),console[a9(0x2c7)](),console['log'](a0q['white']('\x20\x20'+a0D('ai4ctfDecoded'))),console['log'](a0q[a9(0x229)]('\x20\x20'+a0D(a9(0x21d)))),console[a9(0x2c7)](),m(),r=!(0x1dff+0x1337+-0x3135),y=null,fetch('https://practice.icoa2026.au/api/icoa/demo-stats',{'method':a9(0x2a2),'headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'type':a9(0x298),'solved':!(-0x1*-0x16c6+0x17e6+-0x2eac),'tokensUsed':h,'timestamp':new Date()[a9(0x224)]()}),'signal':AbortSignal[a9(0x28d)](0x1ee5+0x1042+-0x1b9f)})['catch'](()=>{}),await g(0x3*0x37+0x3eb+-0x53*-0x4),console['log'](),console[a9(0x2c7)](a0q[a9(0x2a3)](a9(0x2ce))),console[a9(0x2c7)](a0q[a9(0x2bc)][a9(0x2ef)]('\x20\x20'+a0D(a9(0x2a1)))),console['log'](a0q[a9(0x2a3)]('\x20\x20─────────────────────────────────────────────')),console['log']();const C=a0D('ai4ctfWrapLine1Head'),D=a0D(a9(0x2df));console[a9(0x2c7)](a0q[a9(0x2ef)](a9(0x22b)+C+'\x20')+a0q['gray'](D['split']('\x0a')[-0xb74+0x1e6a+-0x12f6]||''));for(const H of D[a9(0x26b)]('\x0a')[a9(0x266)](0x13*-0x1a2+-0x1b77*0x1+0x3a7e))H[a9(0x27b)]()&&console['log'](a0q[a9(0x229)](a9(0x272)+H[a9(0x235)](/\{thinking\}/g,a9(0x2c8))));console['log'](),console[a9(0x2c7)](a0q[a9(0x2ef)]('\x20\x20\x20\x202.\x20'+a0D(a9(0x265))+'\x20')+a0q[a9(0x229)](a0D(a9(0x25d)))),console[a9(0x2c7)](),console[a9(0x2c7)](a0q[a9(0x2a3)](a9(0x2ae))),console[a9(0x2c7)](),await g(0x1395+0x1*-0x1d63+-0x16*-0xcd),console[a9(0x2c7)](a0q[a9(0x2a3)]('\x20\x20─────────────────────────────────────────────')),console[a9(0x2c7)](a0q[a9(0x2bc)][a9(0x2ef)]('\x20\x20'+a0D(a9(0x248)))),console[a9(0x2c7)](a0q[a9(0x2a3)](a9(0x2ce))),console[a9(0x2c7)](),console[a9(0x2c7)](a0q[a9(0x294)](a9(0x2b7))+a0q[a9(0x2ef)](a0D(a9(0x221))[a9(0x2a8)](-0x1696*0x1+-0xd7*0x1d+0x2f0b*0x1))+a0q[a9(0x229)](a0D('ai4ctfWrapQuotaAHint'))),console[a9(0x2c7)](a0q['yellow'](a9(0x2b1))+a0q['white'](a0D(a9(0x254))[a9(0x2a8)](0x11*0x6+-0x199*0x17+0x2473))+a0q[a9(0x229)](a0D(a9(0x2c4)))),console[a9(0x2c7)](a0q[a9(0x294)]('\x20\x20\x20\x20\x20\x20\x20hint\x20c\x20\x20\x20')+a0q[a9(0x2ef)](a0D(a9(0x206))['padEnd'](0xaa9*0x1+-0xb*0x35b+0xd2d*0x2))+a0q[a9(0x229)](a0D('ai4ctfWrapQuotaCHint'))),console[a9(0x2c7)]();for(const I of a0D(a9(0x281))[a9(0x26b)]('\x0a'))console[a9(0x2c7)](a0q[a9(0x229)](a9(0x25e)+I));console['log'](),await g(-0x24c7+0x125*0x7+0x2494),console[a9(0x2c7)](a0q[a9(0x2a3)]('\x20\x20─────────────────────────────────────────────')),console[a9(0x2c7)](a0q[a9(0x2bc)][a9(0x2ef)]('\x20\x20'+a0D(a9(0x249))+'\x20')+a0q['red']['bold'](a9(0x2d6))+a0q[a9(0x2ef)]('\x20—\x20'+a0D(a9(0x295)))),console[a9(0x2c7)](a0q[a9(0x2a3)](a9(0x2ce))),console[a9(0x2c7)]();const E=a0D(a9(0x23c)),F=a0D(a9(0x26a)),G=E[a9(0x26b)]('\x0a');if(G[0x15c7+-0xd3*0x1+-0x14f4]){const [J,K]=G[0x72*-0x17+0x1*0x3c1+-0xb*-0x97]['split'](a9(0x1fd));console[a9(0x2c7)](a0q[a9(0x2ef)]('\x20\x20\x20\x20'+(J||''))+a0q[a9(0x2bc)][a9(0x2ef)](F)+a0q[a9(0x2ef)](K||''));}for(const L of G[a9(0x266)](0x6a8+-0x68*-0x35+0x6f*-0x41))L[a9(0x27b)]()&&console[a9(0x2c7)](a0q['white'](a9(0x25e)+L));return console[a9(0x2c7)](),console[a9(0x2c7)](a0q[a9(0x229)](a9(0x25e)+a0D('ai4ctfWrapTypeCtf4ai')+'\x20')+a0q['bold']['red'](a9(0x2d6))),console[a9(0x2c7)](),a9(0x276);}return console['log'](),console[a9(0x2c7)](a0q[a9(0x261)]('\x20\x20'+a0D(a9(0x2e4)))),console['log'](a0q['gray']('\x20\x20'+a0D('ai4ctfFlagHint'))),console[a9(0x2c7)](),a9(0x2e6);}if(q[a9(0x263)]('!')){const M=q['slice'](0x2013+-0x832*0x1+-0x5f8*0x4)['trim']();if(!M)return a9(0x2e6);try{const N={};N[a9(0x24e)]=a9(0x296),N[a9(0x28d)]=0x2710;const {execSync:O}=await import('node:child_process'),P=O(M,N)[a9(0x27b)]();console[a9(0x2c7)](),console[a9(0x2c7)](a0q[a9(0x229)](a9(0x2ad))+a0q[a9(0x2ef)](M)),console['log'](a0q[a9(0x2ef)]('\x20\x20'+P['split']('\x0a')[a9(0x202)](a9(0x2be)))),console[a9(0x2c7)](),console['log'](a0q[a9(0x229)]('\x20\x20'+a0D(a9(0x241)))),console[a9(0x2c7)]();}catch(Q){console[a9(0x2c7)](),console[a9(0x2c7)](a0q[a9(0x261)](a9(0x2f0)+(Q[a9(0x1fc)]?.['split']('\x0a')[-0x785*0x3+0x7dc*0x1+0x35*0x47]||a9(0x211)))),console[a9(0x2c7)]();}return a9(0x2e6);}const z={};z['Content-Type']=a9(0x1f9);if('exit'===q||a9(0x20b)===q||'quit'===q||'menu'===q)return r=!(0x1*-0x1da7+-0x63*-0x19+0x11*0x12d),y=null,fetch(a9(0x214),{'method':'POST','headers':z,'body':JSON[a9(0x231)]({'type':a9(0x298),'tokensUsed':h,'timestamp':new Date()[a9(0x224)]()}),'signal':AbortSignal[a9(0x28d)](-0x20e6+0x202e+0x1440*0x1)})[a9(0x2c6)](()=>{}),console['log'](),console[a9(0x2c7)](a0q[a9(0x229)]('\x20\x20─────────────────────────────────────────')),console[a9(0x2c7)](a0q[a9(0x2ef)]('\x20\x20'+a0D(a9(0x260)))),console[a9(0x2c7)](a0q['gray']('\x20\x20'+a0D('ai4ctfTokens')+':\x20'+h+a9(0x237))),console['log'](a0q['gray']('\x20\x20'+a0D(a9(0x257))+a9(0x2f2))),console[a9(0x2c7)](a0q['gray'](a9(0x1f8))),console[a9(0x2c7)](),console[a9(0x2c7)](a0q[a9(0x2a3)]('\x20\x20─────────────────────────────────────────────')),console[a9(0x2c7)](a0q[a9(0x2ef)]('\x20\x20'+a0D(a9(0x255))+'\x20')+a0q[a9(0x2bc)][a9(0x261)](a9(0x2d6))+a0q[a9(0x2ef)]('\x20—\x20'+a0D(a9(0x1f2)))),console[a9(0x2c7)](a0q['gray']('\x20\x20'+a0D(a9(0x201)))),console[a9(0x2c7)](a0q[a9(0x2a3)]('\x20\x20─────────────────────────────────────────────')),console[a9(0x2c7)](),console[a9(0x2c7)](a0q['bold']['red'](a9(0x27a))+a0q[a9(0x229)](a9(0x2cc)+a0D(a9(0x219)))),console[a9(0x2c7)](a0q['white'](a9(0x2e2))+a0q[a9(0x229)](a9(0x285)+a0D(a9(0x2d5)))),console[a9(0x2c7)](),'exit';const A={};A[a9(0x239)]=a9(0x1f9);if(!u&&h>=0xdf3*-0x1+-0x2e2+0x245d)return u=!(-0x1071*-0x2+0x42*-0x3d+-0x1128),fetch('https://practice.icoa2026.au/api/icoa/demo-stats',{'method':'POST','headers':A,'body':JSON[a9(0x231)]({'type':a9(0x298),'solved':!(-0x3*-0x29d+-0xeaa*-0x1+0x3c0*-0x6),'tokensUsed':h,'timestamp':new Date()['toISOString']()}),'signal':AbortSignal[a9(0x28d)](0x15b6*-0x1+0x20c1+0x87d)})[a9(0x2c6)](()=>{}),console[a9(0x2c7)](),console[a9(0x2c7)](a0q[a9(0x294)]('\x20\x20'+a0D(a9(0x273)))),m(),(function(){const ab=a9;console['log'](),console[ab(0x2c7)](a0q[ab(0x294)]('\x20\x20─────────────────────────────────────────────')),console[ab(0x2c7)](a0q[ab(0x2bc)]['yellow']('\x20\x20'+a0D('ai4ctfRevealTitle'))),console['log'](a0q['yellow'](ab(0x2ce))),console[ab(0x2c7)]();for(const R of a0D('ai4ctfRevealBody')[ab(0x26b)]('\x0a'))''===R?console[ab(0x2c7)]():console[ab(0x2c7)](a0q[ab(0x2ef)](ab(0x25e)+R));console[ab(0x2c7)](),console['log'](a0q['cyan'](ab(0x2ed))),console[ab(0x2c7)](),console['log'](a0q[ab(0x2ef)](ab(0x25e)+a0D('ai4ctfRevealSeeFlag'))),console['log'](),console[ab(0x2c7)](a0q[ab(0x27e)](ab(0x2db))),console[ab(0x2c7)](),console[ab(0x2c7)](a0q[ab(0x2ef)](ab(0x25e)+a0D('ai4ctfRevealThenSubmit'))),console[ab(0x2c7)](),console[ab(0x2c7)](a0q[ab(0x2a3)]('\x20\x20\x20\x20\x20\x20\x20\x20submit\x20icoa{w3lc0me_2_ai4ctf}')),console[ab(0x2c7)](),console[ab(0x2c7)](a0q[ab(0x229)]('\x20\x20\x20\x20'+a0D(ab(0x290)))),console['log']();}()),a9(0x2e6);if(u)return console[a9(0x2c7)](),console[a9(0x2c7)](a0q[a9(0x294)]('\x20\x20'+a0D(a9(0x299)))),console[a9(0x2c7)](a0q[a9(0x229)]('\x20\x20'+a0D(a9(0x1fb))+'\x20')+a0q[a9(0x2a3)](a9(0x278))),console[a9(0x2c7)](a0q[a9(0x229)]('\x20\x20'+a0D(a9(0x26c))+'\x20')+a0q[a9(0x2a3)](a9(0x2c9))),console[a9(0x2c7)](),a9(0x2e6);console[a9(0x2c7)](a0q['gray']('\x20\x20'+a0D('ai4ctfThinking')));try{const R=await y[a9(0x2ba)](q);process[a9(0x27f)][a9(0x275)](a9(0x28c)),h+=R[a9(0x2e0)],a0x(R[a9(0x2e0)]),console[a9(0x2c7)](),a0B(R[a9(0x22e)]),m(),console[a9(0x2c7)]();}catch(S){process[a9(0x27f)][a9(0x275)]('\x1b[1A\x1b[2K'),a0C(a9(0x2f5)+S[a9(0x1fc)]),console[a9(0x2c7)]();}return a9(0x2e6);}const w=new Set();async function p(q){const ac=a0j;if(!f||!y)return ac(0x276);const v=q[ac(0x27b)](),x=v['toLowerCase'](),z=(Date[ac(0x2b9)]()-f[ac(0x251)])/(-0x1b077+0x183ca+0x1170d);if(!f[ac(0x29b)]&&!f[ac(0x2bd)]&&f['hintsUsed']['size']>=0x1*0x1472+0x1*-0xaf1+0xb*-0xdd&&z>=-0x62e+-0x26cd+-0xf00*-0x3&&(f[ac(0x29b)]=!(-0x1303*-0x2+0x2c1+-0x28c7),console[ac(0x2c7)](),console[ac(0x2c7)](a0q[ac(0x294)]('\x20\x20💡\x20Once\x20you\x20have\x20ICOA{...},\x20submit\x20it\x20with:\x20')+a0q[ac(0x2bc)][ac(0x294)](ac(0x23b))),console['log'](a0q[ac(0x229)](ac(0x240))),console[ac(0x2c7)]()),/^ICOA\{[^}]+\}$/i[ac(0x216)](v))return console[ac(0x2c7)](),console[ac(0x2c7)](a0q[ac(0x229)](ac(0x1f6))+a0q[ac(0x2ef)](ac(0x264)+v)),p(ac(0x264)+v);const A=x[ac(0x2d2)](/^hint\s+([abc])$/);if(A){const C=A[-0xcc+0x1dc9*-0x1+0x1e96][ac(0x262)]();f[ac(0x210)][ac(0x256)](C);const D=a0E();D&&(D[ac(0x297)]||(D[ac(0x297)]=[]),D[ac(0x297)]['push']({'ts':new Date()[ac(0x224)](),'q':f['qNum'],'type':ac(0x279),'input':C}),a0F(D));const E=f[ac(0x2f3)]['hints'],F=E?.[C],G='A'===C?a0q[ac(0x27e)]:'B'===C?a0q[ac(0x294)]:a0q[ac(0x261)];if(console[ac(0x2c7)](),console['log'](G[ac(0x2bc)](ac(0x2f7)+C)),console[ac(0x2c7)](),F){for(const H of String(F)[ac(0x26b)]('\x0a'))console[ac(0x2c7)](a0q['white']('\x20\x20\x20\x20'+H));}else console[ac(0x2c7)](a0q[ac(0x229)]('\x20\x20\x20\x20No\x20pre-written\x20hint\x20at\x20this\x20tier\x20for\x20this\x20question.'));return console[ac(0x2c7)](),'A'===C?console['log'](a0q[ac(0x229)](ac(0x2d0))+a0q['cyan'](ac(0x2dd))):'B'===C?console[ac(0x2c7)](a0q[ac(0x229)](ac(0x2e9))+a0q[ac(0x2a3)](ac(0x23d))):'C'===C&&console[ac(0x2c7)](a0q[ac(0x229)](ac(0x25e)+a0D(ac(0x29e))+'\x20')+a0q[ac(0x2bc)][ac(0x27e)]('submit\x20ICOA{your_flag}')),console[ac(0x2c7)](),'continue';}const B=v[ac(0x2d2)](/^submit\s+(.+)/i);if(B){let I=B[-0xd*-0x15d+0x96*0x21+-0x22e*0x11][ac(0x27b)]();if(/^submit\s+/i['test'](I)&&(I=I['replace'](/^submit\s+/i,'')['trim']()),I=I[ac(0x235)](/^["'`]+|["'`]+$/g,'')[ac(0x27b)](),/^[A-Da-d]$/[ac(0x216)](I))return console['log'](),console[ac(0x2c7)](a0q[ac(0x294)](ac(0x2da)+I+'\x22\x20looks\x20like\x20an\x20MCQ\x20letter,\x20not\x20a\x20flag.')),console['log'](a0q[ac(0x229)](ac(0x2d1))+a0q['green'](ac(0x2eb))+a0q[ac(0x229)](ac(0x28a))),console[ac(0x2c7)](),ac(0x2e6);const {getExamState:J,saveExamState:K}=await import('../lib/exam-state.js'),L=J();if(!L)return ac(0x276);if(!L['questions'][ac(0x258)](O=>O[ac(0x1f3)]===f[ac(0x252)]))return console[ac(0x2c7)](a0q[ac(0x261)](ac(0x24d)+f[ac(0x252)]+'\x20not\x20found\x20in\x20state.')),ac(0x2e6);const M=L[ac(0x2f8)][f['qNum']];L[ac(0x297)]||(L[ac(0x297)]=[]),L[ac(0x297)]['push']({'ts':new Date()[ac(0x224)](),'q':f[ac(0x252)],'type':M?ac(0x246):ac(0x238),'input':I,'result':ac(0x268)}),L['answers'][f[ac(0x252)]]=I;const N=f[ac(0x252)]+(-0x38c+0x1c92+-0x1905);return L[ac(0x2ea)]=N<=-0x493*-0x1+-0x1*-0xdd2+0x9*-0x207?N:f[ac(0x252)],K(L),console['log'](),M?(console[ac(0x2c7)](a0q[ac(0x27e)](ac(0x20f)+f[ac(0x252)]+ac(0x24c))+a0q[ac(0x294)](I)),console[ac(0x2c7)](a0q['gray'](ac(0x27c)+M))):console[ac(0x2c7)](a0q[ac(0x27e)][ac(0x2bc)](ac(0x215)+f[ac(0x252)]+ac(0x259)+I)),console['log'](a0q['gray'](ac(0x2c2))),console[ac(0x2c7)](),console['log'](a0q[ac(0x229)]('\x20\x20')+a0q['white'](ac(0x21e))+a0q[ac(0x229)]('\x20again\x20to\x20change,\x20or\x20')+a0q[ac(0x2ef)]('exit')+a0q['gray'](ac(0x28e))),N<=0x74e+-0x1*-0xffd+-0x1725?console[ac(0x2c7)](a0q['gray']('\x20\x20After\x20exit:\x20')+a0q[ac(0x2a3)]('ai4ctf')+a0q[ac(0x229)](ac(0x2bf)+N)):console[ac(0x2c7)](a0q[ac(0x229)](ac(0x2b0))+a0q[ac(0x261)](ac(0x2d6))+a0q['gray']('\x20on\x20Q39')),console[ac(0x2c7)](),'continue';}if(q[ac(0x263)]('!')){const O=q['slice'](0xe7e+0xfd1+-0x1e4e)[ac(0x27b)]();if(!O)return'continue';try{const P={};P[ac(0x24e)]=ac(0x296),P[ac(0x28d)]=0x2710;const {execSync:Q}=await import(ac(0x269)),R=Q(O,P)[ac(0x27b)]();console[ac(0x2c7)](),console[ac(0x2c7)](a0q['gray'](ac(0x2ad))+a0q['white'](O)),console[ac(0x2c7)](a0q[ac(0x2ef)]('\x20\x20'+R[ac(0x26b)]('\x0a')[ac(0x202)]('\x0a\x20\x20'))),console[ac(0x2c7)]();}catch(S){console['log'](),console['log'](a0q[ac(0x261)](ac(0x2f0)+(S[ac(0x1fc)]?.['split']('\x0a')[-0x5dd+0xb5d+-0x580]||ac(0x211)))),console['log']();}return ac(0x2e6);}if(ac(0x276)===x||ac(0x20b)===x||ac(0x286)===x){const T=f[ac(0x252)],{getExamState:U}=await import('../lib/exam-state.js'),V=U(),W=V&&null!=V[ac(0x2f8)][T],X=V?.[ac(0x2ea)]||T;return r=!(-0xdf6+-0x55d+0x1354),y=null,f=null,w[ac(0x2f9)](),console['log'](),console['log'](a0q[ac(0x229)](ac(0x23a)+T+'.')),W&&X>T&&X<=0xaf*0x12+-0x1*-0x773+-0x139b?console[ac(0x2c7)](a0q[ac(0x2ef)](ac(0x200))+a0q[ac(0x2bc)][ac(0x27e)]('Q'+X)+a0q[ac(0x229)](ac(0x21c))+a0q[ac(0x2a3)](ac(0x298))+a0q[ac(0x229)](ac(0x2b8))):W&&T>=-0x20e5+0x2000+0x10b?console[ac(0x2c7)](a0q[ac(0x2ef)]('\x20\x20AI4CTF\x20section\x20complete\x20—\x20')+a0q[ac(0x2bc)][ac(0x261)](ac(0x2d6))+a0q['gray'](ac(0x28b))):console['log'](a0q['gray'](ac(0x233))+a0q['white'](ac(0x2e5)+T)+a0q[ac(0x229)](ac(0x2a0))+a0q[ac(0x2ef)](ac(0x298))),console[ac(0x2c7)](),ac(0x276);}if(u)return console[ac(0x2c7)](),console['log'](a0q[ac(0x294)](ac(0x226))),console[ac(0x2c7)](a0q[ac(0x229)](ac(0x2a4))+a0q[ac(0x2ef)](ac(0x271))+a0q[ac(0x229)](ac(0x2d8))+a0q[ac(0x2ef)](ac(0x270))+a0q[ac(0x229)](ac(0x2d8))+a0q['white']('exit')),console[ac(0x2c7)](),ac(0x2e6);if(h>=d)return u=!(-0xc1*-0x7+0x1a31+0xd4*-0x26),console['log'](),console[ac(0x2c7)](a0q[ac(0x261)][ac(0x2bc)](ac(0x245))),console[ac(0x2c7)](a0q[ac(0x229)]('\x20\x20You\x20can\x20still:\x20')+a0q['white'](ac(0x271))+a0q['gray']('\x20·\x20')+a0q[ac(0x2ef)](ac(0x270))+a0q[ac(0x229)]('\x20·\x20')+a0q['white']('exit')),console['log'](),ac(0x2e6);console[ac(0x2c7)](a0q[ac(0x229)](ac(0x283)));try{const Y=await y[ac(0x2ba)](q);process[ac(0x27f)][ac(0x275)](ac(0x28c)),h+=Y[ac(0x2e0)];const {getRealExamState:Z,saveExamState:a0}=await import(ac(0x2d4)),a1=Z(),a2={};a2[ac(0x298)]=0x0,a2[ac(0x2d6)]=0x0,(a1&&(a1[ac(0x2e7)]||(a1['aiUsage']=a2),a1[ac(0x2e7)][ac(0x298)]=h,a0(a1)),console[ac(0x2c7)](),a0B(Y[ac(0x22e)]),m(),function(a3,a4,a5){const ad=ac,a6=a3/a4*(0x1306*0x2+0x9d*0x9+-0x2b2d);a6>=0x1094+-0xc8c+-0x1*0x3a9&&!a5['has']('95')?(console['log'](a0q['red'][ad(0x2bc)]('\x20\x20⚠\x20'+Math[ad(0x207)](a6)+ad(0x2cb)+(a4-a3)+ad(0x2c0))),a5[ad(0x256)]('95')):a6>=-0x2e0+0xf3*0x1+0x23d&&!a5[ad(0x236)]('80')?(console[ad(0x2c7)](a0q[ad(0x294)](ad(0x23f))),a5[ad(0x256)]('80')):a6>=0x1ee1+-0xb2*-0xa+-0x2f*0xcd&&!a5[ad(0x236)]('50')&&(console[ad(0x2c7)](a0q[ad(0x229)]('\x20\x20Note:\x2050%\x20of\x20section\x20AI\x20budget\x20used.')),a5[ad(0x256)]('50'));}(h,d,w),console[ac(0x2c7)]());}catch(a3){process[ac(0x27f)][ac(0x275)]('\x1b[1A\x1b[2K'),a0C(ac(0x2f5)+a3[ac(0x1fc)]),console[ac(0x2c7)]();}return'continue';}export function registerAi4ctfCommand(b){const ae=a0j;b[ae(0x2f4)](ae(0x298))['description'](ae(0x25c))[ae(0x2e3)](async()=>{const af=ae;a0A(af(0x298));const {getRealExamState:j}=await import('../lib/exam-state.js'),k=j(),q=k?.[af(0x21f)][af(0x213)](A=>A[af(0x1f3)]>=-0x2172+-0xb56*-0x3+0x1*-0x71&&A[af(0x1f3)]<=0x1b48+0x17f8*0x1+0x1a6*-0x1f);if(k&&q){const A=k[af(0x2ea)]||-0xd4f+0x1201*-0x1+-0x1f51*-0x1;if(A<-0x1*-0x2452+0x9e9+-0x2e1c||A>0xdd0+-0x11d1*-0x2+-0x314c)return console[af(0x2c7)](),console['log'](a0q[af(0x294)](af(0x225))),console[af(0x2c7)](a0q[af(0x229)](af(0x2d3)+A+'.\x20Jump\x20there\x20first:')),console['log'](a0q['gray'](af(0x29f))+a0q['bold'][af(0x2a3)](af(0x2b2))),void console['log']();const B=k[af(0x21f)][af(0x258)](C=>C[af(0x1f3)]===A);return B?void await async function(C,D){const ag=af,{getRealExamState:E,refetchQuestionDataIfStale:F,materializeAttachedData:G}=await import(ag(0x2d4));await F();const H=E();if(!H)return!(0xd93+-0x2329+-0x1*-0x1597);const I=H[ag(0x21f)][ag(0x258)](L=>L[ag(0x1f3)]===C);I&&(D=I),G(C,D?.['attachedData']);const J=H[ag(0x2e7)]?.[ag(0x298)]??-0x9d6*0x2+-0xac7+0x1e73;if(J>=d)return console[ag(0x2c7)](),console[ag(0x2c7)](a0q[ag(0x294)]('\x20\x20⚠\x20Your\x20AI4CTF\x20token\x20budget\x20is\x20exhausted.')),console['log'](a0q[ag(0x229)](ag(0x2b3))+a0q[ag(0x2ef)]('exam\x20answer\x20'+C+ag(0x2dc))),console['log'](),!(0x1*0x14b1+0x2*-0x12fb+-0xc9*-0x16);try{y=await a0v(void(-0xbf+-0x1*0x1db6+0x1*0x1e75),function(L,M){const ah=ag,N=L[ah(0x250)]||L[ah(0x22e)]||'',O=L[ah(0x218)]?ah(0x2f1)+M+ah(0x28f)+L['attachedData']:'';return'You\x20are\x20an\x20AI\x20teammate\x20helping\x20a\x20contestant\x20solve\x20an\x20ICOA\x202026\x20cybersecurity\x20exam\x20question.\x0a\x0aCURRENT\x20QUESTION\x20(Q'+M+',\x20'+L[ah(0x2ac)]+',\x20'+(L[ah(0x20a)]||0x17b*0x17+-0x1*-0x18d1+-0x3ad8)+'\x20points):\x0a'+N+O+ah(0x26e)+M+ah(0x24f);}(D,C));}catch(L){return a0C(L['message']),!(-0x1c82+-0x48c+-0x111*-0x1f);}r=!(0x7*0x1e4+0x1*0x11c9+-0x1f05),h=J,u=!(-0x16+0x901+-0x8ea),f={'qNum':C,'question':D,'usageField':ag(0x298),'enteredAt':Date['now'](),'hintsUsed':new Set(),'submitAttempted':!(0x202c+-0x15b4+-0x13*0x8d),'nudgeShown':!(0x16f1*-0x1+0x31c+0x13d6)};const K=H[ag(0x2f8)]?.[C];return function(M,N,O){const ai=ag,P=a0z()['geminiModel']||ai(0x2de),Q=h>0x2*0x2cc+-0x1ccd+0x1*0x1735;console[ai(0x2c7)](),console[ai(0x2c7)](a0q['green'][ai(0x2bc)]('\x20\x20═══\x20AI4CTF\x20—\x20Q'+N+':\x20'+M[ai(0x2ac)]+'\x20═══')),Q&&console[ai(0x2c7)](a0q[ai(0x229)]('\x20\x20(resuming\x20—\x20prior\x20chat\x20is\x20not\x20remembered,\x20but\x20tokens\x20already\x20used\x20stay\x20deducted)')),O&&console[ai(0x2c7)](a0q[ai(0x229)](ai(0x20d))+a0q[ai(0x294)](O)+a0q[ai(0x229)]('\x20\x20(submit\x20again\x20to\x20change)')),console[ai(0x2c7)](),console[ai(0x2c7)](a0q[ai(0x2a3)](ai(0x253))),console[ai(0x2c7)](a0q[ai(0x2a3)](ai(0x292))+a0q['bold'][ai(0x2ef)]('Q'+N+ai(0x24a)+M['category']+']\x20\x20·\x20'+(M['points']||-0xb*-0x127+0x11d7*-0x2+0x1707)+ai(0x22d))),console[ai(0x2c7)](a0q[ai(0x2a3)](ai(0x244)));for(const R of String(M[ai(0x22e)])[ai(0x26b)]('\x0a')){const S=R[ai(0x21a)]>0x39e*0x8+-0x9f*-0x2d+-0x1*0x38a7?R[ai(0x266)](-0x1*-0x1c3d+-0x1*-0x929+-0x2566,0x1*-0xd41+0x1b0d+-0x1*0xd93)+ai(0x2e1):R;console['log'](a0q['cyan'](ai(0x292))+a0q[ai(0x2ef)](S));}console[ai(0x2c7)](a0q[ai(0x2a3)]('\x20\x20│')),console[ai(0x2c7)](a0q[ai(0x2a3)](ai(0x292))+a0q[ai(0x229)](ai(0x228))+a0q[ai(0x2ef)](ai(0x2e5)+N)),console['log'](a0q[ai(0x2a3)]('\x20\x20│\x20')+a0q[ai(0x229)]('Flag\x20format:\x20\x20\x20\x20ICOA{...}')),console['log'](a0q[ai(0x2a3)]('\x20\x20└─────────────────────────────────────────────')),console[ai(0x2c7)](),console['log'](a0q[ai(0x2bc)][ai(0x2ef)]('\x20\x20How\x20to\x20work\x20this\x20question')),console[ai(0x2c7)](),console[ai(0x2c7)](a0q[ai(0x294)](ai(0x22a))+a0q[ai(0x229)](ai(0x280))),console[ai(0x2c7)](a0q[ai(0x294)](ai(0x2a7))+a0q['gray'](ai(0x1fa))),console[ai(0x2c7)](a0q[ai(0x294)](ai(0x2d9))+a0q[ai(0x229)](ai(0x25b))),console[ai(0x2c7)](a0q[ai(0x2bc)][ai(0x27e)](ai(0x2b4))+a0q[ai(0x229)]('\x20Submit\x20your\x20flag\x20for\x20this\x20question')),console[ai(0x2c7)](a0q[ai(0x2ef)](ai(0x223))+a0q[ai(0x229)](ai(0x217))),console[ai(0x2c7)](a0q[ai(0x229)]('\x20\x20\x20\x20Just\x20type\x20freely\x20to\x20chat\x20with\x20the\x20AI\x20teammate.')),console[ai(0x2c7)](a0q[ai(0x229)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.g.\x20')+a0q[ai(0x2ef)]('\x22how\x20do\x20I\x20decrypt\x20AES-CBC\x20in\x20Python?\x22')),console['log'](),console[ai(0x2c7)](a0q[ai(0x229)](ai(0x1f7))+a0q[ai(0x229)](ai(0x1fe))),console[ai(0x2c7)](a0q[ai(0x229)](ai(0x212))+a0q[ai(0x229)](ai(0x27d))),console[ai(0x2c7)](),m(),console['log'](a0q[ai(0x229)](ai(0x2a5)+P+')')),console[ai(0x2c7)]();}(D,C,K),!(0x112d+0xe61+-0x1f8e);}(A,B):void a0C('Q'+A+af(0x243)+A);}const v={};v[af(0x2b6)]='Hidden\x20Message',v[af(0x2ac)]='Cryptography';const x=a0z()['geminiModel']||af(0x2de),z=v;try{y=await a0v(z);}catch(C){return void a0C(C['message']);}r=!(-0x2*0x3da+-0x183d+0x1ff1),h=0x4*0x227+0x1*0x104b+-0x18e7,u=!(-0x166+0x1*0x2411+-0x22aa),console[af(0x2c7)](),console[af(0x2c7)](a0q[af(0x27e)][af(0x2bc)]('\x20\x20═══\x20'+a0D(af(0x230))+'\x20═══')),console[af(0x2c7)](),console[af(0x2c7)](a0q['white']('\x20\x20'+a0D(af(0x29a)))),console['log'](),console[af(0x2c7)](a0q[af(0x2a3)](af(0x253))),console['log'](a0q['cyan'](af(0x292))+a0q[af(0x2bc)][af(0x2ef)](a0D(af(0x26d)))),console['log'](a0q[af(0x2a3)](af(0x244))),console['log'](a0q['cyan'](af(0x292))+a0q[af(0x2ef)](a0D(af(0x203)))),console[af(0x2c7)](a0q[af(0x2a3)]('\x20\x20│\x20')+a0q['green']('aWNvYXt3M2xjMG1lXzJfYWk0Y3RmfQ==')),console[af(0x2c7)](a0q[af(0x2a3)]('\x20\x20│')),console[af(0x2c7)](a0q[af(0x2a3)]('\x20\x20│\x20')+a0q[af(0x2ef)](a0D(af(0x209)))),console['log'](a0q['cyan'](af(0x292))+a0q[af(0x229)](af(0x282))),console[af(0x2c7)](a0q[af(0x2a3)](af(0x267))),console[af(0x2c7)](),console[af(0x2c7)](a0q[af(0x2ef)]('\x20\x20'+a0D('ai4ctfLevels'))),console[af(0x2c7)](),console[af(0x2c7)](a0q[af(0x294)](af(0x22a))+a0q[af(0x229)](af(0x25e)+a0D(af(0x29d)))),console[af(0x2c7)](a0q[af(0x229)](af(0x274)+a0D(af(0x25a)))),console['log'](a0q[af(0x294)](af(0x2a7))+a0q[af(0x229)](af(0x25e)+a0D(af(0x24b)))),console['log'](a0q[af(0x229)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0D('ai4ctfHintBUses'))),console[af(0x2c7)](a0q[af(0x294)](af(0x2d9))+a0q[af(0x229)]('\x20\x20\x20\x20'+a0D(af(0x2e8)))),console['log'](a0q['gray'](af(0x274)+a0D(af(0x2af)))),console[af(0x2c7)](),console[af(0x2c7)](a0q[af(0x229)](af(0x1f8))),console['log'](a0q['bold'][af(0x2ef)]('\x20\x20'+a0D(af(0x20c)))),console[af(0x2c7)](af(0x25e)+a0q[af(0x2a3)](af(0x2ab))+a0q[af(0x229)]('\x20\x20\x20→\x20'+a0D(af(0x25f)))),console[af(0x2c7)](af(0x25e)+a0q[af(0x2a3)](af(0x2dd))+a0q['gray'](af(0x1f4)+a0D(af(0x22f)))),console[af(0x2c7)](af(0x25e)+a0q[af(0x2a3)]('hint\x20c')+a0q[af(0x229)]('\x20\x20\x20→\x20'+a0D(af(0x2f6)))),console[af(0x2c7)](a0q[af(0x229)](af(0x25e)+a0D(af(0x2ee)))),console['log'](),console['log'](a0q[af(0x2ef)]('\x20\x20'+a0D(af(0x2ec)))),console[af(0x2c7)](a0q[af(0x229)]('\x20\x20'+a0D(af(0x289))+'\x20')+a0q[af(0x2ef)](af(0x284))),console['log'](),console[af(0x2c7)](a0q[af(0x294)]('\x20\x20'+a0D(af(0x20e)))),console[af(0x2c7)](a0q[af(0x2ef)](af(0x1f5))+a0q[af(0x229)](a0D(af(0x2bb)))),console['log'](a0q[af(0x2ef)]('\x20\x20\x20\x20submit\x20<flag>\x20\x20\x20')+a0q['gray'](a0D(af(0x2ca)))),console[af(0x2c7)](a0q[af(0x2ef)](af(0x291))+a0q[af(0x229)](a0D(af(0x2cf)))),console[af(0x2c7)](a0q[af(0x229)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20e.g.\x20')+a0q[af(0x2ef)](af(0x2d7))),console[af(0x2c7)](a0q[af(0x229)]('\x20\x20\x20\x20exit\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0D(af(0x293)))),console['log'](),m(),console[af(0x2c7)](a0q[af(0x229)]('\x20\x20'+a0D(af(0x257))+af(0x277)+x+')')),console[af(0x2c7)](a0q[af(0x229)]('\x20\x20'+a0D(af(0x22c)))),console[af(0x2c7)]();});}
|
package/dist/commands/exam.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(z,B){const b0=a0B,F=z();while(!![]){try{const G=parseInt(b0(0x381))/(0xf13+0xf5e+-0x8*0x3ce)*(-parseInt(b0(0x325))/(0x2417*0x1+-0x35*-0x91+-0x421a))+-parseInt(b0(0x204))/(0x1*-0x274+-0x15dc+-0x1df*-0xd)+-parseInt(b0(0x16f))/(-0x1217+0x8a6+0x327*0x3)*(parseInt(b0(0x2f1))/(0x3c1+0x5f0+0x1*-0x9ac))+-parseInt(b0(0x1a0))/(0x7*0x29a+0x245e+-0x1b47*0x2)+parseInt(b0(0x37a))/(0x1*-0x91e+-0xed8+-0x10b*-0x17)+-parseInt(b0(0x2bb))/(0x1b1c+0x170b+-0x321f)+parseInt(b0(0x148))/(-0x1d4+-0x179a+0x1977)*(parseInt(b0(0x172))/(-0xfb2+-0x109b+0x2057));if(G===B)break;else F['push'](F['shift']());}catch(H){F['push'](F['shift']());}}}(a0z,-0x3a95e+0x694ab+0x33ce7));import a0L from'chalk';import{confirm as a0Q}from'@inquirer/prompts';import{ExamClient as a0V}from'../lib/exam-client.js';import{getConfig as a0W,saveConfig as a0X}from'../lib/config.js';import{getExamState as a0Y,saveExamState as a0Z,clearExamState as a0a0,getExamDeadline as a0a1,materializeAttachedData as a0a2}from'../lib/exam-state.js';import{getDemoStats as a0a3,recordDemoAttempt as a0a4,saveRetryQueue as a0a5,getRetryQueue as a0a6,clearRetryQueue as a0a7}from'../lib/demo-stats.js';import{logCommand as a0a8}from'../lib/logger.js';function a0z(){const bP=['icbzB3uGy2fUig5VDYbLBNrLCIbHig5LDYb0B2TLBIb3AxrOia','x3n1yM1PDenVBMzPCM1Lza','icdIMQaGifjLC2v0ihDPBgWGywjHBMrVBIb5B3vYign1CNjLBNqGzxHHBsbZzxnZAw9Uig9UihrOAxmGzgv2AwnLlG','icbqCMfJDgLJAw5Nia','rw50zxiGzxHHBsb3AxrOigfJy2vZCYb0B2TLBIaOBM8GBg9NAw4GBMvLzgvKkq','zxHWBgfUyxrPB24','mtu2ntq2nLvOrKPMrG','icdWN5kHie9WDgLVBIa','icbqCMvZCYbfBNrLCIb0BYbZDgfYDcb0AguGzxHHBsb0Aw1LCI4UlIa','y2f0','zNjVBq','icbuB2TLBJOGica','igvSAw1PBMf0zwqH','oduZsgDsB3DQ','icaGihn1zg8Gzg5MigLUC3rHBgWGlxKGChL0Ag9UmY4XmG','icbiB3CGDg8GDxnLifb5DgHVBIbPBIbjq09bienmsq','l2fWAs9Py29Hl2v4yw1ZlW','iefjigj5ihLVDxiGC2LKzs4GquKGAxmGEw91CIb0zwfTBwf0zs4','icaGihn1zg8Gyxb0ihvWzgf0zq','zwDNnW','icbbBgWGAgvSCcb1C2vKicG','icaGicaGC3vKBYbHChqGAw5ZDgfSBcbWExrOB24ZlJeYihb5DgHVBJmUmtiTDMvUDG','icaGiefjigj1zgDLDdOGmJvlihrVA2vUCYbMB3iGquK0q1rgicSGmJvligzVCIbdvey0quK','icbxCMfWihvWigfUzcbZDwjTAxq6ia','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','icaGihn1zg8GDxbKyxrLlwfSDgvYBMf0AxzLCYaTlwLUC3rHBgWGl3vZCI9IAw4VChL0Ag9UmYbWExrOB24Zic91C3iVyMLUl3b5DgHVBJmUmtiGmq','ig5VDcbMB3vUzcaOms0','vxPIzwTPC3rHBG','C2vYDMvYx3rPBwvFBxm','zxHHBvDHExnuB1nVBhzL','icdIL4SG','icaGihn1zg8GCgfJBwfUic1tihb5DgHVBG','CgvYuq','y29TBwfUza','icbB','lI4U','ic0TCxvPzxqGmJ4Mmq','DdeW','vhj5igeGzNjLzsbWCMfJDgLJzsbLEgfTicHUBYbHy2nVDw50ig5LzwrLzcK','zxHHBvDHExntAgvSBa','ugvYy2vUDgfNzq','8j+pLU+4JW','uMv2Awv3igfSBcbHBNn3zxjZigjLzM9YzsbZDwjTAxr0Aw5N','CMfUzg9T','vgLTzsbszw1HAw5PBMC','BwvZC2fNzq','qxzHAwXHyMXLiev4yw1ZicG','zgvTBW','Dg90ywW','AwnVyq','u2vYDMvYig5VDcbYzwfJAgfIBguUienOzwnRihLVDxiGAw50zxjUzxqGy29UBMvJDgLVBI4','zxHHBsbZDwjTAxqGy29UzMLYBq','C3rHCNq','icbMyxiGBw9YzsbZBw9VDgHSEsbPBNnPzguGv1nmmIbvyNvUDhuU','yNm0','q291BNrYEq','rw50zxiGzxHHBsb0B2TLBIb0BYbIzwDPBG','icaGica','tgLZDcbHDMfPBgfIBguGzxHHBxmGkg9WDgLVBMfSoIaYlwXLDhrLCIbJB3vUDhj5ignVzguP','qwXTB3n0ihjLywr5lI4U','icdWN46jiefSBcbXDwvZDgLVBNmGyw5ZD2vYzwqH','igfUC3DLCMvKkq','icaGu3LKBMv5lcbbDxn0CMfSAweGWRCGsNvUidi3ic0GsNvSidiSidiWmJy','icbVBMuGzgv2AwnLicSGB25LihnLC3nPB24UifLVDsbJyw5UB3qGC3DPDgnOihrVA2vUCYbTAwqTzxHHBs4','icdINjCG','Aw50zxjHy3rPB25Z','BMfTzq','ihvUzMXHz2DLzc4','BNvTyMvY','icaGieHLBha6icaGideWihvZzxmGkYa1igHPzgrLBIbIB251CYaOtunrig9UBhKP','q3j5ChrV','ChL0Ag9UmW','BgLUDxG','icbtDgfYDgLUzYbLEgfTlI4U','qw5ZD2vYihnVBwuGCxvLC3rPB25ZigzPCNn0oIbLEgfTiheGmq','icbjq09bidiWmJyGWRCGu3LKBMv5lcbbDxn0CMfSAweGWRCGsNvUidi3iokaKYbkDwWGmG','ig1PBIbYzw1HAw5PBMC','icbxCML0zsbHic5WEsbMAwXLlcb0AgvUihj1BIbPDdO','BM93','icdIJ7eGifrPBwuGy2HLy2SGia','icaGihn1zg8GywrKlwfWDc1YzxbVC2L0B3j5ihbWytPKzwfKC25HA2vZl3bWysaTEq','icdIMiuGtMv3ihbLCNnVBMfSigjLC3qH','zxHHBvDHExnbAtrJDgy','icbjq09big9MzMLJAwfSBhKGC3vWCg9YDhmGv1nmmIbVBIbxAw5KB3DZlG','icaGifLVDsbJyw4GBM93ihvZztOG','DMXH','rxHHy3rSEs4','vgvHBsb1Ccb3AxrOiefjihrVihnVBhzLienurNm','rxHHBsaI','icaGidiUieLUifbVD2vYu2HLBgWSigLUC3rHBgWGuhL0Ag9UihDPDgGGCgLWoG','ugfZCW','icdILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILiq','q29UDgvUDc1uExbL','qxvZDhjHBgLH','zxHHBsbKzw1V','icaGicdILQmG','AgvSCfvZzwrvCa','tK9uifbbu1nfra','icaGicbLEgfTigXPC3qGueu','ihbHy2THz2vZigLUC3rHBgXLzc4','icaGvgLTzsbZDgLSBcbJB3vUDgLUzYbKB3DUlIbcDwrNzxqGFJiGBwLUihbLCIbXDwvZDgLVBI4','Cvr1Dg9YAwfS','4O+XifrPBwuGCMvTywLUAw5NoG','u3vIBwL0igzHAwXLza','ihbVAw50CW','q2HVAwnLig11C3qGyMuGqsWGqIWGqYWGB3iGrc4','icaGidiUieLUigfUiefKBwLUAxn0CMf0B3iGug93zxjtAgvSBcWGCNvUoG','u3bLy2LMEsbLEgfTieLeoIbLEgfTihjLC3vSDca8Awq+','AhrWsNvTCa','igfUC3DLCNmU','icbkDw1WihrVigeGzMXHz2DLzcbXDwvZDgLVBJOG','q2XVC2uG4OcuihDLj2XSihjLDMLZAxqGDgHPCYbVBMuU','ls11C2vYic0TyNjLywSTC3LZDgvTlxbHy2THz2vZ','ihbVAw50C10','yw5ZD2vYx3n1yM1PDhrLza','ihjLz2LVBNmP','icbzB3vYigjLC3q6ia','icHLEhbSB3jLicyGzxHWzxjPBwvUDcK','C3rKB3v0','sw4GuhjVz3jLC3m6ia','ANnVBG','icbcB251CYbOzwXWigfSCMvHzhKGDw5SB2nRzwqU','icaGidmUifjLC3rHCNqGAwnVysbHBMqGCMv0CNK6','iIaYpI9KzxyVBNvSBa','vgHHAwXHBMq','y2XLyxi','icaGiokrOIa','EJmTC29SDMvY','rvHqsvjfra','tM8GDgLTzsbSAw1PDa','zxHHBsbZDwjTAxq','icaGicaGifrOzw4GAw5ZDgfSBcbqExrOB246','icaGid4+pIbWCMLUDcHJAxbOzxiUzgvJCNLWDcHKyxrHksK','BwfW','uhjLlwv4yw0GC2v0DxaGCMvXDwLYzwqGyMvMB3jLigvUDgvYAw5NigeGDg9Rzw4U','icaG4PElicbtDwjTAxnZAw9UigfJy2vWDgvK','BMv4DeXHyMvS','D3jVBMC','Dgv4Da','icHxu0WYkq','igfUC3DLCMvK','icaGicaGicaGicaGicaGicaGzxmGWRCGEMGGWRCGAMeGWRCGA28GWRCGyxiGWRCGzNiGWRCGChq','y29YCMvJDa','rxHHBxmG4Ocuia','iokgKIbIywnRihrVigv4yw0Sig5HDMLNyxrLihDPDgGG','cGPgDwXSigf0DgfJAgvKigrHDge6cG','icaGidmUifjLC3rHCNqGAwnVysbHBMqGCMuTCNvUigv4yw0GC2v0Dxa6','C3rYAw5NAwz5','icbpCIb0ExbLia','DxrMltG','icaGign0id0GyNL0zxmUzNjVBwHLEcGImgeYyJbLmwmUlI4Ikq','AwDUB3jL','C3vIBwL0ieLdt0f7Ew91CL9MBgfNFq','CM91BMq','ihrVihjLDhvYBIb0BYb0AguGBwfPBIbTzw51lG','icbbBNn3zxjZoIa','ChDUDg9VBhm','icdINjmG','sgvSCdOGicaGica','yNjLDW','sw52ywXPzcbXDwvZDgLVBIbUDw1IzxiUifvZzsaXlI4','xsaG','icaOuMv0CNKGD3jVBMCGB25SEsK','B3b0Aw9UCW','y291BNrYEq','icaGC2vLihbYB2DYzxnZicSGzMXHz2DLzcbPDgvTCW','q29UBMvJDgLUzYb0BYbLEgfTihnLCNzLCI4UlG','CdeW','icdIHlKGuevqidy2ocbKzxrLy3rLzcdIGjqGDxnPBMCGls11C2vYigLUC3rHBgWGkg5Vihn1zg8GBMvLzgvKkq','Cgf1C2u','C3vJy2vLza','AgvSCf91C2vK','C2vZC2LVBG','8j+pM++4JW','zgvTBY1MCMvL','icbtDgvWlwj5lxn0zxa6','D2LUmZi','icbnzxrOB2qGmJOGsw50zxjHy3rPDMuGuhL0Ag9U','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','icaGig1HCMS','ihbYB21WDcWGC2fTzsbZAgfWzsbHCYbKzw1V','ihrVignVBMzPCM0Sig9YigfUExrOAw5NigvSC2uGDg8Gy2fUy2vSoG','icaGicaGigvUDgvYifzmqsbHDhrHy2SGBw9KzsbMB3iGDgHPCYbXDwvZDgLVBIaOCMvJB21Tzw5KzwqP','ywK0y3rMpG','BwLZC2LUzW','AhrWsgvSCa','zgvHzgXPBMvtzxj2zxjnCW','icaGs2v5igrPzMzLCMvUy2vZigzYB20GquK0q1rg','zMLUzeLUzgv4','y3LHBG','igzHAwXLzdOG','uNvZC2LH','igzPCNn0ihrVihnLzsb3Agf0igL0igrVzxmH','icbnzxrOB2qGmZOGu2nYAxb0igzPBgu','Ew91CKfUC3DLCG','DgfYz2v0','zgvZy3jPChrPB24','vg90ywW','icaGigv4yw0GBgLZDcbbvq','B3v0Chv0','igLZigeGChjHy3rPy2fSihf1zxn0Aw9UiokaLcbHBNn3zxiGD2L0AcbHigzSywCSig5VDcbHigXLDhrLCI4','icaGiezHAwXLzdOG','ic1JicjPBxbVCNqG','icbszwnVBw1LBMrLzcbWyxrOiokaLcbZD2L0y2GGDg8Gv1nmmIaOB25LlxrPBwuSih41ig1PBIK6','z3jHzgLUzW','icaGicHYzwXHDgL2zsb0BYbVDgHLCIbJyxrLz29YAwvZiokaLcbUDw1LCMLJihnJB3jLCYbNBYb0BYb5B3vYigv4yw0Gy2vUDgvYkq','vMLLDYbHBgWGCgfYDgLJAxbHDgLUzYbJB3vUDhjPzxm','icaG4PAi4PAi4Pwr4PAi4PAi4PwricaGicdILOJILOJILzeGicdILOJILOJILzhILOJILOJILztILzdILzdILOJILOJILze','icaGicaGCMvZDw1Ligf0igfUEsbXDwvZDgLVBG','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','icaG8j+oRYaGu2vJDgLVBIaZoIbdvey0quKG4OcuienOywXSzw5Nzsb0AguGquK','rMfPBgvKihrVihn0yxj0igv4yw0','Aw5FChjVz3jLC3m','s2vLCcbPDcbPBIbTAw5KigzVCIbYzxzPzxCU','ihf1zxn0Aw9U','zxHHBq','BM90ugfZC2vK','uxvLC3rPB25Z','icaGifnVBwuGCgfJA2fNzxmGkhb3BNrVB2XZlcbZy2fWEsKGBwf5ig5VDcbOyxzLihDOzwvSCYb5zxqGzM9YidmUmtmU','icaGicbjBNnPzguGy2HHDdOGicaG','iokaLcb5B3uGy2fUBM90ignOyw5Nzsb0AgvTigfMDgvYihn1yM1PDc4','yw5ZD2vYvgHPCW','icbuAgLZihf1zxn0Aw9UihjLCxvPCMvZihLVDsb0BYb1C2uGAgvSCcbIzwzVCMuGyw5ZD2vYAw5NlG','CgfKrw5K','D3nSic0TAw5ZDgfSBcaTzcbvyNvUDhuTmJiUmdq','icaGicdcTYbbssbPCYb5B3vYia','icGR','ihbHy2THz2vZigLUC3rHBgXLzc4G','icbzB3uGy2fUihbHDxnLihDPDgGG','C3rHCNqGpgLKpG','zxHHBsbHBNn3zxiG','q2HPBMe','icaOC2fTzsbHCYb5B3uGANvZDcb0ExbLzcK','icaGiokaOIbzB3uGBwf5igv4AxqGyw5KihjLC3vTzsb3AxrOihrOzsbZyw1LihrVA2vU','CdmW','C29YDa','AgLUDa','icdWN5Ieie9UBhKGmIbVChrPB25ZigXLzNqG4OcuihLVDsbNB3qGDgHPCYe','icbozxCGBwvTyMvYpYbdB250ywn0oIbHy2nYzwrPDgf0Aw9UqgLJB2eYmdi2lMf1','icaGid4+pIbLEgL0kcK','CgfKu3rHCNq','owzttLjmyG','icbqyxbLCIbbic8GqIbWCMfJDgLJywWGCxvLC3rPB25Zig5LzwqGvw5PEcb0B29SAw5NihrOyxqGCNvUCW','BgvUz3rO','icaGsg93ihrVigf0DgfJAW','mJuSmdaWihrVA2vUCW','Bsb0B3rHBa','C3vKBYbHChqGAw5ZDgfSBcaTEsbWExrOB24ZlxbPCcbWExrOB24ZlxzLBNy','C3LTChK','ugvYDq','C3vIBwL0ieLdt0f7lI4UFq','icaGieeVqI9dl0q','q3rYBcTd','vw5HBNn3zxjLza','ihjLBwfPBMLUzYK','uhL0Ag9Uia','lI4VBgLIl21HAw4TCMWUANm','icaG4PYticbtDwjTAxnZAw9UigfJy2vWDgvKiokaLcbIyxnLBgLUzsbTzxq','CxvLC3rPB25Z','C2v0Dxa','zhvYyxrPB25nAw51DgvZ','icaGieHPBNrZoIaGieeOnsKGqIGZksbdkdePiokaLcbWCMfJDgLJywWGB25SEq','icaGiokaOIbuCNK6ia','ywK0y3rMrgvZyW','vMfSAwrHDgLUzYb0B2TLBI4UlG','zwDNmtu','sunpqsbqyxj0AwnPCgf0Aw5NienVDw50CMLLCYbHBMqGuMvNAw9UCW','sgfJAYb0AguGquKNCYbNDwfYzhjHAwXZ','icaGieLUC3rHBgWGuhL0Ag9UidmUmtiGyw5KihjLlxj1BIbLEgfTihnLDhvWlG','icbbC3nPC3rHBMnLihvZzwq','icaGvgHLigzPBMfSihnLy3rPB24GzMXPChmGDgHLihnJCMLWDdOGAw5ZDgvHzcbVzG','vw5PDgvKieTPBMDKB20','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','D2L0Aa','icaG4PAi4PAi4Pwr4PAi4PAi4Pwu4Pwq4Pwq4Pwq4Pwq4PwD4PAi4PAi4Pwu4Pwq4Pwq4Pwq4PAi4PAi4Pwx4PAi4PAi4Pwu4Pwq4Pwq4PAi4PAi4Pwx','icaGicaGicbqqvriiIaRicjjBNn0ywXSihbPCciGzhvYAw5NihrOzsbPBNn0ywXSzxiUkq','ugXLyxnLihbYB3zPzguGEw91CIbMBgfNoIbLEgfTigfUC3DLCIa8BJ4GsunpqxT5B3vYx2zSywD9','icboyxrPB25HBcbsB3vUzcaXifnLBgvJDgLVBIbLEgfTCYbHCMuGyMvPBMCGChjLCgfYzwqU','l2jPBI9IyxnOic1JiciKkgn1CMWGlwzZu0WGAhr0Chm6lY9YyxCUz2L0AhvIDxnLCMnVBNrLBNqUy29Tl0HVBwvICMv3l2LUC3rHBgWVsevbrc9PBNn0ywXSlNnOksi','yNjLDYbSAw5Ric0TB3zLCNDYAxrLihb5DgHVBKaZlJeY','nJG2mdi4EeTxt1Pk','zNvUy3rPB24','C2nVCMu','mty3mZy1otbVBgjbAKG','BwfNzw50yq','lI4VBgLIl2v4yw0TC3rHDguUANm','ihrVihn1yM1PDcbMB3iGz3jHzgLUzY4','yw5ZD2vYidXUpIa8y2HVAwnLlI4UpG','icaGigjHy2S','zxHHBvDHExntyxzLzfrV','zMfPBa','icbmyw5NDwfNztOG','icbbCMnOic8GtwfUAMfYBZO','u3vIBwL0DgvK','icbeDxjPBMCGDgHLigv4yw0Sihr5CguG','icaGsw50zxjUyxrPB25HBcbdEwjLCIbpBhLTCgLHzcbPBIbbssaYmdi2','l2fWAs9Py29Hl3nLCNzLCI10Aw1L','ic1TihbPCcbPBNn0ywXSihb3BNrVB2XZ','vhLWztOGzgvTBYb0BYbZDgfYDcbHz2fPBI4','zwDNnq','icaGid4+pIbMCM9TienYExb0BY5dAxbOzxiGAw1WB3j0ieffuW','icbODhrWCZOVl2LJB2eYmdi2lMf1','y2HHBMDLzcbMCM9Tia','r2HHBMe','zxHHBsbYzxnLDa','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDq','icaGig1VCMuGAgvSCa','icaGigXHBMC','tM8Gyw5ZD2vYCYb0BYbZDwjTAxqUiev4yw0Gy2XLyxjLzc4','C3vIBwL0ifTJB25MAxjTqxjNxsbBC2vJB25KqxjNxq','Dg9ju09tDhjPBMC','Aw5KzxHpzG','igf0DgvTChrZ','u3rHCNrPBMCGDgLTzxiUlI4','ic8G','icdcTYblzwvWihnOyxjWzw5PBMC6ia','icaGigH0DhbZoI8VD3D3lNb5DgHVBI5VCMCVzg93BMXVywrZl21Hy29ZlW','iokaLcbZzwuGzNvSBcbLCNjVCG','BgLZDgvUzxjZ','icaGWRCGmtuSmdaWkYbJB25JDxjYzw50ihbHCNrPy2LWyw50CW','icaGicbuAguGDg9Rzw4GAxrZzwXMigLZie5pvcbYzxzVA2vKihnLCNzLCI1ZAwrLlIbjzIb5B3vYihnLC3nPB24GAxm','DgvZDa','AxnuvfK','zgvTBY1LEgfT','icaGww91CIb0zxjTAw5HBca','CMvZzxq','vMLLDYbXDwvZDgLVBIaOB3iGywXSihf1zxn0Aw9UCYK','zMLUza','ywXS','oda5mdeWBxLjq3vq','icGZmcbnq1eGkYaXmcbWCMfJDgLJywWP','ihrVigXLyxzLigLJB2e','CxvLC3rPB25dB3vUDa','Aw5JBhvKzxm','iIbPCYbPBIbWCM9NCMvZCY4','zgvTBY1LBNrLCG','u3vIBwL0igL0igzPCNn0oIbLEgfTihn1yM1PDa','icaGidmUieLUC2LKzsbvyNvUDhuSigLUC3rHBgWGtM9Kzs5QCYaYmIaRifb5DgHVBIb0B29SCYaRigLJB2e6','CMvTB3zLtgLZDgvUzxi','u2H1zMzSAw5Nig9WDgLVBNmUlI4','iokaLca','icaGicbuB2TLBJOG','CMvWzwf0','vwj1BNr1ia','AgLUDcbHic8GyIaVigm','BMv3','AwnVyt4','AgvSCefSBfvZzwq','icbtDwjTAxqGBM93ihDPDgG6ia','quXm','icbdyw5JzwXSzwqU','icaGicbqCM9TChqGAw5Qzwn0Aw9Uimk3igfKDMvYC2fYAwfSigfUywX5C2LZimk3iefjigf1zgL0Aw5N','icaGicjiB3CGzg8GssbKzwnYExb0ieffuY1dqKmGAw4GuhL0Ag9UpYi','icdcTYaG','zxHHBsbXia','icaGicHHAtrJDgyP','ChvZAa','icdINjmGuhL0Ag9Uia','D2HPy2G','BMv4Da','DM9SyxrPBgL0Etm','icaGww91CIbHBNn3zxjZigHHDMuGyMvLBIbYzwnVCMrLzcbHBMqGC2vUDcb0BYb5B3vYig5HDgLVBMfS','icaGicbZDgLSBcbHy3rPDMuGyw5Kig5VDcbZDwjTAxr0zwqSihjLlwvUDgvYAw5NihrOzsbZyw1LihrVA2vUihjLC3vTzxmGAxqU','icaGicaGicbLBNrLCIbbstrdveyGy2HHDcbMB3iGDgHPCYbXDwvZDgLVBIaOCMvJB21Tzw5KzwqP','Bg9N','zxHHBsb1BM1HCMSG','sMfWyw4','4OcuihLVDsDYzsaXlZqGDgHYB3vNAcb0AguGzxHHBq','igLUC3rHBgXLza','icaGsw50zxjUyxrPB25HBcbdEwjLCIbpBhLTCgLHzcbPBIbbsq','z2v0vgLTzq','icdIJ7aGmtaGBwLUDxrLCYbYzw1HAw5PBMC','icaGicaGicaGicaGicaGicaGCNuGWRCGAgKGWRCGzguGWRCGAwqGWRCGDgGGWRCGDMKGWRCGDhi','ihvUyw5ZD2vYzwq6ia','yw5ZD2vY','Dg9vChbLCKnHC2u','AhrWu3vIBwL0','zw5JB2rPBMC','zxHHBvDHExnszwzqExrOB24','C3vIBwL0DgvKqxq','y3j5ChrVz3jHCgH5','icboB3rLoIb5B3uGDhLWzwqGysbKAwzMzxjLBNqGDg9Rzw4UievHy2GGzxHHBsb0B2TLBIbPCYbIB3vUzcb0BW','icaGicfJyxqGpdWGj0vprICGpIbZB2X2zs5WEq','icaG4PAi4PAi4PwxiokwIokwIokwIokwIokwIokwIokvLYdILOJILOJILOJILOJILOJILOJILzCGiokwIokwIokwIokwIokwIokvLW','icbbC3nPC3rHBMnLoG','icaGideUifr5CguG','icbuBYbNBYbIywnRoIaG','igLZigzYzwuSihvUBgLTAxrLzcbWCMfJDgLJzs4','icbjzIb5B3uGBMvLzcb0BYbHyMfUzg9UihrOAxmGC2vZC2LVBIaOzs5NlIbLEhbPCMvKic8GD3jVBMCGCgfWzxiPla','oJaW','icaGutm54OctndaGkdiGCxvLC3rPB25Zimk3ide2ihb0CYbLywnOiokaLcbOAwDOzxn0ihzHBhvLisK','zwDNoq','zxHHBsbWCMv2','u3jPieXHBMTH','icaGicdcTYbtzxbHCMf0zsbIDwrNzxq6ia','AhrWqMfJAW','AgvSCfjLBw92zq','ihjHBMrVBsbXDwvZDgLVBNmGzNjVBsbHihbVB2WGB2yG','ywrK','AxnsyxC','igfUC3DLCMvKiokaLcbHy2nPzgvUDgfSihn1yM1PDcbNDwfYza','quKGDg9Rzw5ZoIa','icbdDxjYzw50BhKGzMXHz2DLzdOG','zxHHBsbXide','CMv2Awv3','icdIMQaGie9UBhKG','y3rMzfvYBa','zxHHBsbKzw1VlxjLDhj5','ica+ia','icaGiokaOIbtzxj2zxiGyxv0BY1MAw5HBgLZzxmGEw91CIbHBNn3zxjZigLMihLVDsbKBYbUB3qGC3vIBwL0igjLzM9Yzsb0AguGzgvHzgXPBMu','icaG','vgLTzsbLEhbPCMvKlG','ywK0y3rM','ueftu0ve','ihLVDsbNB3qGD3jVBMCU','x2HLBhbvC2vK','icaGid4+pIbRzxKGpsbIExrLCY5MCM9TAgv4kci0otqZngy0ms4UlIiP','qw5ZD2vYzwq6ica','icHXDwLJAYb0yxnRCYK','l2fWAs9Py29Hl2v4yw0TDg9Rzw4','Axnoyu4','vw5SB2nRigHPzgrLBIbIB251CYbOzwXWihvZzxm','icdIHPiG','icaGicfWExrOB24Zic1JicjPBxbVCNqGyMfZzty0oYbWCMLUDcHIyxnLnJqUyJy0zgvJB2rLkcDtr1zZyKC4psCPksi','icbsDwXLCZO','icaGidiUieLUC3rHBgWGsg9TzwjYzxCGzMLYC3qGkhDLigrPzcbUB3qGzMLUzca','icaGievprG','icaG8j+AGcaGu2vJDgLVBIaYoIbbstrdveyG4OcuiefjigLZihLVDxiGDgvHBw1HDgu','yMvHDxrPzNvSC291Cdq','mJi1nZu1mwLADMzkza','q291BgqGBM90igLUC3rHBgWGCgLWiokaLcbWAxaGAxmGBM90igLUC3rHBgXLzcbVBIb5B3vYihn5C3rLBs4','icbVzIa','CMvZDw1L','icaGiokgKIbIj0HLBgXVjW','Bwf4','icaGigH0DhbZoI8VD3D3lNb5DgHVBI5VCMCVzg93BMXVywrZl3DPBMrVD3mV','C3rKAw8','icdcTYbszwzLCMvUy2uGz3vPzgvZigzVCIaZocb0B29SCZOG','icaGicbbssb0B2TLBNm6icaGicaG','igrLDgvJDgvK','ihLLDc4','AgvSCa','yM9VA21HCMTZ','icdINjmGCgLWigf2ywLSywjSzq','CsbBBL0','icaGihzSytrJDgy','zwDNmW','DhLWzq','icbiB3CGDg8GAw5ZDgfSBcbqExrOB24GmY4XmcSGkdmUmtiGCMvJB21Tzw5KzwqPoG','rMfPBgvKihrVigXVywqGCMvZDwX0','zxHHBsbYzxzPzxC','ihWG','yMvZDfbLCMnLBNrHz2u','ihbVAw50CYaOntaLkq','icbqBgvHC2uGCMuTDhLWztOG','icaGkhjLC3vTzsbMCM9TifeXkq','x2vSAw1PBMf0zwq','AgfZ','uhjLlwv4yw0GC2v0DxaGCMvXDwLYzwq','icbezxrLy3rLzdOG','icaGuhjLC3mGyw55igTLEsb0BYbZDgfYDcbKzw1VlI4U','C3vKBYbHChqGDxbKyxrL','C3bSAxq','AhrWuMv2Awv3','u3rYB25NzxiGAgvYztOGia','icaOtwLUAw1HBcbvyNvUDhuGlYbJBg91zcaVifDttdiGAw1Hz2vZig9MDgvUihnOAxaGD2L0Ag91DcbWAxaUkq','zxHHBvDHExngB3vUza','uK9qz2fKz2v0','x2HLBhbqzxjr','rMXHz2DLzcbMB3iGCMv2Awv3','icaGiefjoIaGicaGidi1sYbbstrdveyGkYaYnuSGq1rgnefjihrVA2vUCW','icaGihn1zg8Gyxb0igLUC3rHBgWGlxKGChL0Ag9UmY4XmIbWExrOB24ZlJeYlxzLBNyGChL0Ag9UmY4XmI1KAxn0DxrPBhm','zxHHBsbZDgfYDca','ChjVBxb0','tg9HzgLUzYbLEgfTlI4U','yw5ZD2vYzwq','vgLTzq','icaGicbLEgfTigXPC3qGq04','zxHHBsbTyxjRia','icaGicbtB2X2zsa','iIbPCYbHBhjLywr5igLUihbYB2DYzxnZlG','ihf1zxn0Aw9UCYbKCMf3BIbMCM9TigeGCg9VBcbVzIa','icaGiokgKIa','tM8GzxHHBsbPBIbWCM9NCMvZCY4','sunpqsboyxrPB25HBcbtzwXLy3rPB24GrxHHBq','C2v0uMf3tw9Kzq','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDs9HCgKVAwnVys9Kzw1Vlxn0yxrZ','ChLJCNLWDg9KB21L','zxHHBv9Pza','ihDHCYbUB3qGzMXHz2DLzc4','C19HAtrJDgy','C3vIC3rYAw5N','tM8GzxHHBsbPBIbWCM9NCMvZCY4GvxnLicjLEgfTihn0yxj0idXPzd4IihrVigjLz2LUlG','zw1VAMK','icaGigv4yw0GCsaXlI4','rgvTBYbJB21WBgv0zwqGka','icaGicjtAg93ig1LigHVDYb0BYb1C2uGC3rYDwn0lNvUCgfJAYi','icbgAwX0zxiGyNKGy291BNrYEtOGzxHHBsbSAxn0ifbflcbLEgfTigXPC3qGq04Sic4UlG','uhjLCgfYAw5Nihf1zxn0Aw9UCY4UlG','iokgKIa','z3jLzw4','ixb5DgHVBJmGlI4U','icbzB3uGD2LSBcbZDwjTAxqG','icbTywnpuYaOsg9TzwjYzxCSihjLy29TBwvUzgvKktO','Aw5WDxq','zhvYyxrPB25nAw4','icbszwfKEt8GvxnLia','icaOEwvZiokaLcbSAxrLCMfSBhKGDhLWzsb0AguGBNvTyMvYia','CgvYy2vUDgfNzq','icdINjmGvg9Rzw4GCMuTyxr0ywnOzwqGDg8GEw91CIbPBI1WCM9NCMvZCYbLEgfTlG','u291DgGGs29Yzwe','rMfPBgvKihrVigXVywqGzxHHBxm','vxnLCI1bz2vUDa','zxHHBsa','tMv3ifPLywXHBMq','z3jHEq','yxr0zw1WDhm','BNvTChK','BMv4DcaVihbYzxy','Dg9tDhjPBMC','y2vPBa','icbtzxj2zxiGzgLKig5VDcbYzxr1CM4Gysb2ywXPzcbVChrPB24UifrYEsbHz2fPBI4','qw5ZD2vYzwq','icaGicaGicaOBM93lcb+nsbTAw4P','x2XHC3rr','y3rMngfP','DhjPBq','igjVBNvZigHLBhaGDw5SB2nRzwqHicG','r0vu','y29UzMLYBq','icaOAgvSCca','icaGifb5DgHVBIaZlJeYigLZihjLy29TBwvUzgvKlIbjBNn0ywXSoG','icaGicbiAw50CYbbl0iVqZOGicaG','icaGieXHBMC6icaGia','rMXHzYbHihf1zxn0Aw9UihrVihjLDMLLDYbSyxrLCIaODg9Nz2XLCYK','txLHBM1HCG','icaG4PwA4Pwq4PwDiokvMUkvKokvKokvKokvKokvKokvNsdILzRILzdILzdILzdILzdILzdILz0G4PwA4Pwq4PwDicdILzRILzdILz0','u291DgGGqwzYAwnH','icdIMiuGtwfYA2vKigzVCIbYzxzPzxC','icaGDxnPBMCGquKSihLVDsDYzsa','CMvWBgfJzq','zgLT','yw5ZD2vYx2nOyw5Nzwq','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','ihrOzsbJB21WzxrPDgLVBI4','zMfPBgvKugfJA2fNzxm','yMvZDa','Cg9PBNrZ','icH3B3jRCYWGyNv0idmUmtiGCMvJB21Tzw5KzwqP','y29UzMLYBwvKqxq','icbqCMv2Aw91CYbZzxr1CcbOywqGB25SEsa','tMLJzsbVBMuU','yxr0ywnOzwreyxrH','BgLZDcbBy291BNrYEv0','ChjLlxDYAxr0zw4GCgvYihf1zxn0Aw9U','icaGifbHy2THz2vZoIa','ihbYB21WDcWGANvZDcbSAwTLihrOzsbKzw1V','icbdAgvJAYbLEgfTCYbMB3iGEw91CIbJB3vUDhj5oG','ywLvC2fNzq','DgLTzw91Da','yMfJAW','icaGicaGia','icdIMiyGuq','icaGigfPngn0zG','icdINjmGrxHHBsbZDgf0zsbJBgvHCMvKlG','zxHHBsbZzxr1Ca','AwnVys1JBgK','icaGutmX4OctmZGGkdGGCxvLC3rPB25Zimk3idyGChrZigvHy2GP','uM9VBsb0BYbNCM93oIaGia','icbuCNvZDcb5B3vYigLUC3rPBMn0igfUzcbWAwnRig9Uzse','u2f1zgKGqxjHyMLH','icaGiokaOIbpBIblywXPl1vIDw50DsaYmIS6ig1Pz2H0ig5LzwqGChL0Ag9UmY4XmI1KzxyGkYbIDwLSzc1LC3nLBNrPywW','ica0mcSGy291BNrYAwvZigfUzcbYzwDPB25ZihjLChjLC2vUDgvK','icaGicbfBNrLCIbJAgf0oIaGicaG','CMvMihb5DgHVBG','icboyxrPDMuGv2LUzg93CYbJyw4GCNvUifbHCgvYiemGke1dus1VBMX5ksbHBMqGquKGy2HHDcWGyNv0','uMvHzhKH','y2XVy2TpzMzZzxrnCW','icaGidmUie9Wzw4GysborvCGug93zxjtAgvSBcb3Aw5KB3CGkfbbveGGCMvMCMvZAcKSihrOzw46','iokaLcbZD2L0y2GGD2L0AdOGBgfUzYa8y29Kzt4','icdIMQaGuhL0Ag9Uia','icaG4PAi4PAi4Pwr4PAi4PAi4PwricaGicdILOJILOJILzeGicdILOJILOJILzhILOJILOJILOJILOJILOJILOJILOJILze','icaGiokaOIbdAgvJAYb5B3uGAgf2zsbPBNrLCM5LDcaOCgLWlNb5CgeUAw8GBxvZDcbIzsbYzwfJAgfIBguP','ihbHy2THz2vZlI4U','rNjHBMnL','icbuExbLia','icaGicaGC3rHCNqGuhL0Ag9UihnOzwXS','icaGicbgCMvLignOyxq6icaGicaGyw55ig1LC3nHz2uG4OAsiefjihrLyw1TyxrL','tM90ignVBM5Ly3rLzc4GuNvUoIbQB2LUidX1CMW+','sw52ywXPzcbLEgfTihrVA2vU','u2v0DxaGzMfPBgvKiokaLcaWig9Mia','icdWN5kHifrYEsb0ExbPBMCG','r3jHzgLUzY4UlG','mJuSmdaW','u3vIBwL0igv4yw0GzM9YigDYywrPBMCGkhvZztOGiMv4yw0GC3vIBwL0ignVBMzPCM0IigzVCIbYzwfSigv4yw1Zkq','icbozxCGzxHHBxmGyxjLignVBwLUzYbZB29Uiq','zwXPBwLUyxrLza','ig9YigXLyxzLihDPDgGG','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','wYbD','rxHHBsbZDgfYDgvKisbuAw1LCIbPCYbYDw5UAw5NlG','ChDU','AhrWtw9YzuHLBha','zw50CMLLCW','icbjBIb0AguGBwvHBNrPBwuSihrYEtOG','C19JDgy0ywK','zxHHBsa8Dg9Rzw4+','icbxAgf0ig5LEhq','CgfZC2vK','D3jPDgu','icbtDwjTAxr0Aw5Nig5VDYbZy29YzxmGzNjVBsbVBMX5ia','icaGzxHHBsbJzw50zxiUiezPBMfSihnJB3jPBMCGyw5KihnLBgvJDgLVBIbHCMuGzgvJAwrLzcbIEq','mtaXntK3nLDkBfHOvW','vxnLicjLEgfTihjLDMLLDYiGDg8Gy2HLy2SGChjVz3jLC3mGB3iGiMv4yw0GC3vIBwL0iIb0BYbZDwjTAxqU','Dg9mB3DLCKnHC2u','BgfUz3vHz2u','icboBYbHy3rPDMuGzxHHBsbZzxnZAw9UihrVihjLC2v0lG','icaGihDPBMDLDcbPBNn0ywXSifb5DgHVBI5qExrOB24UmY4XmG','Bwf0y2G','icaGiokaOIbbBgWGAw50zxjHy3rPB25ZigfYzsbYzwnVCMrLzcbMB3iGyxvKAxq','icaGicaGicbLBNrLCIbdvey0quKGy2HHDcdIGjqGyxr0ywnRihrOzsbbssb0yxjNzxqGkhjLy29TBwvUzgvKkq','D2HPDgu','icaGswyGDgLTzsbPCYb0AwDODcWGC2TPBsbrmZKVndaGzMLYC3qGDg8GzgvJAwrLigf0DgfJAYbVCMrLCI4','icdIMQaGiduGBwLUDxrLCYbYzw1HAw5PBMC','icbuAw1LoIaGica','icbbzNrLCIbPBNn0ywXSAw5NlcbYDw46ia','zxHHBvDHExnqExrOB25szxbS','zxHHBuLK','r28GDg8GBMv4DcbXDwvZDgLVBG','icbgzwrVCMeGlYbssevmoG','AM9PBG','icbuBYbJB250Aw51zsb0AgLZigv4yw06','AxnbCNjHEq','icaGDgHLig9Yz2fUAxPLCIbPBIb5B3vYignVDw50CNKU','icbLEgfTiheGw25Dicb8igv4yw0Gyw5ZD2vYidXUpIa8qs1epIb8igv4yw0GCMv2Awv3ihWGzxHHBsbZDwjTAxq','ic1TihbPCcbZAg93ici','ienurJrbsq','yM9Sza','y2f0zwDVCNK','ChjLDG','icaOugfWzxiGqYb0B2TLBNmGC2TPCcb0AgLZigDHDguG4OcuifbHCgvYiemGAxmGtunrlw9UBhKP','C3rHCNrLzef0','BwfYAYbBBL0','icaGigHLBha','ks4Gww91j3jLig9UihLVDxiGB3DUisdWN5kQ','icaGigv4yw0GCMv2Awv3','igzPCNn0lG','C3rKzxjY','C3rHCNrfEgfT','ig1PBNv0zxmGBgvMDc4Gs2vLCcb0AguGCgfJzsbZDgvHzhKU','icbtDhvJAZ8Grw1HAwWGEw91CIbZzwXLy3rPB24Gy29VCMrPBMf0B3iGD2L0Acb0AguGC2nYzwvUC2HVDcbHyM92zs4','rwD5Chq','icdIL48G','lZmWig11BhrPCgXLlwnOB2LJzsbHBNn3zxjLza','imk3ia','l2v0yY9VCY1YzwXLyxnL','icaGicaGicaGia','imk3ifbPy2SGB25LigfUC3DLCIbWzxiGCxvLC3rPB24','icaGigzYB20GChDUigLTCg9YDcb4B3i','icbpChrPB25ZigHHDMuGyMvLBIbYzxnODwzMBgvKlG','zMLSDgvY','icaGienVBxbSzxrLzdOG','icbSyw5NigzYimk3igXHBMCGyxiGWRCGBgfUzYbWDcdcTYaXnsbSyw5NDwfNzxmGC3vWCg9YDgvK','tMfTzq','AhrWtMf2','icbuBYbNBYbIywnRigfUzcbHBNn3zxiGBw9YztO','nwDrtxzgvG','icaGign0zJrHAq','EwvSBg93','icdIMQaGCgLWig5VDcbMB3vUzcWGDhj5Aw5NigvUC3vYzxbPCc4UlG','ixb5DgHVBJmGC29SDMuUChK','icbvC2u6igv4yw0GCMv2Awv3imk3igv4yw0GC3vIBwL0','CMvK','icdIMQaGieXfu1mGveHbtIaXie1jtLvursbmruzu','igLZihDLBgWGyMvSB3CU','ue9tva','vMLLDg5HBq','icaGicaGicaGkgn0zJrHAsK','y29TCgXLDgvKqxq','zwXPBwLUyxrLzca','rxHHBsbfBNzPCM9UBwvUDcbtzxr1Ca','wYbDica','icbtDgfYDcbHifb5DgHVBIbZzxnZAw9Ulcb0ExbLignVBw1HBMrZig9UzsbIEsbVBMu6','zxHHBu5HBwu','C3vIBwL0DgvK','zwDNmte','icaGiokCKYbZyxzLza','icbpCIbKB3DUBg9HzcbPBNn0ywXSzxi6','vMLLDYbLEgfTihjLC3vSDa','y2f0y2G','C3rKAw4','zgvTBY1YzxrYEq','C3vIBwL0rxHHBq','zxHHBsbOzwXW','ywn0Aw9U','icbeAxjLy3rPB25HBcbMzwvKyMfJAW','igfUC3DLCNmSihr5Cgu6','icaGWRCGmteWienurIb0B29SCYbWCMuTy29UzMLNDxjLza','ic1TigvUC3vYzxbPCcaTlxvWz3jHzgu','icdILRGG','Dg9Rzw4GpgnVzgu+','BM9KztPJAgLSzf9WCM9JzxnZ','z2v0uMvZDwX0','zgvTB0LUDhjVu2vLBG','CMvM','zwXPBwLUyxrL','icbkDxn0igfKzcaHigjLzM9Yzsb0AguGy29TBwfUzdO','y29TCgXLDgu','icbdB3vSzcbUB3qGCMvHy2GGC2vYDMvYigzVCIbOzwXWlIbdAgvJAYb5B3vYignVBM5Ly3rPB24U','icdIMQaGiezjtKfmifnvqK1ju1njt04G4OcuihbSzwfZzsbJB25MAxjT','yNjLDYbPBNn0ywXSihb5DgHVBKaZlJeY','A2v5CW','icaOzgLMzMvYzw50igzYB20GDgHLig9Uzsb5B3uGDhLWzwqP','icboBYb3CM9UzYbXDwvZDgLVBNmGDg8GCMv0CNKUifj1BIa','CM9Wz2fKz2v0','rMXHz2DLzdOGica','icbszwLUC3rHBgWGuhL0Ag9UidmUmtiGD2L0AcbWAxaGyNvUzgXLzcWGDgHLBIbYzxrYEtO','ihn0AwXSigzSywDNzwqGzM9YihjLDMLLDZOG','nZiYrKXerfni','zgf0yq','rwXPBwLUyxrLig9Uzsb3CM9UzYbVChrPB24GkgXPBwL0zwqGDxnLCYK','vgLTzsb1C2vKoIa','DxnLza','rhvYyxrPB24','CxvPDa','icdIHPmGifbYywn0AwnHBcbZzwn0Aw9UigjLz2LUCYbHDcbrmZeU','igHLBhbZihjLBwfPBMLUzY4GvxnLihrOzw0GzMLYC3qH','icbgCMvLihbYywn0AwnLimk3ie5VigfJy291BNqGBMvLzgvKimk3ie5VihrPBwuGBgLTAxq','CgXHDgzVCM0','C2HVD25xyxjUAw5NCW','icaGWRCGmtuGBgfUz3vHz2vZlcbYzwfSlxrPBwuGquKGDhjHBNnSyxrPB24','icbgAxjZDcbLCNjVCIbKzxrHAwWGkgzVCIbKzwj1z2DPBMCPoG','AhrWqw5ZD2vY','x2HLBhbnyxG','icaOChjLDMLVDxmGzxHHBsbZzxnZAw9Uigv4CgLYzwqG4OcuignSzwfYzwqGC3rHDguSihn0yxj0Aw5NigzYzxnOihDPDgGGEw91CIbUzxCGDg9Rzw4P','C29Tzq','CgLWzq','l3n1yM1PDa','CgTN','ig1PBNv0zxm','u3rHDhvZ','icaGid4+pIbJAxbOzxiGpsbbrvmUBMv3kgTLEsWGquvtlK1prevFq0jdlcbPDIK','cIaG','icdIMiuGuq','icbr','icaGicbfEgfToIaG','icaGvgHLC2uGyxjLihrOzsbOyxjKzxn0ihf1zxn0Aw9UCY4Gv29YDgGGmJeLig9MihrVDgfSihnJB3jLlG','vxbSB2fKAw5NigfUC3DLCNmUlI4','icbszxj1BIb3AgvUigzPEgvKoIa','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','4PQGicbfweLuigLJB2eGzMLYC3qG4Ocuihn1zg8Gy2fUBM90ihj1BIbPBNnPzguGDgHLihbYB21WDa','icdIMQaGiefUigv4yw0GAxmGywXYzwfKEsbPBIbWCM9NCMvZCYbVBIb0AgLZigrLDMLJzs4','BM9KztPYzwfKBgLUzq','icaGicbcDwrNzxqGFJiGBwLUihbLCIbWCMfJDgLJywWGCxvLC3rPB24UifLVDsbJyw4Gy29TzsbIywnRihDPDgG6ig5LEhqGlYbWCMv2lG','Dg9Vx29Sza','BgfUzYa8y29Kzt4','icaGifb5DgHVBJOG','icbYDw4G','C2XPy2u','Cgn0','icdWN46bicS','zgfYD2LU','Dw5TyxjRifTUxq','itXJBwq+ia','icHJB21WBgv4ihnVBhv0Aw9UCYK','igzVDw5KlcbIDxqGmY4XmcSGCMvXDwLYzwqGzM9YihrOzsbLEgfTlG','iefjnenurG','icaG4PAi4PAi4Pwr4PwA4PAi4PAi4PAi4PAi4PAi4PAi4Pwx4PwA4PAi4PAi4PAi4PAi4PAi4PAi4Pwu4PwD4PAi4PAi4PwricdILOJILOJILze','icbzB3uGC3rPBgWGAgf2zsa','yw5ZD2vYCW','icaGia','C3rHDhvZ','icaGigv4yw0Gyw5ZD2vYidXUpIbjq09bEY4UlN0','twfJyxu','icHr','vgLTzw91DevYCM9Y','oIdIGjq','BgLUzq','uxvLC3rPB24G','Dg9Rzw4','zMXVB3i','icaGihbYAw50khHVCIHJDcWGA2v5ks5KzwnVzguOksK','icbrDwvZDgLVBNmGAw4Grw5NBgLZAc4Gvg8GC3DPDgnOigXHBMD1ywDLigzPCNn0oG','uMvTB3zLihjLDMLLDYbMBgfNigzYB20GysbXDwvZDgLVBG','icaGicaGicHszwjVB3qGAwyGv2LUzg93CYbHC2TZlcb0AgvUig9Wzw4GDgHLifvIDw50Dsb0zxjTAw5HBc4P','icaGrwXHChnLzdOG','igf0DgvTChq','B25Jzq','icbvyNvUDhuGlYbezwjPyw4GkgrLywrZBMfRzxmGufbbktO','ieLdt0f7Ew91CL9MBgfNFq','yxbWBgLJyxrPB24VANnVBG','A2v5','icaGigH0DhbZoI8VD3D3lNb5DgHVBI5VCMCVzg93BMXVywrZlW','icdWN5Miie1HEcaYigHLBhbZihbLCIbXDwvZDgLVBIdIGjqGEw91igfSCMvHzhKGAgf2zsbHiduWlZuWiq','C3bSAwnL','BwLU','sunpqsbezw1Viev4yw0G4OcuiezYzwuGuhjHy3rPy2u'];a0z=function(){return bP;};return a0z();}import{printSuccess as a0a9,printError as a0aa,printWarning as a0ab,printInfo as a0ac,printTable as a0ad,printHeader as a0ae,printKeyValue as a0af,createSpinner as a0ag,formatCountdown as a0ah}from'../lib/ui.js';import{t as a0ai}from'../lib/i18n.js';import{getDeviceFingerprint as a0aj}from'../lib/access.js';import{getExamSetup as a0ak,saveExamSetup as a0al,isExamSetupComplete as a0am}from'../lib/exam-setup.js';function a0B(a,b){a=a-(0x161b+-0x1007+-0x525*0x1);const c=a0z();let d=c[a];if(a0B['HnMKUh']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=0x2*0x587+-0x192c+-0x116*-0xd,o,p,q=-0x224b*0x1+-0x1*0x7c3+-0x301*-0xe;p=i['charAt'](q++);~p&&(o=n%(0xe3*-0x11+-0x2467+0x337e)?o*(0x129a+0x1*0x16ea+0x2*-0x14a2)+p:p,n++%(-0x7f*-0x43+0x85b*0x2+-0x31ef))?l+=String['fromCharCode'](0x6*0x4af+0x303+-0x1e1e&o>>(-(0x201+-0x19c3*-0x1+-0x1bc2)*n&0x1*0x2453+0x815+-0x2c62*0x1)):0x5*0xa9+0x242a+-0x2777){p=j['indexOf'](p);}for(let r=0xd2f+0x1752+-0x2481,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](0x3*-0x783+-0x13fb+0x2a94))['slice'](-(-0x1213+0xe7*-0x3+0x14ca));}return decodeURIComponent(m);};a0B['JSRnTb']=e,a0B['QhlMYO']={},a0B['HnMKUh']=!![];}const f=c[-0x1*0xdd7+-0x3*-0xaf1+-0x12fc*0x1],g=a+f,h=a0B['QhlMYO'][g];return!h?(d=a0B['JSRnTb'](d),a0B['QhlMYO'][g]=d):d=h,d;}import{execSync as a0an}from'node:child_process';const q=z=>new Promise(B=>setTimeout(B,z));function E(B,F={}){const b1=a0B,G=a0W(),H={};H[b1(0x3d0)]='application/json',fetch('https://practice.icoa2026.au/api/icoa/demo-stats',{'method':b1(0x2fa),'headers':H,'body':JSON['stringify']({'type':B,'lang':G[b1(0x2be)]||'en','timestamp':new Date()[b1(0x18d)](),...F}),'signal':AbortSignal[b1(0x286)](0x1c6c+-0xed*-0x6+-0xe72)})[b1(0x308)](()=>{});}function N(z,B){const b2=a0B,F=Math[b2(0xf0)](z/(-0x7c3+-0x8*-0x1c9+-0x20b*0x3)*(0xe3*-0x11+-0x2467+0x3398)),G=0x129a+0x1*0x16ea+0x2*-0x14b3-F,H=a0L[b2(0x24b)]('█'[b2(0x1ad)](F))+a0L['gray']('░'[b2(0x1ad)](G)),J=String(z)[b2(0x147)](-0x7f*-0x43+0x85b*0x2+-0x31f0)+'%';process['stdout'][b2(0x2b8)]('\x0d\x1b[2K\x20\x20'+H+'\x20'+J+'\x20\x20'+a0L[b2(0x25a)](B));}function M(){const b3=a0B,z=a0W();return z[b3(0x1ed)]&&z['token']?new a0V(z[b3(0x1ed)],z[b3(0x362)]):(a0aa(b3(0x2a3)),null);}function O(){const b4=a0B,z=a0a1();z&&(new Date()<z?a0af(b4(0x3a0),a0L[b4(0x2f3)][b4(0x2d4)](a0ah(z))):a0af(b4(0x233),a0L[b4(0x2f7)][b4(0x2d4)](b4(0x3f4))));}function j(z,B){const b5=a0B;return Array[b5(0x2cf)](z['bookmarks'])&&z['bookmarks'][b5(0x1a4)](B);}function D(z,B){const b6=a0B,F=Array[b6(0x2cf)](z[b6(0x211)])?[...z[b6(0x211)]]:[],G=F[b6(0x18e)](B);return G>=0x6*0x4af+0x303+-0x1f1d?(F[b6(0x371)](G,0x201+-0x19c3*-0x1+-0x1bc3),z[b6(0x211)]=F,a0Z(z),!(0x1*0x2453+0x815+-0x2c67*0x1)):(F[b6(0x1bb)](B),F[b6(0x142)]((H,J)=>H-J),z[b6(0x211)]=F,a0Z(z),!(0x5*0xa9+0x242a+-0x2777));}function R(B){const b7=a0B,F={};return F[b7(0x329)]=B[b7(0x1f6)]||0xd2f+0x1752+-0x2481,F[b7(0x209)]=B['_helpMax']||0x3*-0x783+-0x13fb+0x2a98,F[b7(0x394)]=B[b7(0x22b)]||{},F['eliminated']=B[b7(0x21f)]||{},F;}function U(z,B){const b8=a0B,F=a0Y(),G=Number(F?.[b8(0x103)][b8(0x1a3)]||-0x1213+0xe7*-0x3+0x14e6),H=Object['keys'](F?.[b8(0x358)]||{})['length'],J=R(F),K=J[b8(0x2ab)][z['number']]||[],L='ai4ctf'===z[b8(0x216)]||'ctf4ai'===z[b8(0x216)]||b8(0x3c9)===z['type']||z[b8(0xfa)]&&!z[b8(0xfa)]['A']&&!z[b8(0xfa)]['B'];F&&function(Y,Z){const b9=b8;if(b9(0x105)===Y[b9(0x103)]['examId'])return;const a0=new Set(Y[b9(0x330)]||[]),a1=Number(Y['session'][b9(0x1a3)]||-0x1*0xdd7+-0x3*-0xaf1+-0x12d4*0x1),a2=a0a1();if(0x1efb+-0x6*0x4d4+0x1f9*-0x1===Z&&a1>=-0xa*0x37e+-0x139*-0x5+0x5cb*0x5&&!a0[b9(0x220)](b9(0xfe))){const a3=a2?Math['max'](-0x1fa2+0x2605+-0x663,Math[b9(0xf0)]((a2[b9(0x1c9)]()-Date[b9(0x3c2)]())/(-0x10471+0x8bee+0x1*0x162e3))):null;console[b9(0x1c3)](),console[b9(0x1c3)](a0L[b9(0x25a)]('\x20\x20┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄')),console[b9(0x1c3)](a0L[b9(0x114)](b9(0x3c3))+a0L['gray'](b9(0x1c6))),null!==a3&&console['log'](a0L[b9(0x25a)](b9(0x3ad)+a3+b9(0x2e0))),console[b9(0x1c3)](a0L[b9(0x25a)](b9(0x3cf))),a0['add']('p10'),Y[b9(0x330)]=Array[b9(0x37e)](a0),a0Z(Y);}if(-0xf7e+0x13e5+-0x449*0x1===Z&&a1>=-0x8ff*0x1+-0x197*0x11+-0x1*-0x242e&&!a0[b9(0x220)](b9(0x141))){Object['keys'](Y['answers']||{})[b9(0x14a)];const a4=Object['keys'](Y[b9(0x358)]||{})['filter'](a5=>Number(a5)<=0x2210+-0x3*0x5fe+-0xff8)[b9(0x14a)];console[b9(0x1c3)](),console[b9(0x1c3)](a0L[b9(0x24b)](b9(0x109))),console[b9(0x1c3)](a0L['bold'][b9(0x24b)]('\x20\x20✓\x20\x20MCQ\x20section\x20complete\x20—\x20well\x20done!')),console[b9(0x1c3)](a0L['gray'](b9(0x3ad)+a4+b9(0x2e4))),console['log'](a0L[b9(0x2c4)](b9(0x32c))),console[b9(0x1c3)](a0L[b9(0x25a)](b9(0x348))),console['log'](a0L[b9(0x24b)](b9(0x109))),a0[b9(0x1e5)](b9(0x141)),Y[b9(0x330)]=Array[b9(0x37e)](a0),a0Z(Y);}}(F,z['number']),F&&L&&function(Y,Z){const ba=b8;if(ba(0x105)===Y[ba(0x103)][ba(0x2ca)])return;if(Number(Y['session'][ba(0x1a3)]||-0x3*-0xac1+0x1921*-0x1+-0x6fa)<0x7c*0x6+-0xfec+0xd2c)return;const a0=new Set(Y[ba(0x330)]||[]);Z>=0x1a4c+0x24a9+-0xe*0x47d&&Z<=0x1c98+0x124d+-0x2ebf&&!a0[ba(0x220)](ba(0x241))?(console['log'](),console[ba(0x1c3)](a0L[ba(0x24b)](ba(0x344))),console['log'](a0L[ba(0x2d4)]['green'](ba(0x202))),console[ba(0x1c3)](a0L[ba(0x24b)](ba(0x344))),console[ba(0x1c3)](),console[ba(0x1c3)](a0L[ba(0x2c4)]('\x20\x20\x20Welcome\x20to\x20the\x20practical\x20CTF\x20section.\x20Real')),console['log'](a0L['white']('\x20\x20\x20security\x20tasks\x20—\x20crypto,\x20web,\x20forensics,\x20pwn.')),console['log'](),console[ba(0x1c3)](a0L[ba(0x2d4)][ba(0x2c4)](ba(0x28e))),console[ba(0x1c3)](a0L['gray'](ba(0x236))+a0L['bold'](ba(0x168))+a0L[ba(0x25a)](ba(0x385))),console[ba(0x1c3)](),console[ba(0x1c3)](a0L[ba(0x2d4)][ba(0x2c4)]('\x20\x20\x20How\x20to\x20work')),console[ba(0x1c3)](a0L[ba(0x25a)](ba(0x294))+a0L['bold'][ba(0x24b)](ba(0x1f3))+a0L[ba(0x25a)](ba(0x24a))+a0L[ba(0x173)](ba(0x10e))+a0L[ba(0x25a)](ba(0x283))),console[ba(0x1c3)](a0L[ba(0x25a)](ba(0x132))+a0L[ba(0x114)](ba(0x1af))+a0L[ba(0x25a)](ba(0x2e5))+a0L[ba(0x114)](ba(0x151))+a0L['gray'](ba(0x2e5))+a0L['cyan']('!python3\x20...')),console[ba(0x1c3)](a0L[ba(0x25a)](ba(0x2a2))),console[ba(0x1c3)](a0L['gray']('\x20\x20\x20\x20\x20Exit\x20chat:\x20\x20\x20\x20\x20\x20')+a0L[ba(0x114)]('exit')+a0L['gray'](ba(0x404))+a0L[ba(0x114)](ba(0x25d))),console[ba(0x1c3)](),console['log'](a0L[ba(0x2d4)]['white']('\x20\x20\x20Budget\x20(shared\x20across\x20Q31–38)')),console['log'](a0L[ba(0x25a)](ba(0x20d))+a0L[ba(0x2c4)](ba(0x2a8))+a0L[ba(0x25a)]('\x20for\x20this\x20section')),console[ba(0x1c3)](a0L[ba(0x25a)](ba(0x26b))+a0L['white'](ba(0x281))),console[ba(0x1c3)](),console[ba(0x1c3)](a0L[ba(0x2f3)](ba(0x3d8))),console[ba(0x1c3)](a0L['green'](ba(0x344))),console[ba(0x1c3)](),a0['add'](ba(0x241)),Y['shownWarnings']=Array[ba(0x37e)](a0),a0Z(Y)):Z>=-0x1*0xceb+-0x1*0x187f+0x3b*0xa3&&!a0[ba(0x220)](ba(0x2b4))&&(console[ba(0x1c3)](),console['log'](a0L[ba(0x2f7)](ba(0x344))),console[ba(0x1c3)](a0L[ba(0x2d4)][ba(0x2f7)](ba(0x129))),console[ba(0x1c3)](a0L[ba(0x2f7)](ba(0x344))),console[ba(0x1c3)](),console['log'](a0L[ba(0x2c4)](ba(0x165))),console[ba(0x1c3)](a0L[ba(0x2c4)](ba(0x272))+a0L[ba(0x2d4)]('attacking')+a0L[ba(0x2c4)]('\x20AI\x20systems.')),console['log'](),console[ba(0x1c3)](a0L[ba(0x2d4)][ba(0x2c4)](ba(0x1dd))),console['log'](a0L[ba(0x25a)](ba(0x1b6))),console[ba(0x1c3)](),console['log'](a0L[ba(0x2d4)][ba(0x2c4)](ba(0x14b))),console[ba(0x1c3)](a0L[ba(0x25a)](ba(0x294))+a0L[ba(0x2d4)][ba(0x2f7)]('ctf4ai')+a0L[ba(0x25a)]('\x20→\x20')+a0L[ba(0x2f7)]('ctf4ai>')+a0L['gray'](ba(0x10b))),console[ba(0x1c3)](a0L[ba(0x25a)]('\x20\x20\x20\x20\x20Inside\x20chat:\x20\x20\x20\x20')+a0L[ba(0x114)](ba(0x1af))+a0L[ba(0x25a)]('\x20·\x20')+a0L[ba(0x114)](ba(0x151))+a0L['gray']('\x20·\x20')+a0L[ba(0x114)](ba(0x24c))),console[ba(0x1c3)](a0L[ba(0x25a)]('\x20\x20\x20\x20\x20Messages\x20→\x20AI\x20target\x20—\x20craft\x20prompts\x20to\x20break\x20its\x20rules.')),console[ba(0x1c3)](),console[ba(0x1c3)](a0L[ba(0x2d4)]['white'](ba(0x112))),console[ba(0x1c3)](a0L[ba(0x25a)](ba(0x138))+a0L[ba(0x2f7)](ba(0x11a))+a0L[ba(0x25a)](',\x20not\x20your\x20teammate')),console[ba(0x1c3)](a0L['gray'](ba(0x1e1))+a0L[ba(0x2c4)](ba(0x14c))+a0L[ba(0x25a)]('\x20shared\x20across\x20Q39–40')),console[ba(0x1c3)](),console[ba(0x1c3)](a0L['yellow'](ba(0x341))),console['log'](a0L[ba(0x2f3)](ba(0x2c5))),console[ba(0x1c3)](a0L[ba(0x2f7)](ba(0x344))),console[ba(0x1c3)](),a0[ba(0x1e5)](ba(0x2b4)),Y['shownWarnings']=Array[ba(0x37e)](a0),a0Z(Y));}(F,z[b8(0x3b8)]),F&&function(Y){const bb=b8,Z=a0a1();if(!Z)return;const a0=Z[bb(0x1c9)]()-Date['now']();if(a0<=-0x989*0x3+0x4*0x9e+0x1a23*0x1)return;const a1=a0/(0x1b6e5+0x19f5d+-0x26be2),a2=new Set(Y[bb(0x330)]||[]);let a3=null;if(a1<=0x3*0x865+0xf39*-0x1+-0x9f5&&!a2['has']('t1')?a3={'key':'t1','text':[a0L[bb(0x2f7)][bb(0x2d4)](bb(0x2f8)),a0L[bb(0x2f7)](bb(0x1b3))+a0L['bold'](bb(0x3f6))]}:a1<=0x86d*-0x2+-0x5*0x5d5+0x2e08&&!a2['has']('t5')?a3={'key':'t5','text':[a0L[bb(0x2f7)][bb(0x2d4)](bb(0x2c6)),a0L[bb(0x2f3)](bb(0x38b))+a0L[bb(0x2d4)](bb(0x3f6))]}:a1<=0x2245*-0x1+0x1*-0x63+0x22b2&&!a2['has'](bb(0x399))&&(a3={'key':bb(0x399),'text':[a0L[bb(0x2f3)]['bold'](bb(0x1ca)),a0L[bb(0x25a)]('\x20\x20Review\x20unanswered\x20questions:\x20')+a0L['white']('exam\x20review')]}),a3){console[bb(0x1c3)](),console[bb(0x1c3)](a0L[bb(0x2f7)](bb(0x109)));for(const a4 of a3[bb(0x3fe)])console['log'](a4);console[bb(0x1c3)](a0L[bb(0x2f7)](bb(0x109))),a2['add'](a3[bb(0x36e)]),Y[bb(0x330)]=Array[bb(0x37e)](a2),a0Z(Y);}}(F),function(Y,Z,a0){const bc=b8,a1=Math[bc(0xf0)](Y/Z*(0x2445+0x1819+-0x3c40*0x1)),a2=-0xc*-0x197+-0x147c+0x1e*0xd-a1,a3=a0L[bc(0x114)]('━'['repeat'](a1))+a0L[bc(0x25a)]('─'[bc(0x1ad)](a2)),a4=Math[bc(0xf0)](Y/Z*(-0x1*0x2419+-0x423*-0x6+0xbab));console[bc(0x1c3)](),console['log']('\x20\x20'+a3+'\x20\x20'+a0L[bc(0x2c4)][bc(0x2d4)](''+Y)+a0L[bc(0x25a)]('/'+Z)+'\x20\x20'+a0L[bc(0x25a)]('('+a0+bc(0x3b1))+'\x20\x20'+a0L[bc(0x25a)](a4+'%'));const a5=a0a1();if(a5){const a6=Math[bc(0x209)](0x6cb+-0x9a2*-0x3+-0x23b1,Math[bc(0xf0)]((a5[bc(0x1c9)]()-Date[bc(0x3c2)]())/(0x1*0x1199+0x15de+0x1*-0x238f))),a7=Math[bc(0x363)](a6/(-0x1ac6+-0x1852+0xcd5*0x4))+':'+String(a6%(0x20ec+0x156+0x82*-0x43))[bc(0x147)](-0x1a4c+-0xd*0x301+0x415b,'0'),a8=a6<=-0xd4f*0x2+0x125f+0xd*0xa7?a0L[bc(0x2f7)][bc(0x2d4)]:a6<=0x22fd+0x10f*-0x7+-0x208*0xd?a0L['red']:a6<=0x1288+0x4bb*-0x7+0x10ed?a0L[bc(0x2f3)]:a0L['gray'];console[bc(0x1c3)]('\x20\x20'+a0L['gray'](bc(0x3da))+'\x20'+a8(a7)+'\x20'+a0L[bc(0x25a)]('(server-authoritative)'));}}(z[b8(0x3b8)],G,H),F&&j(F,z[b8(0x3b8)])&&console['log'](a0L[b8(0x2f3)](b8(0x271)));const Q=function(Y,Z){const bd=b8,a0={};a0['pct']=0.2,a0['emoji']=bd(0x104),a0[bd(0x36e)]=bd(0x215);const a1={};a1[bd(0x34e)]=0.33,a1['emoji']='🐨',a1[bd(0x36e)]=bd(0x182);const a2={};a2[bd(0x34e)]=0.5,a2['emoji']='🌉',a2[bd(0x36e)]=bd(0x387);const a3={};a3[bd(0x34e)]=0.6,a3['emoji']='🦘',a3[bd(0x36e)]=bd(0x1de);const a4={};a4['pct']=0.8,a4['emoji']=bd(0x39d),a4[bd(0x36e)]=bd(0x304);const a5={};a5[bd(0x34e)]=0.87,a5[bd(0x244)]='🦈',a5['key']='egg13';const a6={};a6[bd(0x34e)]=0x1,a6['emoji']='🎉',a6['key']=bd(0x160);const a7=[a0,a1,a2,a3,a4,a5,a6],a8=new Set();for(const a9 of a7){const aa=Math['round'](a9[bd(0x34e)]*Z);if(!(aa<0x12c5+-0x667+-0xc5d||a8[bd(0x220)](aa))&&(a8[bd(0x1e5)](aa),Y===aa))return{'emoji':a9[bd(0x244)],'text':a0ai(a9[bd(0x36e)])};}}(z[b8(0x3b8)],G);if(Q&&console[b8(0x1c3)](a0L[b8(0x2f3)]('\x20\x20'+Q[b8(0x244)]+'\x20\x20'+Q['text'])),console[b8(0x1c3)](),z['category']&&console[b8(0x1c3)](a0L[b8(0x114)](b8(0x396)+z['category']+']')),z[b8(0x27a)]&&z[b8(0x27a)]>-0x1ce6+0x427*-0x8+-0x1c*-0x238&&console[b8(0x1c3)](a0L[b8(0x114)]('\x20\x20['+z['points']+b8(0x3e5))),L){let Y=z['description']||z[b8(0x3fe)];const Z=a0a2(z[b8(0x3b8)],z[b8(0x27f)]);if(z[b8(0x27f)]){const a1=/\([^()]*attachedData[^()]*\)/;a1[b8(0x198)](Y)?Y=Y['replace'](a1,z[b8(0x27f)]):Y[b8(0x1a4)](z[b8(0x27f)])||(Y=Y+b8(0x405)+z[b8(0x27f)]);}console[b8(0x1c3)](a0L[b8(0x2d4)][b8(0x2c4)](b8(0x33f)+z[b8(0x3b8)]+'.\x20')+a0L[b8(0x2c4)](Y[b8(0x225)]('\x0a')[-0x1715+0x91*0xd+-0x2*-0x7dc]));const a0=Y[b8(0x225)]('\x0a')[b8(0x34d)](-0x19d8+0x254b+-0xb72);for(const a2 of a0)console[b8(0x1c3)](a0L[b8(0x2c4)]('\x20\x20'+a2));if(console[b8(0x1c3)](),Z&&b8(0x1f3)===z['type']){const a3=Z[b8(0x273)](process.env.HOME||'','~');console[b8(0x1c3)](a0L[b8(0x114)]('\x20\x20'+a0ai(b8(0x391))+'\x20')+a0L[b8(0x25a)]('('+a0ai(b8(0x178))+'\x20'+a3+'):')),console['log'](a0L[b8(0x2c4)]('\x20\x20\x20\x20①\x20')+a0L[b8(0x2f3)](b8(0x352)+a3)['padEnd'](-0x10ff+0x1*0x14b3+0x20*-0x1c)+a0L[b8(0x25a)]('\x20'+a0ai(b8(0x39b)))),console[b8(0x1c3)](a0L[b8(0x2c4)]('\x20\x20\x20\x20②\x20')+a0L[b8(0x2f3)]('!python3')[b8(0x136)](-0xa81+-0x67a*-0x6+0x21*-0xdb)+a0L[b8(0x25a)]('\x20'+a0ai(b8(0x2c9)))),console[b8(0x1c3)](a0L[b8(0x2c4)](b8(0x3f2))+a0L[b8(0x2f3)]('!vi\x20solve.py')+a0L[b8(0x25a)]('\x20\x20→\x20\x20')+a0L[b8(0x2f3)](b8(0x2f5))),console[b8(0x1c3)](a0L[b8(0x2c4)]('\x20\x20\x20\x20④\x20')+a0L['yellow'](b8(0x295))[b8(0x136)](0x1ce*-0xa+0x1be6+0xf9*-0xa)+a0L[b8(0x25a)]('\x20'+a0ai(b8(0x1d1)))),console[b8(0x1c3)](a0L[b8(0x2c4)]('\x20\x20\x20\x20⑤\x20')+a0L[b8(0x2f3)](b8(0x1f3))[b8(0x136)](-0x669*-0x6+0x22ce+-0x4924)+a0L[b8(0x25a)]('\x20'+a0ai(b8(0x3c6)))),console[b8(0x1c3)](),console[b8(0x1c3)](a0L[b8(0x25a)]('\x20\x20'+a0ai(b8(0x229))+'\x20')+a0L[b8(0x2d4)][b8(0x24b)](b8(0xef))),console['log']();}B&&(console[b8(0x1c3)](a0L['green']('\x20\x20Your\x20answer:\x20'+B)),console['log']());}else{console[b8(0x1c3)](a0L['bold'][b8(0x2c4)](b8(0x33f)+z[b8(0x3b8)]+'.\x20')+a0L[b8(0x2c4)](z[b8(0x3fe)])),console['log']();for(const a4 of['A','B','C','D']){const a5=B===a4;K['includes'](a4)?console[b8(0x1c3)](a0L[b8(0x25a)]['strikethrough']('\x20\x20\x20\x20'+a4+'.\x20'+z[b8(0xfa)][a4])+a0L[b8(0x2f7)]('\x20('+a0ai(b8(0x3fd))+')')):a5?console['log'](a0L['green']['bold'](b8(0x312)+a4+'.\x20'+z[b8(0xfa)][a4])):console[b8(0x1c3)](a0L[b8(0x25a)]('\x20\x20\x20\x20'+a4+'.')+'\x20'+a0L['white'](z[b8(0xfa)][a4]));}console[b8(0x1c3)]();}const V='demo-free'===F?.[b8(0x103)][b8(0x2ca)],W=J[b8(0x394)][-0x2170+0x1e56+0xc7*0x4]||0x623+-0x2*-0xb42+-0x1ca7;V&&-0xc5*-0x4+-0x10dd+0xb*0x141===z[b8(0x3b8)]&&-0x1*0xed+0x21a7+-0x20ba===W&&(console[b8(0x1c3)](a0L['yellow'][b8(0x2d4)]('\x20\x20'+a0ai(b8(0x3d9)))),console[b8(0x1c3)]());const X=J[b8(0x209)]-J[b8(0x329)];if(console[b8(0x1c3)](a0L['gray'](b8(0x38c))),L){const a6=F&&b8(0x105)!==F[b8(0x103)][b8(0x2ca)]&&z[b8(0x3b8)]>=0xdcb+0x1*0xe72+-0x1c16&&z[b8(0x3b8)]<=-0x53*-0x1a+-0x1d2+0x1*-0x674,a7=F&&b8(0x105)!==F['session']['examId']&&z[b8(0x3b8)]>=0x1*0x9b+0x2c*-0xb2+0x1e1c&&z[b8(0x3b8)]<=0x3*-0x29f+0x12e*-0x8+0x1173;b8(0x3c9)===z['type']?console[b8(0x1c3)](a0L[b8(0x2d4)][b8(0x114)](b8(0x214))+a0L[b8(0x25a)](b8(0x10d))):a7?console[b8(0x1c3)](a0L[b8(0x2d4)]['green'](b8(0x28a))+a0L['gray'](b8(0x1c2))):a6&&console[b8(0x1c3)](a0L[b8(0x2d4)]['red'](b8(0x2f2))+a0L[b8(0x25a)](b8(0x2c3))),console[b8(0x1c3)](a0L[b8(0x2f3)](b8(0x35b))+a0L['gray']('\x20\x20submit\x20flag\x20directly')),console['log'](a0L['yellow']('\x20\x20\x20\x20!python3')+a0L[b8(0x25a)](b8(0x2a1)));}else{const a8=J[b8(0x209)]>=-0x166a+-0x20*-0x115+0x12*-0xac,a9=X>0x83a+-0x43f*0x1+-0x3fb?a0L[b8(0x25a)](a0ai(b8(0x1e3))+'\x20')+a0L[b8(0x2f3)]('('+X+'/'+J[b8(0x209)]+')'):a8?a0L[b8(0x25a)](a0ai(b8(0x1b2))+'\x20('+J[b8(0x329)]+'/'+J[b8(0x209)]+')'):a0L[b8(0x25a)](''+a0ai(b8(0x3d4)));console[b8(0x1c3)](a0L[b8(0x2f3)](b8(0x152))+a0L[b8(0x25a)](b8(0x288)+a0ai(b8(0x134)))),console[b8(0x1c3)](a0L[b8(0x2f3)](b8(0x2da))+'\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a9);}console[b8(0x1c3)](a0L[b8(0x2f3)]('\x20\x20\x20\x20next')+a0L[b8(0x25a)]('\x20/\x20')+a0L[b8(0x2f3)]('prev')+a0L[b8(0x25a)](b8(0x359)+a0ai(b8(0x2ef)))),console[b8(0x1c3)](a0L['yellow'](b8(0x245)+G)+a0L[b8(0x25a)](b8(0x1f1)+a0ai(b8(0x3e0)))),console['log'](a0L['yellow'](b8(0x10a))+a0L[b8(0x25a)](b8(0x2e7)+a0ai('htpMark'))),console[b8(0x1c3)](a0L[b8(0x2f3)](b8(0x2dc))+a0L[b8(0x25a)](b8(0x1f1)+a0ai(b8(0x226)))),console[b8(0x1c3)](a0L[b8(0x2d4)][b8(0x2f3)]('\x20\x20\x20\x20exam\x20submit')+a0L[b8(0x25a)](b8(0x1f1)+a0ai(b8(0x1cf)))),console[b8(0x1c3)](a0L[b8(0x2f3)](b8(0x177))+a0L[b8(0x25a)](b8(0x2e7)+a0ai(b8(0x1e2)))),console['log'](a0L[b8(0x2f3)](b8(0x18a))+a0L[b8(0x25a)](b8(0x2e7)+a0ai('htpLang'))),console['log'](a0L['gray'](b8(0x38c)));}export function registerExamCommand(z){const be=a0B,B=z[be(0x395)](be(0x12e))[be(0x11b)]('National\x20selection\x20exam');B[be(0x395)]('nations')[be(0x11b)](be(0x125))[be(0x30d)](()=>{const bf=be;a0a8('exam\x20nations'),console[bf(0x1c3)](),a0ae(bf(0x161)),console[bf(0x1c3)]();const F=[['AU',bf(0x3d1)],['BD','Bangladesh'],['BI','Burundi'],['BR','Brazil'],['CN',bf(0x13e)],['DE','Germany'],['EG',bf(0x2e2)],['FR',bf(0x29f)],['GH',bf(0x186)],['ID','Indonesia'],['IN','India'],['JP',bf(0x1c5)],['KR',bf(0x255)],['LA','Laos'],['LK',bf(0x1e0)],['MM',bf(0x26e)],['MO',bf(0x35c)],['MY','Malaysia'],['NZ',bf(0x259)],['PE',bf(0x150)],['PH','Philippines'],['RU',bf(0x116)],['SA',bf(0x291)],['SG','Singapore'],['TH',bf(0x3f0)],['TR','Turkey'],['UK',bf(0x166)],['US','United\x20States'],['UZ',bf(0x38f)],['VN',bf(0x2fb)],['ZA',bf(0x270)]];for(let G=-0x13b9+0x258+0x5cb*0x3;G<F[bf(0x14a)];G+=-0xae5+0xa6c+0x7c){const H=F[bf(0x34d)](G,G+(0x18ee+-0x1790+-0x15b))['map'](([J,K])=>'\x20\x20'+a0L[bf(0x114)](J)+'\x20\x20'+a0L[bf(0x25a)](K[bf(0x136)](0x190+0x1d36+-0xf5b*0x2)))['join']('');console[bf(0x1c3)](H);}console['log'](),console[bf(0x1c3)](a0L[bf(0x25a)](bf(0x293))),console[bf(0x1c3)](a0L[bf(0x25a)](bf(0x145))),console[bf(0x1c3)](),console['log'](a0L['white'](bf(0x284))),console[bf(0x1c3)](a0L[bf(0x114)](bf(0x11d))+a0L['gray'](bf(0x3d6))+a0L[bf(0x25a)](bf(0x234))),console[bf(0x1c3)]();}),B['command'](be(0x280))[be(0x11b)](be(0x3ae))[be(0x30d)](async F=>{const bg=be;a0a8('exam\x20list\x20'+(F||''));const G=M();if(!G)return;const H=a0ag('Loading\x20exams...');H[bg(0x3a8)]();try{let J=await G['getExams']();if(H['stop'](),F){const Q=F['toUpperCase']();J=J[bg(0x2eb)](V=>V[bg(0xfb)][bg(0x1ce)]()===Q||bg(0x1b4)===V[bg(0xfb)]);}if(!J||0x262d*0x1+0x2358+-0x1d*0x289===J[bg(0x14a)]){console['log'](),a0ac(F?'No\x20exams\x20available\x20for\x20'+F[bg(0x1ce)]()+bg(0x20f):'No\x20exams\x20available\x20for\x20your\x20country\x20yet.'),console['log'](),console[bg(0x1c3)](a0L[bg(0x2c4)](bg(0x2aa))),console[bg(0x1c3)](a0L[bg(0x25a)](bg(0x16c))),console[bg(0x1c3)](),console[bg(0x1c3)](a0L[bg(0x25a)](bg(0x2b3))+a0L[bg(0x2d4)][bg(0x114)](bg(0x3a3))),console[bg(0x1c3)]();const V={};V['PE']='es',V['CN']='zh',V['JP']='ja',V['KR']='ko',V['BR']='pt',V['SA']='ar',V['FR']='fr',V['DE']='de',V['IN']='hi',V['ID']='id',V['TH']='th',V['VN']='vi',V['TR']='tr',V['RU']='ru',V['UA']='uk',V['HT']='ht',V['KE']='sw',V['TZ']='sw';const W=V,X=(F||'')[bg(0x1ce)]();return void(W[X]&&(console[bg(0x1c3)](a0L[bg(0x25a)]('\x20\x20Tip:\x20switch\x20to\x20your\x20language\x20with:\x20lang\x20'+W[X])),console['log']()));}const K=J[bg(0x3f9)](Y=>{const bh=bg,Z=bh(0x303)===Y['status']?a0L[bh(0x24b)]:bh(0x12b)===Y[bh(0x35a)]?a0L[bh(0x2f3)]:a0L[bh(0x2c4)];return[a0L[bh(0x2c4)](Y['id']),Y['name'],a0L[bh(0x114)](Y[bh(0xfb)]),String(Y[bh(0x1a3)]),Y['durationMinutes']+'\x20min',Z(Y['status'])];}),L=[...new Set(J[bg(0x3f9)](Y=>Y[bg(0xfb)]))];a0ae(F?bg(0x403)+F[bg(0x1ce)]():bg(0x3a2)+L['length']+bg(0x3e7)),a0ad(['ID',bg(0x2ee),bg(0x3ab),bg(0x130),bg(0x32a),bg(0x33b)],K),console[bg(0x1c3)](),console['log'](a0L[bg(0x25a)]('\x20\x20Start:\x20exam\x20start\x20<id>')),L[bg(0x14a)]>0xd6c+0x2ba+-0x1025&&console[bg(0x1c3)](a0L['gray'](bg(0x248)));}catch(Y){H[bg(0x179)](bg(0x256)),a0aa(Y[bg(0x3a1)]);}}),B[be(0x395)](be(0x13c))['description']('Start\x20an\x20exam\x20(begins\x20timer)')[be(0x30d)](async F=>{const bi=be;a0a8(bi(0x22f)+F);const G=a0Y();if(G)return a0ab(bi(0x3cc)+G[bi(0x103)][bi(0x302)]+bi(0x237)),void a0ac(bi(0x2bc));const H=M();if(!H)return;const J=await a0Q({'message':a0L[bi(0x2c4)]('Start\x20the\x20exam?\x20The\x20timer\x20will\x20begin\x20immediately.'),'default':!(0xf6a*0x1+-0x38b*-0x4+-0x1d96),'theme':{'prefix':'','style':{'message':K=>K,'defaultAnswer':K=>a0L['green'](K)}}});if(J){console[bi(0x1c3)]();try{N(-0x1277*0x1+-0x418+0x168f,bi(0xfd));const {session:K,questions:L}=await H[bi(0x2df)](F);N(0x6*-0x1+0x2b5+0x49*-0x9,'Loading\x20questions...'),await q(0xacf*0x3+-0x7*-0x4c7+-0x208b*0x2),N(-0x7fa+0x26a0+-0x1e6a,'Preparing\x20exam\x20environment...'),await q(0x24cc+0x1*0x2c6+-0x26ca),N(-0x1f*-0xf3+0x142b+-0x16*0x23d,bi(0x190)),await q(0x61*0x13+0x1866+0x11*-0x1d3),a0Z({'session':K,'questions':L,'answers':{}}),N(-0x1857+-0x1*-0x140+-0x1*-0x177b,bi(0x297)),console[bi(0x1c3)](),console[bi(0x1c3)](),a0ae(K[bi(0x302)]),a0af(bi(0x130),String(K[bi(0x1a3)])),a0af(bi(0x32a),K[bi(0x15b)]+bi(0x33a)),a0af(bi(0x3ab),K['country']),O(),L[bi(0x14a)]>0x13*-0xc+0x206*-0x11+0x234a&&U(L[-0xcac*0x2+0x1dde+-0x486]);}catch(Q){console[bi(0x1c3)](),a0aa(Q[bi(0x3a1)]);}}}),B[be(0x395)](be(0x213))[be(0x11b)](be(0x19d))[be(0x30d)](async F=>{const bj=be;a0a8(bj(0x1b9)+(F||bj(0x19f)));const {refetchQuestionDataIfStale:G}=await import(bj(0x174));await G();const H=a0Y();if(H){if(O(),F){const J=parseInt(F,-0x1*0x2706+-0x19b1+-0xb*-0x5e3),K=H['questions'][bj(0x19e)](L=>L[bj(0x3b8)]===J);if(!K)return void a0aa('Question\x20'+F+'\x20not\x20found\x20(1-'+H[bj(0x159)][bj(0x14a)]+').');H[bj(0x263)]=J,a0Z(H),U(K,H['answers'][J]);}else{a0ae(''+H[bj(0x103)][bj(0x302)]);const L=Object['keys'](H[bj(0x358)])[bj(0x14a)];a0af('Progress',L+'/'+H['session']['questionCount']+bj(0x400)),console[bj(0x1c3)]();for(const Q of H['questions']){const V=H[bj(0x358)][Q[bj(0x3b8)]],W=V?a0L[bj(0x24b)]('['+V+']'):a0L[bj(0x25a)](bj(0x2ae)),X=Q['category']?a0L['gray']('\x20['+Q[bj(0x2d5)]+']'):'';console[bj(0x1c3)]('\x20\x20'+W+'\x20'+a0L['white']('Q'+Q[bj(0x3b8)])+X+'\x20'+a0L[bj(0x25a)](Q['text'][bj(0x242)](0xe07+-0x739*0x5+0xb0b*0x2,-0x1*-0x2217+0x1d83+0x1*-0x3f5e))+(Q[bj(0x3fe)][bj(0x14a)]>0x2478+0x4bb*-0x7+0x31f*-0x1?bj(0x397):''));}console[bj(0x1c3)]();}}else a0aa('No\x20exam\x20in\x20progress.\x20Use\x20\x22exam\x20start\x20<id>\x22\x20to\x20begin.');}),B[be(0x395)](be(0x2d9))[be(0x11b)](be(0x26d))[be(0x30d)](F=>{const bk=be;a0a8(bk(0x235)+(F||''));const G=a0Y();if(!G)return void a0aa(bk(0x23a));const H=G['questions'][bk(0x14a)],J=F?parseInt(F,0x70*0x20+-0x19e+-0x278*0x5):G[bk(0x263)]||-0x20de+-0x1de3+0x3a*0x115;if(Number[bk(0x1fb)](J)||J<0x13*0xf0+-0x1e42+0xc73||J>H)return void a0aa('Invalid\x20question\x20number.\x20Use\x201..'+H+'.');const K=D(G,J);console[bk(0x1c3)](),K?console[bk(0x1c3)](a0L[bk(0x2f3)](bk(0x33e)+J+'\x20flagged\x20for\x20review.')):console[bk(0x1c3)](a0L[bk(0x25a)](bk(0x289)+J+bk(0x3b7)));const L=Array[bk(0x2cf)](G[bk(0x211)])?G['bookmarks']:[];L[bk(0x14a)]>0xc2b+0x1*0x1a5d+0x24*-0x112&&console[bk(0x1c3)](a0L[bk(0x25a)](bk(0x1e9)+L[bk(0x3f9)](Q=>'Q'+Q)['join'](',\x20'))),console[bk(0x1c3)](a0L[bk(0x25a)]('\x20\x20See\x20all\x20flagged\x20questions\x20in:\x20')+a0L[bk(0x2c4)](bk(0x219))),console[bk(0x1c3)]();}),B['command'](be(0x351))['description'](be(0x366))[be(0x30d)](F=>{const bl=be;a0a8(bl(0x1c4)+(F||''));const G=a0Y();if(!G)return void a0aa(bl(0x23a));const H=G[bl(0x159)][bl(0x14a)],J=F?parseInt(F,-0x25*0x13+0x2*-0xa09+0x1*0x16db):G[bl(0x263)]||-0x14d+-0x180a+0x1958;Number['isNaN'](J)||J<0x10e6+-0x794+-0x1*0x951||J>H?a0aa(bl(0xf7)+H+'.'):j(G,J)?(D(G,J),console[bl(0x1c3)](),console['log'](a0L[bl(0x25a)](bl(0x289)+J+bl(0x3b7))),console['log']()):console[bl(0x1c3)](a0L[bl(0x25a)](bl(0x33f)+J+bl(0x240)));}),B[be(0x395)](be(0x1be))[be(0x11b)](be(0x2cb))[be(0x30d)](()=>{const bm=be;a0a8('exam\x20next');const F=a0Y();if(!F)return void a0aa(bm(0x23a));F[bm(0x159)][bm(0x113)](K=>!F[bm(0x358)][K[bm(0x3b8)]]);const G=F[bm(0x263)]||0x15e2+-0x10db+0x1*-0x506,H=Math['min'](G+(0x4*0x74d+0x50e+-0x2241),F[bm(0x159)][bm(0x14a)]);F['_lastQ']=H,a0Z(F);const J=F[bm(0x159)][H-(-0x123*0x9+0x1418+0x4ee*-0x2)];U(J,F['answers'][J[bm(0x3b8)]]);}),B[be(0x395)]('prev')['description']('Go\x20to\x20previous\x20question')[be(0x30d)](()=>{const bn=be;a0a8(bn(0x1df));const F=a0Y();if(!F)return void a0aa(bn(0x23a));const G=F[bn(0x263)]||0x95a+0x14eb+0x34*-0x95,H=Math[bn(0x209)](G-(-0x17f3+-0x2*0xd08+-0xc2*-0x42),0x217a*0x1+-0x1*0x141b+-0xd5e);F[bn(0x263)]=H,a0Z(F);const J=F[bn(0x159)][H-(0x2ff*0x7+0x57*0x47+-0x2d19)];U(J,F['answers'][J[bn(0x3b8)]]);}),B[be(0x395)](be(0x210))[be(0x11b)](be(0x327))[be(0x30d)](async()=>{const bo=be;a0a8(bo(0x30c));const F=a0Y();if(!F)return void a0aa('No\x20exam\x20in\x20progress.');const G=R(F),H=F[bo(0x263)]||-0x16e3+-0x148*0x1+0x1dc*0xd,J=G[bo(0x394)][H]||0x3*0x13b+0x1ef7*-0x1+0x1b46,K=G[bo(0x2ab)][H]||[],L=F[bo(0x159)][bo(0x19e)](W=>W['number']===H);if(!L)return;if(J>=-0x1*-0xad+0x35*0x16+-0x539)return console[bo(0x1c3)](),console['log'](a0L[bo(0x2f3)](bo(0x370))),console[bo(0x1c3)](a0L[bo(0x25a)](bo(0x290))),console[bo(0x1c3)](),void U(L,F['answers'][L[bo(0x3b8)]]);const Q=['A','B','C','D']['filter'](W=>!K[bo(0x1a4)](W));if(Q[bo(0x14a)]<=0x1f1e+0x1c10+-0x3b2c)return console[bo(0x1c3)](),console[bo(0x1c3)](a0L[bo(0x2f3)](bo(0x144))),console[bo(0x1c3)](),void U(L,F['answers'][L['number']]);if(G['used']>=G[bo(0x209)]){const W=G['max']>=-0x44e*-0x7+-0x622*-0x4+-0x368c,X=0x23ed+-0x1275+-0x8ad*0x2-G[bo(0x209)];return void(W?(console[bo(0x1c3)](),console[bo(0x1c3)](a0L[bo(0x25a)](bo(0x388)+G['used']+'/'+G[bo(0x209)]+bo(0x2db))),console[bo(0x1c3)]()):(console['log'](),console['log'](a0L['yellow']('\x20\x20Help\x20used:\x20'+G[bo(0x329)]+'/'+G['max'])),console['log'](a0L['white']('\x20\x20Need\x20more?\x20Type:\x20')+a0L['bold'][bo(0x2f3)]('more\x20help')+a0L[bo(0x25a)](bo(0x139)+X+'\x20bonus\x20uses)')),console['log']()));}const V=Y=>{const bp=bo;K[bp(0x1bb)](Y),G['eliminated'][H]||(G[bp(0x2ab)][H]=[]),G[bp(0x2ab)][H]=K,G['perQ'][H]=J+(0x15a*0x7+-0x4a3*-0x5+-0x20a4),G[bp(0x329)]++,F[bp(0x1f6)]=G[bp(0x329)],F[bp(0x334)]=G[bp(0x209)],F[bp(0x22b)]=G['perQ'],F['_eliminated']=G['eliminated'],F[bp(0x3b5)]||(F[bp(0x3b5)]=[]),F[bp(0x3b5)]['push']({'ts':new Date()[bp(0x18d)](),'q':H,'type':bp(0x102),'result':bp(0x2fe)+Y}),a0Z(F),console['log'](),console[bp(0x1c3)](a0L[bp(0x2f3)](bp(0x37b)+Y+bp(0x380))+a0L['gray'](bp(0x269)+G[bp(0x329)]+'/'+G[bp(0x209)]+')')),U(L,F[bp(0x358)][L[bp(0x3b8)]]);};if('demo-free'===F[bo(0x103)][bo(0x2ca)]&&L[bo(0x1cd)])(Y=>{const bq=bo,Z=Q[bq(0x2eb)](a0=>a0!==Y&&!K[bq(0x1a4)](a0));0x61*0x47+0x22f4+0x5*-0xc5f!==Z[bq(0x14a)]&&V(Z[Math['floor'](Math[bq(0x39f)]()*Z[bq(0x14a)])]);})(L[bo(0x1cd)]);else{const Y=a0W()[bo(0x1ed)]||bo(0x188),Z=F[bo(0x103)]?.[bo(0x362)]||'';try{const a0={};a0['Content-Type']=bo(0x36d),a0[bo(0x257)]=bo(0x28d);const a1={};a1[bo(0x362)]=Z,a1['question']=H,a1[bo(0x2ab)]=K;const a2=await fetch(Y+'/api/icoa/exams/'+F[bo(0x103)][bo(0x2ca)]+'/help',{'method':bo(0x2fa),'headers':a0,'body':JSON[bo(0x407)](a1),'signal':AbortSignal[bo(0x286)](0x2*0xd79+-0x93b*0x3+0x1d*0xb3)}),a3=await a2[bo(0x3ec)](),a4=a3?.[bo(0x326)]?.[bo(0x318)];a4&&['A','B','C','D']['includes'](a4)?V(a4):(console[bo(0x1c3)](),console['log'](a0L[bo(0x25a)](bo(0x260))));}catch{console[bo(0x1c3)](),console[bo(0x1c3)](a0L[bo(0x25a)](bo(0x31b)));}}}),B[be(0x395)]('more-help')[be(0x11b)](be(0x1fc))[be(0x30d)](()=>{const br=be;a0a8('exam\x20more-help');const F=a0Y();if(!F)return void a0aa(br(0x23a));const G=R(F),H='demo-free'===F[br(0x103)][br(0x2ca)]?-0x9a*0x1f+-0x1*-0x1+-0x2ab*-0x7:-0xcb2+0x1bfd+-0xf2d;if(G[br(0x209)]>=H)return void console['log'](a0L[br(0x25a)](br(0x3ed)));if(G[br(0x329)]<G[br(0x209)])return void console[br(0x1c3)](a0L[br(0x25a)](br(0x357)+(G[br(0x209)]-G['used'])+br(0x32d)));const J=H-G[br(0x209)];F[br(0x334)]=H,a0Z(F),console[br(0x1c3)](),console['log'](a0L[br(0x24b)](br(0x34f)+J+br(0x266)+J+'/'+H+br(0x155))),console[br(0x1c3)](a0L[br(0x25a)]('\x20\x20Type\x20\x22help\x22\x20on\x20any\x20question\x20to\x20use.')),console[br(0x1c3)]();}),B[be(0x395)](be(0x176))[be(0x11b)]('Answer\x20question\x20N\x20(A/B/C/D\x20for\x20MCQ,\x20ICOA{flag}\x20for\x20practical)')['action'](async(F,G)=>{const bs=be,H=G['join']('\x20');a0a8(bs(0x13d)+F+'\x20'+H);const J=a0Y();if(!J)return void a0aa(bs(0x243));if(!(function(){const bt=bs,Z=a0a1();if(!Z)return!(0x466*0x2+0x1d19+0x25e5*-0x1);if(new Date()>=Z){const a0=a0Y();if(a0){const a1=Object[bt(0x31e)](a0[bt(0x358)])[bt(0x14a)];bt(0x105)===a0[bt(0x103)][bt(0x2ca)]||-0x1f6b*-0x1+0x11a9+-0x3114===a1?(a0a0(),a0ab('Exam\x20expired\x20and\x20cleared.'),a0ac('Type:\x20demo\x20to\x20start\x20again.')):(a0aa(bt(0x1f2)),a0ac('Type\x20\x22exam\x20submit\x22\x20to\x20finalise\x20now,\x20or\x20the\x20server\x20will\x20auto-finalise\x20within\x2030\x20minutes.'));}return!(-0x73d+-0x1cf1+0x242f);}return!(-0x901*-0x1+0x3aa+-0xcab);}()))return;const K=parseInt(F,-0xcb1*0x1+0x3*-0x48d+-0x2*-0xd31),L=J[bs(0x159)][bs(0x19e)](Z=>Z[bs(0x3b8)]===K);if(!L)return void a0aa(bs(0x361)+F+bs(0x38e)+J[bs(0x159)][bs(0x14a)]+').');let Q;if(bs(0x1f3)===L[bs(0x216)]||'ctf4ai'===L['type']||bs(0x3c9)===L[bs(0x216)]||L[bs(0xfa)]&&!L[bs(0xfa)]['A']&&!L[bs(0xfa)]['B']){if(Q=H[bs(0x265)](),/^submit\s+/i['test'](Q)&&(Q=Q[bs(0x273)](/^submit\s+/i,'')['trim']()),Q=Q[bs(0x273)](/^["'`]+|["'`]+$/g,'')[bs(0x265)](),!Q)return void a0aa(bs(0x16b));if(/^[A-Da-d]$/[bs(0x198)](Q))return a0aa('Q'+K+bs(0x11f)),void console[bs(0x1c3)](a0L[bs(0x25a)]('\x20\x20Example:\x20')+a0L[bs(0x24b)](bs(0x13d)+K+bs(0x36c)));}else{if(Q=H[bs(0x1ce)](),!['A','B','C','D'][bs(0x1a4)](Q))return void a0aa(bs(0x3dd));}if(bs(0x105)===J[bs(0x103)][bs(0x2ca)]&&-0x61*-0x17+0xc*0x30+0x231*-0x5===K&&0x192*0x9+0x1d8f+-0x2bb1===(R(J)[bs(0x394)][0x5bb*-0x1+0x1*0x7d3+0xb2*-0x3]||0xb7*0x2+0x1d3d*-0x1+0x1bcf))return console[bs(0x1c3)](),console['log'](a0L[bs(0x2f3)](bs(0x2a6))+a0L[bs(0x2d4)][bs(0x2f3)](bs(0x210))+a0L['yellow'](bs(0x117))),console[bs(0x1c3)](a0L[bs(0x25a)](bs(0x135))),void console[bs(0x1c3)]();const V=J['answers'][K];J[bs(0x3b5)]||(J[bs(0x3b5)]=[]),J['interactions'][bs(0x1bb)]({'ts':new Date()['toISOString'](),'q':K,'type':V?bs(0x275):bs(0x3e6),'input':Q,'result':V?bs(0x185)+V:bs(0x1b0)}),J[bs(0x358)][K]=Q,J[bs(0x263)]=K,a0Z(J),console[bs(0x1c3)](a0L[bs(0x25a)](bs(0x305)));const W=J[bs(0x103)][bs(0x362)];if(W&&bs(0x105)!==J[bs(0x103)][bs(0x2ca)]){const Z=(a0W()['ctfdUrl']||bs(0x188))+bs(0x384)+J['session'][bs(0x2ca)]+'/answer',a0={};a0['Content-Type']=bs(0x36d);const a1={};a1['token']=W,a1['question']=K,a1['answer']=Q,fetch(Z,{'method':bs(0x2fa),'headers':a0,'body':JSON[bs(0x407)](a1),'signal':AbortSignal[bs(0x286)](-0xc*-0x1f6+-0xaba+0x6ba)})['catch'](()=>{});}const X=Object[bs(0x31e)](J[bs(0x358)])['length'],Y=J[bs(0x103)][bs(0x1a3)];if(a0a9('Q'+K+':\x20'+Q+'\x20✓\x20\x20('+X+'/'+Y+bs(0x3b1)),bs(0x105)===J['session'][bs(0x2ca)]&&L[bs(0x1cd)]){const a2=[bs(0x27e),'Solid\x20pick.','On\x20the\x20money.',bs(0x3ca),'Spot\x20on.'],a3=[bs(0x3e3),'Hmm,\x20worth\x20a\x20second\x20look\x20at\x20the\x20end.',bs(0x12c)],a4=Q===L[bs(0x1cd)]?a2:a3,a5=a4[Math[bs(0x363)](Math[bs(0x39f)]()*a4['length'])];console[bs(0x1c3)](a0L[bs(0x25a)]('\x20\x20\x20\x20·\x20'+a5));}if(K<J[bs(0x159)][bs(0x14a)]){const a6=J[bs(0x159)][K];J[bs(0x263)]=a6[bs(0x3b8)],a0Z(J),U(a6,J['answers'][a6[bs(0x3b8)]]);}else X>=J[bs(0x159)][bs(0x14a)]&&(console['log'](),console['log'](a0L[bs(0x24b)][bs(0x2d4)](bs(0x3b0))),console[bs(0x1c3)](),bs(0x105)===J[bs(0x103)]['examId']?(console[bs(0x1c3)](a0L['white']('\x20\x20Type\x20')+a0L['bold'][bs(0x114)](bs(0x3f6))+a0L['white']('\x20to\x20see\x20your\x20results!')),console[bs(0x1c3)]()):console[bs(0x1c3)](a0L[bs(0x2c4)](bs(0x2f6))));}),B[be(0x395)](be(0x1eb))[be(0x11b)](be(0x39e))['action'](()=>{const bu=be;a0a8(bu(0x219));const F=a0Y();if(!F)return void a0aa(bu(0x23a));a0ae('Review:\x20'+F[bu(0x103)]['examName']),O(),console[bu(0x1c3)]();let G='\x20\x20';const H=Array[bu(0x2cf)](F[bu(0x211)])?F[bu(0x211)]:[];for(const Q of F['questions']){const V=F[bu(0x358)][Q[bu(0x3b8)]],W=H[bu(0x1a4)](Q[bu(0x3b8)]),X=W?'★':'\x20';G+=V?W?a0L[bu(0x2d4)][bu(0x2f3)]('Q'+String(Q[bu(0x3b8)])[bu(0x147)](0x7f0*0x2+0x183b+-0x2819)+X+'['+V+']\x20'):a0L[bu(0x24b)]('Q'+String(Q['number'])[bu(0x147)](-0x13b*-0x3+-0x1*0x25b8+-0x1*-0x2209)+'\x20['+V+bu(0xf8)):W?a0L[bu(0x2d4)][bu(0x2f3)]('Q'+String(Q[bu(0x3b8)])['padStart'](0x9e*0x2e+0x1018+-0x2c7a)+X+bu(0x300)):a0L[bu(0x2f3)]('Q'+String(Q[bu(0x3b8)])[bu(0x147)](-0x2481+0x1ae*0x10+0x1*0x9a3)+'\x20[\x20]\x20\x20'),Q['number']%(-0x7cd+-0x1*-0xe90+-0xf*0x73)==-0x18fd+-0x7cd+0x20ca&&(console[bu(0x1c3)](G),G='\x20\x20');}G[bu(0x265)]()&&console[bu(0x1c3)](G);const J=Object[bu(0x31e)](F['answers'])['length'],K=F['session'][bu(0x1a3)],L=K-J;if(console[bu(0x1c3)](),a0af(bu(0x261),a0L[bu(0x24b)][bu(0x2d4)](J+'/'+K)),L>0x1d9*-0x15+-0x6c3+0x2d90){const Y=F[bu(0x159)]['filter'](Z=>!F['answers'][Z[bu(0x3b8)]])['map'](Z=>Z[bu(0x3b8)])['join'](',\x20');a0af(bu(0x154),a0L[bu(0x2f3)](L+bu(0x35d)+Y+')'));}H[bu(0x14a)]>-0xdd*-0x1c+-0x5*0x6a3+-0x301*-0x3&&a0af(bu(0x22c),a0L[bu(0x2d4)][bu(0x2f3)]('★\x20'+H[bu(0x14a)])+a0L['gray']('\x20('+H['map'](Z=>'Q'+Z)[bu(0x2cd)](',\x20')+')')),console[bu(0x1c3)](),H['length']>0x51*-0x15+0x163f+-0x7cd*0x2&&console[bu(0x1c3)](a0L[bu(0x25a)](bu(0x3e2))+a0L[bu(0x2c4)](bu(0x1b9)+H[-0xa61*0x1+-0x5d*-0x2+0x9a7])),console[bu(0x1c3)](a0L[bu(0x25a)](bu(0x251))+a0L[bu(0x2d4)]['cyan'](bu(0x3f6))+a0L['gray'](bu(0x175)));}),B['command'](be(0x18c))[be(0x11b)](be(0x2a9))[be(0x30d)](async(J,K)=>{const bv=be;a0a8('exam\x20submit\x20'+(J||'')+'\x20'+(K||''));const L=a0Y();if(L&&bv(0x268)===J&&!K&&(L[bv(0x375)]=!(-0x124b+-0x1609+0x2854),a0Z(L)),!L)return void a0aa(bv(0x23a));const Q=Object['keys'](L[bv(0x358)])[bv(0x14a)],V=L[bv(0x103)][bv(0x1a3)],W=V-Q;if(0x1ea8+0x11b9+0x5*-0x9ad===Q){const a0=a0a1(),a1=a0&&new Date()>=a0;return void(bv(0x105)===L[bv(0x103)][bv(0x2ca)]||a1?(a0a0(),a0ab(bv(0x18b)),a0ac(bv(0x181))):(a0ab('No\x20answers\x20to\x20submit.'),a0ac(bv(0x3be))));}const X=a0a1(),Y=!!(X&&new Date()>=X);if(bv(0x105)!==L[bv(0x103)][bv(0x2ca)]&&!Y&&bv(0x268)===J&&Q<-0x1*-0x2213+-0x1*-0x16a6+-0x38af){if((K||'')[bv(0x265)]()!==String(Q))return console[bv(0x1c3)](),console[bv(0x1c3)](a0L[bv(0x2f7)](bv(0x344))),console[bv(0x1c3)](a0L['bold']['red'](bv(0x1ec)+Q+'/'+V+bv(0x1e7))),console[bv(0x1c3)](a0L[bv(0x2f7)](bv(0x344))),console['log'](),console['log'](a0L[bv(0x2c4)](bv(0x2b9))+a0L[bv(0x2d4)]['yellow'](''+Q)+a0L[bv(0x2c4)]('\x20of\x20')+a0L[bv(0x2c4)](''+V)+a0L['white']('\x20questions.')),console[bv(0x1c3)](a0L['white']('\x20\x20Pass\x20threshold\x20is\x20typically\x2050%\x20—\x20')+a0L[bv(0x2d4)][bv(0x2f7)](Q+'/'+V+bv(0x2f9))),console[bv(0x1c3)](),console['log'](a0L['bold'][bv(0x2c4)](bv(0x2f0))),console[bv(0x1c3)](a0L[bv(0x25a)](bv(0x359))+a0L[bv(0x114)](bv(0x1ea))+a0L['gray'](bv(0x21e))),console['log'](a0L['gray'](bv(0x359))+a0L[bv(0x114)]('exam\x20review')+a0L['gray']('\x20\x20(see\x20which\x20questions\x20are\x20blank)')),console[bv(0x1c3)](),console[bv(0x1c3)](a0L[bv(0x2d4)][bv(0x2c4)]('\x20\x20If\x20you\x20really\x20want\x20to\x20submit\x20with\x20just\x20')+a0L[bv(0x2d4)][bv(0x2f3)](''+Q)+a0L['bold'][bv(0x2c4)](bv(0x30f))),console[bv(0x1c3)](a0L[bv(0x25a)](bv(0x359))+a0L[bv(0x2d4)][bv(0x114)]('exam\x20submit\x20confirm\x20'+Q)),console['log'](a0L['gray'](bv(0x252)+Q+';\x20this\x20prevents\x20accidents)')),console[bv(0x1c3)](),void(L[bv(0x375)]&&(delete L['_submitConfirmed'],a0Z(L)));L[bv(0x375)]=!(0x12d*0xe+-0x17f*0x1+0xef7*-0x1),a0Z(L);}if(bv(0x105)!==L[bv(0x103)][bv(0x2ca)]){const a2=!(-0xed7*0x2+-0x41*0x72+0x754*0x8)===L[bv(0x375)],a3=a0a1(),a4=!!(a3&&new Date()>=a3);if(!a2&&!a4){if(console[bv(0x1c3)](),console[bv(0x1c3)](a0L[bv(0x2f7)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console[bv(0x1c3)](a0L[bv(0x2d4)]['red'](bv(0x31c))),console['log'](a0L[bv(0x2f7)](bv(0x109))),console[bv(0x1c3)](),console[bv(0x1c3)](a0L['white'](bv(0x24d)+a0L[bv(0x2d4)]['green'](Q+'/'+V)+bv(0x3e1))),W>-0x1*0x9f9+-0x25a1+0x2f9a){const a6=L[bv(0x159)][bv(0x2eb)](a7=>!L['answers'][a7[bv(0x3b8)]])[bv(0x3f9)](a7=>'Q'+a7['number'])[bv(0x2cd)](',\x20');console[bv(0x1c3)](a0L[bv(0x2f3)]('\x20\x20'+W+bv(0x1cc)+a6));}const a5=Array[bv(0x2cf)](L[bv(0x211)])?L[bv(0x211)]:[];return a5[bv(0x14a)]>-0x1*-0x1753+-0x5*0x43+0x4*-0x581&&console['log'](a0L[bv(0x2f3)]('\x20\x20★\x20'+a5[bv(0x14a)]+bv(0x324)+a5['map'](a7=>'Q'+a7)[bv(0x2cd)](',\x20'))),console[bv(0x1c3)](),console[bv(0x1c3)](a0L[bv(0x2c4)]('\x20\x20Answers\x20are\x20')+a0L[bv(0x2d4)][bv(0x2f7)]('final')+a0L[bv(0x2c4)](bv(0x133))),console[bv(0x1c3)](),console['log'](a0L[bv(0x2d4)][bv(0x2c4)]('\x20\x20To\x20confirm:\x20\x20')+a0L[bv(0x2d4)]['cyan'](bv(0x3a7))),console[bv(0x1c3)](a0L[bv(0x2c4)](bv(0x1d9))+a0L[bv(0x114)](bv(0x219))+a0L['gray']('\x20\x20or\x20\x20')+a0L[bv(0x114)]('back')),void console[bv(0x1c3)]();}a2&&(delete L[bv(0x375)],a0Z(L));}if(console[bv(0x1c3)](),bv(0x105)===L['session'][bv(0x2ca)]){try{N(-0x2ed*0x5+-0x3*0xb2f+0x302e,a0ai(bv(0x123))),await q(0x1990+-0x879+-0x32f*0x5);let a7=0x1*-0x917+-0x1*-0xea5+-0x58e;const a8=[],a9={};for(const al of L[bv(0x159)]){const am=al[bv(0x2d5)]||'Other',an={};an[bv(0x402)]=0x0,an[bv(0x3a4)]=0x0,(a9[am]||(a9[am]=an),a9[am][bv(0x3a4)]++);const ao=L['answers'][al[bv(0x3b8)]];ao&&al[bv(0x1cd)]&&ao===al[bv(0x1cd)]?(a7++,a9[am]['correct']++):a8[bv(0x1bb)](al[bv(0x3b8)]);}a8[bv(0x142)]((ap,aq)=>ap-aq),N(0x1eac+0x2d1*-0x3+-0x747*0x3,a0ai(bv(0x31a))),console['log']();const aa=new Date(L[bv(0x103)][bv(0x2d8)])[bv(0x1c9)](),ab=Math[bv(0x209)](0x1b23*0x1+-0xfbd+0x5b3*-0x2,Math[bv(0xf0)]((Date[bv(0x3c2)]()-aa)/(0x2*-0xce3+0x21a+0x6e5*0x4))),ac=Math['floor'](ab/(-0x1ffc+0x1f7f*-0x1+-0x3*-0x153d))+'m\x20'+ab%(0x3*-0x7c9+0x2481+-0xcea)+'s',ad=[...L[bv(0x159)]],ae={...L[bv(0x358)]},af=R(L);a0a0();const ag=Math[bv(0xf0)](a7/V*(-0x1d10+-0xaca+-0xca*-0x33)),ah=a0W(),ai={};ai[bv(0x3d0)]=bv(0x36d),(fetch(bv(0x23d),{'method':bv(0x2fa),'headers':ai,'body':JSON[bv(0x407)]({'type':bv(0x19a),'score':a7,'total':V,'lang':ah[bv(0x2be)]||'en','help_used':af[bv(0x329)],'help_max':af['max'],'tokens_used':0x0,'solved':ag>=0x101*-0x5+-0x10ce+0x160f?0xca*0x31+0x5c*-0x59+-0x1*0x6ad:0x9*-0x219+-0x1*-0xaff+0x7e2,'timestamp':new Date()[bv(0x18d)](),'interactions':L['interactions']||[]}),'signal':AbortSignal[bv(0x286)](-0x1*0xb6f+0x2244+-0x34d)})[bv(0x308)](()=>{}),console[bv(0x1c3)](),console[bv(0x1c3)](a0L['cyan'](bv(0x2ad))),console[bv(0x1c3)](),console[bv(0x1c3)](a0L[bv(0x2d4)][bv(0x2c4)](bv(0x1d6))),console[bv(0x1c3)](a0L['bold'][bv(0x2c4)](bv(0x169))),console[bv(0x1c3)](a0L[bv(0x2d4)]['white']('\x20\x20\x20██║██║\x20\x20\x20\x20\x20██║\x20\x20\x20██║███████║')),console[bv(0x1c3)](a0L[bv(0x2d4)][bv(0x2c4)]('\x20\x20\x20██║██║\x20\x20\x20\x20\x20██║\x20\x20\x20██║██╔══██║')),console['log'](a0L[bv(0x2d4)][bv(0x2c4)](bv(0x356))),console[bv(0x1c3)](a0L[bv(0x2d4)][bv(0x2c4)]('\x20\x20\x20╚═╝\x20╚═════╝\x20╚═════╝\x20╚═╝\x20\x20╚═╝')),console[bv(0x1c3)](),console['log'](a0L['bold'](bv(0x1f1)+a0ai(bv(0x171))+':\x20'+a7+'/'+V+'\x20('+ag+'%)')),console[bv(0x1c3)](a0L[bv(0x2d4)](bv(0x1f1)+(ag>=0x87e+-0x1ef4+0x16b2?a0L[bv(0x24b)](a0ai(bv(0x2b7))):a0L[bv(0x2f7)](a0ai(bv(0x12f)))))),console['log'](a0L[bv(0x25a)](bv(0x368)+ac)),console['log'](),console[bv(0x1c3)](a0L['yellow'](bv(0x17e))),console[bv(0x1c3)](a0L[bv(0x25a)](bv(0x3b2))),console[bv(0x1c3)](),console[bv(0x1c3)](a0L[bv(0x114)](bv(0x2ad))),await q(0xde5*-0x1+-0xcf2*-0x2+-0x47));const aj=Object[bv(0x2b2)](a9);if(aj[bv(0x14a)]>0x227c+-0x2004*-0x1+-0x4280){console[bv(0x1c3)](),console[bv(0x1c3)](a0L['bold'][bv(0x2c4)]('\x20\x20By\x20category'));const ap=0x9c8+0x1507+-0x1*0x1ec5;for(const [aq,ar]of aj){const as=ar[bv(0x3a4)]>0x9*-0x265+-0xd6a+0x22f7?Math[bv(0xf0)](ar['correct']/ar['total']*(0x1481+0x1b36+-0x2f53)):-0x2252+0xc91+-0x15c1*-0x1,at=ar[bv(0x3a4)]>0x1094*0x1+0x1043+0x1*-0x20d7?Math[bv(0xf0)](ar[bv(0x402)]/ar[bv(0x3a4)]*ap):-0xdc7+0xe57*0x1+-0x90*0x1,au=ap-at,av=as>=0x13b4*-0x1+0x1fb4+0xbb0*-0x1?a0L[bv(0x24b)]:as>=-0x18d2+-0x3b4+0x1cb8?a0L[bv(0x2f3)]:a0L[bv(0x2f7)],aw=av('█'[bv(0x1ad)](at))+a0L[bv(0x25a)]('░'[bv(0x1ad)](au));console[bv(0x1c3)]('\x20\x20\x20\x20'+a0L[bv(0x2c4)](aq[bv(0x136)](-0x1f97+0x5*-0x617+0x3e1e*0x1))+'\x20'+aw+'\x20\x20'+av(ar[bv(0x402)]+'/'+ar[bv(0x3a4)])+a0L[bv(0x25a)]('\x20('+as+'%)'));}console[bv(0x1c3)](),console[bv(0x1c3)](a0L[bv(0x114)](bv(0x276)));}const ak=a0a4(a7,V);if(a7===ak[bv(0x279)]&&ak[bv(0x25b)]>0xb6+0x1*0x21f3+-0x22a8*0x1&&a7>-0x3f9+-0x5d5*0x1+-0x9ce*-0x1&&(console['log'](),console[bv(0x1c3)](a0L[bv(0x2d4)][bv(0x24b)](bv(0x3c5)))),a8[bv(0x14a)]>0xbdf+-0x7*-0x516+-0x2f79){const ax=ad[bv(0x2eb)](ay=>a8['includes'](ay[bv(0x3b8)]))[bv(0x3f9)](ay=>({...ay}));a0a5(ax);}else a0a7();if(await q(-0x1d65+0x250+0x26cd),a8['length']>-0x6ac*-0x1+-0x163+-0x7b*0xb){console[bv(0x1c3)](),console[bv(0x1c3)](a0L[bv(0x2f3)]('\x20\x20'+a8['length']+'\x20'+a0ai('incorrectIntro'))),console[bv(0x1c3)]();for(const ay of a8){const az=ad[bv(0x19e)](aC=>aC['number']===ay);if(!az)continue;const aA=ae[ay],aB=az[bv(0x1cd)];console[bv(0x1c3)](a0L[bv(0x2c4)]('\x20\x20Q'+ay+'.\x20'+az[bv(0x3fe)])),aA?console['log'](a0L[bv(0x2f7)](bv(0x359)+a0ai(bv(0x119))+':\x20'+aA+'.\x20'+az[bv(0xfa)][aA])):console[bv(0x1c3)](a0L['yellow']('\x20\x20\x20\x20'+a0ai(bv(0x119))+bv(0x35f))),aB&&console['log'](a0L['green']('\x20\x20\x20\x20'+a0ai(bv(0x402))+':\x20'+aB+'.\x20'+az['options'][aB])),az[bv(0x379)]&&console['log'](a0L[bv(0x25a)](bv(0x239)+az['explanation'])),console[bv(0x1c3)]();}}else console[bv(0x1c3)](),console[bv(0x1c3)](a0L[bv(0x24b)]('\x20\x20'+a0ai('perfectScore')));await q(0x53b*0x7+-0x1bce+-0xf*0x11),console[bv(0x1c3)](),console[bv(0x1c3)](a0L[bv(0x114)](bv(0x276))),console[bv(0x1c3)](a0L['white']('\x20\x20'+a0ai(bv(0x3fc))+'\x20')+a0L[bv(0x2d4)][bv(0x24b)]('ai4ctf')+a0L['gray'](bv(0x1ab)+a0ai(bv(0x15e)))),console[bv(0x1c3)](a0L[bv(0x25a)]('\x20\x20'+a0ai('ai4ctfSub'))),console[bv(0x1c3)](a0L[bv(0x114)](bv(0x276))),console[bv(0x1c3)]();}catch(aC){console[bv(0x1c3)](),a0aa(aC[bv(0x3a1)]);}return;}const Z=L['session'][bv(0x362)];try{let aD;if(N(-0xbd9+0xb2*-0x11+0x1*0x17ab,bv(0x342)),Z){const aN={};aN[bv(0x3d0)]='application/json';const aO={};aO[bv(0x1f3)]=0x0,aO[bv(0x264)]=0x0;const aP=a0W()['ctfdUrl']||'https://practice.icoa2026.au',aQ=await fetch(aP+bv(0x384)+L[bv(0x103)][bv(0x2ca)]+bv(0x338),{'method':bv(0x2fa),'headers':aN,'body':JSON[bv(0x407)]({'token':Z,'answers':L[bv(0x358)],'interactions':L[bv(0x3b5)]||[],'aiUsage':L[bv(0x285)]||aO,'bookmarks':L[bv(0x211)]||[]}),'signal':AbortSignal['timeout'](-0x22d3+0x1967*-0x3+0xa9a0)});if(!aQ['ok']){const aR=await aQ[bv(0x3ec)]()[bv(0x308)](()=>({'message':bv(0x3db)}));throw new Error(aR[bv(0x3a1)]||'Submit\x20failed');}aD=(await aQ[bv(0x3ec)]())[bv(0x326)];}else{const aS=M();if(!aS)return;aD=await aS[bv(0x30b)](L['session'][bv(0x2ca)],L[bv(0x358)]);}N(-0x1970+-0x2226+0x3bc8,bv(0x2a7)),await q(-0x1465+-0x1*-0x10c1+0x4d0),N(0x1ff2+-0x22df+0x351,'Complete!'),console[bv(0x1c3)]();const aE={};aE[bv(0x1f3)]=0x0,aE['ctf4ai']=0x0;const aF={'answered':Object[bv(0x31e)](L[bv(0x358)])['length'],'total':L[bv(0x103)][bv(0x1a3)],'bookmarks':Array['isArray'](L[bv(0x211)])?L[bv(0x211)][bv(0x14a)]:0xf02*-0x2+0x1d*-0xe5+-0xb31*-0x5,'help':R(L),'aiUsage':L[bv(0x285)]||aE,'interactions':(L[bv(0x3b5)]||[])[bv(0x14a)],'durationMin':L['session'][bv(0x15b)]||-0xe8d+0xd62+-0x12b*-0x1,'confirmedAt':L['session']['confirmedAt']||L[bv(0x103)][bv(0x2d8)],'examId':L[bv(0x103)][bv(0x2ca)]};a0a0();const aG=Math[bv(0x209)](0x1199+-0xbe6+0x1*-0x5b3,Math[bv(0xf0)]((Date[bv(0x3c2)]()-new Date(aF['confirmedAt'])[bv(0x1c9)]())/(0x20a+-0x16c9+0x18a7))),aH=Math[bv(0x363)](aG/(0x4*-0x58d+0xed8+-0x6c*-0x12)),aI=aG%(-0xa6a*0x3+-0x1*0x23d3+0x434d);console[bv(0x1c3)](),console[bv(0x1c3)](a0L[bv(0x114)](bv(0x167))),console[bv(0x1c3)](),console['log'](a0L[bv(0x2d4)][bv(0x2c4)](bv(0x1d6))),console[bv(0x1c3)](a0L[bv(0x2d4)][bv(0x2c4)](bv(0x169))),console[bv(0x1c3)](a0L[bv(0x2d4)][bv(0x2c4)](bv(0x29c))),console[bv(0x1c3)](a0L[bv(0x2d4)][bv(0x2c4)](bv(0x126))),console['log'](a0L['bold'][bv(0x2c4)]('\x20\x20\x20██║╚██████╗╚██████╔╝██║\x20\x20██║')),console['log'](a0L[bv(0x2d4)][bv(0x2c4)]('\x20\x20\x20╚═╝\x20╚═════╝\x20╚═════╝\x20╚═╝\x20\x20╚═╝')),console[bv(0x1c3)]();const aJ=aD[bv(0x2b7)]?a0L['green'][bv(0x2d4)](bv(0x158)):a0L[bv(0x2f3)][bv(0x2d4)](bv(0x3fb));console[bv(0x1c3)](aJ),console[bv(0x1c3)](),console[bv(0x1c3)](a0L[bv(0x2c4)](bv(0x1c0))),console[bv(0x1c3)](a0L[bv(0x2c4)](bv(0x2ba))),console[bv(0x1c3)](a0L[bv(0x2c4)](bv(0x2d0))),console[bv(0x1c3)](),console['log'](a0L[bv(0x114)](bv(0x276))),console['log'](),console[bv(0x1c3)](a0L['bold'][bv(0x2c4)]('\x20\x20Your\x20run'));const aK=aF[bv(0x3a4)]-aF[bv(0x232)];console[bv(0x1c3)]('\x20\x20\x20\x20'+a0L[bv(0x25a)](bv(0x1f8))+a0L['white'](aF['answered']+'/'+aF[bv(0x3a4)])+(aK>0x24b5+0x1*-0x165a+-0xe5b?a0L[bv(0x25a)](bv(0x1b8)+aK+'\x20skipped'):'')),console[bv(0x1c3)](bv(0x359)+a0L[bv(0x25a)](bv(0x328))+a0L[bv(0x2c4)](aH+'m\x20'+aI+'s')+a0L['gray'](bv(0x206)+aF[bv(0x250)]+bv(0x14d))),aF[bv(0x211)]>0x771*-0x3+-0x233b+0x398e&&console[bv(0x1c3)](bv(0x359)+a0L[bv(0x25a)](bv(0x322))+a0L[bv(0x2f3)]('★\x20'+aF[bv(0x211)])),console[bv(0x1c3)]();const aL=aD['categoryStats'];if(aL&&Object[bv(0x31e)](aL)[bv(0x14a)]>=0xea1+0x1526+-0x23c5){const aT=Object[bv(0x2b2)](aL)[bv(0x2eb)](([,aY])=>aY[bv(0x3a4)]>0x70c+-0x2655+0x1*0x1f49)['map'](([aY,aZ])=>({'cat':aY,'pct':aZ[bv(0x402)]/aZ[bv(0x3a4)]}))[bv(0x142)]((aY,aZ)=>aZ['pct']-aY[bv(0x34e)]),aU=Math[bv(0x372)](0x2eb+-0x25e5+-0x22fc*-0x1,Math[bv(0x25f)](aT[bv(0x14a)]/(-0x5*0x101+0x1117+-0xc0f))),aV=Math[bv(0x372)](0xe75+0x1a*0x6+-0xf0f,Math[bv(0x25f)](aT['length']/(-0xbd2+-0xfb1+0xdc3*0x2))),aW=aT[bv(0x34d)](-0x7*-0x235+0x971*0x2+-0x2255,aU)[bv(0x3f9)](aY=>aY[bv(0x37d)]),aX=aT['slice'](-aV)[bv(0x3f9)](aY=>aY[bv(0x37d)]);aW[bv(0x336)](aY=>aX['includes'](aY))||(console[bv(0x1c3)](a0L[bv(0x2d4)][bv(0x2c4)](bv(0x30e))),console['log'](bv(0x359)+a0L[bv(0x24b)](bv(0x227))+a0L[bv(0x2c4)](aW[bv(0x2cd)](',\x20'))),console[bv(0x1c3)](bv(0x359)+a0L[bv(0x2f3)](bv(0x28f))+a0L[bv(0x2c4)](aX[bv(0x2cd)](',\x20'))),console[bv(0x1c3)](a0L[bv(0x25a)](bv(0x124))),console[bv(0x1c3)]());}console[bv(0x1c3)](a0L[bv(0x2d4)]['white'](bv(0x164))),console[bv(0x1c3)](bv(0x359)+a0L[bv(0x25a)](bv(0xf5))+a0L[bv(0x2c4)](aF['help'][bv(0x329)]+'/'+aF[bv(0x210)][bv(0x209)])),console[bv(0x1c3)](bv(0x359)+a0L['gray'](bv(0x1e8))+a0L[bv(0x2c4)](aF[bv(0x285)][bv(0x1f3)]+bv(0x355))+a0L[bv(0x25a)](bv(0x1b8))+a0L[bv(0x2c4)](aF['aiUsage']['ctf4ai']+bv(0x2d3))),console['log'](),console[bv(0x1c3)](a0L[bv(0x114)](bv(0x276))),console[bv(0x1c3)](),console[bv(0x1c3)](a0L[bv(0x2d4)][bv(0x2c4)](bv(0x2b6))),console[bv(0x1c3)](a0L[bv(0x25a)]('\x20\x20·\x20Your\x20national\x20organizer\x20will\x20announce\x20selection\x20results.')),console['log'](a0L[bv(0x25a)](bv(0x192))+a0L[bv(0x2c4)](bv(0x3a3))+a0L[bv(0x25a)](bv(0x1da))),console[bv(0x1c3)](a0L['gray'](bv(0x20c))+a0L[bv(0x2c4)](bv(0x317))),console[bv(0x1c3)]();const {showCToBUpgradePrompt:aM}=await import('../lib/paper-upgrade.js');aM(aF['examId'],aD[bv(0x2b7)]),console['log'](a0L[bv(0x2f3)](bv(0x3bf))),console[bv(0x1c3)](a0L[bv(0x114)]['underline'](bv(0x184))),console['log'](),console[bv(0x1c3)](a0L['cyan'](bv(0x167))),console[bv(0x1c3)]();}catch(aY){console['log'](),a0aa(aY['message']);}}),B[be(0x395)]('result\x20[id]')[be(0x11b)](be(0x307))[be(0x30d)](async F=>{const bw=be;a0a8('exam\x20result\x20'+(F||''));const G=M();if(!G)return;if(!F){const J=a0Y();if(!J)return void a0aa(bw(0x3df));F=J[bw(0x103)][bw(0x2ca)];}const H=a0ag('Loading\x20result...');H['start']();try{const K=await G[bw(0x315)](F);H[bw(0x101)]('Result\x20loaded'),console['log'](),a0ae(K[bw(0x302)]),a0af('Score',a0L['bold'](K[bw(0x171)]+'/'+K[bw(0x3a4)])),a0af(bw(0x39c),a0L[bw(0x2d4)](K[bw(0x253)]+'%')),a0af(bw(0x33b),K[bw(0x2b7)]?a0L[bw(0x24b)][bw(0x2d4)](bw(0x1f4)):a0L['red'][bw(0x2d4)](bw(0x3d5))),a0af(bw(0x17c),K[bw(0x1d2)]),console[bw(0x1c3)]();}catch(L){H[bw(0x179)](bw(0x218)),a0aa(L[bw(0x3a1)]);}}),B[be(0x395)](be(0x313))[be(0x11b)](be(0x378))[be(0x30d)](async J=>{const bx=be;a0a8('exam\x20token\x20'+J);const {getRealExamState:K,saveExamState:L,clearExamState:Q}=await import('../lib/exam-state.js'),V=K();if(V){const a2=V[bx(0x103)][bx(0x362)],a3=a0a1(),a4=!!a2&&a2[bx(0x265)]()[bx(0x1ce)]()!==J['trim']()[bx(0x1ce)](),a5=!!a3&&a3['getTime']()+(-0x13f67a+0x2eda79+0xd63*0xb)<Date['now']();if(a4&&a5)return Q(),console[bx(0x1c3)](),console[bx(0x1c3)](a0L[bx(0x25a)](bx(0x335))),console[bx(0x1c3)](),console[bx(0x1c3)](a0L[bx(0x2c4)](bx(0x21d))+a0L[bx(0x2d4)][bx(0x114)](bx(0x258)+J)),void console[bx(0x1c3)]();if(!a2&&J)return V['session'][bx(0x362)]=J[bx(0x265)](),L(V),console['log'](),console[bx(0x1c3)](a0L[bx(0x24b)](bx(0x254))),console[bx(0x1c3)](a0L[bx(0x25a)](bx(0x3c8))+a0L[bx(0x2c4)](bx(0x34a))+a0L[bx(0x25a)](bx(0x2e5))+a0L['white'](bx(0x3f6))),console['log'](),console[bx(0x1c3)](a0L[bx(0x2d4)][bx(0x2c4)]('\x20\x20Continue\x20this\x20exam:')),console[bx(0x1c3)](a0L[bx(0x25a)]('\x20\x20\x20\x20→\x20')+a0L['bold'][bx(0x114)](bx(0x1ea))+a0L['gray'](bx(0x127))),console[bx(0x1c3)](a0L[bx(0x25a)](bx(0x239))+a0L[bx(0x2d4)]['cyan'](bx(0x219))+a0L['gray'](bx(0xfc))),void console['log']();const a6=Object[bx(0x31e)](V[bx(0x358)])[bx(0x14a)],a7=V[bx(0x103)][bx(0x1a3)],a8=a0a1(),a9=a8?Math[bx(0x209)](0x25a5+0x900+-0x2ea5,Math[bx(0xf0)]((a8['getTime']()-Date[bx(0x3c2)]())/(-0x15ab6+-0xec87+-0x25*-0x1619))):null;return console[bx(0x1c3)](),console[bx(0x1c3)](a0L['yellow'](bx(0x346))),console[bx(0x1c3)](),console['log'](a0L[bx(0x25a)]('\x20\x20Exam:\x20\x20\x20\x20')+a0L[bx(0x2c4)](V[bx(0x103)][bx(0x302)])),a2&&console[bx(0x1c3)](a0L[bx(0x25a)](bx(0x37f))+a0L[bx(0x2c4)](a2)+(a2===J?a0L[bx(0x24b)](bx(0x13f)):a0L[bx(0x2f3)](bx(0x31f)))),console[bx(0x1c3)](a0L[bx(0x25a)](bx(0xf2))+a0L[bx(0x2c4)](a6+'/'+a7)),null!==a9&&console[bx(0x1c3)](a0L['gray'](bx(0x2c7))+a0L[bx(0x2c4)](a9+bx(0x3c0))),console['log'](),console[bx(0x1c3)](a0L[bx(0x2d4)]['white'](bx(0x2ce))),console[bx(0x1c3)](a0L[bx(0x25a)](bx(0x239))+a0L['bold'][bx(0x114)](bx(0x1ea))+a0L[bx(0x25a)]('\x20\x20\x20\x20\x20\x20resume\x20at\x20any\x20question')),console[bx(0x1c3)](a0L[bx(0x25a)](bx(0x239))+a0L['bold'][bx(0x114)]('exam\x20review')+a0L[bx(0x25a)]('\x20\x20\x20see\x20progress\x20+\x20flagged\x20items')),console[bx(0x1c3)](a0L[bx(0x25a)](bx(0x239))+a0L[bx(0x2d4)][bx(0x114)](bx(0x3f6))+a0L[bx(0x25a)]('\x20\x20\x20finish\x20and\x20submit')),a2&&a2!==J&&(console[bx(0x1c3)](),console[bx(0x1c3)](a0L[bx(0x2f3)](bx(0x1d4))),console[bx(0x1c3)](a0L[bx(0x2f3)](bx(0x3b3))),console[bx(0x1c3)](),console[bx(0x1c3)](a0L['gray'](bx(0x1db))),console[bx(0x1c3)](a0L['gray'](bx(0x34c))+a0L['bold'][bx(0x114)](bx(0x187))+a0L[bx(0x25a)]('\x20to\x20wipe\x20local\x20state,\x20then\x20re-enter\x20the\x20new\x20token.'))),void console[bx(0x1c3)]();}const {isNativeWindowsCmd:W}=await import('../lib/platform.js');if(!W()&&!a0am()){let aa=!(0x2*0x48a+-0x32d+0x12e*-0x5);try{const ab={};ab[bx(0x3d0)]=bx(0x36d);const ac=a0W()[bx(0x1ed)]||bx(0x188),ad=await fetch(ac+bx(0x1fa),{'method':bx(0x2fa),'headers':ab,'body':JSON[bx(0x407)]({'token':J[bx(0x265)](),'deviceHash':a0aj(),'peek':!(-0x569*0x1+-0x22b5*0x1+0x316*0xd)}),'signal':AbortSignal['timeout'](-0x1e01*-0x1+-0x2039+0x1*0x15c0)});if(ad['ok']){const ae=await ad[bx(0x3ec)]();(ae?.['data']?.[bx(0x23f)]||'')['endsWith']('-c')&&(aa=!(-0xa*0x22f+0x1193+-0x443*-0x1));}}catch{}if(!aa)return console[bx(0x1c3)](),a0ab(bx(0x3fa)),console[bx(0x1c3)](a0L[bx(0x25a)]('\x20\x20→\x20')+a0L['bold']['cyan']('exam\x20setup')),console[bx(0x1c3)](a0L[bx(0x25a)]('\x20\x20Or\x20type\x20')+a0L['bold'][bx(0x114)](bx(0x287))+a0L[bx(0x25a)](bx(0xf1))),console['log'](a0L[bx(0x25a)](bx(0x2d7))),void console[bx(0x1c3)]();}const X={};X['UA']='uk',X['PE']='es',X['CN']='zh',X['AU']='en',X['JP']='ja',X['KR']='ko',X['BR']='pt',X['SA']='ar',X['FR']='fr',X['DE']='de',X['IN']='hi',X['ID']='id',X['TH']='th',X['VN']='vi',X['TR']='tr',X['RU']='ru',X['EG']='ar',X['HT']='ht',X['PH']='en',X['MY']='en',X['MM']='en',X['SG']='en',X['ZA']='en',X['KE']='sw',X['TZ']='sw',X['MO']='zh',X['UZ']='uz',X['GH']='en',X['LA']='lo',X['BD']='bn',X['BI']='fr',X['US']='en',X['UK']='en',X['NZ']='en',X['LK']='si';const Y=X[J[bx(0x265)]()['substring'](-0x1467+-0x2089+0x34f0,-0x250a+0xf2e+0x15de)['toUpperCase']()],Z=a0W(),a0=Z[bx(0x1ed)]||'https://practice.icoa2026.au',a1=Y||Z[bx(0x2be)]||'en';Y&&Y!==(Z[bx(0x2be)]||'en')&&a0X({'language':Y}),console[bx(0x1c3)](),N(0xa7*-0x19+-0xb7*0x7+0x1550,bx(0x15f));try{const af={};af[bx(0x3d0)]=bx(0x36d);const ag=await fetch(a0+bx(0x1fa),{'method':bx(0x2fa),'headers':af,'body':JSON['stringify']({'token':J['trim'](),'deviceHash':a0aj(),'lang':a1}),'signal':AbortSignal[bx(0x286)](-0x3829+-0x1*0x11c2+0x70fb)});if(!ag['ok']){N(-0x13f3+0x309+0x10ea,''),console['log']();const ao=await ag[bx(0x3ec)]()[bx(0x308)](()=>({'message':'Invalid\x20token'}));return a0aa(ao['message']||bx(0x2a4)),void a0ac('Check\x20your\x20token\x20or\x20contact\x20your\x20proctor.');}N(-0x81*0xe+0x1103+-0xe5*0xb,bx(0x231));const ah=await ag[bx(0x3ec)](),{session:ai,questions:aj,languages:ak}=ah[bx(0x326)];N(0x245e+-0x191f*-0x1+-0x3d41,'Preparing...'),await q(0x1724+0x2*-0xd85+-0x4ae*-0x1),N(-0x1eaa+0x2bd*0x7+0x11*0xb3,'Ready!'),console[bx(0x1c3)](),console[bx(0x1c3)](),a0ae(ai[bx(0x302)]),console[bx(0x1c3)](),a0af(bx(0x130),ai[bx(0x1a3)]+bx(0x1a1)),a0af(bx(0x32a),ai[bx(0x15b)]+bx(0x33a)),a0af(bx(0x11c),(ai['totalScore']||-0x14b9+0x1d6+-0x1379*-0x1)+bx(0x3dc)),a0af(bx(0x3ce),(ai['passingScore']||-0x43f+-0x1*-0x1e29+0x199f*-0x1)+bx(0x21c)),console['log'](),console[bx(0x1c3)](a0L[bx(0x2c4)](bx(0x1d7))),console['log'](a0L[bx(0x2c4)](bx(0x3b9))),console[bx(0x1c3)](a0L[bx(0x2c4)](bx(0x15c))),console[bx(0x1c3)](a0L['white'](bx(0x22d))),ak&&ak[bx(0x14a)]>-0x1*0x1c0e+0xc24+0x5*0x32f&&console['log'](a0L[bx(0x2c4)](bx(0x26c)+ak['join'](',\x20')+bx(0x29a))),console['log'](),console[bx(0x1c3)](a0L[bx(0x2f3)](bx(0x1ff))),console['log'](a0L[bx(0x2c4)](bx(0x2c2))),console[bx(0x1c3)](a0L[bx(0x2c4)](bx(0x1f0))),console[bx(0x1c3)](a0L['white'](bx(0x140))),console[bx(0x1c3)](),await new Promise(ap=>{const by=bx;process[by(0x3ea)][by(0x2b8)](a0L[by(0x2d4)]['yellow'](by(0x37c)));const aq=!!process[by(0x309)][by(0x199)]&&process[by(0x309)][by(0x1e6)];process[by(0x309)]['isTTY']&&process[by(0x309)]['setRawMode']&&process[by(0x309)]['setRawMode'](!(-0x1a02+-0x20b1*0x1+-0x121*-0x34));const ar=as=>{const bz=by,at=as[bz(0x25e)]();(at['includes']('\x0a')||at['includes']('\x0d'))&&(process[bz(0x309)][bz(0x1a9)]('data',ar),process[bz(0x309)][bz(0x199)]&&process[bz(0x309)][bz(0x23c)]&&process[bz(0x309)][bz(0x23c)](aq),process[bz(0x3ea)][bz(0x2b8)]('\x0a'),ap());};process[by(0x309)]['on'](by(0x326),ar),process[by(0x309)][by(0x207)]();});const al=new Date()[bx(0x18d)]();ai[bx(0x27c)]=al,ai[bx(0x362)]=J[bx(0x265)]();try{const ap=Date[bx(0x3c2)](),aq=await fetch(a0+bx(0x17f),{'method':bx(0x267),'signal':AbortSignal[bx(0x286)](-0x1d24+-0x1*-0x981+-0x1f5b*-0x1)});if(aq['ok']){const ar=await aq['json'](),as=ar?.[bx(0x326)]?.[bx(0x390)];if('number'==typeof as&&as>-0x631*0x1+0x10eb*-0x2+-0x2807*-0x1){const at=(ap+Date[bx(0x3c2)]())/(0x1cb4+0x11d*0x1d+-0x3cfb);ai[bx(0x298)]=Math[bx(0xf0)](as-at),ai[bx(0x111)]=as+(-0x1*-0x2601+0x16af+-0x3c74)*ai[bx(0x15b)]*(0x1dc0+0x1ad*-0x1+-0x10d*0x17);}}}catch{}const am={};am[bx(0x1f3)]=0x0,am[bx(0x264)]=0x0;const an={};an[bx(0x103)]=ai,an[bx(0x159)]=aj,an[bx(0x358)]={},an[bx(0x3b5)]=[],an[bx(0x285)]=am,(a0Z(an),console[bx(0x1c3)](),a0a9(bx(0x2af)),a0af(bx(0x3a0),ai['durationMinutes']+bx(0x1dc)),aj['length']>-0x73f+0x1431*0x1+0x679*-0x2&&U(aj[0x3*0x1c+-0xa87+0xa33]));}catch(au){console[bx(0x1c3)](),bx(0x35e)===au[bx(0x3b6)]?a0aa(bx(0x3a6)):a0aa(au[bx(0x3a1)]||bx(0x12a));}}),B['command'](be(0x19c),{'hidden':!(0x1ceb+-0x1e2*-0x7+-0x2a19)})[be(0x11b)]('Abandon\x20current\x20exam\x20session\x20and\x20wipe\x20local\x20state\x20(recovery\x20only)')[be(0x30d)](async()=>{const bA=be;a0a8(bA(0x187));const {getRealExamState:F,clearExamState:G}=await import(bA(0x174)),H=F();if(!H)return console['log'](),console[bA(0x1c3)](a0L[bA(0x25a)](bA(0x2bf))),void console['log']();const J=H[bA(0x103)][bA(0x362)];console['log'](),console[bA(0x1c3)](a0L['yellow'](bA(0x376))),console['log'](a0L[bA(0x25a)](bA(0x340))+a0L[bA(0x2c4)](H[bA(0x103)][bA(0x302)])),J&&console[bA(0x1c3)](a0L[bA(0x25a)](bA(0x1ac))+a0L[bA(0x2c4)](J)),console[bA(0x1c3)](a0L['gray'](bA(0x197))),console['log'](a0L[bA(0x25a)](bA(0x1c1))),console[bA(0x1c3)](),console[bA(0x1c3)](a0L['gray'](bA(0x2a0))+a0L[bA(0x2d4)][bA(0x114)](bA(0x19c))+a0L['gray'](bA(0x10c)));const {getMainRl:K}=await import(bA(0x157)),L=K();if(bA(0x19c)!==(await new Promise(Q=>{const bB=bA;if(L){const V=L[bB(0x195)](bB(0x360))[bB(0x34d)]();L['removeAllListeners'](bB(0x360)),L['setPrompt'](bB(0x1ef)),L[bB(0x230)](),L[bB(0x36a)](bB(0x360),W=>{const bC=bB;for(const X of V)L['on']('line',X);Q(W[bC(0x265)]());});}else((async()=>{const bD=bB,W={};W[bD(0x24f)]=process[bD(0x309)],W[bD(0x11e)]=process[bD(0x3ea)];const {createInterface:X}=await import(bD(0x347)),Y=X(W);Y['question'](bD(0x1ef),Z=>{const bE=bD;Y['close'](),Q(Z[bE(0x265)]());});})());}))[bA(0x2bd)]())return console[bA(0x1c3)](a0L['gray'](bA(0x1b5))),void console[bA(0x1c3)]();G(),console['log'](),console[bA(0x1c3)](a0L[bA(0x24b)](bA(0x28b))),console[bA(0x1c3)](a0L['gray'](bA(0x374))+a0L[bA(0x2d4)]['cyan'](bA(0x2b5))),console[bA(0x1c3)]();}),B[be(0x395)](be(0x3a3))[be(0x11b)](be(0x39a))[be(0x30d)](async()=>{const bF=be;a0a8('exam\x20demo'),E(bF(0x1a6));const {pickDemoQuestions:F,getLocalizedDemoSession:G,DEMO_PICK_SIZE:H,DEMO_POOL_SIZE:J}=await import('../lib/demo-exam.js');a0W()[bF(0x316)]||(await(async function(){const bG=bF;let a0=!(0x681+-0x35f*0x9+0x17d7);const a1=process['stdin'],a2=()=>{a0=!(0x346*0x9+0xa06+-0x277c);},a3=a1[bG(0x199)]&&bG(0x170)==typeof a1[bG(0x23c)];a3&&(a1['setRawMode'](!(-0x1cb2+-0xca3+0x2955)),a1[bG(0x207)](),a1[bG(0x36a)]('data',a2));const a4=async a5=>{let a6=0xb9a+-0x7*-0x551+-0x30d1;for(;a6<a5&&!a0;)await q(0x2580+0xd87*0x2+-0x403e),a6+=0x1e17*-0x1+0x1*0x257e+-0x1*0x717;};try{if(console['clear'](),console[bG(0x1c3)](),console[bG(0x1c3)](a0L[bG(0x25a)](bG(0x1f1))+a0L[bG(0x274)]('(press\x20any\x20key\x20to\x20skip)')),console['log'](),console['log'](a0L['bold'][bG(0x2c4)]('\x20\x20\x20██╗\x20██████╗\x20██████╗\x20\x20█████╗')),console['log'](a0L[bG(0x2d4)][bG(0x2c4)](bG(0x169))),console[bG(0x1c3)](a0L[bG(0x2d4)][bG(0x2c4)](bG(0x29c))),console[bG(0x1c3)](a0L[bG(0x2d4)][bG(0x2c4)](bG(0x126))),console[bG(0x1c3)](a0L['bold'][bG(0x2c4)]('\x20\x20\x20██║╚██████╗╚██████╔╝██║\x20\x20██║')),console['log'](a0L[bG(0x2d4)][bG(0x2c4)](bG(0x26f))),console['log'](),console[bG(0x1c3)](a0L[bG(0x2d4)]['yellow'](bG(0x1c8))),console[bG(0x1c3)](a0L[bG(0x25a)]('\x20\x20\x20Sydney,\x20Australia\x20\x20·\x20\x20Jun\x2027\x20–\x20Jul\x202,\x202026')),await a4(0x2147+-0x23d2+0xc4f*0x1),a0)return;if(console[bG(0x1c3)](),console['log'](a0L['white']('\x20\x20\x20What\x20you\x27ll\x20do\x20today:')),console['log'](),await a4(-0x13b*-0xd+-0xb*0x2e3+0x121a),a0)return;if(console['log'](a0L[bG(0x114)](bG(0x3d3))+a0L['white']('Answer\x2010\x20quick\x20questions')+a0L[bG(0x25a)](bG(0x262))),await a4(0x128c+0x178*0x3+-0x1438*0x1),a0)return;if(console['log'](a0L[bG(0x24b)](bG(0x3d3))+a0L['white'](bG(0x3cb))+a0L[bG(0x25a)](bG(0x1ba))),await a4(0x2226*-0x1+0x4f3+0x1fef),a0)return;if(console[bG(0x1c3)](a0L[bG(0x2f7)]('\x20\x20\x20\x20\x20▣\x20')+a0L[bG(0x2c4)](bG(0x162))+a0L[bG(0x25a)](bG(0x2fc))),await a4(-0x63*0x2f+0x93*0x18+0x1*0x7e9),a0)return;if(console[bG(0x1c3)](),console[bG(0x1c3)](a0L[bG(0x2d4)][bG(0x2c4)](bG(0x19b))+a0L[bG(0x2d4)][bG(0x2f3)]('IS')+a0L[bG(0x2d4)][bG(0x2c4)](bG(0x277))),console['log'](),await a4(0x116a+0x2d*-0x98+-0xf2a*-0x1),a0)return;if(console[bG(0x1c3)](a0L[bG(0x25a)](bG(0x310))),await a4(0x2552+-0x49*0x9+-0x1*0x2131),a0)return;if(console[bG(0x1c3)](a0L['gray'](bG(0x331))),await a4(0x16eb+-0x8a4+0x1*-0xcb7),a0)return;if(console[bG(0x1c3)](a0L[bG(0x25a)](bG(0x196))),await a4(0x1b9c+0x118d*0x1+-0x2a09),a0)return;console[bG(0x1c3)](),console[bG(0x1c3)](a0L['bold'][bG(0x114)](bG(0x223))),await a4(0x8fa*0x1+-0x799+-0xe3f*-0x1);}finally{((()=>{const bH=bG;if(a3){a1['removeListener'](bH(0x326),a2);try{a1['setRawMode'](!(0x8*0x242+-0x188c+0xb*0x97));}catch{}a1[bH(0x100)]();}})()),console[bG(0x3f1)]();}}()),a0X({'demoIntroSeen':!(0x12fa*0x1+-0x16*0x132+-0x3a9*-0x2)})),console[bF(0x1c3)](),console['log'](a0L[bF(0x2c4)]('\x20\x20Demo:\x20')+a0L[bF(0x25a)](H+bF(0x238)+J+'.\x20No\x20timer.\x20Free\x20practice.')),console[bF(0x1c3)](a0L[bF(0x25a)](bF(0x13b))+a0L[bF(0x114)](bF(0x153))+a0L[bF(0x25a)](bF(0x2ac))+a0L[bF(0x114)](bF(0x287))+a0L['gray']('\x20at\x20any\x20time.')),await new Promise(a0=>{const bI=bF;process[bI(0x3ea)]['write'](a0L['bold'][bI(0x2f3)]('\x20\x20Press\x20Enter\x20to\x20begin...\x20'));const a1=!!process['stdin'][bI(0x199)]&&process['stdin']['isRaw'];process[bI(0x309)][bI(0x199)]&&process[bI(0x309)][bI(0x23c)]&&process[bI(0x309)]['setRawMode'](!(-0x9*0x31a+0x76*0x17+0x1151));const a2=a3=>{const bJ=bI,a4=a3['toString']();(a4[bJ(0x1a4)]('\x0a')||a4[bJ(0x1a4)]('\x0d'))&&(process[bJ(0x309)][bJ(0x1a9)](bJ(0x326),a2),process[bJ(0x309)][bJ(0x199)]&&process[bJ(0x309)][bJ(0x23c)]&&process[bJ(0x309)][bJ(0x23c)](a1),process[bJ(0x3ea)]['write']('\x0a'),a0());};process[bI(0x309)]['on'](bI(0x326),a2),process[bI(0x309)]['resume']();});const K=F(H),L=G(),{getDemoState:Q,clearExamState:V}=await import(bF(0x174));Q()&&V('demo-free'),console[bF(0x1c3)](),a0ae(bF(0x373)),console[bF(0x1c3)](),console[bF(0x1c3)](a0L[bF(0x2c4)](bF(0x32e))),console[bF(0x1c3)](a0L[bF(0x2c4)]('\x20\x20'+H+bF(0x1e4)+J+bF(0x2e8)));const W=a0a3();if(W[bF(0x25b)]>-0x1cce+0x29*0x9d+0x1*0x3a9){const a0=W[bF(0x21b)],a1=a0>=0x1efe+-0x3*0xb25+0x2f*0xf?a0L['green']:a0>=-0xa3*0x22+-0xd41+0x2323?a0L[bF(0x2f3)]:a0L[bF(0x2c4)];console[bF(0x1c3)](),console[bF(0x1c3)](a0L['gray'](bF(0x3e8))+a1(W[bF(0x279)]+'/'+H+'\x20('+a0+'%)')+a0L[bF(0x25a)](bF(0x1b8)+W['attempts']+bF(0x18f)));}console['log'](),console[bF(0x1c3)](a0L[bF(0x25a)](bF(0x38c))),console['log'](a0L[bF(0x2c4)]('\x20\x20'+a0ai('howToPlay'))),console[bF(0x1c3)](a0L[bF(0x2f3)](bF(0x152))+a0L[bF(0x25a)](bF(0x288)+a0ai(bF(0x333)))),console[bF(0x1c3)](a0L['yellow'](bF(0x2da))+a0L[bF(0x25a)](bF(0x2e7)+a0ai(bF(0x110)))),console[bF(0x1c3)](a0L[bF(0x2f3)]('\x20\x20\x20\x20next')+a0L['gray'](bF(0x191))+a0L[bF(0x2f3)](bF(0x2d6))+a0L[bF(0x25a)]('\x20\x20\x20\x20'+a0ai(bF(0x2ef)))),console[bF(0x1c3)](a0L[bF(0x2f3)](bF(0x189))+a0L[bF(0x25a)]('\x20\x20\x20\x20\x20'+a0ai(bF(0x2b1)))),console[bF(0x1c3)](a0L['yellow'](bF(0x177))+a0L['gray'](bF(0x2e7)+a0ai('htpBack'))),console[bF(0x1c3)](a0L[bF(0x2f3)](bF(0x18a))+a0L[bF(0x25a)](bF(0x2e7)+a0ai('htpLang'))),console[bF(0x1c3)](a0L['gray'](bF(0x401))),console['log'](a0L[bF(0x25a)](bF(0x1cb))),console[bF(0x1c3)](a0L[bF(0x25a)](bF(0x38c))),console[bF(0x1c3)]();const {getConfig:X}=await import('../lib/config.js'),Y=X()[bF(0x2be)]||'en';'en'===Y?(console[bF(0x1c3)](a0L[bF(0x25a)](bF(0x365))),console[bF(0x1c3)](a0L[bF(0x25a)]('\x20\x20lang\x20es\x20(Español)\x20·\x20lang\x20zh\x20(中文)\x20·\x20lang\x20ko\x20(한국어)\x20·\x20lang\x20ja\x20(日本語)')),console[bF(0x1c3)](a0L[bF(0x25a)](bF(0x2ed)))):console[bF(0x1c3)](a0L[bF(0x24b)](bF(0x17a)+Y)),console[bF(0x1c3)](),console['log'](a0L[bF(0x2c4)](bF(0x3bd)));const Z={...L,'startedAt':new Date()[bF(0x18d)]()};console[bF(0x1c3)](),N(-0xdc5+0x11c3+0x3fe*-0x1,bF(0x249)),await q(-0x11d8+-0x8c9+0x923*0x3),N(0x1927+-0x3b*-0x89+-0x3892,bF(0x1aa)),await q(0x212*0xb+-0x19*0x2+0x2*-0xae6),N(-0x23db+-0x1*-0x141b+0x1010,bF(0x3af)),await q(0xe0a+-0x1*-0xdbb+0x1b2f*-0x1),N(-0x1541*-0x1+0x1d7+-0x16b4,'Ready!'),console['log'](),console[bF(0x1c3)](),a0Z({'session':Z,'questions':K,'answers':{},'_helpMax':0x5}),a0af('Questions',String(H)),a0af(bF(0x32a),bF(0x3f5)),U(K[0xb35+0x1*-0x10+-0xb25]);}),B[be(0x395)](be(0x30a))[be(0x11b)]('Retry\x20only\x20the\x20questions\x20you\x20got\x20wrong\x20last\x20demo\x20attempt')[be(0x30d)](async()=>{const bK=be;a0a8(bK(0x1ee)),E('post-report-retry');const {getLocalizedDemoSession:F}=await import('../lib/demo-exam.js'),G=a0a6();if(!G||0x26ad+0x1232+-0xd3*0x45===G['length'])return console[bK(0x1c3)](),console[bK(0x1c3)](a0L['yellow'](bK(0x320))+a0L[bK(0x2d4)][bK(0x114)]('demo')+a0L[bK(0x2f3)](bK(0x2dd))),void console['log']();const H=a0Y();if(H){if(bK(0x105)!==H[bK(0x103)]['examId'])return a0ab(bK(0x3cc)+H[bK(0x103)][bK(0x302)]+bK(0x1a5)),void a0ac(bK(0x1a7));a0a0();}const J=V=>{const bL=bK;if(!V[bL(0x1cd)])return V;const W=V[bL(0xfa)][V[bL(0x1cd)]],X=['A','B','C','D'][bL(0x3f9)](a2=>V[bL(0xfa)][a2]);for(let a2=X[bL(0x14a)]-(0x740+-0x13b6+0xc77);a2>-0x5*-0x63d+0x4e7*-0x2+-0x3*0x721;a2--){const a3=Math[bL(0x363)](Math[bL(0x39f)]()*(a2+(-0x6*0x88+-0x146d+-0x1*-0x179e)));[X[a2],X[a3]]=[X[a3],X[a2]];}const Y={};Y['A']=X[0x52*0x2c+0x14cd*-0x1+0x6b5],Y['B']=X[0x1b34+0x10*-0x14b+-0x683],Y['C']=X[-0x1a9d+0x17*0x9d+0xc84],Y['D']=X[0x3b*-0x13+-0x2*0x6b+0x53a];const Z=Y,a0=['A','B','C','D'][bL(0x19e)](a4=>Z[a4]===W),a1={...V};return a1['options']=Z,a1[bL(0x1cd)]=a0,a1;},K=G[bK(0x3f9)]((V,W)=>({...J(V),'number':W+(0x1bce*-0x1+0x3ce*-0x5+0x277*0x13)})),L=F(),Q={...L,'examName':L['examName']+bK(0xf9),'questionCount':K['length'],'startedAt':new Date()[bK(0x18d)]()};console[bK(0x1c3)](),a0ae('Demo\x20Retry\x20—\x20Wrong\x20Questions\x20Only'),console['log'](),console[bK(0x1c3)](a0L[bK(0x2c4)](bK(0x377)+K[bK(0x14a)]+bK(0x12d)+(-0x213d*-0x1+0x1985+0x1*-0x3ac1===K['length']?'':'s')+bK(0x1f5))),console['log'](a0L[bK(0x25a)](bK(0x2ea))),console[bK(0x1c3)](),a0Z({'session':Q,'questions':K,'answers':{}}),a0af('Questions',String(K[bK(0x14a)])),a0af(bK(0x32a),'No\x20time\x20limit'),U(K[-0xf2a+0x213f*-0x1+0x3069]);}),B[be(0x395)](be(0x15a))[be(0x11b)]('Install\x20Python\x20environment\x20for\x20practical\x20exam\x20questions')[be(0x30d)](async()=>{const bM=be;if(a0a8(bM(0x28c)),0xc2*-0x9+-0x1*0x1309+-0x19db*-0x1===a0a3()[bM(0x25b)])return console[bM(0x1c3)](),a0ab('Complete\x20the\x20demo\x20first\x20before\x20setting\x20up.'),console['log'](a0L[bM(0x25a)](bM(0x1fd))+a0L[bM(0x2d4)][bM(0x114)]('exam\x20demo')),void console[bM(0x1c3)]();const K=a0ak();if(K){const a4=K['installedPackages'][bM(0x14a)],a5=a4+K[bM(0x278)]['length'];if(a4>=-0x7*0x9d+0x1*0xe06+-0xd*0xbf||(a5>0x1*0x108e+0x2*0xa0d+0x92a*-0x4?a4/a5:0x240d+0x1f*0x67+0x2*-0x1843)>=-0x1517+0x746+0xdd1*0x1+0.7)return console[bM(0x1c3)](),console[bM(0x1c3)](a0L['green'](bM(0xf4))+a0L[bM(0x24b)]('Environment\x20already\x20set\x20up')),console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x2ec)+K[bM(0x2fd)][bM(0x225)]('T')[0x766+-0x179f+0x1039])),console['log'](a0L[bM(0x25a)](bM(0x34b)+K['pythonVersion'])),console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x282)+a4+bM(0x1c7))),K[bM(0x278)][bM(0x14a)]>0x20c8+-0x2*0xbf1+-0x8e6&&console[bM(0x1c3)](a0L[bM(0x2f3)](bM(0x120)+K[bM(0x278)][bM(0x2cd)](',\x20'))),console[bM(0x1c3)](),console['log'](a0L[bM(0x2c4)]('\x20\x20Next\x20step:\x20')+a0L[bM(0x2d4)][bM(0x114)](bM(0x2b5))),console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x408))+a0L[bM(0x2d4)][bM(0x114)]('back')+a0L[bM(0x25a)](bM(0xf1))),void console[bM(0x1c3)]();console['log'](),console[bM(0x1c3)](a0L[bM(0x2f3)](bM(0x27d)+a4+'/'+a5+'\x20packages.\x20Retrying...')),console[bM(0x1c3)]();}console[bM(0x1c3)](),a0ae(bM(0x2ff)),console[bM(0x1c3)](),console[bM(0x1c3)](a0L[bM(0x2c4)]('\x20\x20Installing\x20Python\x20packages\x20for\x20practical\x20questions.')),console['log'](a0L[bM(0x25a)]('\x20\x20Expected:\x201-2\x20minutes\x20·\x20~150MB\x20disk')),console[bM(0x1c3)]();const L=(a6,a7)=>{const bN=bM,a8=process['platform'];console[bN(0x1c3)](),a0aa(bN(0x10f)===a6?'Python\x203\x20not\x20found.':bN(0x156)+a7+bN(0x354)),console[bN(0x1c3)](),console[bN(0x1c3)](a0L[bN(0x2d4)][bN(0x2c4)](bN(0x217))),console[bN(0x1c3)](),bN(0x350)===a8?(console[bN(0x1c3)](a0L[bN(0x2f3)](bN(0x24e))),console[bN(0x1c3)](a0L[bN(0x24b)]('\x20\x20\x20\x20brew\x20install\x20python@3.12')),console[bN(0x1c3)](),console[bN(0x1c3)](a0L[bN(0x25a)](bN(0x306))),console[bN(0x1c3)](a0L['gray'](bN(0x193)))):bN(0x3bc)===a8?(console[bN(0x1c3)](a0L['yellow'](bN(0x36b))),console['log'](a0L['green'](bN(0x3c4))),console[bN(0x1c3)](a0L[bN(0x24b)](bN(0x386))),console['log'](a0L['green'](bN(0x22e))),console[bN(0x1c3)](a0L['gray'](bN(0x38d))),console[bN(0x1c3)](),console['log'](a0L[bN(0x2f3)](bN(0x2cc))),console['log'](a0L['green'](bN(0x382))),console[bN(0x1c3)](),console[bN(0x1c3)](a0L[bN(0x2f3)](bN(0x17b))),console[bN(0x1c3)](a0L[bN(0x24b)](bN(0x393)))):bN(0x107)===a8?(console[bN(0x1c3)](a0L[bN(0x2f3)]('\x20\x20Windows\x20(winget,\x20recommended):')),console[bN(0x1c3)](a0L[bN(0x24b)](bN(0x2c0))),console[bN(0x1c3)](),console[bN(0x1c3)](a0L[bN(0x25a)](bN(0x306))),console[bN(0x1c3)](a0L['gray'](bN(0x20a)))):console[bN(0x1c3)](a0L[bN(0x25a)](bN(0x36f))),console[bN(0x1c3)](),console[bN(0x1c3)](a0L['white'](bN(0x2c8))+a0L['bold'][bN(0x114)](bN(0x28c))),console['log']();},Q=bM(0x3bb);let V='';try{const a6={};a6[bM(0x1d0)]=bM(0x409),a6[bM(0x286)]=0x1388,V=a0an(Q+'\x20--version',a6)['trim']()[bM(0x273)](bM(0x156),'');const a7=V[bM(0x225)]('.')[bM(0x3f9)](Number);if(a7[-0x1287+0x1*-0x2531+0x1bdc*0x2]<0x15ce*0x1+-0x9aa+-0xc21||-0x2*0x21f+0x148e+-0x104d===a7[0x1388+0xff3+-0x237b*0x1]&&a7[-0xafe+0x23*0x14+0x843]<-0x2*0x128f+-0x24da+-0x4a02*-0x1)return void L(bM(0x349),V);-0x1a8*0x12+-0x2394*-0x1+-0x5c1===a7[-0x213e*-0x1+0x61b*-0x1+0x1b23*-0x1]&&a7[-0x1*0x2669+0xabc+0x3*0x93a]<-0x20a4+-0x3*-0x80e+-0x886*-0x1?console[bM(0x1c3)](a0L[bM(0x24b)]('\x20\x20✓\x20Python\x20'+V)+a0L[bM(0x25a)](bM(0x27b))):console[bM(0x1c3)](a0L[bM(0x24b)](bM(0x1bc)+V));}catch{return void L('missing');}try{const a8={};a8[bM(0x20b)]=bM(0x40b),a8[bM(0x286)]=0x1388,(a0an(Q+'\x20-m\x20pip\x20--version',a8),console['log'](a0L[bM(0x24b)](bM(0x212))));}catch{console['log'](a0L['yellow'](bM(0x2f4)));try{const a9={};a9[bM(0x20b)]=bM(0x40b),a9[bM(0x286)]=0x7530,(a0an(Q+bM(0x311),a9),console['log'](a0L[bM(0x24b)]('\x20\x20✓\x20pip\x20installed')));}catch{a0aa(bM(0x205)),console['log']();const {isInWSL:aa,isNativeWindowsCmd:ab}=await import('../lib/platform.js'),{execFileSync:ac}=await import(bM(0x314)),ad=aa(),ae=ab(),af='linux'===process[bM(0x32f)]&&!ad,ag=bM(0x350)===process[bM(0x32f)];let ah='your\x20Linux\x20distro';if(af||ad)try{const {readFileSync:ak}=await import('node:fs'),al=ak(bM(0x2e6),bM(0x409)),am=(al[bM(0x2c1)](/^ID="?([^"\n]+)/m)||[])[0xe5c+-0x2*-0x8+0xe6b*-0x1]||'',an=(al[bM(0x2c1)](/^VERSION_ID="?([^"\n]+)/m)||[])[0x2236+0x1a44+-0x3c79]||'';'ubuntu'===am?ah=bM(0x1ae)+an+(ad?bM(0x3ff):''):am&&(ah=''+am+(an?'\x20'+an:'')+(ad?'\x20(WSL2)':''));}catch{}let ai=!(-0x89b*-0x3+0x1a44+-0x6*0x8ae);if(ag)try{const ao={};ao['stdio']=bM(0x40b),ao[bM(0x286)]=0x7d0,(ac(bM(0x1bd),[bM(0xf6)],ao),ai=!(-0x8e*0x2f+0x6e*-0x5+0x1c38));}catch{ai=!(-0x171e+-0x18ad+-0x2fcc*-0x1);}const aj=ae?'⚠\x20\x20EXIT\x20icoa\x20first\x20—\x20installer\x20cannot\x20run\x20inside\x20the\x20prompt':bM(0x345);return console['log'](a0L[bM(0x2d4)][bM(0x2f3)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console['log'](a0L[bM(0x2d4)][bM(0x2f3)]('\x20\x20'+aj)),console[bM(0x1c3)](a0L[bM(0x2d4)]['yellow'](bM(0x128))),console[bM(0x1c3)](),af||ad?(console[bM(0x1c3)](a0L[bM(0x2c4)](bM(0x222))+a0L[bM(0x114)](ah)),console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x228))),console['log'](),console[bM(0x1c3)](a0L['bold'][bM(0x2c4)](bM(0x106))),console[bM(0x1c3)](),console['log'](a0L[bM(0x2c4)](bM(0x1d8))+a0L[bM(0x2d4)][bM(0x114)](bM(0x32b))+a0L[bM(0x2c4)]('\x20and\x20press\x20Enter\x20to\x20leave\x20icoa')),console['log'](),console[bM(0x1c3)](a0L[bM(0x2c4)]('\x20\x20\x20\x202.\x20In\x20your\x20shell,\x20run:')),console[bM(0x1c3)](),console[bM(0x1c3)](bM(0x288)+a0L[bM(0x2d4)][bM(0x114)](bM(0x224))),console[bM(0x1c3)](bM(0x288)+a0L[bM(0x2d4)][bM(0x114)](bM(0x14e))),console[bM(0x1c3)](),console['log'](a0L[bM(0x2c4)](bM(0x406))),console[bM(0x1c3)](),console[bM(0x1c3)](bM(0x288)+a0L[bM(0x2d4)][bM(0x114)](bM(0x3a5))),console['log'](bM(0x288)+a0L[bM(0x25a)](bM(0x1b1))+'\x20'+a0L[bM(0x2d4)]['cyan']('exam\x20setup'))):ag?(console[bM(0x1c3)](a0L['white'](bM(0x222))+a0L[bM(0x114)]('macOS')),console[bM(0x1c3)](),console[bM(0x1c3)](a0L[bM(0x2d4)][bM(0x2c4)](bM(0x106))),console[bM(0x1c3)](),console[bM(0x1c3)](a0L['white'](bM(0x1d8))+a0L[bM(0x2d4)]['cyan'](bM(0x32b))+a0L[bM(0x2c4)](bM(0x1a2))),console[bM(0x1c3)](),ai?(console[bM(0x1c3)](a0L['white']('\x20\x20\x20\x202.\x20Reinstall\x20Python\x20with\x20pip\x20(Homebrew\x20detected\x20✓):')),console[bM(0x1c3)](),console['log']('\x20\x20\x20\x20\x20\x20\x20'+a0L[bM(0x2d4)][bM(0x114)](bM(0x31d))),console[bM(0x1c3)](bM(0x288)+a0L['bold'][bM(0x114)](bM(0x16e)))):(console['log'](a0L[bM(0x2c4)](bM(0x200))+a0L[bM(0x2d4)][bM(0x2f3)]('brew')+a0L[bM(0x2c4)]('):')),console['log'](),console[bM(0x1c3)](bM(0x288)+a0L[bM(0x2d4)][bM(0x114)](bM(0x16d))),console[bM(0x1c3)](),console[bM(0x1c3)](a0L['white'](bM(0x3f7))),console[bM(0x1c3)](),console[bM(0x1c3)](bM(0x288)+a0L[bM(0x2d4)][bM(0x114)]('brew\x20install\x20python@3.12'))),console[bM(0x1c3)](),console[bM(0x1c3)](a0L[bM(0x2c4)](bM(0x3ee))),console[bM(0x1c3)](),console[bM(0x1c3)](bM(0x288)+a0L[bM(0x2d4)][bM(0x114)]('icoa')),console[bM(0x1c3)](bM(0x288)+a0L['gray'](bM(0x1b1))+'\x20'+a0L['bold'][bM(0x114)](bM(0x28c)))):ae?(console[bM(0x1c3)](a0L[bM(0x2c4)](bM(0x222))+a0L[bM(0x114)]('Windows\x20native\x20(PowerShell\x20/\x20cmd)')),console[bM(0x1c3)](),console[bM(0x1c3)](a0L['bold']['yellow'](bM(0x3c7))),console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x296))),console['log'](a0L[bM(0x25a)](bM(0x149))),console[bM(0x1c3)](a0L['gray'](bM(0x3a9))),console[bM(0x1c3)](),console[bM(0x1c3)](a0L[bM(0x2d4)][bM(0x2c4)](bM(0x122))),console[bM(0x1c3)](),console[bM(0x1c3)](a0L['white'](bM(0x1d8))+a0L[bM(0x2d4)]['cyan'](bM(0x32b))+a0L[bM(0x2c4)](bM(0x1a2))),console[bM(0x1c3)](a0L[bM(0x2c4)](bM(0x3de))),console[bM(0x1c3)](),console['log']('\x20\x20\x20\x20\x20\x20\x20'+a0L[bM(0x2d4)]['cyan'](bM(0x137))),console[bM(0x1c3)](),console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x367))),console[bM(0x1c3)](a0L[bM(0x2c4)](bM(0x1a8))),console[bM(0x1c3)](),console['log'](bM(0x288)+a0L[bM(0x2d4)][bM(0x114)]('curl\x20-fsSL\x20https://deb.nodesource.com/setup_22.x\x20|\x20sudo\x20-E\x20bash\x20-')),console['log'](bM(0x288)+a0L[bM(0x2d4)][bM(0x114)]('sudo\x20apt\x20install\x20-y\x20nodejs\x20python3-pip\x20python3-venv')),console[bM(0x1c3)](bM(0x288)+a0L['bold'][bM(0x114)]('sudo\x20npm\x20install\x20-g\x20icoa-cli')),console[bM(0x1c3)](bM(0x288)+a0L[bM(0x2d4)]['cyan'](bM(0x3a5))),console['log'](),console['log'](a0L['gray']('\x20\x20───\x20Stay\x20on\x20native\x20Windows\x20(best-effort,\x20may\x20hit\x20PATH\x20issues)\x20───')),console[bM(0x1c3)](),console[bM(0x1c3)](a0L['white'](bM(0x1d8))+a0L[bM(0x2d4)]['cyan'](bM(0x32b))+a0L[bM(0x2c4)](bM(0x1a2))),console[bM(0x1c3)](a0L[bM(0x2c4)](bM(0x3cd))),console[bM(0x1c3)](),console[bM(0x1c3)](bM(0x288)+a0L[bM(0x2d4)][bM(0x114)]('winget\x20install\x20--id\x20Python.Python.3.12\x20-e')),console[bM(0x1c3)](),console[bM(0x1c3)](a0L[bM(0x25a)]('\x20\x20\x20\x20\x20\x20\x20(Or\x20download\x20from\x20python.org\x20and\x20CHECK\x20both\x20\x22Add\x20Python\x20to')),console['log'](a0L[bM(0x25a)](bM(0x16a))),console['log'](a0L[bM(0x2c4)](bM(0x299))),console[bM(0x1c3)](),console[bM(0x1c3)]('\x20\x20\x20\x20\x20\x20\x20'+a0L['bold'][bM(0x114)]('icoa')),console['log']('\x20\x20\x20\x20\x20\x20\x20'+a0L['gray']('icoa>')+'\x20'+a0L['bold']['cyan'](bM(0x28c)))):(console[bM(0x1c3)](a0L[bM(0x2c4)]('\x20\x20Detected:\x20unrecognized\x20platform\x20(')+a0L[bM(0x114)](process[bM(0x32f)])+a0L[bM(0x2c4)](')')),console[bM(0x1c3)](),console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x323))),console[bM(0x1c3)](bM(0x288)+a0L['bold'][bM(0x114)](bM(0x3a5))),console[bM(0x1c3)](bM(0x288)+a0L[bM(0x25a)](bM(0x1b1))+'\x20'+a0L[bM(0x2d4)][bM(0x114)](bM(0x28c)))),console[bM(0x1c3)](),console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x2e1))),void console['log']();}}const W={};W[bM(0x203)]=bM(0x3aa),W[bM(0x23e)]=bM(0x3ba),W[bM(0x3f3)]='z3',W['pillow']='PIL',W[bM(0xf3)]=bM(0x2b0),W[bM(0x22a)]=bM(0x321);const X=[bM(0xf3),bM(0x1d3),'requests','beautifulsoup4',bM(0x25c),'pillow','scapy',bM(0x14f),'z3-solver',bM(0x23e),bM(0x22a),bM(0x1bf),'regex'],Y=W;console[bM(0x1c3)](),console['log'](a0L[bM(0x2c4)]('\x20\x20Installing\x20'+X[bM(0x14a)]+bM(0x29e))),console['log']();let Z='';try{const ap={};ap['encoding']='utf-8',ap[bM(0x286)]=0x2710,a0an(Q+'\x20-m\x20pip\x20install\x20--dry-run\x20pip\x202>&1',ap);}catch(aq){const ar=String(aq?.[bM(0x3ea)]||aq?.[bM(0x2de)]||aq?.['message']||'');/externally-managed-environment|break-system-packages/i[bM(0x198)](ar)&&(Z=bM(0x3e4),console['log'](a0L[bM(0x2f3)](bM(0xff))),console[bM(0x1c3)]());}const a0=V[bM(0x225)]('.')['map'](Number);0x1e04*0x1+0xb87+-0x2988===a0[-0x1*0x250d+-0xdba+0x10ed*0x3]&&a0[0xf43*-0x1+-0x2c5*-0x7+-0x41f]>=0x2604+-0x96*0x3+-0x2c9*0xd&&(console[bM(0x1c3)](a0L['yellow'](bM(0x29b)+V+bM(0x20e))),console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x131))),console['log'](a0L[bM(0x25a)](bM(0x26a))),bM(0x3bc)===process[bM(0x32f)]&&(console[bM(0x1c3)](a0L[bM(0x24b)](bM(0x389))),console['log'](a0L['green']('\x20\x20\x20\x20\x20\x20sudo\x20update-alternatives\x20--install\x20/usr/bin/python3\x20python3\x20/usr/bin/python3.12\x201'))),console['log']());const a1=[],a2=[];let a3='';for(const as of X)try{a0an(Q+'\x20-m\x20pip\x20install\x20\x22'+as+'\x22\x20'+Z+bM(0x398),{'encoding':'utf-8','timeout':0x2bf20,'stdio':bM(0x337)}),a0an(Q+bM(0x121)+(Y[as]||as)+'\x22',{'stdio':bM(0x40b),'timeout':0x2710});let at='';try{const au=a0an(Q+bM(0x2d2)+as+bM(0x3ef),{'encoding':'utf-8','timeout':0x1388})[bM(0x2c1)](/^Version:\s*(.+)$/m);au&&(at=au[-0x22ee+-0x9*-0x33d+0x4e*0x13][bM(0x265)]());}catch{}console[bM(0x1c3)](a0L['green'](bM(0xf4)+as)+(at?a0L[bM(0x25a)]('\x20('+at+')'):'')),a1[bM(0x1bb)](at?as+'=='+at:as);}catch(av){const aw=String(av?.['stdout']||av?.[bM(0x2de)]||av?.[bM(0x3a1)]||'')['slice'](-(-0x191b*0x1+-0x317+0x1dc2)),ax=aw[bM(0x225)]('\x0a')[bM(0x2eb)](ay=>ay['trim']())[bM(0x34d)](-(0x1*-0x1ef+0xf2f+-0xd3e))[bM(0x2cd)](bM(0x21a))[bM(0x34d)](0x108f+0x2704+-0x3793,0xbae+0x16*0x3d+-0x1074);console[bM(0x1c3)](a0L['red'](bM(0x3b4)+as)+a0L[bM(0x25a)]('\x20\x20'+ax)),a2[bM(0x1bb)]({'pkg':as,'error':ax}),a3||(a3=aw);}0x1*0x89b+-0xb3d*0x1+0x2a2===a1[bM(0x14a)]&&a3&&(console[bM(0x1c3)](),console[bM(0x1c3)](a0L[bM(0x2f3)](bM(0x332))),console['log'](a0L['gray']('\x20\x20'+a3[bM(0x225)]('\x0a')[bM(0x34d)](-(-0x1*-0x261f+0x9c4+-0x2fdd*0x1))[bM(0x2cd)](bM(0x33d))))),a0al({'completedAt':new Date()[bM(0x18d)](),'pythonVersion':V,'installedPackages':a1,'failedPackages':a2[bM(0x3f9)](ay=>ay['pkg'])}),console[bM(0x1c3)](),-0x1980+0x1*-0x2707+-0x4087*-0x1===a2[bM(0x14a)]?a0a9('Environment\x20ready!\x20All\x20'+X[bM(0x14a)]+bM(0x3d7)):-0x167f+-0x103d+-0x4*-0x9af===a1[bM(0x14a)]?(a0aa(bM(0x2a5)+X['length']+bM(0x3d7)),console[bM(0x1c3)](),console[bM(0x1c3)](a0L[bM(0x2f3)]('\x20\x20Troubleshooting:')),-0x94f*-0x2+0x2055+-0x14*0x28c===a0[-0x239*0xb+0x13a6+0x4cd*0x1]&&a0[-0x309+0x1c1d+-0x1913]>=0x1c84+0x27c+0x1a1*-0x13?(console[bM(0x1c3)](a0L['gray']('\x20\x20\x20\x20Python\x203.13\x20is\x20too\x20new\x20—\x20most\x20CTF\x20libraries\x20lack\x20wheels.')),console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x163)))):(console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x29d))),console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x15d))+a0L[bM(0x114)](Q+bM(0x180))+a0L[bM(0x25a)](bM(0x194))),console[bM(0x1c3)](a0L['gray'](bM(0x292)))),console[bM(0x1c3)](),console['log'](a0L[bM(0x2c4)](bM(0x343))+a0L['bold'][bM(0x114)]('exam\x20setup'))):a0ab(a1[bM(0x14a)]+'/'+X['length']+bM(0x13a)+a2[bM(0x14a)]+bM(0x115)+a2[bM(0x3f9)](ay=>ay[bM(0x339)])[bM(0x2cd)](',\x20')),console[bM(0x1c3)](),console[bM(0x1c3)](a0L[bM(0x114)](bM(0x109))),console['log'](a0L['bold'][bM(0x2c4)](bM(0x383))),console['log'](a0L[bM(0x114)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console['log'](),console['log'](a0L[bM(0x2d4)][bM(0x2f3)]('\x20\x20Method\x201:\x20One-liner')+a0L[bM(0x25a)](bM(0x1f9))),console['log'](a0L[bM(0x2c4)](bM(0x319))),console['log'](a0L[bM(0x24b)](bM(0x1fe))),console[bM(0x1c3)](a0L['gray'](bM(0x208))),console[bM(0x1c3)](),console[bM(0x1c3)](a0L[bM(0x2d4)]['yellow'](bM(0x108))+a0L[bM(0x25a)](bM(0x3e9))),console[bM(0x1c3)](a0L[bM(0x2c4)](bM(0x301))),console[bM(0x1c3)](a0L['green']('\x20\x20\x20\x20!python3')),console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x183))),console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x1f7))),console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x33c))),console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x3f8))),console[bM(0x1c3)](a0L['gray'](bM(0x146))),console[bM(0x1c3)](),console['log'](a0L[bM(0x2d4)]['yellow'](bM(0x118))+a0L[bM(0x25a)](bM(0x353))),console[bM(0x1c3)](a0L['white'](bM(0x3c1))),console[bM(0x1c3)](a0L['green'](bM(0x1d5))),console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x2e9))),console['log'](a0L['gray'](bM(0x40a))),console[bM(0x1c3)](a0L['gray']('\x20\x20\x20\x20key\x20=\x20xor(ct[:5],\x20b\x22ICOA{\x22)')),console['log'](a0L[bM(0x25a)](bM(0x364))),console['log'](a0L[bM(0x24b)](bM(0x201))),console[bM(0x1c3)](a0L['green']('\x20\x20\x20\x20!python3\x20solve.py')),console['log'](),console[bM(0x1c3)](a0L[bM(0x2d4)]['yellow']('\x20\x20AI\x20Assistant')),console[bM(0x1c3)](a0L[bM(0x2c4)](bM(0x17d))+a0L[bM(0x2d4)][bM(0x114)](bM(0x143))+a0L['white']('\x20to\x20ask\x20AI\x20for\x20help:')),console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x1b7))),console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x247))),console[bM(0x1c3)](a0L['gray'](bM(0x38a))),console[bM(0x1c3)](a0L[bM(0x114)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console[bM(0x1c3)](),console[bM(0x1c3)](a0L[bM(0x2c4)]('\x20\x20Next\x20step:\x20')+a0L[bM(0x2d4)][bM(0x114)](bM(0x2b5))),console[bM(0x1c3)](a0L[bM(0x25a)](bM(0x408))+a0L['bold'][bM(0x114)](bM(0x287))+a0L[bM(0x25a)](bM(0xf1))),console[bM(0x1c3)]();}),B[be(0x30d)](()=>{const bO=be;a0a8(bO(0x12e));const F=a0Y();if(F){a0ae(bO(0x3eb)+F['session'][bO(0x302)]),O();const J=Object['keys'](F[bO(0x358)])[bO(0x14a)];return a0af('Progress',J+'/'+F[bO(0x103)][bO(0x1a3)]+'\x20answered'),console[bO(0x1c3)](),void console[bO(0x1c3)](a0L[bO(0x25a)](bO(0x2d1)));}const G=a0a3(),H=a0ak();console[bO(0x1c3)](),a0ae(bO(0x23b)),console['log'](),-0x2c5*0x3+-0x5f5*-0x5+0x2*-0xabd===G[bO(0x25b)]?(console[bO(0x1c3)](a0L[bO(0x2f3)](bO(0x392))+a0L[bO(0x2f3)]('Recommended:\x20complete\x20demo\x20first')),console[bO(0x1c3)](a0L[bO(0x25a)](bO(0x239))+a0L['bold'][bO(0x114)](bO(0x3d2)))):(console[bO(0x1c3)](a0L['green'](bO(0x2e3))+a0L[bO(0x24b)](bO(0x246)+G[bO(0x25b)]+bO(0x369)+(-0xd00+0x11b7+-0x4b6!==G[bO(0x25b)]?'s':'')+')')),H?(console[bO(0x1c3)](a0L['green']('\x20\x20●\x20')+a0L[bO(0x24b)]('Environment\x20ready')),console[bO(0x1c3)](a0L[bO(0x2f3)](bO(0x392))+a0L[bO(0x2f3)](bO(0x3ac))),console['log'](a0L['gray'](bO(0x239))+a0L[bO(0x2d4)][bO(0x114)]('exam\x20<token>'))):(console[bO(0x1c3)](a0L[bO(0x2f3)](bO(0x392))+a0L[bO(0x2f3)](bO(0x221))),console[bO(0x1c3)](a0L[bO(0x25a)]('\x20\x20\x20\x20→\x20')+a0L[bO(0x2d4)]['cyan'](bO(0x28c))))),console['log']();});}
|
|
1
|
+
(function(z,B){const b0=a0B,F=z();while(!![]){try{const G=-parseInt(b0(0x468))/(-0x5*0x7c9+-0x1*-0x14dd+0x1211)*(-parseInt(b0(0x418))/(-0x1a+-0x1b0f+0x1b2b))+-parseInt(b0(0x3ce))/(0xc4+-0x2*0x35e+0x5fb)+-parseInt(b0(0x45d))/(0xece+0xd39*-0x2+-0x2*-0x5d4)+-parseInt(b0(0x4a4))/(0x18ba+0xf0e+-0x46b*0x9)+parseInt(b0(0x26a))/(0x71b+-0x10f*-0x1d+-0x25c8)*(-parseInt(b0(0x485))/(0xc4b*-0x2+0x1a00+0x47*-0x5))+parseInt(b0(0x2fb))/(-0x4f2+0x1ee1+-0x19e7)+-parseInt(b0(0x1d8))/(-0x10f*-0x9+-0x1*-0x24e5+-0x2e63)*(-parseInt(b0(0x33e))/(-0x100f+0x126d+-0x254));if(G===B)break;else F['push'](F['shift']());}catch(H){F['push'](F['shift']());}}}(a0z,0x934cc+0x10213b+0x4f1c*-0x30));import a0L from'chalk';import{confirm as a0Q}from'@inquirer/prompts';import{ExamClient as a0V}from'../lib/exam-client.js';function a0z(){const bP=['uMv2Awv3igfSBcbHBNn3zxjZigjLzM9YzsbZDwjTAxr0Aw5N','q291BNrYEq','ks4Gww91j3jLig9UihLVDxiGB3DUisdWN5kQ','vhj5igeGzNjLzsbWCMfJDgLJzsbLEgfTicHUBYbHy2nVDw50ig5LzwrLzcK','ugvYy2vUDgfNzq','rhvYyxrPB24','cIaG','Dg9Vx29Sza','icbqCMvZCYbfBNrLCIb0BYbIzwDPBI4UlIa','ugHPBgLWCgLUzxm','ChvZAa','icdINjmGCgLWigf2ywLSywjSzq','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDs9HCgKVAwnVys9Kzw1Vlxn0yxrZ','icdIJ7aGmtaGBwLUDxrLCYbYzw1HAw5PBMC','zwDNmte','4O+XifrPBwuGCMvTywLUAw5NoG','u29SAwqGCgLJAY4','igvSAw1PBMf0zwqH','zxHHBvDHExnbAtrJDgy','zxHHBsbHBNn3zxiG','icbuBYbJB250Aw51zsb0AgLZigv4yw06','zMfPBa','AgLUDa','CMvZDwX0ifTPzf0','icaGigv4yw0GCMv2Awv3','zgLT','ihbHy2THz2vZlI4U','BM9KztPMCW','zgvTB0LUDhjVu2vLBG','icaGidiUieLUigfUiefKBwLUAxn0CMf0B3iGug93zxjtAgvSBcWGCNvUoG','mJuSmdaWihrVA2vUCW','icbuCM91yMXLC2HVB3rPBMC6','igzVDw5KlcbIDxqGmY4XmcSGCMvXDwLYzwqGzM9YihrOzsbLEgfTlG','icaGicbfBNrLCIbJAgf0oIaGicaG','zxHWBgfUyxrPB24','y291BNrYEq','icaG4PAi4PAi4Pwr4PAi4PAi4Pwu4Pwq4Pwq4Pwq4Pwq4PwD4PAi4PAi4Pwu4Pwq4Pwq4Pwq4PAi4PAi4Pwx4PAi4PAi4Pwu4Pwq4Pwq4PAi4PAi4Pwx','zgvTBW','ugXLyxnLihbYB3zPzguGEw91CIbMBgfNoIbLEgfTigfUC3DLCIa8BJ4GsunpqxT5B3vYx2zSywD9','icbrDwvZDgLVBNmGAw4Grw5NBgLZAc4Gvg8GC3DPDgnOigXHBMD1ywDLigzPCNn0oG','khbYzxnZigfUEsbRzxKGDg8GC2TPCcK','yNjLDW','mtqZmtK2tgLSC0fh','zMLUywW','u3vIBwL0DgvK','ihbVAw50CYaOntaLkq','CxvPDa','icbsDwXLCZO','tM8Gyw5ZD2vYCYb0BYbZDwjTAxqUiev4yw0Gy2XLyxjLzc4','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','icbpCIb0ExbLia','zwDNnW','icdWN5Ieie9UBhKGmIbVChrPB25ZigXLzNqG4OcuihLVDsbNB3qGDgHPCYe','icHxu0WYkq','y29TCgXLDgu','ic1TihbPCcaTlxzLCNnPB24','icaGsw50zxjUyxrPB25HBcbdEwjLCIbpBhLTCgLHzcbPBIbbssaYmdi2','vgvHBsb1Ccb3AxrOiefjihrVihnVBhzLienurNm','icdIMiuGtMv3ihbLCNnVBMfSigjLC3qH','icaGieXHBMC6icaGia','icaGidmUie9Wzw4GysborvCGug93zxjtAgvSBcb3Aw5KB3CGkfbbveGGCMvMCMvZAcKSihrOzw46','ic1TihbPCcbPBNn0ywXSic0Tzhj5lxj1BIbWAxaGmJ4Mmq','zMXVB3i','BMv3','ywK0y3rMu3vI','icaGicaGicHpCIbKB3DUBg9HzcbMCM9Tihb5DgHVBI5VCMCGyw5KienirunligjVDgGGiKfKzcbqExrOB24GDg8','icaG4PAi4PAi4Pwr4PAi4PAi4PwricaGicdILOJILOJILzeGicdILOJILOJILzhILOJILOJILztILzdILzdILOJILOJILze','icbuExbLicjOzwXWiIbVBIbHBNKGCxvLC3rPB24GDg8GDxnLlG','ywrK','icaGicfWExrOB24Zic1JicjPBxbVCNqGyMfZzty0oYbWCMLUDcHIyxnLnJqUyJy0zgvJB2rLkcDtr1zZyKC4psCPksi','tMv3ifPLywXHBMq','ChLJCNLWDg9KB21L','vwj1BNr1ia','yxr0ywnRAw5N','icbpCIbKB3DUBg9HzcbPBNn0ywXSzxi6','icbeAxjLy3rPB25HBcbMzwvKyMfJAW','quKGDg9Rzw5ZoIa','rgvTBYbszxrYEsdIGjqGv3jVBMCGuxvLC3rPB25Zie9UBhK','C3rYAw5NAwz5','vgLTzsb1C2vKoIa','zxHHBsa','zMLUzeLUzgv4','icaGifb5DgHVBIaZlJeYigLZihjLy29TBwvUzgvKlIbjBNn0ywXSoG','igzSywDNzwqGzM9YihjLDMLLDY4','icbezxrLy3rLzdOG','uMv2Awv3oIa','z3jHzgLUzW','l3n1yM1PDa','icaGiokaOIbtzxj2zxiGyxv0BY1MAw5HBgLZzxmGEw91CIbHBNn3zxjZigLMihLVDsbKBYbUB3qGC3vIBwL0igjLzM9Yzsb0AguGzgvHzgXPBMu','icaOAgvSCca','icbVCIaG','Aw5FChjVz3jLC3m','icbgzwrVCMeGlYbssevmoG','icbB','icbjzIb5B3uGCMvHBgX5ihDHBNqGDg8GC3vIBwL0ihDPDgGGANvZDca','icaGihn1zg8Gzg5MigLUC3rHBgWGlxKGChL0Ag9UmY4XmG','zxHHBsbXia','ywK0y3rMpG','icbtDgfYDcbHifb5DgHVBIbZzxnZAw9Ulcb0ExbLignVBw1HBMrZig9UzsbIEsbVBMu6','iokaLcbZzwuGzNvSBcbLCNjVCG','yxr0zw1WDhm','rNjHBMnL','CMfUzg9T','lI4VBgLIl3bSyxrMB3jTlMPZ','icbmyw5NDwfNztOG','y3rMngfPpG','vgLTzsbszw1HAw5PBMC','icaGicaGicaOBM93lcb+nsbTAw4P','icbezxrLy3rLzdOGDw5YzwnVz25PEMvKihbSyxrMB3jTicG','icbgCMvLihbYywn0AwnLimk3ie5VigfJy291BNqGBMvLzgvKimk3ie5VihrPBwuGBgLTAxq','icaGC2vLihbYB2DYzxnZicSGzMXHz2DLzcbPDgvTCW','ig1PBIbYzw1HAw5PBMC','icaGig5LEhq','zxHHBsbTB3jLlwHLBha','icbjq09big9MzMLJAwfSBhKGC3vWCg9YDhmGv1nmmIbVBIbxAw5KB3DZlG','y2f0zwDVCNK','mteYmteYmKvWEeLiCa','zxHHBsbSAxn0ia','icaGienVBxbSzxrLzdOG','icaG8j+AGcaGu2vJDgLVBIaYoIbbstrdveyG4OcuiefjigLZihLVDxiGDgvHBw1HDgu','zhvYyxrPB25nAw4','icboBYb3CM9UzYbXDwvZDgLVBNmGDg8GCMv0CNKUifj1BIa','icaGswyGDgLTzsbPCYb0AwDODcWGC2TPBsbrmZKVndaGzMLYC3qGDg8GzgvJAwrLigf0DgfJAYbVCMrLCI4','BMv4Da','rwXPBwLUyxrLig9Uzsb3CM9UzYbVChrPB24GkgXPBwL0zwqGDxnLCYK','C3vIBwL0ifTJB25MAxjTqxjNxsbBC2vJB25KqxjNxq','D3jPDgu','icaGiokrOsa','icdIMQaGiefUigv4yw0GAxmGywXYzwfKEsbPBIbWCM9NCMvZCYbVBIb0AgLZigrLDMLJzs4','icaGicbfEgL0ignOyxq6icaGicaG','C3rYAwTLDgHYB3vNAa','igf0DgvTChq','zw50CMLLCW','icbVBMuGzgv2AwnLicSGB25LihnLC3nPB24UifLVDsbJyw5UB3qGC3DPDgnOihrVA2vUCYbTAwqTzxHHBs4','icaGigv4yw0GCsaXlI4','CMvTB3zLtgLZDgvUzxi','Aw5KzxHpzG','icdWN5Miie1HEcaYigHLBhbZihbLCIbXDwvZDgLVBIdIGjqGEw91igfSCMvHzhKGAgf2zsbHiduWlZuWiq','icaGidiUieLUihLVDxiGC2HLBgWSihj1BJO','CdmW','Dw5KzxjSAw5L','icbzB3vYihj1BG','sw5ZDgfSBcbqExrOB24Gzw52AxjVBM1LBNqGzM9YihbYywn0AwnHBcbLEgfTihf1zxn0Aw9UCW','wYbDica','uxvLC3rPB24G','icaGieLUC3rHBgWGuhL0Ag9UidmUmtiGyw5KihjLlxj1BIbLEgfTihnLDhvWlG','C29YDa','icaGicbcDwrNzxqGFJiGBwLUihbLCIbWCMfJDgLJywWGCxvLC3rPB24UifLVDsbJyw4Gy29TzsbIywnRihDPDgG6ig5LEhqGlYbWCMv2lG','8j+pLU+4JW','AgvSCf91C2vK','DxnLza','icaGicaGicaGia','AgvSCefSBfvZzwq','ihrVihnLzsb5B3vYihjLC3vSDhmH','vMLLDYbXDwvZDgLVBIaOB3iGywXSihf1zxn0Aw9UCYK','CMvWzwf0','Dg90ywXty29Yzq','ChL0Ag9UvMvYC2LVBG','zxHHBq','Cg9PBNrZ','oJaW','AwnVyt4','y29TCgXLDgvKqxq','icbdDxjYzw50BhKGzMXHz2DLzdOG','C3bSAwnL','vgLTzq','C3rHDhvZ','ic8G','AwnVyq','u2f1zgKGqxjHyMLH','icbiB3CGDg8GDxnLifb5DgHVBIbPBIbjq09bienmsq','ywLvC2fNzq','tMLJzsbVBMuU','Bg9N','Cgn0','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','icaGidmUieLUC2LKzsbvyNvUDhuSigLUC3rHBgWGtM9Kzs5QCYaYmIaRifb5DgHVBIb0B29SCYaRigLJB2e6','zxHHBsbZDwjTAxqGy29UzMLYBsa','zgvHzgXPBMvtzxj2zxjnCW','Bsb0B3rHBa','u291DgGGs29Yzwe','zgvZy3jPChrPB24','ixb5DgHVBJmGlI4U','DhjPBq','CgLWzq','ndGZnJm1mLvdq0nSDW','tM90ignVBM5Ly3rLzc4GuNvUoIbQB2LUidX1CMW+','vhvYA2v5','l2HLBha','AxnuvfK','zxHHBsb1BM1HCMSG','icaGievprG','A2v5CW','icbfEgfToIaGica','icaGihbYAw50khHVCIHJDcWGA2v5ks5KzwnVzguOksK','oIdIGjq','mvjtAwnvsW','ChjVBxb0','icaGihDPBMDLDcbPBNn0ywXSifb5DgHVBI5qExrOB24UmY4XmG','icdILidILidILiaGu3rHEsbVBIbUyxrPDMuGv2LUzg93CYaOyMvZDc1LzMzVCNqSig1HEsbOAxqGuefuscbPC3n1zxmPiokuGokuGokuGa','CMvTB3zLqwXStgLZDgvUzxjZ','icbvC2u6igv4yw0GCMv2Awv3imk3igv4yw0GC3vIBwL0','u3rHDhvZ','icdWN46bicS','icbuBYbNBYbIywnRoIaG','AhrWtgfUzW','icbdAgvJAYbLEgfTCYbMB3iGEw91CIbJB3vUDhj5oG','icbTywnpuYaOsg9TzwjYzxCSihjLy29TBwvUzgvKktO','icdcTYbzB3vYig5HDgLVBMfSig9Yz2fUAxPLCIb3AwXSigfUBM91BMnLihnLBgvJDgLVBIbYzxn1BhrZlG','lI4VBgLIl3bHCgvYlxvWz3jHzguUANm','zNvUy3rPB24','vw5HBNn3zxjLza','x2HLBhbnyxG','Dwj1BNr1','icaGicdcTYbtzxbHCMf0zsbIDwrNzxq6ia','icaGicaGia','BNvTyMvY','icdcTYbszwzLCMvUy2uGz3vPzgvZigzVCIaZocb0B29SCZOG','uhjVz3jLC3m','icbqCMv2Aw91CYbZzxr1CcbOywqGB25SEsa','ls11C2vYic0TyNjLywSTC3LZDgvTlxbHy2THz2vZ','uMvHzhKH','icaG4PAi4PAi4Pwr4PAi4PAi4PwricaGicdILOJILOJILzeGicdILOJILOJILzhILOJILOJILOJILOJILOJILOJILOJILze','CgXHDgzVCM0','x2XHC3rr','mtrhvMDIrLG','icaGicjiB3CGzg8GssbKzwnYExb0ieffuY1dqKmGAw4GuhL0Ag9UpYi','BgLUzq','r28GDg8GChjLDMLVDxmGCxvLC3rPB24','zxHHBsbXide','AgvSCfvZzwrvCa','icaGicdILQmG','icbjq09bidiWmJyGWRCGu3LKBMv5lcbbDxn0CMfSAweGWRCGsNvUidi3iokaKYbkDwWGmG','icaGicaGCMvZDw1Ligf0igfUEsbXDwvZDgLVBG','yxbWBgLJyxrPB24VANnVBG','zxHHBsbZzxr1Ca','C2nHChK','zw1VAMK','icaGicfWExrOB24ZihnVBhzLlNb5','BMv4DcaVihbYzxy','igLZigeGChjHy3rPy2fSihf1zxn0Aw9UiokaLcbHBNn3zxiGD2L0AcbHigzSywCSig5VDcbHigXLDhrLCI4','BM9KztPJAgLSzf9WCM9JzxnZ','B3v0Chv0','icdINjmGrxHHBsbZDgf0zsbJBgvHCMvKlG','ieLdt0f7Ew91CL9MBgfNFq','C3rKzxjY','DxrMltG','8j+pM++4JW','y3rMzfvYBa','icaGigH0DhbZoI8VD3D3lNb5DgHVBI5VCMCVzg93BMXVywrZlW','Dw5TyxjRifTUxq','icbeDxjPBMCGDgHLigv4yw0Sihr5CguG','BM93','icaGicfWExrOB24Z','icaGu3LKBMv5lcbbDxn0CMfSAweGimk3icbkDw4GmJCG4OctieP1BcaYlcaYmdi2','icdcTYblzwvWihnOyxjWzw5PBMC6ia','nty3nZiYnvD1zwfADG','CxvLC3rPB25Z','tK9uifbbu1nfra','u2v0DxaGzMfPBgvKiokaLcaWig9Mia','sgfJAYb0AguGquKNCYbNDwfYzhjHAwXZ','iokaLcb5B3uGy2fUBM90ignOyw5Nzsb0AgvTigfMDgvYihn1yM1PDc4','AhrWqMfJAW','icdIMiuGuq','icaGigv4yw0GBgLZDcbbvq','icaGid4+pIbMCM9TienYExb0BY5dAxbOzxiGAw1WB3j0ieffuW','icbfEgfTCgXLoIa','icaG4PwA4Pwq4PwDiokvMUkvKokvKokvKokvKokvKokvNsdILzRILzdILzdILzdILzdILzdILz0G4PwA4Pwq4PwDicdILzRILzdILz0','z3jHEq','igjVBNvZigHLBhaGDw5SB2nRzwqHicG','BgfUz3vHz2u','D2HPDgu','C2v0uhjVBxb0','zwDNmW','A2v5','icbcB251CYbOzwXWigfSCMvHzhKGDw5SB2nRzwqU','uhL0Ag9Uia','ig1PBNv0zxm','icbbCMnOic8GtwfUAMfYBZO','icaGig1VCMuGAgvSCa','icaGicaGicbqqvriiIaRicjjBNn0ywXSihbPCciGzhvYAw5NihrOzsbPBNn0ywXSzxiUkq','igfUC3DLCNmSihr5Cgu6','icaGv2HHDcb5B3uNBgWGzg8GDg9KyxK6','C3vKBYbHChqGDxbKyxrL','ig5VDcbMB3vUzcaOms0','u2vYDMvYig5VDcbYzwfJAgfIBguUienOzwnRihLVDxiGAw50zxjUzxqGy29UBMvJDgLVBI4','B25Jzq','tgLZDcbHDMfPBgfIBguGzxHHBxmGkg9WDgLVBMfSoIaYlwXLDhrLCIbJB3vUDhj5ignVzguP','z3jLzw4','CMvZDw1L','icaGifnVBwuGCgfJA2fNzxmGkhb3BNrVB2XZlcbZy2fWEsKGBwf5ig5VDcbOyxzLihDOzwvSCYb5zxqGzM9YidmUmtmU','icdIMQaGiduGBwLUDxrLCYbYzw1HAw5PBMC','DgLTzw91Da','icaGWRCGmteWienurIb0B29SCYbWCMuTy29UzMLNDxjLza','icbtDhvJAZ8Grw1HAwWGEw91CIbZzwXLy3rPB24Gy29VCMrPBMf0B3iGD2L0Acb0AguGC2nYzwvUC2HVDcbHyM92zs4','yMvHDxrPzNvSC291Cdq','q2HVAwnLig11C3qGyMuGqsWGqIWGqYWGB3iGrc4','l2fWAs9Py29Hl2v4yw1ZlW','vMfSAwrHDgLUzYb0B2TLBI4UlG','icbr','CMvZzxq','icbbBNn3zxjZoIa','icGR','Ahr0Chm6lY9WCMfJDgLJzs5Py29HmJaYnI5HDq','y3j5ChrVz3jHCgH5','q3j5ChrV','ig9YigXLyxzLihDPDgGG','y29TBwfUza','CMvXDwvZDhm','igrLDgvJDgvK','icaGihn1zg8GCgfJBwfUic1tihb5DgHVBG','DhLWzq','C3vIC3rYAw5N','ihbHy2THz2vZigLUC3rHBgXLzc4G','icbtDgfYDdOGzxHHBsbZDgfYDca8Awq+','icaGigH0DhbZoI8VD3D3lNb5DgHVBI5VCMCVzg93BMXVywrZl3DPBMrVD3mV','yMfJAW','txLHBM1HCG','Aw50zxjHy3rPB25Z','zMLUza','tM8GzxHHBxmGyxzHAwXHyMXLigzVCIa','C2vYDMvYx3rPBwvFBxm','u3rHCNqGyw4GzxHHBsaOyMvNAw5ZihrPBwvYkq','ywn0Aw9U','ihbVAw50C10','C3rHCNqGpgLKpG','C3rKAw4','t24GDgHLig1VBMv5lG','uhjLCgfYAw5Nigv4yw0Gzw52AxjVBM1LBNqUlI4','BgLZDgvUzxjZ','icaG4PAi4PAi4PwxiokwIokwIokwIokwIokwIokwIokvLYdILOJILOJILOJILOJILOJILOJILzCGiokwIokwIokwIokwIokwIokvLW','icaGigH0DhbZoI8VD3D3lNb5DgHVBI5VCMCVzg93BMXVywrZl21Hy29ZlW','Axnoyu4','DMXH','yNjLDYbPBNn0ywXSihb5DgHVBKaZlJeY','lIboBYb0Aw1LCI4GrNjLzsbWCMfJDgLJzs4','rw52AxjVBM1LBNqGCMvHzhKHiefSBca','ihrVignVBMzPCM0Sig9YigfUExrOAw5NigvSC2uGDg8Gy2fUy2vSoG','BM90ugfZC2vK','zxHHBvDHExngB3vUza','icaGicbiAw50CYbbl0iVqZOGicaG','icaGihn1zg8GDxbKyxrLlwfSDgvYBMf0AxzLCYaTlwLUC3rHBgWGl3vZCI9IAw4VChL0Ag9UmYbWExrOB24Zic91C3iVyMLUl3b5DgHVBJmUmtiGmq','u291DgGGqwzYAwnH','icdcTYaG','icaGC2vJDxjPDhKGDgfZA3mG4OcuignYExb0BYWGD2vIlcbMB3jLBNnPy3mSihb3BI4','icaGifbHy2THz2vZoIa','uM9VBsb0BYbNCM93oIaGia','Bwf4','vMLLDYbLEgfTihjLC3vSDa','icbbzNrLCIbPBNn0ywXSAw5NlcbYDw46ia','zMfPBgvKugfJA2fNzxm','icdIHlKGuevqidy2ocbKzxrLy3rLzcdIGjqGDxnPBMCGls11C2vYigLUC3rHBgWGkg5Vihn1zg8GBMvLzgvKkq','zxHHBsbYzxn1BhqG','BwfJt1m','y2f0','icaGicbuAguGDg9Rzw4GAxrZzwXMigLZie5pvcbYzxzVA2vKihnLCNzLCI1ZAwrLlIbjzIb5B3vYihnLC3nPB24GAxm','zgvTBY1MCMvL','icaGicbjBNnPzguGy2HHDdOGicaG','ue9tva','icbzB3vYigjLC3q6ia','icaG','C2vZC2LVBG','ChL0Ag9UmW','DM9SyxrPBgL0Etm','icbxCMfWihvWigfUzcbZDwjTAxq6ia','Dg90ywW','zxHHBvDHExnuB1nVBhzL','igfUC3DLCMvKiokaLcbHy2nPzgvUDgfSihn1yM1PDcbNDwfYza','BMv4DeXHyMvS','icbzB3uGy2fUig5VDYbLBNrLCIbHig5LDYb0B2TLBIb3AxrOia','BgvUz3rO','AgfZ','yw5ZD2vYCW','icdINjmG','mZi1otuZsxPryNPX','icaGigTLEsa9ihHVCIHJDfS6nv0SigiIsunpqxSIkq','iIbPCYbPBIbWCM9NCMvZCY4','q2HLy2SGEw91CIb0B2TLBIbVCIbJB250ywn0ihLVDxiGChjVy3rVCI4','ChDUDg9VBhm','z2v0vgLTzq','icaGicbbssb0B2TLBNm6icaGicaG','icaGieHPBNrZoIaGieeOnsKGqIGZksbdkdePiokaLcbWCMfJDgLJywWGB25SEq','rvHqsvjfra','zMLSDgvY','sunpqsbqyxj0AwnPCgf0Aw5NienVDw50CMLLCYbHBMqGuMvNAw9UCW','icbnzxrOB2qGmZOGu2nYAxb0igzPBgu','icaGicaGicHszwjVB3qGAwyGv2LUzg93CYbHC2TZlcb0AgvUig9Wzw4GDgHLifvIDw50Dsb0zxjTAw5HBc4P','Aw5ZDgfSBgvKugfJA2fNzxm','AM9PBG','iokaLca','qw5ZD2vYzwq','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','CgfZC2vK','C19HAtrJDgy','icaGig1HCMS','vgLTzw91DevYCM9Y','icH3B3jRCYWGyNv0idmUmtiGCMvJB21Tzw5KzwqP','ic1TihbPCcbZAg93ici','ig9Mia','CgTN','AgvSCfjLBw92zq','BgLUDxG','l2fUC3DLCG','qw5ZD2vYideWihf1AwnRihf1zxn0Aw9UCW','Bw9Yzs1OzwXW','zxHHBsbZDwjTAxqG','ihjHBMrVBsbXDwvZDgLVBNmGzNjVBsbHihbVB2WGB2yG','ihnOyxjLzcbHy3jVC3mGutm54Octnda','C2v0uMf3tw9Kzq','y29YCMvJDa','icaGkhjLC3vTzsbMCM9TifeXkq','icaGidmUifjLC3rHCNqGAwnVysbHBMqGCMuTCNvUigv4yw0GC2v0Dxa6','icaGiokaOIbzB3uGBwf5igv4AxqGyw5KihjLC3vTzsb3AxrOihrOzsbZyw1LihrVA2vU','uhL0Ag9UidmGBM90igzVDw5KlG','u3vIBwL0igzHAwXLza','vgHHAwXHBMq','vxnLCI1bz2vUDa','y29UzMLYBq','C29Tzq','AwDUB3jL','zNjVBq','quXm','C2v0Dxa','ic0TDMvYC2LVBG','icaGidiUieLUifbVD2vYu2HLBgWSigLUC3rHBgWGuhL0Ag9UihDPDgGGCgLWoG','EwvSBg93','imk3ia','icbdB3vSzcbUB3qGCMvHy2GGC2vYDMvYigzVCIbOzwXWlIbdAgvJAYb5B3vYignVBM5Ly3rPB24U','yMvZDa','zxHHBsbZDwjTAxq','Dg9mB3DLCKnHC2u','ihrOzsbJB21WzxrPDgLVBI4','C3vKBYbHChqGAw5ZDgfSBcaTEsbWExrOB24ZlxbPCcbWExrOB24ZlxzLBNy','icaGDgHLig9Yz2fUAxPLCIbPBIb5B3vYignVDw50CNKU','icbVzIa','rMfPBgvKihrVigXVywqGzxHHBxm','sw52ywXPzcb0B2TLBG','tg9HzgLUzYbYzxn1BhqUlI4','icaGiokrPca','AgLUDcbHic8GyIaVigm','CgvYy2vUDgfNzq','zwDNmtm','zw5JB2rPBMC','AhrWqw5ZD2vY','Dg9ju09tDhjPBMC','zgfYD2LU','ywK0y3rMrgvZyW','u3rHCNqGDgHLigv4yw0/ifrOzsb0Aw1LCIb3AwXSigjLz2LUigLTBwvKAwf0zwX5lG','CMvWBgfJzq','icaGiefjigj1zgDLDdOGmJvlihrVA2vUCYbMB3iGquK0q1rgicSGmJvligzVCIbdvey0quK','BwLZC2LUzW','icaGign0id0GyNL0zxmUzNjVBwHLEcGImgeYyJbLmwmUlI4Ikq','icaGsg93ihrVigf0DgfJAW','zgf0yq','ChjLlxDYAxr0zw4GCgvYihf1zxn0Aw9U','ueftu0ve','zxHHBsbYzxzPzxC','AhrWtMf2','C19JDgy0ywK','zxHHBsbUyxrPB25Z','CgfKu3rHCNq','DgfYz2v0','uMvZDwX0igXVywrLza','ic1JicjPBxbVCNqG','BwfYAYbBBL0','icaGsw50zxjUyxrPB25HBcbdEwjLCIbpBhLTCgLHzcbPBIbbsq','uK9qz2fKz2v0','zxHHBsbOzwXW','BwfW','CgLSBg93','icaGidiUieLUC3rHBgWGsg9TzwjYzxCGzMLYC3qGkhDLigrPzcbUB3qGzMLUzca','rgvTBYbJB21WBgv0zwqGka','ixb5DgHVBJmGC29SDMuUChK','iokgKIa','icbxCML0zsbHic5WEsbMAwXLlcb0AgvUihj1BIbPDdO','y2XVC2u','icdIMiuGtwfYA2vKigzVCIbYzxzPzxC','icbxAw5KB3DZicH3Aw5NzxqSihjLy29TBwvUzgvKktO','qNjHEMLS','icaGicbtB2X2zsa','ihrVihjLDhvYBIb0BYb0AguGBwfPBIbTzw51lG','icbiB3CGDg8GAw5ZDgfSBcbqExrOB24GmY4XmcSGkdmUmtiGCMvJB21Tzw5KzwqPoG','icaGiokaOIbuCNK6ia','icaGiokrOca','icbuCNvZDcb5B3vYigLUC3rPBMn0igfUzcbWAwnRig9Uzse','icbszwfKEt8GvxnLia','ihvUzMXHz2DLzc4','u2H1zMzSAw5Nig9WDgLVBNmUlI4','icaGWRCGmtuGBgfUz3vHz2vZlcbYzwfSlxrPBwuGquKGDhjHBNnSyxrPB24','icaGid4+pIbJAxbOzxiGpsbbrvmUBMv3kgTLEsWGquvtlK1prevFq0jdlcbPDIK','igHLBhbZihjLBwfPBMLUzY4GvxnLihrOzw0GzMLYC3qH','qw5ZD2vYzwq6ica','x2HLBhbvC2vK','icaOChjLDMLVDxmGzxHHBsbZzxnZAw9Uigv4CgLYzwqG4OcuignSzwfYzwqGC3rHDguSihn0yxj0Aw5NigzYzxnOihDPDgGGEw91CIbUzxCGDg9Rzw4P','BwvZC2fNzq','zwXPBwLUyxrLzca','C2HVD25xyxjUAw5NCW','vMLLDg5HBq','Ew91CKfUC3DLCG','CdeW','icaGid4+pIbRzxKGpsbIExrLCY5MCM9TAgv4kci0otqZngy0ms4UlIiP','icdIHPmGifbYywn0AwnHBcbZzwn0Aw9UigjLz2LUCYbHDcbrmZeU','tgfVCW','uMv0CNKGB25SEsb0AguGCxvLC3rPB25ZihLVDsbNB3qGD3jVBMCGBgfZDcbKzw1Vigf0DgvTChq','icbuExbLia','icaGrwXHChnLzdOG','y3rMngfP','icdILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILitILiq','icaGs2v5igrPzMzLCMvUy2vZigzYB20GquK0q1rg','igfUC3DLCMvKkq','yw5ZD2vY','vhLWztOGzgvTBYb0BYbZDgfYDcbHz2fPBI4','y29UzMLYBwvKqxq','x3n1yM1PDenVBMzPCM1Lza','icaGiokgKIbIj0HLBgXVjW','tMfTzq','rxHHBsbfBNzPCM9UBwvUDcbtzxr1Ca','CM91BMq','q29UDgvUDc1uExbL','icbszwnVBw1LBMrLzcbWyxrOiokaLcbZD2L0y2GGDg8Gv1nmmIaOB25LlxrPBwuSih41ig1PBIK6','mtKXotGYnMjOCgXdrG','tM8GDgLTzsbSAw1PDa','ANnVBG','r28GDg8GBMv4DcbXDwvZDgLVBG','AhrWu3vIBwL0','vxnLicjLEgfTihjLDMLLDYiGDg8Gy2HLy2SGChjVz3jLC3mGB3iGiMv4yw0GC3vIBwL0iIb0BYbZDwjTAxqU','qNvYDw5KAq','zgvTBY1YzxrYEq','BgfUzYa8y29Kzt4','icbtDwjTAxqGBM93ihDPDgG6ia','4PQGicbfweLuigLJB2eGzMLYC3qG4Ocuihn1zg8Gy2fUBM90ihj1BIbPBNnPzguGDgHLihbYB21WDa','qwjHBMrVBIbJDxjYzw50igv4yw0GC2vZC2LVBIbHBMqGD2LWzsbSB2nHBcbZDgf0zsaOCMvJB3zLCNKGB25SEsK','ugfZCW','yM9VA21HCMTZ','icaGigjHy2S','igzVCIb0AgLZihnLy3rPB24','icboyxrPDMuGv2LUzg93CYbJyw4GCNvUifbHCgvYiemGke1dus1VBMX5ksbHBMqGquKGy2HHDcWGyNv0','CgfZC2LUz1nJB3jL','lI4VBgLIl2nVBMzPzY5QCW','rMfPBgvKihrVigXVywqGCMvZDwX0','icaGica','icaGigzYB20GChDUigLTCg9YDcb4B3i','CM9Wz2fKz2v0','AgvSCa','icdINjmGie1dusbZzwn0Aw9UignVBxbSzxrLiokaLcb3zwXSigrVBMuH','icbuBYbNBYbIywnRigfUzcbHBNn3zxiGBw9YztO','icaGifLVDsbJyw4GBM93ihvZztOG','uMvTB3zLihjLDMLLDYbMBgfNigzYB20GysbXDwvZDgLVBG','x2vSAw1PBMf0zwq','icaGicaGicbLBNrLCIbdvey0quKGy2HHDcdIGjqGyxr0ywnRihrOzsbbssb0yxjNzxqGkhjLy29TBwvUzgvKkq','icaOC2fTzsbHCYb5B3uGANvZDcb0ExbLzcK','icbozxH0ihn0zxa6ia','y3LHBG','rMXHzYbHihf1zxn0Aw9UihrVihjLDMLLDYbSyxrLCIaODg9Nz2XLCYK','qxzHAwXHyMXLiev4yw1ZicG','icbLEgfTiheGw25Dicb8igv4yw0Gyw5ZD2vYidXUpIa8qs1epIb8igv4yw0GCMv2Awv3ihWGzxHHBsbZDwjTAxq','icaGicaGigvUDgvYifzmqsbHDhrHy2SGBw9KzsbMB3iGDgHPCYbXDwvZDgLVBIaOCMvJB21Tzw5KzwqP','zwXPBwLUyxrLza','icdINjmGuhL0Ag9Uia','ihvUyw5ZD2vYzwq6ia','icbuAxa6ihn3AxrJAcb0BYb5B3vYigXHBMD1ywDLihDPDgG6igXHBMCG','icdIMiuG','D2HPy2G','CMvM','yM9Sza','AhrWtw9YzuHLBha','yw5ZD2vYx2nOyw5Nzwq','ueLm','icHJB21WBgv4ihnVBhv0Aw9UCYK','v2LUzg93CYbUyxrPDMuGkfbVD2vYu2HLBgWGlYbJBwqP','icaGuhjLC3mGyw55igTLEsb0BYbZDgfYDcbKzw1VlI4U','igzPCNn0lG','CxvLC3rPB25dB3vUDa','ihnRAxbWzwq','rxHHy3rSEs4','icaGifb5DgHVBJOG','r3jHzgLUzY4UlG','icaGiokgKIa','tM8GzxHHBsbPBIbWCM9NCMvZCY4GvxnLicjLEgfTihn0yxj0idXPzd4IihrVigjLz2LUlG','Dg9Rzw4','AxnbCNjHEq','ywK0y3rM','tg9HzgLUzYbLEgfTlI4U','q2XVC2uG4OcuihDLj2XSihjLDMLZAxqGDgHPCYbVBMuU','BM9KztPYzwfKBgLUzq','icaGieHLBha6icaGideWihvZzxmGkYa1igHPzgrLBIbIB251CYaOtunrig9UBhKP','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','mJuSmdaW','icaGidmUifjLC3rHCNqGAwnVysbHBMqGCMv0CNK6','uxvLC3rPB25Z','BgLZDcbBy291BNrYEv0','icaG8j+oRYaGu2vJDgLVBIaZoIbdvey0quKG4OcuienOywXSzw5Nzsb0AguGquK','AwnVys1JBgK','icaOugfWzxiGqYb0B2TLBNmGC2TPCcb0AgLZigDHDguG4OcuifbHCgvYiemGAxmGtunrlw9UBhKP','sg1Tlcb3B3j0AcbHihnLy29UzcbSB29Rigf0ihrOzsbLBMqU','yw5ZD2vYzwq','icbjBNn0ywXSAw5Nia','icaGid4+pIbLEgL0kcK','icaGicbuB2TLBJOG','icbkDw1WihrVigeGzMXHz2DLzcbXDwvZDgLVBJOG','uhjLCgfYAw5Nihf1zxn0Aw9UCY4UlG','igf0igfUEsb0Aw1LlG','ugvYDq','rMfPBgvKihrVihn0yxj0igv4yw0','u3rHCNrPBMCGDgLTzxiUlI4','icaGihzSytrJDgy','Dgv4Da','yw5ZD2vYx3n1yM1PDhrLza','sw5KAwe','C3vIBwL0ieLdt0f7Ew91CL9MBgfNFq','iokCKYaGka','zxHHBsbUzxH0','icaGiokaOIbpBIblywXPl1vIDw50DsaYmIS6ig1Pz2H0ig5LzwqGChL0Ag9UmY4XmI1KzxyGkYbIDwLSzc1LC3nLBNrPywW','BMf0Aw9UCW','l2v0yY9VCY1YzwXLyxnL','ihbHy2THz2vZigLUC3rHBgXLzc4','Cg9ZDc1YzxbVCNqTCMv0CNK','icbkDxn0igfKzcaHigjLzM9Yzsb0AguGy29TBwfUzdO','icaGicbfEgfToIaG','zwDNnq','icdIL4SG','Cvr1Dg9YAwfS','icbbBNn3zxjZigfYzsa','icbbC3nPC3rHBMnLihvZzwq','ywXS','icbozxCGBwvTyMvYpYbdB250ywn0oIbHy2nYzwrPDgf0Aw9UqgLJB2eYmdi2lMf1','icbuB2TLBJOGica','icdIMQaGie9UBhKG','rxHHBsbZDgfYDgvKisbuAw1LCIbPCYbYDw5UAw5NlG','C3vIBwL0rxHHBq','Ag93vg9qBgf5','icaGigfPngn0zG','Aw5WDxq','zxHHBvDHExnszwzqExrOB24','icaGigv4yw0GC3vIBwL0','icaG4PYticbtDwjTAxnZAw9UigfJy2vWDgvKiokaLcbIyxnLBgLUzsbTzxq','zxHHBsbTyxjRia','icaGideUifr5CguG','C3rHCNq','C3vIBwL0DgvK','icbMyxiGBw9YzsbZBw9VDgHSEsbPBNnPzguGv1nmmIbvyNvUDhuU','Dg9tDhjPBMC','ica+ia','icdINjmGCgLWigLUC3rHBgXLza','icdIMQaGuhL0Ag9Uia','l2fWAs9Py29Hl2v4yw0TDg9Rzw4','khnLCNzLCI1HDxrOB3jPDgf0AxzLkq','cGPgDwXSigf0DgfJAgvKigrHDge6cG','ig1PBG','zwXPBwLUyxrL','icaGigHLBha','ihrVigfZAYbbssbMB3iGAgvSCdO','C3LTChK','zxHHBsbWCMv2','icdWN5kHifrYEsb0ExbPBMCG','vw5SB2nRigHPzgrLBIbIB251CYbOzwXWihvZzxm','igfUzcbWCMvZCYbfBNrLCIb0BYbSzwf2zsbPy29H','qw5ZD2vYihnVBwuGCxvLC3rPB25ZigzPCNn0oIbLEgfTiheGmq','iIbPCYbHBhjLywr5igLUihbYB2DYzxnZlG','icdIL48G','ihbVAw50CW','Aw5JBhvKzxm','u3vIBwL0igv4yw0GzM9YigDYywrPBMCGkhvZztOGiMv4yw0GC3vIBwL0ignVBMzPCM0IigzVCIbYzwfSigv4yw1Zkq','icbqyxnZihrOCMvZAg9SzcbPCYb0ExbPy2fSBhKGntaLiokaLca','igf0DgvTChrZ','mJm5mdy0mhD2qNzIvq','uhjLlwv4yw0GC2v0DxaGCMvXDwLYzwq','ChjLDG','yxr0ywnOzwreyxrH','BMfTzq','yw5ZD2vYidXUpIa8y2HVAwnLlI4UpG','rw50zxiGzxHHBsb3AxrOigfJy2vZCYb0B2TLBIaOBM8GBg9NAw4GBMvLzgvKkq','igzHAwXLzdOG','C3rKAw8','ihjLBwfPBMLUzYK','icbgAxjZDcbLCNjVCIbKzxrHAwWGkgzVCIbKzwj1z2DPBMCPoG','icbbssbbC3nPC3rHBNq','zxHHBsbKzw1V','vhLWzsaIzxHHBsbZDwjTAxqIihrVigzPBMfSAxnLig5VDYWGB3iGDgHLihnLCNzLCIb3AwXSigf1Dg8TzMLUywXPC2uGD2L0AgLUidmWig1PBNv0zxmU','icbtDgfYDgLUzYbLEgfTlI4U','icaOuMv0CNKGD3jVBMCGB25SEsK','ihrVigXLyxzLigLJB2e','ihLLDc4','icdIMQaGCgLWig5VDcbMB3vUzcWGDhj5Aw5NigvUC3vYzxbPCc4UlG','Bw9YzsbOzwXW','icbqyxbLCIbbic8GqIbWCMfJDgLJywWGCxvLC3rPB25Zig5LzwqGvw5PEcb0B29SAw5NihrOyxqGCNvUCW','icbozxCGzxHHBxmGyxjLignVBwLUzYbZB29Uiq','oYb0AgLZihbYzxzLBNrZigfJy2LKzw50CYK','tM8GzxHHBsbPBIbWCM9NCMvZCY4','icaGicaGicaGicaGicaGicaGzxmGWRCGEMGGWRCGAMeGWRCGA28GWRCGyxiGWRCGzNiGWRCGChq','icbODhrWCZOVl2LJB2eYmdi2lMf1','zxHHBvDHExntyxzLzfrV','q29UBMvJDgLUzYb0BYbLEgfTihnLCNzLCI4UlG','CgvYuq','C2XPy2u','lZmWig11BhrPCgXLlwnOB2LJzsbHBNn3zxjLza','u3bVDcbVBI4','icaGicbqCM9TChqGAw5Qzwn0Aw9Uimk3igfKDMvYC2fYAwfSigfUywX5C2LZimk3iefjigf1zgL0Aw5N','z2v0rxHHBxm','ihrVihn1yM1PDcbMB3iGz3jHzgLUzY4','ihf1zxn0Aw9UCYbKCMf3BIbMCM9TigeGCg9VBcbVzIa','r2HHBMe','CgfKrw5K','icaGidiUifjLAw5ZDgfSBcbqExrOB24GD2L0AcbWAxaGkeHVBwvICMv3igrLDgvJDgvKiokCKYK6','ic1TihbPCcbPBNn0ywXSihb3BNrVB2XZ','ihbYB21WDcWGANvZDcbSAwTLihrOzsbKzw1V','D3nSic0TAw5ZDgfSBcaTzcbvyNvUDhuTmJiUmdq','C3rKB3v0','y2vPBa','icdWN46jiefSBcbXDwvZDgLVBNmGyw5ZD2vYzwqH','icaGicbLEgfTigXPC3qGueu','uhjLlwv4yw0GC2v0DxaGCMvXDwLYzwqGyMvMB3jLigvUDgvYAw5NigeGDg9Rzw4U','rxHHBxmG4Ocuia','iIaYpI9KzxyVBNvSBa','q3rYBcTd','igLZihDLBgWGyMvSB3CU','icbuAgLZihf1zxn0Aw9UihjLCxvPCMvZihLVDsb0BYb1C2uGAgvSCcbIzwzVCMuGyw5ZD2vYAw5NlG','zxHPDa','icaGicdcTYbbssbPCYb5B3vYia','sw5KB25LC2LH','4PQGicbfweLuigLJB2eGzMLYC3qG4OcuigLUC3rHBgXLCIbJyw5UB3qGCNvUigLUC2LKzsb0AguGChjVBxb0','icbjzIb5B3uGBMvLzcb0BYbHyMfUzg9UihrOAxmGC2vZC2LVBIaOzs5NlIbLEhbPCMvKic8GD3jVBMCGCgfWzxiPla','icaGihn1zg8GywrKlwfWDc1YzxbVC2L0B3j5ihbWytPKzwfKC25HA2vZl3bWysaTEq','ica0mcSGy291BNrYAwvZigfUzcbYzwDPB25ZihjLChjLC2vUDgvK','icaGia','icdILRGG','ihf1zxn0Aw9UCY4','y3vYBcaTzNnttcbODhrWCZOVl2rLyI5UB2rLC291CMnLlMnVBs9Zzxr1Cf8YmI54ihWGC3vKBYaTrsbIyxnOic0','icbtDwjTAxr0Aw5Nig5VDYbZy29YzxmGzNjVBsbVBMX5ia','CMv2Awv3','icaGv2vSy29Tzsb0BYb0AguGChjHy3rPy2fSienurIbZzwn0Aw9UlIbszwfS','twfJyxu','nZKWAvvdCNLu','AhrWsgvSCa','imk3ifbPy2SGB25LigfUC3DLCIbWzxiGCxvLC3rPB24','icboyxrPB25HBcbsB3vUzcaXifnLBgvJDgLVBIbLEgfTCYbHCMuGyMvPBMCGChjLCgfYzwqU','iefjigj5ihLVDxiGC2LKzs4GquKGAxmGEw91CIb0zwfTBwf0zs4','vgLTzsbLEhbPCMvKlG','sw52ywXPzcbLEgfTihrVA2vU','ifSGxsaG','lI4U','icdILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILihILie','BwLU','CsbBBL0','CMvK','EJmTC29SDMvY','iefjihn5C3rLBxmU','C3vKBYbHChqGAw5ZDgfSBcaTEsbUB2rLANmGChL0Ag9UmY1WAxaGChL0Ag9UmY12zw52','igfUC3DLCMvK','sw52ywXPzcbXDwvZDgLVBIbUDw1IzxiUifvZzsaXlI4','zxHHBsa8Dg9Rzw4+','qw5ZD2vYihf1zxn0Aw9Uie4GkeeVqI9dl0qGzM9Yie1dusWGsunpqxTMBgfNFsbMB3iGChjHy3rPy2fSkq','s2vLCcbPDcbPBIbTAw5KigzVCIbYzxzPzxCU','rw52AxjVBM1LBNqGCMvHzhK','icaGiefjoIaGicaGidi1sYbbstrdveyGkYaYnuSGq1rgnefjihrVA2vUCW','B3b0Aw9UCW','iokaLcbZD2L0y2GGD2L0AdOGBgfUzYa8y29Kzt4','CMvNzxG','lI4VBgLIl2rLBw8TzxHHBs5QCW','icaG4PAi4PAi4Pwr4PwA4PAi4PAi4PAi4PAi4PAi4PAi4Pwx4PwA4PAi4PAi4PAi4PAi4PAi4PAi4Pwu4PwD4PAi4PAi4PwricdILOJILOJILze','icbtzxj2zxiGzgLKig5VDcbYzxr1CM4Gysb2ywXPzcbVChrPB24UifrYEsbHz2fPBI4','zgvTBY1LBNrLCG','icaGicaGC3rHCNqGuhL0Ag9UihnOzwXS','icaGutmX4OctmZGGkdGGCxvLC3rPB25Zimk3idyGChrZigvHy2GP','sw4GuhjVz3jLC3m6ia','icdILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILidILia','zxHHBuLK','C3vJy2vLza','icaGiokaOIbdAgvJAYb5B3uGAgf2zsbPBNrLCM5LDcaOCgLWlNb5CgeUAw8GBxvZDcbIzsbYzwfJAgfIBguP','icdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILzdILza','u3rYB25NzxiGAgvYztOGia','D2L0Aa','CxvLC3rPB24','zxHHBu5HBwu','icbjBIb0AguGBwvHBNrPBwuSihrYEtOG','vg90ywW','icbzB3vYigfUC3DLCJOG','Cgf1C2u','zhvYyxrPB25nAw51DgvZ','C3vIBwL0DgvKqxq','icaGicaGC3vKBYb1CgrHDguTywX0zxjUyxrPDMvZic0TAw5ZDgfSBcaVDxnYl2jPBI9WExrOB24Zihb5DgHVBJmGl3vZCI9IAw4VChL0Ag9UmY4XmIaX','q29TCgXLDguH','icbnzxrOB2qGmtOGt25LlwXPBMvY','icbtDgvWlwj5lxn0zxa6','icaGicbZDgLSBcbHy3rPDMuGyw5Kig5VDcbZDwjTAxr0zwqSihjLlwvUDgvYAw5NihrOzsbZyw1LihrVA2vUihjLC3vTzxmGAxqU','Bwf0y2G','AhrWuMv2Awv3','l2fWAs9Py29Hl3nLCNzLCI10Aw1L','icaOzgLMzMvYzw50igzYB20GDgHLig9Uzsb5B3uGDhLWzwqP','icdIHPiG','y2XLyxi','rMXHz2DLzdOGica','icaGiezHAwXLzdOG','C3vIBwL0ieLdt0f7lI4UFq','D2LUz2v0igLUC3rHBgWGls1PzcbqExrOB24UuhL0Ag9UlJmUmtiGlwu','zxHHBsbYzxnLDa','icdIMQaGieXfu1mGveHbtIaXie1jtLvursbmruzu','ihbHy2THz2vZlIbszxrYEwLUzY4UlG','ihrVihDPCguGBg9JywWGC3rHDguSihrOzw4GCMuTzw50zxiGDgHLig5LDYb0B2TLBI4','C3bSAxq','icbszwLUC3rHBgWGuhL0Ag9UidmUmtiGD2L0AcbWAxaGyNvUzgXLzcWGDgHLBIbYzxrYEtO','AxnsyxC','lI4VBgLIl2v4yw0TC3rHDguUANm','C3rHCNrLzef0','Dg9Rzw4GpgnVzgu+','icHXDwLJAYb0yxnRCYK','icaGww91CIb0zxjTAw5HBca','zwDNmtu','t3rOzxi','vw5PDgvKieTPBMDKB20','icbqCMvZCYbfBNrLCIb0BYbZDgfYDcb0AguGzxHHBsb0Aw1LCI4UlIa','rxHHBsaI','icaGicbnzxnZywDLCYdIHPiGquKGDgfYz2v0iokaLcbJCMfMDcbWCM9TChrZihrVigjYzwfRigL0CYbYDwXLCY4','rw52AxjVBM1LBNqGywXYzwfKEsbZzxqGDxa','icaGigXHBMC','DdeW','tMf0Aw9UywWGC2vSzwn0Aw9Uigv4yw0','l2jPBI9IyxnOic1JiciKkgn1CMWGlwzZu0WGAhr0Chm6lY9YyxCUz2L0AhvIDxnLCMnVBNrLBNqUy29Tl0HVBwvICMv3l2LUC3rHBgWVsevbrc9PBNn0ywXSlNnOksi','icdIMiyGuq','icaGzMLUAxnOigfUzcbZDwjTAxq','zxHHBsb0B2TLBIa','x2HLBhbqzxjr','Dg9vChbLCKnHC2u','D2LUmZi','y2f0y2G','icbezw1VoIa','zgvTBY1LEgfT','icbdB250Aw51zsb0AgLZigv4yw06','CMvMihb5DgHVBG','DgvZDa','icdIMQaGiezjtKfmifnvqK1ju1njt04G4OcuihbSzwfZzsbJB25MAxjT','ixb5DgHVBJm','itXJBwq+ia','uMvJB21Tzw5Kzwq6ignVBxbSzxrLigrLBw8GzMLYC3q'];a0z=function(){return bP;};return a0z();}import{getConfig as a0W,saveConfig as a0X}from'../lib/config.js';import{getExamState as a0Y,saveExamState as a0Z,clearExamState as a0a0,getExamDeadline as a0a1,materializeAttachedData as a0a2}from'../lib/exam-state.js';import{getDemoStats as a0a3,recordDemoAttempt as a0a4,saveRetryQueue as a0a5,getRetryQueue as a0a6,clearRetryQueue as a0a7}from'../lib/demo-stats.js';import{logCommand as a0a8}from'../lib/logger.js';import{printSuccess as a0a9,printError as a0aa,printWarning as a0ab,printInfo as a0ac,printTable as a0ad,printHeader as a0ae,printKeyValue as a0af,createSpinner as a0ag,formatCountdown as a0ah}from'../lib/ui.js';import{t as a0ai}from'../lib/i18n.js';import{getDeviceFingerprint as a0aj}from'../lib/access.js';import{getExamSetup as a0ak,saveExamSetup as a0al,isExamSetupComplete as a0am}from'../lib/exam-setup.js';import{execSync as a0an}from'node:child_process';const q=z=>new Promise(B=>setTimeout(B,z));function E(B,F={}){const b1=a0B,G=a0W(),H={};H[b1(0x268)]='application/json',fetch(b1(0x3b0),{'method':b1(0x1c8),'headers':H,'body':JSON['stringify']({'type':B,'lang':G[b1(0x4b2)]||'en','timestamp':new Date()['toISOString'](),...F}),'signal':AbortSignal['timeout'](-0x496*-0x3+0x7f*0x4d+-0xacf*0x3)})[b1(0x39a)](()=>{});}function a0B(a,b){a=a-(0x4e8+0x1f97+-0x22fd);const c=a0z();let d=c[a];if(a0B['wOrYea']===undefined){var e=function(i){const j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let l='',m='';for(let n=-0x323+0xf45*-0x1+-0xf8*-0x13,o,p,q=-0x623*-0x3+0xc*0x1c6+-0x9*0x469;p=i['charAt'](q++);~p&&(o=n%(0x22bc+-0x1*0x18fd+-0x35*0x2f)?o*(-0x1*0x178f+-0x38d*0x1+0x4*0x6d7)+p:p,n++%(-0x751+-0x1f9e+0xd*0x2ff))?l+=String['fromCharCode'](-0x2037+0x175+0x1fc1&o>>(-(-0xfff+0x63c*-0x5+0x2f2d)*n&-0x17eb+0x3*-0xac+0x19f5)):-0x1270+0x493*0x8+-0x1228){p=j['indexOf'](p);}for(let r=0x53*0x5e+-0xad*0x29+-0x2c5,s=l['length'];r<s;r++){m+='%'+('00'+l['charCodeAt'](r)['toString'](0xb*0x31d+0x3f3*-0x4+-0x1263))['slice'](-(-0x651*0x1+0x637*-0x1+0xc8a));}return decodeURIComponent(m);};a0B['FsQeeM']=e,a0B['QtLeQX']={},a0B['wOrYea']=!![];}const f=c[-0x155f+0xb9d+0x9c2],g=a+f,h=a0B['QtLeQX'][g];return!h?(d=a0B['FsQeeM'](d),a0B['QtLeQX'][g]=d):d=h,d;}function N(z,B){const b2=a0B,F=Math[b2(0x267)](z/(-0x11*-0x1f1+-0x194*-0xa+-0x3065)*(-0x1df*-0xf+-0xcdf+-0xf14)),G=-0xba9*-0x3+0x1*-0x4c1+-0x1e1c-F,H=a0L['green']('█'['repeat'](F))+a0L[b2(0x4b0)]('░'[b2(0x43f)](G)),J=String(z)[b2(0x22e)](-0x1f9e+0x2*-0x76d+0x2e7b)+'%';process['stdout'][b2(0x422)]('\x0d\x1b[2K\x20\x20'+H+'\x20'+J+'\x20\x20'+a0L[b2(0x4b0)](B));}function M(){const b3=a0B,z=a0W();return z[b3(0x49c)]&&z['token']?new a0V(z[b3(0x49c)],z[b3(0x2a5)]):(a0aa(b3(0x45e)),null);}function O(){const b4=a0B,z=a0a1();z&&(new Date()<z?a0af(b4(0x40e),a0L[b4(0x20b)][b4(0x296)](a0ah(z))):a0af(b4(0x449),a0L[b4(0x34a)][b4(0x296)](b4(0x1e0))));}function j(z,B){const b5=a0B;return Array[b5(0x2a6)](z['bookmarks'])&&z[b5(0x277)]['includes'](B);}function D(z,B){const b6=a0B,F=Array[b6(0x2a6)](z[b6(0x277)])?[...z[b6(0x277)]]:[],G=F[b6(0x42c)](B);return G>=0x175+-0x46d+0x2f8?(F[b6(0x448)](G,0x63c*-0x5+-0xfcb+0x2ef8),z[b6(0x277)]=F,a0Z(z),!(0x3*-0xac+-0x1c0+0x3c5)):(F['push'](B),F[b6(0x436)]((H,J)=>H-J),z[b6(0x277)]=F,a0Z(z),!(0x493*0x8+-0x1172+-0x102*0x13));}function R(B){const b7=a0B,F={};return F['used']=B['_helpUsed']||-0x83*-0x18+0x1209+-0x27*0xc7,F[b7(0x1bd)]=B['_helpMax']||0x9ad*0x3+0xef0+-0x2be3,F['perQ']=B[b7(0x397)]||{},F[b7(0x28f)]=B['_eliminated']||{},F;}function U(z,B){const b8=a0B,F=a0Y(),G=Number(F?.['session']['questionCount']||-0x637+0xebd*0x1+-0x868),H=Object[b8(0x464)](F?.[b8(0x1d6)]||{})[b8(0x1d4)],J=R(F),K=J[b8(0x28f)][z[b8(0x47c)]]||[],L=b8(0x2a7)===z[b8(0x199)]||b8(0x25c)===z['type']||'vla'===z['type']||z[b8(0x355)]&&!z[b8(0x355)]['A']&&!z[b8(0x355)]['B'];F&&function(Y,Z){const b9=b8;if(b9(0x1c6)===Y[b9(0x1cb)]['examId'])return;const a0=new Set(Y[b9(0x252)]||[]),a1=Number(Y[b9(0x1cb)][b9(0x29e)]||-0x155f+0xb9d+0x9ea),a2=a0a1();if(-0x1*-0x1ab9+0x1447+-0x2ef6===Z&&a1>=-0xf*-0x83+-0x1d6b+0x2*0xaf3&&!a0[b9(0x1d5)](b9(0x255))){const a3=a2?Math[b9(0x1bd)](-0x1*0x691+-0x36e+-0x9ff*-0x1,Math[b9(0x267)]((a2['getTime']()-Date[b9(0x4a0)]())/(-0x2a74+0x2962*-0x1+0x13e36))):null;console[b9(0x451)](),console[b9(0x451)](a0L['gray'](b9(0x25d))),console[b9(0x451)](a0L[b9(0x28a)]('\x20\x20⏱\x20\x20Time\x20check\x20\x20')+a0L['gray']('—\x20you\x27re\x201/4\x20through\x20the\x20exam')),null!==a3&&console[b9(0x451)](a0L['gray'](b9(0x27e)+a3+'\x20minutes\x20left.\x20Keep\x20the\x20pace\x20steady.')),console['log'](a0L['gray'](b9(0x25d))),a0[b9(0x3e8)](b9(0x255)),Y['shownWarnings']=Array[b9(0x206)](a0),a0Z(Y);}if(0x1690*0x1+0x1703+-0x2d75===Z&&a1>=-0x1497*0x1+-0xe65*0x2+0x3189&&!a0[b9(0x1d5)](b9(0x42f))){Object[b9(0x464)](Y[b9(0x1d6)]||{})[b9(0x1d4)];const a4=Object[b9(0x464)](Y['answers']||{})[b9(0x1e1)](a5=>Number(a5)<=0x4*0x98+-0x1b01*0x1+0x18bf)[b9(0x1d4)];console['log'](),console[b9(0x451)](a0L[b9(0x182)](b9(0x347))),console['log'](a0L[b9(0x296)][b9(0x182)](b9(0x282))),console[b9(0x451)](a0L[b9(0x4b0)](b9(0x27e)+a4+b9(0x319))),console['log'](a0L['white'](b9(0x257))),console[b9(0x451)](a0L[b9(0x4b0)](b9(0x437))),console['log'](a0L[b9(0x182)](b9(0x347))),a0[b9(0x3e8)](b9(0x42f)),Y[b9(0x252)]=Array['from'](a0),a0Z(Y);}}(F,z[b8(0x47c)]),F&&L&&function(Y,Z){const ba=b8;if(ba(0x1c6)===Y[ba(0x1cb)][ba(0x360)])return;if(Number(Y[ba(0x1cb)][ba(0x29e)]||-0x1b1d+0x2474+-0x92f)<0x1275+-0x10*-0x1af+-0x2d3d)return;const a0=new Set(Y[ba(0x252)]||[]);Z>=0xf*0x4d+-0x1*0x261b+0x21b7&&Z<=-0x1f40+-0x1*-0x17a6+0x7c0&&!a0[ba(0x1d5)](ba(0x1eb))?(console[ba(0x451)](),console[ba(0x451)](a0L[ba(0x182)](ba(0x2ac))),console['log'](a0L[ba(0x296)][ba(0x182)](ba(0x41b))),console[ba(0x451)](a0L[ba(0x182)](ba(0x2ac))),console['log'](),console[ba(0x451)](a0L[ba(0x4b3)](ba(0x33c))),console[ba(0x451)](a0L[ba(0x4b3)](ba(0x1ba))),console[ba(0x451)](),console[ba(0x451)](a0L[ba(0x296)]['white'](ba(0x35d))),console[ba(0x451)](a0L[ba(0x4b0)](ba(0x241))+a0L[ba(0x296)](ba(0x365))+a0L['gray'](ba(0x342))),console['log'](),console[ba(0x451)](a0L[ba(0x296)][ba(0x4b3)]('\x20\x20\x20How\x20to\x20work')),console[ba(0x451)](a0L[ba(0x4b0)]('\x20\x20\x20\x20\x20Enter\x20chat:\x20\x20\x20\x20\x20')+a0L[ba(0x296)][ba(0x182)](ba(0x2a7))+a0L[ba(0x4b0)](ba(0x23b))+a0L['magenta'](ba(0x405))+a0L[ba(0x4b0)](ba(0x323))),console[ba(0x451)](a0L[ba(0x4b0)](ba(0x1c7))+a0L['cyan'](ba(0x219))+a0L['gray']('\x20·\x20')+a0L[ba(0x28a)]('submit\x20ICOA{...}')+a0L['gray'](ba(0x20c))+a0L['cyan']('!python3\x20...')),console[ba(0x451)](a0L[ba(0x4b0)]('\x20\x20\x20\x20\x20Free\x20chat:\x20\x20\x20\x20\x20\x20any\x20message\x20→\x20AI\x20teammate')),console['log'](a0L['gray'](ba(0x425))+a0L[ba(0x28a)](ba(0x32f))+a0L[ba(0x4b0)]('\x20→\x20back\x20to\x20exam,\x20navigate\x20with\x20')+a0L[ba(0x28a)](ba(0x493))),console[ba(0x451)](),console[ba(0x451)](a0L[ba(0x296)][ba(0x4b3)]('\x20\x20\x20Budget\x20(shared\x20across\x20Q31–38)')),console['log'](a0L[ba(0x4b0)](ba(0x1de))+a0L[ba(0x4b3)](ba(0x2ad))+a0L[ba(0x4b0)](ba(0x279))),console[ba(0x451)](a0L[ba(0x4b0)](ba(0x1b6))+a0L[ba(0x4b3)](ba(0x228))),console[ba(0x451)](),console[ba(0x451)](a0L['yellow']('\x20\x20\x20Time\x20still\x20counting\x20down.\x20Budget\x20~2\x20min\x20per\x20question.')),console[ba(0x451)](a0L[ba(0x182)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console[ba(0x451)](),a0[ba(0x3e8)]('s_ai4ctf'),Y[ba(0x252)]=Array[ba(0x206)](a0),a0Z(Y)):Z>=-0x1c09+0x1b97+-0x99*-0x1&&!a0[ba(0x1d5)](ba(0x22c))&&(console[ba(0x451)](),console[ba(0x451)](a0L['red'](ba(0x2ac))),console[ba(0x451)](a0L[ba(0x296)]['red'](ba(0x2b1))),console[ba(0x451)](a0L[ba(0x34a)](ba(0x2ac))),console[ba(0x451)](),console['log'](a0L[ba(0x4b3)]('\x20\x20\x20The\x20final\x20section\x20flips\x20the\x20script:\x20instead\x20of')),console['log'](a0L[ba(0x4b3)]('\x20\x20\x20using\x20AI,\x20you\x27re\x20')+a0L[ba(0x296)](ba(0x3ed))+a0L['white'](ba(0x34c))),console[ba(0x451)](),console['log'](a0L[ba(0x296)][ba(0x4b3)]('\x20\x20\x20Q39–40\x20(2\x20questions\x20·\x2016\x20pts\x20each\x20—\x20highest\x20value!)')),console[ba(0x451)](a0L[ba(0x4b0)](ba(0x31b))),console['log'](),console[ba(0x451)](a0L['bold']['white'](ba(0x226))),console[ba(0x451)](a0L[ba(0x4b0)](ba(0x3c5))+a0L[ba(0x296)][ba(0x34a)](ba(0x25c))+a0L[ba(0x4b0)]('\x20→\x20')+a0L['red'](ba(0x40d))+a0L['gray']('\x20prompt,\x20same\x20shape\x20as\x20demo')),console[ba(0x451)](a0L['gray']('\x20\x20\x20\x20\x20Inside\x20chat:\x20\x20\x20\x20')+a0L[ba(0x28a)](ba(0x219))+a0L['gray'](ba(0x20c))+a0L[ba(0x28a)](ba(0x37b))+a0L[ba(0x4b0)](ba(0x20c))+a0L[ba(0x28a)](ba(0x45a))),console[ba(0x451)](a0L['gray'](ba(0x38e))),console['log'](),console[ba(0x451)](a0L[ba(0x296)][ba(0x4b3)](ba(0x25e))),console[ba(0x451)](a0L[ba(0x4b0)](ba(0x330))+a0L[ba(0x34a)](ba(0x22f))+a0L['gray'](',\x20not\x20your\x20teammate')),console[ba(0x451)](a0L[ba(0x4b0)](ba(0x47a))+a0L[ba(0x4b3)](ba(0x3c2))+a0L['gray'](ba(0x1f9))),console[ba(0x451)](),console['log'](a0L[ba(0x20b)]('\x20\x20\x20These\x20are\x20the\x20hardest\x20questions.\x20Worth\x2021%\x20of\x20total\x20score.')),console[ba(0x451)](a0L[ba(0x20b)](ba(0x41e))),console[ba(0x451)](a0L[ba(0x34a)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console['log'](),a0[ba(0x3e8)]('s_ctf4ai'),Y[ba(0x252)]=Array['from'](a0),a0Z(Y));}(F,z[b8(0x47c)]),F&&function(Y){const bb=b8,Z=a0a1();if(!Z)return;const a0=Z[bb(0x1dd)]()-Date[bb(0x4a0)]();if(a0<=0x4cf*0x7+0x1*-0x132e+-0x151*0xb)return;const a1=a0/(0xc869*-0x1+-0x46a3*0x3+0x1*0x286b2),a2=new Set(Y['shownWarnings']||[]);let a3=null;if(a1<=0x13c7*0x1+-0x286+-0x1140&&!a2[bb(0x1d5)]('t1')?a3={'key':'t1','text':[a0L['red']['bold'](bb(0x37e)),a0L[bb(0x34a)](bb(0x273))+a0L[bb(0x296)](bb(0x20f))]}:a1<=0x22d1+-0x7f2+-0x1ada&&!a2[bb(0x1d5)]('t5')?a3={'key':'t5','text':[a0L[bb(0x34a)][bb(0x296)](bb(0x185)),a0L['yellow'](bb(0x1ce))+a0L[bb(0x296)](bb(0x20f))]}:a1<=0xfe9+0x843+-0x1822&&!a2[bb(0x1d5)](bb(0x391))&&(a3={'key':bb(0x391),'text':[a0L['yellow'][bb(0x296)](bb(0x3b1)),a0L[bb(0x4b0)]('\x20\x20Review\x20unanswered\x20questions:\x20')+a0L['white'](bb(0x22a))]}),a3){console[bb(0x451)](),console[bb(0x451)](a0L['red'](bb(0x347)));for(const a4 of a3['text'])console['log'](a4);console[bb(0x451)](a0L[bb(0x34a)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),a2[bb(0x3e8)](a3[bb(0x4b6)]),Y['shownWarnings']=Array[bb(0x206)](a2),a0Z(Y);}}(F),function(Y,Z,a0){const bc=b8,a1=Math['round'](Y/Z*(0x1*0x13eb+-0x168a+0x2bd*0x1)),a2=-0x4f*0x71+0x623+-0xe6d*-0x2-a1,a3=a0L[bc(0x28a)]('━'[bc(0x43f)](a1))+a0L[bc(0x4b0)]('─'[bc(0x43f)](a2)),a4=Math[bc(0x267)](Y/Z*(0x15bb+-0x1*0x2509+0x7*0x23e));console[bc(0x451)](),console[bc(0x451)]('\x20\x20'+a3+'\x20\x20'+a0L[bc(0x4b3)][bc(0x296)](''+Y)+a0L['gray']('/'+Z)+'\x20\x20'+a0L[bc(0x4b0)]('('+a0+'\x20answered)')+'\x20\x20'+a0L[bc(0x4b0)](a4+'%'));const a5=a0a1();if(a5){const a6=Math[bc(0x1bd)](0x1*0x23a+-0x62c+0x3f2,Math[bc(0x267)]((a5[bc(0x1dd)]()-Date['now']())/(-0x2*0x1116+0x1255+0x1*0x13bf))),a7=Math[bc(0x3e2)](a6/(-0xcdb*0x2+-0x19a0+-0x3af*-0xe))+':'+String(a6%(0x1*0xeb1+-0x256c+0x16f7*0x1))[bc(0x22e)](0x1c9d+-0xb6*-0x1d+-0x3139,'0'),a8=a6<=-0x23c4+0x7*0x16b+0x1*0x1a13?a0L[bc(0x34a)]['bold']:a6<=-0x12f6+-0x1*0xc0b+0x202d*0x1?a0L[bc(0x34a)]:a6<=-0x2700+0x16cf+-0x16d*-0xd?a0L[bc(0x20b)]:a0L[bc(0x4b0)];console[bc(0x451)]('\x20\x20'+a0L[bc(0x4b0)](bc(0x3b3))+'\x20'+a8(a7)+'\x20'+a0L[bc(0x4b0)](bc(0x2e8)));}}(z[b8(0x47c)],G,H),F&&j(F,z[b8(0x47c)])&&console['log'](a0L[b8(0x20b)](b8(0x23e)));const Q=function(Y,Z){const bd=b8,a0={};a0['pct']=0.2,a0['emoji']=bd(0x49b),a0[bd(0x4b6)]=bd(0x4b5);const a1={};a1[bd(0x452)]=0.33,a1[bd(0x491)]='🐨',a1[bd(0x4b6)]=bd(0x2cd);const a2={};a2[bd(0x452)]=0.5,a2['emoji']='🌉',a2['key']=bd(0x3d7);const a3={};a3[bd(0x452)]=0.6,a3['emoji']='🦘',a3['key']='egg9';const a4={};a4[bd(0x452)]=0.8,a4['emoji']=bd(0x438),a4[bd(0x4b6)]=bd(0x3b2);const a5={};a5[bd(0x452)]=0.87,a5[bd(0x491)]='🦈',a5[bd(0x4b6)]=bd(0x21b);const a6={};a6[bd(0x452)]=0x1,a6['emoji']='🎉',a6[bd(0x4b6)]=bd(0x389);const a7=[a0,a1,a2,a3,a4,a5,a6],a8=new Set();for(const a9 of a7){const aa=Math[bd(0x267)](a9[bd(0x452)]*Z);if(!(aa<-0x215d+-0x4a2*-0x1+-0x1cbc*-0x1||a8[bd(0x1d5)](aa))&&(a8[bd(0x3e8)](aa),Y===aa))return{'emoji':a9[bd(0x491)],'text':a0ai(a9[bd(0x4b6)])};}}(z[b8(0x47c)],G);if(Q&&console[b8(0x451)](a0L[b8(0x20b)]('\x20\x20'+Q[b8(0x491)]+'\x20\x20'+Q[b8(0x2c0)])),console[b8(0x451)](),z[b8(0x417)]&&console[b8(0x451)](a0L[b8(0x28a)](b8(0x401)+z[b8(0x417)]+']')),z[b8(0x443)]&&z[b8(0x443)]>0x15d*-0x6+-0x194b+0x217b*0x1&&console[b8(0x451)](a0L[b8(0x28a)](b8(0x401)+z['points']+b8(0x1a6))),L){let Y=z['description']||z[b8(0x2c0)];const Z=a0a2(z[b8(0x47c)],z[b8(0x2fe)]);if(z[b8(0x2fe)]){const a1=/\([^()]*attachedData[^()]*\)/;a1[b8(0x39f)](Y)?Y=Y[b8(0x222)](a1,z['attachedData']):Y[b8(0x2f7)](z['attachedData'])||(Y=Y+b8(0x2e9)+z[b8(0x2fe)]);}console[b8(0x451)](a0L['bold'][b8(0x4b3)](b8(0x18d)+z[b8(0x47c)]+'.\x20')+a0L['white'](Y[b8(0x381)]('\x0a')[0x10d7+0x822+-0x18f9]));const a0=Y[b8(0x381)]('\x0a')[b8(0x318)](0x1*-0xd25+0xcb*0x1c+-0x90e);for(const a2 of a0)console[b8(0x451)](a0L[b8(0x4b3)]('\x20\x20'+a2));if(console[b8(0x451)](),Z&&'ai4ctf'===z[b8(0x199)]){const a3=Z[b8(0x222)](process.env.HOME||'','~');console[b8(0x451)](a0L['cyan']('\x20\x20'+a0ai(b8(0x1d0))+'\x20')+a0L[b8(0x4b0)]('('+a0ai(b8(0x315))+'\x20'+a3+'):')),console[b8(0x451)](a0L[b8(0x4b3)](b8(0x245))+a0L[b8(0x20b)](b8(0x3a2)+a3)[b8(0x320)](-0x19ea+0xf7f+0xa9f*0x1)+a0L[b8(0x4b0)]('\x20'+a0ai('examWaysShell'))),console['log'](a0L[b8(0x4b3)](b8(0x423))+a0L[b8(0x20b)](b8(0x3a1))[b8(0x320)](-0x1d4f+-0x17*-0x4+-0x1d13*-0x1)+a0L[b8(0x4b0)]('\x20'+a0ai('examWaysPythonRepl'))),console[b8(0x451)](a0L[b8(0x4b3)]('\x20\x20\x20\x20③\x20')+a0L[b8(0x20b)]('!vi\x20solve.py')+a0L[b8(0x4b0)]('\x20\x20→\x20\x20')+a0L['yellow'](b8(0x23a))),console[b8(0x451)](a0L['white']('\x20\x20\x20\x20④\x20')+a0L[b8(0x20b)](b8(0x39e))[b8(0x320)](0x47e*-0x6+0x2466*0x1+-0x952)+a0L[b8(0x4b0)]('\x20'+a0ai(b8(0x2db)))),console['log'](a0L[b8(0x4b3)](b8(0x218))+a0L[b8(0x20b)](b8(0x2a7))[b8(0x320)](-0x15*0x1a+-0x1c7c+0x1ebe)+a0L['gray']('\x20'+a0ai(b8(0x3b6)))),console[b8(0x451)](),console[b8(0x451)](a0L[b8(0x4b0)]('\x20\x20'+a0ai(b8(0x1b5))+'\x20')+a0L[b8(0x296)][b8(0x182)](b8(0x2c3))),console['log']();}B&&(console['log'](a0L['green'](b8(0x36a)+B)),console[b8(0x451)]());}else{console[b8(0x451)](a0L[b8(0x296)][b8(0x4b3)](b8(0x18d)+z[b8(0x47c)]+'.\x20')+a0L['white'](z[b8(0x2c0)])),console[b8(0x451)]();for(const a4 of['A','B','C','D']){const a5=B===a4;K[b8(0x2f7)](a4)?console[b8(0x451)](a0L[b8(0x4b0)][b8(0x426)](b8(0x336)+a4+'.\x20'+z[b8(0x355)][a4])+a0L[b8(0x34a)]('\x20('+a0ai('wrong')+')')):a5?console[b8(0x451)](a0L[b8(0x182)][b8(0x296)](b8(0x337)+a4+'.\x20'+z[b8(0x355)][a4])):console[b8(0x451)](a0L[b8(0x4b0)]('\x20\x20\x20\x20'+a4+'.')+'\x20'+a0L['white'](z['options'][a4]));}console[b8(0x451)]();}const V=b8(0x1c6)===F?.['session'][b8(0x360)],W=J[b8(0x317)][-0xca7+0x8c8+0x3e1]||-0xf31*-0x1+-0x1*-0x16fd+-0x262e;V&&0x1ea9+0x19c1+-0x8*0x70d===z[b8(0x47c)]&&-0x16a*0x5+-0x2*-0x511+-0x310===W&&(console[b8(0x451)](a0L[b8(0x20b)][b8(0x296)]('\x20\x20'+a0ai(b8(0x2cf)))),console[b8(0x451)]());const X=J['max']-J[b8(0x43a)];if(console[b8(0x451)](a0L[b8(0x4b0)](b8(0x1e9))),L){const a6=F&&b8(0x1c6)!==F['session'][b8(0x360)]&&z['number']>=-0x40*-0x17+-0x15af+-0x1*-0x1016&&z[b8(0x47c)]<=0x13*-0x13e+-0xa7a+0x4*0x88f,a7=F&&b8(0x1c6)!==F[b8(0x1cb)]['examId']&&z[b8(0x47c)]>=0x1964+0x1b95+-0x34da&&z[b8(0x47c)]<=-0x1*-0x1bf1+-0x1*0x5ff+-0x15cc;b8(0x1af)===z['type']?console[b8(0x451)](a0L[b8(0x296)]['cyan'](b8(0x2bf))+a0L[b8(0x4b0)](b8(0x28e))):a7?console['log'](a0L[b8(0x296)]['green'](b8(0x2d9))+a0L[b8(0x4b0)]('\x20\x20\x20\x20\x20\x20\x20\x20enter\x20AI4CTF\x20chat\x20for\x20this\x20question\x20(recommended)')):a6&&console[b8(0x451)](a0L[b8(0x296)]['red']('\x20\x20\x20\x20ctf4ai')+a0L[b8(0x4b0)](b8(0x287))),console[b8(0x451)](a0L[b8(0x20b)]('\x20\x20\x20\x20exam\x20answer\x20<n>\x20ICOA{...}')+a0L[b8(0x4b0)]('\x20\x20submit\x20flag\x20directly')),console[b8(0x451)](a0L[b8(0x20b)](b8(0x4a1))+a0L[b8(0x4b0)](b8(0x35c)));}else{const a8=J['max']>=-0x68a+-0x3f+-0x39*-0x1f,a9=X>0x115e*0x2+0x9*0x1b5+-0x3219?a0L[b8(0x4b0)](a0ai(b8(0x1f2))+'\x20')+a0L['yellow']('('+X+'/'+J['max']+')'):a8?a0L[b8(0x4b0)](a0ai(b8(0x43c))+'\x20('+J[b8(0x43a)]+'/'+J[b8(0x1bd)]+')'):a0L[b8(0x4b0)](''+a0ai(b8(0x48a)));console[b8(0x451)](a0L['yellow']('\x20\x20\x20\x20A/B/C/D')+a0L['gray']('\x20\x20\x20\x20\x20\x20\x20'+a0ai('answerThis'))),console['log'](a0L[b8(0x20b)](b8(0x2ec))+b8(0x43b)+a9);}console[b8(0x451)](a0L[b8(0x20b)](b8(0x414))+a0L['gray']('\x20/\x20')+a0L[b8(0x20b)](b8(0x2fd))+a0L[b8(0x4b0)](b8(0x336)+a0ai('htpNav'))),console[b8(0x451)](a0L[b8(0x20b)](b8(0x42a)+G)+a0L[b8(0x4b0)]('\x20\x20\x20'+a0ai('htpJump'))),console[b8(0x451)](a0L[b8(0x20b)](b8(0x1ec))+a0L['gray'](b8(0x43b)+a0ai('htpMark'))),console[b8(0x451)](a0L[b8(0x20b)](b8(0x3bc))+a0L[b8(0x4b0)]('\x20\x20\x20'+a0ai(b8(0x374)))),console[b8(0x451)](a0L[b8(0x296)]['yellow'](b8(0x2dc))+a0L[b8(0x4b0)](b8(0x1ca)+a0ai(b8(0x26e)))),console['log'](a0L[b8(0x20b)]('\x20\x20\x20\x20back')+a0L[b8(0x4b0)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0ai(b8(0x4aa)))),console[b8(0x451)](a0L['yellow'](b8(0x390))+a0L[b8(0x4b0)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0ai(b8(0x471)))),console[b8(0x451)](a0L[b8(0x4b0)](b8(0x1e9)));}export function registerExamCommand(z){const be=a0B,B=z[be(0x195)]('exam')[be(0x459)](be(0x392));B[be(0x195)](be(0x2c7))[be(0x459)]('View\x20all\x20participating\x20countries')[be(0x1a5)](()=>{const bf=be;a0a8(bf(0x22d)),console['log'](),a0ae(bf(0x1e2)),console['log']();const F=[['AU','Australia'],['BD','Bangladesh'],['BI',bf(0x270)],['BR',bf(0x240)],['CN','China'],['DE','Germany'],['EG','Egypt'],['FR',bf(0x409)],['GH',bf(0x31f)],['ID',bf(0x331)],['IN',bf(0x2c2)],['JP','Japan'],['KR',bf(0x458)],['LA',bf(0x258)],['LK','Sri\x20Lanka'],['MM',bf(0x19f)],['MO',bf(0x33d)],['MY','Malaysia'],['NZ',bf(0x3ea)],['PE',bf(0x2bc)],['PH',bf(0x3ad)],['RU','Russia'],['SA',bf(0x44d)],['SG','Singapore'],['TH',bf(0x201)],['TR',bf(0x45f)],['UK',bf(0x38b)],['US','United\x20States'],['UZ','Uzbekistan'],['VN',bf(0x253)],['ZA',bf(0x1b8)]];for(let G=0x3*0x71f+0x61*-0x37+0x86*-0x1;G<F[bf(0x1d4)];G+=0x55d*0x2+-0x4*-0x12e+0x9*-0x1b7){const H=F['slice'](G,G+(-0x7*0x4eb+-0x1*0x35+0x22a5))['map'](([J,K])=>'\x20\x20'+a0L[bf(0x28a)](J)+'\x20\x20'+a0L[bf(0x4b0)](K[bf(0x320)](0x25b7+0x2ee+0x3*-0xd87)))['join']('');console[bf(0x451)](H);}console[bf(0x451)](),console[bf(0x451)](a0L['gray'](bf(0x335))),console[bf(0x451)](a0L[bf(0x4b0)](bf(0x2d3))),console['log'](),console['log'](a0L['white'](bf(0x472))),console[bf(0x451)](a0L[bf(0x28a)](bf(0x4ac))+a0L[bf(0x4b0)](bf(0x328))+a0L[bf(0x4b0)]('\x20\x20\x20\x20\x20exam\x20list\x20CN')),console[bf(0x451)]();}),B['command'](be(0x2b0))[be(0x459)](be(0x4c3))[be(0x1a5)](async F=>{const bg=be;a0a8(bg(0x419)+(F||''));const G=M();if(!G)return;const H=a0ag('Loading\x20exams...');H[bg(0x2e0)]();try{let J=await G[bg(0x31c)]();if(H['stop'](),F){const Q=F[bg(0x398)]();J=J[bg(0x1e1)](V=>V[bg(0x3c7)]['toUpperCase']()===Q||bg(0x207)===V[bg(0x3c7)]);}if(!J||0x1215+0x1*-0xfd4+-0x241===J[bg(0x1d4)]){console[bg(0x451)](),a0ac(F?bg(0x1a2)+F[bg(0x398)]()+bg(0x30c):'No\x20exams\x20available\x20for\x20your\x20country\x20yet.'),console[bg(0x451)](),console[bg(0x451)](a0L['white'](bg(0x310))),console[bg(0x451)](a0L[bg(0x4b0)](bg(0x341))),console[bg(0x451)](),console[bg(0x451)](a0L[bg(0x4b0)](bg(0x368))+a0L['bold']['cyan'](bg(0x3c9))),console[bg(0x451)]();const V={};V['PE']='es',V['CN']='zh',V['JP']='ja',V['KR']='ko',V['BR']='pt',V['SA']='ar',V['FR']='fr',V['DE']='de',V['IN']='hi',V['ID']='id',V['TH']='th',V['VN']='vi',V['TR']='tr',V['RU']='ru',V['UA']='uk',V['HT']='ht',V['KE']='sw',V['TZ']='sw';const W=V,X=(F||'')[bg(0x398)]();return void(W[X]&&(console[bg(0x451)](a0L[bg(0x4b0)](bg(0x292)+W[X])),console[bg(0x451)]()));}const K=J[bg(0x236)](Y=>{const bh=bg,Z=bh(0x2e1)===Y[bh(0x44a)]?a0L[bh(0x182)]:bh(0x3ff)===Y[bh(0x44a)]?a0L['yellow']:a0L['white'];return[a0L[bh(0x4b3)](Y['id']),Y[bh(0x2ff)],a0L['cyan'](Y['country']),String(Y['questionCount']),Y['durationMinutes']+bh(0x2ea),Z(Y[bh(0x44a)])];}),L=[...new Set(J['map'](Y=>Y[bg(0x3c7)]))];a0ae(F?bg(0x32a)+F['toUpperCase']():bg(0x28c)+L[bg(0x1d4)]+'\x20regions)'),a0ad(['ID',bg(0x265),'Country',bg(0x2af),bg(0x3a9),bg(0x46e)],K),console[bg(0x451)](),console['log'](a0L[bg(0x4b0)](bg(0x19c))),L[bg(0x1d4)]>-0xb*-0x1f+-0x1*-0x17a5+-0x3*0x853&&console[bg(0x451)](a0L[bg(0x4b0)]('\x20\x20Filter\x20by\x20country:\x20exam\x20list\x20PE,\x20exam\x20list\x20CN,\x20...'));}catch(Y){H[bg(0x3b9)](bg(0x215)),a0aa(Y[bg(0x250)]);}}),B[be(0x195)](be(0x1a7))[be(0x459)](be(0x1a4))['action'](async F=>{const bi=be;a0a8('exam\x20start\x20'+F);const G=a0Y();if(G)return a0ab(bi(0x38d)+G[bi(0x1cb)][bi(0x367)]+bi(0x2f4)),void a0ac(bi(0x26f));const H=M();if(!H)return;const J=await a0Q({'message':a0L[bi(0x4b3)](bi(0x221)),'default':!(-0x1d6*-0x5+0x2109+0x2a37*-0x1),'theme':{'prefix':'','style':{'message':K=>K,'defaultAnswer':K=>a0L[bi(0x182)](K)}}});if(J){console[bi(0x451)]();try{N(0x231f+0x174e+-0x3a6d,bi(0x316));const {session:K,questions:L}=await H['startExam'](F);N(-0x1*-0x13ea+-0xfb1*-0x1+-0x237d,'Loading\x20questions...'),await q(-0x1*-0x12db+-0x1f4e+0xd3b),N(-0x1*0xe0f+-0x6d+0x3*0x4e8,bi(0x1aa)),await q(0xc*-0xa2+0xd6*-0x6+0xd64),N(0x5*0x22d+-0x32e*-0xa+-0x2a53,bi(0x2be)),await q(-0x39*0x65+0x9c1+0xd52),a0Z({'session':K,'questions':L,'answers':{}}),N(-0x6*0x3ad+-0x15e3+0x2c55,bi(0x481)),console[bi(0x451)](),console[bi(0x451)](),a0ae(K['examName']),a0af(bi(0x2af),String(K[bi(0x29e)])),a0af(bi(0x3a9),K[bi(0x36c)]+bi(0x4b9)),a0af(bi(0x3a5),K[bi(0x3c7)]),O(),L[bi(0x1d4)]>-0x226b+-0x1e34+-0xe9*-0x47&&U(L[0xc2c+-0x131e+0x6f2]);}catch(Q){console[bi(0x451)](),a0aa(Q[bi(0x250)]);}}}),B[be(0x195)](be(0x349))[be(0x459)](be(0x43e))[be(0x1a5)](async F=>{const bj=be;a0a8('exam\x20q\x20'+(F||bj(0x2d2)));const {refetchQuestionDataIfStale:G}=await import(bj(0x384));await G();const H=a0Y();if(H){if(O(),F){const J=parseInt(F,-0x2668+0x11e7+0x148b),K=H[bj(0x4a5)][bj(0x1a1)](L=>L[bj(0x47c)]===J);if(!K)return void a0aa(bj(0x434)+F+bj(0x4c0)+H[bj(0x4a5)]['length']+').');H['_lastQ']=J,a0Z(H),U(K,H[bj(0x1d6)][J]);}else{a0ae(''+H[bj(0x1cb)]['examName']);const L=Object[bj(0x464)](H[bj(0x1d6)])[bj(0x1d4)];a0af(bj(0x47e),L+'/'+H[bj(0x1cb)][bj(0x29e)]+'\x20answered'),console[bj(0x451)]();for(const Q of H[bj(0x4a5)]){const V=H[bj(0x1d6)][Q['number']],W=V?a0L[bj(0x182)]('['+V+']'):a0L[bj(0x4b0)]('[\x20]'),X=Q[bj(0x417)]?a0L[bj(0x4b0)]('\x20['+Q[bj(0x417)]+']'):'';console[bj(0x451)]('\x20\x20'+W+'\x20'+a0L[bj(0x4b3)]('Q'+Q[bj(0x47c)])+X+'\x20'+a0L[bj(0x4b0)](Q[bj(0x2c0)][bj(0x19a)](-0x44*-0x6b+0x9fd*0x1+-0x2669,0x1*-0xed7+-0x22b7+-0x18e5*-0x2))+(Q[bj(0x2c0)][bj(0x1d4)]>0x124a+-0x6*-0x476+-0x2cd2?bj(0x346):''));}console['log']();}}else a0aa('No\x20exam\x20in\x20progress.\x20Use\x20\x22exam\x20start\x20<id>\x22\x20to\x20begin.');}),B[be(0x195)](be(0x232))[be(0x459)](be(0x28b))['action'](F=>{const bk=be;a0a8(bk(0x2de)+(F||''));const G=a0Y();if(!G)return void a0aa(bk(0x312));const H=G['questions']['length'],J=F?parseInt(F,0x768*-0x2+0x1b99+-0xcbf):G[bk(0x484)]||0xda8+0x14*-0xef+0x505*0x1;if(Number[bk(0x1ae)](J)||J<-0x2*-0xf4f+-0xb9*0x10+0x130d*-0x1||J>H)return void a0aa(bk(0x34f)+H+'.');const K=D(G,J);console[bk(0x451)](),K?console['log'](a0L[bk(0x20b)](bk(0x4ab)+J+bk(0x3f7))):console[bk(0x451)](a0L[bk(0x4b0)](bk(0x394)+J+bk(0x248)));const L=Array[bk(0x2a6)](G[bk(0x277)])?G[bk(0x277)]:[];L[bk(0x1d4)]>0x667*-0x6+0x1052+0x1618&&console[bk(0x451)](a0L['gray'](bk(0x447)+L[bk(0x236)](Q=>'Q'+Q)['join'](',\x20'))),console[bk(0x451)](a0L[bk(0x4b0)]('\x20\x20See\x20all\x20flagged\x20questions\x20in:\x20')+a0L[bk(0x4b3)]('exam\x20review')),console[bk(0x451)]();}),B['command'](be(0x49e))[be(0x459)](be(0x285))[be(0x1a5)](F=>{const bl=be;a0a8(bl(0x462)+(F||''));const G=a0Y();if(!G)return void a0aa(bl(0x312));const H=G[bl(0x4a5)][bl(0x1d4)],J=F?parseInt(F,0x1f38+0xb55+-0x2a83):G[bl(0x484)]||-0x1408+-0x152+0x155b;Number['isNaN'](J)||J<0x1c79+-0x23b*0x4+-0x138c||J>H?a0aa('Invalid\x20question\x20number.\x20Use\x201..'+H+'.'):j(G,J)?(D(G,J),console[bl(0x451)](),console['log'](a0L[bl(0x4b0)]('\x20\x20☆\x20Q'+J+bl(0x248))),console['log']()):console[bl(0x451)](a0L[bl(0x4b0)](bl(0x18d)+J+'\x20was\x20not\x20flagged.'));}),B[be(0x195)](be(0x41f))[be(0x459)](be(0x26d))[be(0x1a5)](()=>{const bm=be;a0a8(bm(0x2c5));const F=a0Y();if(!F)return void a0aa('No\x20exam\x20in\x20progress.');F['questions'][bm(0x3f5)](K=>!F[bm(0x1d6)][K['number']]);const G=F['_lastQ']||0x554+0x27b*0x1+-0x7ce,H=Math[bm(0x348)](G+(0xc*0x9d+0x12f*-0x10+0xb95*0x1),F[bm(0x4a5)][bm(0x1d4)]);F[bm(0x484)]=H,a0Z(F);const J=F[bm(0x4a5)][H-(0x1b02+-0x18ec+-0x215*0x1)];U(J,F['answers'][J[bm(0x47c)]]);}),B[be(0x195)]('prev')[be(0x459)](be(0x488))[be(0x1a5)](()=>{const bn=be;a0a8(bn(0x2ef));const F=a0Y();if(!F)return void a0aa(bn(0x312));const G=F['_lastQ']||-0x45+0x2*-0xbd7+-0x4*-0x5fd,H=Math[bn(0x1bd)](G-(0x106a+-0xdd*0x27+-0x1*-0x1142),0x142b+0x1c66+-0x3090);F[bn(0x484)]=H,a0Z(F);const J=F['questions'][H-(0x2381+-0x1*-0x231a+-0x469a)];U(J,F['answers'][J[bn(0x47c)]]);}),B[be(0x195)](be(0x281))['description'](be(0x420))[be(0x1a5)](async()=>{const bo=be;a0a8(bo(0x235));const F=a0Y();if(!F)return void a0aa(bo(0x312));const G=R(F),H=F[bo(0x484)]||0x167c+0x2615+-0x3c90,J=G[bo(0x317)][H]||-0x10*0x116+0x116*0x1e+-0xf34,K=G['eliminated'][H]||[],L=F[bo(0x4a5)][bo(0x1a1)](W=>W[bo(0x47c)]===H);if(!L)return;if(J>=-0x1b97+0x1504+0x1*0x695)return console['log'](),console['log'](a0L[bo(0x20b)](bo(0x42d))),console['log'](a0L[bo(0x4b0)](bo(0x246))),console['log'](),void U(L,F[bo(0x1d6)][L[bo(0x47c)]]);const Q=['A','B','C','D']['filter'](W=>!K[bo(0x2f7)](W));if(Q['length']<=0x2f9*-0x6+-0x103+0x12db)return console[bo(0x451)](),console[bo(0x451)](a0L['yellow'](bo(0x3d8))),console[bo(0x451)](),void U(L,F[bo(0x1d6)][L[bo(0x47c)]]);if(G[bo(0x43a)]>=G[bo(0x1bd)]){const W=G[bo(0x1bd)]>=0x5*0x2ce+-0x12a1+0x1*0x4b9,X=-0x388*0x3+0xe5*-0x2+0xc80-G[bo(0x1bd)];return void(W?(console['log'](),console[bo(0x451)](a0L[bo(0x4b0)]('\x20\x20All\x20help\x20used\x20('+G[bo(0x43a)]+'/'+G[bo(0x1bd)]+bo(0x3a6))),console[bo(0x451)]()):(console[bo(0x451)](),console[bo(0x451)](a0L[bo(0x20b)]('\x20\x20Help\x20used:\x20'+G[bo(0x43a)]+'/'+G[bo(0x1bd)])),console[bo(0x451)](a0L[bo(0x4b3)]('\x20\x20Need\x20more?\x20Type:\x20')+a0L[bo(0x296)][bo(0x20b)](bo(0x30e))+a0L[bo(0x4b0)](bo(0x190)+X+'\x20bonus\x20uses)')),console[bo(0x451)]()));}const V=Y=>{const bp=bo;K[bp(0x3ae)](Y),G[bp(0x28f)][H]||(G['eliminated'][H]=[]),G['eliminated'][H]=K,G[bp(0x317)][H]=J+(-0x661+0x1a60+-0x13fe),G[bp(0x43a)]++,F[bp(0x24e)]=G[bp(0x43a)],F[bp(0x478)]=G[bp(0x1bd)],F[bp(0x397)]=G[bp(0x317)],F[bp(0x286)]=G[bp(0x28f)],F['interactions']||(F[bp(0x1a0)]=[]),F[bp(0x1a0)]['push']({'ts':new Date()[bp(0x21e)](),'q':H,'type':bp(0x439),'result':bp(0x251)+Y}),a0Z(F),console[bp(0x451)](),console[bp(0x451)](a0L['yellow']('\x20\x20💡\x20Option\x20'+Y+bp(0x3b5))+a0L[bp(0x4b0)](bp(0x3fd)+G[bp(0x43a)]+'/'+G[bp(0x1bd)]+')')),U(L,F[bp(0x1d6)][L[bp(0x47c)]]);};if(bo(0x1c6)===F[bo(0x1cb)][bo(0x360)]&&L[bo(0x260)])(Y=>{const bq=bo,Z=Q[bq(0x1e1)](a0=>a0!==Y&&!K['includes'](a0));0x195e+0x2a7*-0x7+-0x6cd!==Z[bq(0x1d4)]&&V(Z[Math['floor'](Math[bq(0x40a)]()*Z[bq(0x1d4)])]);})(L['answer']);else{const Y=a0W()[bo(0x49c)]||bo(0x191),Z=F[bo(0x1cb)]?.[bo(0x2a5)]||'';try{const a0={};a0[bo(0x268)]=bo(0x48e),a0[bo(0x202)]=bo(0x2b2);const a1={};a1['token']=Z,a1[bo(0x366)]=H,a1[bo(0x28f)]=K;const a2=await fetch(Y+bo(0x18b)+F[bo(0x1cb)][bo(0x360)]+bo(0x460),{'method':bo(0x1c8),'headers':a0,'body':JSON[bo(0x3f2)](a1),'signal':AbortSignal[bo(0x186)](-0x2165*-0x1+-0x6*0x1de+-0x2a9*0x1)}),a3=await a2[bo(0x26c)](),a4=a3?.[bo(0x227)]?.[bo(0x2eb)];a4&&['A','B','C','D'][bo(0x2f7)](a4)?V(a4):(console[bo(0x451)](),console[bo(0x451)](a0L[bo(0x4b0)](bo(0x35a))));}catch{console[bo(0x451)](),console[bo(0x451)](a0L['gray'](bo(0x20d)));}}}),B[be(0x195)](be(0x1f6))[be(0x459)](be(0x2f1))[be(0x1a5)](()=>{const br=be;a0a8(br(0x415));const F=a0Y();if(!F)return void a0aa(br(0x312));const G=R(F),H=br(0x1c6)===F[br(0x1cb)][br(0x360)]?0x2116+-0x95f+-0x17af:-0x368+0x25*-0x9e+0x1a5c;if(G['max']>=H)return void console['log'](a0L[br(0x4b0)](br(0x4b7)));if(G[br(0x43a)]<G[br(0x1bd)])return void console[br(0x451)](a0L['gray']('\x20\x20You\x20still\x20have\x20'+(G[br(0x1bd)]-G[br(0x43a)])+br(0x24c)));const J=H-G[br(0x1bd)];F[br(0x478)]=H,a0Z(F),console[br(0x451)](),console[br(0x451)](a0L[br(0x182)](br(0x46f)+J+br(0x4b1)+J+'/'+H+br(0x304))),console[br(0x451)](a0L['gray'](br(0x3e7))),console[br(0x451)]();}),B[be(0x195)](be(0x300))[be(0x459)](be(0x351))['action'](async(F,G)=>{const bs=be,H=G[bs(0x1e6)]('\x20');a0a8(bs(0x3b7)+F+'\x20'+H);const J=a0Y();if(!J)return void a0aa(bs(0x2a4));if(!(function(){const bt=bs,Z=a0a1();if(!Z)return!(-0xbe*0x20+-0x1*-0x2225+0x377*-0x3);if(new Date()>=Z){const a0=a0Y();if(a0){const a1=Object['keys'](a0[bt(0x1d6)])[bt(0x1d4)];'demo-free'===a0[bt(0x1cb)][bt(0x360)]||-0x1b5*-0x1+0xa10+0x17*-0x83===a1?(a0a0(),a0ab('Exam\x20expired\x20and\x20cleared.'),a0ac(bt(0x261))):(a0aa(bt(0x343)),a0ac(bt(0x308)));}return!(0x1f30+0xd4+0x37*-0x95);}return!(0x1c1*-0x13+-0x22c3+0x4416);}()))return;const K=parseInt(F,-0x1639*0x1+-0x19d5+0xc06*0x4),L=J[bs(0x4a5)][bs(0x1a1)](Z=>Z['number']===K);if(!L)return void a0aa('Question\x20'+F+bs(0x4c0)+J[bs(0x4a5)][bs(0x1d4)]+').');let Q;if(bs(0x2a7)===L['type']||bs(0x25c)===L[bs(0x199)]||bs(0x1af)===L[bs(0x199)]||L['options']&&!L[bs(0x355)]['A']&&!L['options']['B']){if(Q=H[bs(0x45b)](),/^submit\s+/i[bs(0x39f)](Q)&&(Q=Q[bs(0x222)](/^submit\s+/i,'')[bs(0x45b)]()),Q=Q[bs(0x222)](/^["'`]+|["'`]+$/g,'')['trim'](),!Q)return void a0aa(bs(0x3ca));if(/^[A-Da-d]$/[bs(0x39f)](Q))return a0aa('Q'+K+bs(0x494)),void console[bs(0x451)](a0L[bs(0x4b0)](bs(0x4ae))+a0L[bs(0x182)]('exam\x20answer\x20'+K+bs(0x498)));}else{if(Q=H[bs(0x398)](),!['A','B','C','D'][bs(0x2f7)](Q))return void a0aa(bs(0x18a));}if('demo-free'===J[bs(0x1cb)][bs(0x360)]&&-0x12b1+0xe38+0x47b===K&&-0x144*-0x12+-0x10c2+-0x606===(R(J)[bs(0x317)][0x12b7+0x1*-0x2363+0x1*0x10ae]||-0x89*-0x43+-0xcf1*0x3+0x5*0x98))return console[bs(0x451)](),console[bs(0x451)](a0L[bs(0x20b)](bs(0x2f0))+a0L[bs(0x296)][bs(0x20b)](bs(0x281))+a0L[bs(0x20b)]('\x20first\x20to\x20see\x20what\x20it\x20does!')),console['log'](a0L[bs(0x4b0)](bs(0x32e))),void console[bs(0x451)]();const V=J[bs(0x1d6)][K];J['interactions']||(J['interactions']=[]),J[bs(0x1a0)]['push']({'ts':new Date()[bs(0x21e)](),'q':K,'type':V?bs(0x298):bs(0x2c1),'input':Q,'result':V?'changed\x20from\x20'+V:bs(0x3e3)}),J[bs(0x1d6)][K]=Q,J[bs(0x484)]=K,a0Z(J),console[bs(0x451)](a0L['gray']('\x20\x20\x20\x20✓\x20saved'));const W=J[bs(0x1cb)][bs(0x2a5)];if(W&&bs(0x1c6)!==J[bs(0x1cb)][bs(0x360)]){const Z=(a0W()[bs(0x49c)]||bs(0x191))+bs(0x18b)+J[bs(0x1cb)][bs(0x360)]+bs(0x1f4),a0={};a0[bs(0x268)]=bs(0x48e);const a1={};a1['token']=W,a1[bs(0x366)]=K,a1[bs(0x260)]=Q,fetch(Z,{'method':'POST','headers':a0,'body':JSON[bs(0x3f2)](a1),'signal':AbortSignal[bs(0x186)](0x1*0x73d+0x3*0x121+0x8e8)})[bs(0x39a)](()=>{});}const X=Object['keys'](J[bs(0x1d6)])['length'],Y=J[bs(0x1cb)]['questionCount'];if(a0a9('Q'+K+':\x20'+Q+bs(0x2c4)+X+'/'+Y+bs(0x25f)),bs(0x1c6)===J[bs(0x1cb)][bs(0x360)]&&L['answer']){const a2=[bs(0x450),bs(0x3b4),bs(0x1a9),bs(0x2a0),bs(0x31a)],a3=[bs(0x2a9),bs(0x2b4),bs(0x352)],a4=Q===L[bs(0x260)]?a2:a3,a5=a4[Math[bs(0x3e2)](Math[bs(0x40a)]()*a4[bs(0x1d4)])];console[bs(0x451)](a0L[bs(0x4b0)]('\x20\x20\x20\x20·\x20'+a5));}if(K<J['questions'][bs(0x1d4)]){const a6=J[bs(0x4a5)][K];J['_lastQ']=a6[bs(0x47c)],a0Z(J),U(a6,J[bs(0x1d6)][a6[bs(0x47c)]]);}else X>=J[bs(0x4a5)]['length']&&(console[bs(0x451)](),console[bs(0x451)](a0L[bs(0x182)][bs(0x296)](bs(0x327))),console[bs(0x451)](),bs(0x1c6)===J[bs(0x1cb)][bs(0x360)]?(console[bs(0x451)](a0L[bs(0x4b3)](bs(0x25a))+a0L[bs(0x296)][bs(0x28a)](bs(0x20f))+a0L['white'](bs(0x43d))),console['log']()):console[bs(0x451)](a0L[bs(0x4b3)](bs(0x46d))));}),B[be(0x195)](be(0x33b))[be(0x459)](be(0x3a4))[be(0x1a5)](()=>{const bu=be;a0a8(bu(0x22a));const F=a0Y();if(!F)return void a0aa(bu(0x312));a0ae(bu(0x3f9)+F[bu(0x1cb)]['examName']),O(),console[bu(0x451)]();let G='\x20\x20';const H=Array[bu(0x2a6)](F['bookmarks'])?F['bookmarks']:[];for(const Q of F[bu(0x4a5)]){const V=F[bu(0x1d6)][Q['number']],W=H['includes'](Q[bu(0x47c)]),X=W?'★':'\x20';G+=V?W?a0L[bu(0x296)]['yellow']('Q'+String(Q[bu(0x47c)])[bu(0x22e)](0x2702+0x203b+0x209*-0x23)+X+'['+V+']\x20'):a0L[bu(0x182)]('Q'+String(Q['number'])[bu(0x22e)](0x2*0x7f8+0xa51*-0x1+-0x1*0x59d)+'\x20['+V+']\x20\x20'):W?a0L[bu(0x296)]['yellow']('Q'+String(Q[bu(0x47c)])[bu(0x22e)](-0x2*0x31+0x254+-0x2*0xf8)+X+bu(0x433)):a0L[bu(0x20b)]('Q'+String(Q[bu(0x47c)])[bu(0x22e)](0x124*-0x3+0x6b6+0x78*-0x7)+bu(0x345)),Q[bu(0x47c)]%(0x446+-0x253d+0x20fd)==0x1f0b+-0x85*0x35+0x1*-0x382&&(console['log'](G),G='\x20\x20');}G['trim']()&&console['log'](G);const J=Object['keys'](F[bu(0x1d6)])[bu(0x1d4)],K=F['session'][bu(0x29e)],L=K-J;if(console[bu(0x451)](),a0af(bu(0x1e8),a0L[bu(0x182)]['bold'](J+'/'+K)),L>-0x240*-0xb+-0xdf2+-0xace){const Y=F[bu(0x4a5)][bu(0x1e1)](Z=>!F['answers'][Z[bu(0x47c)]])['map'](Z=>Z[bu(0x47c)])['join'](',\x20');a0af(bu(0x477),a0L['yellow'](L+'\x20(Q'+Y+')'));}H[bu(0x1d4)]>-0x245c+0x314+-0x2*-0x10a4&&a0af('Flagged\x20for\x20review',a0L[bu(0x296)][bu(0x20b)]('★\x20'+H[bu(0x1d4)])+a0L[bu(0x4b0)]('\x20('+H[bu(0x236)](Z=>'Q'+Z)['join'](',\x20')+')')),console['log'](),H[bu(0x1d4)]>0x1*-0x14cf+-0x1065+-0x2534*-0x1&&console[bu(0x451)](a0L[bu(0x4b0)](bu(0x2b9))+a0L[bu(0x4b3)](bu(0x404)+H[0x254b*-0x1+0x1*-0x266d+0x25dc*0x2])),console[bu(0x451)](a0L[bu(0x4b0)](bu(0x247))+a0L[bu(0x296)][bu(0x28a)](bu(0x20f))+a0L[bu(0x4b0)](bu(0x31d)));}),B[be(0x195)](be(0x421))[be(0x459)](be(0x2f8))[be(0x1a5)](async(J,K)=>{const bv=be;a0a8(bv(0x1f7)+(J||'')+'\x20'+(K||''));const L=a0Y();if(L&&bv(0x203)===J&&!K&&(L[bv(0x263)]=!(-0x2469+0xb*0x22d+0xc7a),a0Z(L)),!L)return void a0aa(bv(0x312));const Q=Object[bv(0x464)](L[bv(0x1d6)])[bv(0x1d4)],V=L[bv(0x1cb)][bv(0x29e)],W=V-Q;if(0x21c*0xf+0x5b*0x3+0x1*-0x20b5===Q){const a0=a0a1(),a1=a0&&new Date()>=a0;return void(bv(0x1c6)===L[bv(0x1cb)][bv(0x360)]||a1?(a0a0(),a0ab(bv(0x3d4)),a0ac(bv(0x261))):(a0ab('No\x20answers\x20to\x20submit.'),a0ac(bv(0x2f3))));}const X=a0a1(),Y=!!(X&&new Date()>=X);if(bv(0x1c6)!==L[bv(0x1cb)][bv(0x360)]&&!Y&&bv(0x203)===J&&Q<-0x23f4+-0x1134+0x3532){if((K||'')[bv(0x45b)]()!==String(Q))return console[bv(0x451)](),console[bv(0x451)](a0L[bv(0x34a)](bv(0x2ac))),console[bv(0x451)](a0L[bv(0x296)]['red'](bv(0x2d5)+Q+'/'+V+bv(0x1d1))),console[bv(0x451)](a0L[bv(0x34a)](bv(0x2ac))),console[bv(0x451)](),console[bv(0x451)](a0L[bv(0x4b3)](bv(0x33a))+a0L[bv(0x296)]['yellow'](''+Q)+a0L[bv(0x4b3)](bv(0x1f0))+a0L[bv(0x4b3)](''+V)+a0L[bv(0x4b3)](bv(0x338))),console[bv(0x451)](a0L[bv(0x4b3)](bv(0x2f9))+a0L[bv(0x296)]['red'](Q+'/'+V+bv(0x32d))),console[bv(0x451)](),console['log'](a0L[bv(0x296)][bv(0x4b3)](bv(0x283))),console[bv(0x451)](a0L[bv(0x4b0)](bv(0x336))+a0L['cyan'](bv(0x489))+a0L[bv(0x4b0)](bv(0x1fc))),console['log'](a0L['gray'](bv(0x336))+a0L[bv(0x28a)](bv(0x22a))+a0L[bv(0x4b0)]('\x20\x20(see\x20which\x20questions\x20are\x20blank)')),console[bv(0x451)](),console[bv(0x451)](a0L[bv(0x296)][bv(0x4b3)](bv(0x402))+a0L['bold'][bv(0x20b)](''+Q)+a0L[bv(0x296)][bv(0x4b3)](bv(0x4bd))),console[bv(0x451)](a0L[bv(0x4b0)]('\x20\x20\x20\x20')+a0L[bv(0x296)][bv(0x28a)](bv(0x455)+Q)),console[bv(0x451)](a0L['gray']('\x20\x20(yes\x20—\x20literally\x20type\x20the\x20number\x20'+Q+bv(0x311))),console[bv(0x451)](),void(L[bv(0x263)]&&(delete L[bv(0x263)],a0Z(L)));L[bv(0x263)]=!(-0x5*-0x79f+0x131d*-0x1+-0xb*0x1ba),a0Z(L);}if(bv(0x1c6)!==L[bv(0x1cb)]['examId']){const a2=!(0x20a1+-0xb*-0x1f5+-0x2*0x1b14)===L['_submitConfirmed'],a3=a0a1(),a4=!!(a3&&new Date()>=a3);if(!a2&&!a4){if(console[bv(0x451)](),console[bv(0x451)](a0L[bv(0x34a)](bv(0x347))),console[bv(0x451)](a0L[bv(0x296)]['red'](bv(0x3a0))),console['log'](a0L[bv(0x34a)](bv(0x347))),console[bv(0x451)](),console['log'](a0L[bv(0x4b3)]('\x20\x20You\x20will\x20submit\x20'+a0L['bold'][bv(0x182)](Q+'/'+V)+'\x20answers.')),W>0x1*0x62+0x1d2*0x3+-0x58*0x11){const a6=L[bv(0x4a5)][bv(0x1e1)](a7=>!L[bv(0x1d6)][a7[bv(0x47c)]])[bv(0x236)](a7=>'Q'+a7[bv(0x47c)])[bv(0x1e6)](',\x20');console[bv(0x451)](a0L[bv(0x20b)]('\x20\x20'+W+bv(0x291)+a6));}const a5=Array[bv(0x2a6)](L[bv(0x277)])?L['bookmarks']:[];return a5[bv(0x1d4)]>-0x1490+-0x4*-0x2a1+0x4*0x283&&console['log'](a0L['yellow'](bv(0x293)+a5[bv(0x1d4)]+'\x20still\x20flagged\x20for\x20review:\x20'+a5[bv(0x236)](a7=>'Q'+a7)[bv(0x1e6)](',\x20'))),console[bv(0x451)](),console['log'](a0L['white'](bv(0x2d0))+a0L[bv(0x296)][bv(0x34a)](bv(0x3cf))+a0L[bv(0x4b3)](bv(0x4a9))),console[bv(0x451)](),console[bv(0x451)](a0L[bv(0x296)]['white']('\x20\x20To\x20confirm:\x20\x20')+a0L['bold']['cyan']('exam\x20submit\x20confirm')),console[bv(0x451)](a0L[bv(0x4b3)](bv(0x470))+a0L[bv(0x28a)]('exam\x20review')+a0L[bv(0x4b0)](bv(0x3fe))+a0L[bv(0x28a)](bv(0x19e))),void console[bv(0x451)]();}a2&&(delete L[bv(0x263)],a0Z(L));}if(console[bv(0x451)](),bv(0x1c6)===L[bv(0x1cb)]['examId']){try{N(0x1534+-0x232f+-0x4a9*-0x3,a0ai(bv(0x3fa))),await q(0x3d*-0x39+-0x21f9+0x30ba);let a7=0xb11+-0x1*-0x2435+-0x2f46;const a8=[],a9={};for(const al of L[bv(0x4a5)]){const am=al[bv(0x417)]||bv(0x38a),an={};an[bv(0x1fb)]=0x0,an[bv(0x1cf)]=0x0,(a9[am]||(a9[am]=an),a9[am][bv(0x1cf)]++);const ao=L['answers'][al[bv(0x47c)]];ao&&al['answer']&&ao===al[bv(0x260)]?(a7++,a9[am][bv(0x1fb)]++):a8[bv(0x3ae)](al[bv(0x47c)]);}a8[bv(0x436)]((ap,aq)=>ap-aq),N(-0x933+0x121d+0x886*-0x1,a0ai(bv(0x3da))),console[bv(0x451)]();const aa=new Date(L['session'][bv(0x385)])[bv(0x1dd)](),ab=Math[bv(0x1bd)](0x53*0x1e+-0x759+-0x261,Math[bv(0x267)]((Date[bv(0x4a0)]()-aa)/(0x1f38+-0x163b+-0x515))),ac=Math[bv(0x3e2)](ab/(0x529*0x1+0xae9*0x1+-0xfd6))+'m\x20'+ab%(0x2d4+0x5*-0x596+0x1956)+'s',ad=[...L[bv(0x4a5)]],ae={...L['answers']},af=R(L);a0a0();const ag=Math[bv(0x267)](a7/V*(-0x1c53+-0x2528+0x41df)),ah=a0W(),ai={};ai['Content-Type']=bv(0x48e),(fetch(bv(0x3b0),{'method':bv(0x1c8),'headers':ai,'body':JSON[bv(0x3f2)]({'type':bv(0x39c),'score':a7,'total':V,'lang':ah[bv(0x4b2)]||'en','help_used':af[bv(0x43a)],'help_max':af[bv(0x1bd)],'tokens_used':0x0,'solved':ag>=0x894+0x1794+-0x1*0x1fec?-0xbc*0x11+0x35*-0x17+-0x5c0*-0x3:0x130b+-0x13a6+0x9b,'timestamp':new Date()[bv(0x21e)](),'interactions':L[bv(0x1a0)]||[]}),'signal':AbortSignal[bv(0x186)](-0x2e*-0x69+0x270d+-0x2663)})['catch'](()=>{}),console[bv(0x451)](),console['log'](a0L[bv(0x28a)]('\x20\x20═══════════════════════════════════════')),console[bv(0x451)](),console[bv(0x451)](a0L['bold']['white'](bv(0x1ac))),console[bv(0x451)](a0L[bv(0x296)][bv(0x4b3)]('\x20\x20\x20██║██╔════╝██╔═══██╗██╔══██╗')),console['log'](a0L[bv(0x296)][bv(0x4b3)](bv(0x482))),console[bv(0x451)](a0L[bv(0x296)][bv(0x4b3)](bv(0x3e6))),console['log'](a0L[bv(0x296)][bv(0x4b3)](bv(0x359))),console['log'](a0L['bold'][bv(0x4b3)](bv(0x4af))),console[bv(0x451)](),console[bv(0x451)](a0L[bv(0x296)](bv(0x1ca)+a0ai('score')+':\x20'+a7+'/'+V+'\x20('+ag+'%)')),console[bv(0x451)](a0L[bv(0x296)](bv(0x1ca)+(ag>=0x478+0x7d*-0x3b+-0x1893*-0x1?a0L[bv(0x182)](a0ai(bv(0x1ea))):a0L[bv(0x34a)](a0ai(bv(0x1b4)))))),console[bv(0x451)](a0L[bv(0x4b0)](bv(0x25b)+ac)),console['log'](),console[bv(0x451)](a0L[bv(0x20b)](bv(0x3dc))),console[bv(0x451)](a0L[bv(0x4b0)]('\x20\x20\x20Sydney,\x20Australia\x20·\x20Jun\x2027\x20-\x20Jul\x202,\x202026')),console['log'](),console[bv(0x451)](a0L['cyan'](bv(0x3d5))),await q(-0x217d*-0x1+-0x23*0x1a+-0x1237));const aj=Object['entries'](a9);if(aj[bv(0x1d4)]>-0x104a+0x128f+-0x245){console[bv(0x451)](),console[bv(0x451)](a0L[bv(0x296)][bv(0x4b3)]('\x20\x20By\x20category'));const ap=-0x145a+-0x689+0x1aed;for(const [aq,ar]of aj){const as=ar['total']>-0x757*0x2+-0x2673+0x3521*0x1?Math[bv(0x267)](ar[bv(0x1fb)]/ar[bv(0x1cf)]*(0x23a1+0x2*-0x356+-0x1c91*0x1)):0x446*0x3+0x1*-0x22c6+-0x5*-0x464,at=ar[bv(0x1cf)]>0x28d*0xf+-0x1fb*-0x8+0x13*-0x2d9?Math[bv(0x267)](ar[bv(0x1fb)]/ar[bv(0x1cf)]*ap):-0xf6e+-0x258a+-0x4*-0xd3e,au=ap-at,av=as>=0x2b*0xbd+0x4c7*0x1+-0x2436?a0L[bv(0x182)]:as>=-0x2*-0x7fb+0x1caf+-0x1*0x2c73?a0L['yellow']:a0L['red'],aw=av('█'[bv(0x43f)](at))+a0L[bv(0x4b0)]('░'[bv(0x43f)](au));console['log'](bv(0x336)+a0L[bv(0x4b3)](aq[bv(0x320)](-0xab5+-0xa34+-0x1*-0x14fd))+'\x20'+aw+'\x20\x20'+av(ar[bv(0x1fb)]+'/'+ar['total'])+a0L['gray']('\x20('+as+'%)'));}console[bv(0x451)](),console[bv(0x451)](a0L[bv(0x28a)](bv(0x35f)));}const ak=a0a4(a7,V);if(a7===ak[bv(0x20e)]&&ak[bv(0x408)]>0x26*-0xd3+-0x1133+0x1843*0x2&&a7>-0xbf6*0x3+-0xae+0x34*0xb4&&(console[bv(0x451)](),console[bv(0x451)](a0L[bv(0x296)][bv(0x182)](bv(0x3de)))),a8[bv(0x1d4)]>-0x1*0x2125+0x751*-0x3+0x3718){const ax=ad[bv(0x1e1)](ay=>a8['includes'](ay[bv(0x47c)]))[bv(0x236)](ay=>({...ay}));a0a5(ax);}else a0a7();if(await q(-0x2321+-0x140e+0x42e7),a8['length']>-0xa03*-0x1+-0x17b0+0xdad){console[bv(0x451)](),console[bv(0x451)](a0L[bv(0x20b)]('\x20\x20'+a8[bv(0x1d4)]+'\x20'+a0ai('incorrectIntro'))),console[bv(0x451)]();for(const ay of a8){const az=ad[bv(0x1a1)](aC=>aC[bv(0x47c)]===ay);if(!az)continue;const aA=ae[ay],aB=az[bv(0x260)];console['log'](a0L[bv(0x4b3)](bv(0x18d)+ay+'.\x20'+az[bv(0x2c0)])),aA?console[bv(0x451)](a0L['red']('\x20\x20\x20\x20'+a0ai(bv(0x254))+':\x20'+aA+'.\x20'+az[bv(0x355)][aA])):console[bv(0x451)](a0L[bv(0x20b)]('\x20\x20\x20\x20'+a0ai(bv(0x254))+bv(0x467))),aB&&console[bv(0x451)](a0L[bv(0x182)](bv(0x336)+a0ai(bv(0x1fb))+':\x20'+aB+'.\x20'+az[bv(0x355)][aB])),az[bv(0x3c6)]&&console[bv(0x451)](a0L[bv(0x4b0)](bv(0x2a3)+az['explanation'])),console['log']();}}else console['log'](),console['log'](a0L[bv(0x182)]('\x20\x20'+a0ai('perfectScore')));await q(-0x463*0x2+-0x26a7*-0x1+0x15*-0x10d),console['log'](),console[bv(0x451)](a0L['cyan'](bv(0x35f))),console[bv(0x451)](a0L[bv(0x4b3)]('\x20\x20'+a0ai(bv(0x1d2))+'\x20')+a0L['bold']['green'](bv(0x2a7))+a0L[bv(0x4b0)](bv(0x1e7)+a0ai(bv(0x220)))),console[bv(0x451)](a0L['gray']('\x20\x20'+a0ai(bv(0x3e4)))),console['log'](a0L['cyan'](bv(0x35f))),console['log']();}catch(aC){console[bv(0x451)](),a0aa(aC[bv(0x250)]);}return;}const Z=L[bv(0x1cb)]['token'];try{let aD;if(N(0x416+0x125a+-0x1670,'Uploading\x20answers...'),Z){const aN={};aN[bv(0x268)]='application/json';const aO={};aO[bv(0x2a7)]=0x0,aO[bv(0x25c)]=0x0;const aP=a0W()['ctfdUrl']||bv(0x191),aQ=await fetch(aP+'/api/icoa/exams/'+L['session'][bv(0x360)]+bv(0x3fb),{'method':bv(0x1c8),'headers':aN,'body':JSON[bv(0x3f2)]({'token':Z,'answers':L[bv(0x1d6)],'interactions':L['interactions']||[],'aiUsage':L['aiUsage']||aO,'bookmarks':L[bv(0x277)]||[]}),'signal':AbortSignal[bv(0x186)](0x5145+-0x7005+-0xc*-0x772)});if(!aQ['ok']){const aR=await aQ[bv(0x26c)]()['catch'](()=>({'message':bv(0x200)}));throw new Error(aR[bv(0x250)]||bv(0x200));}aD=(await aQ[bv(0x26c)]())['data'];}else{const aS=M();if(!aS)return;aD=await aS[bv(0x2d7)](L[bv(0x1cb)]['examId'],L['answers']);}N(-0xad*-0x4+-0x10a+-0x178,bv(0x2a2)),await q(0xa7*0x38+0x18*-0x12f+-0x6f4),N(-0x1125+-0x8*0x409+0x6d*0x75,bv(0x36f)),console['log']();const aE={};aE[bv(0x2a7)]=0x0,aE[bv(0x25c)]=0x0;const aF={'answered':Object[bv(0x464)](L[bv(0x1d6)])[bv(0x1d4)],'total':L[bv(0x1cb)]['questionCount'],'bookmarks':Array['isArray'](L[bv(0x277)])?L['bookmarks'][bv(0x1d4)]:0x31*-0x48+0x1f2f+-0x37b*0x5,'help':R(L),'aiUsage':L[bv(0x44f)]||aE,'interactions':(L[bv(0x1a0)]||[])[bv(0x1d4)],'durationMin':L[bv(0x1cb)][bv(0x36c)]||-0x3bf*0x1+0x759+-0x2*0x1cd,'confirmedAt':L[bv(0x1cb)][bv(0x262)]||L[bv(0x1cb)]['startedAt'],'examId':L[bv(0x1cb)]['examId']};a0a0();const aG=Math['max'](-0x2*-0x17b+-0x79b+0x4a5,Math[bv(0x267)]((Date[bv(0x4a0)]()-new Date(aF[bv(0x262)])['getTime']())/(0x1*-0x1fe1+-0x217f+0x4548*0x1))),aH=Math[bv(0x3e2)](aG/(0x17*-0x17b+-0x22b9+-0x1*-0x4502)),aI=aG%(0x9*0x139+0x12b1+0x346*-0x9);console['log'](),console[bv(0x451)](a0L[bv(0x28a)](bv(0x363))),console['log'](),console['log'](a0L[bv(0x296)][bv(0x4b3)](bv(0x1ac))),console[bv(0x451)](a0L[bv(0x296)][bv(0x4b3)](bv(0x3c8))),console[bv(0x451)](a0L['bold'][bv(0x4b3)](bv(0x482))),console[bv(0x451)](a0L[bv(0x296)][bv(0x4b3)](bv(0x3e6))),console[bv(0x451)](a0L['bold']['white'](bv(0x359))),console[bv(0x451)](a0L['bold'][bv(0x4b3)]('\x20\x20\x20╚═╝\x20╚═════╝\x20╚═════╝\x20╚═╝\x20\x20╚═╝')),console[bv(0x451)]();const aJ=aD[bv(0x1ea)]?a0L['green'][bv(0x296)](bv(0x2dd)):a0L[bv(0x20b)]['bold']('\x20\x20\x20○\x20\x20Submission\x20accepted');console['log'](aJ),console['log'](),console['log'](a0L['white']('\x20\x20\x20Your\x20answers\x20have\x20been\x20recorded\x20and\x20sent\x20to\x20your\x20national')),console[bv(0x451)](a0L['white']('\x20\x20\x20exam\x20center.\x20Final\x20scoring\x20and\x20selection\x20are\x20decided\x20by')),console[bv(0x451)](a0L[bv(0x4b3)](bv(0x213))),console['log'](),console['log'](a0L[bv(0x28a)](bv(0x35f))),console[bv(0x451)](),console['log'](a0L[bv(0x296)][bv(0x4b3)](bv(0x431)));const aK=aF[bv(0x1cf)]-aF[bv(0x2b5)];console[bv(0x451)](bv(0x336)+a0L[bv(0x4b0)](bv(0x24d))+a0L['white'](aF[bv(0x2b5)]+'/'+aF[bv(0x1cf)])+(aK>-0x1*-0x1369+-0x161a+0x2b1?a0L[bv(0x4b0)](bv(0x1b9)+aK+bv(0x29f)):'')),console[bv(0x451)]('\x20\x20\x20\x20'+a0L[bv(0x4b0)](bv(0x3f3))+a0L[bv(0x4b3)](aH+'m\x20'+aI+'s')+a0L['gray'](bv(0x214)+aF[bv(0x41c)]+bv(0x457))),aF[bv(0x277)]>-0x596+0x1ef8+-0x12*0x169&&console[bv(0x451)](bv(0x336)+a0L['gray'](bv(0x379))+a0L[bv(0x20b)]('★\x20'+aF[bv(0x277)])),console['log']();const aL=aD['categoryStats'];if(aL&&Object['keys'](aL)[bv(0x1d4)]>=-0xaf*0x4+-0x47c+0x73a){const aT=Object[bv(0x428)](aL)['filter'](([,aY])=>aY[bv(0x1cf)]>0x1*0x1ceb+-0x192d+-0x3be)['map'](([aY,aZ])=>({'cat':aY,'pct':aZ['correct']/aZ['total']}))[bv(0x436)]((aY,aZ)=>aZ[bv(0x452)]-aY[bv(0x452)]),aU=Math[bv(0x348)](-0x57d+-0x7aa+0xd29,Math[bv(0x326)](aT[bv(0x1d4)]/(-0x164c+-0x50+0x169f))),aV=Math[bv(0x348)](0x1e53+-0x2be+-0x931*0x3,Math['ceil'](aT[bv(0x1d4)]/(0x1bf5+-0x4*0x5a3+-0x1*0x566))),aW=aT[bv(0x318)](0x747+0x10a1*0x1+-0x17e8*0x1,aU)[bv(0x236)](aY=>aY['cat']),aX=aT[bv(0x318)](-aV)[bv(0x236)](aY=>aY[bv(0x1c4)]);aW[bv(0x204)](aY=>aX[bv(0x2f7)](aY))||(console['log'](a0L[bv(0x296)][bv(0x4b3)](bv(0x3ef))),console[bv(0x451)](bv(0x336)+a0L[bv(0x182)](bv(0x364))+a0L[bv(0x4b3)](aW[bv(0x1e6)](',\x20'))),console[bv(0x451)](bv(0x336)+a0L[bv(0x20b)](bv(0x1bc))+a0L[bv(0x4b3)](aX[bv(0x1e6)](',\x20'))),console['log'](a0L['gray']('\x20\x20\x20\x20(relative\x20to\x20other\x20categories\x20—\x20numeric\x20scores\x20go\x20to\x20your\x20exam\x20center)')),console['log']());}console[bv(0x451)](a0L[bv(0x296)]['white'](bv(0x2d1))),console[bv(0x451)](bv(0x336)+a0L['gray']('Help:\x20\x20\x20\x20\x20\x20')+a0L[bv(0x4b3)](aF['help'][bv(0x43a)]+'/'+aF[bv(0x281)][bv(0x1bd)])),console[bv(0x451)](bv(0x336)+a0L[bv(0x4b0)](bv(0x3f0))+a0L[bv(0x4b3)](aF['aiUsage'][bv(0x2a7)]+'\x20AI4CTF')+a0L[bv(0x4b0)](bv(0x1b9))+a0L[bv(0x4b3)](aF[bv(0x44f)][bv(0x25c)]+'\x20CTF4AI')),console['log'](),console[bv(0x451)](a0L[bv(0x28a)](bv(0x35f))),console[bv(0x451)](),console[bv(0x451)](a0L[bv(0x296)][bv(0x4b3)]('\x20\x20What\x20next')),console[bv(0x451)](a0L[bv(0x4b0)](bv(0x474))),console[bv(0x451)](a0L[bv(0x4b0)](bv(0x4a3))+a0L[bv(0x4b3)](bv(0x3c9))+a0L[bv(0x4b0)]('\x20is\x20free,\x20unlimited\x20practice.')),console['log'](a0L[bv(0x4b0)](bv(0x47d))+a0L[bv(0x4b3)](bv(0x295))),console['log']();const {showCToBUpgradePrompt:aM}=await import(bv(0x475));aM(aF[bv(0x360)],aD[bv(0x1ea)]),console[bv(0x451)](a0L[bv(0x20b)](bv(0x48c))),console[bv(0x451)](a0L[bv(0x28a)][bv(0x430)](bv(0x314))),console[bv(0x451)](),console[bv(0x451)](a0L[bv(0x28a)](bv(0x363))),console[bv(0x451)]();}catch(aY){console[bv(0x451)](),a0aa(aY[bv(0x250)]);}}),B[be(0x195)](be(0x3bb))[be(0x459)](be(0x1be))[be(0x1a5)](async F=>{const bw=be;a0a8(bw(0x1c2)+(F||''));const G=M();if(!G)return;if(!F){const J=a0Y();if(!J)return void a0aa('Specify\x20exam\x20ID:\x20exam\x20result\x20<id>');F=J[bw(0x1cb)][bw(0x360)];}const H=a0ag(bw(0x217));H[bw(0x2e0)]();try{const K=await G['getResult'](F);H[bw(0x361)](bw(0x230)),console[bw(0x451)](),a0ae(K['examName']),a0af('Score',a0L[bw(0x296)](K['score']+'/'+K[bw(0x1cf)])),a0af(bw(0x3a8),a0L[bw(0x296)](K[bw(0x21a)]+'%')),a0af(bw(0x46e),K['passed']?a0L[bw(0x182)][bw(0x296)](bw(0x229)):a0L[bw(0x34a)]['bold'](bw(0x4a6))),a0af(bw(0x3d0),K[bw(0x36d)]),console[bw(0x451)]();}catch(L){H['fail'](bw(0x27d)),a0aa(L[bw(0x250)]);}}),B['command'](be(0x386))[be(0x459)](be(0x301))[be(0x1a5)](async J=>{const bx=be;a0a8(bx(0x396)+J);const {getRealExamState:K,saveExamState:L,clearExamState:Q}=await import(bx(0x384)),V=K();if(V){const a2=V[bx(0x1cb)][bx(0x2a5)],a3=a0a1(),a4=!!a2&&a2[bx(0x45b)]()[bx(0x398)]()!==J['trim']()[bx(0x398)](),a5=!!a3&&a3[bx(0x1dd)]()+(0x158d55*-0x2+0xb*-0x2d726+0x65d08c)<Date[bx(0x4a0)]();if(a4&&a5)return Q(),console['log'](),console[bx(0x451)](a0L['gray'](bx(0x24f))),console[bx(0x451)](),console[bx(0x451)](a0L[bx(0x4b3)]('\x20\x20Please\x20re-type:\x20')+a0L[bx(0x296)][bx(0x28a)](bx(0x3f4)+J)),void console[bx(0x451)]();if(!a2&&J)return V[bx(0x1cb)][bx(0x2a5)]=J[bx(0x45b)](),L(V),console[bx(0x451)](),console[bx(0x451)](a0L[bx(0x182)]('\x20\x20✓\x20Token\x20re-attached\x20to\x20your\x20in-progress\x20exam.')),console[bx(0x451)](a0L[bx(0x4b0)](bx(0x284))+a0L['white'](bx(0x272))+a0L[bx(0x4b0)](bx(0x20c))+a0L['white'](bx(0x20f))),console[bx(0x451)](),console[bx(0x451)](a0L[bx(0x296)]['white'](bx(0x39d))),console[bx(0x451)](a0L['gray'](bx(0x2a3))+a0L[bx(0x296)][bx(0x28a)](bx(0x489))+a0L['gray'](bx(0x48d))),console[bx(0x451)](a0L[bx(0x4b0)]('\x20\x20\x20\x20→\x20')+a0L['bold'][bx(0x28a)]('exam\x20review')+a0L['gray'](bx(0x412))),void console[bx(0x451)]();const a6=Object[bx(0x464)](V[bx(0x1d6)])[bx(0x1d4)],a7=V[bx(0x1cb)]['questionCount'],a8=a0a1(),a9=a8?Math['max'](0xa*-0x37+0x1e1c+0x1*-0x1bf6,Math[bx(0x267)]((a8[bx(0x1dd)]()-Date[bx(0x4a0)]())/(0x1b9d7+0x850e+0x1e7*-0xb3))):null;return console[bx(0x451)](),console[bx(0x451)](a0L['yellow'](bx(0x424))),console['log'](),console['log'](a0L['gray'](bx(0x465))+a0L[bx(0x4b3)](V[bx(0x1cb)][bx(0x367)])),a2&&console[bx(0x451)](a0L['gray'](bx(0x2d4))+a0L['white'](a2)+(a2===J?a0L['green'](bx(0x288)):a0L['yellow'](bx(0x376)))),console[bx(0x451)](a0L['gray'](bx(0x18f))+a0L[bx(0x4b3)](a6+'/'+a7)),null!==a9&&console[bx(0x451)](a0L[bx(0x4b0)]('\x20\x20Time:\x20\x20\x20\x20')+a0L['white'](a9+bx(0x413))),console[bx(0x451)](),console[bx(0x451)](a0L[bx(0x296)][bx(0x4b3)](bx(0x3b8))),console[bx(0x451)](a0L['gray'](bx(0x2a3))+a0L['bold'][bx(0x28a)](bx(0x489))+a0L[bx(0x4b0)](bx(0x48d))),console[bx(0x451)](a0L[bx(0x4b0)]('\x20\x20\x20\x20→\x20')+a0L[bx(0x296)][bx(0x28a)](bx(0x22a))+a0L[bx(0x4b0)](bx(0x412))),console[bx(0x451)](a0L[bx(0x4b0)](bx(0x2a3))+a0L[bx(0x296)][bx(0x28a)](bx(0x20f))+a0L[bx(0x4b0)](bx(0x395))),a2&&a2!==J&&(console[bx(0x451)](),console[bx(0x451)](a0L[bx(0x20b)]('\x20\x20Note:\x20you\x20typed\x20a\x20different\x20token.\x20Each\x20exam\x20token\x20is\x20bound\x20to')),console[bx(0x451)](a0L[bx(0x20b)](bx(0x429))),console[bx(0x451)](),console[bx(0x451)](a0L[bx(0x4b0)](bx(0x333))),console[bx(0x451)](a0L[bx(0x4b0)]('\x20\x20run\x20')+a0L[bx(0x296)]['cyan'](bx(0x37d))+a0L[bx(0x4b0)](bx(0x380)))),void console[bx(0x451)]();}const {isNativeWindowsCmd:W}=await import(bx(0x40b));if(!W()&&!a0am()){let aa=!(-0xd6+-0x7*-0xa2+-0x397);try{const ab={};ab[bx(0x268)]=bx(0x48e);const ac=a0W()[bx(0x49c)]||bx(0x191),ad=await fetch(ac+'/api/icoa/exam-token',{'method':'POST','headers':ab,'body':JSON[bx(0x3f2)]({'token':J[bx(0x45b)](),'deviceHash':a0aj(),'peek':!(-0xb15+0xa6c+0xa9)}),'signal':AbortSignal['timeout'](0x1c5a+0x7d*0x3d+0x1*-0x269b)});if(ad['ok']){const ae=await ad[bx(0x26c)]();(ae?.['data']?.['exam_id']||'')['endsWith']('-c')&&(aa=!(0x1*-0x1619+0xc88+-0x4f*-0x1f));}}catch{}if(!aa)return console[bx(0x451)](),a0ab(bx(0x329)),console[bx(0x451)](a0L[bx(0x4b0)]('\x20\x20→\x20')+a0L[bx(0x296)][bx(0x28a)](bx(0x48f))),console['log'](a0L[bx(0x4b0)](bx(0x3d6))+a0L['bold'][bx(0x28a)](bx(0x19e))+a0L[bx(0x4b0)](bx(0x242))),console[bx(0x451)](a0L['gray'](bx(0x2b3))),void console[bx(0x451)]();}const X={};X['UA']='uk',X['PE']='es',X['CN']='zh',X['AU']='en',X['JP']='ja',X['KR']='ko',X['BR']='pt',X['SA']='ar',X['FR']='fr',X['DE']='de',X['IN']='hi',X['ID']='id',X['TH']='th',X['VN']='vi',X['TR']='tr',X['RU']='ru',X['EG']='ar',X['HT']='ht',X['PH']='en',X['MY']='en',X['MM']='en',X['SG']='en',X['ZA']='en',X['KE']='sw',X['TZ']='sw',X['MO']='zh',X['UZ']='uz',X['GH']='en',X['LA']='lo',X['BD']='bn',X['BI']='fr',X['US']='en',X['UK']='en',X['NZ']='en',X['LK']='si';const Y=X[J['trim']()['substring'](-0xfdf+0x1a99+-0xaba,-0x4eb*0x3+-0x696+0x445*0x5)[bx(0x398)]()],Z=a0W(),a0=Z[bx(0x49c)]||bx(0x191),a1=Y||Z[bx(0x4b2)]||'en';Y&&Y!==(Z[bx(0x4b2)]||'en')&&a0X({'language':Y}),console[bx(0x451)](),N(-0x55*0x2f+-0x6f0+0x168b,bx(0x18c));try{const af={};af[bx(0x268)]=bx(0x48e);const ag=await fetch(a0+bx(0x2e7),{'method':bx(0x1c8),'headers':af,'body':JSON['stringify']({'token':J['trim'](),'deviceHash':a0aj(),'lang':a1}),'signal':AbortSignal[bx(0x186)](-0x6*-0x7d3+-0x1e4d+0x779*0x3)});if(!ag['ok']){N(0x659+-0x13e+0x1*-0x51b,''),console['log']();const ao=await ag[bx(0x26c)]()[bx(0x39a)](()=>({'message':bx(0x216)}));return a0aa(ao[bx(0x250)]||bx(0x344)),void a0ac(bx(0x1db));}N(-0x1bd4+0xf5f+0xc93,bx(0x2a8));const ah=await ag[bx(0x26c)](),{session:ai,questions:aj,languages:ak}=ah[bx(0x227)];N(-0x10a5*-0x1+-0xa39+-0x630,'Preparing...'),await q(0xd79+-0xc78+-0x39),N(-0xbe7+-0xf2a+0x1b75,bx(0x481)),console[bx(0x451)](),console[bx(0x451)](),a0ae(ai[bx(0x367)]),console[bx(0x451)](),a0af(bx(0x2af),ai[bx(0x29e)]+'\x20(30\x20MCQ\x20+\x2010\x20practical)'),a0af(bx(0x3a9),ai['durationMinutes']+bx(0x4b9)),a0af(bx(0x369),(ai[bx(0x440)]||0x17d7+0x228c+0x1*-0x39cd)+bx(0x2f6)),a0af(bx(0x276),(ai[bx(0x27b)]||-0x1*0x23f9+0x26e7+-0x2a3)+bx(0x3d1)),console[bx(0x451)](),console[bx(0x451)](a0L[bx(0x4b3)]('\x20\x20Assistance:')),console['log'](a0L[bx(0x4b3)](bx(0x2ab))),console[bx(0x451)](a0L[bx(0x4b3)](bx(0x1df))),console['log'](a0L[bx(0x4b3)](bx(0x354))),ak&&ak[bx(0x1d4)]>-0x6*-0x539+-0x1697*0x1+0x175*-0x6&&console[bx(0x451)](a0L['white'](bx(0x3df)+ak[bx(0x1e6)](',\x20')+bx(0x356))),console['log'](),console['log'](a0L[bx(0x20b)](bx(0x3d3))),console[bx(0x451)](a0L[bx(0x4b3)]('\x20\x20\x20\x20•\x20All\x20interactions\x20are\x20recorded\x20for\x20audit')),console[bx(0x451)](a0L[bx(0x4b3)](bx(0x3fc))),console[bx(0x451)](a0L[bx(0x4b3)](bx(0x1fe))),console[bx(0x451)](),await new Promise(ap=>{const by=bx;process['stdout'][by(0x422)](a0L[by(0x296)][by(0x20b)](by(0x38c)));const aq=!!process[by(0x1a8)]['isTTY']&&process[by(0x1a8)][by(0x383)];process[by(0x1a8)][by(0x461)]&&process[by(0x1a8)][by(0x1fa)]&&process['stdin'][by(0x1fa)](!(0x3fe+-0x1604+0x1207));const ar=as=>{const bz=by,at=as['toString']();(at[bz(0x2f7)]('\x0a')||at['includes']('\x0d'))&&(process[bz(0x1a8)][bz(0x42b)](bz(0x227),ar),process[bz(0x1a8)][bz(0x461)]&&process['stdin'][bz(0x1fa)]&&process[bz(0x1a8)][bz(0x1fa)](aq),process[bz(0x325)][bz(0x422)]('\x0a'),ap());};process[by(0x1a8)]['on'](by(0x227),ar),process['stdin'][by(0x183)]();});const al=new Date()[bx(0x21e)]();ai[bx(0x262)]=al,ai[bx(0x2a5)]=J[bx(0x45b)]();try{const ap=Date[bx(0x4a0)](),aq=await fetch(a0+bx(0x375),{'method':'GET','signal':AbortSignal[bx(0x186)](-0x4f*0x1+-0x86*0x17+0x1811)});if(aq['ok']){const ar=await aq['json'](),as=ar?.[bx(0x227)]?.[bx(0x1a3)];if(bx(0x47c)==typeof as&&as>-0x1*-0x959+0x2397*-0x1+0x1a3e){const at=(ap+Date[bx(0x4a0)]())/(0x17*0x166+-0x1a66*0x1+-0x5c2);ai['clockOffsetMs']=Math[bx(0x267)](as-at),ai[bx(0x456)]=as+(0x15d9+0x13c4+-0x9*0x499)*ai[bx(0x36c)]*(-0x1c61+0x2375+-0x32c);}}}catch{}const am={};am[bx(0x2a7)]=0x0,am['ctf4ai']=0x0;const an={};an[bx(0x1cb)]=ai,an['questions']=aj,an['answers']={},an[bx(0x1a0)]=[],an['aiUsage']=am,(a0Z(an),console[bx(0x451)](),a0a9(bx(0x2d6)),a0af(bx(0x40e),ai[bx(0x36c)]+bx(0x444)),aj[bx(0x1d4)]>-0xae4+0x101*-0x7+-0x1*-0x11eb&&U(aj[-0x1749+0x5*0x288+0xaa1]));}catch(au){console[bx(0x451)](),bx(0x1ed)===au[bx(0x2ff)]?a0aa(bx(0x4c1)):a0aa(au[bx(0x250)]||bx(0x2bd));}}),B[be(0x195)](be(0x18e),{'hidden':!(-0x1*-0x2591+-0x87e+-0x1d13)})[be(0x459)](be(0x275))[be(0x1a5)](async()=>{const bA=be;a0a8(bA(0x37d));const {getRealExamState:F,clearExamState:G}=await import('../lib/exam-state.js'),H=F();if(!H)return console['log'](),console[bA(0x451)](a0L[bA(0x4b0)]('\x20\x20No\x20active\x20exam\x20session\x20to\x20reset.')),void console[bA(0x451)]();const J=H[bA(0x1cb)][bA(0x2a5)];console[bA(0x451)](),console['log'](a0L[bA(0x20b)]('\x20\x20⚠\x20\x20Reset\x20will\x20abandon\x20your\x20current\x20exam\x20session\x20on\x20this\x20device.')),console['log'](a0L[bA(0x4b0)](bA(0x2cc))+a0L['white'](H[bA(0x1cb)][bA(0x367)])),J&&console[bA(0x451)](a0L[bA(0x4b0)](bA(0x2b8))+a0L[bA(0x4b3)](J)),console['log'](a0L[bA(0x4b0)](bA(0x1c5))),console['log'](a0L[bA(0x4b0)](bA(0x372))),console[bA(0x451)](),console[bA(0x451)](a0L['gray'](bA(0x25a))+a0L[bA(0x296)]['cyan'](bA(0x18e))+a0L[bA(0x4b0)](bA(0x1b3)));const {getMainRl:K}=await import('../lib/main-rl.js'),L=K();if(bA(0x18e)!==(await new Promise(Q=>{const bB=bA;if(L){const V=L[bB(0x1ab)]('line')[bB(0x318)]();L[bB(0x46c)](bB(0x487)),L[bB(0x4b4)](bB(0x2e4)),L[bB(0x469)](),L[bB(0x4c2)](bB(0x487),W=>{const bC=bB;for(const X of V)L['on'](bC(0x487),X);Q(W[bC(0x45b)]());});}else((async()=>{const bD=bB,W={};W[bD(0x2da)]=process[bD(0x1a8)],W[bD(0x496)]=process[bD(0x325)];const {createInterface:X}=await import(bD(0x2aa)),Y=X(W);Y[bD(0x366)](bD(0x2e4),Z=>{const bE=bD;Y[bE(0x23d)](),Q(Z[bE(0x45b)]());});})());}))[bA(0x210)]())return console[bA(0x451)](a0L[bA(0x4b0)]('\x20\x20Cancelled.')),void console[bA(0x451)]();G(),console[bA(0x451)](),console['log'](a0L['green'](bA(0x497))),console['log'](a0L[bA(0x4b0)](bA(0x1d3))+a0L[bA(0x296)]['cyan'](bA(0x350))),console[bA(0x451)]();}),B[be(0x195)](be(0x3c9))[be(0x459)](be(0x3a7))['action'](async()=>{const bF=be;a0a8('exam\x20demo'),E(bF(0x35b));const {pickDemoQuestions:F,getLocalizedDemoSession:G,DEMO_PICK_SIZE:H,DEMO_POOL_SIZE:J}=await import(bF(0x358));a0W()[bF(0x3c0)]||(await(async function(){const bG=bF;let a0=!(0x157*-0x13+-0x1fb2+-0x3b*-0xf8);const a1=process[bG(0x1a8)],a2=()=>{a0=!(-0x4a7+-0x1*-0x2162+0x5bf*-0x5);},a3=a1['isTTY']&&bG(0x476)==typeof a1[bG(0x1fa)];a3&&(a1[bG(0x1fa)](!(-0x1af6+-0x268*-0x7+-0x23*-0x4a)),a1[bG(0x183)](),a1[bG(0x4c2)](bG(0x227),a2));const a4=async a5=>{let a6=-0x17e9*0x1+0x2*-0x1b3+0x1b4f;for(;a6<a5&&!a0;)await q(0x233b+0x2*-0x3b9+-0x1b79),a6+=-0x234c+-0x5d8+0x2974;};try{if(console[bG(0x378)](),console['log'](),console[bG(0x451)](a0L['gray'](bG(0x1ca))+a0L[bG(0x3bd)](bG(0x3cc))),console[bG(0x451)](),console[bG(0x451)](a0L[bG(0x296)][bG(0x4b3)](bG(0x1ac))),console[bG(0x451)](a0L[bG(0x296)][bG(0x4b3)](bG(0x3c8))),console[bG(0x451)](a0L[bG(0x296)]['white'](bG(0x482))),console[bG(0x451)](a0L[bG(0x296)][bG(0x4b3)](bG(0x3e6))),console['log'](a0L['bold'][bG(0x4b3)](bG(0x359))),console[bG(0x451)](a0L['bold']['white']('\x20\x20\x20╚═╝\x20╚═════╝\x20╚═════╝\x20╚═╝\x20\x20╚═╝')),console['log'](),console['log'](a0L[bG(0x296)][bG(0x20b)](bG(0x233))),console['log'](a0L['gray'](bG(0x4a2))),await a4(0xe2f+-0x1*0x149d+0x1032),a0)return;if(console[bG(0x451)](),console['log'](a0L[bG(0x4b3)](bG(0x4be))),console[bG(0x451)](),await a4(-0x1720+0xdc0+-0xc8*-0xf),a0)return;if(console[bG(0x451)](a0L[bG(0x28a)](bG(0x48b))+a0L['white'](bG(0x1f5))+a0L[bG(0x4b0)](bG(0x40f))),await a4(0x143a+0x144f+-0x25cd),a0)return;if(console[bG(0x451)](a0L[bG(0x182)]('\x20\x20\x20\x20\x20▣\x20')+a0L['white'](bG(0x3dd))+a0L[bG(0x4b0)]('\x20\x20\x20\x20(ai4ctf)')),await a4(0xac*0x2c+0x1c5b+-0x372f),a0)return;if(console[bG(0x451)](a0L[bG(0x34a)](bG(0x48b))+a0L['white'](bG(0x4a8))+a0L[bG(0x4b0)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20(ctf4ai)')),await a4(0x1d*-0x147+0x6b*-0x37+-0x14c*-0x31),a0)return;if(console[bG(0x451)](),console['log'](a0L[bG(0x296)]['white'](bG(0x388))+a0L['bold'][bG(0x20b)]('IS')+a0L[bG(0x296)][bG(0x4b3)](bG(0x211))),console[bG(0x451)](),await a4(-0x206e+-0x8c4+-0x13d*-0x26),a0)return;if(console[bG(0x451)](a0L['gray'](bG(0x187))),await a4(-0x2*-0xc58+-0x49d+-0x1283),a0)return;if(console[bG(0x451)](a0L[bG(0x4b0)](bG(0x24a))),await a4(0x1232*0x1+0x13b1+-0x2453),a0)return;if(console[bG(0x451)](a0L['gray']('\x20\x20\x20·\x2015,000+\x20concurrent\x20participants')),await a4(0xe08*-0x2+0x3a9*-0x2+-0x1341*-0x2),a0)return;console[bG(0x451)](),console[bG(0x451)](a0L['bold']['cyan'](bG(0x29c))),await a4(-0x168+-0x1c5b+-0x9*-0x50b);}finally{((()=>{const bH=bG;if(a3){a1['removeListener'](bH(0x227),a2);try{a1[bH(0x1fa)](!(-0x3f*-0x33+-0x52*-0x76+-0x48*0xb3));}catch{}a1[bH(0x36b)]();}})()),console[bG(0x378)]();}}()),a0X({'demoIntroSeen':!(-0x1*-0x961+-0xe3a*0x1+-0x4d9*-0x1)})),console[bF(0x451)](),console['log'](a0L[bF(0x4b3)](bF(0x39b))+a0L['gray'](H+bF(0x31e)+J+bF(0x1b1))),console['log'](a0L['gray']('\x20\x20You\x20can\x20pause\x20with\x20')+a0L[bF(0x28a)](bF(0x32c))+a0L[bF(0x4b0)](bF(0x194))+a0L[bF(0x28a)]('back')+a0L[bF(0x4b0)](bF(0x2bb))),await new Promise(a0=>{const bI=bF;process['stdout'][bI(0x422)](a0L[bI(0x296)][bI(0x20b)](bI(0x3ac)));const a1=!!process[bI(0x1a8)][bI(0x461)]&&process[bI(0x1a8)][bI(0x383)];process[bI(0x1a8)][bI(0x461)]&&process[bI(0x1a8)][bI(0x1fa)]&&process[bI(0x1a8)][bI(0x1fa)](!(-0x1a*0xbf+-0x6f0*0x2+0x2147*0x1));const a2=a3=>{const bJ=bI,a4=a3[bJ(0x2e3)]();(a4[bJ(0x2f7)]('\x0a')||a4[bJ(0x2f7)]('\x0d'))&&(process['stdin'][bJ(0x42b)](bJ(0x227),a2),process['stdin'][bJ(0x461)]&&process[bJ(0x1a8)]['setRawMode']&&process[bJ(0x1a8)][bJ(0x1fa)](a1),process[bJ(0x325)][bJ(0x422)]('\x0a'),a0());};process[bI(0x1a8)]['on'](bI(0x227),a2),process[bI(0x1a8)][bI(0x183)]();});const K=F(H),L=G(),{getDemoState:Q,clearExamState:V}=await import(bF(0x384));Q()&&V(bF(0x1c6)),console[bF(0x451)](),a0ae('ICOA\x20Demo\x20Exam\x20—\x20Free\x20Practice'),console[bF(0x451)](),console[bF(0x451)](a0L[bF(0x4b3)](bF(0x411))),console[bF(0x451)](a0L[bF(0x4b3)]('\x20\x20'+H+bF(0x1f8)+J+bF(0x340)));const W=a0a3();if(W[bF(0x408)]>0x30*-0xcf+-0xcd5+0x33a5){const a0=W['bestPercentage'],a1=a0>=-0x1*-0x15de+0x224d+-0x37db?a0L[bF(0x182)]:a0>=0x167*-0x6+-0x1394+-0x1c3a*-0x1?a0L[bF(0x20b)]:a0L[bF(0x4b3)];console[bF(0x451)](),console[bF(0x451)](a0L[bF(0x4b0)](bF(0x1c9))+a1(W['best']+'/'+H+'\x20('+a0+'%)')+a0L['gray']('\x20\x20·\x20\x20'+W[bF(0x408)]+bF(0x2fa)));}console[bF(0x451)](),console[bF(0x451)](a0L[bF(0x4b0)]('\x20\x20─────────────────────────────────────────')),console['log'](a0L[bF(0x4b3)]('\x20\x20'+a0ai(bF(0x2d8)))),console[bF(0x451)](a0L[bF(0x20b)]('\x20\x20\x20\x20A/B/C/D')+a0L[bF(0x4b0)](bF(0x47b)+a0ai(bF(0x21d)))),console[bF(0x451)](a0L[bF(0x20b)](bF(0x2ec))+a0L[bF(0x4b0)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0ai(bF(0x33f)))),console[bF(0x451)](a0L[bF(0x20b)](bF(0x414))+a0L[bF(0x4b0)](bF(0x44b))+a0L[bF(0x20b)](bF(0x2fd))+a0L[bF(0x4b0)](bF(0x336)+a0ai(bF(0x22b)))),console[bF(0x451)](a0L[bF(0x20b)](bF(0x4bb))+a0L[bF(0x4b0)]('\x20\x20\x20\x20\x20'+a0ai(bF(0x297)))),console[bF(0x451)](a0L['yellow'](bF(0x278))+a0L[bF(0x4b0)](bF(0x43b)+a0ai(bF(0x4aa)))),console[bF(0x451)](a0L[bF(0x20b)](bF(0x390))+a0L[bF(0x4b0)]('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+a0ai(bF(0x471)))),console[bF(0x451)](a0L['gray'](bF(0x313))),console['log'](a0L['gray']('\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ru\x20·\x20hi\x20·\x20de\x20·\x20id\x20·\x20th\x20·\x20vi\x20·\x20tr')),console[bF(0x451)](a0L['gray']('\x20\x20─────────────────────────────────────────')),console['log']();const {getConfig:X}=await import(bF(0x27c)),Y=X()[bF(0x4b2)]||'en';'en'===Y?(console[bF(0x451)](a0L[bF(0x4b0)](bF(0x3cb))),console['log'](a0L[bF(0x4b0)]('\x20\x20lang\x20es\x20(Español)\x20·\x20lang\x20zh\x20(中文)\x20·\x20lang\x20ko\x20(한국어)\x20·\x20lang\x20ja\x20(日本語)')),console['log'](a0L[bF(0x4b0)]('\x20\x20lang\x20fr\x20·\x20lang\x20ar\x20·\x20lang\x20pt\x20·\x2015\x20languages\x20supported'))):console[bF(0x451)](a0L[bF(0x182)](bF(0x40c)+Y)),console[bF(0x451)](),console[bF(0x451)](a0L['white'](bF(0x309)));const Z={...L,'startedAt':new Date()[bF(0x21e)]()};console['log'](),N(-0xb*-0x6+0x1cc8*0x1+-0xe*0x213,bF(0x2ba)),await q(-0x1*-0xfc4+-0x413*-0x1+-0x130f),N(-0x5e*-0x4f+-0x4d6*-0x1+-0x268*0xe,bF(0x249)),await q(0x8d*-0x17+-0x133*0x9+0x1d*0xd6),N(-0x11ad*0x1+-0x1281+-0x207*-0x12,'Almost\x20ready...'),await q(0x538+0x220c+-0x26ae),N(0x1e3c+0x1b04+-0x38dc,bF(0x481)),console[bF(0x451)](),console[bF(0x451)](),a0Z({'session':Z,'questions':K,'answers':{},'_helpMax':0x5}),a0af('Questions',String(H)),a0af(bF(0x3a9),bF(0x26b)),U(K[-0xdf3*-0x1+-0x1bca+0xdd7]);}),B[be(0x195)](be(0x271))[be(0x459)](be(0x259))['action'](async()=>{const bK=be;a0a8('exam\x20demo-retry'),E(bK(0x2ca));const {getLocalizedDemoSession:F}=await import(bK(0x358)),G=a0a6();if(!G||0x1*-0x1e2f+-0x3*0x8f9+-0x391a*-0x1===G[bK(0x1d4)])return console[bK(0x451)](),console[bK(0x451)](a0L[bK(0x20b)](bK(0x41d))+a0L[bK(0x296)][bK(0x28a)](bK(0x3c9))+a0L[bK(0x20b)](bK(0x29d))),void console[bK(0x451)]();const H=a0Y();if(H){if(bK(0x1c6)!==H[bK(0x1cb)][bK(0x360)])return a0ab(bK(0x38d)+H[bK(0x1cb)][bK(0x367)]+bK(0x1da)),void a0ac('Submit\x20it\x20first:\x20exam\x20submit');a0a0();}const J=V=>{const bL=bK;if(!V[bL(0x260)])return V;const W=V['options'][V[bL(0x260)]],X=['A','B','C','D'][bL(0x236)](a2=>V[bL(0x355)][a2]);for(let a2=X[bL(0x1d4)]-(-0x65d*0x1+-0x4f*0x1a+0xe64);a2>0x1*0x1c8b+-0x2*0xdbe+-0x10f;a2--){const a3=Math[bL(0x3e2)](Math[bL(0x40a)]()*(a2+(-0x2cf*0x4+-0xfe*-0x10+-0x1*0x4a3)));[X[a2],X[a3]]=[X[a3],X[a2]];}const Y={};Y['A']=X[-0x692*-0x2+-0x15*-0xe6+0x1*-0x2002],Y['B']=X[-0x1*0x7c2+0x7*-0x593+-0x1*-0x2ec8],Y['C']=X[-0x866+0x15b7+-0xd4f],Y['D']=X[0x3*0xf1+-0xb*-0x85+0x1*-0x887];const Z=Y,a0=['A','B','C','D'][bL(0x1a1)](a4=>Z[a4]===W),a1={...V};return a1[bL(0x355)]=Z,a1[bL(0x260)]=a0,a1;},K=G['map']((V,W)=>({...J(V),'number':W+(0x313*-0x2+0x23d1+-0x1daa*0x1)})),L=F(),Q={...L,'examName':L[bK(0x367)]+bK(0x30a),'questionCount':K[bK(0x1d4)],'startedAt':new Date()[bK(0x21e)]()};console[bK(0x451)](),a0ae(bK(0x3f1)),console[bK(0x451)](),console[bK(0x451)](a0L[bK(0x4b3)]('\x20\x20Practicing\x20'+K[bK(0x1d4)]+'\x20question'+(0x849*-0x1+-0xcbb+-0x1505*-0x1===K[bK(0x1d4)]?'':'s')+'\x20you\x20got\x20wrong.')),console[bK(0x451)](a0L[bK(0x4b0)]('\x20\x20Options\x20have\x20been\x20reshuffled.')),console[bK(0x451)](),a0Z({'session':Q,'questions':K,'answers':{}}),a0af('Questions',String(K[bK(0x1d4)])),a0af(bK(0x3a9),bK(0x26b)),U(K[-0x2645+0xf3b+-0x6*-0x3d7]);}),B[be(0x195)](be(0x208))[be(0x459)](be(0x432))[be(0x1a5)](async()=>{const bM=be;if(a0a8(bM(0x48f)),0x471*0x7+-0x1*0x21b2+-0x1d*-0x17===a0a3()[bM(0x408)])return console[bM(0x451)](),a0ab('Complete\x20the\x20demo\x20first\x20before\x20setting\x20up.'),console[bM(0x451)](a0L[bM(0x4b0)](bM(0x377))+a0L[bM(0x296)][bM(0x28a)](bM(0x307))),void console[bM(0x451)]();const K=a0ak();if(K){const a4=K[bM(0x1e5)]['length'],a5=a4+K[bM(0x1c0)][bM(0x1d4)];if(a4>=-0x23ab+0x8*0x204+0x1393||(a5>0x1*-0x79d+-0x1*-0x1267+0x1*-0xaca?a4/a5:0x1*-0x2221+-0x12c1+-0x3c7*-0xe)>=0x46*0x13+0x1e10+-0x2342+0.7)return console[bM(0x451)](),console[bM(0x451)](a0L[bM(0x182)](bM(0x1d7))+a0L[bM(0x182)](bM(0x38f))),console['log'](a0L[bM(0x4b0)](bM(0x41a)+K[bM(0x446)][bM(0x381)]('T')[0x2*-0x79d+0x1cff*0x1+-0xdc5])),console[bM(0x451)](a0L[bM(0x4b0)](bM(0x2a1)+K[bM(0x441)])),console[bM(0x451)](a0L[bM(0x4b0)](bM(0x1bb)+a4+'\x20installed')),K[bM(0x1c0)][bM(0x1d4)]>0xdeb+-0x1631+0x846&&console[bM(0x451)](a0L[bM(0x20b)](bM(0x37a)+K[bM(0x1c0)][bM(0x1e6)](',\x20'))),console['log'](),console['log'](a0L['white'](bM(0x289))+a0L[bM(0x296)][bM(0x28a)]('exam\x20<token>')),console[bM(0x451)](a0L[bM(0x4b0)](bM(0x3d6))+a0L[bM(0x296)]['cyan'](bM(0x19e))+a0L[bM(0x4b0)](bM(0x242))),void console[bM(0x451)]();console[bM(0x451)](),console['log'](a0L[bM(0x20b)](bM(0x47f)+a4+'/'+a5+bM(0x37f))),console['log']();}console['log'](),a0ae(bM(0x266)),console[bM(0x451)](),console['log'](a0L['white']('\x20\x20Installing\x20Python\x20packages\x20for\x20practical\x20questions.')),console[bM(0x451)](a0L[bM(0x4b0)]('\x20\x20Expected:\x201-2\x20minutes\x20·\x20~150MB\x20disk')),console['log']();const L=(a6,a7)=>{const bN=bM,a8=process[bN(0x483)];console[bN(0x451)](),a0aa(bN(0x224)===a6?bN(0x1ff):bN(0x4b8)+a7+bN(0x3c4)),console['log'](),console[bN(0x451)](a0L[bN(0x296)]['white'](bN(0x243))),console['log'](),bN(0x21f)===a8?(console[bN(0x451)](a0L['yellow'](bN(0x473))),console[bN(0x451)](a0L['green']('\x20\x20\x20\x20brew\x20install\x20python@3.12')),console[bN(0x451)](),console[bN(0x451)](a0L[bN(0x4b0)](bN(0x3ee))),console['log'](a0L[bN(0x4b0)](bN(0x1ad)))):bN(0x1f3)===a8?(console[bN(0x451)](a0L[bN(0x20b)]('\x20\x20Ubuntu\x20/\x20Debian\x20(deadsnakes\x20PPA):')),console[bN(0x451)](a0L[bN(0x182)](bN(0x334))),console['log'](a0L[bN(0x182)]('\x20\x20\x20\x20sudo\x20apt\x20update')),console[bN(0x451)](a0L['green']('\x20\x20\x20\x20sudo\x20apt\x20install\x20-y\x20python3.12\x20python3.12-venv\x20python3.12-distutils')),console['log'](a0L[bN(0x4b0)](bN(0x1b7))),console[bN(0x451)](),console[bN(0x451)](a0L[bN(0x20b)](bN(0x400))),console[bN(0x451)](a0L['green'](bN(0x403))),console[bN(0x451)](),console['log'](a0L[bN(0x20b)](bN(0x4ba))),console[bN(0x451)](a0L['green'](bN(0x198)))):bN(0x399)===a8?(console[bN(0x451)](a0L[bN(0x20b)](bN(0x23f))),console[bN(0x451)](a0L['green'](bN(0x46a))),console[bN(0x451)](),console[bN(0x451)](a0L[bN(0x4b0)](bN(0x3ee))),console[bN(0x451)](a0L[bN(0x4b0)](bN(0x19d)))):console[bN(0x451)](a0L[bN(0x4b0)](bN(0x49d))),console[bN(0x451)](),console['log'](a0L[bN(0x4b3)](bN(0x1bf))+a0L[bN(0x296)][bN(0x28a)](bN(0x48f))),console[bN(0x451)]();},Q=bM(0x1cc);let V='';try{const a6={};a6['encoding']=bM(0x49a),a6['timeout']=0x1388,V=a0an(Q+bM(0x209),a6)[bM(0x45b)]()[bM(0x222)](bM(0x4b8),'');const a7=V[bM(0x381)]('.')['map'](Number);if(a7[-0x2*0x10c7+0x1*-0x1872+0x3a00]<-0xd2+-0x6*-0x551+0x1f11*-0x1||-0x6a0+0xfc9+-0x926===a7[-0x1261*-0x2+-0x2c5*0x9+0xe9*-0xd]&&a7[-0x35*0x4+-0xb9*-0x1f+-0x1592]<-0x11*0x5d+0x3ce+-0x1*-0x269)return void L(bM(0x3ab),V);0x3*-0xbbb+0x6ee+0x1c46===a7[0x1ccf+0x3d1+-0x60*0x57]&&a7[-0x68*0x2a+-0x1b43+0x2c54]<-0x9fd+-0x8f5*-0x1+0x114?console['log'](a0L[bM(0x182)](bM(0x290)+V)+a0L[bM(0x4b0)](bM(0x1ee))):console['log'](a0L[bM(0x182)](bM(0x290)+V));}catch{return void L(bM(0x224));}try{const a8={};a8[bM(0x303)]=bM(0x205),a8[bM(0x186)]=0x1388,(a0an(Q+bM(0x3db),a8),console[bM(0x451)](a0L['green'](bM(0x3af))));}catch{console[bM(0x451)](a0L[bM(0x20b)](bM(0x30d)));try{const a9={};a9['stdio']='ignore',a9['timeout']=0x7530,(a0an(Q+'\x20-m\x20ensurepip\x20--upgrade',a9),console[bM(0x451)](a0L[bM(0x182)](bM(0x2e5))));}catch{a0aa('Could\x20not\x20install\x20pip\x20—\x20pip\x20is\x20not\x20installed\x20on\x20your\x20system.'),console[bM(0x451)]();const {isInWSL:aa,isNativeWindowsCmd:ab}=await import('../lib/platform.js'),{execFileSync:ac}=await import(bM(0x495)),ad=aa(),ae=ab(),af='linux'===process['platform']&&!ad,ag=bM(0x21f)===process['platform'];let ah='your\x20Linux\x20distro';if(af||ad)try{const {readFileSync:ak}=await import(bM(0x3bf)),al=ak(bM(0x2c8),'utf-8'),am=(al[bM(0x373)](/^ID="?([^"\n]+)/m)||[])[-0x1baf+-0x7*-0x337+0x52f]||'',an=(al[bM(0x373)](/^VERSION_ID="?([^"\n]+)/m)||[])[-0x252d+0x1e1c+-0x712*-0x1]||'';bM(0x479)===am?ah=bM(0x3ec)+an+(ad?'\x20(WSL2)':''):am&&(ah=''+am+(an?'\x20'+an:'')+(ad?bM(0x3d9):''));}catch{}let ai=!(-0xde3+0xb*-0x1a6+0x2006);if(ag)try{const ao={};ao[bM(0x303)]=bM(0x205),ao[bM(0x186)]=0x7d0,(ac(bM(0x294),[bM(0x3cd)],ao),ai=!(0x1b93+0x59*-0x59+-0x2*-0x1af));}catch{ai=!(0xd9d+-0x1*-0x373+0xb*-0x18d);}const aj=ae?bM(0x332):bM(0x274);return console[bM(0x451)](a0L[bM(0x296)]['yellow'](bM(0x453))),console[bM(0x451)](a0L[bM(0x296)]['yellow']('\x20\x20'+aj)),console[bM(0x451)](a0L[bM(0x296)][bM(0x20b)](bM(0x453))),console[bM(0x451)](),af||ad?(console[bM(0x451)](a0L[bM(0x4b3)](bM(0x3f8))+a0L[bM(0x28a)](ah)),console[bM(0x451)](a0L[bM(0x4b0)]('\x20\x20(Minimal\x20Ubuntu\x20/\x20cloud\x20/\x20WSL2\x20images\x20often\x20ship\x20without\x20pip.)')),console[bM(0x451)](),console['log'](a0L[bM(0x296)][bM(0x4b3)](bM(0x371))),console['log'](),console[bM(0x451)](a0L['white'](bM(0x2df))+a0L[bM(0x296)]['cyan']('quit')+a0L[bM(0x4b3)](bM(0x2f2))),console[bM(0x451)](),console[bM(0x451)](a0L[bM(0x4b3)](bM(0x42e))),console[bM(0x451)](),console['log'](bM(0x47b)+a0L[bM(0x296)][bM(0x28a)](bM(0x4bf))),console['log']('\x20\x20\x20\x20\x20\x20\x20'+a0L[bM(0x296)]['cyan'](bM(0x212))),console['log'](),console[bM(0x451)](a0L[bM(0x4b3)](bM(0x1fd))),console[bM(0x451)](),console[bM(0x451)]('\x20\x20\x20\x20\x20\x20\x20'+a0L[bM(0x296)][bM(0x28a)](bM(0x44c))),console[bM(0x451)](bM(0x47b)+a0L['gray']('icoa>')+'\x20'+a0L[bM(0x296)][bM(0x28a)]('exam\x20setup'))):ag?(console[bM(0x451)](a0L[bM(0x4b3)](bM(0x3f8))+a0L[bM(0x28a)](bM(0x1c3))),console[bM(0x451)](),console[bM(0x451)](a0L[bM(0x296)][bM(0x4b3)](bM(0x371))),console['log'](),console[bM(0x451)](a0L[bM(0x4b3)](bM(0x2df))+a0L['bold'][bM(0x28a)](bM(0x3d2))+a0L['white']('\x20to\x20leave\x20icoa')),console[bM(0x451)](),ai?(console[bM(0x451)](a0L[bM(0x4b3)](bM(0x321))),console[bM(0x451)](),console[bM(0x451)](bM(0x47b)+a0L[bM(0x296)][bM(0x28a)]('brew\x20install\x20python@3.12')),console[bM(0x451)](bM(0x47b)+a0L[bM(0x296)][bM(0x28a)]('brew\x20link\x20--overwrite\x20python@3.12'))):(console[bM(0x451)](a0L['white'](bM(0x238))+a0L[bM(0x296)]['yellow'](bM(0x3cd))+a0L[bM(0x4b3)]('):')),console[bM(0x451)](),console[bM(0x451)](bM(0x47b)+a0L[bM(0x296)][bM(0x28a)](bM(0x393))),console['log'](),console[bM(0x451)](a0L['white']('\x20\x20\x20\x20\x20\x20\x20Then\x20install\x20Python:')),console[bM(0x451)](),console['log'](bM(0x47b)+a0L['bold'][bM(0x28a)](bM(0x1b0)))),console[bM(0x451)](),console[bM(0x451)](a0L[bM(0x4b3)](bM(0x2ae))),console['log'](),console['log'](bM(0x47b)+a0L[bM(0x296)][bM(0x28a)](bM(0x44c))),console[bM(0x451)](bM(0x47b)+a0L[bM(0x4b0)](bM(0x445))+'\x20'+a0L[bM(0x296)]['cyan'](bM(0x48f)))):ae?(console[bM(0x451)](a0L[bM(0x4b3)](bM(0x3f8))+a0L[bM(0x28a)](bM(0x29b))),console[bM(0x451)](),console[bM(0x451)](a0L[bM(0x296)][bM(0x20b)](bM(0x416))),console[bM(0x451)](a0L[bM(0x4b0)](bM(0x27a))),console[bM(0x451)](a0L[bM(0x4b0)](bM(0x30f))),console[bM(0x451)](a0L[bM(0x4b0)](bM(0x2e2))),console[bM(0x451)](),console[bM(0x451)](a0L[bM(0x296)]['white'](bM(0x269))),console[bM(0x451)](),console[bM(0x451)](a0L['white'](bM(0x2df))+a0L[bM(0x296)]['cyan'](bM(0x3d2))+a0L['white'](bM(0x30b))),console[bM(0x451)](a0L['white'](bM(0x3c1))),console[bM(0x451)](),console[bM(0x451)](bM(0x47b)+a0L[bM(0x296)][bM(0x28a)](bM(0x324))),console[bM(0x451)](),console['log'](a0L[bM(0x4b0)](bM(0x1e4))),console[bM(0x451)](a0L[bM(0x4b3)](bM(0x454))),console[bM(0x451)](),console[bM(0x451)](bM(0x47b)+a0L['bold'][bM(0x28a)](bM(0x339))),console['log'](bM(0x47b)+a0L['bold'][bM(0x28a)](bM(0x34d))),console[bM(0x451)]('\x20\x20\x20\x20\x20\x20\x20'+a0L[bM(0x296)]['cyan']('sudo\x20npm\x20install\x20-g\x20icoa-cli')),console[bM(0x451)](bM(0x47b)+a0L['bold'][bM(0x28a)](bM(0x44c))),console['log'](),console[bM(0x451)](a0L[bM(0x4b0)](bM(0x46b))),console[bM(0x451)](),console[bM(0x451)](a0L[bM(0x4b3)](bM(0x2df))+a0L[bM(0x296)][bM(0x28a)](bM(0x3d2))+a0L['white'](bM(0x30b))),console['log'](a0L[bM(0x4b3)](bM(0x20a))),console['log'](),console[bM(0x451)](bM(0x47b)+a0L[bM(0x296)][bM(0x28a)](bM(0x37c))),console[bM(0x451)](),console[bM(0x451)](a0L['gray'](bM(0x3e5))),console[bM(0x451)](a0L[bM(0x4b0)](bM(0x4bc))),console[bM(0x451)](a0L['white'](bM(0x3e0))),console[bM(0x451)](),console[bM(0x451)](bM(0x47b)+a0L[bM(0x296)][bM(0x28a)](bM(0x44c))),console[bM(0x451)](bM(0x47b)+a0L[bM(0x4b0)]('icoa>')+'\x20'+a0L['bold'][bM(0x28a)](bM(0x48f)))):(console[bM(0x451)](a0L[bM(0x4b3)](bM(0x410))+a0L['cyan'](process[bM(0x483)])+a0L[bM(0x4b3)](')')),console[bM(0x451)](),console[bM(0x451)](a0L[bM(0x4b0)](bM(0x382))),console[bM(0x451)](bM(0x47b)+a0L[bM(0x296)][bM(0x28a)]('icoa')),console[bM(0x451)]('\x20\x20\x20\x20\x20\x20\x20'+a0L[bM(0x4b0)](bM(0x445))+'\x20'+a0L['bold'][bM(0x28a)]('exam\x20setup'))),console['log'](),console[bM(0x451)](a0L[bM(0x4b0)](bM(0x188))),void console[bM(0x451)]();}}const W={};W[bM(0x189)]='bs4',W[bM(0x3eb)]=bM(0x193),W[bM(0x34b)]='z3',W['pillow']=bM(0x299),W[bM(0x1dc)]='pwn',W[bM(0x234)]=bM(0x280);const X=[bM(0x1dc),bM(0x192),bM(0x196),bM(0x189),'numpy',bM(0x237),bM(0x490),bM(0x2ee),'z3-solver',bM(0x3eb),bM(0x234),bM(0x1cd),bM(0x357)],Y=W;console[bM(0x451)](),console[bM(0x451)](a0L[bM(0x4b3)](bM(0x2b6)+X[bM(0x1d4)]+bM(0x3be))),console['log']();let Z='';try{const ap={};ap[bM(0x21c)]=bM(0x49a),ap[bM(0x186)]=0x2710,a0an(Q+bM(0x3e1),ap);}catch(aq){const ar=String(aq?.[bM(0x325)]||aq?.[bM(0x499)]||aq?.[bM(0x250)]||'');/externally-managed-environment|break-system-packages/i[bM(0x39f)](ar)&&(Z=bM(0x480),console[bM(0x451)](a0L[bM(0x20b)](bM(0x1c1))),console['log']());}const a0=V[bM(0x381)]('.')[bM(0x236)](Number);0x5c*0x8+-0xbf6+0x1*0x919===a0[-0x1780+0x2580+0x1c0*-0x8]&&a0[0x1085+-0x25*-0x17+-0x13d7]>=-0x234d+0x186d+-0x1*-0xaed&&(console['log'](a0L[bM(0x20b)](bM(0x2e6)+V+bM(0x197))),console[bM(0x451)](a0L['gray'](bM(0x184))),console[bM(0x451)](a0L[bM(0x4b0)](bM(0x3f6))),bM(0x1f3)===process['platform']&&(console['log'](a0L['green']('\x20\x20\x20\x20\x20\x20sudo\x20apt\x20install\x20python3.12\x20python3.12-venv')),console[bM(0x451)](a0L[bM(0x182)](bM(0x36e)))),console[bM(0x451)]());const a1=[],a2=[];let a3='';for(const as of X)try{a0an(Q+'\x20-m\x20pip\x20install\x20\x22'+as+'\x22\x20'+Z+'\x20--quiet\x202>&1',{'encoding':bM(0x49a),'timeout':0x2bf20,'stdio':bM(0x45c)}),a0an(Q+bM(0x231)+(Y[as]||as)+'\x22',{'stdio':bM(0x205),'timeout':0x2710});let at='';try{const au=a0an(Q+bM(0x1ef)+as+bM(0x32b),{'encoding':bM(0x49a),'timeout':0x1388})[bM(0x373)](/^Version:\s*(.+)$/m);au&&(at=au[0x1660+0x8db*0x2+-0x2815*0x1]['trim']());}catch{}console['log'](a0L[bM(0x182)](bM(0x1d7)+as)+(at?a0L[bM(0x4b0)]('\x20('+at+')'):'')),a1[bM(0x3ae)](at?as+'=='+at:as);}catch(av){const aw=String(av?.[bM(0x325)]||av?.[bM(0x499)]||av?.['message']||'')[bM(0x318)](-(0x7f8+0xc43+0x51*-0x3b)),ax=aw[bM(0x381)]('\x0a')['filter'](ay=>ay['trim']())['slice'](-(0xed6+-0x75d+-0x777))[bM(0x1e6)]('\x20|\x20')[bM(0x318)](-0xdee*0x2+0x5*0x709+-0x751,-0xa13*-0x2+0x7*-0xb7+-0xead);console['log'](a0L['red']('\x20\x20✗\x20'+as)+a0L[bM(0x4b0)]('\x20\x20'+ax)),a2[bM(0x3ae)]({'pkg':as,'error':ax}),a3||(a3=aw);}-0x1*0xbf6+0x1982*-0x1+0x2578===a1[bM(0x1d4)]&&a3&&(console[bM(0x451)](),console[bM(0x451)](a0L['yellow'](bM(0x305))),console[bM(0x451)](a0L[bM(0x4b0)]('\x20\x20'+a3[bM(0x381)]('\x0a')['slice'](-(-0x112*-0x13+-0x1d*-0xfb+-0x1*0x30bf))[bM(0x1e6)](bM(0x3aa))))),a0al({'completedAt':new Date()['toISOString'](),'pythonVersion':V,'installedPackages':a1,'failedPackages':a2['map'](ay=>ay[bM(0x1f1)])}),console['log'](),0x25e7+-0x26af+0x28*0x5===a2['length']?a0a9(bM(0x1b2)+X[bM(0x1d4)]+bM(0x2c9)):-0x1b05+-0x121c+0x1*0x2d21===a1['length']?(a0aa(bM(0x4a7)+X['length']+bM(0x2c9)),console['log'](),console['log'](a0L[bM(0x20b)](bM(0x3c3))),-0x1c93+0x95+0x1*0x1c01===a0[-0x1*-0x446+-0x8f9*-0x1+-0xd3f]&&a0[0x420+0x1*-0x44b+0x2c]>=-0x22*0x2f+0x46*0x2+0x5bf?(console[bM(0x451)](a0L[bM(0x4b0)]('\x20\x20\x20\x20Python\x203.13\x20is\x20too\x20new\x20—\x20most\x20CTF\x20libraries\x20lack\x20wheels.')),console['log'](a0L['gray'](bM(0x435)))):(console[bM(0x451)](a0L['gray'](bM(0x362))),console[bM(0x451)](a0L['gray'](bM(0x244))+a0L[bM(0x28a)](Q+bM(0x322))+a0L[bM(0x4b0)](bM(0x407))),console['log'](a0L[bM(0x4b0)](bM(0x2c6)))),console['log'](),console['log'](a0L[bM(0x4b3)]('\x20\x20Rerun\x20when\x20fixed:\x20')+a0L[bM(0x296)][bM(0x28a)]('exam\x20setup'))):a0ab(a1[bM(0x1d4)]+'/'+X[bM(0x1d4)]+bM(0x19b)+a2[bM(0x1d4)]+bM(0x302)+a2[bM(0x236)](ay=>ay[bM(0x1f1)])[bM(0x1e6)](',\x20')),console[bM(0x451)](),console[bM(0x451)](a0L[bM(0x28a)]('\x20\x20━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')),console[bM(0x451)](a0L[bM(0x296)][bM(0x4b3)](bM(0x44e))),console['log'](a0L[bM(0x28a)](bM(0x347))),console[bM(0x451)](),console[bM(0x451)](a0L[bM(0x296)][bM(0x20b)](bM(0x370))+a0L[bM(0x4b0)](bM(0x387))),console[bM(0x451)](a0L[bM(0x4b3)](bM(0x2cb))),console[bM(0x451)](a0L['green'](bM(0x3e9))),console[bM(0x451)](a0L[bM(0x4b0)](bM(0x264))),console[bM(0x451)](),console[bM(0x451)](a0L[bM(0x296)][bM(0x20b)]('\x20\x20Method\x202:\x20Interactive\x20Python')+a0L[bM(0x4b0)]('\x20(explore\x20&\x20experiment)')),console[bM(0x451)](a0L[bM(0x4b3)](bM(0x406))),console[bM(0x451)](a0L[bM(0x182)](bM(0x4a1))),console[bM(0x451)](a0L[bM(0x4b0)](bM(0x4ad))),console[bM(0x451)](a0L['gray'](bM(0x256))),console[bM(0x451)](a0L[bM(0x4b0)](bM(0x24b))),console[bM(0x451)](a0L[bM(0x4b0)]('\x20\x20\x20\x20>>>\x20print(cipher.decrypt(data))')),console[bM(0x451)](a0L[bM(0x4b0)](bM(0x2b7))),console[bM(0x451)](),console[bM(0x451)](a0L[bM(0x296)][bM(0x20b)](bM(0x1e3))+a0L[bM(0x4b0)](bM(0x29a))),console[bM(0x451)](a0L[bM(0x4b3)](bM(0x23c))),console[bM(0x451)](a0L[bM(0x182)]('\x20\x20\x20\x20!cat\x20<<\x20\x27EOF\x27\x20>\x20solve.py')),console[bM(0x451)](a0L['gray'](bM(0x27f))),console['log'](a0L['gray'](bM(0x225))),console['log'](a0L[bM(0x4b0)](bM(0x1d9))),console['log'](a0L['gray'](bM(0x466))),console[bM(0x451)](a0L[bM(0x182)](bM(0x463))),console[bM(0x451)](a0L[bM(0x182)](bM(0x492))),console['log'](),console[bM(0x451)](a0L[bM(0x296)]['yellow'](bM(0x306))),console[bM(0x451)](a0L['white'](bM(0x49f))+a0L['bold'][bM(0x28a)](bM(0x3ba))+a0L['white'](bM(0x2ed))),console[bM(0x451)](a0L[bM(0x4b0)](bM(0x486))),console[bM(0x451)](a0L[bM(0x4b0)]('\x20\x20\x20\x20\x22Show\x20me\x20how\x20to\x20use\x20struct.unpack\x22')),console['log'](a0L['gray'](bM(0x223))),console[bM(0x451)](a0L['cyan'](bM(0x347))),console[bM(0x451)](),console[bM(0x451)](a0L[bM(0x4b3)](bM(0x289))+a0L['bold'][bM(0x28a)](bM(0x350))),console['log'](a0L[bM(0x4b0)]('\x20\x20Or\x20type\x20')+a0L[bM(0x296)][bM(0x28a)](bM(0x19e))+a0L[bM(0x4b0)](bM(0x242))),console[bM(0x451)]();}),B[be(0x1a5)](()=>{const bO=be;a0a8(bO(0x442));const F=a0Y();if(F){a0ae(bO(0x35e)+F[bO(0x1cb)][bO(0x367)]),O();const J=Object['keys'](F[bO(0x1d6)])['length'];return a0af(bO(0x47e),J+'/'+F[bO(0x1cb)][bO(0x29e)]+bO(0x34e)),console[bO(0x451)](),void console[bO(0x451)](a0L[bO(0x4b0)](bO(0x28d)));}const G=a0a3(),H=a0ak();console['log'](),a0ae('ICOA\x20National\x20Selection\x20Exam'),console[bO(0x451)](),-0xf41+0x35a+0xbe7===G['attempts']?(console['log'](a0L[bO(0x20b)](bO(0x2ce))+a0L[bO(0x20b)](bO(0x3a3))),console[bO(0x451)](a0L[bO(0x4b0)](bO(0x2a3))+a0L[bO(0x296)][bO(0x28a)](bO(0x307)))):(console[bO(0x451)](a0L[bO(0x182)](bO(0x2f5))+a0L[bO(0x182)](bO(0x239)+G[bO(0x408)]+bO(0x427)+(-0x117e*-0x2+0x15a*-0xd+-0x1169!==G[bO(0x408)]?'s':'')+')')),H?(console[bO(0x451)](a0L[bO(0x182)]('\x20\x20●\x20')+a0L['green'](bO(0x353))),console[bO(0x451)](a0L[bO(0x20b)](bO(0x2ce))+a0L[bO(0x20b)]('Enter\x20exam\x20token\x20to\x20begin')),console[bO(0x451)](a0L[bO(0x4b0)](bO(0x2a3))+a0L[bO(0x296)][bO(0x28a)](bO(0x350)))):(console[bO(0x451)](a0L[bO(0x20b)](bO(0x2ce))+a0L['yellow'](bO(0x2fc))),console[bO(0x451)](a0L[bO(0x4b0)]('\x20\x20\x20\x20→\x20')+a0L['bold'][bO(0x28a)](bO(0x48f))))),console[bO(0x451)]();});}
|
package/dist/commands/learn.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import chalk from"chalk";import{createInterface as o}from"node:readline";import{spawn as e}from"node:child_process";import{getMainRl as r}from"../lib/main-rl.js";import{existsSync as n}from"node:fs";import{dirname as l,join as t}from"node:path";import{fileURLToPath as a}from"node:url";import{loadCurriculum as s,loadCurriculumById as i,validateEAToken as c,syncProgress as u}from"../lib/learn-curricula.js";import{getConfig as d}from"../lib/config.js";import{loadLearnState as m,saveLearnState as g,newLearnState as y,updateStreak as p,markCardComplete as f,recordMCQ as b,markPracticalComplete as h,addAchievement as k}from"../lib/learn-state.js";import{renderWelcome as w,renderKnowledgeCard as x,renderMCQCard as v,renderMCQFeedback as C,renderPracticalCard as A,renderPracticalSuccess as E,renderSimDemoCard as P,renderMilestone as j,renderStatus as _}from"../lib/learn-render.js";import{printError as T}from"../lib/ui.js";export function registerLearnCommand(
|
|
1
|
+
import chalk from"chalk";import{createInterface as o}from"node:readline";import{spawn as e}from"node:child_process";import{getMainRl as r}from"../lib/main-rl.js";import{existsSync as n}from"node:fs";import{dirname as l,join as t}from"node:path";import{fileURLToPath as a}from"node:url";import{loadCurriculum as s,loadCurriculumById as i,validateEAToken as c,syncProgress as u}from"../lib/learn-curricula.js";import{getConfig as d}from"../lib/config.js";import{loadLearnState as m,saveLearnState as g,newLearnState as y,updateStreak as p,markCardComplete as f,recordMCQ as b,markPracticalComplete as h,addAchievement as k}from"../lib/learn-state.js";import{renderWelcome as w,renderKnowledgeCard as x,renderMCQCard as v,renderMCQFeedback as C,renderPracticalCard as A,renderPracticalSuccess as E,renderSimDemoCard as P,renderMilestone as j,renderStatus as _}from"../lib/learn-render.js";import{printError as T}from"../lib/ui.js";export function registerLearnCommand(L){L.command("learn [token]").description("Enter learn mode (free if no token; team-issued EAxxxxxxxx for full curriculum)").action(async L=>{L&&L.trim()||(console.log(),console.log(chalk.gray(" No token given — starting free 11-card demo (")+chalk.bold.green("LEARNDEMO01")+chalk.gray(").")),console.log(chalk.gray(" Full curriculum (100/480 cards): ")+chalk.bold.yellow("learn EAxxxxxxxx")+chalk.gray(" — token from your country team leader.")),console.log(),L="LEARNDEMO01");const M=L.trim().toUpperCase();let S=s(M);if(!S&&/^EA[A-Z0-9]{8}$/i.test(M)){const o=d().ctfdUrl||"https://practice.icoa2026.au";console.log(),console.log(chalk.gray(" Validating EA token..."));const e=await c(M,o);if(!e.ok)return T(`Token validation failed: ${e.message}`),console.log(),console.log(chalk.gray(" Possible causes:")),console.log(chalk.gray(" · Token expired or revoked")),console.log(chalk.gray(" · Network down (check connection)")),console.log(chalk.gray(" · Typo in token")),void console.log();if(console.log(chalk.green(` ✓ Token valid · curriculum: ${e.curriculumId} · status: ${e.status}`)),S=await i(e.curriculumId||"LEARNDEMO01"),!S)return T(`Curriculum '${e.curriculumId}' not bundled in this CLI version.`),void console.log(chalk.gray(" Upgrade with: ")+chalk.bold.cyan("npm install -g icoa-cli@latest"))}if(!S)return T(`Unknown learn token: ${M}`),console.log(),console.log(chalk.gray(" Available tokens:")),console.log(chalk.gray(" ")+chalk.bold.green("LEARNDEMO01")+chalk.gray(" free 10-card demo (anyone can use)")),console.log(chalk.gray(" ")+chalk.bold.yellow("EAxxxxxxxx")+chalk.gray(" full curriculum (issued by team leader)")),console.log(),console.log(chalk.gray(" To get the full curriculum (n=480 cards, PhD-entry), email ")),console.log(chalk.gray(" ")+chalk.cyan("asra@icoa2026.au")+chalk.gray(" or ask your country's team leader.")),void console.log();let $=m(),q=!1;$&&$.token===M?p($):($=y(M,S.id,S.totalCards),q=!0),g($),w(S,$,q);const D=r(),I=null!==D,N=I?D.listeners("line").slice():[];I&&D.removeAllListeners("line");const O=I?D:o({input:process.stdin,output:process.stdout,terminal:!0}),U=()=>{O.setPrompt(chalk.bold.cyan("learn> ")),O.prompt()};U();let R=null,J=null;const B=[],F=o=>S.cards.find(e=>e.number===o),G=()=>{const o=F($.currentCard);if(!o)return console.log(),console.log(chalk.gray(" No more cards in this curriculum.")),console.log(chalk.gray(" Type ")+chalk.bold.green("status")+chalk.gray(" for the dashboard or ")+chalk.bold.green("quit")+chalk.gray(" to exit.")),void console.log();switch(o.type){case"knowledge":x(o,S),f($,o.number),g($);break;case"mcq":v(o,S),R=o.number;break;case"practical":A(o,S),J=o.number;break;case"sim_demo":P(o,S),f($,o.number),g($);break;case"milestone":j(o,S),k($,o.badge),f($,o.number),g($)}};O.on("line",async o=>{const r=o.trim().toLowerCase();if(r){if("menu"===r||"menu confirm"===r){B.length>0&&await Promise.race([Promise.allSettled(B),new Promise(o=>setTimeout(o,3e3))]);const{returnToMainMenu:o}=await import("../lib/menu-nav.js");return void o(O)}if("quit"!==r&&"exit"!==r&&"q"!==r){if("status"===r)return _(S,$),void U();if("sim"===r){const o=F($.currentCard);return o&&"sim_demo"===o.type?(function(o){const r=function(){const o=l(a(import.meta.url)),e=[t(o,"..","..","panda","mujoco-launcher.py"),t(o,"..","..","..","panda","mujoco-launcher.py")];for(const o of e)if(n(o))return o;return null}();if(!r)return console.log(chalk.yellow(" MuJoCo launcher not found.")),console.log(chalk.gray(" Get it from: https://github.com/newaipanda/ICOA_CLI/blob/main/panda/mujoco-launcher.py")),void console.log(chalk.gray(" Or use the sandbox-vla docker image (Phase 3)."));const s={baseline:"baseline",prompt_injected:"prompt_inj",patch_attacked:"patch",modality_confused:"confused"}[o]||"baseline";console.log(chalk.gray(` Launching MuJoCo viewer (scenario: ${s})...`)),console.log(chalk.gray(" Close the window or press ESC to return to learn mode.")),e("python3",[r,s,"--seconds","5"],{stdio:"inherit"}).on("exit",o=>{0!==o?console.log(chalk.yellow(` MuJoCo exited with code ${o} (install: pip install mujoco)`)):console.log(chalk.gray(" Returned from sim."))})}(o.simAction),void U()):(console.log(chalk.gray(" (sim only available on simulation cards)")),void U())}if("bookmark"===r){const o=$.currentCard;return $.bookmarks.includes(o)||$.bookmarks.push(o),g($),console.log(chalk.gray(` ✓ Card ${o} bookmarked.`)),void U()}if("back"===r)return $.currentCard>1&&($.currentCard-=1),R=null,J=null,g($),G(),void U();if(null!==R&&["a","b","c","d"].includes(r)){const o=F(R);if(o&&"mcq"===o.type){const e=r.toUpperCase(),n=e===o.answer;b($,o.number,{answer:e,correct:n,submittedAt:(new Date).toISOString()}),f($,o.number),g($),C(o,e,n,$);const l=d();return B.push(u(M,l.ctfdUrl||"https://practice.icoa2026.au",{card_number:o.number,event_type:"mcq_answered",mcq_answer:e,mcq_correct:n}).catch(()=>{})),R=null,void U()}}if(null!==J){if("done"===r){const o=F(J);if(o&&"practical"===o.type)return h($,o.number),f($,o.number),g($),E(o),J=null,void U()}if("skip"===r)return f($,J),g($),console.log(chalk.gray(" Skipped (counts as not completed).")),console.log(),J=null,void U()}if("ok"===r||"next"===r||"continue"===r||"n"===r)return null!==R?(console.log(chalk.yellow(" Please answer the MCQ first (A / B / C / D).")),void U()):null!==J?(console.log(chalk.yellow(" Please type ")+chalk.bold.green("done")+chalk.yellow(" or ")+chalk.bold.yellow("skip")+chalk.yellow(" for the practical.")),void U()):($.currentCard+=1,g($),$.currentCard>S.totalCards?(console.log(),console.log(chalk.bold.green(" 🎉 You've reached the end of the demo curriculum!")),console.log(chalk.gray(" Type ")+chalk.bold.green("status")+chalk.gray(" to see your full stats.")),console.log()):G(),void U());console.log(chalk.gray(" Unknown command. Try: ")+chalk.white("ok")+chalk.gray(" / ")+chalk.white("status")+chalk.gray(" / ")+chalk.white("quit")),U()}else if(B.length>0&&await Promise.race([Promise.allSettled(B),new Promise(o=>setTimeout(o,5e3))]),console.log(),console.log(chalk.gray(" Saved. See you next session.")),console.log(chalk.gray(" Streak: ")+chalk.yellow(`🔥 ${$.streakDays} day(s)`)),console.log(),I){O.removeAllListeners("line");for(const o of N)O.on("line",o);O.prompt()}else O.close()}else U()}),I||O.on("close",async()=>{B.length>0&&await Promise.race([Promise.allSettled(B),new Promise(o=>setTimeout(o,5e3))]),process.exit(0)}),G(),U()})}
|
package/dist/repl.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createInterface as o}from"node:readline";import{spawn as e,execSync as t}from"node:child_process";import chalk from"chalk";import{isConnected as l,getConfig as n,saveConfig as s}from"./lib/config.js";import{isActivated as a,activateToken as r,isFreeCommand as i,isDeviceMatch as c,recordExit as g,recordResume as y,isFirstRunOrUpgrade as m,markVersionSeen as d}from"./lib/access.js";import{setReplMode as p}from"./lib/ui.js";import{returnToMainMenu as u,printMenuHint as h,menuHintInline as w}from"./lib/menu-nav.js";import{setMainRl as f}from"./lib/main-rl.js";import{isChatActive as b,handleChatMessage as x}from"./commands/ai4ctf.js";import{isCtf4aiActive as v,handleCtf4aiMessage as C}from"./commands/ctf4ai-demo.js";import{isVla4CtfActive as A,handleVla4CtfMessage as I}from"./commands/vla4ctf.js";import{isDemo2Active as k}from"./commands/demo2.js";import{getExamState as T,getRealExamState as $,getDemoState as S}from"./lib/exam-state.js";import{getDemoStats as O}from"./lib/demo-stats.js";import{isExamSetupComplete as P}from"./lib/exam-setup.js";import{DEMO_PICK_SIZE as E,DEMO_POOL_SIZE as L}from"./lib/demo-exam.js";import{isNativeWindowsCmd as R}from"./lib/platform.js";import{resetTerminalTheme as q}from"./lib/theme.js";import{ensureSandbox as j,runInSandbox as D,isDockerAvailable as N}from"./lib/sandbox.js";import{logCommand as F}from"./lib/logger.js";import{startLogSync as M,stopLogSync as U}from"./lib/log-sync.js";import{existsSync as W,mkdirSync as z,writeFileSync as B}from"node:fs";import{join as _}from"node:path";import{homedir as Q}from"node:os";function Y(){return $()?chalk.cyan("exam> "):S()?chalk.yellow("demo> "):chalk.green("icoa> ")}const V=_(Q(),"icoa-workspace");function J(){return W(V)||z(V,{recursive:!0}),V}const G=new Set(["sudo","su","doas","pkexec","brew","apt","apt-get","yum","choco","npm","npx","pip","pip3","shutdown","reboot","halt","mkfs","fdisk","dd","iptables","ufw"]),K="__REPL_NO_EXIT__",Z="2.5.1";function H(){const o=O(),e=P(),l=`Free practice — ${E} questions (from pool of ${L})`,n=R();if(console.log(),console.log(` ${chalk.cyan.bold("[Selection Mode]")}`),console.log(),n)console.log(chalk.gray(" Platform: ")+chalk.white("Windows cmd.exe")+chalk.gray(" — routed to Paper C (MCQ-only, 45 min, 70 pts, zero extra tools)")),console.log();else if(o.attempts>0){const o=function(){const o=["python3.12 --version","/opt/homebrew/opt/python@3.12/bin/python3.12 --version","/usr/local/opt/python@3.12/bin/python3.12 --version","python3 --version","python --version","py -3.12 --version","py -3 --version"];let e="",l="missing";for(const n of o)try{const o=t(n,{encoding:"utf-8",timeout:2e3,stdio:["ignore","pipe","ignore"]}).trim().replace("Python ",""),[s,a]=o.split(".").map(Number);if(3===s&&12===a)return{ok:!0,version:o,status:"ok"};e=o,l=3===s&&a>=10&&a<12?"old":3===s&&a>12?"new":"missing"}catch{}return{ok:"missing"!==l,version:e,status:l}}();"missing"===o.status?(console.log(chalk.yellow(" ⚠ Python not detected. For exam practical questions:")),console.log(chalk.gray(" → ")+chalk.bold.cyan("env python")+chalk.gray(" (platform install guide)")),console.log()):"new"===o.status&&(console.log(chalk.yellow(` ⚠ Python ${o.version} may lack CTF wheels. Python 3.12 recommended:`)),console.log(chalk.gray(" → ")+chalk.bold.cyan("env python")+chalk.gray(" (install guide)")),console.log())}if(0===o.attempts)console.log(chalk.white(" New here? Start with ")+chalk.bold.cyan("demo")+chalk.white(" — it takes a few minutes.")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.bold.cyan(" demo")+chalk.gray(` ${l}`)),console.log(chalk.white(" lang")+chalk.gray(" List all supported languages")),console.log(chalk.white(" lang es")+chalk.gray(" Switch language (e.g. lang es, lang zh, lang fr)")),console.log(chalk.gray(" ─────────────────────────────────────────────"));else if(e||n){const e=1===o.attempts?"attempt":"attempts";o.attempts>0&&console.log(chalk.green(" ✓ Demo completed ")+chalk.gray(`(${o.attempts} ${e})`)),n||console.log(chalk.green(" ✓ Environment ready")),console.log(chalk.yellow(" → Enter your exam token to begin.")),console.log(chalk.gray(" (10-char code from your organizer, starts with your country code like ")+chalk.cyan("UA")+chalk.gray(" — case-insensitive)")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.bold.yellow(" exam <token>")+chalk.gray(" Enter exam (primary action — use your organizer-issued token)")),console.log(chalk.gray(" format: ")+chalk.white("exam UAxxxxxxxx")+chalk.gray(" (2-letter country prefix + 8 chars)")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.gray(" Other commands:")),console.log(chalk.white(" demo")+chalk.gray(` ${l}`)),n||console.log(chalk.white(" exam setup")+chalk.gray(" Re-verify tool environment")),console.log(chalk.white(" lang")+chalk.gray(" List all supported languages")),console.log(chalk.white(" lang es")+chalk.gray(" Switch language (e.g. lang es, lang zh, lang fr)")),console.log(chalk.gray(" ─────────────────────────────────────────────"))}else{const e=1===o.attempts?"attempt":"attempts";console.log(chalk.green(" ✓ Demo completed ")+chalk.gray(`(${o.attempts} ${e}${o.bestPercentage>0?` · best ${o.bestPercentage}%`:""})`)),console.log(chalk.yellow(" → Next: prepare your environment for the real exam.")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" demo")+chalk.gray(` ${l}`)),console.log(chalk.bold.yellow(" exam setup")+chalk.gray(" Install tools for national selection (~150MB)")),console.log(chalk.white(" lang")+chalk.gray(" List all supported languages")),console.log(chalk.white(" lang es")+chalk.gray(" Switch language (e.g. lang es, lang zh, lang fr)")),console.log(chalk.gray(" ─────────────────────────────────────────────"))}console.log(chalk.gray(" ")+chalk.gray("Tip: ")+chalk.cyan("help")+chalk.gray(" for commands · ")+w()+chalk.gray(" · ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+chalk.cyan("quit")+chalk.gray(" closes")),console.log()}export async function startRepl(e,S){process.env.ICOA_INSIDE_REPL="1";const O=n(),P=l(),E=process.exit.bind(process),L=a();if(O.demoCleanedForVersion!==Z){try{const{existsSync:o,unlinkSync:e}=await import("node:fs"),{join:t}=await import("node:path"),{getIcoaDir:l}=await import("./lib/config.js"),n=t(l(),"demo-state.json");o(n)&&e(n)}catch{}s({demoCleanedForVersion:Z})}const{select:R,confirm:oo}=await import("@inquirer/prompts"),eo=O.mode||"",to=[{name:` ${chalk.bold("National Selection")} ${chalk.gray("—")} ${chalk.gray("demo, exam (lightweight)")}`,value:"selection"},{name:` ${chalk.bold("Embodied AI Security")} 🤖 ${chalk.gray("—")} ${chalk.gray("VLA4CTF Pioneer Round: demo, learn, Paper D (parallel track)")}`,value:"embodied"},{name:` ${chalk.bold("International Olympiad")} ${chalk.gray("—")} ${chalk.gray("CTF × AI (~500MB, advanced)")}`,value:"olympiad"},{name:` ${chalk.bold("National/Regional Partner")} ${chalk.gray("—")} ${chalk.gray("organizer tools (tokens, competitions)")}`,value:"organizer"},{name:` ${chalk.gray("About ICOA")} ${chalk.gray("·")} ${chalk.gray("Info & contact")}`,value:"about"}];console.log(chalk.gray(" Use ")+chalk.yellow("↑")+chalk.gray(" or ")+chalk.yellow("↓")+chalk.gray(" to select, ")+chalk.yellow("Enter")+chalk.gray(" to confirm.")),console.log();let lo="";for(;!lo;){const o=await R({message:"Mode",choices:to,default:eo||"selection"});"about"!==o?lo=o:(console.clear(),console.log(),console.log(chalk.cyan(" ═══════════════════════════════════════════════════")),console.log(chalk.bold.yellow(" ICOA")+chalk.white(" — AI-Native CLI OS for Cyber & AI Security")),console.log(chalk.gray(" Olympiad & Competition · K-12 to University")),console.log(chalk.cyan(" ───────────────────────────────────────────────────")),console.log(),console.log(chalk.bold.white(" What Makes ICOA Different")),console.log(chalk.gray(" · AI-native AI teammate, AI adversary, AI translation")),console.log(chalk.gray(" · CLI OS Complete competition environment in terminal")),console.log(chalk.gray(" · 110 tools pwntools, z3, gdb, nmap, sleuthkit... pre-configured")),console.log(chalk.gray(" · Global scale 15,000+ concurrent exams · 15 languages")),console.log(),console.log(chalk.bold.white(" Competition Format")),console.log(` ${chalk.green.bold("AI4CTF")}${chalk.gray(" [Day 1] AI as teammate — 5hr jeopardy CTF")}`),console.log(` ${chalk.red.bold("CTF4AI")}${chalk.gray(" [Day 2] Challenge AI — adversarial ML, red-team")}`),console.log(` ${chalk.cyan.bold("VLA4CTF")}${chalk.gray(" [Pioneer Round] Embodied AI — attack robot brains (NEW)")}`),console.log(),console.log(chalk.white(" Sydney, Australia")+chalk.gray(" · Jun 27 - Jul 2, 2026 · 40+ countries")),console.log(),console.log(chalk.bold.white(" Organized by")+chalk.gray(" ASRA (Australia) · ICO Foundation Inc")),console.log(chalk.bold.white(" Contact ")+chalk.cyan(" australia@icoa2026.au · accreditation@icoa2026.au")),console.log(chalk.bold.white(" Website ")+chalk.cyan.underline(" https://icoa2026.au")),console.log(chalk.cyan(" ═══════════════════════════════════════════════════")),console.log(),console.log(chalk.gray(" Press ")+chalk.yellow("Enter")+chalk.gray(" to return...")),await new Promise(o=>{const e=t=>{process.stdin.removeListener("data",e),process.stdin.isTTY&&process.stdin.setRawMode&&process.stdin.setRawMode(!1),process.stdin.pause(),o()};process.stdin.isTTY&&process.stdin.setRawMode&&process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.once("data",e)}),console.clear())}if("olympiad"===lo&&"olympiad"!==eo&&(console.log(),console.log(chalk.yellow(" This mode will download ~500MB of CTF tools and AI models.")),await oo({message:"Continue?",default:!0})||(lo="selection",console.log(chalk.gray(" Switched to National Selection mode.")))),lo!==eo&&s({mode:lo}),console.log(),"olympiad"===lo&&m(Z)){d(Z),console.log(chalk.gray(" Checking competition environment..."));const{execSync:o}=await import("node:child_process"),e=[{name:"pwntools",cmd:'python3 -c "import pwn"'},{name:"z3-solver",cmd:'python3 -c "import z3"'},{name:"numpy",cmd:'python3 -c "import numpy"'},{name:"requests",cmd:'python3 -c "import requests"'}];let t=0;for(const l of e)try{o(l.cmd,{stdio:"ignore"})}catch{t++}if(t>0){console.log(chalk.yellow(` ${t} core libraries missing.`));try{const{confirm:o}=await import("@inquirer/prompts");if(await o({message:" Install competition Python libraries now?",default:!0,theme:{prefix:"",style:{message:o=>chalk.green(o),defaultAnswer:o=>chalk.green(o)}}})){console.log();const{execSync:o}=await import("node:child_process");o("icoa env setup",{stdio:"inherit"})}}catch{console.log(chalk.gray(" Run ")+chalk.white("env setup")+chalk.gray(" later to install."))}console.log()}else console.log(chalk.green(" All core libraries ready.")),console.log()}if(S){const o=y();if(o){const e=Math.floor(o.awaySeconds/60),t=o.awaySeconds%60;console.log(chalk.yellow(` Session resumed. Away: ${e}m ${t}s | Total exits: ${o.exitCount}`)),console.log()}}"selection"===lo?H():"embodied"===lo?(console.log(chalk.cyan.bold(" [Embodied AI Security 🤖]")),console.log(),console.log(chalk.bold.cyan(" VLA4CTF")+chalk.gray(" — ICOA 2026's ")+chalk.bold.white("Pioneer Round")),console.log(chalk.gray(" an independent parallel track alongside the scored main events: ")+chalk.green("AI4CTF")+chalk.gray(" (Day 1) and ")+chalk.red("CTF4AI")+chalk.gray(" (Day 2)")),console.log(),console.log(chalk.white(" Embodied AI is at its ImageNet moment.")),console.log(chalk.gray(" VLA models, MuJoCo physics, real robot arms.")),console.log(chalk.gray(" Real models, real physics, real attack surfaces.")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.bold.yellow(" First time? Try in order: ")+chalk.bold.cyan("① sim")+chalk.gray(" → ")+chalk.bold.cyan("② demo2")+chalk.gray(" → ")+chalk.bold.cyan("③ learn LEARNDEMO01")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.bold.green(" sim")+chalk.gray(" ")+chalk.bold.cyan("①")+chalk.gray(" ")+chalk.bold.yellow("★ WOW")+chalk.gray(" — robot arm replay in seconds")),console.log(chalk.bold.green(" demo2")+chalk.gray(" ")+chalk.bold.cyan("②")+chalk.gray(" ~8 min interactive intro + live MuJoCo sim")),console.log(chalk.bold.green(" learn LEARNDEMO01")+chalk.gray(" ")+chalk.bold.cyan("③")+chalk.gray(" free 11-card intro (paste this command as-is)")),console.log(chalk.bold.green(" learn ")+chalk.bold.yellow("EAxxxxxxxx")+chalk.gray(" full 100/480-card curriculum (team-issued)")),console.log(chalk.bold.green(" exam ")+chalk.bold.yellow("PDxxxxxxxx")+chalk.gray(" Paper D (VLA4CTF) — national selection contestants")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(),console.log(chalk.gray(" Three open tiers: ")+chalk.green("free 11")+chalk.gray(" · ")+chalk.yellow("registered 100")+chalk.gray(" · ")+chalk.bold.magenta("national team 480")+chalk.gray(" (PhD-ready)")),console.log(chalk.gray(" Country team contact: ")+chalk.cyan("australia@icoa2026.au")),console.log(),h(),console.log()):"organizer"===lo?(console.log(chalk.yellow.bold(" [National/Regional Partner]")),console.log(),console.log(chalk.bold.white(" ██╗ ██████╗ ██████╗ █████╗")),console.log(chalk.bold.white(" ██║██╔════╝██╔═══██╗██╔══██╗")),console.log(chalk.bold.white(" ██║██║ ██║ ██║███████║")),console.log(chalk.bold.white(" ██║██║ ██║ ██║██╔══██║")),console.log(chalk.bold.white(" ██║╚██████╗╚██████╔╝██║ ██║")),console.log(chalk.bold.white(" ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝")),console.log(),console.log(chalk.yellow(" International Cyber Olympiad in AI 2026")),console.log(chalk.bold.magenta(" The World's First AI-Native CLI Operating System")),console.log(chalk.bold.magenta(" for Cybersecurity & AI Security Competition")),console.log(chalk.bold.magenta(" and Olympiad for K-12")),console.log(chalk.gray(" Sydney, Australia · Jun 27 - Jul 2, 2026")),console.log(),console.log(chalk.white(" Vision")),console.log(chalk.gray(" Building a global pipeline for youth cyber & AI")),console.log(chalk.gray(" security talent through education and competition.")),console.log(),console.log(chalk.white(" Capacity")),console.log(chalk.gray(" 15,000+ concurrent online examinations")),console.log(chalk.gray(" National selection, training, and education support")),console.log(),console.log(chalk.white(" Olympic Spirit")),console.log(chalk.gray(" Excellence · Friendship · Respect")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" New country accreditation & support:")),console.log(chalk.cyan(" australia@icoa2026.au")),console.log(chalk.cyan(" accreditation@icoa2026.au")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(),P?(console.log(chalk.green(` Logged in as ${O.userName}`)),console.log(chalk.white(" exam list")+chalk.gray(" Manage exams")),console.log(chalk.white(" logout")+chalk.gray(" Disconnect"))):console.log(chalk.white(" join <url>")+chalk.gray(" Connect to manage exams")),console.log(),h(),console.log()):L&&!c()?(console.log(chalk.red(" Token was activated on a different device.")),console.log(chalk.gray(" Contact organizer for assistance.")),console.log()):P?(console.log(chalk.green.bold(` Welcome back, ${O.userName}!`)),console.log(chalk.gray(` Connected to ${O.ctfdUrl}`)),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" Ready to compete? Start here:")),console.log(),console.log(chalk.bold.cyan(" challenges")+chalk.gray(" Browse challenges by category")),console.log(chalk.white(" status")+chalk.gray(" Your score & hint budget")),console.log(chalk.white(" scoreboard")+chalk.gray(" Live rankings")),console.log(chalk.white(" help")+chalk.gray(" Full command list")),console.log(),console.log(chalk.gray(" Tool environment:")),console.log(chalk.white(" env")+chalk.gray(" See which of the 110 CTF tools are installed")),console.log(chalk.white(" env setup")+chalk.gray(" Install anything missing (~5 min, one-time)")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.gray(" Tip: ")+chalk.cyan("help")+chalk.gray(" · ")+w()+chalk.gray(" · ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+chalk.cyan("quit")+chalk.gray(" closes")),console.log()):L?(J(),console.log(chalk.green.bold(" Welcome, competitor!")),console.log(chalk.gray(` Workspace: ${V}`)),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" Get started:")),console.log(),console.log(chalk.white(" Step 1 ")+chalk.bold.cyan("join <url>")+chalk.gray(" Connect to competition server")),console.log(chalk.white(" Step 2 ")+chalk.bold.cyan("challenges")+chalk.gray(" Browse & solve challenges")),console.log(chalk.white(" Step 3 ")+chalk.bold.cyan("ai4ctf")+chalk.gray(" Ask AI when stuck")),console.log(),console.log(chalk.gray(" Before Step 1 — make sure your tools are ready:")),console.log(chalk.white(" env")+chalk.gray(" See which of the 110 CTF tools are installed")),console.log(chalk.white(" env setup")+chalk.gray(" Install anything missing (~5 min, one-time)")),console.log(),console.log(chalk.gray(" Also: ")+chalk.white("help")+chalk.gray(" all commands")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.gray(" Tip: ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+w()+chalk.gray(" · ")+chalk.cyan("quit")+chalk.gray(" closes CLI")),console.log()):(console.log(chalk.bold.white(" Welcome to ICOA CLI — International Olympiad")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" To begin, activate your competition token:")),console.log(),console.log(chalk.bold.cyan(" activate <token>")),console.log(),console.log(chalk.gray(" While waiting, explore:")),console.log(chalk.white(" ref linux")+chalk.gray(" Quick reference for Linux")),console.log(chalk.white(" ref web")+chalk.gray(" Quick reference for Web")),console.log(chalk.white(" env")+chalk.gray(" See which of the 110 CTF tools are installed")),console.log(chalk.white(" env setup")+chalk.gray(" Install anything missing (~5 min, one-time)")),console.log(chalk.white(" help")+chalk.gray(" All available commands")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.gray(" Tip: ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+w()+chalk.gray(" · ")+chalk.cyan("quit")+chalk.gray(" closes CLI")),console.log()),e.exitOverride(),e.configureOutput({writeErr:()=>{},writeOut:o=>{console.log(o)}});const no=o({input:process.stdin,output:process.stdout,prompt:Y(),terminal:!0});f(no);let so=!1;p(!0),M();const ao=no.prompt.bind(no);no.prompt=o=>{b()||v()||A()||k()||no.setPrompt(Y()),ao(o)},no.prompt(),no.on("line",async o=>{if(so)return;const l=o.trim();if(!l)return no.setPrompt(b()?chalk.magenta("ai4ctf> "):Y()),void no.prompt();if("menu"===l||"menu confirm"===l)return $()&&"menu confirm"!==l?(console.log(),console.log(chalk.yellow(" Real exam active. Progress is auto-saved.")),console.log(chalk.gray(" To return to main menu anyway, type ")+chalk.white("menu confirm")),console.log(),void no.prompt()):void u(no);if(b()){so=!0;const o=await x(l);return so=!1,"exit"===o&&no.setPrompt(Y()),void no.prompt()}if(v()){so=!0;const o=await C(l);return so=!1,"exit"!==o&&"solved"!==o||no.setPrompt(Y()),void no.prompt()}if(A()){so=!0;const o=await I(l);return so=!1,"exit"===o&&no.setPrompt(Y()),no.setPrompt(A()?chalk.bold.cyan("vla4ctf> "):Y()),void no.prompt()}if(F(l),"exit"===l)return T()?(console.log(),console.log(chalk.yellow(" ⚠ An exam is in progress.")),console.log(chalk.white(" To return to menu without losing progress, type: ")+chalk.bold.cyan("back")),console.log(chalk.white(" To fully close ICOA CLI, type: ")+chalk.bold.cyan("quit")),console.log(chalk.gray(" Your progress is auto-saved either way.")),console.log(),void no.prompt()):(console.log(),console.log(chalk.gray(" ")+chalk.white("exit")+chalk.gray(" returns to the main menu. To fully close ICOA CLI, type ")+chalk.bold.cyan("quit")+chalk.gray(".")),"selection"===lo&&H(),void no.prompt());if("quit"===l||"q"===l||"quit confirm"===l){const o=T();return o&&"demo-free"!==o.session.examId&&"quit confirm"!==l?(console.log(),console.log(chalk.yellow(" ⚠ A real exam is in progress.")),console.log(chalk.gray(" Your answers are auto-saved on the server, but the exam timer keeps ticking")),console.log(chalk.gray(" on the server side even if you close the CLI.")),console.log(),console.log(chalk.white(" To leave the CLI but keep the exam alive, type: ")+chalk.bold.cyan("back")),console.log(chalk.gray(" (recommended — you can resume with ")+chalk.cyan("exam q 1")+chalk.gray(" after relaunching icoa)")),console.log(),console.log(chalk.white(" To really close ICOA CLI, type: ")+chalk.bold.cyan("quit confirm")),console.log(),void no.prompt()):(o&&"demo-free"===o.session.examId&&(console.log(),console.log(chalk.gray(" Demo paused. Resume with: ")+chalk.white("demo")+chalk.gray(" (fresh) or ")+chalk.white("exam q 1")+chalk.gray(" (continue)."))),U(),g(),console.log(chalk.gray(" Session saved. Use ")+chalk.white("icoa --resume")+chalk.gray(" to continue.")),q(),void E(0))}if("back"===l){const o=T(),e=o&&"demo-free"!==o.session.examId,t=o&&"demo-free"===o.session.examId&&(()=>{const e=new Date(o.session.startedAt||0).getTime();return Date.now()-e<18e5})();if(e)console.log(),console.log(chalk.gray(" Exam paused. Your progress is saved.")),console.log(chalk.white(" Resume: exam q 1")+chalk.gray(" · ")+chalk.white("exam review")+chalk.gray(" · ")+chalk.white("exam submit")),console.log();else if(t){const e=Object.keys(o.answers).length,t=o.session.questionCount;console.log(),console.log(chalk.gray(` Demo paused (${e}/${t} answered). Resume with: `)+chalk.white("exam q 1")),console.log(chalk.gray(" Or type ")+chalk.white("demo")+chalk.gray(" to restart.")),console.log()}else{if(o&&"demo-free"===o.session.examId){const{clearExamState:o}=await import("./lib/exam-state.js");o("demo-free")}const e=n();fetch("https://practice.icoa2026.au/api/icoa/demo-stats",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:"post-report-back",lang:e.language||"en",timestamp:(new Date).toISOString()}),signal:AbortSignal.timeout(5e3)}).catch(()=>{}),"selection"===lo?H():console.log(chalk.gray(" Already at main menu."))}return void no.prompt()}if("help"===l||"?"===l){if(T()){so=!0;try{await e.parseAsync(["node","icoa","exam","help"])}catch{}return so=!1,void no.prompt()}return function(o,e="olympiad"){console.log(),"selection"===e||"organizer"===e?(console.log(chalk.bold.white(" Exam")),console.log(chalk.white(" join <url> ")+chalk.gray("Connect to exam server")),console.log(chalk.white(" exam list ")+chalk.gray("Available exams")),console.log(chalk.white(" exam start <id> ")+chalk.gray("Begin an exam")),console.log(chalk.white(" exam q [n] ")+chalk.gray("View questions")),console.log(chalk.white(" exam answer <n> <X> ")+chalk.gray("Answer question")),console.log(chalk.white(" exam review ")+chalk.gray("Review all answers")),console.log(chalk.white(" exam submit ")+chalk.gray("Submit for grading")),console.log(chalk.white(" exam result ")+chalk.gray("View your score")),console.log(),console.log(chalk.bold.white(" System")),console.log(chalk.white(" ref [topic] ")+chalk.gray("Quick reference")),console.log(chalk.white(" setup ")+chalk.gray("Settings / switch mode")),console.log(chalk.white(" lang [code] ")+chalk.gray("Switch language")),console.log(chalk.white(" clear ")+chalk.gray("Clear screen")),console.log(chalk.white(" exit ")+chalk.gray("Quit")),console.log()):o?(console.log(chalk.cyan(" ═══════════════════════════════════════════════")),console.log(chalk.bold.white(" How it works")),console.log(),console.log(chalk.gray(" 1. Browse ")+chalk.white("challenges")+chalk.gray(" and pick one")),console.log(chalk.gray(" 2. ")+chalk.white("open <id>")+chalk.gray(" to read the challenge")),console.log(chalk.gray(" 3. Use ")+chalk.white("ai4ctf")+chalk.gray(" to chat with AI when stuck")),console.log(chalk.gray(" 4. ")+chalk.white("submit <id> icoa{flag}")+chalk.gray(" to score points")),console.log(chalk.gray(" 5. Check ")+chalk.white("scoreboard")+chalk.gray(" to track your rank")),console.log(chalk.cyan(" ═══════════════════════════════════════════════")),console.log(),console.log(chalk.bold.white(" Competition")),console.log(chalk.white(" join <url> ")+chalk.gray("Connect to CTFd")),console.log(chalk.white(" challenges (ch) ")+chalk.gray("List challenges by category")),console.log(chalk.white(" open <id> ")+chalk.gray("Read challenge + get next steps")),console.log(chalk.white(" submit <id> <flag> ")+chalk.gray("Submit a flag")),console.log(chalk.white(" scoreboard (sb) ")+chalk.gray("Live rankings")),console.log(chalk.white(" status ")+chalk.gray("Your score, budget & timer")),console.log(chalk.white(" time ")+chalk.gray("Countdown timer")),console.log(),console.log(chalk.bold.white(" AI Teammate")+chalk.gray(" — 3 levels, use wisely")),console.log(chalk.white(' hint "question" ')+chalk.gray("Level A — General guidance (50 uses)")),console.log(chalk.white(' hint-b "question" ')+chalk.gray("Level B — Deep analysis (10 uses)")),console.log(chalk.white(' hint-c "question" ')+chalk.gray("Level C — Critical assist (2 uses)")),console.log(chalk.white(" hint budget ")+chalk.gray("Check remaining uses")),console.log(chalk.white(" ai4ctf ")+chalk.gray("Free-chat with AI (no limit)")),console.log(),console.log(chalk.bold.white(" Tools")),console.log(chalk.white(" ref [topic] ")+chalk.gray("Quick reference (linux, web, crypto...)")),console.log(chalk.white(" shell ")+chalk.gray("Docker sandbox")),console.log(chalk.white(" files <id> ")+chalk.gray("Download challenge files")),console.log(chalk.white(" connect <id> ")+chalk.gray("Connect to remote target")),console.log(chalk.white(" note [text] ")+chalk.gray("Personal notepad")),console.log(chalk.white(" log ")+chalk.gray("Session history")),console.log(),console.log(chalk.bold.white(" System")),console.log(chalk.white(" setup ")+chalk.gray("Configure settings")),console.log(chalk.white(" lang [code] ")+chalk.gray("Switch language (15 supported)")),console.log(chalk.white(" logout ")+chalk.gray("Disconnect")),console.log(chalk.white(" clear ")+chalk.gray("Clear screen")),console.log(chalk.white(" exit ")+chalk.gray("Quit (session saved)")),console.log()):(console.log(chalk.bold.yellow(" Restricted Mode — activate with a token to unlock all commands")),console.log(),console.log(chalk.white(" activate <token> ")+chalk.gray("Unlock full access")),console.log(chalk.white(" ref [topic] ")+chalk.gray("Quick reference")),console.log(chalk.white(" exit ")+chalk.gray("Quit")),console.log())}(a(),lo),void no.prompt()}if("more help"===l.toLowerCase()&&T()){so=!0;try{await e.parseAsync(["node","icoa","exam","more-help"])}catch{}return so=!1,void no.prompt()}if("continue"===l.toLowerCase())return console.log(),console.log(chalk.green.bold(" ═══ AI4CTF — AI as Your Teammate ═══")),console.log(),console.log(chalk.white(" In AI4CTF, you solve cybersecurity challenges")),console.log(chalk.white(" with AI by your side.")),console.log(),console.log(chalk.white(" In competition, you get AI help at 3 levels:")),console.log(chalk.yellow(" hint a")+chalk.gray(" General guidance (50 uses)")),console.log(chalk.yellow(" hint b")+chalk.gray(" Deep analysis (10 uses)")),console.log(chalk.yellow(" hint c")+chalk.gray(" Critical assist (2 uses)")),console.log(),console.log(chalk.white(" Try it now! Type: ")+chalk.bold.green("ai4ctf")),console.log(chalk.gray(' Chat freely with your AI teammate. Type "exit" when done.')),console.log(),console.log(chalk.gray(" After ai4ctf, try: ")+chalk.bold.red("ctf4ai")+chalk.gray(' — trick the AI into saying "koala"')),console.log(),void no.prompt();if(/^ICOA-[A-Z]{2,3}-\d{1,6}$/i.test(l.trim())){so=!0;try{await e.parseAsync(["node","icoa","exam","token",l.trim()])}catch{}return so=!1,void no.prompt()}if(/^[A-Z]{2}[0-9A-HJKMNP-TV-Z]{8}$/i.test(l.trim())){so=!0;try{await e.parseAsync(["node","icoa","exam","token",l.trim().toUpperCase()])}catch{}return so=!1,void no.prompt()}const s=l.match(/^exam\s+([A-Z]{2}[0-9A-HJKMNP-TV-Z]{8})$/i);if(s){so=!0;try{await e.parseAsync(["node","icoa","exam","token",s[1].toUpperCase()])}catch{}return so=!1,void no.prompt()}const y=l.match(/^exam\s+([A-Z]{2,3})$/i);if(y){so=!0;try{await e.parseAsync(["node","icoa","exam","list",y[1]])}catch{}return so=!1,void no.prompt()}if("clear"===l||"cls"===l)return console.clear(),void no.prompt();if(l.startsWith("activate ")){const o=l.slice(9).trim(),e=r(o);return"ok"===e?console.log(chalk.green(" Access granted! Token bound to this device.")):"already_bound"===e?(console.log(),console.log(chalk.red(" Token already activated on a different device.")),console.log(chalk.gray(" Each token binds to the first device that uses it. If you lost the device,")),console.log(chalk.gray(" contact your proctor to have the token re-issued for a new device."))):(console.log(),console.log(chalk.red(" Token not recognized.")),console.log(chalk.gray(" Possible reasons:")),console.log(chalk.white(" • ")+chalk.gray("Typo — tokens are case-insensitive, 10 chars, start with a 2-letter country code (e.g. ")+chalk.cyan("UAK7M2R9Q4")+chalk.gray(")")),console.log(chalk.white(" • ")+chalk.gray("Expired — ask your proctor or organizer for a fresh token")),console.log(chalk.white(" • ")+chalk.gray("Network — verify connection to ")+chalk.cyan("practice.icoa2026.au")),console.log(chalk.gray(" Still stuck? type ")+chalk.cyan("help")+chalk.gray(" or try ")+chalk.cyan("exam demo")+chalk.gray(" for a free practice round."))),console.log(),void no.prompt()}if("activate"===l)return console.log(chalk.gray(" Usage: ")+chalk.white("activate <token>")),console.log(),void no.prompt();const m=T();if(m){const o=l.toUpperCase().trim(),t=o=>{const e=m.questions.find(e=>e.number===o);return!!e&&("ai4ctf"===e.type||"ctf4ai"===e.type||e.options&&!e.options.A&&!e.options.B)},n=o=>{const e="demo-free"!==m.session.examId,t=e&&o>=39?"ctf4ai":e&&o>=31?"ai4ctf":null;console.log(),console.log(chalk.yellow(` Q${o} is a practical question — letters (A/B/C/D) don't apply here.`)),t?(console.log(chalk.white(" Enter the AI chat for this question: ")+chalk.bold.cyan(t)),console.log(chalk.gray(" Or submit a flag directly: ")+chalk.green(`exam answer ${o} ICOA{your_flag}`))):console.log(chalk.gray(" Submit a flag: ")+chalk.green(`exam answer ${o} ICOA{your_flag}`)),console.log()};if(/^[ABCD]$/.test(o)){const l=m._lastQ||1;if(t(l))return n(l),void no.prompt();so=!0;try{await e.parseAsync(["node","icoa","exam","answer",String(l),o])}catch{}return so=!1,void no.prompt()}const s=o.match(/^(\d+)\s+([ABCD])$/);if(s){const o=parseInt(s[1],10);if(t(o))return n(o),void no.prompt();so=!0;try{await e.parseAsync(["node","icoa","exam","answer",s[1],s[2]])}catch{}return so=!1,void no.prompt()}}const d=l.split(/\s+/)[0].toLowerCase(),p=/^python3?(\.\d+)?$/.test(d),h=l.startsWith("!")||d.startsWith("!")||p;if("embodied"===lo&&!h&&!["demo2","learn","exam","vla4ctf","lang","ref","setup","env","sim"].includes(d))return console.log(chalk.gray(" Not available in Embodied AI Security mode.")),console.log(chalk.white(" Try ")+chalk.bold.cyan("demo2")+chalk.gray(" (intro) · ")+chalk.bold.cyan("learn")+chalk.gray(" (curriculum) · ")+chalk.bold.cyan("exam <PD-token>")+chalk.gray(" (Paper D)")),console.log(),void no.prompt();if("selection"===lo&&!h&&!["exam","demo","retry","nations","next","prev","continue","setup","lang","ref","ai4ctf","ctf4ai","mark","unmark","review","submit","env","sim"].includes(d)){if(console.log(chalk.gray(" Not available in Selection mode.")),m){const o=m._lastQ||1;console.log(chalk.white(` Resume exam: exam q ${o}`)+chalk.gray(" · ")+chalk.white("A/B/C/D")+chalk.gray(" to answer"))}else console.log(chalk.gray(" Try: demo · setup to switch mode"));return console.log(),void no.prompt()}if("organizer"===lo&&!["join","exam","demo","retry","next","prev","logout","setup","lang","ref","ctf","mark","unmark","review","submit"].includes(d))return console.log(chalk.gray(" Not available in Organizer mode. Switch via: setup")),console.log(),void no.prompt();if(!("olympiad"!==lo||a()&&c()||i(d)))return console.log(chalk.yellow(" Restricted mode. ")+chalk.gray("Enter your access token:")),console.log(chalk.white(" activate <token>")),console.log(),console.log(chalk.gray(" Free commands: ")+chalk.white("ref [topic]")+chalk.gray(", ")+chalk.white("help")+chalk.gray(", ")+chalk.white("exit")),console.log(),void no.prompt();if(!["join","activate","challenges","ch","open","submit","flag","scoreboard","sb","status","time","ref","shell","files","connect","note","log","lang","setup","env","ai4ctf","model","ctf","exam","demo","retry","nations","next","prev","continue","logout","ctf4ai","mark","unmark","review","submit","learn","demo2","vla4ctf","theme","sim"].includes(d)){if(G.has(d))return console.log(chalk.red(` Blocked: ${d} is not allowed during competition.`)),console.log(),void no.prompt();if(/(?:^|\s)(?:\/(?!home\/|Users\/|tmp\/)|\.\.\/|~\/)/.test(l)&&!l.startsWith("cd ")){const o=/(?:^|\s)\/(?!home\/\w+\/icoa-workspace|Users\/\w+\/icoa-workspace|tmp\/)/.test(l),e=/\.\./.test(l);if(o||e)return console.log(chalk.red(" Blocked: access outside workspace is not allowed.")),console.log(chalk.gray(` Workspace: ${V}`)),console.log(),void no.prompt()}let o=l.startsWith("!")?l.slice(1).trim():l;if("darwin"===process.platform){const e="/opt/homebrew/opt/python@3.12/bin/python3.12";o=o.replace(/^python3?\s/,`${e} `).replace(/^(python3|python)$/,e)}else if("win32"===process.platform){const e=(()=>{try{return t("py -3 --version",{stdio:["ignore","ignore","ignore"],timeout:1500}),"py -3"}catch{}return"python"})();o=o.replace(/^python3?(\.\d+)?\s/,`${e} `).replace(/^python3?(\.\d+)?$/,e)}else{const e=(()=>{try{return t("which python3.12",{stdio:"ignore"}),"python3.12"}catch{return"python3"}})();o=o.replace(/^python\s/,`${e} `).replace(/^python$/,e)}const e=J();/^(\S*python3?(\.\d+)?)\s*$/.test(o)&&(o=`PYTHONSTARTUP="${function(){const o=_(Q(),".icoa");W(o)||z(o,{recursive:!0});const e=_(o,"python-startup.py");return W(e)||B(e,"# ICOA exam interactive startup — auto-loaded by PYTHONSTARTUP\nimport base64, struct, hashlib, re, json, os, sys, binascii\ntry: import requests\nexcept ImportError: pass\ntry: from Crypto.Cipher import AES\nexcept ImportError: pass\ntry: from Crypto.Util.Padding import pad, unpad\nexcept ImportError: pass\ntry: from pwn import xor, p32, u32, p64, u64\nexcept ImportError: pass\ntry: import bs4\nexcept ImportError: pass\ntry: import numpy as np\nexcept ImportError: pass\n"),e}()}" ${o}`,console.log(),console.log(chalk.cyan(" ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")),console.log(chalk.bold.white(" Python ready — ICOA exam toolkit pre-loaded")),console.log(chalk.cyan(" ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")),console.log(),console.log(chalk.white(" Already imported: ")+chalk.gray("base64, struct, hashlib, re, json, binascii")),console.log(chalk.white(" Also available: ")+chalk.gray("requests, bs4, numpy, AES, pad/unpad, xor, p32/u32/p64/u64")),console.log(),console.log(chalk.yellow(" Quick examples:")),console.log(chalk.gray(' base64.b64decode("aGVsbG8=") ')+chalk.gray("# decode base64")),console.log(chalk.gray(' bytes.fromhex("48656c6c6f") ')+chalk.gray("# hex → bytes")),console.log(chalk.gray(' "ICOA{x}".encode() ')+chalk.gray("# str → bytes")),console.log(chalk.gray(" [chr(c) for c in [73,67,79,65]] ")+chalk.gray("# ASCII codes")),console.log(chalk.gray(' xor(bytes.fromhex("0a2b"), b"IC") ')+chalk.gray("# pwntools XOR")),console.log(),console.log(chalk.gray(" Exit: ")+chalk.white("exit()")+chalk.gray(" or Ctrl-D")),console.log(chalk.cyan(" ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")),console.log()),so=!0;try{N()&&await j()?await D(o,no):await X(o,no,e)}catch{console.log(chalk.yellow(` Command failed: ${d}`))}return so=!1,console.log(),void no.prompt()}so=!0;const w=l.trim(),f=w.toLowerCase();let k,S=null,O="";if(m)if("submit"===f)S="final";else if(f.startsWith("submit ")){let o=w.slice(7).trim();/^submit\s+/i.test(o)&&(o=o.replace(/^submit\s+/i,"").trim()),o=o.replace(/^["'`]+|["'`]+$/g,"").trim(),o&&/^ICOA\{[^}]*\}?$/i.test(o)&&(S="flag",O=o)}else/^ICOA\{[^}]+\}$/i.test(w)&&(S="flag",O=w);k="final"===S?["exam","submit"]:"flag"===S?["exam","answer",String(m?._lastQ||1),O]:function(o){const e=o.split(/\s+/),t=e[0].toLowerCase(),l=e.slice(1),n={demo:["exam","demo"],retry:["exam","demo-retry"],nations:["exam","nations"],next:["exam","next"],prev:["exam","prev"],mark:["exam","mark",...l],unmark:["exam","unmark",...l],review:["exam","review"],logout:["ctf","logout"],join:["ctf","join",...l],activate:["ctf","activate",...l],challenges:["ctf","challenges"],ch:["ctf","challenges"],open:["ctf","open",...l],submit:["ctf","submit",...l],flag:["ctf","submit",...l],scoreboard:["ctf","scoreboard",...l],sb:["ctf","scoreboard",...l],status:["ctf","status"],time:["ctf","time"]};return n[t]?n[t]:["ref","shell","files","connect","note","log","lang","setup","env","ai4ctf","model","ctf","exam","ctf4ai"].includes(t)?[t,...l]:e}(l);const P="ctf"===k[0]&&"join"===k[1];P&&no.pause(),process.exit=()=>{throw new Error(K)};try{await e.parseAsync(["node","icoa",...k])}catch(o){const e=o instanceof Error?o.message:String(o);if(e===K);else if(e.includes("commander.unknownCommand")){const{distance:o}=await import("fastest-levenshtein"),e=["ctf","ref","shell","files","connect","note","log","lang","setup","env","ai4ctf","exam","ctf4ai","theme","clear","cls","quit","exit","back","menu","help","continue","activate","demo","challenges","status","scoreboard","join","logout"],t=d.split(/\s+/)[0]||d;let l={word:"",dist:1/0};for(const n of e){const e=o(t.toLowerCase(),n);e<l.dist&&(l={word:n,dist:e})}console.log(chalk.yellow(` Unknown command: ${d}.`)),l.dist>0&&l.dist<=2&&console.log(chalk.gray(" Did you mean: ")+chalk.bold.cyan(l.word)+chalk.gray("?")),console.log(chalk.gray(" Type ")+chalk.cyan("help")+chalk.gray(" for the full command list."))}else e.includes("commander.")||(e.includes("fetch failed")||e.includes("ECONNREFUSED")||e.includes("ETIMEDOUT"))&&console.log(chalk.yellow(" Network error. Check your connection."))}finally{process.exit=E,so=!1,P&&no.resume()}b()?no.setPrompt(chalk.magenta("ai4ctf> ")):v()?no.setPrompt(chalk.red("ctf4ai> ")):A()&&no.setPrompt(chalk.bold.cyan("vla4ctf> ")),console.log(),no.prompt()}),no.on("SIGINT",()=>{if(console.log(),b()||v())console.log(chalk.yellow(" Ctrl+C did not close ICOA CLI — you are still in the AI chat.")),console.log(chalk.white(" Type ")+chalk.bold.cyan("exit")+chalk.white(" to leave the chat and return to the menu."));else if(T()){const o="demo-free"!==T().session.examId;console.log(chalk.yellow(" Ctrl+C did NOT close ICOA CLI.")),console.log(chalk.gray(` Your ${o?"exam":"demo"} is paused and every answer is auto-saved.`)),console.log(),console.log(chalk.white(" Resume: ")+chalk.cyan("exam q 1")+chalk.gray(" · Back to menu: ")+chalk.cyan("back")+chalk.gray(" · Close CLI: ")+chalk.cyan(o?"quit confirm":"quit"))}else console.log(chalk.yellow(" Ctrl+C did not close ICOA CLI — you are still at the ")+chalk.cyan("icoa>")+chalk.yellow(" prompt.")),console.log(chalk.gray(" Keep typing — ")+chalk.cyan("help")+chalk.gray(" lists commands. (Only ")+chalk.cyan("quit")+chalk.gray(" or Ctrl+D actually close the CLI.)"));console.log(),no.prompt()}),no.on("close",()=>{U(),g(),q(),E(0)})}function X(o,t,l){return new Promise(n=>{const s=process.stdin,a=!!s.isTTY&&!!s.isRaw;if(t.pause(),s.isTTY&&"function"==typeof s.setRawMode)try{s.setRawMode(!1)}catch{}const r=e(o,{shell:!0,stdio:"inherit",cwd:l||process.cwd()}),i=()=>{if(s.isTTY&&"function"==typeof s.setRawMode&&a)try{s.setRawMode(!0)}catch{}t.resume(),n()};r.on("close",i),r.on("error",i)})}
|
|
1
|
+
import{createInterface as o}from"node:readline";import{spawn as e,execSync as t}from"node:child_process";import chalk from"chalk";import{isConnected as l,getConfig as n,saveConfig as s}from"./lib/config.js";import{isActivated as a,activateToken as r,isFreeCommand as i,isDeviceMatch as c,recordExit as g,recordResume as y,isFirstRunOrUpgrade as m,markVersionSeen as d}from"./lib/access.js";import{setReplMode as p}from"./lib/ui.js";import{returnToMainMenu as u,printMenuHint as h,menuHintInline as w}from"./lib/menu-nav.js";import{setMainRl as f}from"./lib/main-rl.js";import{isChatActive as b,handleChatMessage as x}from"./commands/ai4ctf.js";import{isCtf4aiActive as v,handleCtf4aiMessage as C}from"./commands/ctf4ai-demo.js";import{isVla4CtfActive as A,handleVla4CtfMessage as I}from"./commands/vla4ctf.js";import{isDemo2Active as k}from"./commands/demo2.js";import{getExamState as T,getRealExamState as $,getDemoState as S}from"./lib/exam-state.js";import{getDemoStats as O}from"./lib/demo-stats.js";import{isExamSetupComplete as E}from"./lib/exam-setup.js";import{DEMO_PICK_SIZE as L,DEMO_POOL_SIZE as P}from"./lib/demo-exam.js";import{isNativeWindowsCmd as q}from"./lib/platform.js";import{resetTerminalTheme as R}from"./lib/theme.js";import{ensureSandbox as j,runInSandbox as D,isDockerAvailable as N}from"./lib/sandbox.js";import{logCommand as F}from"./lib/logger.js";import{startLogSync as M,stopLogSync as U}from"./lib/log-sync.js";import{existsSync as W,mkdirSync as z,writeFileSync as B}from"node:fs";import{join as _}from"node:path";import{homedir as Q}from"node:os";function Y(){return $()?chalk.cyan("exam> "):S()?chalk.yellow("demo> "):chalk.green("icoa> ")}const V=_(Q(),"icoa-workspace");function J(){return W(V)||z(V,{recursive:!0}),V}const G=new Set(["sudo","su","doas","pkexec","brew","apt","apt-get","yum","choco","npm","npx","pip","pip3","shutdown","reboot","halt","mkfs","fdisk","dd","iptables","ufw"]),K="__REPL_NO_EXIT__",Z="2.5.1";function H(){const o=O(),e=E(),l=`Free practice — ${L} questions (from pool of ${P})`,n=q();if(console.log(),console.log(` ${chalk.cyan.bold("[Selection Mode]")}`),console.log(),n)console.log(chalk.gray(" Platform: ")+chalk.white("Windows cmd.exe")+chalk.gray(" — routed to Paper C (MCQ-only, 45 min, 70 pts, zero extra tools)")),console.log();else if(o.attempts>0){const o=function(){const o=["python3.12 --version","/opt/homebrew/opt/python@3.12/bin/python3.12 --version","/usr/local/opt/python@3.12/bin/python3.12 --version","python3 --version","python --version","py -3.12 --version","py -3 --version"];let e="",l="missing";for(const n of o)try{const o=t(n,{encoding:"utf-8",timeout:2e3,stdio:["ignore","pipe","ignore"]}).trim().replace("Python ",""),[s,a]=o.split(".").map(Number);if(3===s&&12===a)return{ok:!0,version:o,status:"ok"};e=o,l=3===s&&a>=10&&a<12?"old":3===s&&a>12?"new":"missing"}catch{}return{ok:"missing"!==l,version:e,status:l}}();"missing"===o.status?(console.log(chalk.yellow(" ⚠ Python not detected. For exam practical questions:")),console.log(chalk.gray(" → ")+chalk.bold.cyan("env python")+chalk.gray(" (platform install guide)")),console.log()):"new"===o.status&&(console.log(chalk.yellow(` ⚠ Python ${o.version} may lack CTF wheels. Python 3.12 recommended:`)),console.log(chalk.gray(" → ")+chalk.bold.cyan("env python")+chalk.gray(" (install guide)")),console.log())}if(0===o.attempts)console.log(chalk.white(" New here? Start with ")+chalk.bold.cyan("demo")+chalk.white(" — it takes a few minutes.")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.bold.cyan(" demo")+chalk.gray(` ${l}`)),console.log(chalk.white(" lang")+chalk.gray(" List all supported languages")),console.log(chalk.white(" lang es")+chalk.gray(" Switch language (e.g. lang es, lang zh, lang fr)")),console.log(chalk.gray(" ─────────────────────────────────────────────"));else if(e||n){const e=1===o.attempts?"attempt":"attempts";o.attempts>0&&console.log(chalk.green(" ✓ Demo completed ")+chalk.gray(`(${o.attempts} ${e})`)),n||console.log(chalk.green(" ✓ Environment ready")),console.log(chalk.yellow(" → Enter your exam token to begin.")),console.log(chalk.gray(" (10-char code from your organizer, starts with your country code like ")+chalk.cyan("UA")+chalk.gray(" — case-insensitive)")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.bold.yellow(" exam <token>")+chalk.gray(" Enter exam (primary action — use your organizer-issued token)")),console.log(chalk.gray(" format: ")+chalk.white("exam UAxxxxxxxx")+chalk.gray(" (2-letter country prefix + 8 chars)")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.gray(" Other commands:")),console.log(chalk.white(" demo")+chalk.gray(` ${l}`)),n||console.log(chalk.white(" exam setup")+chalk.gray(" Re-verify tool environment")),console.log(chalk.white(" lang")+chalk.gray(" List all supported languages")),console.log(chalk.white(" lang es")+chalk.gray(" Switch language (e.g. lang es, lang zh, lang fr)")),console.log(chalk.gray(" ─────────────────────────────────────────────"))}else{const e=1===o.attempts?"attempt":"attempts";console.log(chalk.green(" ✓ Demo completed ")+chalk.gray(`(${o.attempts} ${e}${o.bestPercentage>0?` · best ${o.bestPercentage}%`:""})`)),console.log(chalk.yellow(" → Next: prepare your environment for the real exam.")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" demo")+chalk.gray(` ${l}`)),console.log(chalk.bold.yellow(" exam setup")+chalk.gray(" Install tools for national selection (~150MB)")),console.log(chalk.white(" lang")+chalk.gray(" List all supported languages")),console.log(chalk.white(" lang es")+chalk.gray(" Switch language (e.g. lang es, lang zh, lang fr)")),console.log(chalk.gray(" ─────────────────────────────────────────────"))}console.log(chalk.gray(" ")+chalk.gray("Tip: ")+chalk.cyan("help")+chalk.gray(" for commands · ")+w()+chalk.gray(" · ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+chalk.cyan("quit")+chalk.gray(" closes")),console.log()}export async function startRepl(e,S){process.env.ICOA_INSIDE_REPL="1";const O=n(),E=l(),L=process.exit.bind(process),P=a();if(O.demoCleanedForVersion!==Z){try{const{existsSync:o,unlinkSync:e}=await import("node:fs"),{join:t}=await import("node:path"),{getIcoaDir:l}=await import("./lib/config.js"),n=t(l(),"demo-state.json");o(n)&&e(n)}catch{}s({demoCleanedForVersion:Z})}const{select:q,confirm:oo}=await import("@inquirer/prompts"),eo=O.mode||"",to=[{name:` ${chalk.bold("National Selection")} ${chalk.gray("—")} ${chalk.gray("demo, exam (lightweight)")}`,value:"selection"},{name:` ${chalk.bold("Embodied AI Security")} 🤖 ${chalk.gray("—")} ${chalk.gray("New VLA4CTF! sim demo2 and learn more")}`,value:"embodied"},{name:` ${chalk.bold("International Olympiad")} ${chalk.gray("—")} ${chalk.gray("CTF × AI (~500MB, advanced)")}`,value:"olympiad"},{name:` ${chalk.bold("National/Regional Partner")} ${chalk.gray("—")} ${chalk.gray("organizer tools (tokens, competitions)")}`,value:"organizer"},{name:` ${chalk.gray("About ICOA")} ${chalk.gray("·")} ${chalk.gray("Info & contact")}`,value:"about"}];console.log(chalk.gray(" Use ")+chalk.yellow("↑")+chalk.gray(" or ")+chalk.yellow("↓")+chalk.gray(" to select, ")+chalk.yellow("Enter")+chalk.gray(" to confirm.")),console.log();let lo="";for(;!lo;){const o=await q({message:"Mode",choices:to,default:eo||"selection"});"about"!==o?lo=o:(console.clear(),console.log(),console.log(chalk.cyan(" ═══════════════════════════════════════════════════")),console.log(chalk.bold.yellow(" ICOA")+chalk.white(" — AI-Native CLI OS for Cyber & AI Security")),console.log(chalk.gray(" Olympiad & Competition · K-12 to University")),console.log(chalk.cyan(" ───────────────────────────────────────────────────")),console.log(),console.log(chalk.bold.white(" What Makes ICOA Different")),console.log(chalk.gray(" · AI-native AI teammate, AI adversary, AI translation")),console.log(chalk.gray(" · CLI OS Complete competition environment in terminal")),console.log(chalk.gray(" · 110 tools pwntools, z3, gdb, nmap, sleuthkit... pre-configured")),console.log(chalk.gray(" · Global scale 15,000+ concurrent exams · 15 languages")),console.log(),console.log(chalk.bold.white(" Competition Format")),console.log(` ${chalk.green.bold("AI4CTF")}${chalk.gray(" [Day 1] AI as teammate — 5hr jeopardy CTF")}`),console.log(` ${chalk.red.bold("CTF4AI")}${chalk.gray(" [Day 2] Challenge AI — adversarial ML, red-team")}`),console.log(` ${chalk.cyan.bold("VLA4CTF")}${chalk.gray(" [Pioneer Round] Embodied AI — attack robot brains (NEW)")}`),console.log(),console.log(chalk.white(" Sydney, Australia")+chalk.gray(" · Jun 27 - Jul 2, 2026 · 40+ countries")),console.log(),console.log(chalk.bold.white(" Organized by")+chalk.gray(" ASRA (Australia) · ICO Foundation Inc")),console.log(chalk.bold.white(" Contact ")+chalk.cyan(" australia@icoa2026.au · accreditation@icoa2026.au")),console.log(chalk.bold.white(" Website ")+chalk.cyan.underline(" https://icoa2026.au")),console.log(chalk.cyan(" ═══════════════════════════════════════════════════")),console.log(),console.log(chalk.gray(" Press ")+chalk.yellow("Enter")+chalk.gray(" to return...")),await new Promise(o=>{const e=t=>{process.stdin.removeListener("data",e),process.stdin.isTTY&&process.stdin.setRawMode&&process.stdin.setRawMode(!1),process.stdin.pause(),o()};process.stdin.isTTY&&process.stdin.setRawMode&&process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.once("data",e)}),console.clear())}if("olympiad"===lo&&"olympiad"!==eo&&(console.log(),console.log(chalk.yellow(" This mode will download ~500MB of CTF tools and AI models.")),await oo({message:"Continue?",default:!0})||(lo="selection",console.log(chalk.gray(" Switched to National Selection mode.")))),lo!==eo&&s({mode:lo}),console.log(),"olympiad"===lo&&m(Z)){d(Z),console.log(chalk.gray(" Checking competition environment..."));const{execSync:o}=await import("node:child_process"),e=[{name:"pwntools",cmd:'python3 -c "import pwn"'},{name:"z3-solver",cmd:'python3 -c "import z3"'},{name:"numpy",cmd:'python3 -c "import numpy"'},{name:"requests",cmd:'python3 -c "import requests"'}];let t=0;for(const l of e)try{o(l.cmd,{stdio:"ignore"})}catch{t++}if(t>0){console.log(chalk.yellow(` ${t} core libraries missing.`));try{const{confirm:o}=await import("@inquirer/prompts");if(await o({message:" Install competition Python libraries now?",default:!0,theme:{prefix:"",style:{message:o=>chalk.green(o),defaultAnswer:o=>chalk.green(o)}}})){console.log();const{execSync:o}=await import("node:child_process");o("icoa env setup",{stdio:"inherit"})}}catch{console.log(chalk.gray(" Run ")+chalk.white("env setup")+chalk.gray(" later to install."))}console.log()}else console.log(chalk.green(" All core libraries ready.")),console.log()}if(S){const o=y();if(o){const e=Math.floor(o.awaySeconds/60),t=o.awaySeconds%60;console.log(chalk.yellow(` Session resumed. Away: ${e}m ${t}s | Total exits: ${o.exitCount}`)),console.log()}}"selection"===lo?H():"embodied"===lo?(console.log(chalk.cyan.bold(" [Embodied AI Security 🤖]")),console.log(),console.log(chalk.bold.cyan(" VLA4CTF")+chalk.gray(" — ICOA 2026's ")+chalk.bold.white("Pioneer Round")),console.log(chalk.gray(" an independent parallel track alongside the scored main events: ")+chalk.green("AI4CTF")+chalk.gray(" (Day 1) and ")+chalk.red("CTF4AI")+chalk.gray(" (Day 2)")),console.log(),console.log(chalk.white(" Embodied AI is at its ImageNet moment.")),console.log(chalk.gray(" VLA models, MuJoCo physics, real robot arms.")),console.log(chalk.gray(" Real models, real physics, real attack surfaces.")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.bold.yellow(" First time? Try in order: ")+chalk.bold.cyan("① sim")+chalk.gray(" → ")+chalk.bold.cyan("② demo2")+chalk.gray(" → ")+chalk.bold.cyan("③ learn LEARNDEMO01")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.bold.green(" sim")+chalk.gray(" ")+chalk.bold.cyan("①")+chalk.gray(" ")+chalk.bold.yellow("★ WOW")+chalk.gray(" — robot arm replay in seconds")),console.log(chalk.bold.green(" demo2")+chalk.gray(" ")+chalk.bold.cyan("②")+chalk.gray(" ~8 min interactive intro + live MuJoCo sim")),console.log(chalk.bold.green(" learn LEARNDEMO01")+chalk.gray(" ")+chalk.bold.cyan("③")+chalk.gray(" free 11-card intro (paste this command as-is)")),console.log(chalk.bold.green(" learn ")+chalk.bold.yellow("EAxxxxxxxx")+chalk.gray(" full 100/480-card curriculum (team-issued)")),console.log(chalk.bold.green(" exam ")+chalk.bold.yellow("PDxxxxxxxx")+chalk.gray(" Paper D (VLA4CTF) — national selection contestants")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(),console.log(chalk.gray(" Three open tiers: ")+chalk.green("free 11")+chalk.gray(" · ")+chalk.yellow("registered 100")+chalk.gray(" · ")+chalk.bold.magenta("national team 480")+chalk.gray(" (PhD-ready)")),console.log(chalk.gray(" Country team contact: ")+chalk.cyan("australia@icoa2026.au")),console.log(),h(),console.log()):"organizer"===lo?(console.log(chalk.yellow.bold(" [National/Regional Partner]")),console.log(),console.log(chalk.bold.white(" ██╗ ██████╗ ██████╗ █████╗")),console.log(chalk.bold.white(" ██║██╔════╝██╔═══██╗██╔══██╗")),console.log(chalk.bold.white(" ██║██║ ██║ ██║███████║")),console.log(chalk.bold.white(" ██║██║ ██║ ██║██╔══██║")),console.log(chalk.bold.white(" ██║╚██████╗╚██████╔╝██║ ██║")),console.log(chalk.bold.white(" ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝")),console.log(),console.log(chalk.yellow(" International Cyber Olympiad in AI 2026")),console.log(chalk.bold.magenta(" The World's First AI-Native CLI Operating System")),console.log(chalk.bold.magenta(" for Cybersecurity & AI Security Competition")),console.log(chalk.bold.magenta(" and Olympiad for K-12")),console.log(chalk.gray(" Sydney, Australia · Jun 27 - Jul 2, 2026")),console.log(),console.log(chalk.white(" Vision")),console.log(chalk.gray(" Building a global pipeline for youth cyber & AI")),console.log(chalk.gray(" security talent through education and competition.")),console.log(),console.log(chalk.white(" Capacity")),console.log(chalk.gray(" 15,000+ concurrent online examinations")),console.log(chalk.gray(" National selection, training, and education support")),console.log(),console.log(chalk.white(" Olympic Spirit")),console.log(chalk.gray(" Excellence · Friendship · Respect")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" New country accreditation & support:")),console.log(chalk.cyan(" australia@icoa2026.au")),console.log(chalk.cyan(" accreditation@icoa2026.au")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(),E?(console.log(chalk.green(` Logged in as ${O.userName}`)),console.log(chalk.white(" exam list")+chalk.gray(" Manage exams")),console.log(chalk.white(" logout")+chalk.gray(" Disconnect"))):console.log(chalk.white(" join <url>")+chalk.gray(" Connect to manage exams")),console.log(),h(),console.log()):P&&!c()?(console.log(chalk.red(" Token was activated on a different device.")),console.log(chalk.gray(" Contact organizer for assistance.")),console.log()):E?(console.log(chalk.green.bold(` Welcome back, ${O.userName}!`)),console.log(chalk.gray(` Connected to ${O.ctfdUrl}`)),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" Ready to compete? Start here:")),console.log(),console.log(chalk.bold.cyan(" challenges")+chalk.gray(" Browse challenges by category")),console.log(chalk.white(" status")+chalk.gray(" Your score & hint budget")),console.log(chalk.white(" scoreboard")+chalk.gray(" Live rankings")),console.log(chalk.white(" help")+chalk.gray(" Full command list")),console.log(),console.log(chalk.gray(" Tool environment:")),console.log(chalk.white(" env")+chalk.gray(" See which of the 110 CTF tools are installed")),console.log(chalk.white(" env setup")+chalk.gray(" Install anything missing (~5 min, one-time)")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.gray(" Tip: ")+chalk.cyan("help")+chalk.gray(" · ")+w()+chalk.gray(" · ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+chalk.cyan("quit")+chalk.gray(" closes")),console.log()):P?(J(),console.log(chalk.green.bold(" Welcome, competitor!")),console.log(chalk.gray(` Workspace: ${V}`)),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" Get started:")),console.log(),console.log(chalk.white(" Step 1 ")+chalk.bold.cyan("join <url>")+chalk.gray(" Connect to competition server")),console.log(chalk.white(" Step 2 ")+chalk.bold.cyan("challenges")+chalk.gray(" Browse & solve challenges")),console.log(chalk.white(" Step 3 ")+chalk.bold.cyan("ai4ctf")+chalk.gray(" Ask AI when stuck")),console.log(),console.log(chalk.gray(" Before Step 1 — make sure your tools are ready:")),console.log(chalk.white(" env")+chalk.gray(" See which of the 110 CTF tools are installed")),console.log(chalk.white(" env setup")+chalk.gray(" Install anything missing (~5 min, one-time)")),console.log(),console.log(chalk.gray(" Also: ")+chalk.white("help")+chalk.gray(" all commands")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.gray(" Tip: ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+w()+chalk.gray(" · ")+chalk.cyan("quit")+chalk.gray(" closes CLI")),console.log()):(console.log(chalk.bold.white(" Welcome to ICOA CLI — International Olympiad")),console.log(),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.white(" To begin, activate your competition token:")),console.log(),console.log(chalk.bold.cyan(" activate <token>")),console.log(),console.log(chalk.gray(" While waiting, explore:")),console.log(chalk.white(" ref linux")+chalk.gray(" Quick reference for Linux")),console.log(chalk.white(" ref web")+chalk.gray(" Quick reference for Web")),console.log(chalk.white(" env")+chalk.gray(" See which of the 110 CTF tools are installed")),console.log(chalk.white(" env setup")+chalk.gray(" Install anything missing (~5 min, one-time)")),console.log(chalk.white(" help")+chalk.gray(" All available commands")),console.log(chalk.gray(" ─────────────────────────────────────────────")),console.log(chalk.gray(" Tip: ")+chalk.cyan("Ctrl+C")+chalk.gray(" pauses · ")+w()+chalk.gray(" · ")+chalk.cyan("quit")+chalk.gray(" closes CLI")),console.log()),e.exitOverride(),e.configureOutput({writeErr:()=>{},writeOut:o=>{console.log(o)}});const no=o({input:process.stdin,output:process.stdout,prompt:Y(),terminal:!0});f(no);let so=!1;p(!0),M();const ao=no.prompt.bind(no);no.prompt=o=>{b()||v()||A()||k()||no.setPrompt(Y()),ao(o)},no.prompt(),no.on("line",async o=>{if(so)return;const l=o.trim();if(!l)return no.setPrompt(b()?chalk.magenta("ai4ctf> "):Y()),void no.prompt();if("menu"===l||"menu confirm"===l)return $()&&"menu confirm"!==l?(console.log(),console.log(chalk.yellow(" Real exam active. Progress is auto-saved.")),console.log(chalk.gray(" To return to main menu anyway, type ")+chalk.white("menu confirm")),console.log(),void no.prompt()):void u(no);if(b()){so=!0;const o=await x(l);return so=!1,"exit"===o&&no.setPrompt(Y()),void no.prompt()}if(v()){so=!0;const o=await C(l);return so=!1,"exit"!==o&&"solved"!==o||no.setPrompt(Y()),void no.prompt()}if(A()){so=!0;const o=await I(l);return so=!1,"exit"===o&&no.setPrompt(Y()),no.setPrompt(A()?chalk.bold.cyan("vla4ctf> "):Y()),void no.prompt()}if(F(l),"exit"===l)return T()?(console.log(),console.log(chalk.yellow(" ⚠ An exam is in progress.")),console.log(chalk.white(" To return to menu without losing progress, type: ")+chalk.bold.cyan("back")),console.log(chalk.white(" To fully close ICOA CLI, type: ")+chalk.bold.cyan("quit")),console.log(chalk.gray(" Your progress is auto-saved either way.")),console.log(),void no.prompt()):(console.log(),console.log(chalk.gray(" ")+chalk.white("exit")+chalk.gray(" returns to the main menu. To fully close ICOA CLI, type ")+chalk.bold.cyan("quit")+chalk.gray(".")),"selection"===lo&&H(),void no.prompt());if("quit"===l||"q"===l||"quit confirm"===l){const o=T();return o&&"demo-free"!==o.session.examId&&"quit confirm"!==l?(console.log(),console.log(chalk.yellow(" ⚠ A real exam is in progress.")),console.log(chalk.gray(" Your answers are auto-saved on the server, but the exam timer keeps ticking")),console.log(chalk.gray(" on the server side even if you close the CLI.")),console.log(),console.log(chalk.white(" To leave the CLI but keep the exam alive, type: ")+chalk.bold.cyan("back")),console.log(chalk.gray(" (recommended — you can resume with ")+chalk.cyan("exam q 1")+chalk.gray(" after relaunching icoa)")),console.log(),console.log(chalk.white(" To really close ICOA CLI, type: ")+chalk.bold.cyan("quit confirm")),console.log(),void no.prompt()):(o&&"demo-free"===o.session.examId&&(console.log(),console.log(chalk.gray(" Demo paused. Resume with: ")+chalk.white("demo")+chalk.gray(" (fresh) or ")+chalk.white("exam q 1")+chalk.gray(" (continue)."))),U(),g(),console.log(chalk.gray(" Session saved. Use ")+chalk.white("icoa --resume")+chalk.gray(" to continue.")),R(),void L(0))}if("back"===l){const o=T(),e=o&&"demo-free"!==o.session.examId,t=o&&"demo-free"===o.session.examId&&(()=>{const e=new Date(o.session.startedAt||0).getTime();return Date.now()-e<18e5})();if(e)console.log(),console.log(chalk.gray(" Exam paused. Your progress is saved.")),console.log(chalk.white(" Resume: exam q 1")+chalk.gray(" · ")+chalk.white("exam review")+chalk.gray(" · ")+chalk.white("exam submit")),console.log();else if(t){const e=Object.keys(o.answers).length,t=o.session.questionCount;console.log(),console.log(chalk.gray(` Demo paused (${e}/${t} answered). Resume with: `)+chalk.white("exam q 1")),console.log(chalk.gray(" Or type ")+chalk.white("demo")+chalk.gray(" to restart.")),console.log()}else{if(o&&"demo-free"===o.session.examId){const{clearExamState:o}=await import("./lib/exam-state.js");o("demo-free")}const e=n();fetch("https://practice.icoa2026.au/api/icoa/demo-stats",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:"post-report-back",lang:e.language||"en",timestamp:(new Date).toISOString()}),signal:AbortSignal.timeout(5e3)}).catch(()=>{}),"selection"===lo?H():console.log(chalk.gray(" Already at main menu."))}return void no.prompt()}if("help"===l||"?"===l){if(T()){so=!0;try{await e.parseAsync(["node","icoa","exam","help"])}catch{}return so=!1,void no.prompt()}return function(o,e="olympiad"){console.log(),"selection"===e||"organizer"===e?(console.log(chalk.bold.white(" Exam")),console.log(chalk.white(" join <url> ")+chalk.gray("Connect to exam server")),console.log(chalk.white(" exam list ")+chalk.gray("Available exams")),console.log(chalk.white(" exam start <id> ")+chalk.gray("Begin an exam")),console.log(chalk.white(" exam q [n] ")+chalk.gray("View questions")),console.log(chalk.white(" exam answer <n> <X> ")+chalk.gray("Answer question")),console.log(chalk.white(" exam review ")+chalk.gray("Review all answers")),console.log(chalk.white(" exam submit ")+chalk.gray("Submit for grading")),console.log(chalk.white(" exam result ")+chalk.gray("View your score")),console.log(),console.log(chalk.bold.white(" System")),console.log(chalk.white(" ref [topic] ")+chalk.gray("Quick reference")),console.log(chalk.white(" setup ")+chalk.gray("Settings / switch mode")),console.log(chalk.white(" lang [code] ")+chalk.gray("Switch language")),console.log(chalk.white(" clear ")+chalk.gray("Clear screen")),console.log(chalk.white(" exit ")+chalk.gray("Quit")),console.log()):o?(console.log(chalk.cyan(" ═══════════════════════════════════════════════")),console.log(chalk.bold.white(" How it works")),console.log(),console.log(chalk.gray(" 1. Browse ")+chalk.white("challenges")+chalk.gray(" and pick one")),console.log(chalk.gray(" 2. ")+chalk.white("open <id>")+chalk.gray(" to read the challenge")),console.log(chalk.gray(" 3. Use ")+chalk.white("ai4ctf")+chalk.gray(" to chat with AI when stuck")),console.log(chalk.gray(" 4. ")+chalk.white("submit <id> icoa{flag}")+chalk.gray(" to score points")),console.log(chalk.gray(" 5. Check ")+chalk.white("scoreboard")+chalk.gray(" to track your rank")),console.log(chalk.cyan(" ═══════════════════════════════════════════════")),console.log(),console.log(chalk.bold.white(" Competition")),console.log(chalk.white(" join <url> ")+chalk.gray("Connect to CTFd")),console.log(chalk.white(" challenges (ch) ")+chalk.gray("List challenges by category")),console.log(chalk.white(" open <id> ")+chalk.gray("Read challenge + get next steps")),console.log(chalk.white(" submit <id> <flag> ")+chalk.gray("Submit a flag")),console.log(chalk.white(" scoreboard (sb) ")+chalk.gray("Live rankings")),console.log(chalk.white(" status ")+chalk.gray("Your score, budget & timer")),console.log(chalk.white(" time ")+chalk.gray("Countdown timer")),console.log(),console.log(chalk.bold.white(" AI Teammate")+chalk.gray(" — 3 levels, use wisely")),console.log(chalk.white(' hint "question" ')+chalk.gray("Level A — General guidance (50 uses)")),console.log(chalk.white(' hint-b "question" ')+chalk.gray("Level B — Deep analysis (10 uses)")),console.log(chalk.white(' hint-c "question" ')+chalk.gray("Level C — Critical assist (2 uses)")),console.log(chalk.white(" hint budget ")+chalk.gray("Check remaining uses")),console.log(chalk.white(" ai4ctf ")+chalk.gray("Free-chat with AI (no limit)")),console.log(),console.log(chalk.bold.white(" Tools")),console.log(chalk.white(" ref [topic] ")+chalk.gray("Quick reference (linux, web, crypto...)")),console.log(chalk.white(" shell ")+chalk.gray("Docker sandbox")),console.log(chalk.white(" files <id> ")+chalk.gray("Download challenge files")),console.log(chalk.white(" connect <id> ")+chalk.gray("Connect to remote target")),console.log(chalk.white(" note [text] ")+chalk.gray("Personal notepad")),console.log(chalk.white(" log ")+chalk.gray("Session history")),console.log(),console.log(chalk.bold.white(" System")),console.log(chalk.white(" setup ")+chalk.gray("Configure settings")),console.log(chalk.white(" lang [code] ")+chalk.gray("Switch language (15 supported)")),console.log(chalk.white(" logout ")+chalk.gray("Disconnect")),console.log(chalk.white(" clear ")+chalk.gray("Clear screen")),console.log(chalk.white(" exit ")+chalk.gray("Quit (session saved)")),console.log()):(console.log(chalk.bold.yellow(" Restricted Mode — activate with a token to unlock all commands")),console.log(),console.log(chalk.white(" activate <token> ")+chalk.gray("Unlock full access")),console.log(chalk.white(" ref [topic] ")+chalk.gray("Quick reference")),console.log(chalk.white(" exit ")+chalk.gray("Quit")),console.log())}(a(),lo),void no.prompt()}if("more help"===l.toLowerCase()&&T()){so=!0;try{await e.parseAsync(["node","icoa","exam","more-help"])}catch{}return so=!1,void no.prompt()}if("continue"===l.toLowerCase())return console.log(),console.log(chalk.green.bold(" ═══ AI4CTF — AI as Your Teammate ═══")),console.log(),console.log(chalk.white(" In AI4CTF, you solve cybersecurity challenges")),console.log(chalk.white(" with AI by your side.")),console.log(),console.log(chalk.white(" In competition, you get AI help at 3 levels:")),console.log(chalk.yellow(" hint a")+chalk.gray(" General guidance (50 uses)")),console.log(chalk.yellow(" hint b")+chalk.gray(" Deep analysis (10 uses)")),console.log(chalk.yellow(" hint c")+chalk.gray(" Critical assist (2 uses)")),console.log(),console.log(chalk.white(" Try it now! Type: ")+chalk.bold.green("ai4ctf")),console.log(chalk.gray(' Chat freely with your AI teammate. Type "exit" when done.')),console.log(),console.log(chalk.gray(" After ai4ctf, try: ")+chalk.bold.red("ctf4ai")+chalk.gray(' — trick the AI into saying "koala"')),console.log(),void no.prompt();if(/^ICOA-[A-Z]{2,3}-\d{1,6}$/i.test(l.trim())){so=!0;try{await e.parseAsync(["node","icoa","exam","token",l.trim()])}catch{}return so=!1,void no.prompt()}if(/^[A-Z]{2}[0-9A-HJKMNP-TV-Z]{8}$/i.test(l.trim())){so=!0;try{await e.parseAsync(["node","icoa","exam","token",l.trim().toUpperCase()])}catch{}return so=!1,void no.prompt()}const s=l.match(/^exam\s+([A-Z]{2}[0-9A-HJKMNP-TV-Z]{8})$/i);if(s){so=!0;try{await e.parseAsync(["node","icoa","exam","token",s[1].toUpperCase()])}catch{}return so=!1,void no.prompt()}const y=l.match(/^exam\s+([A-Z]{2,3})$/i);if(y){so=!0;try{await e.parseAsync(["node","icoa","exam","list",y[1]])}catch{}return so=!1,void no.prompt()}if("clear"===l||"cls"===l)return console.clear(),void no.prompt();if(l.startsWith("activate ")){const o=l.slice(9).trim(),e=r(o);return"ok"===e?console.log(chalk.green(" Access granted! Token bound to this device.")):"already_bound"===e?(console.log(),console.log(chalk.red(" Token already activated on a different device.")),console.log(chalk.gray(" Each token binds to the first device that uses it. If you lost the device,")),console.log(chalk.gray(" contact your proctor to have the token re-issued for a new device."))):(console.log(),console.log(chalk.red(" Token not recognized.")),console.log(chalk.gray(" Possible reasons:")),console.log(chalk.white(" • ")+chalk.gray("Typo — tokens are case-insensitive, 10 chars, start with a 2-letter country code (e.g. ")+chalk.cyan("UAK7M2R9Q4")+chalk.gray(")")),console.log(chalk.white(" • ")+chalk.gray("Expired — ask your proctor or organizer for a fresh token")),console.log(chalk.white(" • ")+chalk.gray("Network — verify connection to ")+chalk.cyan("practice.icoa2026.au")),console.log(chalk.gray(" Still stuck? type ")+chalk.cyan("help")+chalk.gray(" or try ")+chalk.cyan("exam demo")+chalk.gray(" for a free practice round."))),console.log(),void no.prompt()}if("activate"===l)return console.log(chalk.gray(" Usage: ")+chalk.white("activate <token>")),console.log(),void no.prompt();const m=T();if(m){const o=l.toUpperCase().trim(),t=o=>{const e=m.questions.find(e=>e.number===o);return!!e&&("ai4ctf"===e.type||"ctf4ai"===e.type||e.options&&!e.options.A&&!e.options.B)},n=o=>{const e="demo-free"!==m.session.examId,t=e&&o>=39?"ctf4ai":e&&o>=31?"ai4ctf":null;console.log(),console.log(chalk.yellow(` Q${o} is a practical question — letters (A/B/C/D) don't apply here.`)),t?(console.log(chalk.white(" Enter the AI chat for this question: ")+chalk.bold.cyan(t)),console.log(chalk.gray(" Or submit a flag directly: ")+chalk.green(`exam answer ${o} ICOA{your_flag}`))):console.log(chalk.gray(" Submit a flag: ")+chalk.green(`exam answer ${o} ICOA{your_flag}`)),console.log()};if(/^[ABCD]$/.test(o)){const l=m._lastQ||1;if(t(l))return n(l),void no.prompt();so=!0;try{await e.parseAsync(["node","icoa","exam","answer",String(l),o])}catch{}return so=!1,void no.prompt()}const s=o.match(/^(\d+)\s+([ABCD])$/);if(s){const o=parseInt(s[1],10);if(t(o))return n(o),void no.prompt();so=!0;try{await e.parseAsync(["node","icoa","exam","answer",s[1],s[2]])}catch{}return so=!1,void no.prompt()}}const d=l.split(/\s+/)[0].toLowerCase(),p=/^python3?(\.\d+)?$/.test(d),h=l.startsWith("!")||d.startsWith("!")||p;if("embodied"===lo&&!h&&!["demo2","learn","exam","vla4ctf","lang","ref","setup","env","sim"].includes(d))return console.log(chalk.gray(" Not available in Embodied AI Security mode.")),console.log(chalk.white(" Try ")+chalk.bold.cyan("demo2")+chalk.gray(" (intro) · ")+chalk.bold.cyan("learn")+chalk.gray(" (curriculum) · ")+chalk.bold.cyan("exam <PD-token>")+chalk.gray(" (Paper D)")),console.log(),void no.prompt();if("selection"===lo&&!h&&!["exam","demo","retry","nations","next","prev","continue","setup","lang","ref","ai4ctf","ctf4ai","mark","unmark","review","submit","env","sim"].includes(d)){if(console.log(chalk.gray(" Not available in Selection mode.")),m){const o=m._lastQ||1;console.log(chalk.white(` Resume exam: exam q ${o}`)+chalk.gray(" · ")+chalk.white("A/B/C/D")+chalk.gray(" to answer"))}else console.log(chalk.gray(" Try: demo · setup to switch mode"));return console.log(),void no.prompt()}if("organizer"===lo&&!["join","exam","demo","retry","next","prev","logout","setup","lang","ref","ctf","mark","unmark","review","submit"].includes(d))return console.log(chalk.gray(" Not available in Organizer mode. Switch via: setup")),console.log(),void no.prompt();if(!("olympiad"!==lo||a()&&c()||i(d)))return console.log(chalk.yellow(" Restricted mode. ")+chalk.gray("Enter your access token:")),console.log(chalk.white(" activate <token>")),console.log(),console.log(chalk.gray(" Free commands: ")+chalk.white("ref [topic]")+chalk.gray(", ")+chalk.white("help")+chalk.gray(", ")+chalk.white("exit")),console.log(),void no.prompt();if(!["join","activate","challenges","ch","open","submit","flag","scoreboard","sb","status","time","ref","shell","files","connect","note","log","lang","setup","env","ai4ctf","model","ctf","exam","demo","retry","nations","next","prev","continue","logout","ctf4ai","mark","unmark","review","submit","learn","demo2","vla4ctf","theme","sim"].includes(d)){if(G.has(d))return console.log(chalk.red(` Blocked: ${d} is not allowed during competition.`)),console.log(),void no.prompt();if(/(?:^|\s)(?:\/(?!home\/|Users\/|tmp\/)|\.\.\/|~\/)/.test(l)&&!l.startsWith("cd ")){const o=/(?:^|\s)\/(?!home\/\w+\/icoa-workspace|Users\/\w+\/icoa-workspace|tmp\/)/.test(l),e=/\.\./.test(l);if(o||e)return console.log(chalk.red(" Blocked: access outside workspace is not allowed.")),console.log(chalk.gray(` Workspace: ${V}`)),console.log(),void no.prompt()}let o=l.startsWith("!")?l.slice(1).trim():l;if("darwin"===process.platform){const e="/opt/homebrew/opt/python@3.12/bin/python3.12";o=o.replace(/^python3?\s/,`${e} `).replace(/^(python3|python)$/,e)}else if("win32"===process.platform){const e=(()=>{try{return t("py -3 --version",{stdio:["ignore","ignore","ignore"],timeout:1500}),"py -3"}catch{}return"python"})();o=o.replace(/^python3?(\.\d+)?\s/,`${e} `).replace(/^python3?(\.\d+)?$/,e)}else{const e=(()=>{try{return t("which python3.12",{stdio:"ignore"}),"python3.12"}catch{return"python3"}})();o=o.replace(/^python\s/,`${e} `).replace(/^python$/,e)}const e=J();/^(\S*python3?(\.\d+)?)\s*$/.test(o)&&(o=`PYTHONSTARTUP="${function(){const o=_(Q(),".icoa");W(o)||z(o,{recursive:!0});const e=_(o,"python-startup.py");return W(e)||B(e,"# ICOA exam interactive startup — auto-loaded by PYTHONSTARTUP\nimport base64, struct, hashlib, re, json, os, sys, binascii\ntry: import requests\nexcept ImportError: pass\ntry: from Crypto.Cipher import AES\nexcept ImportError: pass\ntry: from Crypto.Util.Padding import pad, unpad\nexcept ImportError: pass\ntry: from pwn import xor, p32, u32, p64, u64\nexcept ImportError: pass\ntry: import bs4\nexcept ImportError: pass\ntry: import numpy as np\nexcept ImportError: pass\n"),e}()}" ${o}`,console.log(),console.log(chalk.cyan(" ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")),console.log(chalk.bold.white(" Python ready — ICOA exam toolkit pre-loaded")),console.log(chalk.cyan(" ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")),console.log(),console.log(chalk.white(" Already imported: ")+chalk.gray("base64, struct, hashlib, re, json, binascii")),console.log(chalk.white(" Also available: ")+chalk.gray("requests, bs4, numpy, AES, pad/unpad, xor, p32/u32/p64/u64")),console.log(),console.log(chalk.yellow(" Quick examples:")),console.log(chalk.gray(' base64.b64decode("aGVsbG8=") ')+chalk.gray("# decode base64")),console.log(chalk.gray(' bytes.fromhex("48656c6c6f") ')+chalk.gray("# hex → bytes")),console.log(chalk.gray(' "ICOA{x}".encode() ')+chalk.gray("# str → bytes")),console.log(chalk.gray(" [chr(c) for c in [73,67,79,65]] ")+chalk.gray("# ASCII codes")),console.log(chalk.gray(' xor(bytes.fromhex("0a2b"), b"IC") ')+chalk.gray("# pwntools XOR")),console.log(),console.log(chalk.gray(" Exit: ")+chalk.white("exit()")+chalk.gray(" or Ctrl-D")),console.log(chalk.cyan(" ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")),console.log()),so=!0;try{N()&&await j()?await D(o,no):await X(o,no,e)}catch{console.log(chalk.yellow(` Command failed: ${d}`))}return so=!1,console.log(),void no.prompt()}so=!0;const w=l.trim(),f=w.toLowerCase();let k,S=null,O="";if(m)if("submit"===f)S="final";else if(f.startsWith("submit ")){let o=w.slice(7).trim();/^submit\s+/i.test(o)&&(o=o.replace(/^submit\s+/i,"").trim()),o=o.replace(/^["'`]+|["'`]+$/g,"").trim(),o&&/^ICOA\{[^}]*\}?$/i.test(o)&&(S="flag",O=o)}else/^ICOA\{[^}]+\}$/i.test(w)&&(S="flag",O=w);k="final"===S?["exam","submit"]:"flag"===S?["exam","answer",String(m?._lastQ||1),O]:function(o){const e=o.split(/\s+/),t=e[0].toLowerCase(),l=e.slice(1),n={demo:["exam","demo"],retry:["exam","demo-retry"],nations:["exam","nations"],next:["exam","next"],prev:["exam","prev"],mark:["exam","mark",...l],unmark:["exam","unmark",...l],review:["exam","review"],logout:["ctf","logout"],join:["ctf","join",...l],activate:["ctf","activate",...l],challenges:["ctf","challenges"],ch:["ctf","challenges"],open:["ctf","open",...l],submit:["ctf","submit",...l],flag:["ctf","submit",...l],scoreboard:["ctf","scoreboard",...l],sb:["ctf","scoreboard",...l],status:["ctf","status"],time:["ctf","time"]};return n[t]?n[t]:["ref","shell","files","connect","note","log","lang","setup","env","ai4ctf","model","ctf","exam","ctf4ai"].includes(t)?[t,...l]:e}(l);const E="ctf"===k[0]&&"join"===k[1];E&&no.pause(),process.exit=()=>{throw new Error(K)};try{await e.parseAsync(["node","icoa",...k])}catch(o){const e=o instanceof Error?o.message:String(o);if(e===K);else if(e.includes("commander.unknownCommand")){const{distance:o}=await import("fastest-levenshtein"),e=["ctf","ref","shell","files","connect","note","log","lang","setup","env","ai4ctf","exam","ctf4ai","theme","clear","cls","quit","exit","back","menu","help","continue","activate","demo","challenges","status","scoreboard","join","logout"],t=d.split(/\s+/)[0]||d;let l={word:"",dist:1/0};for(const n of e){const e=o(t.toLowerCase(),n);e<l.dist&&(l={word:n,dist:e})}console.log(chalk.yellow(` Unknown command: ${d}.`)),l.dist>0&&l.dist<=2&&console.log(chalk.gray(" Did you mean: ")+chalk.bold.cyan(l.word)+chalk.gray("?")),console.log(chalk.gray(" Type ")+chalk.cyan("help")+chalk.gray(" for the full command list."))}else e.includes("commander.")||(e.includes("fetch failed")||e.includes("ECONNREFUSED")||e.includes("ETIMEDOUT"))&&console.log(chalk.yellow(" Network error. Check your connection."))}finally{process.exit=L,so=!1,E&&no.resume()}b()?no.setPrompt(chalk.magenta("ai4ctf> ")):v()?no.setPrompt(chalk.red("ctf4ai> ")):A()&&no.setPrompt(chalk.bold.cyan("vla4ctf> ")),console.log(),no.prompt()}),no.on("SIGINT",()=>{if(console.log(),b()||v())console.log(chalk.yellow(" Ctrl+C did not close ICOA CLI — you are still in the AI chat.")),console.log(chalk.white(" Type ")+chalk.bold.cyan("exit")+chalk.white(" to leave the chat and return to the menu."));else if(T()){const o="demo-free"!==T().session.examId;console.log(chalk.yellow(" Ctrl+C did NOT close ICOA CLI.")),console.log(chalk.gray(` Your ${o?"exam":"demo"} is paused and every answer is auto-saved.`)),console.log(),console.log(chalk.white(" Resume: ")+chalk.cyan("exam q 1")+chalk.gray(" · Back to menu: ")+chalk.cyan("back")+chalk.gray(" · Close CLI: ")+chalk.cyan(o?"quit confirm":"quit"))}else console.log(chalk.yellow(" Ctrl+C did not close ICOA CLI — you are still at the ")+chalk.cyan("icoa>")+chalk.yellow(" prompt.")),console.log(chalk.gray(" Keep typing — ")+chalk.cyan("help")+chalk.gray(" lists commands. (Only ")+chalk.cyan("quit")+chalk.gray(" or Ctrl+D actually close the CLI.)"));console.log(),no.prompt()}),no.on("close",()=>{U(),g(),R(),L(0)})}function X(o,t,l){return new Promise(n=>{const s=process.stdin,a=!!s.isTTY&&!!s.isRaw;if(t.pause(),s.isTTY&&"function"==typeof s.setRawMode)try{s.setRawMode(!1)}catch{}const r=e(o,{shell:!0,stdio:"inherit",cwd:l||process.cwd()}),i=()=>{if(s.isTTY&&"function"==typeof s.setRawMode&&a)try{s.setRawMode(!0)}catch{}t.resume(),n()};r.on("close",i),r.on("error",i)})}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "icoa-cli",
|
|
3
|
-
"version": "2.19.
|
|
3
|
+
"version": "2.19.159",
|
|
4
4
|
"description": "ICOA CLI — The world's first CLI-native cyber & AI security olympiad terminal: AI4CTF (Day 1), CTF4AI (Day 2), VLA4CTF (Pioneer Round — embodied AI)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|