Файловый менеджер - Редактировать - /home/jogoso94/public_html/static/img/logo/jumping_frog_adventure.zip
�азад
PK ��Z�6Gwk k sw.jsnu �[��� "use strict";const OFFLINE_DATA_FILE="offline.json",CACHE_NAME_PREFIX="c3offline",BROADCASTCHANNEL_NAME="offline",CONSOLE_PREFIX="[SW] ",LAZYLOAD_KEYNAME="",broadcastChannel="undefined"==typeof BroadcastChannel?null:new BroadcastChannel(BROADCASTCHANNEL_NAME);class PromiseThrottle{constructor(e){this._maxParallel=e,this._queue=[],this._activeCount=0}Add(a){return new Promise((e,t)=>{this._queue.push({func:a,resolve:e,reject:t}),this._MaybeStartNext()})}async _MaybeStartNext(){if(this._queue.length&&!(this._activeCount>=this._maxParallel)){this._activeCount++;const t=this._queue.shift();try{const e=await t.func();t.resolve(e)}catch(e){t.reject(e)}this._activeCount--,this._MaybeStartNext()}}}const networkThrottle=new PromiseThrottle(20);function PostBroadcastMessage(e){broadcastChannel&&setTimeout(()=>broadcastChannel.postMessage(e),3e3)}function Broadcast(e){PostBroadcastMessage({"type":e})}function BroadcastDownloadingUpdate(e){PostBroadcastMessage({"type":"downloading-update","version":e})}function BroadcastUpdateReady(e){PostBroadcastMessage({"type":"update-ready","version":e})}function IsUrlInLazyLoadList(e,t){if(t)try{for(const a of t)if(new RegExp(a).test(e))return!0}catch(e){console.error(CONSOLE_PREFIX+"Error matching in lazy-load list: ",e)}return!1}function WriteLazyLoadListToStorage(e){return"undefined"==typeof localforage?Promise.resolve():localforage.setItem(LAZYLOAD_KEYNAME,e)}function ReadLazyLoadListFromStorage(){return"undefined"==typeof localforage?Promise.resolve([]):localforage.getItem(LAZYLOAD_KEYNAME)}function GetCacheBaseName(){return CACHE_NAME_PREFIX+"-"+self.registration.scope}function GetCacheVersionName(e){return GetCacheBaseName()+"-v"+e}async function GetAvailableCacheNames(){const e=await caches.keys(),t=GetCacheBaseName();return e.filter(e=>e.startsWith(t))}async function IsUpdatePending(){const e=await GetAvailableCacheNames();return 2<=e.length}async function GetMainPageUrl(){const e=await clients.matchAll({includeUncontrolled:!0,type:"window"});for(const t of e){let e=t.url;if((e=e.startsWith(self.registration.scope)?e.substring(self.registration.scope.length):e)&&"/"!==e)return e=e.startsWith("?")?"/"+e:e}return""}function fetchWithBypass(e,t){return"string"==typeof e&&(e=new Request(e)),t?fetch(e.url,{headers:e.headers,mode:e.mode,credentials:e.credentials,redirect:e.redirect,cache:"no-store"}):fetch(e)}async function CreateCacheFromFileList(t,a,o){const e=await Promise.all(a.map(e=>networkThrottle.Add(()=>fetchWithBypass(e,o))));let s=!0;for(const r of e)r.ok||(s=!1,console.error(CONSOLE_PREFIX+"Error fetching '"+r.url+"' ("+r.status+" "+r.statusText+")"));if(!s)throw new Error("not all resources were fetched successfully");const n=await caches.open(t);try{return await Promise.all(e.map((e,t)=>n.put(a[t],e)))}catch(e){throw console.error(CONSOLE_PREFIX+"Error writing cache entries: ",e),caches.delete(t),e}}async function UpdateCheck(e){try{const t=await fetchWithBypass(OFFLINE_DATA_FILE,!0);if(!t.ok)throw new Error(OFFLINE_DATA_FILE+" responded with "+t.status+" "+t.statusText);const a=await t.json(),o=a.version,s=a.fileList,n=a.lazyLoad,r=GetCacheVersionName(o),i=await caches.has(r);if(i){const c=await IsUpdatePending();void(c?(console.log(CONSOLE_PREFIX+"Update pending"),Broadcast("update-pending")):(console.log(CONSOLE_PREFIX+"Up to date"),Broadcast("up-to-date")))}else{const l=await GetMainPageUrl(),d=(s.unshift("./"),l&&-1===s.indexOf(l)&&s.unshift(l),console.log(CONSOLE_PREFIX+"Caching "+s.length+" files for offline use"),e?Broadcast("downloading"):BroadcastDownloadingUpdate(o),n&&await WriteLazyLoadListToStorage(n),await CreateCacheFromFileList(r,s,!e),await IsUpdatePending());d?(console.log(CONSOLE_PREFIX+"All resources saved, update ready"),BroadcastUpdateReady(o)):(console.log(CONSOLE_PREFIX+"All resources saved, offline support ready"),Broadcast("offline-ready"))}}catch(e){console.warn(CONSOLE_PREFIX+"Update check failed: ",e)}}async function GetCacheNameToUse(e,t){if(1===e.length||!t)return e[0];const a=await clients.matchAll();if(1<a.length)return e[0];const o=e[e.length-1];return console.log(CONSOLE_PREFIX+"Updating to new version"),await Promise.all(e.slice(0,-1).map(e=>caches.delete(e))),o}async function HandleFetch(t,e){const a=await GetAvailableCacheNames();if(!a.length)return fetch(t.request);const o=await GetCacheNameToUse(a,e),s=await caches.open(o),n=await s.match(t.request);if(n)return n;const r=await Promise.all([fetch(t.request),ReadLazyLoadListFromStorage()]),i=r[0],c=r[1];if(IsUrlInLazyLoadList(t.request.url,c))try{await s.put(t.request,i.clone())}catch(e){console.warn(CONSOLE_PREFIX+"Error caching '"+t.request.url+"': ",e)}return i}self.addEventListener("install",e=>{e.waitUntil(UpdateCheck(!0).catch(()=>null))}),self.addEventListener("fetch",e=>{if(new URL(e.request.url).origin===location.origin){const t="navigate"===e.request.mode,a=HandleFetch(e,t);t&&e.waitUntil(a.then(()=>UpdateCheck(!1))),e.respondWith(a)}});PK ��ZO\�k� � workermain.jsnu �[��� let hasInitialised=!1,runtime=null;function HandleInitRuntimeMessage(t){const e=t.data;e&&"init-runtime"===e["type"]&&(InitRuntime(e),self.removeEventListener("message",HandleInitRuntimeMessage))}function IsAbsoluteURL(t){return/^(?:[a-z\-]+:)?\/\//.test(t)||"data:"===t.substr(0,5)||"blob:"===t.substr(0,5)}function IsRelativeURL(t){return!IsAbsoluteURL(t)}async function LoadScripts(e){if(1===e.length){const t=e[0];await import((IsRelativeURL(t)?"./":"")+t)}else{const i=e.map(t=>`import "${IsRelativeURL(t)?"./":""}${t}";`).join("\n"),r=URL.createObjectURL(new Blob([i],{type:"application/javascript"}));try{await import(r)}catch(t){console.warn("[Construct] Unable to import script from blob: URL. Falling back to loading scripts sequentially, which could significantly increase loading time. Make sure blob: URLs are allowed for best performance.",t);for(const n of e)await import((IsRelativeURL(n)?"./":"")+n)}}}async function InitRuntime(t){if(hasInitialised)throw new Error("already initialised");hasInitialised=!0;const e=t["messagePort"],i=t["exportType"],r=(self.devicePixelRatio=t["devicePixelRatio"],[]),n=(self.runOnStartup=function(t){if("function"!=typeof t)throw new Error("runOnStartup called without a function");r.push(t)},t["runtimeScriptList"].map(t=>new URL(t,location.href).toString()));try{await LoadScripts([...n])}catch(t){return void console.error("[C3 runtime] Failed to load all engine scripts in worker: ",t)}const a=t["projectMainScriptPath"],o=t["scriptsInEventsPath"],s=new URL(a,location.href).toString(),c=new URL(o,location.href).toString();if(a)try{if(await LoadScripts([s]),"preview"===i&&!globalThis.C3_ProjectMainScriptOK)throw new Error("main script did not run to completion")}catch(t){console.error("Error loading project main script: ",t);const l=`Failed to load the project main script (${a}). Check all your JavaScript code has valid syntax, all imports are written correctly, and that an exception was not thrown running the script. Press F12 and check the console for error details.`;e.postMessage({"type":"alert-error","message":l})}if(o)try{if(await LoadScripts([c]),"preview"===i&&!globalThis.C3.ScriptsInEvents)throw new Error("scripts in events did not run to completion")}catch(t){console.error("Error loading scripts in events: ",t);e.postMessage({"type":"alert-error","message":"Failed to load scripts in events. Check all your JavaScript code has valid syntax, all imports are written correctly, and that an exception was not thrown running the 'Imports for events' script. Press F12 and check the console for error details."})}t["runOnStartupFunctions"]=r,e.postMessage({"type":"creating-runtime"}),runtime=self["C3_CreateRuntime"](t),await self["C3_InitRuntime"](runtime,t)}self.addEventListener("message",HandleInitRuntimeMessage);PK ��Z���n n style.cssnu �[��� html, body { padding: 0; margin: 0; overflow: hidden; height: 100%; } body { background: #000000; color: white; } html, body, canvas { touch-action-delay: none; touch-action: none; } canvas, .c3htmlwrap { position: absolute; } .c3htmlwrap { contain: strict; } .c3overlay { pointer-events: none; } .c3htmlwrap[interactive] > * { pointer-events: auto; } /* HACK - work around elements being selectable only in iOS WKWebView for some reason */ html[ioswebview] .c3htmlwrap, html[ioswebview] canvas { -webkit-user-select: none; user-select: none; } html[ioswebview] .c3htmlwrap > * { -webkit-user-select: auto; user-select: auto; } #notSupportedWrap { margin: 2em auto 1em auto; width: 75%; max-width: 45em; border: 2px solid #aaa; border-radius: 1em; padding: 2em; background-color: #f0f0f0; font-family: "Segoe UI", Frutiger, "Frutiger Linotype", "Dejavu Sans", "Helvetica Neue", Arial, sans-serif; color: black; } #notSupportedTitle { font-size: 1.8em; } .notSupportedMessage { font-size: 1.2em; } .notSupportedMessage em { color: #888; } /* bbcode styles */ .bbCodeH1 { font-size: 2em; font-weight: bold; } .bbCodeH2 { font-size: 1.5em; font-weight: bold; } .bbCodeH3 { font-size: 1.25em; font-weight: bold; } .bbCodeH4 { font-size: 1.1em; font-weight: bold; } .bbCodeItem::before { content: " • "; } /* For text icons converted to HTML: size the height to the line height preserving the aspect ratio. Also add position: relative as that allows just adding a 'top' style for the iconoffsety style. */ .c3-text-icon { height: 1em; width: auto; position: relative; } /* screen reader text */ .c3-screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }PK ��Z�C�m �m images/shared-0-sheet2.pngnu �[��� �PNG IHDR H�۱ sRGB ��� �PLTE @p� @tRNS $(,048<@DHLPTX\`dhlptx|������������������������������@]�� l=IDATx��iC�:�Ӳ/Bd9�""�,�o�U�M��ِm�o�z�i�'3�I��@ �@ �@�[R8N��7#q_�V,����������n�W�&�:E��Rn�_E%���<�u���8�b>��ϼ�F��$��)PG�Ǝ3tM�V�Lj|C�T���� ԎS�T��7ێ����%Y�Lm`��-Y�߮1봞��bD�*�[�m��@��"O�-��Y#!ћ����H��q `I�Z�g�i-������i9G ~C�GJkm�;f�4�g�U��*��-ʊ ��~wm Hwlfqv; �� ����� P'�EG; ��- � p�Ž�[�Mݬ 8���&