HugoDzz commited on
Commit
0dd88bc
1 Parent(s): 04de950

feat: add smg build

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +1 -1
  2. .gitignore +9 -0
  3. .npmrc +2 -0
  4. README.md +10 -5
  5. build/_app/immutable/assets/0.128f6419.css +1 -0
  6. build/_app/immutable/assets/_layout.c95767ad.css +1 -0
  7. build/_app/immutable/assets/preview.69504cb0.png +0 -0
  8. build/_app/immutable/chunks/index.0d3f7c7a.js +1 -0
  9. build/_app/immutable/chunks/singletons.d3eb6a89.js +1 -0
  10. build/_app/immutable/chunks/stores.fe367015.js +1 -0
  11. build/_app/immutable/entry/app.2d02feb4.js +1 -0
  12. build/_app/immutable/entry/start.16f78682.js +3 -0
  13. build/_app/immutable/nodes/0.79a9f441.js +1 -0
  14. build/_app/immutable/nodes/1.045d0063.js +1 -0
  15. build/_app/immutable/nodes/2.884f839f.js +9 -0
  16. build/_app/version.json +1 -0
  17. build/favicon.png +0 -0
  18. build/fonts/hellovetica.ttf +0 -0
  19. build/images/png_title.png +0 -0
  20. build/images/sky.png +0 -0
  21. build/index.html +75 -0
  22. build/smg/coi-serviceworker.min.js +2 -0
  23. build/smg/index.apple-touch-icon.png +0 -0
  24. build/smg/index.audio.worklet.js +213 -0
  25. build/smg/index.html +255 -0
  26. build/smg/index.icon.png +0 -0
  27. build/smg/index.js +0 -0
  28. build/smg/index.pck +3 -0
  29. build/smg/index.png +0 -0
  30. build/smg/index.wasm +3 -0
  31. build/smg/index.worker.js +164 -0
  32. index.html +0 -19
  33. package-lock.json +2167 -0
  34. package.json +28 -0
  35. postcss.config.js +6 -0
  36. src/app.css +14 -0
  37. src/app.d.ts +12 -0
  38. src/app.html +14 -0
  39. src/lib/images/preview.png +0 -0
  40. src/routes/+layout.svelte +5 -0
  41. src/routes/+layout.ts +1 -0
  42. src/routes/+page.svelte +104 -0
  43. static/favicon.png +0 -0
  44. static/fonts/hellovetica.ttf +0 -0
  45. static/images/png_title.png +0 -0
  46. static/images/sky.png +0 -0
  47. static/smg/coi-serviceworker.min.js +2 -0
  48. static/smg/index.apple-touch-icon.png +0 -0
  49. static/smg/index.audio.worklet.js +213 -0
  50. static/smg/index.html +255 -0
.gitattributes CHANGED
@@ -25,7 +25,6 @@
25
  *.safetensors filter=lfs diff=lfs merge=lfs -text
26
  saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
  *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
  *.tflite filter=lfs diff=lfs merge=lfs -text
30
  *.tgz filter=lfs diff=lfs merge=lfs -text
31
  *.wasm filter=lfs diff=lfs merge=lfs -text
@@ -33,3 +32,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
25
  *.safetensors filter=lfs diff=lfs merge=lfs -text
26
  saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
  *.tar.* filter=lfs diff=lfs merge=lfs -text
 
28
  *.tflite filter=lfs diff=lfs merge=lfs -text
29
  *.tgz filter=lfs diff=lfs merge=lfs -text
30
  *.wasm filter=lfs diff=lfs merge=lfs -text
 
32
  *.zip filter=lfs diff=lfs merge=lfs -text
33
  *.zst filter=lfs diff=lfs merge=lfs -text
34
  *tfevents* filter=lfs diff=lfs merge=lfs -text
35
+ *.pck filter=lfs diff=lfs merge=lfs -text
.gitignore ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ .DS_Store
2
+ node_modules
3
+ /.svelte-kit
4
+ /package
5
+ .env
6
+ .env.*
7
+ !.env.example
8
+ vite.config.js.timestamp-*
9
+ vite.config.ts.timestamp-*
.npmrc ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ engine-strict=true
2
+ resolution-mode=highest
README.md CHANGED
@@ -1,11 +1,16 @@
1
  ---
2
- title: Super Godot Galaxy
3
- emoji: 🔥
4
- colorFrom: yellow
5
- colorTo: pink
6
  sdk: static
7
- pinned: false
8
  license: mit
 
 
 
 
 
9
  ---
10
 
11
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: Spaceship Drift Game
3
+ emoji: 🪐
4
+ colorFrom: purple
5
+ colorTo: purple
6
  sdk: static
7
+ pinned: true
8
  license: mit
9
+ app_file: build/index.html
10
+ custom_headers:
11
+ cross-origin-embedder-policy: require-corp
12
+ cross-origin-opener-policy: same-origin
13
+ cross-origin-resource-policy: cross-origin
14
  ---
15
 
