1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8617],{8607:(e,t,a)=>{a.d(t,{_:()=>r});var i=a(18735),s=a(96994);function r(e,t){var a=(0,s._)(e,t,"get");return(0,i._)(e,a)}},8842:(e,t,a)=>{a.d(t,{N_:()=>n,a8:()=>o,rd:()=>l});var i=a(84497),s=a(55251);let r=(0,i.A)({locales:["en","ar"],defaultLocale:"ar",localePrefix:"always"}),{Link:n,redirect:d,usePathname:o,useRouter:l}=(0,s.A)(r)},14219:(e,t,a)=>{a.d(t,{V:()=>r});var i=a(83899);class s{async getDB(){return this.dbPromise||(this.dbPromise=(0,i.P2)("vclasses-offline-db",3,{upgrade(e,t){t<2&&e.objectStoreNames.contains("videos")&&e.deleteObjectStore("videos"),e.objectStoreNames.contains("videos")||e.createObjectStore("videos",{keyPath:"id"}).createIndex("userId","userId"),e.objectStoreNames.contains("hlsSegments")||e.createObjectStore("hlsSegments",{keyPath:"id"}).createIndex("videoId","videoId"),t<3&&(e.objectStoreNames.contains("pdfs")||e.createObjectStore("pdfs",{keyPath:"id"}).createIndex("userId","userId"),e.objectStoreNames.contains("pdfFiles")||e.createObjectStore("pdfFiles",{keyPath:"id"}))}})),this.dbPromise}async saveVideo(e){let t=await this.getDB();t&&await t.put("videos",e)}async getVideo(e){let t=await this.getDB();if(t)return await t.get("videos",e)}async updateVideoNotes(e,t){let a=await this.getDB();if(!a)return;let i=await a.get("videos",e);i&&(i.notes=t,await a.put("videos",i))}async getAllVideos(e){let t=await this.getDB();return t?await t.getAllFromIndex("videos","userId",e):[]}async deleteVideo(e){let t=await this.getDB();if(!t)return;let a=await t.getAllKeysFromIndex("hlsSegments","videoId",e),i=t.transaction("hlsSegments","readwrite"),s=i.objectStore("hlsSegments");await Promise.all(a.map(e=>s.delete(e))),await i.done,await t.delete("videos",e)}async clearUserVideos(e){if(await this.getDB())for(let t of(await this.getAllVideos(e)))await this.deleteVideo(t.id)}async saveHLSSegment(e){let t=await this.getDB();t&&await t.put("hlsSegments",e)}async getHLSSegment(e,t){let a,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"video",s=await this.getDB();if(s)return a="string"==typeof t&&(t.startsWith("audio_")||t.startsWith("seg_"))?"".concat(e,"__").concat(t):"audio"===i?"".concat(e,"__audio_seg_").concat(t):"".concat(e,"__seg_").concat(t),await s.get("hlsSegments",a)}async getHLSSegmentById(e){let t=await this.getDB();if(t)return await t.get("hlsSegments",e)}async getAllSegments(e){let t=await this.getDB();return t?await t.getAllFromIndex("hlsSegments","videoId",e):[]}async savePDF(e,t){let a=await this.getDB();if(!a)return;let i=a.transaction(["pdfs","pdfFiles"],"readwrite");await Promise.all([i.objectStore("pdfs").put(e),i.objectStore("pdfFiles").put(t)]),await i.done}async getPDF(e){let t=await this.getDB();if(t)return await t.get("pdfs",e)}async updatePDFAnnotations(e,t){let a=await this.getDB();if(!a)return;let i=await a.get("pdfs",e);i&&(i.annotations=t,await a.put("pdfs",i))}async getPDFFile(e){let t=await this.getDB();if(t)return await t.get("pdfFiles",e)}async getAllPDFs(e){let t=await this.getDB();return t?await t.getAllFromIndex("pdfs","userId",e):[]}async deletePDF(e){let t=await this.getDB();if(!t)return;let a=t.transaction(["pdfs","pdfFiles"],"readwrite");await Promise.all([a.objectStore("pdfs").delete(e),a.objectStore("pdfFiles").delete(e)]),await a.done}async clearUserPDFs(e){if(await this.getDB())for(let t of(await this.getAllPDFs(e)))await this.deletePDF(t.id)}constructor(){this.dbPromise=null}}let r=new s},18735:(e,t,a)=>{a.d(t,{_:()=>i});function i(e,t){return t.get?t.get.call(e):t.value}},24033:(e,t,a)=>{a.d(t,{A:()=>i});let i=(0,a(71847).A)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]])},36386:(e,t,a)=>{a.d(t,{A:()=>o,V:()=>d});var i=a(53455),s=a(21858);let r={get:async()=>{try{return(await s.A.get("/web-setting")).data}catch(a){var e,t;throw Error((null==a||null==(t=a.response)||null==(e=t.data)?void 0:e.error)||a.message||"Failed to fetch web settings")}}},n=async()=>(await r.get()).data,d=e=>{let{data:t,isLoading:a,error:s}=(0,i.I)({queryKey:["webSettings"],queryFn:()=>n(),staleTime:3e5,initialData:e,retry:1});return{webSettings:t,isWebSettingsLoading:a,webSettingsError:s}},o=d},37354:(e,t,a)=>{a.d(t,{A:()=>i});let i=(0,a(71847).A)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]])},38636:(e,t,a)=>{a.d(t,{_:()=>s});var i=a(56971);function s(e,t){(0,i._)(e,t),t.add(e)}},47937:(e,t,a)=>{a.d(t,{A:()=>i});let i=(0,a(71847).A)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]])},52939:(e,t,a)=>{a.d(t,{_:()=>r});var i=a(84187),s=a(96994);function r(e,t,a){var r=(0,s._)(e,t,"set");return(0,i._)(e,r,a),a}},56971:(e,t,a)=>{a.d(t,{_:()=>i});function i(e,t){if(t.has(e))throw TypeError("Cannot initialize the same private elements twice on an object")}},62927:(e,t,a)=>{a.d(t,{_:()=>s});var i=a(56971);function s(e,t,a){(0,i._)(e,t),t.set(e,a)}},65229:(e,t,a)=>{a.d(t,{A:()=>i});let i=(0,a(71847).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}
1],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},65818:(e,t,a)=>{a.d(t,{_:()=>i});function i(e,t,a){if(!t.has(e))throw TypeError("attempted to get private field on non-instance");return a}},84187:(e,t,a)=>{a.d(t,{_:()=>i});function i(e,t,a){if(t.set)t.set.call(e,a);else{if(!t.writable)throw TypeError("attempted to set read only private field");t.value=a}}},86651:(e,t,a)=>{a.d(t,{A:()=>i});let i=(0,a(71847).A)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]])},96994:(e,t,a)=>{a.d(t,{_:()=>i});function i(e,t,a){if(!t.has(e))throw TypeError("attempted to "+a+" private field on non-instance");return t.get(e)}},97624:(e,t,a)=>{a.d(t,{A:()=>i});let i=(0,a(71847).A)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]])}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.