16
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
build/_app/immutable/assets/0.128f6419.css ADDED
@@ -0,0 +1 @@
 
 
1
+ *,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}@font-face{font-family:Hellovetica;font-weight:300;src:local("Hellovetica"),url(../../../fonts/hellovetica.ttf);font-display:swap}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.-bottom-\[3px\]{bottom:-3px}.-left-\[3px\]{left:-3px}.-right-\[3px\]{right:-3px}.-top-\[3px\]{top:-3px}.bottom-6{bottom:1.5rem}.z-10{z-index:10}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-20{margin-top:5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.flex{display:flex}.contents{display:contents}.h-48{height:12rem}.h-\[3px\]{height:3px}.w-\[3px\]{width:3px}.w-full{width:100%}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-x-hidden{overflow-x:hidden}.border-\[3px\]{border-width:3px}.border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity))}.bg-\[\#0C0F19\]{--tw-bg-opacity: 1;background-color:rgb(12 15 25 / var(--tw-bg-opacity))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}.bg-cover{background-size:cover}.p-4{padding:1rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.text-center{text-align:center}.font-Hellovetica{font-family:Hellovetica}.text-\[9px\]{font-size:9px}.text-xs{font-size:.75rem;line-height:1rem}.text-slate-100{--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}@media (min-width: 640px){.sm\:mt-20{margin-top:5rem}}
build/_app/immutable/assets/_layout.c95767ad.css ADDED
@@ -0,0 +1 @@
 
 
1
+ *,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}@font-face{font-family:Hellovetica;font-weight:300;src:local("Hellovetica"),url(/fonts/hellovetica.ttf);font-display:swap}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.-bottom-\[3px\]{bottom:-3px}.-left-\[3px\]{left:-3px}.-right-\[3px\]{right:-3px}.-top-\[3px\]{top:-3px}.bottom-6{bottom:1.5rem}.z-10{z-index:10}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-20{margin-top:5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.flex{display:flex}.contents{display:contents}.h-48{height:12rem}.h-\[3px\]{height:3px}.w-\[3px\]{width:3px}.w-full{width:100%}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-x-hidden{overflow-x:hidden}.border-\[3px\]{border-width:3px}.border-slate-800{--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity))}.bg-\[\#0C0F19\]{--tw-bg-opacity: 1;background-color:rgb(12 15 25 / var(--tw-bg-opacity))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity))}.bg-cover{background-size:cover}.p-4{padding:1rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.text-center{text-align:center}.font-Hellovetica{font-family:Hellovetica}.text-\[9px\]{font-size:9px}.text-xs{font-size:.75rem;line-height:1rem}.text-slate-100{--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}@media (min-width: 640px){.sm\:mt-20{margin-top:5rem}}
build/_app/immutable/assets/preview.69504cb0.png ADDED
build/_app/immutable/chunks/index.0d3f7c7a.js ADDED
@@ -0,0 +1 @@
 
 
1
+ function $(){}function F(t,e){for(const n in e)t[n]=e[n];return t}function T(t){return t()}function M(){return Object.create(null)}function g(t){t.forEach(T)}function B(t){return typeof t=="function"}function at(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}let x;function st(t,e){return x||(x=document.createElement("a")),x.href=e,t===x.href}function H(t){return Object.keys(t).length===0}function I(t,...e){if(t==null)return $;const n=t.subscribe(...e);return n.unsubscribe?()=>n.unsubscribe():n}function ft(t,e,n){t.$$.on_destroy.push(I(e,n))}function dt(t,e,n,i){if(t){const r=L(t,e,n,i);return t[0](r)}}function L(t,e,n,i){return t[1]&&i?F(n.ctx.slice(),t[1](i(e))):n.ctx}function _t(t,e,n,i){if(t[2]&&i){const r=t[2](i(n));if(e.dirty===void 0)return r;if(typeof r=="object"){const a=[],l=Math.max(e.dirty.length,r.length);for(let o=0;o<l;o+=1)a[o]=e.dirty[o]|r[o];return a}return e.dirty|r}return e.dirty}function ht(t,e,n,i,r,a){if(r){const l=L(e,n,i,a);t.p(l,r)}}function mt(t){if(t.ctx.length>32){const e=[],n=t.ctx.length/32;for(let i=0;i<n;i++)e[i]=-1;return e}return-1}const G=typeof window<"u"?window:typeof globalThis<"u"?globalThis:global;"WeakMap"in G;let v=!1;function J(){v=!0}function K(){v=!1}function Q(t,e,n,i){for(;t<e;){const r=t+(e-t>>1);n(r)<=i?t=r+1:e=r}return t}function R(t){if(t.hydrate_init)return;t.hydrate_init=!0;let e=t.childNodes;if(t.nodeName==="HEAD"){const u=[];for(let c=0;c<e.length;c++){const f=e[c];f.claim_order!==void 0&&u.push(f)}e=u}const n=new Int32Array(e.length+1),i=new Int32Array(e.length);n[0]=-1;let r=0;for(let u=0;u<e.length;u++){const c=e[u].claim_order,f=(r>0&&e[n[r]].claim_order<=c?r+1:Q(1,r,b=>e[n[b]].claim_order,c))-1;i[u]=n[f]+1;const s=f+1;n[s]=u,r=Math.max(s,r)}const a=[],l=[];let o=e.length-1;for(let u=n[r]+1;u!=0;u=i[u-1]){for(a.push(e[u-1]);o>=u;o--)l.push(e[o]);o--}for(;o>=0;o--)l.push(e[o]);a.reverse(),l.sort((u,c)=>u.claim_order-c.claim_order);for(let u=0,c=0;u<l.length;u++){for(;c<a.length&&l[u].claim_order>=a[c].claim_order;)c++;const f=c<a.length?a[c]:null;t.insertBefore(l[u],f)}}function U(t,e){if(v){for(R(t),(t.actual_end_child===void 0||t.actual_end_child!==null&&t.actual_end_child.parentNode!==t)&&(t.actual_end_child=t.firstChild);t.actual_end_child!==null&&t.actual_end_child.claim_order===void 0;)t.actual_end_child=t.actual_end_child.nextSibling;e!==t.actual_end_child?(e.claim_order!==void 0||e.parentNode!==t)&&t.insertBefore(e,t.actual_end_child):t.actual_end_child=e.nextSibling}else(e.parentNode!==t||e.nextSibling!==null)&&t.appendChild(e)}function pt(t,e,n){v&&!n?U(t,e):(e.parentNode!==t||e.nextSibling!=n)&&t.insertBefore(e,n||null)}function V(t){t.parentNode&&t.parentNode.removeChild(t)}function X(t){return document.createElement(t)}function A(t){return document.createTextNode(t)}function yt(){return A(" ")}function gt(){return A("")}function bt(t,e,n,i){return t.addEventListener(e,n,i),()=>t.removeEventListener(e,n,i)}function xt(t){return function(e){return e.preventDefault(),t.call(this,e)}}function wt(t,e,n){n==null?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function Y(t){return Array.from(t.childNodes)}function Z(t){t.claim_info===void 0&&(t.claim_info={last_index:0,total_claimed:0})}function O(t,e,n,i,r=!1){Z(t);const a=(()=>{for(let l=t.claim_info.last_index;l<t.length;l++){const o=t[l];if(e(o)){const u=n(o);return u===void 0?t.splice(l,1):t[l]=u,r||(t.claim_info.last_index=l),o}}for(let l=t.claim_info.last_index-1;l>=0;l--){const o=t[l];if(e(o)){const u=n(o);return u===void 0?t.splice(l,1):t[l]=u,r?u===void 0&&t.claim_info.last_index--:t.claim_info.last_index=l,o}}return i()})();return a.claim_order=t.claim_info.total_claimed,t.claim_info.total_claimed+=1,a}function tt(t,e,n,i){return O(t,r=>r.nodeName===e,r=>{const a=[];for(let l=0;l<r.attributes.length;l++){const o=r.attributes[l];n[o.name]||a.push(o.name)}a.forEach(l=>r.removeAttribute(l))},()=>i(e))}function $t(t,e,n){return tt(t,e,n,X)}function et(t,e){return O(t,n=>n.nodeType===3,n=>{const i=""+e;if(n.data.startsWith(i)){if(n.data.length!==i.length)return n.splitText(i.length)}else n.data=i},()=>A(e),!0)}function vt(t){return et(t," ")}function Et(t,e){e=""+e,t.data!==e&&(t.data=e)}function Nt(t,e,n,i){n==null?t.style.removeProperty(e):t.style.setProperty(e,n,i?"important":"")}function St(t,e){return new t(e)}let y;function p(t){y=t}function D(){if(!y)throw new Error("Function called outside component initialization");return y}function At(t){D().$$.on_mount.push(t)}function jt(t){D().$$.after_update.push(t)}const h=[],q=[];let m=[];const C=[],P=Promise.resolve();let N=!1;function W(){N||(N=!0,P.then(z))}function kt(){return W(),P}function S(t){m.push(t)}const E=new Set;let _=0;function z(){if(_!==0)return;const t=y;do{try{for(;_<h.length;){const e=h[_];_++,p(e),nt(e.$$)}}catch(e){throw h.length=0,_=0,e}for(p(null),h.length=0,_=0;q.length;)q.pop()();for(let e=0;e<m.length;e+=1){const n=m[e];E.has(n)||(E.add(n),n())}m.length=0}while(h.length);for(;C.length;)C.pop()();N=!1,E.clear(),p(t)}function nt(t){if(t.fragment!==null){t.update(),g(t.before_update);const e=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,e),t.after_update.forEach(S)}}function it(t){const e=[],n=[];m.forEach(i=>t.indexOf(i)===-1?e.push(i):n.push(i)),n.forEach(i=>i()),m=e}const w=new Set;let d;function Mt(){d={r:0,c:[],p:d}}function qt(){d.r||g(d.c),d=d.p}function rt(t,e){t&&t.i&&(w.delete(t),t.i(e))}function Ct(t,e,n,i){if(t&&t.o){if(w.has(t))return;w.add(t),d.c.push(()=>{w.delete(t),i&&(n&&t.d(1),i())}),t.o(e)}else i&&i()}const lt=["allowfullscreen","allowpaymentrequest","async","autofocus","autoplay","checked","controls","default","defer","disabled","formnovalidate","hidden","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected"];[...lt];function Tt(t){t&&t.c()}function Bt(t,e){t&&t.l(e)}function ut(t,e,n,i){const{fragment:r,after_update:a}=t.$$;r&&r.m(e,n),i||S(()=>{const l=t.$$.on_mount.map(T).filter(B);t.$$.on_destroy?t.$$.on_destroy.push(...l):g(l),t.$$.on_mount=[]}),a.forEach(S)}function ct(t,e){const n=t.$$;n.fragment!==null&&(it(n.after_update),g(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function ot(t,e){t.$$.dirty[0]===-1&&(h.push(t),W(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<<e%31}function Lt(t,e,n,i,r,a,l,o=[-1]){const u=y;p(t);const c=t.$$={fragment:null,ctx:[],props:a,update:$,not_equal:r,bound:M(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(e.context||(u?u.$$.context:[])),callbacks:M(),dirty:o,skip_bound:!1,root:e.target||u.$$.root};l&&l(c.root);let f=!1;if(c.ctx=n?n(t,e.props||{},(s,b,...j)=>{const k=j.length?j[0]:b;return c.ctx&&r(c.ctx[s],c.ctx[s]=k)&&(!c.skip_bound&&c.bound[s]&&c.bound[s](k),f&&ot(t,s)),b}):[],c.update(),f=!0,g(c.before_update),c.fragment=i?i(c.ctx):!1,e.target){if(e.hydrate){J();const s=Y(e.target);c.fragment&&c.fragment.l(s),s.forEach(V)}else c.fragment&&c.fragment.c();e.intro&&rt(t.$$.fragment),ut(t,e.target,e.anchor,e.customElement),K(),z()}p(u)}class Ot{$destroy(){ct(this,1),this.$destroy=$}$on(e,n){if(!B(n))return $;const i=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return i.push(n),()=>{const r=i.indexOf(n);r!==-1&&i.splice(r,1)}}$set(e){this.$$set&&!H(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}export{ut as A,ct as B,dt as C,ht as D,mt as E,_t as F,U as G,$ as H,ft as I,st as J,bt as K,xt as L,Ot as S,yt as a,pt as b,vt as c,Ct as d,gt as e,qt as f,rt as g,V as h,Lt as i,jt as j,X as k,$t as l,Y as m,wt as n,At as o,Nt as p,A as q,et as r,at as s,kt as t,Et as u,Mt as v,q as w,St as x,Tt as y,Bt as z};
build/_app/immutable/chunks/singletons.d3eb6a89.js ADDED
@@ -0,0 +1 @@
 
 
1
+ import{H as d,s as v}from"./index.0d3f7c7a.js";const c=[];function p(e,t=d){let n;const o=new Set;function a(s){if(v(e,s)&&(e=s,n)){const u=!c.length;for(const i of o)i[1](),c.push(i,e);if(u){for(let i=0;i<c.length;i+=2)c[i][0](c[i+1]);c.length=0}}}function l(s){a(s(e))}function r(s,u=d){const i=[s,u];return o.add(i),o.size===1&&(n=t(a)||d),s(e),()=>{o.delete(i),o.size===0&&n&&(n(),n=null)}}return{set:a,update:l,subscribe:r}}var g;const E=((g=globalThis.__sveltekit_pm3ou1)==null?void 0:g.base)??"";var k;const S=((k=globalThis.__sveltekit_pm3ou1)==null?void 0:k.assets)??E,w="1697963191981",y="sveltekit:snapshot",I="sveltekit:scroll",x="sveltekit:index",_={tap:1,hover:2,viewport:3,eager:4,off:-1};function O(e){let t=e.baseURI;if(!t){const n=e.getElementsByTagName("base");t=n.length?n[0].href:e.URL}return t}function U(){return{x:pageXOffset,y:pageYOffset}}function f(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const b={..._,"":_.hover};function m(e){let t=e.assignedSlot??e.parentNode;return(t==null?void 0:t.nodeType)===11&&(t=t.host),t}function L(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=m(e)}}function N(e,t){let n;try{n=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI)}catch{}const o=e instanceof SVGAElement?e.target.baseVal:e.target,a=!n||!!o||R(n,t)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),l=(n==null?void 0:n.origin)===location.origin&&e.hasAttribute("download");return{url:n,external:a,target:o,download:l}}function P(e){let t=null,n=null,o=null,a=null,l=null,r=null,s=e;for(;s&&s!==document.documentElement;)o===null&&(o=f(s,"preload-code")),a===null&&(a=f(s,"preload-data")),t===null&&(t=f(s,"keepfocus")),n===null&&(n=f(s,"noscroll")),l===null&&(l=f(s,"reload")),r===null&&(r=f(s,"replacestate")),s=m(s);return{preload_code:b[o??"off"],preload_data:b[a??"off"],keep_focus:t==="off"?!1:t===""?!0:null,noscroll:n==="off"?!1:n===""?!0:null,reload:l==="off"?!1:l===""?!0:null,replace_state:r==="off"?!1:r===""?!0:null}}function h(e){const t=p(e);let n=!0;function o(){n=!0,t.update(r=>r)}function a(r){n=!1,t.set(r)}function l(r){let s;return t.subscribe(u=>{(s===void 0||n&&u!==s)&&r(s=u)})}return{notify:o,set:a,subscribe:l}}function A(){const{set:e,subscribe:t}=p(!1);let n;async function o(){clearTimeout(n);try{const a=await fetch(`${S}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const r=(await a.json()).version!==w;return r&&(e(!0),clearTimeout(n)),r}catch{return!1}}return{subscribe:t,check:o}}function R(e,t){return e.origin!==location.origin||!e.pathname.startsWith(t)}function V(e){e.client}const Y={url:h({}),page:h({}),navigating:p(null),updated:A()};export{x as I,_ as P,I as S,y as a,N as b,P as c,U as d,E as e,L as f,O as g,V as h,R as i,Y as s};
build/_app/immutable/chunks/stores.fe367015.js ADDED
@@ -0,0 +1 @@
 
 
1
+ import"./index.0d3f7c7a.js";import{s as e}from"./singletons.d3eb6a89.js";const r=()=>{const s=e;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},b={subscribe(s){return r().page.subscribe(s)}};export{b as p};
build/_app/immutable/entry/app.2d02feb4.js ADDED
@@ -0,0 +1 @@
 
 
1
+ import{S as V,i as q,s as U,a as j,e as h,c as z,b as w,d as p,f as y,g as d,h as g,j as W,o as F,k as G,l as H,m as J,n as N,p as m,q as K,r as M,u as Q,v as L,w as P,x as k,y as v,z as A,A as E,B as R}from"../chunks/index.0d3f7c7a.js";const X="modulepreload",Y=function(a,e){return new URL(a,e).href},B={},S=function(e,n,i){if(!n||n.length===0)return e();const s=document.getElementsByTagName("link");return Promise.all(n.map(f=>{if(f=Y(f,i),f in B)return;B[f]=!0;const t=f.endsWith(".css"),r=t?'[rel="stylesheet"]':"";if(!!i)for(let l=s.length-1;l>=0;l--){const _=s[l];if(_.href===f&&(!t||_.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${f}"]${r}`))return;const o=document.createElement("link");if(o.rel=t?"stylesheet":X,t||(o.as="script",o.crossOrigin=""),o.href=f,document.head.appendChild(o),t)return new Promise((l,_)=>{o.addEventListener("load",l),o.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${f}`)))})})).then(()=>e())},ie={};function Z(a){let e,n,i;var s=a[1][0];function f(t){return{props:{data:t[3],form:t[2]}}}return s&&(e=k(s,f(a)),a[12](e)),{c(){e&&v(e.$$.fragment),n=h()},l(t){e&&A(e.$$.fragment,t),n=h()},m(t,r){e&&E(e,t,r),w(t,n,r),i=!0},p(t,r){const u={};if(r&8&&(u.data=t[3]),r&4&&(u.form=t[2]),r&2&&s!==(s=t[1][0])){if(e){L();const o=e;p(o.$$.fragment,1,0,()=>{R(o,1)}),y()}s?(e=k(s,f(t)),t[12](e),v(e.$$.fragment),d(e.$$.fragment,1),E(e,n.parentNode,n)):e=null}else s&&e.$set(u)},i(t){i||(e&&d(e.$$.fragment,t),i=!0)},o(t){e&&p(e.$$.fragment,t),i=!1},d(t){a[12](null),t&&g(n),e&&R(e,t)}}}function $(a){let e,n,i;var s=a[1][0];function f(t){return{props:{data:t[3],$$slots:{default:[x]},$$scope:{ctx:t}}}}return s&&(e=k(s,f(a)),a[11](e)),{c(){e&&v(e.$$.fragment),n=h()},l(t){e&&A(e.$$.fragment,t),n=h()},m(t,r){e&&E(e,t,r),w(t,n,r),i=!0},p(t,r){const u={};if(r&8&&(u.data=t[3]),r&8215&&(u.$$scope={dirty:r,ctx:t}),r&2&&s!==(s=t[1][0])){if(e){L();const o=e;p(o.$$.fragment,1,0,()=>{R(o,1)}),y()}s?(e=k(s,f(t)),t[11](e),v(e.$$.fragment),d(e.$$.fragment,1),E(e,n.parentNode,n)):e=null}else s&&e.$set(u)},i(t){i||(e&&d(e.$$.fragment,t),i=!0)},o(t){e&&p(e.$$.fragment,t),i=!1},d(t){a[11](null),t&&g(n),e&&R(e,t)}}}function x(a){let e,n,i;var s=a[1][1];function f(t){return{props:{data:t[4],form:t[2]}}}return s&&(e=k(s,f(a)),a[10](e)),{c(){e&&v(e.$$.fragment),n=h()},l(t){e&&A(e.$$.fragment,t),n=h()},m(t,r){e&&E(e,t,r),w(t,n,r),i=!0},p(t,r){const u={};if(r&16&&(u.data=t[4]),r&4&&(u.form=t[2]),r&2&&s!==(s=t[1][1])){if(e){L();const o=e;p(o.$$.fragment,1,0,()=>{R(o,1)}),y()}s?(e=k(s,f(t)),t[10](e),v(e.$$.fragment),d(e.$$.fragment,1),E(e,n.parentNode,n)):e=null}else s&&e.$set(u)},i(t){i||(e&&d(e.$$.fragment,t),i=!0)},o(t){e&&p(e.$$.fragment,t),i=!1},d(t){a[10](null),t&&g(n),e&&R(e,t)}}}function C(a){let e,n=a[6]&&D(a);return{c(){e=G("div"),n&&n.c(),this.h()},l(i){e=H(i,"DIV",{id:!0,"aria-live":!0,"aria-atomic":!0,style:!0});var s=J(e);n&&n.l(s),s.forEach(g),this.h()},h(){N(e,"id","svelte-announcer"),N(e,"aria-live","assertive"),N(e,"aria-atomic","true"),m(e,"position","absolute"),m(e,"left","0"),m(e,"top","0"),m(e,"clip","rect(0 0 0 0)"),m(e,"clip-path","inset(50%)"),m(e,"overflow","hidden"),m(e,"white-space","nowrap"),m(e,"width","1px"),m(e,"height","1px")},m(i,s){w(i,e,s),n&&n.m(e,null)},p(i,s){i[6]?n?n.p(i,s):(n=D(i),n.c(),n.m(e,null)):n&&(n.d(1),n=null)},d(i){i&&g(e),n&&n.d()}}}function D(a){let e;return{c(){e=K(a[7])},l(n){e=M(n,a[7])},m(n,i){w(n,e,i)},p(n,i){i&128&&Q(e,n[7])},d(n){n&&g(e)}}}function ee(a){let e,n,i,s,f;const t=[$,Z],r=[];function u(l,_){return l[1][1]?0:1}e=u(a),n=r[e]=t[e](a);let o=a[5]&&C(a);return{c(){n.c(),i=j(),o&&o.c(),s=h()},l(l){n.l(l),i=z(l),o&&o.l(l),s=h()},m(l,_){r[e].m(l,_),w(l,i,_),o&&o.m(l,_),w(l,s,_),f=!0},p(l,[_]){let b=e;e=u(l),e===b?r[e].p(l,_):(L(),p(r[b],1,1,()=>{r[b]=null}),y(),n=r[e],n?n.p(l,_):(n=r[e]=t[e](l),n.c()),d(n,1),n.m(i.parentNode,i)),l[5]?o?o.p(l,_):(o=C(l),o.c(),o.m(s.parentNode,s)):o&&(o.d(1),o=null)},i(l){f||(d(n),f=!0)},o(l){p(n),f=!1},d(l){r[e].d(l),l&&g(i),o&&o.d(l),l&&g(s)}}}function te(a,e,n){let{stores:i}=e,{page:s}=e,{constructors:f}=e,{components:t=[]}=e,{form:r}=e,{data_0:u=null}=e,{data_1:o=null}=e;W(i.page.notify);let l=!1,_=!1,b=null;F(()=>{const c=i.page.subscribe(()=>{l&&(n(6,_=!0),n(7,b=document.title||"untitled page"))});return n(5,l=!0),c});function I(c){P[c?"unshift":"push"](()=>{t[1]=c,n(0,t)})}function O(c){P[c?"unshift":"push"](()=>{t[0]=c,n(0,t)})}function T(c){P[c?"unshift":"push"](()=>{t[0]=c,n(0,t)})}return a.$$set=c=>{"stores"in c&&n(8,i=c.stores),"page"in c&&n(9,s=c.page),"constructors"in c&&n(1,f=c.constructors),"components"in c&&n(0,t=c.components),"form"in c&&n(2,r=c.form),"data_0"in c&&n(3,u=c.data_0),"data_1"in c&&n(4,o=c.data_1)},a.$$.update=()=>{a.$$.dirty&768&&i.page.set(s)},[t,f,r,u,o,l,_,b,i,s,I,O,T]}class se extends V{constructor(e){super(),q(this,e,te,ee,U,{stores:8,page:9,constructors:1,components:0,form:2,data_0:3,data_1:4})}}const re=[()=>S(()=>import("../nodes/0.79a9f441.js"),["../nodes/0.79a9f441.js","../chunks/index.0d3f7c7a.js","../assets/0.128f6419.css"],import.meta.url),()=>S(()=>import("../nodes/1.045d0063.js"),["../nodes/1.045d0063.js","../chunks/index.0d3f7c7a.js","../chunks/stores.fe367015.js","../chunks/singletons.d3eb6a89.js"],import.meta.url),()=>S(()=>import("../nodes/2.884f839f.js"),["../nodes/2.884f839f.js","../chunks/index.0d3f7c7a.js","../chunks/stores.fe367015.js","../chunks/singletons.d3eb6a89.js"],import.meta.url)],oe=[],ae={"/":[2]},le={handleError:({error:a})=>{console.error(a)}};export{ae as dictionary,le as hooks,ie as matchers,re as nodes,se as root,oe as server_loads};
build/_app/immutable/entry/start.16f78682.js ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ import{o as Ce,t as ye}from"../chunks/index.0d3f7c7a.js";import{S as Ge,a as Je,I as q,g as De,f as qe,b as we,c as le,s as V,i as _e,d as Q,e as J,P as Fe,h as We}from"../chunks/singletons.d3eb6a89.js";function Xe(t,o){return t==="/"||o==="ignore"?t:o==="never"?t.endsWith("/")?t.slice(0,-1):t:o==="always"&&!t.endsWith("/")?t+"/":t}function Ze(t){return t.split("%25").map(decodeURI).join("%25")}function Qe(t){for(const o in t)t[o]=decodeURIComponent(t[o]);return t}const et=["href","pathname","search","searchParams","toString","toJSON"];function tt(t,o){const u=new URL(t);for(const i of et)Object.defineProperty(u,i,{get(){return o(),t[i]},enumerable:!0,configurable:!0});return nt(u),u}function nt(t){Object.defineProperty(t,"hash",{get(){throw new Error("Cannot access event.url.hash. Consider using `$page.url.hash` inside a component instead")}})}const at="/__data.json";function rt(t){return t.replace(/\/$/,"")+at}function Ke(t){try{return JSON.parse(sessionStorage[t])}catch{}}function Me(t,o){const u=JSON.stringify(o);try{sessionStorage[t]=u}catch{}}function ot(...t){let o=5381;for(const u of t)if(typeof u=="string"){let i=u.length;for(;i;)o=o*33^u.charCodeAt(--i)}else if(ArrayBuffer.isView(u)){const i=new Uint8Array(u.buffer,u.byteOffset,u.byteLength);let d=i.length;for(;d;)o=o*33^i[--d]}else throw new TypeError("value must be a string or TypedArray");return(o>>>0).toString(36)}const fe=window.fetch;window.fetch=(t,o)=>((t instanceof Request?t.method:(o==null?void 0:o.method)||"GET")!=="GET"&&te.delete(Se(t)),fe(t,o));const te=new Map;function it(t,o){const u=Se(t,o),i=document.querySelector(u);if(i!=null&&i.textContent){const{body:d,...f}=JSON.parse(i.textContent),S=i.getAttribute("data-ttl");return S&&te.set(u,{body:d,init:f,ttl:1e3*Number(S)}),Promise.resolve(new Response(d,f))}return fe(t,o)}function st(t,o,u){if(te.size>0){const i=Se(t,u),d=te.get(i);if(d){if(performance.now()<d.ttl&&["default","force-cache","only-if-cached",void 0].includes(u==null?void 0:u.cache))return new Response(d.body,d.init);te.delete(i)}}return fe(o,u)}function Se(t,o){let i=`script[data-sveltekit-fetched][data-url=${JSON.stringify(t instanceof Request?t.url:t)}]`;if(o!=null&&o.headers||o!=null&&o.body){const d=[];o.headers&&d.push([...new Headers(o.headers)].join(",")),o.body&&(typeof o.body=="string"||ArrayBuffer.isView(o.body))&&d.push(o.body),i+=`[data-hash="${ot(...d)}"]`}return i}const ct=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function lt(t){const o=[];return{pattern:t==="/"?/^\/$/:new RegExp(`^${ut(t).map(i=>{const d=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(i);if(d)return o.push({name:d[1],matcher:d[2],optional:!1,rest:!0,chained:!0}),"(?:/(.*))?";const f=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(i);if(f)return o.push({name:f[1],matcher:f[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!i)return;const S=i.split(/\[(.+?)\](?!\])/);return"/"+S.map((b,w)=>{if(w%2){if(b.startsWith("x+"))return be(String.fromCharCode(parseInt(b.slice(2),16)));if(b.startsWith("u+"))return be(String.fromCharCode(...b.slice(2).split("-").map(P=>parseInt(P,16))));const p=ct.exec(b);if(!p)throw new Error(`Invalid param: ${b}. Params and matcher names can only have underscores and alphanumeric characters.`);const[,C,N,k,T]=p;return o.push({name:k,matcher:T,optional:!!C,rest:!!N,chained:N?w===1&&S[0]==="":!1}),N?"(.*?)":C?"([^/]*)?":"([^/]+?)"}return be(b)}).join("")}).join("")}/?$`),params:o}}function ft(t){return!/^\([^)]+\)$/.test(t)}function ut(t){return t.slice(1).split("/").filter(ft)}function dt(t,o,u){const i={},d=t.slice(1);let f=0;for(let S=0;S<o.length;S+=1){const l=o[S],b=d[S-f];if(l.chained&&l.rest&&f){i[l.name]=d.slice(S-f,S+1).filter(w=>w).join("/"),f=0;continue}if(b===void 0){l.rest&&(i[l.name]="");continue}if(!l.matcher||u[l.matcher](b)){i[l.name]=b;const w=o[S+1],p=d[S+1];w&&!w.rest&&w.optional&&p&&(f=0);continue}if(l.optional&&l.chained){f++;continue}return}if(!f)return i}function be(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function pt({nodes:t,server_loads:o,dictionary:u,matchers:i}){const d=new Set(o);return Object.entries(u).map(([l,[b,w,p]])=>{const{pattern:C,params:N}=lt(l),k={id:l,exec:T=>{const P=C.exec(T);if(P)return dt(P,N,i)},errors:[1,...p||[]].map(T=>t[T]),layouts:[0,...w||[]].map(S),leaf:f(b)};return k.errors.length=k.layouts.length=Math.max(k.errors.length,k.layouts.length),k});function f(l){const b=l<0;return b&&(l=~l),[b,t[l]]}function S(l){return l===void 0?l:[d.has(l),t[l]]}}let ee=class{constructor(o,u){this.status=o,typeof u=="string"?this.body={message:u}:u?this.body=u:this.body={message:`Error: ${o}`}}toString(){return JSON.stringify(this.body)}},Ve=class{constructor(o,u){this.status=o,this.location=u}};async function ht(t){var o;for(const u in t)if(typeof((o=t[u])==null?void 0:o.then)=="function")return Object.fromEntries(await Promise.all(Object.entries(t).map(async([i,d])=>[i,await d])));return t}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");const gt=-1,mt=-2,yt=-3,wt=-4,_t=-5,bt=-6;function vt(t,o){if(typeof t=="number")return d(t,!0);if(!Array.isArray(t)||t.length===0)throw new Error("Invalid input");const u=t,i=Array(u.length);function d(f,S=!1){if(f===gt)return;if(f===yt)return NaN;if(f===wt)return 1/0;if(f===_t)return-1/0;if(f===bt)return-0;if(S)throw new Error("Invalid input");if(f in i)return i[f];const l=u[f];if(!l||typeof l!="object")i[f]=l;else if(Array.isArray(l))if(typeof l[0]=="string"){const b=l[0],w=o==null?void 0:o[b];if(w)return i[f]=w(d(l[1]));switch(b){case"Date":i[f]=new Date(l[1]);break;case"Set":const p=new Set;i[f]=p;for(let k=1;k<l.length;k+=1)p.add(d(l[k]));break;case"Map":const C=new Map;i[f]=C;for(let k=1;k<l.length;k+=2)C.set(d(l[k]),d(l[k+1]));break;case"RegExp":i[f]=new RegExp(l[1],l[2]);break;case"Object":i[f]=Object(l[1]);break;case"BigInt":i[f]=BigInt(l[1]);break;case"null":const N=Object.create(null);i[f]=N;for(let k=1;k<l.length;k+=2)N[l[k]]=d(l[k+1]);break;default:throw new Error(`Unknown type ${b}`)}}else{const b=new Array(l.length);i[f]=b;for(let w=0;w<l.length;w+=1){const p=l[w];p!==mt&&(b[w]=d(p))}}else{const b={};i[f]=b;for(const w in l){const p=l[w];b[w]=d(p)}}return i[f]}return d(0)}const ze=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...ze];const Et=new Set([...ze,"actions"]);[...Et];function St(t){return t.filter(o=>o!=null)}const kt="x-sveltekit-invalidated",K=Ke(Ge)??{},Z=Ke(Je)??{};function ve(t){K[t]=Q()}function Rt(t,o){var xe;const u=pt(t),i=t.nodes[0],d=t.nodes[1];i(),d();const f=document.documentElement,S=[],l=[];let b=null;const w={before_navigate:[],after_navigate:[]};let p={branch:[],error:null,url:null},C=!1,N=!1,k=!0,T=!1,P=!1,z=!1,H=!1,F,j=(xe=history.state)==null?void 0:xe[q];j||(j=Date.now(),history.replaceState({...history.state,[q]:j},"",location.href));const ue=K[j];ue&&(history.scrollRestoration="manual",scrollTo(ue.x,ue.y));let M,ne,ae;async function ke(){ae=ae||Promise.resolve(),await ae,ae=null;const e=new URL(location.href),n=W(e,!0);b=null;const r=ne={},a=n&&await he(n);if(r===ne&&a){if(a.type==="redirect")return re(new URL(a.location,e).href,{},[e.pathname],r);a.props.page!==void 0&&(M=a.props.page),F.$set(a.props)}}function Re(e){l.some(n=>n==null?void 0:n.snapshot)&&(Z[e]=l.map(n=>{var r;return(r=n==null?void 0:n.snapshot)==null?void 0:r.capture()}))}function Ae(e){var n;(n=Z[e])==null||n.forEach((r,a)=>{var s,c;(c=(s=l[a])==null?void 0:s.snapshot)==null||c.restore(r)})}function Le(){ve(j),Me(Ge,K),Re(j),Me(Je,Z)}async function re(e,{noScroll:n=!1,replaceState:r=!1,keepFocus:a=!1,state:s={},invalidateAll:c=!1},g,m){return typeof e=="string"&&(e=new URL(e,De(document))),ce({url:e,scroll:n?Q():null,keepfocus:a,redirect_chain:g,details:{state:s,replaceState:r},nav_token:m,accepted:()=>{c&&(H=!0)},blocked:()=>{},type:"goto"})}async function Oe(e){return b={id:e.id,promise:he(e).then(n=>(n.type==="loaded"&&n.state.error&&(b=null),n))},b.promise}async function oe(...e){const r=u.filter(a=>e.some(s=>a.exec(s))).map(a=>Promise.all([...a.layouts,a.leaf].map(s=>s==null?void 0:s[1]())));await Promise.all(r)}function Ie(e){var a;p=e.state;const n=document.querySelector("style[data-sveltekit]");n&&n.remove(),M=e.props.page,F=new t.root({target:o,props:{...e.props,stores:V,components:l},hydrate:!0}),Ae(j);const r={from:null,to:{params:p.params,route:{id:((a=p.route)==null?void 0:a.id)??null},url:new URL(location.href)},willUnload:!1,type:"enter"};w.after_navigate.forEach(s=>s(r)),N=!0}async function Y({url:e,params:n,branch:r,status:a,error:s,route:c,form:g}){let m="never";for(const _ of r)(_==null?void 0:_.slash)!==void 0&&(m=_.slash);e.pathname=Xe(e.pathname,m),e.search=e.search;const v={type:"loaded",state:{url:e,params:n,branch:r,error:s,route:c},props:{constructors:St(r).map(_=>_.node.component)}};g!==void 0&&(v.props.form=g);let y={},R=!M,L=0;for(let _=0;_<Math.max(r.length,p.branch.length);_+=1){const h=r[_],U=p.branch[_];(h==null?void 0:h.data)!==(U==null?void 0:U.data)&&(R=!0),h&&(y={...y,...h.data},R&&(v.props[`data_${L}`]=y),L+=1)}return(!p.url||e.href!==p.url.href||p.error!==s||g!==void 0&&g!==M.form||R)&&(v.props.page={error:s,params:n,route:{id:(c==null?void 0:c.id)??null},status:a,url:new URL(e),form:g??null,data:R?y:M.data}),v}async function de({loader:e,parent:n,url:r,params:a,route:s,server_data_node:c}){var y,R,L;let g=null;const m={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1},v=await e();if((y=v.universal)!=null&&y.load){let I=function(...h){for(const U of h){const{href:x}=new URL(U,r);m.dependencies.add(x)}};const _={route:{get id(){return m.route=!0,s.id}},params:new Proxy(a,{get:(h,U)=>(m.params.add(U),h[U])}),data:(c==null?void 0:c.data)??null,url:tt(r,()=>{m.url=!0}),async fetch(h,U){let x;h instanceof Request?(x=h.url,U={body:h.method==="GET"||h.method==="HEAD"?void 0:await h.blob(),cache:h.cache,credentials:h.credentials,headers:h.headers,integrity:h.integrity,keepalive:h.keepalive,method:h.method,mode:h.mode,redirect:h.redirect,referrer:h.referrer,referrerPolicy:h.referrerPolicy,signal:h.signal,...U}):x=h;const D=new URL(x,r);return I(D.href),D.origin===r.origin&&(x=D.href.slice(r.origin.length)),N?st(x,D.href,U):it(x,U)},setHeaders:()=>{},depends:I,parent(){return m.parent=!0,n()}};g=await v.universal.load.call(null,_)??null,g=g?await ht(g):null}return{node:v,loader:e,server:c,universal:(R=v.universal)!=null&&R.load?{type:"data",data:g,uses:m}:null,data:g??(c==null?void 0:c.data)??null,slash:((L=v.universal)==null?void 0:L.trailingSlash)??(c==null?void 0:c.slash)}}function Pe(e,n,r,a,s){if(H)return!0;if(!a)return!1;if(a.parent&&e||a.route&&n||a.url&&r)return!0;for(const c of a.params)if(s[c]!==p.params[c])return!0;for(const c of a.dependencies)if(S.some(g=>g(new URL(c))))return!0;return!1}function pe(e,n){return(e==null?void 0:e.type)==="data"?e:(e==null?void 0:e.type)==="skip"?n??null:null}async function he({id:e,invalidating:n,url:r,params:a,route:s}){if((b==null?void 0:b.id)===e)return b.promise;const{errors:c,layouts:g,leaf:m}=s,v=[...g,m];c.forEach(E=>E==null?void 0:E().catch(()=>{})),v.forEach(E=>E==null?void 0:E[1]().catch(()=>{}));let y=null;const R=p.url?e!==p.url.pathname+p.url.search:!1,L=p.route?s.id!==p.route.id:!1;let I=!1;const _=v.map((E,O)=>{var G;const A=p.branch[O],$=!!(E!=null&&E[0])&&((A==null?void 0:A.loader)!==E[1]||Pe(I,L,R,(G=A.server)==null?void 0:G.uses,a));return $&&(I=!0),$});if(_.some(Boolean)){try{y=await He(r,_)}catch(E){return ie({status:E instanceof ee?E.status:500,error:await X(E,{url:r,params:a,route:{id:s.id}}),url:r,route:s})}if(y.type==="redirect")return y}const h=y==null?void 0:y.nodes;let U=!1;const x=v.map(async(E,O)=>{var ge;if(!E)return;const A=p.branch[O],$=h==null?void 0:h[O];if((!$||$.type==="skip")&&E[1]===(A==null?void 0:A.loader)&&!Pe(U,L,R,(ge=A.universal)==null?void 0:ge.uses,a))return A;if(U=!0,($==null?void 0:$.type)==="error")throw $;return de({loader:E[1],url:r,params:a,route:s,parent:async()=>{var $e;const je={};for(let me=0;me<O;me+=1)Object.assign(je,($e=await x[me])==null?void 0:$e.data);return je},server_data_node:pe($===void 0&&E[0]?{type:"skip"}:$??null,E[0]?A==null?void 0:A.server:void 0)})});for(const E of x)E.catch(()=>{});const D=[];for(let E=0;E<v.length;E+=1)if(v[E])try{D.push(await x[E])}catch(O){if(O instanceof Ve)return{type:"redirect",location:O.location};let A=500,$;if(h!=null&&h.includes(O))A=O.status??A,$=O.error;else if(O instanceof ee)A=O.status,$=O.body;else{if(await V.updated.check())return await B(r);$=await X(O,{params:a,url:r,route:{id:s.id}})}const G=await Ue(E,D,c);return G?await Y({url:r,params:a,branch:D.slice(0,G.idx).concat(G.node),status:A,error:$,route:s}):await Te(r,{id:s.id},$,A)}else D.push(void 0);return await Y({url:r,params:a,branch:D,status:200,error:null,route:s,form:n?void 0:null})}async function Ue(e,n,r){for(;e--;)if(r[e]){let a=e;for(;!n[a];)a-=1;try{return{idx:a+1,node:{node:await r[e](),loader:r[e],data:{},server:null,universal:null}}}catch{continue}}}async function ie({status:e,error:n,url:r,route:a}){const s={};let c=null;if(t.server_loads[0]===0)try{const y=await He(r,[!0]);if(y.type!=="data"||y.nodes[0]&&y.nodes[0].type!=="data")throw 0;c=y.nodes[0]??null}catch{(r.origin!==location.origin||r.pathname!==location.pathname||C)&&await B(r)}const m=await de({loader:i,url:r,params:s,route:a,parent:()=>Promise.resolve({}),server_data_node:pe(c)}),v={node:await d(),loader:d,universal:null,server:null,data:null};return await Y({url:r,params:s,branch:[m,v],status:e,error:n,route:null})}function W(e,n){if(_e(e,J))return;const r=se(e);for(const a of u){const s=a.exec(r);if(s)return{id:e.pathname+e.search,invalidating:n,route:a,params:Qe(s),url:e}}}function se(e){return Ze(e.pathname.slice(J.length)||"/")}function Ne({url:e,type:n,intent:r,delta:a}){var m,v;let s=!1;const c={from:{params:p.params,route:{id:((m=p.route)==null?void 0:m.id)??null},url:p.url},to:{params:(r==null?void 0:r.params)??null,route:{id:((v=r==null?void 0:r.route)==null?void 0:v.id)??null},url:e},willUnload:!r,type:n};a!==void 0&&(c.delta=a);const g={...c,cancel:()=>{s=!0}};return P||w.before_navigate.forEach(y=>y(g)),s?null:c}async function ce({url:e,scroll:n,keepfocus:r,redirect_chain:a,details:s,type:c,delta:g,nav_token:m={},accepted:v,blocked:y}){var x,D,E;const R=W(e,!1),L=Ne({url:e,type:c,delta:g,intent:R});if(!L){y();return}const I=j;v(),P=!0,N&&V.navigating.set(L),ne=m;let _=R&&await he(R);if(!_){if(_e(e,J))return await B(e);_=await Te(e,{id:null},await X(new Error(`Not found: ${e.pathname}`),{url:e,params:{},route:{id:null}}),404)}if(e=(R==null?void 0:R.url)||e,ne!==m)return!1;if(_.type==="redirect")if(a.length>10||a.includes(e.pathname))_=await ie({status:500,error:await X(new Error("Redirect loop"),{url:e,params:{},route:{id:null}}),url:e,route:{id:null}});else return re(new URL(_.location,e).href,{},[...a,e.pathname],m),!1;else((x=_.props.page)==null?void 0:x.status)>=400&&await V.updated.check()&&await B(e);if(S.length=0,H=!1,T=!0,ve(I),Re(I),(D=_.props.page)!=null&&D.url&&_.props.page.url.pathname!==e.pathname&&(e.pathname=(E=_.props.page)==null?void 0:E.url.pathname),s){const O=s.replaceState?0:1;if(s.state[q]=j+=O,history[s.replaceState?"replaceState":"pushState"](s.state,"",e),!s.replaceState){let A=j+1;for(;Z[A]||K[A];)delete Z[A],delete K[A],A+=1}}b=null,N?(p=_.state,_.props.page&&(_.props.page.url=e),F.$set(_.props)):Ie(_);const{activeElement:h}=document;if(await ye(),k){const O=e.hash&&document.getElementById(decodeURIComponent(e.hash.slice(1)));n?scrollTo(n.x,n.y):O?O.scrollIntoView():scrollTo(0,0)}const U=document.activeElement!==h&&document.activeElement!==document.body;!r&&!U&&Ee(),k=!0,_.props.page&&(M=_.props.page),P=!1,c==="popstate"&&Ae(j),w.after_navigate.forEach(O=>O(L)),V.navigating.set(null),T=!1}async function Te(e,n,r,a){return e.origin===location.origin&&e.pathname===location.pathname&&!C?await ie({status:a,error:r,url:e,route:n}):await B(e)}function B(e){return location.href=e.href,new Promise(()=>{})}function Ye(){let e;f.addEventListener("mousemove",c=>{const g=c.target;clearTimeout(e),e=setTimeout(()=>{a(g,2)},20)});function n(c){a(c.composedPath()[0],1)}f.addEventListener("mousedown",n),f.addEventListener("touchstart",n,{passive:!0});const r=new IntersectionObserver(c=>{for(const g of c)g.isIntersecting&&(oe(se(new URL(g.target.href))),r.unobserve(g.target))},{threshold:0});function a(c,g){const m=qe(c,f);if(!m)return;const{url:v,external:y,download:R}=we(m,J);if(y||R)return;const L=le(m);if(!L.reload)if(g<=L.preload_data){const I=W(v,!1);I&&Oe(I)}else g<=L.preload_code&&oe(se(v))}function s(){r.disconnect();for(const c of f.querySelectorAll("a")){const{url:g,external:m,download:v}=we(c,J);if(m||v)continue;const y=le(c);y.reload||(y.preload_code===Fe.viewport&&r.observe(c),y.preload_code===Fe.eager&&oe(se(g)))}}w.after_navigate.push(s),s()}function X(e,n){return e instanceof ee?e.body:t.hooks.handleError({error:e,event:n})??{message:n.route.id!=null?"Internal Error":"Not Found"}}return{after_navigate:e=>{Ce(()=>(w.after_navigate.push(e),()=>{const n=w.after_navigate.indexOf(e);w.after_navigate.splice(n,1)}))},before_navigate:e=>{Ce(()=>(w.before_navigate.push(e),()=>{const n=w.before_navigate.indexOf(e);w.before_navigate.splice(n,1)}))},disable_scroll_handling:()=>{(T||!N)&&(k=!1)},goto:(e,n={})=>re(e,n,[]),invalidate:e=>{if(typeof e=="function")S.push(e);else{const{href:n}=new URL(e,location.href);S.push(r=>r.href===n)}return ke()},invalidate_all:()=>(H=!0,ke()),preload_data:async e=>{const n=new URL(e,De(document)),r=W(n,!1);if(!r)throw new Error(`Attempted to preload a URL that does not belong to this app: ${n}`);await Oe(r)},preload_code:oe,apply_action:async e=>{if(e.type==="error"){const n=new URL(location.href),{branch:r,route:a}=p;if(!a)return;const s=await Ue(p.branch.length,r,a.errors);if(s){const c=await Y({url:n,params:p.params,branch:r.slice(0,s.idx).concat(s.node),status:e.status??500,error:e.error,route:a});p=c.state,F.$set(c.props),ye().then(Ee)}}else e.type==="redirect"?re(e.location,{invalidateAll:!0},[]):(F.$set({form:null,page:{...M,form:e.data,status:e.status}}),await ye(),F.$set({form:e.data}),e.type==="success"&&Ee())},_start_router:()=>{var e;history.scrollRestoration="manual",addEventListener("beforeunload",n=>{var a;let r=!1;if(Le(),!P){const s={from:{params:p.params,route:{id:((a=p.route)==null?void 0:a.id)??null},url:p.url},to:null,willUnload:!0,type:"leave",cancel:()=>r=!0};w.before_navigate.forEach(c=>c(s))}r?(n.preventDefault(),n.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Le()}),(e=navigator.connection)!=null&&e.saveData||Ye(),f.addEventListener("click",n=>{if(n.button||n.which!==1||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey||n.defaultPrevented)return;const r=qe(n.composedPath()[0],f);if(!r)return;const{url:a,external:s,target:c,download:g}=we(r,J);if(!a)return;if(c==="_parent"||c==="_top"){if(window.parent!==window)return}else if(c&&c!=="_self")return;const m=le(r);if(!(r instanceof SVGAElement)&&a.protocol!==location.protocol&&!(a.protocol==="https:"||a.protocol==="http:")||g)return;if(s||m.reload){Ne({url:a,type:"link"})?P=!0:n.preventDefault();return}const[y,R]=a.href.split("#");if(R!==void 0&&y===location.href.split("#")[0]){if(z=!0,ve(j),p.url=a,V.page.set({...M,url:a}),V.page.notify(),!m.replace_state)return;z=!1,n.preventDefault()}ce({url:a,scroll:m.noscroll?Q():null,keepfocus:m.keep_focus??!1,redirect_chain:[],details:{state:{},replaceState:m.replace_state??a.href===location.href},accepted:()=>n.preventDefault(),blocked:()=>n.preventDefault(),type:"link"})}),f.addEventListener("submit",n=>{if(n.defaultPrevented)return;const r=HTMLFormElement.prototype.cloneNode.call(n.target),a=n.submitter;if(((a==null?void 0:a.formMethod)||r.method)!=="get")return;const c=new URL((a==null?void 0:a.hasAttribute("formaction"))&&(a==null?void 0:a.formAction)||r.action);if(_e(c,J))return;const g=n.target,{keep_focus:m,noscroll:v,reload:y,replace_state:R}=le(g);if(y)return;n.preventDefault(),n.stopPropagation();const L=new FormData(g),I=a==null?void 0:a.getAttribute("name");I&&L.append(I,(a==null?void 0:a.getAttribute("value"))??""),c.search=new URLSearchParams(L).toString(),ce({url:c,scroll:v?Q():null,keepfocus:m??!1,redirect_chain:[],details:{state:{},replaceState:R??c.href===location.href},nav_token:{},accepted:()=>{},blocked:()=>{},type:"form"})}),addEventListener("popstate",async n=>{var r;if((r=n.state)!=null&&r[q]){if(n.state[q]===j)return;const a=K[n.state[q]];if(p.url.href.split("#")[0]===location.href.split("#")[0]){K[j]=Q(),j=n.state[q],scrollTo(a.x,a.y);return}const s=n.state[q]-j;await ce({url:new URL(location.href),scroll:a,keepfocus:!1,redirect_chain:[],details:null,accepted:()=>{j=n.state[q]},blocked:()=>{history.go(-s)},type:"popstate",delta:s})}}),addEventListener("hashchange",()=>{z&&(z=!1,history.replaceState({...history.state,[q]:++j},"",location.href))});for(const n of document.querySelectorAll("link"))n.rel==="icon"&&(n.href=n.href);addEventListener("pageshow",n=>{n.persisted&&V.navigating.set(null)})},_hydrate:async({status:e=200,error:n,node_ids:r,params:a,route:s,data:c,form:g})=>{C=!0;const m=new URL(location.href);({params:a={},route:s={id:null}}=W(m,!1)||{});let v;try{const y=r.map(async(I,_)=>{const h=c[_];return h!=null&&h.uses&&(h.uses=Be(h.uses)),de({loader:t.nodes[I],url:m,params:a,route:s,parent:async()=>{const U={};for(let x=0;x<_;x+=1)Object.assign(U,(await y[x]).data);return U},server_data_node:pe(h)})}),R=await Promise.all(y),L=u.find(({id:I})=>I===s.id);if(L){const I=L.layouts;for(let _=0;_<I.length;_++)I[_]||R.splice(_,0,void 0)}v=await Y({url:m,params:a,branch:R,status:e,error:n,form:g,route:L??null})}catch(y){if(y instanceof Ve){await B(new URL(y.location,location.href));return}v=await ie({status:y instanceof ee?y.status:500,error:await X(y,{url:m,params:a,route:s}),url:m,route:s})}Ie(v)}}}async function He(t,o){const u=new URL(t);u.pathname=rt(t.pathname),u.searchParams.append(kt,o.map(d=>d?"1":"0").join(""));const i=await fe(u.href);if(!i.ok)throw new ee(i.status,await i.json());return new Promise(async d=>{var p;const f=new Map,S=i.body.getReader(),l=new TextDecoder;function b(C){return vt(C,{Promise:N=>new Promise((k,T)=>{f.set(N,{fulfil:k,reject:T})})})}let w="";for(;;){const{done:C,value:N}=await S.read();if(C&&!w)break;for(w+=!N&&w?`
2
+ `:l.decode(N);;){const k=w.indexOf(`
3
+ `);if(k===-1)break;const T=JSON.parse(w.slice(0,k));if(w=w.slice(k+1),T.type==="redirect")return d(T);if(T.type==="data")(p=T.nodes)==null||p.forEach(P=>{(P==null?void 0:P.type)==="data"&&(P.uses=Be(P.uses),P.data=b(P.data))}),d(T);else if(T.type==="chunk"){const{id:P,data:z,error:H}=T,F=f.get(P);f.delete(P),H?F.reject(b(H)):F.fulfil(b(z))}}}})}function Be(t){return{dependencies:new Set((t==null?void 0:t.dependencies)??[]),params:new Set((t==null?void 0:t.params)??[]),parent:!!(t!=null&&t.parent),route:!!(t!=null&&t.route),url:!!(t!=null&&t.url)}}function Ee(){const t=document.querySelector("[autofocus]");if(t)t.focus();else{const o=document.body,u=o.getAttribute("tabindex");o.tabIndex=-1,o.focus({preventScroll:!0,focusVisible:!1}),u!==null?o.setAttribute("tabindex",u):o.removeAttribute("tabindex");const i=getSelection();if(i&&i.type!=="None"){const d=[];for(let f=0;f<i.rangeCount;f+=1)d.push(i.getRangeAt(f));setTimeout(()=>{if(i.rangeCount===d.length){for(let f=0;f<i.rangeCount;f+=1){const S=d[f],l=i.getRangeAt(f);if(S.commonAncestorContainer!==l.commonAncestorContainer||S.startContainer!==l.startContainer||S.endContainer!==l.endContainer||S.startOffset!==l.startOffset||S.endOffset!==l.endOffset)return}i.removeAllRanges()}})}}}async function Pt(t,o,u){const i=Rt(t,o);We({client:i}),u?await i._hydrate(u):i.goto(location.href,{replaceState:!0}),i._start_router()}export{Pt as start};
build/_app/immutable/nodes/0.79a9f441.js ADDED
@@ -0,0 +1 @@
 
 
1
+ import{S as l,i as r,s as i,C as u,D as _,E as f,F as c,g as p,d}from"../chunks/index.0d3f7c7a.js";const m=!0,y=Object.freeze(Object.defineProperty({__proto__:null,prerender:m},Symbol.toStringTag,{value:"Module"}));function $(n){let s;const a=n[1].default,t=u(a,n,n[0],null);return{c(){t&&t.c()},l(e){t&&t.l(e)},m(e,o){t&&t.m(e,o),s=!0},p(e,[o]){t&&t.p&&(!s||o&1)&&_(t,a,e,e[0],s?c(a,e[0],o,null):f(e[0]),null)},i(e){s||(p(t,e),s=!0)},o(e){d(t,e),s=!1},d(e){t&&t.d(e)}}}function g(n,s,a){let{$$slots:t={},$$scope:e}=s;return n.$$set=o=>{"$$scope"in o&&a(0,e=o.$$scope)},[e,t]}class S extends l{constructor(s){super(),r(this,s,g,$,i,{})}}export{S as component,y as universal};
build/_app/immutable/nodes/1.045d0063.js ADDED
@@ -0,0 +1 @@
 
 
1
+ import{S as x,i as H,s as S,k as u,q as h,a as g,l as d,m as v,r as b,h as m,c as k,b as _,G as E,u as $,H as q,I as y}from"../chunks/index.0d3f7c7a.js";import{p as C}from"../chunks/stores.fe367015.js";function G(l){var f;let a,t=l[0].status+"",r,o,n,p=((f=l[0].error)==null?void 0:f.message)+"",c;return{c(){a=u("h1"),r=h(t),o=g(),n=u("p"),c=h(p)},l(e){a=d(e,"H1",{});var s=v(a);r=b(s,t),s.forEach(m),o=k(e),n=d(e,"P",{});var i=v(n);c=b(i,p),i.forEach(m)},m(e,s){_(e,a,s),E(a,r),_(e,o,s),_(e,n,s),E(n,c)},p(e,[s]){var i;s&1&&t!==(t=e[0].status+"")&&$(r,t),s&1&&p!==(p=((i=e[0].error)==null?void 0:i.message)+"")&&$(c,p)},i:q,o:q,d(e){e&&m(a),e&&m(o),e&&m(n)}}}function I(l,a,t){let r;return y(l,C,o=>t(0,r=o)),[r]}class w extends x{constructor(a){super(),H(this,a,I,G,S,{})}}export{w as component};
build/_app/immutable/nodes/2.884f839f.js ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ import{S as Q,i as X,s as Y,k as o,a as z,q as I,l as c,m as n,h as a,c as M,r as D,J as W,n as e,b as L,G as s,H as O,I as Z,o as $,K as tt,L as et,u as st}from"../chunks/index.0d3f7c7a.js";import{p as lt}from"../chunks/stores.fe367015.js";function R(V){let t,l,h,w,f,m,u,x,r,A,i,v,E,d,S,k,C;return{c(){t=o("div"),l=o("iframe"),w=z(),f=o("div"),m=z(),u=o("div"),x=z(),r=o("div"),A=z(),i=o("div"),v=z(),E=o("div"),d=o("p"),S=I("SPACE to jump. "),k=o("a"),C=I("Full shaders game demo"),this.h()},l(b){t=c(b,"DIV",{class:!0});var p=n(t);l=c(p,"IFRAME",{src:!0,frameborder:!0,title:!0,height:!0,width:!0,class:!0}),n(l).forEach(a),w=M(p),f=c(p,"DIV",{class:!0}),n(f).forEach(a),m=M(p),u=c(p,"DIV",{class:!0}),n(u).forEach(a),x=M(p),r=c(p,"DIV",{class:!0}),n(r).forEach(a),A=M(p),i=c(p,"DIV",{class:!0}),n(i).forEach(a),p.forEach(a),v=M(b),E=c(b,"DIV",{class:!0});var j=n(E);d=c(j,"P",{});var G=n(d);S=D(G,"SPACE to jump. "),k=c(G,"A",{href:!0,target:!0,class:!0});var H=n(k);C=D(H,"Full shaders game demo"),H.forEach(a),G.forEach(a),j.forEach(a),this.h()},h(){W(l.src,h="smg/index.html")||e(l,"src",h),e(l,"frameborder","0"),e(l,"title","Spaceship Drift"),e(l,"height","512"),e(l,"width","768"),e(l,"class",""),e(f,"class","h-[3px] bg-[#0C0F19] w-[3px] z-10 absolute -top-[3px] -left-[3px]"),e(u,"class","h-[3px] bg-[#0C0F19] w-[3px] z-10 absolute -bottom-[3px] -left-[3px]"),e(r,"class","h-[3px] bg-[#0C0F19] w-[3px] z-10 absolute -top-[3px] -right-[3px]"),e(i,"class","h-[3px] bg-[#0C0F19] w-[3px] z-10 absolute -bottom-[3px] -right-[3px]"),e(t,"class","relative mt-6 border-slate-800 border-[3px]"),e(k,"href","https://x.com/HugoDuprez/status/1712093324528541831?s=20"),e(k,"target","_blank"),e(k,"class","underline"),e(E,"class","flex flex-row justify-center items-center text-[9px] mt-4 text-slate-500")},m(b,p){L(b,t,p),s(t,l),s(t,w),s(t,f),s(t,m),s(t,u),s(t,x),s(t,r),s(t,A),s(t,i),L(b,v,p),L(b,E,p),s(E,d),s(d,S),s(d,k),s(k,C)},d(b){b&&a(t),b&&a(v),b&&a(E)}}}function U(V){let t,l,h,w,f,m,u=V[1]?"Copied!":"Copy the link for later",x,r,A;return{c(){t=o("div"),l=o("p"),h=I("Looks like you're on mobile! Please visit on your laptop."),w=z(),f=o("button"),m=o("p"),x=I(u),this.h()},l(i){t=c(i,"DIV",{class:!0});var v=n(t);l=c(v,"P",{class:!0});var E=n(l);h=D(E,"Looks like you're on mobile! Please visit on your laptop."),E.forEach(a),w=M(v),f=c(v,"BUTTON",{class:!0});var d=n(f);m=c(d,"P",{class:!0});var S=n(m);x=D(S,u),S.forEach(a),d.forEach(a),v.forEach(a),this.h()},h(){e(l,"class","text-xs text-slate-500 mt-6"),e(m,"class","mt-1"),e(f,"class","flex flex-row justify-center items-center px-3 py-5 text-xs w-full bg-slate-800 mt-6"),e(t,"class","flex flex-col justify-center items-center mt-10 text-center")},m(i,v){L(i,t,v),s(t,l),s(l,h),s(t,w),s(t,f),s(f,m),s(m,x),r||(A=tt(f,"click",et(V[2])),r=!0)},p(i,v){v&2&&u!==(u=i[1]?"Copied!":"Copy the link for later")&&st(x,u)},d(i){i&&a(t),r=!1,A()}}}function at(V){let t,l,h,w,f,m,u,x,r,A,i,v,E,d,S,k,C,b,p,j,G,H,g=!V[0]&&R(),_=V[0]&&U(V);return{c(){t=o("div"),l=o("div"),h=o("img"),f=z(),g&&g.c(),m=z(),_&&_.c(),u=z(),x=o("div"),r=o("p"),A=I("Made by "),i=o("a"),v=I("Hugo"),E=I(`
2
+ with
3
+ `),d=o("a"),S=I("Godot"),k=I(`,
4
+ `),C=o("a"),b=I("Svelte"),p=I(`, and
5
+ `),j=o("a"),G=I("Kenney assets"),this.h()},l(P){t=c(P,"DIV",{class:!0});var y=n(t);l=c(y,"DIV",{class:!0});var T=n(l);h=c(T,"IMG",{src:!0,alt:!0,class:!0}),T.forEach(a),f=M(y),g&&g.l(y),m=M(y),_&&_.l(y),u=M(y),x=c(y,"DIV",{class:!0});var q=n(x);r=c(q,"P",{});var F=n(r);A=D(F,"Made by "),i=c(F,"A",{href:!0,target:!0,class:!0});var K=n(i);v=D(K,"Hugo"),K.forEach(a),E=D(F,`
6
+ with
7
+ `),d=c(F,"A",{href:!0,target:!0,class:!0});var B=n(d);S=D(B,"Godot"),B.forEach(a),k=D(F,`,
8
+ `),C=c(F,"A",{href:!0,target:!0,class:!0});var J=n(C);b=D(J,"Svelte"),J.forEach(a),p=D(F,`, and
9
+ `),j=c(F,"A",{href:!0,target:!0,class:!0});var N=n(j);G=D(N,"Kenney assets"),N.forEach(a),F.forEach(a),q.forEach(a),y.forEach(a),this.h()},h(){W(h.src,w="images/png_title.png")||e(h,"src",w),e(h,"alt","Game title"),e(h,"class","h-48"),e(l,"class","flex flex-col justify-center items-center space-y-4 text-center sm:mt-20 mt-12"),e(i,"href","https://www.hugoduprez.com/"),e(i,"target","_blank"),e(i,"class","underline"),e(d,"href","https://godotengine.org/"),e(d,"target","_blank"),e(d,"class","underline"),e(C,"href","https://svelte.dev/"),e(C,"target","_blank"),e(C,"class","underline"),e(j,"href","https://www.kenney.nl/tools"),e(j,"target","_blank"),e(j,"class","underline"),e(x,"class",H="flex flex-row justify-center items-center text-center "+(V[0]?"mt-20":"fixed bottom-6")+" text-[9px] text-slate-500"),e(t,"class","flex flex-col justify-center text-slate-100 font-Hellovetica items-center p-4 w-full")},m(P,y){L(P,t,y),s(t,l),s(l,h),s(t,f),g&&g.m(t,null),s(t,m),_&&_.m(t,null),s(t,u),s(t,x),s(x,r),s(r,A),s(r,i),s(i,v),s(r,E),s(r,d),s(d,S),s(r,k),s(r,C),s(C,b),s(r,p),s(r,j),s(j,G)},p(P,[y]){P[0]?g&&(g.d(1),g=null):g||(g=R(),g.c(),g.m(t,m)),P[0]?_?_.p(P,y):(_=U(P),_.c(),_.m(t,u)):_&&(_.d(1),_=null),y&1&&H!==(H="flex flex-row justify-center items-center text-center "+(P[0]?"mt-20":"fixed bottom-6")+" text-[9px] text-slate-500")&&e(x,"class",H)},i:O,o:O,d(P){P&&a(t),g&&g.d(),_&&_.d()}}}function rt(V,t,l){let h;Z(V,lt,u=>l(3,h=u));let w=!1,f=!1;$(()=>{window.innerWidth<768&&l(0,w=!0)});function m(){navigator.clipboard.writeText(h.url.toString()),l(1,f=!0)}return[w,f,m]}class ct extends Q{constructor(t){super(),X(this,t,rt,at,Y,{})}}export{ct as component};
build/_app/version.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":"1697963191981"}
build/favicon.png ADDED
build/fonts/hellovetica.ttf ADDED
Binary file (8.74 kB). View file
 
build/images/png_title.png ADDED
build/images/sky.png ADDED
build/index.html ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Spaceship freeride</title>
5
+ <meta charset="utf-8" />
6
+ <link rel="icon" href="./favicon.png" />
7
+ <meta name="viewport" content="width=device-width" />
8
+ <script async src="https://cdn.splitbee.io/sb.js"></script>
9
+ <meta http-equiv="content-security-policy" content="">
10
+ <link href="./_app/immutable/assets/0.128f6419.css" rel="stylesheet">
11
+ <link rel="modulepreload" href="./_app/immutable/entry/start.16f78682.js">
12
+ <link rel="modulepreload" href="./_app/immutable/chunks/index.0d3f7c7a.js">
13
+ <link rel="modulepreload" href="./_app/immutable/chunks/singletons.d3eb6a89.js">
14
+ <link rel="modulepreload" href="./_app/immutable/entry/app.2d02feb4.js">
15
+ <link rel="modulepreload" href="./_app/immutable/nodes/0.79a9f441.js">
16
+ <link rel="modulepreload" href="./_app/immutable/nodes/2.884f839f.js">
17
+ <link rel="modulepreload" href="./_app/immutable/chunks/stores.fe367015.js">
18
+ </head>
19
+ <body data-sveltekit-preload-data="hover" class="bg-[#0C0F19] overflow-x-hidden bg-cover" style="background-image: url('images/sky.png');">
20
+ <div style="display: contents">
21
+
22
+
23
+
24
+ <div class="flex flex-col justify-center text-slate-100 font-Hellovetica items-center p-4 w-full">
25
+ <div class="flex flex-col justify-center items-center space-y-4 text-center sm:mt-20 mt-12"><img src="images/png_title.png" alt="Game title" class="h-48"></div>
26
+
27
+ <div class="relative mt-6 border-slate-800 border-[3px]">
28
+ <iframe src="smg/index.html" frameborder="0" title="Spaceship Drift" height="512" width="768" class=""></iframe>
29
+
30
+ <div class="h-[3px] bg-[#0C0F19] w-[3px] z-10 absolute -top-[3px] -left-[3px]"></div>
31
+ <div class="h-[3px] bg-[#0C0F19] w-[3px] z-10 absolute -bottom-[3px] -left-[3px]"></div>
32
+ <div class="h-[3px] bg-[#0C0F19] w-[3px] z-10 absolute -top-[3px] -right-[3px]"></div>
33
+ <div class="h-[3px] bg-[#0C0F19] w-[3px] z-10 absolute -bottom-[3px] -right-[3px]"></div></div>
34
+
35
+
36
+ <div class="flex flex-row justify-center items-center text-[9px] mt-4 text-slate-500"><p>SPACE to jump. <a href="https://x.com/HugoDuprez/status/1712093324528541831?s=20" target="_blank" class="underline">Full shaders game demo</a></p></div>
37
+
38
+
39
+
40
+
41
+ <div class="flex flex-row justify-center items-center text-center fixed bottom-6 text-[9px] text-slate-500"><p>Made by <a href="https://www.hugoduprez.com/" target="_blank" class="underline">Hugo</a>
42
+ with
43
+ <a href="https://godotengine.org/" target="_blank" class="underline">Godot</a>,
44
+ <a href="https://svelte.dev/" target="_blank" class="underline">Svelte</a>, and
45
+ <a href="https://www.kenney.nl/tools" target="_blank" class="underline">Kenney assets</a></p></div></div>
46
+
47
+
48
+
49
+ <script>
50
+ {
51
+ __sveltekit_pm3ou1 = {
52
+ base: new URL(".", location).pathname.slice(0, -1),
53
+ env: {}
54
+ };
55
+
56
+ const element = document.currentScript.parentElement;
57
+
58
+ const data = [null,null];
59
+
60
+ Promise.all([
61
+ import("./_app/immutable/entry/start.16f78682.js"),
62
+ import("./_app/immutable/entry/app.2d02feb4.js")
63
+ ]).then(([kit, app]) => {
64
+ kit.start(app, element, {
65
+ node_ids: [0, 2],
66
+ data,
67
+ form: null,
68
+ error: null
69
+ });
70
+ });
71
+ }
72
+ </script>
73
+ </div>
74
+ </body>
75
+ </html>
build/smg/coi-serviceworker.min.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ /*! coi-serviceworker v0.1.7 - Guido Zuidhof and contributors, licensed under MIT */
2
+ let coepCredentialless=!1;"undefined"==typeof window?(self.addEventListener("install",(()=>self.skipWaiting())),self.addEventListener("activate",(e=>e.waitUntil(self.clients.claim()))),self.addEventListener("message",(e=>{e.data&&("deregister"===e.data.type?self.registration.unregister().then((()=>self.clients.matchAll())).then((e=>{e.forEach((e=>e.navigate(e.url)))})):"coepCredentialless"===e.data.type&&(coepCredentialless=e.data.value))})),self.addEventListener("fetch",(function(e){const r=e.request;if("only-if-cached"===r.cache&&"same-origin"!==r.mode)return;const s=coepCredentialless&&"no-cors"===r.mode?new Request(r,{credentials:"omit"}):r;e.respondWith(fetch(s).then((e=>{if(0===e.status)return e;const r=new Headers(e.headers);return r.set("Cross-Origin-Embedder-Policy",coepCredentialless?"credentialless":"require-corp"),coepCredentialless||r.set("Cross-Origin-Resource-Policy","cross-origin"),r.set("Cross-Origin-Opener-Policy","same-origin"),new Response(e.body,{status:e.status,statusText:e.statusText,headers:r})})).catch((e=>console.error(e))))}))):(()=>{const e={shouldRegister:()=>!0,shouldDeregister:()=>!1,coepCredentialless:()=>(window.chrome!==undefined||window.netscape!==undefined),doReload:()=>window.location.reload(),quiet:!1,...window.coi},r=navigator;r.serviceWorker&&r.serviceWorker.controller&&(r.serviceWorker.controller.postMessage({type:"coepCredentialless",value:e.coepCredentialless()}),e.shouldDeregister()&&r.serviceWorker.controller.postMessage({type:"deregister"})),!1===window.crossOriginIsolated&&e.shouldRegister()&&(window.isSecureContext?r.serviceWorker&&r.serviceWorker.register(window.document.currentScript.src).then((s=>{!e.quiet&&console.log("COOP/COEP Service Worker registered",s.scope),s.addEventListener("updatefound",(()=>{!e.quiet&&console.log("Reloading page to make use of updated COOP/COEP Service Worker."),e.doReload()})),s.active&&!r.serviceWorker.controller&&(!e.quiet&&console.log("Reloading page to make use of COOP/COEP Service Worker."),e.doReload())}),(r=>{!e.quiet&&console.error("COOP/COEP Service Worker failed to register:",r)})):!e.quiet&&console.log("COOP/COEP Service Worker not registered, a secure context is required."))})();
build/smg/index.apple-touch-icon.png ADDED
build/smg/index.audio.worklet.js ADDED
@@ -0,0 +1,213 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**************************************************************************/
2
+ /* audio.worklet.js */
3
+ /**************************************************************************/
4
+ /* This file is part of: */
5
+ /* GODOT ENGINE */
6
+ /* https://godotengine.org */
7
+ /**************************************************************************/
8
+ /* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
9
+ /* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
10
+ /* */
11
+ /* Permission is hereby granted, free of charge, to any person obtaining */
12
+ /* a copy of this software and associated documentation files (the */
13
+ /* "Software"), to deal in the Software without restriction, including */
14
+ /* without limitation the rights to use, copy, modify, merge, publish, */
15
+ /* distribute, sublicense, and/or sell copies of the Software, and to */
16
+ /* permit persons to whom the Software is furnished to do so, subject to */
17
+ /* the following conditions: */
18
+ /* */
19
+ /* The above copyright notice and this permission notice shall be */
20
+ /* included in all copies or substantial portions of the Software. */
21
+ /* */
22
+ /* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
23
+ /* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
24
+ /* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
25
+ /* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
26
+ /* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
27
+ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
28
+ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
29
+ /**************************************************************************/
30
+
31
+ class RingBuffer {
32
+ constructor(p_buffer, p_state, p_threads) {
33
+ this.buffer = p_buffer;
34
+ this.avail = p_state;
35
+ this.threads = p_threads;
36
+ this.rpos = 0;
37
+ this.wpos = 0;
38
+ }
39
+
40
+ data_left() {
41
+ return this.threads ? Atomics.load(this.avail, 0) : this.avail;
42
+ }
43
+
44
+ space_left() {
45
+ return this.buffer.length - this.data_left();
46
+ }
47
+
48
+ read(output) {
49
+ const size = this.buffer.length;
50
+ let from = 0;
51
+ let to_write = output.length;
52
+ if (this.rpos + to_write > size) {
53
+ const high = size - this.rpos;
54
+ output.set(this.buffer.subarray(this.rpos, size));
55
+ from = high;
56
+ to_write -= high;
57
+ this.rpos = 0;
58
+ }
59
+ if (to_write) {
60
+ output.set(this.buffer.subarray(this.rpos, this.rpos + to_write), from);
61
+ }
62
+ this.rpos += to_write;
63
+ if (this.threads) {
64
+ Atomics.add(this.avail, 0, -output.length);
65
+ Atomics.notify(this.avail, 0);
66
+ } else {
67
+ this.avail -= output.length;
68
+ }
69
+ }
70
+
71
+ write(p_buffer) {
72
+ const to_write = p_buffer.length;
73
+ const mw = this.buffer.length - this.wpos;
74
+ if (mw >= to_write) {
75
+ this.buffer.set(p_buffer, this.wpos);
76
+ this.wpos += to_write;
77
+ if (mw === to_write) {
78
+ this.wpos = 0;
79
+ }
80
+ } else {
81
+ const high = p_buffer.subarray(0, mw);
82
+ const low = p_buffer.subarray(mw);
83
+ this.buffer.set(high, this.wpos);
84
+ this.buffer.set(low);
85
+ this.wpos = low.length;
86
+ }
87
+ if (this.threads) {
88
+ Atomics.add(this.avail, 0, to_write);
89
+ Atomics.notify(this.avail, 0);
90
+ } else {
91
+ this.avail += to_write;
92
+ }
93
+ }
94
+ }
95
+
96
+ class GodotProcessor extends AudioWorkletProcessor {
97
+ constructor() {
98
+ super();
99
+ this.threads = false;
100
+ this.running = true;
101
+ this.lock = null;
102
+ this.notifier = null;
103
+ this.output = null;
104
+ this.output_buffer = new Float32Array();
105
+ this.input = null;
106
+ this.input_buffer = new Float32Array();
107
+ this.port.onmessage = (event) => {
108
+ const cmd = event.data['cmd'];
109
+ const data = event.data['data'];
110
+ this.parse_message(cmd, data);
111
+ };
112
+ }
113
+
114
+ process_notify() {
115
+ if (this.notifier) {
116
+ Atomics.add(this.notifier, 0, 1);
117
+ Atomics.notify(this.notifier, 0);
118
+ }
119
+ }
120
+
121
+ parse_message(p_cmd, p_data) {
122
+ if (p_cmd === 'start' && p_data) {
123
+ const state = p_data[0];
124
+ let idx = 0;
125
+ this.threads = true;
126
+ this.lock = state.subarray(idx, ++idx);
127
+ this.notifier = state.subarray(idx, ++idx);
128
+ const avail_in = state.subarray(idx, ++idx);
129
+ const avail_out = state.subarray(idx, ++idx);
130
+ this.input = new RingBuffer(p_data[1], avail_in, true);
131
+ this.output = new RingBuffer(p_data[2], avail_out, true);
132
+ } else if (p_cmd === 'stop') {
133
+ this.running = false;
134
+ this.output = null;
135
+ this.input = null;
136
+ this.lock = null;
137
+ this.notifier = null;
138
+ } else if (p_cmd === 'start_nothreads') {
139
+ this.output = new RingBuffer(p_data[0], p_data[0].length, false);
140
+ } else if (p_cmd === 'chunk') {
141
+ this.output.write(p_data);
142
+ }
143
+ }
144
+
145
+ static array_has_data(arr) {
146
+ return arr.length && arr[0].length && arr[0][0].length;
147
+ }
148
+
149
+ process(inputs, outputs, parameters) {
150
+ if (!this.running) {
151
+ return false; // Stop processing.
152
+ }
153
+ if (this.output === null) {
154
+ return true; // Not ready yet, keep processing.
155
+ }
156
+ const process_input = GodotProcessor.array_has_data(inputs);
157
+ if (process_input) {
158
+ const input = inputs[0];
159
+ const chunk = input[0].length * input.length;
160
+ if (this.input_buffer.length !== chunk) {
161
+ this.input_buffer = new Float32Array(chunk);
162
+ }
163
+ if (!this.threads) {
164
+ GodotProcessor.write_input(this.input_buffer, input);
165
+ this.port.postMessage({ 'cmd': 'input', 'data': this.input_buffer });
166
+ } else if (this.input.space_left() >= chunk) {
167
+ GodotProcessor.write_input(this.input_buffer, input);
168
+ this.input.write(this.input_buffer);
169
+ } else {
170
+ this.port.postMessage('Input buffer is full! Skipping input frame.');
171
+ }
172
+ }
173
+ const process_output = GodotProcessor.array_has_data(outputs);
174
+ if (process_output) {
175
+ const output = outputs[0];
176
+ const chunk = output[0].length * output.length;
177
+ if (this.output_buffer.length !== chunk) {
178
+ this.output_buffer = new Float32Array(chunk);
179
+ }
180
+ if (this.output.data_left() >= chunk) {
181
+ this.output.read(this.output_buffer);
182
+ GodotProcessor.write_output(output, this.output_buffer);
183
+ if (!this.threads) {
184
+ this.port.postMessage({ 'cmd': 'read', 'data': chunk });
185
+ }
186
+ } else {
187
+ this.port.postMessage('Output buffer has not enough frames! Skipping output frame.');
188
+ }
189
+ }
190
+ this.process_notify();
191
+ return true;
192
+ }
193
+
194
+ static write_output(dest, source) {
195
+ const channels = dest.length;
196
+ for (let ch = 0; ch < channels; ch++) {
197
+ for (let sample = 0; sample < dest[ch].length; sample++) {
198
+ dest[ch][sample] = source[sample * channels + ch];
199
+ }
200
+ }
201
+ }
202
+
203
+ static write_input(dest, source) {
204
+ const channels = source.length;
205
+ for (let ch = 0; ch < channels; ch++) {
206
+ for (let sample = 0; sample < source[ch].length; sample++) {
207
+ dest[sample * channels + ch] = source[ch][sample];
208
+ }
209
+ }
210
+ }
211
+ }
212
+
213
+ registerProcessor('godot-processor', GodotProcessor);
build/smg/index.html ADDED
@@ -0,0 +1,255 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, user-scalable=no">
6
+ <title>Super Godot Galaxy</title>
7
+ <style>
8
+ body {
9
+ touch-action: none;
10
+ margin: 0;
11
+ border: 0 none;
12
+ padding: 0;
13
+ text-align: center;
14
+ background-color: black;
15
+ }
16
+
17
+ #canvas {
18
+ display: block;
19
+ margin: 0;
20
+ color: white;
21
+ }
22
+
23
+ #canvas:focus {
24
+ outline: none;
25
+ }
26
+
27
+ .godot {
28
+ font-family: 'Noto Sans', 'Droid Sans', Arial, sans-serif;
29
+ color: #e0e0e0;
30
+ background-color: #3b3943;
31
+ background-image: linear-gradient(to bottom, #403e48, #35333c);
32
+ border: 1px solid #45434e;
33
+ box-shadow: 0 0 1px 1px #2f2d35;
34
+ }
35
+
36
+ /* Status display */
37
+
38
+ #status {
39
+ position: absolute;
40
+ left: 0;
41
+ top: 0;
42
+ right: 0;
43
+ bottom: 0;
44
+ display: flex;
45
+ justify-content: center;
46
+ align-items: center;
47
+ /* don't consume click events - make children visible explicitly */
48
+ visibility: hidden;
49
+ }
50
+
51
+ #status-progress {
52
+ width: 366px;
53
+ height: 7px;
54
+ background-color: #38363A;
55
+ border: 1px solid #444246;
56
+ padding: 1px;
57
+ box-shadow: 0 0 2px 1px #1B1C22;
58
+ border-radius: 2px;
59
+ visibility: visible;
60
+ }
61
+
62
+ @media only screen and (orientation:portrait) {
63
+ #status-progress {
64
+ width: 61.8%;
65
+ }
66
+ }
67
+
68
+ #status-progress-inner {
69
+ height: 100%;
70
+ width: 0;
71
+ box-sizing: border-box;
72
+ transition: width 0.5s linear;
73
+ background-color: #202020;
74
+ border: 1px solid #222223;
75
+ box-shadow: 0 0 1px 1px #27282E;
76
+ border-radius: 3px;
77
+ }
78
+
79
+ #status-indeterminate {
80
+ height: 42px;
81
+ visibility: visible;
82
+ position: relative;
83
+ }
84
+
85
+ #status-indeterminate > div {
86
+ width: 4.5px;
87
+ height: 0;
88
+ border-style: solid;
89
+ border-width: 9px 3px 0 3px;
90
+ border-color: #2b2b2b transparent transparent transparent;
91
+ transform-origin: center 21px;
92
+ position: absolute;
93
+ }
94
+
95
+ #status-indeterminate > div:nth-child(1) { transform: rotate( 22.5deg); }
96
+ #status-indeterminate > div:nth-child(2) { transform: rotate( 67.5deg); }
97
+ #status-indeterminate > div:nth-child(3) { transform: rotate(112.5deg); }
98
+ #status-indeterminate > div:nth-child(4) { transform: rotate(157.5deg); }
99
+ #status-indeterminate > div:nth-child(5) { transform: rotate(202.5deg); }
100
+ #status-indeterminate > div:nth-child(6) { transform: rotate(247.5deg); }
101
+ #status-indeterminate > div:nth-child(7) { transform: rotate(292.5deg); }
102
+ #status-indeterminate > div:nth-child(8) { transform: rotate(337.5deg); }
103
+
104
+ #status-notice {
105
+ margin: 0 100px;
106
+ line-height: 1.3;
107
+ visibility: visible;
108
+ padding: 4px 6px;
109
+ visibility: visible;
110
+ }
111
+ </style>
112
+ <link id='-gd-engine-icon' rel='icon' type='image/png' href='index.icon.png' />
113
+ <link rel='apple-touch-icon' href='index.apple-touch-icon.png'/>
114
+
115
+ </head>
116
+ <body>
117
+ <canvas id="canvas">
118
+ HTML5 canvas appears to be unsupported in the current browser.<br >
119
+ Please try updating or use a different browser.
120
+ </canvas>
121
+ <div id="status">
122
+ <div id="status-progress" style="display: none;" oncontextmenu="event.preventDefault();">
123
+ <div id ="status-progress-inner"></div>
124
+ </div>
125
+ <div id="status-indeterminate" style="display: none;" oncontextmenu="event.preventDefault();">
126
+ <div></div>
127
+ <div></div>
128
+ <div></div>
129
+ <div></div>
130
+ <div></div>
131
+ <div></div>
132
+ <div></div>
133
+ <div></div>
134
+ </div>
135
+ <div id="status-notice" class="godot" style="display: none;"></div>
136
+ </div>
137
+
138
+ <script>
139
+ if (!window.SharedArrayBuffer) {
140
+ document.getElementById('status').style.display = 'none';
141
+ setTimeout(() => document.getElementById('status').style.display = '', 1500);
142
+ }
143
+ </script>
144
+ <script src="coi-serviceworker.min.js"></script>
145
+ <script src="index.js"></script>
146
+ <script>
147
+ const GODOT_CONFIG = {"args":[],"canvasResizePolicy":2,"executable":"index","experimentalVK":false,"fileSizes":{"index.pck":52711824,"index.wasm":52315256},"focusCanvas":true,"gdextensionLibs":[]};
148
+ const engine = new Engine(GODOT_CONFIG);
149
+
150
+ (function () {
151
+ const INDETERMINATE_STATUS_STEP_MS = 100;
152
+ const statusProgress = document.getElementById('status-progress');
153
+ const statusProgressInner = document.getElementById('status-progress-inner');
154
+ const statusIndeterminate = document.getElementById('status-indeterminate');
155
+ const statusNotice = document.getElementById('status-notice');
156
+
157
+ let initializing = true;
158
+ let statusMode = 'hidden';
159
+
160
+ let animationCallbacks = [];
161
+ function animate(time) {
162
+ animationCallbacks.forEach((callback) => callback(time));
163
+ requestAnimationFrame(animate);
164
+ }
165
+ requestAnimationFrame(animate);
166
+
167
+ function animateStatusIndeterminate(ms) {
168
+ const i = Math.floor((ms / INDETERMINATE_STATUS_STEP_MS) % 8);
169
+ if (statusIndeterminate.children[i].style.borderTopColor === '') {
170
+ Array.prototype.slice.call(statusIndeterminate.children).forEach((child) => {
171
+ child.style.borderTopColor = '';
172
+ });
173
+ statusIndeterminate.children[i].style.borderTopColor = '#dfdfdf';
174
+ }
175
+ }
176
+
177
+ function setStatusMode(mode) {
178
+ if (statusMode === mode || !initializing) {
179
+ return;
180
+ }
181
+ [statusProgress, statusIndeterminate, statusNotice].forEach((elem) => {
182
+ elem.style.display = 'none';
183
+ });
184
+ animationCallbacks = animationCallbacks.filter(function (value) {
185
+ return (value !== animateStatusIndeterminate);
186
+ });
187
+ switch (mode) {
188
+ case 'progress':
189
+ statusProgress.style.display = 'block';
190
+ break;
191
+ case 'indeterminate':
192
+ statusIndeterminate.style.display = 'block';
193
+ animationCallbacks.push(animateStatusIndeterminate);
194
+ break;
195
+ case 'notice':
196
+ statusNotice.style.display = 'block';
197
+ break;
198
+ case 'hidden':
199
+ break;
200
+ default:
201
+ throw new Error('Invalid status mode');
202
+ }
203
+ statusMode = mode;
204
+ }
205
+
206
+ function setStatusNotice(text) {
207
+ while (statusNotice.lastChild) {
208
+ statusNotice.removeChild(statusNotice.lastChild);
209
+ }
210
+ const lines = text.split('\n');
211
+ lines.forEach((line) => {
212
+ statusNotice.appendChild(document.createTextNode(line));
213
+ statusNotice.appendChild(document.createElement('br'));
214
+ });
215
+ }
216
+
217
+ function displayFailureNotice(err) {
218
+ const msg = err.message || err;
219
+ console.error(msg);
220
+ setStatusNotice(msg);
221
+ setStatusMode('notice');
222
+ initializing = false;
223
+ }
224
+
225
+ const missing = Engine.getMissingFeatures();
226
+ if (missing.length !== 0) {
227
+ const missingMsg = 'Error\nThe following features required to run Godot projects on the Web are missing:\n';
228
+ displayFailureNotice(missingMsg + missing.join('\n'));
229
+ } else {
230
+ setStatusMode('indeterminate');
231
+ engine.startGame({
232
+ 'onProgress': function (current, total) {
233
+ if (total > 0) {
234
+ statusProgressInner.style.width = `${(current / total) * 100}%`;
235
+ setStatusMode('progress');
236
+ if (current === total) {
237
+ // wait for progress bar animation
238
+ setTimeout(() => {
239
+ setStatusMode('indeterminate');
240
+ }, 500);
241
+ }
242
+ } else {
243
+ setStatusMode('indeterminate');
244
+ }
245
+ },
246
+ }).then(() => {
247
+ setStatusMode('hidden');
248
+ initializing = false;
249
+ }, displayFailureNotice);
250
+ }
251
+ }());
252
+ </script>
253
+ </body>
254
+ </html>
255
+
build/smg/index.icon.png ADDED
build/smg/index.js ADDED
The diff for this file is too large to render. See raw diff
 
build/smg/index.pck ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1d32481932a4d11542b0a462dc130f3eda8b97d087fec1a4a2f7e1b4d618c768
3
+ size 52711824
build/smg/index.png ADDED
build/smg/index.wasm ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a6316e674cfaa06e2de92ded1d338335e61554c81f485127cd6d86cd90c95a2d
3
+ size 52315256
build/smg/index.worker.js ADDED
@@ -0,0 +1,164 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * @license
3
+ * Copyright 2015 The Emscripten Authors
4
+ * SPDX-License-Identifier: MIT
5
+ */
6
+
7
+ // Pthread Web Worker startup routine:
8
+ // This is the entry point file that is loaded first by each Web Worker
9
+ // that executes pthreads on the Emscripten application.
10
+
11
+ 'use strict';
12
+
13
+ var Module = {};
14
+
15
+ // Thread-local guard variable for one-time init of the JS state
16
+ var initializedJS = false;
17
+
18
+ // Proxying queues that were notified before the thread started and need to be
19
+ // executed as part of startup.
20
+ var pendingNotifiedProxyingQueues = [];
21
+
22
+ function assert(condition, text) {
23
+ if (!condition) abort('Assertion failed: ' + text);
24
+ }
25
+
26
+ function threadPrintErr() {
27
+ var text = Array.prototype.slice.call(arguments).join(' ');
28
+ console.error(text);
29
+ }
30
+ function threadAlert() {
31
+ var text = Array.prototype.slice.call(arguments).join(' ');
32
+ postMessage({cmd: 'alert', text: text, threadId: Module['_pthread_self']()});
33
+ }
34
+ // We don't need out() for now, but may need to add it if we want to use it
35
+ // here. Or, if this code all moves into the main JS, that problem will go
36
+ // away. (For now, adding it here increases code size for no benefit.)
37
+ var out = () => { throw 'out() is not defined in worker.js.'; }
38
+ var err = threadPrintErr;
39
+ self.alert = threadAlert;
40
+
41
+ Module['instantiateWasm'] = (info, receiveInstance) => {
42
+ // Instantiate from the module posted from the main thread.
43
+ // We can just use sync instantiation in the worker.
44
+ var instance = new WebAssembly.Instance(Module['wasmModule'], info);
45
+ // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193,
46
+ // the above line no longer optimizes out down to the following line.
47
+ // When the regression is fixed, we can remove this if/else.
48
+ receiveInstance(instance);
49
+ // We don't need the module anymore; new threads will be spawned from the main thread.
50
+ Module['wasmModule'] = null;
51
+ return instance.exports;
52
+ }
53
+
54
+ self.onmessage = (e) => {
55
+ try {
56
+ if (e.data.cmd === 'load') { // Preload command that is called once per worker to parse and load the Emscripten code.
57
+
58
+ // Module and memory were sent from main thread
59
+ Module['wasmModule'] = e.data.wasmModule;
60
+
61
+ Module['wasmMemory'] = e.data.wasmMemory;
62
+
63
+ Module['buffer'] = Module['wasmMemory'].buffer;
64
+
65
+ Module['ENVIRONMENT_IS_PTHREAD'] = true;
66
+
67
+ if (typeof e.data.urlOrBlob == 'string') {
68
+ importScripts(e.data.urlOrBlob);
69
+ } else {
70
+ var objectUrl = URL.createObjectURL(e.data.urlOrBlob);
71
+ importScripts(objectUrl);
72
+ URL.revokeObjectURL(objectUrl);
73
+ }
74
+ Godot(Module).then(function (instance) {
75
+ Module = instance;
76
+ });
77
+ } else if (e.data.cmd === 'run') {
78
+ // This worker was idle, and now should start executing its pthread entry
79
+ // point.
80
+ // performance.now() is specced to return a wallclock time in msecs since
81
+ // that Web Worker/main thread launched. However for pthreads this can
82
+ // cause subtle problems in emscripten_get_now() as this essentially
83
+ // would measure time from pthread_create(), meaning that the clocks
84
+ // between each threads would be wildly out of sync. Therefore sync all
85
+ // pthreads to the clock on the main browser thread, so that different
86
+ // threads see a somewhat coherent clock across each of them
87
+ // (+/- 0.1msecs in testing).
88
+ Module['__performance_now_clock_drift'] = performance.now() - e.data.time;
89
+
90
+ // Pass the thread address to wasm to store it for fast access.
91
+ Module['__emscripten_thread_init'](e.data.pthread_ptr, /*isMainBrowserThread=*/0, /*isMainRuntimeThread=*/0, /*canBlock=*/1);
92
+
93
+ assert(e.data.pthread_ptr);
94
+ // Also call inside JS module to set up the stack frame for this pthread in JS module scope
95
+ Module['establishStackSpace']();
96
+ Module['PThread'].receiveObjectTransfer(e.data);
97
+ Module['PThread'].threadInitTLS();
98
+
99
+ if (!initializedJS) {
100
+
101
+ // Execute any proxied work that came in before the thread was
102
+ // initialized. Only do this once because it is only possible for
103
+ // proxying notifications to arrive before thread initialization on
104
+ // fresh workers.
105
+ pendingNotifiedProxyingQueues.forEach(queue => {
106
+ Module['executeNotifiedProxyingQueue'](queue);
107
+ });
108
+ pendingNotifiedProxyingQueues = [];
109
+ initializedJS = true;
110
+ }
111
+
112
+ try {
113
+ Module['invokeEntryPoint'](e.data.start_routine, e.data.arg);
114
+ } catch(ex) {
115
+ if (ex != 'unwind') {
116
+ // ExitStatus not present in MINIMAL_RUNTIME
117
+ if (ex instanceof Module['ExitStatus']) {
118
+ if (Module['keepRuntimeAlive']()) {
119
+ err('Pthread 0x' + Module['_pthread_self']().toString(16) + ' called exit(), staying alive due to noExitRuntime.');
120
+ } else {
121
+ err('Pthread 0x' + Module['_pthread_self']().toString(16) + ' called exit(), calling _emscripten_thread_exit.');
122
+ Module['__emscripten_thread_exit'](ex.status);
123
+ }
124
+ }
125
+ else
126
+ {
127
+ // The pthread "crashed". Do not call `_emscripten_thread_exit` (which
128
+ // would make this thread joinable. Instead, re-throw the exception
129
+ // and let the top level handler propagate it back to the main thread.
130
+ throw ex;
131
+ }
132
+ } else {
133
+ // else e == 'unwind', and we should fall through here and keep the pthread alive for asynchronous events.
134
+ err('Pthread 0x' + Module['_pthread_self']().toString(16) + ' completed its main entry point with an `unwind`, keeping the worker alive for asynchronous operation.');
135
+ }
136
+ }
137
+ } else if (e.data.cmd === 'cancel') { // Main thread is asking for a pthread_cancel() on this thread.
138
+ if (Module['_pthread_self']()) {
139
+ Module['__emscripten_thread_exit'](-1/*PTHREAD_CANCELED*/);
140
+ }
141
+ } else if (e.data.target === 'setimmediate') {
142
+ // no-op
143
+ } else if (e.data.cmd === 'processProxyingQueue') {
144
+ if (initializedJS) {
145
+ Module['executeNotifiedProxyingQueue'](e.data.queue);
146
+ } else {
147
+ // Defer executing this queue until the runtime is initialized.
148
+ pendingNotifiedProxyingQueues.push(e.data.queue);
149
+ }
150
+ } else {
151
+ err('worker.js received unknown command ' + e.data.cmd);
152
+ err(e.data);
153
+ }
154
+ } catch(ex) {
155
+ err('worker.js onmessage() captured an uncaught exception: ' + ex);
156
+ if (ex && ex.stack) err(ex.stack);
157
+ if (Module['__emscripten_thread_crashed']) {
158
+ Module['__emscripten_thread_crashed']();
159
+ }
160
+ throw ex;
161
+ }
162
+ };
163
+
164
+
index.html DELETED
@@ -1,19 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
package-lock.json ADDED
@@ -0,0 +1,2167 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "my-app",
3
+ "version": "0.0.1",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "my-app",
9
+ "version": "0.0.1",
10
+ "dependencies": {
11
+ "@sveltejs/adapter-static": "^2.0.2"
12
+ },
13
+ "devDependencies": {
14
+ "@sveltejs/adapter-auto": "^2.0.0",
15
+ "@sveltejs/kit": "^1.5.0",
16
+ "autoprefixer": "^10.4.14",
17
+ "postcss": "^8.4.23",
18
+ "svelte": "^3.54.0",
19
+ "svelte-check": "^3.0.1",
20
+ "tailwindcss": "^3.3.2",
21
+ "tslib": "^2.4.1",
22
+ "typescript": "^5.0.0",
23
+ "vite": "^4.3.0"
24
+ }
25
+ },
26
+ "node_modules/@alloc/quick-lru": {
27
+ "version": "5.2.0",
28
+ "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
29
+ "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==",
30
+ "dev": true,
31
+ "engines": {
32
+ "node": ">=10"
33
+ },
34
+ "funding": {
35
+ "url": "https://github.com/sponsors/sindresorhus"
36
+ }
37
+ },
38
+ "node_modules/@esbuild/android-arm": {
39
+ "version": "0.17.18",
40
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.18.tgz",
41
+ "integrity": "sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==",
42
+ "cpu": [
43
+ "arm"
44
+ ],
45
+ "optional": true,
46
+ "os": [
47
+ "android"
48
+ ],
49
+ "engines": {
50
+ "node": ">=12"
51
+ }
52
+ },
53
+ "node_modules/@esbuild/android-arm64": {
54
+ "version": "0.17.18",
55
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.18.tgz",
56
+ "integrity": "sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==",
57
+ "cpu": [
58
+ "arm64"
59
+ ],
60
+ "optional": true,
61
+ "os": [
62
+ "android"
63
+ ],
64
+ "engines": {
65
+ "node": ">=12"
66
+ }
67
+ },
68
+ "node_modules/@esbuild/android-x64": {
69
+ "version": "0.17.18",
70
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.18.tgz",
71
+ "integrity": "sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==",
72
+ "cpu": [
73
+ "x64"
74
+ ],
75
+ "optional": true,
76
+ "os": [
77
+ "android"
78
+ ],
79
+ "engines": {
80
+ "node": ">=12"
81
+ }
82
+ },
83
+ "node_modules/@esbuild/darwin-arm64": {
84
+ "version": "0.17.18",
85
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.18.tgz",
86
+ "integrity": "sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==",
87
+ "cpu": [
88
+ "arm64"
89
+ ],
90
+ "optional": true,
91
+ "os": [
92
+ "darwin"
93
+ ],
94
+ "engines": {
95
+ "node": ">=12"
96
+ }
97
+ },
98
+ "node_modules/@esbuild/darwin-x64": {
99
+ "version": "0.17.18",
100
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.18.tgz",
101
+ "integrity": "sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==",
102
+ "cpu": [
103
+ "x64"
104
+ ],
105
+ "optional": true,
106
+ "os": [
107
+ "darwin"
108
+ ],
109
+ "engines": {
110
+ "node": ">=12"
111
+ }
112
+ },
113
+ "node_modules/@esbuild/freebsd-arm64": {
114
+ "version": "0.17.18",
115
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.18.tgz",
116
+ "integrity": "sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==",
117
+ "cpu": [
118
+ "arm64"
119
+ ],
120
+ "optional": true,
121
+ "os": [
122
+ "freebsd"
123
+ ],
124
+ "engines": {
125
+ "node": ">=12"
126
+ }
127
+ },
128
+ "node_modules/@esbuild/freebsd-x64": {
129
+ "version": "0.17.18",
130
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.18.tgz",
131
+ "integrity": "sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==",
132
+ "cpu": [
133
+ "x64"
134
+ ],
135
+ "optional": true,
136
+ "os": [
137
+ "freebsd"
138
+ ],
139
+ "engines": {
140
+ "node": ">=12"
141
+ }
142
+ },
143
+ "node_modules/@esbuild/linux-arm": {
144
+ "version": "0.17.18",
145
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.18.tgz",
146
+ "integrity": "sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==",
147
+ "cpu": [
148
+ "arm"
149
+ ],
150
+ "optional": true,
151
+ "os": [
152
+ "linux"
153
+ ],
154
+ "engines": {
155
+ "node": ">=12"
156
+ }
157
+ },
158
+ "node_modules/@esbuild/linux-arm64": {
159
+ "version": "0.17.18",
160
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.18.tgz",
161
+ "integrity": "sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==",
162
+ "cpu": [
163
+ "arm64"
164
+ ],
165
+ "optional": true,
166
+ "os": [
167
+ "linux"
168
+ ],
169
+ "engines": {
170
+ "node": ">=12"
171
+ }
172
+ },
173
+ "node_modules/@esbuild/linux-ia32": {
174
+ "version": "0.17.18",
175
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.18.tgz",
176
+ "integrity": "sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==",
177
+ "cpu": [
178
+ "ia32"
179
+ ],
180
+ "optional": true,
181
+ "os": [
182
+ "linux"
183
+ ],
184
+ "engines": {
185
+ "node": ">=12"
186
+ }
187
+ },
188
+ "node_modules/@esbuild/linux-loong64": {
189
+ "version": "0.17.18",
190
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.18.tgz",
191
+ "integrity": "sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==",
192
+ "cpu": [
193
+ "loong64"
194
+ ],
195
+ "optional": true,
196
+ "os": [
197
+ "linux"
198
+ ],
199
+ "engines": {
200
+ "node": ">=12"
201
+ }
202
+ },
203
+ "node_modules/@esbuild/linux-mips64el": {
204
+ "version": "0.17.18",
205
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.18.tgz",
206
+ "integrity": "sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==",
207
+ "cpu": [
208
+ "mips64el"
209
+ ],
210
+ "optional": true,
211
+ "os": [
212
+ "linux"
213
+ ],
214
+ "engines": {
215
+ "node": ">=12"
216
+ }
217
+ },
218
+ "node_modules/@esbuild/linux-ppc64": {
219
+ "version": "0.17.18",
220
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.18.tgz",
221
+ "integrity": "sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==",
222
+ "cpu": [
223
+ "ppc64"
224
+ ],
225
+ "optional": true,
226
+ "os": [
227
+ "linux"
228
+ ],
229
+ "engines": {
230
+ "node": ">=12"
231
+ }
232
+ },
233
+ "node_modules/@esbuild/linux-riscv64": {
234
+ "version": "0.17.18",
235
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.18.tgz",
236
+ "integrity": "sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==",
237
+ "cpu": [
238
+ "riscv64"
239
+ ],
240
+ "optional": true,
241
+ "os": [
242
+ "linux"
243
+ ],
244
+ "engines": {
245
+ "node": ">=12"
246
+ }
247
+ },
248
+ "node_modules/@esbuild/linux-s390x": {
249
+ "version": "0.17.18",
250
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.18.tgz",
251
+ "integrity": "sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==",
252
+ "cpu": [
253
+ "s390x"
254
+ ],
255
+ "optional": true,
256
+ "os": [
257
+ "linux"
258
+ ],
259
+ "engines": {
260
+ "node": ">=12"
261
+ }
262
+ },
263
+ "node_modules/@esbuild/linux-x64": {
264
+ "version": "0.17.18",
265
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.18.tgz",
266
+ "integrity": "sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==",
267
+ "cpu": [
268
+ "x64"
269
+ ],
270
+ "optional": true,
271
+ "os": [
272
+ "linux"
273
+ ],
274
+ "engines": {
275
+ "node": ">=12"
276
+ }
277
+ },
278
+ "node_modules/@esbuild/netbsd-x64": {
279
+ "version": "0.17.18",
280
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.18.tgz",
281
+ "integrity": "sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==",
282
+ "cpu": [
283
+ "x64"
284
+ ],
285
+ "optional": true,
286
+ "os": [
287
+ "netbsd"
288
+ ],
289
+ "engines": {
290
+ "node": ">=12"
291
+ }
292
+ },
293
+ "node_modules/@esbuild/openbsd-x64": {
294
+ "version": "0.17.18",
295
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.18.tgz",
296
+ "integrity": "sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==",
297
+ "cpu": [
298
+ "x64"
299
+ ],
300
+ "optional": true,
301
+ "os": [
302
+ "openbsd"
303
+ ],
304
+ "engines": {
305
+ "node": ">=12"
306
+ }
307
+ },
308
+ "node_modules/@esbuild/sunos-x64": {
309
+ "version": "0.17.18",
310
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.18.tgz",
311
+ "integrity": "sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==",
312
+ "cpu": [
313
+ "x64"
314
+ ],
315
+ "optional": true,
316
+ "os": [
317
+ "sunos"
318
+ ],
319
+ "engines": {
320
+ "node": ">=12"
321
+ }
322
+ },
323
+ "node_modules/@esbuild/win32-arm64": {
324
+ "version": "0.17.18",
325
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.18.tgz",
326
+ "integrity": "sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==",
327
+ "cpu": [
328
+ "arm64"
329
+ ],
330
+ "optional": true,
331
+ "os": [
332
+ "win32"
333
+ ],
334
+ "engines": {
335
+ "node": ">=12"
336
+ }
337
+ },
338
+ "node_modules/@esbuild/win32-ia32": {
339
+ "version": "0.17.18",
340
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.18.tgz",
341
+ "integrity": "sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==",
342
+ "cpu": [
343
+ "ia32"
344
+ ],
345
+ "optional": true,
346
+ "os": [
347
+ "win32"
348
+ ],
349
+ "engines": {
350
+ "node": ">=12"
351
+ }
352
+ },
353
+ "node_modules/@esbuild/win32-x64": {
354
+ "version": "0.17.18",
355
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.18.tgz",
356
+ "integrity": "sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==",
357
+ "cpu": [
358
+ "x64"
359
+ ],
360
+ "optional": true,
361
+ "os": [
362
+ "win32"
363
+ ],
364
+ "engines": {
365
+ "node": ">=12"
366
+ }
367
+ },
368
+ "node_modules/@jridgewell/gen-mapping": {
369
+ "version": "0.3.3",
370
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
371
+ "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
372
+ "dev": true,
373
+ "dependencies": {
374
+ "@jridgewell/set-array": "^1.0.1",
375
+ "@jridgewell/sourcemap-codec": "^1.4.10",
376
+ "@jridgewell/trace-mapping": "^0.3.9"
377
+ },
378
+ "engines": {
379
+ "node": ">=6.0.0"
380
+ }
381
+ },
382
+ "node_modules/@jridgewell/resolve-uri": {
383
+ "version": "3.1.0",
384
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
385
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
386
+ "dev": true,
387
+ "engines": {
388
+ "node": ">=6.0.0"
389
+ }
390
+ },
391
+ "node_modules/@jridgewell/set-array": {
392
+ "version": "1.1.2",
393
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
394
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
395
+ "dev": true,
396
+ "engines": {
397
+ "node": ">=6.0.0"
398
+ }
399
+ },
400
+ "node_modules/@jridgewell/sourcemap-codec": {
401
+ "version": "1.4.15",
402
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
403
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
404
+ },
405
+ "node_modules/@jridgewell/trace-mapping": {
406
+ "version": "0.3.18",
407
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
408
+ "integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
409
+ "dev": true,
410
+ "dependencies": {
411
+ "@jridgewell/resolve-uri": "3.1.0",
412
+ "@jridgewell/sourcemap-codec": "1.4.14"
413
+ }
414
+ },
415
+ "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": {
416
+ "version": "1.4.14",
417
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
418
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
419
+ "dev": true
420
+ },
421
+ "node_modules/@nodelib/fs.scandir": {
422
+ "version": "2.1.5",
423
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
424
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
425
+ "dev": true,
426
+ "dependencies": {
427
+ "@nodelib/fs.stat": "2.0.5",
428
+ "run-parallel": "^1.1.9"
429
+ },
430
+ "engines": {
431
+ "node": ">= 8"
432
+ }
433
+ },
434
+ "node_modules/@nodelib/fs.stat": {
435
+ "version": "2.0.5",
436
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
437
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
438
+ "dev": true,
439
+ "engines": {
440
+ "node": ">= 8"
441
+ }
442
+ },
443
+ "node_modules/@nodelib/fs.walk": {
444
+ "version": "1.2.8",
445
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
446
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
447
+ "dev": true,
448
+ "dependencies": {
449
+ "@nodelib/fs.scandir": "2.1.5",
450
+ "fastq": "^1.6.0"
451
+ },
452
+ "engines": {
453
+ "node": ">= 8"
454
+ }
455
+ },
456
+ "node_modules/@polka/url": {
457
+ "version": "1.0.0-next.21",
458
+ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz",
459
+ "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g=="
460
+ },
461
+ "node_modules/@sveltejs/adapter-auto": {
462
+ "version": "2.0.1",
463
+ "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-2.0.1.tgz",
464
+ "integrity": "sha512-anxxYMcQy7HWSKxN4YNaVcgNzCHtNFwygq72EA1Xv7c+5gSECOJ1ez1PYoLciPiFa7A3XBvMDQXUFJ2eqLDtAA==",
465
+ "dev": true,
466
+ "dependencies": {
467
+ "import-meta-resolve": "^3.0.0"
468
+ },
469
+ "peerDependencies": {
470
+ "@sveltejs/kit": "^1.0.0"
471
+ }
472
+ },
473
+ "node_modules/@sveltejs/adapter-static": {
474
+ "version": "2.0.2",
475
+ "resolved": "https://registry.npmjs.org/@sveltejs/adapter-static/-/adapter-static-2.0.2.tgz",
476
+ "integrity": "sha512-9wYtf6s6ew7DHUHMrt55YpD1FgV7oWql2IGsW5BXquLxqcY9vjrqCFo0TzzDpo+ZPZkW/v77k0eOP6tsAb8HmQ==",
477
+ "peerDependencies": {
478
+ "@sveltejs/kit": "^1.5.0"
479
+ }
480
+ },
481
+ "node_modules/@sveltejs/kit": {
482
+ "version": "1.16.3",
483
+ "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.16.3.tgz",
484
+ "integrity": "sha512-8uv0udYRpVuE1BweFidcWHfL+u2gAANKmvIal1dN/FWPBl7DJYbt9zYEtr3bNTiXystT8Sn0Wp54RfwpbPqHjQ==",
485
+ "hasInstallScript": true,
486
+ "dependencies": {
487
+ "@sveltejs/vite-plugin-svelte": "^2.1.1",
488
+ "@types/cookie": "^0.5.1",
489
+ "cookie": "^0.5.0",
490
+ "devalue": "^4.3.0",
491
+ "esm-env": "^1.0.0",
492
+ "kleur": "^4.1.5",
493
+ "magic-string": "^0.30.0",
494
+ "mime": "^3.0.0",
495
+ "sade": "^1.8.1",
496
+ "set-cookie-parser": "^2.6.0",
497
+ "sirv": "^2.0.2",
498
+ "tiny-glob": "^0.2.9",
499
+ "undici": "~5.22.0"
500
+ },
501
+ "bin": {
502
+ "svelte-kit": "svelte-kit.js"
503
+ },
504
+ "engines": {
505
+ "node": "^16.14 || >=18"
506
+ },
507
+ "peerDependencies": {
508
+ "svelte": "^3.54.0",
509
+ "vite": "^4.0.0"
510
+ }
511
+ },
512
+ "node_modules/@sveltejs/vite-plugin-svelte": {
513
+ "version": "2.2.0",
514
+ "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.2.0.tgz",
515
+ "integrity": "sha512-KDtdva+FZrZlyug15KlbXuubntAPKcBau0K7QhAIqC5SAy0uDbjZwoexDRx0L0J2T4niEfC6FnA9GuQQJKg+Aw==",
516
+ "dependencies": {
517
+ "debug": "^4.3.4",
518
+ "deepmerge": "^4.3.1",
519
+ "kleur": "^4.1.5",
520
+ "magic-string": "^0.30.0",
521
+ "svelte-hmr": "^0.15.1",
522
+ "vitefu": "^0.2.4"
523
+ },
524
+ "engines": {
525
+ "node": "^14.18.0 || >= 16"
526
+ },
527
+ "peerDependencies": {
528
+ "svelte": "^3.54.0",
529
+ "vite": "^4.0.0"
530
+ }
531
+ },
532
+ "node_modules/@types/cookie": {
533
+ "version": "0.5.1",
534
+ "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.1.tgz",
535
+ "integrity": "sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g=="
536
+ },
537
+ "node_modules/@types/pug": {
538
+ "version": "2.0.6",
539
+ "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz",
540
+ "integrity": "sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==",
541
+ "dev": true
542
+ },
543
+ "node_modules/any-promise": {
544
+ "version": "1.3.0",
545
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
546
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
547
+ "dev": true
548
+ },
549
+ "node_modules/anymatch": {
550
+ "version": "3.1.3",
551
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
552
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
553
+ "dev": true,
554
+ "dependencies": {
555
+ "normalize-path": "^3.0.0",
556
+ "picomatch": "^2.0.4"
557
+ },
558
+ "engines": {
559
+ "node": ">= 8"
560
+ }
561
+ },
562
+ "node_modules/arg": {
563
+ "version": "5.0.2",
564
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
565
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
566
+ "dev": true
567
+ },
568
+ "node_modules/autoprefixer": {
569
+ "version": "10.4.14",
570
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz",
571
+ "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==",
572
+ "dev": true,
573
+ "funding": [
574
+ {
575
+ "type": "opencollective",
576
+ "url": "https://opencollective.com/postcss/"
577
+ },
578
+ {
579
+ "type": "tidelift",
580
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
581
+ }
582
+ ],
583
+ "dependencies": {
584
+ "browserslist": "^4.21.5",
585
+ "caniuse-lite": "^1.0.30001464",
586
+ "fraction.js": "^4.2.0",
587
+ "normalize-range": "^0.1.2",
588
+ "picocolors": "^1.0.0",
589
+ "postcss-value-parser": "^4.2.0"
590
+ },
591
+ "bin": {
592
+ "autoprefixer": "bin/autoprefixer"
593
+ },
594
+ "engines": {
595
+ "node": "^10 || ^12 || >=14"
596
+ },
597
+ "peerDependencies": {
598
+ "postcss": "^8.1.0"
599
+ }
600
+ },
601
+ "node_modules/balanced-match": {
602
+ "version": "1.0.2",
603
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
604
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
605
+ "dev": true
606
+ },
607
+ "node_modules/binary-extensions": {
608
+ "version": "2.2.0",
609
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
610
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
611
+ "dev": true,
612
+ "engines": {
613
+ "node": ">=8"
614
+ }
615
+ },
616
+ "node_modules/brace-expansion": {
617
+ "version": "1.1.11",
618
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
619
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
620
+ "dev": true,
621
+ "dependencies": {
622
+ "balanced-match": "^1.0.0",
623
+ "concat-map": "0.0.1"
624
+ }
625
+ },
626
+ "node_modules/braces": {
627
+ "version": "3.0.2",
628
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
629
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
630
+ "dev": true,
631
+ "dependencies": {
632
+ "fill-range": "^7.0.1"
633
+ },
634
+ "engines": {
635
+ "node": ">=8"
636
+ }
637
+ },
638
+ "node_modules/browserslist": {
639
+ "version": "4.21.5",
640
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz",
641
+ "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==",
642
+ "dev": true,
643
+ "funding": [
644
+ {
645
+ "type": "opencollective",
646
+ "url": "https://opencollective.com/browserslist"
647
+ },
648
+ {
649
+ "type": "tidelift",
650
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
651
+ }
652
+ ],
653
+ "dependencies": {
654
+ "caniuse-lite": "^1.0.30001449",
655
+ "electron-to-chromium": "^1.4.284",
656
+ "node-releases": "^2.0.8",
657
+ "update-browserslist-db": "^1.0.10"
658
+ },
659
+ "bin": {
660
+ "browserslist": "cli.js"
661
+ },
662
+ "engines": {
663
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
664
+ }
665
+ },
666
+ "node_modules/buffer-crc32": {
667
+ "version": "0.2.13",
668
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
669
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
670
+ "dev": true,
671
+ "engines": {
672
+ "node": "*"
673
+ }
674
+ },
675
+ "node_modules/busboy": {
676
+ "version": "1.6.0",
677
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
678
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
679
+ "dependencies": {
680
+ "streamsearch": "^1.1.0"
681
+ },
682
+ "engines": {
683
+ "node": ">=10.16.0"
684
+ }
685
+ },
686
+ "node_modules/callsites": {
687
+ "version": "3.1.0",
688
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
689
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
690
+ "dev": true,
691
+ "engines": {
692
+ "node": ">=6"
693
+ }
694
+ },
695
+ "node_modules/camelcase-css": {
696
+ "version": "2.0.1",
697
+ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
698
+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
699
+ "dev": true,
700
+ "engines": {
701
+ "node": ">= 6"
702
+ }
703
+ },
704
+ "node_modules/caniuse-lite": {
705
+ "version": "1.0.30001486",
706
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001486.tgz",
707
+ "integrity": "sha512-uv7/gXuHi10Whlj0pp5q/tsK/32J2QSqVRKQhs2j8VsDCjgyruAh/eEXHF822VqO9yT6iZKw3nRwZRSPBE9OQg==",
708
+ "dev": true,
709
+ "funding": [
710
+ {
711
+ "type": "opencollective",
712
+ "url": "https://opencollective.com/browserslist"
713
+ },
714
+ {
715
+ "type": "tidelift",
716
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
717
+ },
718
+ {
719
+ "type": "github",
720
+ "url": "https://github.com/sponsors/ai"
721
+ }
722
+ ]
723
+ },
724
+ "node_modules/chokidar": {
725
+ "version": "3.5.3",
726
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
727
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
728
+ "dev": true,
729
+ "funding": [
730
+ {
731
+ "type": "individual",
732
+ "url": "https://paulmillr.com/funding/"
733
+ }
734
+ ],
735
+ "dependencies": {
736
+ "anymatch": "~3.1.2",
737
+ "braces": "~3.0.2",
738
+ "glob-parent": "~5.1.2",
739
+ "is-binary-path": "~2.1.0",
740
+ "is-glob": "~4.0.1",
741
+ "normalize-path": "~3.0.0",
742
+ "readdirp": "~3.6.0"
743
+ },
744
+ "engines": {
745
+ "node": ">= 8.10.0"
746
+ },
747
+ "optionalDependencies": {
748
+ "fsevents": "~2.3.2"
749
+ }
750
+ },
751
+ "node_modules/commander": {
752
+ "version": "4.1.1",
753
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
754
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
755
+ "dev": true,
756
+ "engines": {
757
+ "node": ">= 6"
758
+ }
759
+ },
760
+ "node_modules/concat-map": {
761
+ "version": "0.0.1",
762
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
763
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
764
+ "dev": true
765
+ },
766
+ "node_modules/cookie": {
767
+ "version": "0.5.0",
768
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
769
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
770
+ "engines": {
771
+ "node": ">= 0.6"
772
+ }
773
+ },
774
+ "node_modules/cssesc": {
775
+ "version": "3.0.0",
776
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
777
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
778
+ "dev": true,
779
+ "bin": {
780
+ "cssesc": "bin/cssesc"
781
+ },
782
+ "engines": {
783
+ "node": ">=4"
784
+ }
785
+ },
786
+ "node_modules/debug": {
787
+ "version": "4.3.4",
788
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
789
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
790
+ "dependencies": {
791
+ "ms": "2.1.2"
792
+ },
793
+ "engines": {
794
+ "node": ">=6.0"
795
+ },
796
+ "peerDependenciesMeta": {
797
+ "supports-color": {
798
+ "optional": true
799
+ }
800
+ }
801
+ },
802
+ "node_modules/deepmerge": {
803
+ "version": "4.3.1",
804
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
805
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
806
+ "engines": {
807
+ "node": ">=0.10.0"
808
+ }
809
+ },
810
+ "node_modules/detect-indent": {
811
+ "version": "6.1.0",
812
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
813
+ "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==",
814
+ "dev": true,
815
+ "engines": {
816
+ "node": ">=8"
817
+ }
818
+ },
819
+ "node_modules/devalue": {
820
+ "version": "4.3.0",
821
+ "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.0.tgz",
822
+ "integrity": "sha512-n94yQo4LI3w7erwf84mhRUkUJfhLoCZiLyoOZ/QFsDbcWNZePrLwbQpvZBUG2TNxwV3VjCKPxkiiQA6pe3TrTA=="
823
+ },
824
+ "node_modules/didyoumean": {
825
+ "version": "1.2.2",
826
+ "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz",
827
+ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==",
828
+ "dev": true
829
+ },
830
+ "node_modules/dlv": {
831
+ "version": "1.1.3",
832
+ "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz",
833
+ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==",
834
+ "dev": true
835
+ },
836
+ "node_modules/electron-to-chromium": {
837
+ "version": "1.4.391",
838
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.391.tgz",
839
+ "integrity": "sha512-GqydVV1+kUWY5qlEzaw34/hyWTApuQrHiGrcGA2Kk/56nEK44i+YUW45VH43JuZT0Oo7uY8aVtpPhBBZXEWtSA==",
840
+ "dev": true
841
+ },
842
+ "node_modules/es6-promise": {
843
+ "version": "3.3.1",
844
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
845
+ "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==",
846
+ "dev": true
847
+ },
848
+ "node_modules/esbuild": {
849
+ "version": "0.17.18",
850
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.18.tgz",
851
+ "integrity": "sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==",
852
+ "hasInstallScript": true,
853
+ "bin": {
854
+ "esbuild": "bin/esbuild"
855
+ },
856
+ "engines": {
857
+ "node": ">=12"
858
+ },
859
+ "optionalDependencies": {
860
+ "@esbuild/android-arm": "0.17.18",
861
+ "@esbuild/android-arm64": "0.17.18",
862
+ "@esbuild/android-x64": "0.17.18",
863
+ "@esbuild/darwin-arm64": "0.17.18",
864
+ "@esbuild/darwin-x64": "0.17.18",
865
+ "@esbuild/freebsd-arm64": "0.17.18",
866
+ "@esbuild/freebsd-x64": "0.17.18",
867
+ "@esbuild/linux-arm": "0.17.18",
868
+ "@esbuild/linux-arm64": "0.17.18",
869
+ "@esbuild/linux-ia32": "0.17.18",
870
+ "@esbuild/linux-loong64": "0.17.18",
871
+ "@esbuild/linux-mips64el": "0.17.18",
872
+ "@esbuild/linux-ppc64": "0.17.18",
873
+ "@esbuild/linux-riscv64": "0.17.18",
874
+ "@esbuild/linux-s390x": "0.17.18",
875
+ "@esbuild/linux-x64": "0.17.18",
876
+ "@esbuild/netbsd-x64": "0.17.18",
877
+ "@esbuild/openbsd-x64": "0.17.18",
878
+ "@esbuild/sunos-x64": "0.17.18",
879
+ "@esbuild/win32-arm64": "0.17.18",
880
+ "@esbuild/win32-ia32": "0.17.18",
881
+ "@esbuild/win32-x64": "0.17.18"
882
+ }
883
+ },
884
+ "node_modules/escalade": {
885
+ "version": "3.1.1",
886
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
887
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
888
+ "dev": true,
889
+ "engines": {
890
+ "node": ">=6"
891
+ }
892
+ },
893
+ "node_modules/esm-env": {
894
+ "version": "1.0.0",
895
+ "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz",
896
+ "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA=="
897
+ },
898
+ "node_modules/fast-glob": {
899
+ "version": "3.2.12",
900
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
901
+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
902
+ "dev": true,
903
+ "dependencies": {
904
+ "@nodelib/fs.stat": "^2.0.2",
905
+ "@nodelib/fs.walk": "^1.2.3",
906
+ "glob-parent": "^5.1.2",
907
+ "merge2": "^1.3.0",
908
+ "micromatch": "^4.0.4"
909
+ },
910
+ "engines": {
911
+ "node": ">=8.6.0"
912
+ }
913
+ },
914
+ "node_modules/fastq": {
915
+ "version": "1.15.0",
916
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
917
+ "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
918
+ "dev": true,
919
+ "dependencies": {
920
+ "reusify": "^1.0.4"
921
+ }
922
+ },
923
+ "node_modules/fill-range": {
924
+ "version": "7.0.1",
925
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
926
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
927
+ "dev": true,
928
+ "dependencies": {
929
+ "to-regex-range": "^5.0.1"
930
+ },
931
+ "engines": {
932
+ "node": ">=8"
933
+ }
934
+ },
935
+ "node_modules/fraction.js": {
936
+ "version": "4.2.0",
937
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
938
+ "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==",
939
+ "dev": true,
940
+ "engines": {
941
+ "node": "*"
942
+ },
943
+ "funding": {
944
+ "type": "patreon",
945
+ "url": "https://www.patreon.com/infusion"
946
+ }
947
+ },
948
+ "node_modules/fs.realpath": {
949
+ "version": "1.0.0",
950
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
951
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
952
+ "dev": true
953
+ },
954
+ "node_modules/fsevents": {
955
+ "version": "2.3.2",
956
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
957
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
958
+ "hasInstallScript": true,
959
+ "optional": true,
960
+ "os": [
961
+ "darwin"
962
+ ],
963
+ "engines": {
964
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
965
+ }
966
+ },
967
+ "node_modules/function-bind": {
968
+ "version": "1.1.1",
969
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
970
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
971
+ "dev": true
972
+ },
973
+ "node_modules/glob": {
974
+ "version": "7.2.3",
975
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
976
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
977
+ "dev": true,
978
+ "dependencies": {
979
+ "fs.realpath": "^1.0.0",
980
+ "inflight": "^1.0.4",
981
+ "inherits": "2",
982
+ "minimatch": "^3.1.1",
983
+ "once": "^1.3.0",
984
+ "path-is-absolute": "^1.0.0"
985
+ },
986
+ "engines": {
987
+ "node": "*"
988
+ },
989
+ "funding": {
990
+ "url": "https://github.com/sponsors/isaacs"
991
+ }
992
+ },
993
+ "node_modules/glob-parent": {
994
+ "version": "5.1.2",
995
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
996
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
997
+ "dev": true,
998
+ "dependencies": {
999
+ "is-glob": "^4.0.1"
1000
+ },
1001
+ "engines": {
1002
+ "node": ">= 6"
1003
+ }
1004
+ },
1005
+ "node_modules/globalyzer": {
1006
+ "version": "0.1.0",
1007
+ "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
1008
+ "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q=="
1009
+ },
1010
+ "node_modules/globrex": {
1011
+ "version": "0.1.2",
1012
+ "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
1013
+ "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg=="
1014
+ },
1015
+ "node_modules/graceful-fs": {
1016
+ "version": "4.2.11",
1017
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
1018
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
1019
+ "dev": true
1020
+ },
1021
+ "node_modules/has": {
1022
+ "version": "1.0.3",
1023
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
1024
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
1025
+ "dev": true,
1026
+ "dependencies": {
1027
+ "function-bind": "^1.1.1"
1028
+ },
1029
+ "engines": {
1030
+ "node": ">= 0.4.0"
1031
+ }
1032
+ },
1033
+ "node_modules/import-fresh": {
1034
+ "version": "3.3.0",
1035
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
1036
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
1037
+ "dev": true,
1038
+ "dependencies": {
1039
+ "parent-module": "^1.0.0",
1040
+ "resolve-from": "^4.0.0"
1041
+ },
1042
+ "engines": {
1043
+ "node": ">=6"
1044
+ },
1045
+ "funding": {
1046
+ "url": "https://github.com/sponsors/sindresorhus"
1047
+ }
1048
+ },
1049
+ "node_modules/import-meta-resolve": {
1050
+ "version": "3.0.0",
1051
+ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-3.0.0.tgz",
1052
+ "integrity": "sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==",
1053
+ "dev": true,
1054
+ "funding": {
1055
+ "type": "github",
1056
+ "url": "https://github.com/sponsors/wooorm"
1057
+ }
1058
+ },
1059
+ "node_modules/inflight": {
1060
+ "version": "1.0.6",
1061
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
1062
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
1063
+ "dev": true,
1064
+ "dependencies": {
1065
+ "once": "^1.3.0",
1066
+ "wrappy": "1"
1067
+ }
1068
+ },
1069
+ "node_modules/inherits": {
1070
+ "version": "2.0.4",
1071
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
1072
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
1073
+ "dev": true
1074
+ },
1075
+ "node_modules/is-binary-path": {
1076
+ "version": "2.1.0",
1077
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
1078
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
1079
+ "dev": true,
1080
+ "dependencies": {
1081
+ "binary-extensions": "^2.0.0"
1082
+ },
1083
+ "engines": {
1084
+ "node": ">=8"
1085
+ }
1086
+ },
1087
+ "node_modules/is-core-module": {
1088
+ "version": "2.12.0",
1089
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz",
1090
+ "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==",
1091
+ "dev": true,
1092
+ "dependencies": {
1093
+ "has": "^1.0.3"
1094
+ },
1095
+ "funding": {
1096
+ "url": "https://github.com/sponsors/ljharb"
1097
+ }
1098
+ },
1099
+ "node_modules/is-extglob": {
1100
+ "version": "2.1.1",
1101
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
1102
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
1103
+ "dev": true,
1104
+ "engines": {
1105
+ "node": ">=0.10.0"
1106
+ }
1107
+ },
1108
+ "node_modules/is-glob": {
1109
+ "version": "4.0.3",
1110
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
1111
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
1112
+ "dev": true,
1113
+ "dependencies": {
1114
+ "is-extglob": "^2.1.1"
1115
+ },
1116
+ "engines": {
1117
+ "node": ">=0.10.0"
1118
+ }
1119
+ },
1120
+ "node_modules/is-number": {
1121
+ "version": "7.0.0",
1122
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
1123
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
1124
+ "dev": true,
1125
+ "engines": {
1126
+ "node": ">=0.12.0"
1127
+ }
1128
+ },
1129
+ "node_modules/jiti": {
1130
+ "version": "1.18.2",
1131
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz",
1132
+ "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==",
1133
+ "dev": true,
1134
+ "bin": {
1135
+ "jiti": "bin/jiti.js"
1136
+ }
1137
+ },
1138
+ "node_modules/kleur": {
1139
+ "version": "4.1.5",
1140
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
1141
+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
1142
+ "engines": {
1143
+ "node": ">=6"
1144
+ }
1145
+ },
1146
+ "node_modules/lilconfig": {
1147
+ "version": "2.1.0",
1148
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
1149
+ "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
1150
+ "dev": true,
1151
+ "engines": {
1152
+ "node": ">=10"
1153
+ }
1154
+ },
1155
+ "node_modules/lines-and-columns": {
1156
+ "version": "1.2.4",
1157
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
1158
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
1159
+ "dev": true
1160
+ },
1161
+ "node_modules/magic-string": {
1162
+ "version": "0.30.0",
1163
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz",
1164
+ "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==",
1165
+ "dependencies": {
1166
+ "@jridgewell/sourcemap-codec": "^1.4.13"
1167
+ },
1168
+ "engines": {
1169
+ "node": ">=12"
1170
+ }
1171
+ },
1172
+ "node_modules/merge2": {
1173
+ "version": "1.4.1",
1174
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
1175
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
1176
+ "dev": true,
1177
+ "engines": {
1178
+ "node": ">= 8"
1179
+ }
1180
+ },
1181
+ "node_modules/micromatch": {
1182
+ "version": "4.0.5",
1183
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
1184
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
1185
+ "dev": true,
1186
+ "dependencies": {
1187
+ "braces": "^3.0.2",
1188
+ "picomatch": "^2.3.1"
1189
+ },
1190
+ "engines": {
1191
+ "node": ">=8.6"
1192
+ }
1193
+ },
1194
+ "node_modules/mime": {
1195
+ "version": "3.0.0",
1196
+ "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
1197
+ "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
1198
+ "bin": {
1199
+ "mime": "cli.js"
1200
+ },
1201
+ "engines": {
1202
+ "node": ">=10.0.0"
1203
+ }
1204
+ },
1205
+ "node_modules/min-indent": {
1206
+ "version": "1.0.1",
1207
+ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
1208
+ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
1209
+ "dev": true,
1210
+ "engines": {
1211
+ "node": ">=4"
1212
+ }
1213
+ },
1214
+ "node_modules/minimatch": {
1215
+ "version": "3.1.2",
1216
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
1217
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
1218
+ "dev": true,
1219
+ "dependencies": {
1220
+ "brace-expansion": "^1.1.7"
1221
+ },
1222
+ "engines": {
1223
+ "node": "*"
1224
+ }
1225
+ },
1226
+ "node_modules/minimist": {
1227
+ "version": "1.2.8",
1228
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
1229
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
1230
+ "dev": true,
1231
+ "funding": {
1232
+ "url": "https://github.com/sponsors/ljharb"
1233
+ }
1234
+ },
1235
+ "node_modules/mkdirp": {
1236
+ "version": "0.5.6",
1237
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
1238
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
1239
+ "dev": true,
1240
+ "dependencies": {
1241
+ "minimist": "^1.2.6"
1242
+ },
1243
+ "bin": {
1244
+ "mkdirp": "bin/cmd.js"
1245
+ }
1246
+ },
1247
+ "node_modules/mri": {
1248
+ "version": "1.2.0",
1249
+ "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
1250
+ "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
1251
+ "engines": {
1252
+ "node": ">=4"
1253
+ }
1254
+ },
1255
+ "node_modules/mrmime": {
1256
+ "version": "1.0.1",
1257
+ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz",
1258
+ "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==",
1259
+ "engines": {
1260
+ "node": ">=10"
1261
+ }
1262
+ },
1263
+ "node_modules/ms": {
1264
+ "version": "2.1.2",
1265
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1266
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1267
+ },
1268
+ "node_modules/mz": {
1269
+ "version": "2.7.0",
1270
+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
1271
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
1272
+ "dev": true,
1273
+ "dependencies": {
1274
+ "any-promise": "^1.0.0",
1275
+ "object-assign": "^4.0.1",
1276
+ "thenify-all": "^1.0.0"
1277
+ }
1278
+ },
1279
+ "node_modules/nanoid": {
1280
+ "version": "3.3.6",
1281
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
1282
+ "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
1283
+ "funding": [
1284
+ {
1285
+ "type": "github",
1286
+ "url": "https://github.com/sponsors/ai"
1287
+ }
1288
+ ],
1289
+ "bin": {
1290
+ "nanoid": "bin/nanoid.cjs"
1291
+ },
1292
+ "engines": {
1293
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1294
+ }
1295
+ },
1296
+ "node_modules/node-releases": {
1297
+ "version": "2.0.10",
1298
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz",
1299
+ "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==",
1300
+ "dev": true
1301
+ },
1302
+ "node_modules/normalize-path": {
1303
+ "version": "3.0.0",
1304
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1305
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1306
+ "dev": true,
1307
+ "engines": {
1308
+ "node": ">=0.10.0"
1309
+ }
1310
+ },
1311
+ "node_modules/normalize-range": {
1312
+ "version": "0.1.2",
1313
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
1314
+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
1315
+ "dev": true,
1316
+ "engines": {
1317
+ "node": ">=0.10.0"
1318
+ }
1319
+ },
1320
+ "node_modules/object-assign": {
1321
+ "version": "4.1.1",
1322
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1323
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
1324
+ "dev": true,
1325
+ "engines": {
1326
+ "node": ">=0.10.0"
1327
+ }
1328
+ },
1329
+ "node_modules/object-hash": {
1330
+ "version": "3.0.0",
1331
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
1332
+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
1333
+ "dev": true,
1334
+ "engines": {
1335
+ "node": ">= 6"
1336
+ }
1337
+ },
1338
+ "node_modules/once": {
1339
+ "version": "1.4.0",
1340
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1341
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1342
+ "dev": true,
1343
+ "dependencies": {
1344
+ "wrappy": "1"
1345
+ }
1346
+ },
1347
+ "node_modules/parent-module": {
1348
+ "version": "1.0.1",
1349
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
1350
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
1351
+ "dev": true,
1352
+ "dependencies": {
1353
+ "callsites": "^3.0.0"
1354
+ },
1355
+ "engines": {
1356
+ "node": ">=6"
1357
+ }
1358
+ },
1359
+ "node_modules/path-is-absolute": {
1360
+ "version": "1.0.1",
1361
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1362
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
1363
+ "dev": true,
1364
+ "engines": {
1365
+ "node": ">=0.10.0"
1366
+ }
1367
+ },
1368
+ "node_modules/path-parse": {
1369
+ "version": "1.0.7",
1370
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
1371
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
1372
+ "dev": true
1373
+ },
1374
+ "node_modules/picocolors": {
1375
+ "version": "1.0.0",
1376
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
1377
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
1378
+ },
1379
+ "node_modules/picomatch": {
1380
+ "version": "2.3.1",
1381
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
1382
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1383
+ "dev": true,
1384
+ "engines": {
1385
+ "node": ">=8.6"
1386
+ },
1387
+ "funding": {
1388
+ "url": "https://github.com/sponsors/jonschlinkert"
1389
+ }
1390
+ },
1391
+ "node_modules/pify": {
1392
+ "version": "2.3.0",
1393
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
1394
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
1395
+ "dev": true,
1396
+ "engines": {
1397
+ "node": ">=0.10.0"
1398
+ }
1399
+ },
1400
+ "node_modules/pirates": {
1401
+ "version": "4.0.5",
1402
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
1403
+ "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
1404
+ "dev": true,
1405
+ "engines": {
1406
+ "node": ">= 6"
1407
+ }
1408
+ },
1409
+ "node_modules/postcss": {
1410
+ "version": "8.4.23",
1411
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.23.tgz",
1412
+ "integrity": "sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==",
1413
+ "funding": [
1414
+ {
1415
+ "type": "opencollective",
1416
+ "url": "https://opencollective.com/postcss/"
1417
+ },
1418
+ {
1419
+ "type": "tidelift",
1420
+ "url": "https://tidelift.com/funding/github/npm/postcss"
1421
+ },
1422
+ {
1423
+ "type": "github",
1424
+ "url": "https://github.com/sponsors/ai"
1425
+ }
1426
+ ],
1427
+ "dependencies": {
1428
+ "nanoid": "^3.3.6",
1429
+ "picocolors": "^1.0.0",
1430
+ "source-map-js": "^1.0.2"
1431
+ },
1432
+ "engines": {
1433
+ "node": "^10 || ^12 || >=14"
1434
+ }
1435
+ },
1436
+ "node_modules/postcss-import": {
1437
+ "version": "15.1.0",
1438
+ "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz",
1439
+ "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==",
1440
+ "dev": true,
1441
+ "dependencies": {
1442
+ "postcss-value-parser": "^4.0.0",
1443
+ "read-cache": "^1.0.0",
1444
+ "resolve": "^1.1.7"
1445
+ },
1446
+ "engines": {
1447
+ "node": ">=14.0.0"
1448
+ },
1449
+ "peerDependencies": {
1450
+ "postcss": "^8.0.0"
1451
+ }
1452
+ },
1453
+ "node_modules/postcss-js": {
1454
+ "version": "4.0.1",
1455
+ "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz",
1456
+ "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==",
1457
+ "dev": true,
1458
+ "dependencies": {
1459
+ "camelcase-css": "^2.0.1"
1460
+ },
1461
+ "engines": {
1462
+ "node": "^12 || ^14 || >= 16"
1463
+ },
1464
+ "funding": {
1465
+ "type": "opencollective",
1466
+ "url": "https://opencollective.com/postcss/"
1467
+ },
1468
+ "peerDependencies": {
1469
+ "postcss": "^8.4.21"
1470
+ }
1471
+ },
1472
+ "node_modules/postcss-load-config": {
1473
+ "version": "4.0.1",
1474
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz",
1475
+ "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==",
1476
+ "dev": true,
1477
+ "dependencies": {
1478
+ "lilconfig": "^2.0.5",
1479
+ "yaml": "^2.1.1"
1480
+ },
1481
+ "engines": {
1482
+ "node": ">= 14"
1483
+ },
1484
+ "funding": {
1485
+ "type": "opencollective",
1486
+ "url": "https://opencollective.com/postcss/"
1487
+ },
1488
+ "peerDependencies": {
1489
+ "postcss": ">=8.0.9",
1490
+ "ts-node": ">=9.0.0"
1491
+ },
1492
+ "peerDependenciesMeta": {
1493
+ "postcss": {
1494
+ "optional": true
1495
+ },
1496
+ "ts-node": {
1497
+ "optional": true
1498
+ }
1499
+ }
1500
+ },
1501
+ "node_modules/postcss-nested": {
1502
+ "version": "6.0.1",
1503
+ "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
1504
+ "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
1505
+ "dev": true,
1506
+ "dependencies": {
1507
+ "postcss-selector-parser": "^6.0.11"
1508
+ },
1509
+ "engines": {
1510
+ "node": ">=12.0"
1511
+ },
1512
+ "funding": {
1513
+ "type": "opencollective",
1514
+ "url": "https://opencollective.com/postcss/"
1515
+ },
1516
+ "peerDependencies": {
1517
+ "postcss": "^8.2.14"
1518
+ }
1519
+ },
1520
+ "node_modules/postcss-selector-parser": {
1521
+ "version": "6.0.12",
1522
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.12.tgz",
1523
+ "integrity": "sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==",
1524
+ "dev": true,
1525
+ "dependencies": {
1526
+ "cssesc": "^3.0.0",
1527
+ "util-deprecate": "^1.0.2"
1528
+ },
1529
+ "engines": {
1530
+ "node": ">=4"
1531
+ }
1532
+ },
1533
+ "node_modules/postcss-value-parser": {
1534
+ "version": "4.2.0",
1535
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
1536
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
1537
+ "dev": true
1538
+ },
1539
+ "node_modules/queue-microtask": {
1540
+ "version": "1.2.3",
1541
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
1542
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
1543
+ "dev": true,
1544
+ "funding": [
1545
+ {
1546
+ "type": "github",
1547
+ "url": "https://github.com/sponsors/feross"
1548
+ },
1549
+ {
1550
+ "type": "patreon",
1551
+ "url": "https://www.patreon.com/feross"
1552
+ },
1553
+ {
1554
+ "type": "consulting",
1555
+ "url": "https://feross.org/support"
1556
+ }
1557
+ ]
1558
+ },
1559
+ "node_modules/read-cache": {
1560
+ "version": "1.0.0",
1561
+ "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
1562
+ "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==",
1563
+ "dev": true,
1564
+ "dependencies": {
1565
+ "pify": "^2.3.0"
1566
+ }
1567
+ },
1568
+ "node_modules/readdirp": {
1569
+ "version": "3.6.0",
1570
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
1571
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1572
+ "dev": true,
1573
+ "dependencies": {
1574
+ "picomatch": "^2.2.1"
1575
+ },
1576
+ "engines": {
1577
+ "node": ">=8.10.0"
1578
+ }
1579
+ },
1580
+ "node_modules/resolve": {
1581
+ "version": "1.22.2",
1582
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz",
1583
+ "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
1584
+ "dev": true,
1585
+ "dependencies": {
1586
+ "is-core-module": "^2.11.0",
1587
+ "path-parse": "^1.0.7",
1588
+ "supports-preserve-symlinks-flag": "^1.0.0"
1589
+ },
1590
+ "bin": {
1591
+ "resolve": "bin/resolve"
1592
+ },
1593
+ "funding": {
1594
+ "url": "https://github.com/sponsors/ljharb"
1595
+ }
1596
+ },
1597
+ "node_modules/resolve-from": {
1598
+ "version": "4.0.0",
1599
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
1600
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
1601
+ "dev": true,
1602
+ "engines": {
1603
+ "node": ">=4"
1604
+ }
1605
+ },
1606
+ "node_modules/reusify": {
1607
+ "version": "1.0.4",
1608
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
1609
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
1610
+ "dev": true,
1611
+ "engines": {
1612
+ "iojs": ">=1.0.0",
1613
+ "node": ">=0.10.0"
1614
+ }
1615
+ },
1616
+ "node_modules/rimraf": {
1617
+ "version": "2.7.1",
1618
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
1619
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
1620
+ "dev": true,
1621
+ "dependencies": {
1622
+ "glob": "^7.1.3"
1623
+ },
1624
+ "bin": {
1625
+ "rimraf": "bin.js"
1626
+ }
1627
+ },
1628
+ "node_modules/rollup": {
1629
+ "version": "3.21.6",
1630
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.21.6.tgz",
1631
+ "integrity": "sha512-SXIICxvxQxR3D4dp/3LDHZIJPC8a4anKMHd4E3Jiz2/JnY+2bEjqrOokAauc5ShGVNFHlEFjBXAXlaxkJqIqSg==",
1632
+ "bin": {
1633
+ "rollup": "dist/bin/rollup"
1634
+ },
1635
+ "engines": {
1636
+ "node": ">=14.18.0",
1637
+ "npm": ">=8.0.0"
1638
+ },
1639
+ "optionalDependencies": {
1640
+ "fsevents": "~2.3.2"
1641
+ }
1642
+ },
1643
+ "node_modules/run-parallel": {
1644
+ "version": "1.2.0",
1645
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
1646
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
1647
+ "dev": true,
1648
+ "funding": [
1649
+ {
1650
+ "type": "github",
1651
+ "url": "https://github.com/sponsors/feross"
1652
+ },
1653
+ {
1654
+ "type": "patreon",
1655
+ "url": "https://www.patreon.com/feross"
1656
+ },
1657
+ {
1658
+ "type": "consulting",
1659
+ "url": "https://feross.org/support"
1660
+ }
1661
+ ],
1662
+ "dependencies": {
1663
+ "queue-microtask": "^1.2.2"
1664
+ }
1665
+ },
1666
+ "node_modules/sade": {
1667
+ "version": "1.8.1",
1668
+ "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
1669
+ "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
1670
+ "dependencies": {
1671
+ "mri": "^1.1.0"
1672
+ },
1673
+ "engines": {
1674
+ "node": ">=6"
1675
+ }
1676
+ },
1677
+ "node_modules/sander": {
1678
+ "version": "0.5.1",
1679
+ "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz",
1680
+ "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==",
1681
+ "dev": true,
1682
+ "dependencies": {
1683
+ "es6-promise": "^3.1.2",
1684
+ "graceful-fs": "^4.1.3",
1685
+ "mkdirp": "^0.5.1",
1686
+ "rimraf": "^2.5.2"
1687
+ }
1688
+ },
1689
+ "node_modules/set-cookie-parser": {
1690
+ "version": "2.6.0",
1691
+ "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz",
1692
+ "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ=="
1693
+ },
1694
+ "node_modules/sirv": {
1695
+ "version": "2.0.3",
1696
+ "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz",
1697
+ "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==",
1698
+ "dependencies": {
1699
+ "@polka/url": "^1.0.0-next.20",
1700
+ "mrmime": "^1.0.0",
1701
+ "totalist": "^3.0.0"
1702
+ },
1703
+ "engines": {
1704
+ "node": ">= 10"
1705
+ }
1706
+ },
1707
+ "node_modules/sorcery": {
1708
+ "version": "0.11.0",
1709
+ "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz",
1710
+ "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==",
1711
+ "dev": true,
1712
+ "dependencies": {
1713
+ "@jridgewell/sourcemap-codec": "^1.4.14",
1714
+ "buffer-crc32": "^0.2.5",
1715
+ "minimist": "^1.2.0",
1716
+ "sander": "^0.5.0"
1717
+ },
1718
+ "bin": {
1719
+ "sorcery": "bin/sorcery"
1720
+ }
1721
+ },
1722
+ "node_modules/source-map-js": {
1723
+ "version": "1.0.2",
1724
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
1725
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
1726
+ "engines": {
1727
+ "node": ">=0.10.0"
1728
+ }
1729
+ },
1730
+ "node_modules/streamsearch": {
1731
+ "version": "1.1.0",
1732
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
1733
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
1734
+ "engines": {
1735
+ "node": ">=10.0.0"
1736
+ }
1737
+ },
1738
+ "node_modules/strip-indent": {
1739
+ "version": "3.0.0",
1740
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
1741
+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
1742
+ "dev": true,
1743
+ "dependencies": {
1744
+ "min-indent": "^1.0.0"
1745
+ },
1746
+ "engines": {
1747
+ "node": ">=8"
1748
+ }
1749
+ },
1750
+ "node_modules/sucrase": {
1751
+ "version": "3.32.0",
1752
+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.32.0.tgz",
1753
+ "integrity": "sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==",
1754
+ "dev": true,
1755
+ "dependencies": {
1756
+ "@jridgewell/gen-mapping": "^0.3.2",
1757
+ "commander": "^4.0.0",
1758
+ "glob": "7.1.6",
1759
+ "lines-and-columns": "^1.1.6",
1760
+ "mz": "^2.7.0",
1761
+ "pirates": "^4.0.1",
1762
+ "ts-interface-checker": "^0.1.9"
1763
+ },
1764
+ "bin": {
1765
+ "sucrase": "bin/sucrase",
1766
+ "sucrase-node": "bin/sucrase-node"
1767
+ },
1768
+ "engines": {
1769
+ "node": ">=8"
1770
+ }
1771
+ },
1772
+ "node_modules/sucrase/node_modules/glob": {
1773
+ "version": "7.1.6",
1774
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
1775
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
1776
+ "dev": true,
1777
+ "dependencies": {
1778
+ "fs.realpath": "^1.0.0",
1779
+ "inflight": "^1.0.4",
1780
+ "inherits": "2",
1781
+ "minimatch": "^3.0.4",
1782
+ "once": "^1.3.0",
1783
+ "path-is-absolute": "^1.0.0"
1784
+ },
1785
+ "engines": {
1786
+ "node": "*"
1787
+ },
1788
+ "funding": {
1789
+ "url": "https://github.com/sponsors/isaacs"
1790
+ }
1791
+ },
1792
+ "node_modules/supports-preserve-symlinks-flag": {
1793
+ "version": "1.0.0",
1794
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
1795
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
1796
+ "dev": true,
1797
+ "engines": {
1798
+ "node": ">= 0.4"
1799
+ },
1800
+ "funding": {
1801
+ "url": "https://github.com/sponsors/ljharb"
1802
+ }
1803
+ },
1804
+ "node_modules/svelte": {
1805
+ "version": "3.59.1",
1806
+ "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.59.1.tgz",
1807
+ "integrity": "sha512-pKj8fEBmqf6mq3/NfrB9SLtcJcUvjYSWyePlfCqN9gujLB25RitWK8PvFzlwim6hD/We35KbPlRteuA6rnPGcQ==",
1808
+ "engines": {
1809
+ "node": ">= 8"
1810
+ }
1811
+ },
1812
+ "node_modules/svelte-check": {
1813
+ "version": "3.3.2",
1814
+ "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.3.2.tgz",
1815
+ "integrity": "sha512-67j3rI0LDc2DvL0ON/2pvCasVVD3nHDrTkZNr4eITNfo2oFXdw7SIyMOiFj4swu+pjmFQAigytBK1IWyik8dBw==",
1816
+ "dev": true,
1817
+ "dependencies": {
1818
+ "@jridgewell/trace-mapping": "^0.3.17",
1819
+ "chokidar": "^3.4.1",
1820
+ "fast-glob": "^3.2.7",
1821
+ "import-fresh": "^3.2.1",
1822
+ "picocolors": "^1.0.0",
1823
+ "sade": "^1.7.4",
1824
+ "svelte-preprocess": "^5.0.3",
1825
+ "typescript": "^5.0.3"
1826
+ },
1827
+ "bin": {
1828
+ "svelte-check": "bin/svelte-check"
1829
+ },
1830
+ "peerDependencies": {
1831
+ "svelte": "^3.55.0"
1832
+ }
1833
+ },
1834
+ "node_modules/svelte-hmr": {
1835
+ "version": "0.15.1",
1836
+ "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.1.tgz",
1837
+ "integrity": "sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==",
1838
+ "engines": {
1839
+ "node": "^12.20 || ^14.13.1 || >= 16"
1840
+ },
1841
+ "peerDependencies": {
1842
+ "svelte": ">=3.19.0"
1843
+ }
1844
+ },
1845
+ "node_modules/svelte-preprocess": {
1846
+ "version": "5.0.3",
1847
+ "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.0.3.tgz",
1848
+ "integrity": "sha512-GrHF1rusdJVbOZOwgPWtpqmaexkydznKzy5qIC2FabgpFyKN57bjMUUUqPRfbBXK5igiEWn1uO/DXsa2vJ5VHA==",
1849
+ "dev": true,
1850
+ "hasInstallScript": true,
1851
+ "dependencies": {
1852
+ "@types/pug": "^2.0.6",
1853
+ "detect-indent": "^6.1.0",
1854
+ "magic-string": "^0.27.0",
1855
+ "sorcery": "^0.11.0",
1856
+ "strip-indent": "^3.0.0"
1857
+ },
1858
+ "engines": {
1859
+ "node": ">= 14.10.0"
1860
+ },
1861
+ "peerDependencies": {
1862
+ "@babel/core": "^7.10.2",
1863
+ "coffeescript": "^2.5.1",
1864
+ "less": "^3.11.3 || ^4.0.0",
1865
+ "postcss": "^7 || ^8",
1866
+ "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0",
1867
+ "pug": "^3.0.0",
1868
+ "sass": "^1.26.8",
1869
+ "stylus": "^0.55.0",
1870
+ "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0",
1871
+ "svelte": "^3.23.0",
1872
+ "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0"
1873
+ },
1874
+ "peerDependenciesMeta": {
1875
+ "@babel/core": {
1876
+ "optional": true
1877
+ },
1878
+ "coffeescript": {
1879
+ "optional": true
1880
+ },
1881
+ "less": {
1882
+ "optional": true
1883
+ },
1884
+ "postcss": {
1885
+ "optional": true
1886
+ },
1887
+ "postcss-load-config": {
1888
+ "optional": true
1889
+ },
1890
+ "pug": {
1891
+ "optional": true
1892
+ },
1893
+ "sass": {
1894
+ "optional": true
1895
+ },
1896
+ "stylus": {
1897
+ "optional": true
1898
+ },
1899
+ "sugarss": {
1900
+ "optional": true
1901
+ },
1902
+ "typescript": {
1903
+ "optional": true
1904
+ }
1905
+ }
1906
+ },
1907
+ "node_modules/svelte-preprocess/node_modules/magic-string": {
1908
+ "version": "0.27.0",
1909
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz",
1910
+ "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==",
1911
+ "dev": true,
1912
+ "dependencies": {
1913
+ "@jridgewell/sourcemap-codec": "^1.4.13"
1914
+ },
1915
+ "engines": {
1916
+ "node": ">=12"
1917
+ }
1918
+ },
1919
+ "node_modules/tailwindcss": {
1920
+ "version": "3.3.2",
1921
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.2.tgz",
1922
+ "integrity": "sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==",
1923
+ "dev": true,
1924
+ "dependencies": {
1925
+ "@alloc/quick-lru": "^5.2.0",
1926
+ "arg": "^5.0.2",
1927
+ "chokidar": "^3.5.3",
1928
+ "didyoumean": "^1.2.2",
1929
+ "dlv": "^1.1.3",
1930
+ "fast-glob": "^3.2.12",
1931
+ "glob-parent": "^6.0.2",
1932
+ "is-glob": "^4.0.3",
1933
+ "jiti": "^1.18.2",
1934
+ "lilconfig": "^2.1.0",
1935
+ "micromatch": "^4.0.5",
1936
+ "normalize-path": "^3.0.0",
1937
+ "object-hash": "^3.0.0",
1938
+ "picocolors": "^1.0.0",
1939
+ "postcss": "^8.4.23",
1940
+ "postcss-import": "^15.1.0",
1941
+ "postcss-js": "^4.0.1",
1942
+ "postcss-load-config": "^4.0.1",
1943
+ "postcss-nested": "^6.0.1",
1944
+ "postcss-selector-parser": "^6.0.11",
1945
+ "postcss-value-parser": "^4.2.0",
1946
+ "resolve": "^1.22.2",
1947
+ "sucrase": "^3.32.0"
1948
+ },
1949
+ "bin": {
1950
+ "tailwind": "lib/cli.js",
1951
+ "tailwindcss": "lib/cli.js"
1952
+ },
1953
+ "engines": {
1954
+ "node": ">=14.0.0"
1955
+ }
1956
+ },
1957
+ "node_modules/tailwindcss/node_modules/glob-parent": {
1958
+ "version": "6.0.2",
1959
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
1960
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
1961
+ "dev": true,
1962
+ "dependencies": {
1963
+ "is-glob": "^4.0.3"
1964
+ },
1965
+ "engines": {
1966
+ "node": ">=10.13.0"
1967
+ }
1968
+ },
1969
+ "node_modules/thenify": {
1970
+ "version": "3.3.1",
1971
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
1972
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
1973
+ "dev": true,
1974
+ "dependencies": {
1975
+ "any-promise": "^1.0.0"
1976
+ }
1977
+ },
1978
+ "node_modules/thenify-all": {
1979
+ "version": "1.6.0",
1980
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
1981
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
1982
+ "dev": true,
1983
+ "dependencies": {
1984
+ "thenify": ">= 3.1.0 < 4"
1985
+ },
1986
+ "engines": {
1987
+ "node": ">=0.8"
1988
+ }
1989
+ },
1990
+ "node_modules/tiny-glob": {
1991
+ "version": "0.2.9",
1992
+ "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
1993
+ "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
1994
+ "dependencies": {
1995
+ "globalyzer": "0.1.0",
1996
+ "globrex": "^0.1.2"
1997
+ }
1998
+ },
1999
+ "node_modules/to-regex-range": {
2000
+ "version": "5.0.1",
2001
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
2002
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
2003
+ "dev": true,
2004
+ "dependencies": {
2005
+ "is-number": "^7.0.0"
2006
+ },
2007
+ "engines": {
2008
+ "node": ">=8.0"
2009
+ }
2010
+ },
2011
+ "node_modules/totalist": {
2012
+ "version": "3.0.1",
2013
+ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
2014
+ "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
2015
+ "engines": {
2016
+ "node": ">=6"
2017
+ }
2018
+ },
2019
+ "node_modules/ts-interface-checker": {
2020
+ "version": "0.1.13",
2021
+ "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
2022
+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
2023
+ "dev": true
2024
+ },
2025
+ "node_modules/tslib": {
2026
+ "version": "2.5.0",
2027
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
2028
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
2029
+ "dev": true
2030
+ },
2031
+ "node_modules/typescript": {
2032
+ "version": "5.0.4",
2033
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz",
2034
+ "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
2035
+ "dev": true,
2036
+ "bin": {
2037
+ "tsc": "bin/tsc",
2038
+ "tsserver": "bin/tsserver"
2039
+ },
2040
+ "engines": {
2041
+ "node": ">=12.20"
2042
+ }
2043
+ },
2044
+ "node_modules/undici": {
2045
+ "version": "5.22.1",
2046
+ "resolved": "https://registry.npmjs.org/undici/-/undici-5.22.1.tgz",
2047
+ "integrity": "sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==",
2048
+ "dependencies": {
2049
+ "busboy": "^1.6.0"
2050
+ },
2051
+ "engines": {
2052
+ "node": ">=14.0"
2053
+ }
2054
+ },
2055
+ "node_modules/update-browserslist-db": {
2056
+ "version": "1.0.11",
2057
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
2058
+ "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
2059
+ "dev": true,
2060
+ "funding": [
2061
+ {
2062
+ "type": "opencollective",
2063
+ "url": "https://opencollective.com/browserslist"
2064
+ },
2065
+ {
2066
+ "type": "tidelift",
2067
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
2068
+ },
2069
+ {
2070
+ "type": "github",
2071
+ "url": "https://github.com/sponsors/ai"
2072
+ }
2073
+ ],
2074
+ "dependencies": {
2075
+ "escalade": "^3.1.1",
2076
+ "picocolors": "^1.0.0"
2077
+ },
2078
+ "bin": {
2079
+ "update-browserslist-db": "cli.js"
2080
+ },
2081
+ "peerDependencies": {
2082
+ "browserslist": ">= 4.21.0"
2083
+ }
2084
+ },
2085
+ "node_modules/util-deprecate": {
2086
+ "version": "1.0.2",
2087
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
2088
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
2089
+ "dev": true
2090
+ },
2091
+ "node_modules/vite": {
2092
+ "version": "4.3.5",
2093
+ "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.5.tgz",
2094
+ "integrity": "sha512-0gEnL9wiRFxgz40o/i/eTBwm+NEbpUeTWhzKrZDSdKm6nplj+z4lKz8ANDgildxHm47Vg8EUia0aicKbawUVVA==",
2095
+ "dependencies": {
2096
+ "esbuild": "^0.17.5",
2097
+ "postcss": "^8.4.23",
2098
+ "rollup": "^3.21.0"
2099
+ },
2100
+ "bin": {
2101
+ "vite": "bin/vite.js"
2102
+ },
2103
+ "engines": {
2104
+ "node": "^14.18.0 || >=16.0.0"
2105
+ },
2106
+ "optionalDependencies": {
2107
+ "fsevents": "~2.3.2"
2108
+ },
2109
+ "peerDependencies": {
2110
+ "@types/node": ">= 14",
2111
+ "less": "*",
2112
+ "sass": "*",
2113
+ "stylus": "*",
2114
+ "sugarss": "*",
2115
+ "terser": "^5.4.0"
2116
+ },
2117
+ "peerDependenciesMeta": {
2118
+ "@types/node": {
2119
+ "optional": true
2120
+ },
2121
+ "less": {
2122
+ "optional": true
2123
+ },
2124
+ "sass": {
2125
+ "optional": true
2126
+ },
2127
+ "stylus": {
2128
+ "optional": true
2129
+ },
2130
+ "sugarss": {
2131
+ "optional": true
2132
+ },
2133
+ "terser": {
2134
+ "optional": true
2135
+ }
2136
+ }
2137
+ },
2138
+ "node_modules/vitefu": {
2139
+ "version": "0.2.4",
2140
+ "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.4.tgz",
2141
+ "integrity": "sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==",
2142
+ "peerDependencies": {
2143
+ "vite": "^3.0.0 || ^4.0.0"
2144
+ },
2145
+ "peerDependenciesMeta": {
2146
+ "vite": {
2147
+ "optional": true
2148
+ }
2149
+ }
2150
+ },
2151
+ "node_modules/wrappy": {
2152
+ "version": "1.0.2",
2153
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
2154
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
2155
+ "dev": true
2156
+ },
2157
+ "node_modules/yaml": {
2158
+ "version": "2.2.2",
2159
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz",
2160
+ "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==",
2161
+ "dev": true,
2162
+ "engines": {
2163
+ "node": ">= 14"
2164
+ }
2165
+ }
2166
+ }
2167
+ }
package.json ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "my-app",
3
+ "version": "0.0.1",
4
+ "private": true,
5
+ "scripts": {
6
+ "dev": "vite dev",
7
+ "build": "vite build",
8
+ "preview": "vite preview",
9
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
10
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
11
+ },
12
+ "devDependencies": {
13
+ "@sveltejs/adapter-auto": "^2.0.0",
14
+ "@sveltejs/kit": "^1.5.0",
15
+ "autoprefixer": "^10.4.14",
16
+ "postcss": "^8.4.23",
17
+ "svelte": "^3.54.0",
18
+ "svelte-check": "^3.0.1",
19
+ "tailwindcss": "^3.3.2",
20
+ "tslib": "^2.4.1",
21
+ "typescript": "^5.0.0",
22
+ "vite": "^4.3.0"
23
+ },
24
+ "type": "module",
25
+ "dependencies": {
26
+ "@sveltejs/adapter-static": "^2.0.2"
27
+ }
28
+ }
postcss.config.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ export default {
2
+ plugins: {
3
+ tailwindcss: {},
4
+ autoprefixer: {},
5
+ },
6
+ }
src/app.css ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
4
+
5
+ @layer base {
6
+
7
+ @font-face {
8
+ font-family: "Hellovetica";
9
+ font-weight: 300;
10
+ src : local("Hellovetica"), url("/fonts/hellovetica.ttf");
11
+ font-display: swap;
12
+ }
13
+
14
+ }
src/app.d.ts ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // See https://kit.svelte.dev/docs/types#app
2
+ // for information about these interfaces
3
+ declare global {
4
+ namespace App {
5
+ // interface Error {}
6
+ // interface Locals {}
7
+ // interface PageData {}
8
+ // interface Platform {}
9
+ }
10
+ }
11
+
12
+ export {};
src/app.html ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <title>Spaceship freeride</title>
5
+ <meta charset="utf-8" />
6
+ <link rel="icon" href="%sveltekit.assets%/favicon.png" />
7
+ <meta name="viewport" content="width=device-width" />
8
+ <script async src="https://cdn.splitbee.io/sb.js"></script>
9
+ %sveltekit.head%
10
+ </head>
11
+ <body data-sveltekit-preload-data="hover" class="bg-[#0C0F19] overflow-x-hidden bg-cover" style="background-image: url('images/sky.png');">
12
+ <div style="display: contents">%sveltekit.body%</div>
13
+ </body>
14
+ </html>
src/lib/images/preview.png ADDED
src/routes/+layout.svelte ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ <script>
2
+ import "../app.css";
3
+ </script>
4
+
5
+ <slot />
src/routes/+layout.ts ADDED
@@ -0,0 +1 @@
 
 
1
+ export const prerender = true;
src/routes/+page.svelte ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script lang="ts">
2
+ // Svelte
3
+ import { onMount } from "svelte";
4
+ import { page } from "$app/stores";
5
+
6
+ // Images
7
+ import preview from "$lib/images/preview.png";
8
+
9
+ // Variables
10
+ let isMobile: boolean = false;
11
+ let isLinkCopied: boolean = false;
12
+
13
+ onMount(() => {
14
+ if (window.innerWidth < 768) {
15
+ isMobile = true;
16
+ }
17
+ });
18
+
19
+ function copyToClipboard(): void {
20
+ navigator.clipboard.writeText($page.url.toString());
21
+ isLinkCopied = true;
22
+ }
23
+ </script>
24
+
25
+ <!--Main container-->
26
+ <div
27
+ class="flex flex-col justify-center text-slate-100 font-Hellovetica items-center p-4 w-full"
28
+ >
29
+ <!--Title container-->
30
+ <div
31
+ class="flex flex-col justify-center items-center space-y-4 text-center sm:mt-20 mt-12"
32
+ >
33
+ <img src="images/png_title.png" alt="Game title" class="h-48">
34
+ </div>
35
+
36
+ {#if !isMobile}
37
+ <div class="relative mt-6 border-slate-800 border-[3px]">
38
+ <!--Game-->
39
+ <iframe
40
+ src="smg/index.html"
41
+ frameborder="0"
42
+ title="Spaceship Drift"
43
+ height="512"
44
+ width="768"
45
+ class=""
46
+ />
47
+ <!--Corners-->
48
+ <div
49
+ class="h-[3px] bg-[#0C0F19] w-[3px] z-10 absolute -top-[3px] -left-[3px]"
50
+ />
51
+ <div
52
+ class="h-[3px] bg-[#0C0F19] w-[3px] z-10 absolute -bottom-[3px] -left-[3px]"
53
+ />
54
+ <div
55
+ class="h-[3px] bg-[#0C0F19] w-[3px] z-10 absolute -top-[3px] -right-[3px]"
56
+ />
57
+ <div
58
+ class="h-[3px] bg-[#0C0F19] w-[3px] z-10 absolute -bottom-[3px] -right-[3px]"
59
+ />
60
+ </div>
61
+
62
+ <!--Infos-->
63
+ <div
64
+ class="flex flex-row justify-center items-center text-[9px] mt-4 text-slate-500"
65
+ >
66
+ <p>SPACE to jump. <a href="https://x.com/HugoDuprez/status/1712093324528541831?s=20" target="_blank" class="underline">Full shaders game demo</a></p>
67
+ </div>
68
+ {/if}
69
+
70
+ {#if isMobile}
71
+ <div class="flex flex-col justify-center items-center mt-10 text-center">
72
+ <p class="text-xs text-slate-500 mt-6">
73
+ Looks like you're on mobile! Please visit on your laptop.
74
+ </p>
75
+ <button
76
+ on:click|preventDefault={copyToClipboard}
77
+ class="flex flex-row justify-center items-center px-3 py-5 text-xs w-full bg-slate-800 mt-6"
78
+ >
79
+ <p class="mt-1">
80
+ {isLinkCopied ? "Copied!" : "Copy the link for later"}
81
+ </p>
82
+ </button>
83
+ </div>
84
+ {/if}
85
+
86
+ <!--Credits-->
87
+ <div
88
+ class="flex flex-row justify-center items-center text-center {isMobile ? "mt-20" : "fixed bottom-6"} text-[9px] text-slate-500"
89
+ >
90
+ <p>
91
+ Made by <a href="https://www.hugoduprez.com/" target="_blank" class="underline">Hugo</a
92
+ >
93
+ with
94
+ <a href="https://godotengine.org/" target="_blank" class="underline"
95
+ >Godot</a
96
+ >,
97
+ <a href="https://svelte.dev/" target="_blank" class="underline">Svelte</a
98
+ >, and
99
+ <a href="https://www.kenney.nl/tools" target="_blank" class="underline"
100
+ >Kenney assets</a
101
+ >
102
+ </p>
103
+ </div>
104
+ </div>
static/favicon.png ADDED
static/fonts/hellovetica.ttf ADDED
Binary file (8.74 kB). View file
 
static/images/png_title.png ADDED
static/images/sky.png ADDED
static/smg/coi-serviceworker.min.js ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ /*! coi-serviceworker v0.1.7 - Guido Zuidhof and contributors, licensed under MIT */
2
+ let coepCredentialless=!1;"undefined"==typeof window?(self.addEventListener("install",(()=>self.skipWaiting())),self.addEventListener("activate",(e=>e.waitUntil(self.clients.claim()))),self.addEventListener("message",(e=>{e.data&&("deregister"===e.data.type?self.registration.unregister().then((()=>self.clients.matchAll())).then((e=>{e.forEach((e=>e.navigate(e.url)))})):"coepCredentialless"===e.data.type&&(coepCredentialless=e.data.value))})),self.addEventListener("fetch",(function(e){const r=e.request;if("only-if-cached"===r.cache&&"same-origin"!==r.mode)return;const s=coepCredentialless&&"no-cors"===r.mode?new Request(r,{credentials:"omit"}):r;e.respondWith(fetch(s).then((e=>{if(0===e.status)return e;const r=new Headers(e.headers);return r.set("Cross-Origin-Embedder-Policy",coepCredentialless?"credentialless":"require-corp"),coepCredentialless||r.set("Cross-Origin-Resource-Policy","cross-origin"),r.set("Cross-Origin-Opener-Policy","same-origin"),new Response(e.body,{status:e.status,statusText:e.statusText,headers:r})})).catch((e=>console.error(e))))}))):(()=>{const e={shouldRegister:()=>!0,shouldDeregister:()=>!1,coepCredentialless:()=>(window.chrome!==undefined||window.netscape!==undefined),doReload:()=>window.location.reload(),quiet:!1,...window.coi},r=navigator;r.serviceWorker&&r.serviceWorker.controller&&(r.serviceWorker.controller.postMessage({type:"coepCredentialless",value:e.coepCredentialless()}),e.shouldDeregister()&&r.serviceWorker.controller.postMessage({type:"deregister"})),!1===window.crossOriginIsolated&&e.shouldRegister()&&(window.isSecureContext?r.serviceWorker&&r.serviceWorker.register(window.document.currentScript.src).then((s=>{!e.quiet&&console.log("COOP/COEP Service Worker registered",s.scope),s.addEventListener("updatefound",(()=>{!e.quiet&&console.log("Reloading page to make use of updated COOP/COEP Service Worker."),e.doReload()})),s.active&&!r.serviceWorker.controller&&(!e.quiet&&console.log("Reloading page to make use of COOP/COEP Service Worker."),e.doReload())}),(r=>{!e.quiet&&console.error("COOP/COEP Service Worker failed to register:",r)})):!e.quiet&&console.log("COOP/COEP Service Worker not registered, a secure context is required."))})();
static/smg/index.apple-touch-icon.png ADDED
static/smg/index.audio.worklet.js ADDED
@@ -0,0 +1,213 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**************************************************************************/
2
+ /* audio.worklet.js */
3
+ /**************************************************************************/
4
+ /* This file is part of: */
5
+ /* GODOT ENGINE */
6
+ /* https://godotengine.org */
7
+ /**************************************************************************/
8
+ /* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */
9
+ /* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */
10
+ /* */
11
+ /* Permission is hereby granted, free of charge, to any person obtaining */
12
+ /* a copy of this software and associated documentation files (the */
13
+ /* "Software"), to deal in the Software without restriction, including */
14
+ /* without limitation the rights to use, copy, modify, merge, publish, */
15
+ /* distribute, sublicense, and/or sell copies of the Software, and to */
16
+ /* permit persons to whom the Software is furnished to do so, subject to */
17
+ /* the following conditions: */
18
+ /* */
19
+ /* The above copyright notice and this permission notice shall be */
20
+ /* included in all copies or substantial portions of the Software. */
21
+ /* */
22
+ /* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
23
+ /* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
24
+ /* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */
25
+ /* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
26
+ /* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
27
+ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
28
+ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
29
+ /**************************************************************************/
30
+
31
+ class RingBuffer {
32
+ constructor(p_buffer, p_state, p_threads) {
33
+ this.buffer = p_buffer;
34
+ this.avail = p_state;
35
+ this.threads = p_threads;
36
+ this.rpos = 0;
37
+ this.wpos = 0;
38
+ }
39
+
40
+ data_left() {
41
+ return this.threads ? Atomics.load(this.avail, 0) : this.avail;
42
+ }
43
+
44
+ space_left() {
45
+ return this.buffer.length - this.data_left();
46
+ }
47
+
48
+ read(output) {
49
+ const size = this.buffer.length;
50
+ let from = 0;
51
+ let to_write = output.length;
52
+ if (this.rpos + to_write > size) {
53
+ const high = size - this.rpos;
54
+ output.set(this.buffer.subarray(this.rpos, size));
55
+ from = high;
56
+ to_write -= high;
57
+ this.rpos = 0;
58
+ }
59
+ if (to_write) {
60
+ output.set(this.buffer.subarray(this.rpos, this.rpos + to_write), from);
61
+ }
62
+ this.rpos += to_write;
63
+ if (this.threads) {
64
+ Atomics.add(this.avail, 0, -output.length);
65
+ Atomics.notify(this.avail, 0);
66
+ } else {
67
+ this.avail -= output.length;
68
+ }
69
+ }
70
+
71
+ write(p_buffer) {
72
+ const to_write = p_buffer.length;
73
+ const mw = this.buffer.length - this.wpos;
74
+ if (mw >= to_write) {
75
+ this.buffer.set(p_buffer, this.wpos);
76
+ this.wpos += to_write;
77
+ if (mw === to_write) {
78
+ this.wpos = 0;
79
+ }
80
+ } else {
81
+ const high = p_buffer.subarray(0, mw);
82
+ const low = p_buffer.subarray(mw);
83
+ this.buffer.set(high, this.wpos);
84
+ this.buffer.set(low);
85
+ this.wpos = low.length;
86
+ }
87
+ if (this.threads) {
88
+ Atomics.add(this.avail, 0, to_write);
89
+ Atomics.notify(this.avail, 0);
90
+ } else {
91
+ this.avail += to_write;
92
+ }
93
+ }
94
+ }
95
+
96
+ class GodotProcessor extends AudioWorkletProcessor {
97
+ constructor() {
98
+ super();
99
+ this.threads = false;
100
+ this.running = true;
101
+ this.lock = null;
102
+ this.notifier = null;
103
+ this.output = null;
104
+ this.output_buffer = new Float32Array();
105
+ this.input = null;
106
+ this.input_buffer = new Float32Array();
107
+ this.port.onmessage = (event) => {
108
+ const cmd = event.data['cmd'];
109
+ const data = event.data['data'];
110
+ this.parse_message(cmd, data);
111
+ };
112
+ }
113
+
114
+ process_notify() {
115
+ if (this.notifier) {
116
+ Atomics.add(this.notifier, 0, 1);
117
+ Atomics.notify(this.notifier, 0);
118
+ }
119
+ }
120
+
121
+ parse_message(p_cmd, p_data) {
122
+ if (p_cmd === 'start' && p_data) {
123
+ const state = p_data[0];
124
+ let idx = 0;
125
+ this.threads = true;
126
+ this.lock = state.subarray(idx, ++idx);
127
+ this.notifier = state.subarray(idx, ++idx);
128
+ const avail_in = state.subarray(idx, ++idx);
129
+ const avail_out = state.subarray(idx, ++idx);
130
+ this.input = new RingBuffer(p_data[1], avail_in, true);
131
+ this.output = new RingBuffer(p_data[2], avail_out, true);
132
+ } else if (p_cmd === 'stop') {
133
+ this.running = false;
134
+ this.output = null;
135
+ this.input = null;
136
+ this.lock = null;
137
+ this.notifier = null;
138
+ } else if (p_cmd === 'start_nothreads') {
139
+ this.output = new RingBuffer(p_data[0], p_data[0].length, false);
140
+ } else if (p_cmd === 'chunk') {
141
+ this.output.write(p_data);
142
+ }
143
+ }
144
+
145
+ static array_has_data(arr) {
146
+ return arr.length && arr[0].length && arr[0][0].length;
147
+ }
148
+
149
+ process(inputs, outputs, parameters) {
150
+ if (!this.running) {
151
+ return false; // Stop processing.
152
+ }
153
+ if (this.output === null) {
154
+ return true; // Not ready yet, keep processing.
155
+ }
156
+ const process_input = GodotProcessor.array_has_data(inputs);
157
+ if (process_input) {
158
+ const input = inputs[0];
159
+ const chunk = input[0].length * input.length;
160
+ if (this.input_buffer.length !== chunk) {
161
+ this.input_buffer = new Float32Array(chunk);
162
+ }
163
+ if (!this.threads) {
164
+ GodotProcessor.write_input(this.input_buffer, input);
165
+ this.port.postMessage({ 'cmd': 'input', 'data': this.input_buffer });
166
+ } else if (this.input.space_left() >= chunk) {
167
+ GodotProcessor.write_input(this.input_buffer, input);
168
+ this.input.write(this.input_buffer);
169
+ } else {
170
+ this.port.postMessage('Input buffer is full! Skipping input frame.');
171
+ }
172
+ }
173
+ const process_output = GodotProcessor.array_has_data(outputs);
174
+ if (process_output) {
175
+ const output = outputs[0];
176
+ const chunk = output[0].length * output.length;
177
+ if (this.output_buffer.length !== chunk) {
178
+ this.output_buffer = new Float32Array(chunk);
179
+ }
180
+ if (this.output.data_left() >= chunk) {
181
+ this.output.read(this.output_buffer);
182
+ GodotProcessor.write_output(output, this.output_buffer);
183
+ if (!this.threads) {
184
+ this.port.postMessage({ 'cmd': 'read', 'data': chunk });
185
+ }
186
+ } else {
187
+ this.port.postMessage('Output buffer has not enough frames! Skipping output frame.');
188
+ }
189
+ }
190
+ this.process_notify();
191
+ return true;
192
+ }
193
+
194
+ static write_output(dest, source) {
195
+ const channels = dest.length;
196
+ for (let ch = 0; ch < channels; ch++) {
197
+ for (let sample = 0; sample < dest[ch].length; sample++) {
198
+ dest[ch][sample] = source[sample * channels + ch];
199
+ }
200
+ }
201
+ }
202
+
203
+ static write_input(dest, source) {
204
+ const channels = source.length;
205
+ for (let ch = 0; ch < channels; ch++) {
206
+ for (let sample = 0; sample < source[ch].length; sample++) {
207
+ dest[sample * channels + ch] = source[ch][sample];
208
+ }
209
+ }
210
+ }
211
+ }
212
+
213
+ registerProcessor('godot-processor', GodotProcessor);
static/smg/index.html ADDED
@@ -0,0 +1,255 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, user-scalable=no">
6
+ <title>Super Godot Galaxy</title>
7
+ <style>
8
+ body {
9
+ touch-action: none;
10
+ margin: 0;
11
+ border: 0 none;
12
+ padding: 0;
13
+ text-align: center;
14
+ background-color: black;
15
+ }
16
+
17
+ #canvas {
18
+ display: block;
19
+ margin: 0;
20
+ color: white;
21
+ }
22
+
23
+ #canvas:focus {
24
+ outline: none;
25
+ }
26
+
27
+ .godot {
28
+ font-family: 'Noto Sans', 'Droid Sans', Arial, sans-serif;
29
+ color: #e0e0e0;
30
+ background-color: #3b3943;
31
+ background-image: linear-gradient(to bottom, #403e48, #35333c);
32
+ border: 1px solid #45434e;
33
+ box-shadow: 0 0 1px 1px #2f2d35;
34
+ }
35
+
36
+ /* Status display */
37
+
38
+ #status {
39
+ position: absolute;
40
+ left: 0;
41
+ top: 0;
42
+ right: 0;
43
+ bottom: 0;
44
+ display: flex;
45
+ justify-content: center;
46
+ align-items: center;
47
+ /* don't consume click events - make children visible explicitly */
48
+ visibility: hidden;
49
+ }
50
+
51
+ #status-progress {
52
+ width: 366px;
53
+ height: 7px;
54
+ background-color: #38363A;
55
+ border: 1px solid #444246;
56
+ padding: 1px;
57
+ box-shadow: 0 0 2px 1px #1B1C22;
58
+ border-radius: 2px;
59
+ visibility: visible;
60
+ }
61
+
62
+ @media only screen and (orientation:portrait) {
63
+ #status-progress {
64
+ width: 61.8%;
65
+ }
66
+ }
67
+
68
+ #status-progress-inner {
69
+ height: 100%;
70
+ width: 0;
71
+ box-sizing: border-box;
72
+ transition: width 0.5s linear;
73
+ background-color: #202020;
74
+ border: 1px solid #222223;
75
+ box-shadow: 0 0 1px 1px #27282E;
76
+ border-radius: 3px;
77
+ }
78
+
79
+ #status-indeterminate {
80
+ height: 42px;
81
+ visibility: visible;
82
+ position: relative;
83
+ }
84
+
85
+ #status-indeterminate > div {
86
+ width: 4.5px;
87
+ height: 0;
88
+ border-style: solid;
89
+ border-width: 9px 3px 0 3px;
90
+ border-color: #2b2b2b transparent transparent transparent;
91
+ transform-origin: center 21px;
92
+ position: absolute;
93
+ }
94
+
95
+ #status-indeterminate > div:nth-child(1) { transform: rotate( 22.5deg); }
96
+ #status-indeterminate > div:nth-child(2) { transform: rotate( 67.5deg); }
97
+ #status-indeterminate > div:nth-child(3) { transform: rotate(112.5deg); }
98
+ #status-indeterminate > div:nth-child(4) { transform: rotate(157.5deg); }
99
+ #status-indeterminate > div:nth-child(5) { transform: rotate(202.5deg); }
100
+ #status-indeterminate > div:nth-child(6) { transform: rotate(247.5deg); }
101
+ #status-indeterminate > div:nth-child(7) { transform: rotate(292.5deg); }
102
+ #status-indeterminate > div:nth-child(8) { transform: rotate(337.5deg); }
103
+
104
+ #status-notice {
105
+ margin: 0 100px;
106
+ line-height: 1.3;
107
+ visibility: visible;
108
+ padding: 4px 6px;
109
+ visibility: visible;
110
+ }
111
+ </style>
112
+ <link id='-gd-engine-icon' rel='icon' type='image/png' href='index.icon.png' />
113
+ <link rel='apple-touch-icon' href='index.apple-touch-icon.png'/>
114
+
115
+ </head>
116
+ <body>
117
+ <canvas id="canvas">
118
+ HTML5 canvas appears to be unsupported in the current browser.<br >
119
+ Please try updating or use a different browser.
120
+ </canvas>
121
+ <div id="status">
122
+ <div id="status-progress" style="display: none;" oncontextmenu="event.preventDefault();">
123
+ <div id ="status-progress-inner"></div>
124
+ </div>
125
+ <div id="status-indeterminate" style="display: none;" oncontextmenu="event.preventDefault();">
126
+ <div></div>
127
+ <div></div>
128
+ <div></div>
129
+ <div></div>
130
+ <div></div>
131
+ <div></div>
132
+ <div></div>
133
+ <div></div>
134
+ </div>
135
+ <div id="status-notice" class="godot" style="display: none;"></div>
136
+ </div>
137
+
138
+ <script>
139
+ if (!window.SharedArrayBuffer) {
140
+ document.getElementById('status').style.display = 'none';
141
+ setTimeout(() => document.getElementById('status').style.display = '', 1500);
142
+ }
143
+ </script>
144
+ <script src="coi-serviceworker.min.js"></script>
145
+ <script src="index.js"></script>
146
+ <script>
147
+ const GODOT_CONFIG = {"args":[],"canvasResizePolicy":2,"executable":"index","experimentalVK":false,"fileSizes":{"index.pck":52711824,"index.wasm":52315256},"focusCanvas":true,"gdextensionLibs":[]};
148
+ const engine = new Engine(GODOT_CONFIG);
149
+
150
+ (function () {
151
+ const INDETERMINATE_STATUS_STEP_MS = 100;
152
+ const statusProgress = document.getElementById('status-progress');
153
+ const statusProgressInner = document.getElementById('status-progress-inner');
154
+ const statusIndeterminate = document.getElementById('status-indeterminate');
155
+ const statusNotice = document.getElementById('status-notice');
156
+
157
+ let initializing = true;
158
+ let statusMode = 'hidden';
159
+
160
+ let animationCallbacks = [];
161
+ function animate(time) {
162
+ animationCallbacks.forEach((callback) => callback(time));
163
+ requestAnimationFrame(animate);
164
+ }
165
+ requestAnimationFrame(animate);
166
+
167
+ function animateStatusIndeterminate(ms) {
168
+ const i = Math.floor((ms / INDETERMINATE_STATUS_STEP_MS) % 8);
169
+ if (statusIndeterminate.children[i].style.borderTopColor === '') {
170
+ Array.prototype.slice.call(statusIndeterminate.children).forEach((child) => {
171
+ child.style.borderTopColor = '';
172
+ });
173
+ statusIndeterminate.children[i].style.borderTopColor = '#dfdfdf';
174
+ }
175
+ }
176
+
177
+ function setStatusMode(mode) {
178
+ if (statusMode === mode || !initializing) {
179
+ return;
180
+ }
181
+ [statusProgress, statusIndeterminate, statusNotice].forEach((elem) => {
182
+ elem.style.display = 'none';
183
+ });
184
+ animationCallbacks = animationCallbacks.filter(function (value) {
185
+ return (value !== animateStatusIndeterminate);
186
+ });
187
+ switch (mode) {
188
+ case 'progress':
189
+ statusProgress.style.display = 'block';
190
+ break;
191
+ case 'indeterminate':
192
+ statusIndeterminate.style.display = 'block';
193
+ animationCallbacks.push(animateStatusIndeterminate);
194
+ break;
195
+ case 'notice':
196
+ statusNotice.style.display = 'block';
197
+ break;
198
+ case 'hidden':
199
+ break;
200
+ default:
201
+ throw new Error('Invalid status mode');
202
+ }
203
+ statusMode = mode;
204
+ }
205
+
206
+ function setStatusNotice(text) {
207
+ while (statusNotice.lastChild) {
208
+ statusNotice.removeChild(statusNotice.lastChild);
209
+ }
210
+ const lines = text.split('\n');
211
+ lines.forEach((line) => {
212
+ statusNotice.appendChild(document.createTextNode(line));
213
+ statusNotice.appendChild(document.createElement('br'));
214
+ });
215
+ }
216
+
217
+ function displayFailureNotice(err) {
218
+ const msg = err.message || err;
219
+ console.error(msg);
220
+ setStatusNotice(msg);
221
+ setStatusMode('notice');
222
+ initializing = false;
223
+ }
224
+
225
+ const missing = Engine.getMissingFeatures();
226
+ if (missing.length !== 0) {
227
+ const missingMsg = 'Error\nThe following features required to run Godot projects on the Web are missing:\n';
228
+ displayFailureNotice(missingMsg + missing.join('\n'));
229
+ } else {
230
+ setStatusMode('indeterminate');
231
+ engine.startGame({
232
+ 'onProgress': function (current, total) {
233
+ if (total > 0) {
234
+ statusProgressInner.style.width = `${(current / total) * 100}%`;
235
+ setStatusMode('progress');
236
+ if (current === total) {
237
+ // wait for progress bar animation
238
+ setTimeout(() => {
239
+ setStatusMode('indeterminate');
240
+ }, 500);
241
+ }
242
+ } else {
243
+ setStatusMode('indeterminate');
244
+ }
245
+ },
246
+ }).then(() => {
247
+ setStatusMode('hidden');
248
+ initializing = false;
249
+ }, displayFailureNotice);
250
+ }
251
+ }());
252
+ </script>
253
+ </body>
254
+ </html>
255
+